DDBSettingsController.m 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. #import "DDBSettingsController.h"
  2. @interface TVSPreferences : NSObject
  3. + (id)preferencesWithDomain:(id)arg1;
  4. - (_Bool)setBool:(_Bool)arg1 forKey:(id)arg2;
  5. - (_Bool)boolForKey:(id)arg1 defaultValue:(_Bool)arg2;
  6. - (_Bool)boolForKey:(id)arg1;
  7. - (_Bool)setDouble:(double)arg1 forKey:(id)arg2;
  8. - (double)doubleForKey:(id)arg1 defaultValue:(double)arg2;
  9. - (double)doubleForKey:(id)arg1;
  10. - (_Bool)setFloat:(float)arg1 forKey:(id)arg2;
  11. - (float)floatForKey:(id)arg1 defaultValue:(float)arg2;
  12. - (float)floatForKey:(id)arg1;
  13. - (_Bool)setInteger:(int)arg1 forKey:(id)arg2;
  14. - (int)integerForKey:(id)arg1 defaultValue:(int)arg2;
  15. - (int)integerForKey:(id)arg1;
  16. - (id)stringForKey:(id)arg1;
  17. - (_Bool)setObject:(id)arg1 forKey:(id)arg2;
  18. - (id)objectForKey:(id)arg1;
  19. - (_Bool)synchronize;
  20. - (id)initWithDomain:(id)arg1;
  21. @end
  22. @protocol TSKSettingItemEditingControllerDelegate <NSObject>
  23. - (void)editingController:(id)arg1 didCancelForSettingItem:(TSKSettingItem *)arg2;
  24. - (void)editingController:(id)arg1 didProvideValue:(id)arg2 forSettingItem:(TSKSettingItem *)arg3;
  25. @end
  26. @interface TSKTextInputViewController : UIViewController
  27. @property (assign,nonatomic) BOOL supportsPasswordSharing;
  28. @property (nonatomic,retain) NSString * networkName;
  29. @property (assign,nonatomic) BOOL secureTextEntry;
  30. @property (nonatomic,copy) NSString * headerText;
  31. @property (nonatomic,copy) NSString * messageText;
  32. @property (nonatomic,copy) NSString * initialText;
  33. @property (assign,nonatomic) long long capitalizationType;
  34. @property (assign,nonatomic) long long keyboardType;
  35. @property (nonatomic,retain) TSKSettingItem * editingItem;
  36. @property (assign,nonatomic,weak) id<TSKSettingItemEditingControllerDelegate> editingDelegate;
  37. @end
  38. @implementation DDBSettingsController
  39. - (id)loadSettingGroups {
  40. /*
  41. +[<TSKSettingItem: 0x1ad71bc88> toggleItemWithTitle:Automatically Update Apps description:(null) representedObject:<TVSettingsPreferenceFacade: 0x1c0438480> keyPath:AutoUpdatesEnabled onTitle:(null) offTitle:(null)]
  42. */
  43. NSLog(@"DDBSettings: main bundle: %@", [NSBundle bundleForClass:self.class]);
  44. id facade = [[NSClassFromString(@"TVSettingsPreferenceFacade") alloc] initWithDomain:@"com.nito.dalesdeadbug" notifyChanges:TRUE];
  45. //[facade setValue:[NSNumber numberWithBool:TRUE] forUndefinedKey:@"Enabled"];
  46. //[facade setValue:@"11.1" forUndefinedKey:@"SpoofVersion"];
  47. //[facade setValue:@"TextTest" forUndefinedKey:@"TextTest"];
  48. NSMutableArray *_backingArray = [NSMutableArray new];
  49. TSKSettingItem *toggleItem = [TSKSettingItem toggleItemWithTitle:@"Version spoofing" description:@"Whether or not to spoof a higher OS version to install officially unsupported application versions. " representedObject:facade keyPath:@"Enabled" onTitle:nil offTitle:nil];
  50. //TSKTextInputViewController.h
  51. //Class TSKTIVC = NSClassFromString(@"TSKTextInputViewController");
  52. //TSKSettingItem *textEntryItem = [TSKSettingItem textInputItemWithTitle:@"Tests text entry" description:@"This is a test" representedObject:testObject keyPath:nil];
  53. //+(id)actionItemWithTitle:(id)arg1 description:(id)arg2 representedObject:(id)arg3 keyPath:(id)arg4 target:(id)arg5 action:(SEL)arg6
  54. //[testObject setEditingItem:textEntryItem];
  55. TSKSettingItem *textEntryItem = [TSKSettingItem actionItemWithTitle:@"Tests text entry" description:@"This is a test" representedObject:facade keyPath:@"TextTest" target:self action:@selector(showViewController:)];
  56. [textEntryItem setLocalizedValue:@"TEST"];
  57. //:+[<TSKSettingItem: 0x1b48d3c88> actionItemWithTitle:Sleep Now description:(null) representedObject:(null) keyPath:(null) target:<TVSettingsMainViewController: 0x15204d600> action:_sleepNow:]
  58. //[textEntryItem set]
  59. TSKSettingItem *multiItem = [TSKSettingItem multiValueItemWithTitle:@"Spoofed Version" description:@"The version you are going to spoof." representedObject:facade keyPath:@"SpoofVersion" availableValues:@[@"11.1", @"11.2", @"11.3", @"11.4"]];
  60. TSKSettingGroup *group = [TSKSettingGroup groupWithTitle:nil settingItems:@[toggleItem, multiItem, textEntryItem]];
  61. [_backingArray addObject:group];
  62. [self setValue:_backingArray forKey:@"_settingGroups"];
  63. return _backingArray;
  64. }
  65. - (TVSPreferences *)ourPreferences {
  66. return [TVSPreferences preferencesWithDomain:@"com.nito.dalesdeadbug"];
  67. }
  68. - (void)showViewController:(TSKSettingItem *)item {
  69. NSLog(@"DDBSettings: showViewController: %@", item );
  70. TSKTextInputViewController *testObject = [[TSKTextInputViewController alloc] init];
  71. NSLog(@"DDBSettings:test object: %@", testObject);
  72. TVSPreferences *prefs = [TVSPreferences preferencesWithDomain:@"com.nito.dalesdeadbug"];
  73. testObject.headerText = @"Dales Dead Bug";
  74. testObject.initialText = [[self ourPreferences] stringForKey:item.keyPath];
  75. if ([testObject respondsToSelector:@selector(setEditingDelegate:)]){
  76. [testObject setEditingDelegate:self];
  77. NSLog(@"DDBSettings: after settings delegate: %@", testObject);
  78. }
  79. [testObject setEditingItem:item];
  80. [self.navigationController pushViewController:testObject animated:TRUE];
  81. }
  82. - (void)editingController:(id)arg1 didCancelForSettingItem:(TSKSettingItem *)arg2 {
  83. NSLog(@"DDBSettings: editingController %@ didCancelForSettingItem:%@", arg1, arg2);
  84. [super editingController:arg1 didCancelForSettingItem:arg2];
  85. }
  86. - (void)editingController:(id)arg1 didProvideValue:(id)arg2 forSettingItem:(TSKSettingItem *)arg3 {
  87. NSLog(@"DDBSettings: editingController %@ didProvideValue: %@ forSettingItem: %@", arg1, arg2, arg3);
  88. [super editingController:arg1 didProvideValue:arg2 forSettingItem:arg3];
  89. TVSPreferences *prefs = [TVSPreferences preferencesWithDomain:@"com.nito.dalesdeadbug"];
  90. NSLog(@"DDBSettings: prefs: %@", prefs);
  91. //[arg3 setLocalizedValue:arg2];
  92. [prefs setObject:arg2 forKey:arg3.keyPath];
  93. NSLog(@"DDBSettings: setObjetct: arg2 forKey: %@", arg3.keyPath);
  94. [prefs synchronize];
  95. NSLog(@"DDBSettings: after prefs sync");
  96. //[self.navigationController popViewControllerAnimated:YES];
  97. }
  98. -(id)previewForItemAtIndexPath:(NSIndexPath *)indexPath {
  99. TSKPreviewViewController *item = [super previewForItemAtIndexPath:indexPath];
  100. TSKSettingGroup *currentGroup = self.settingGroups[indexPath.section];
  101. //NSLog(@"currentGroup: %@", currentGroup);
  102. TSKSettingItem *currentItem = currentGroup.settingItems[indexPath.row];
  103. //NSLog(@"current item: %@", currentItem);
  104. NSString *imagePath = [[NSBundle bundleForClass:self.class] pathForResource:@"icon" ofType:@"jpg"];
  105. UIImage *icon = [UIImage imageWithContentsOfFile:imagePath];
  106. //NSLog(@"DDBSettings: our icon: %@", imagePath);
  107. if (icon != nil) {
  108. TSKVibrantImageView *imageView = [[TSKVibrantImageView alloc] initWithImage:icon];
  109. //NSLog(@"current item: %@", imageView);
  110. [item setContentView:imageView];
  111. }
  112. //NSLog(@"previewForItemAtIndexPath: %@", item);
  113. return item;
  114. }
  115. @end