DDBSettingsController.m 7.2 KB

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