hide/show/change stuff on the LS and HS https://github.com/viggou/Kage
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

173 lines
5.1KB

  1. // respring function
  2. @interface FBSystemService : NSObject
  3. +(id)sharedInstance;
  4. -(void)exitAndRelaunch:(bool)arg1;
  5. @end
  6. static void RespringDevice() {
  7. [[%c(FBSystemService) sharedInstance] exitAndRelaunch:YES];
  8. }
  9. // prefs
  10. @interface NSUserDefaults (KagePrefs)
  11. -(id)objectForKey:(NSString *)key inDomain:(NSString *)domain;
  12. -(void)setObject:(id)value forKey:(NSString *)key inDomain:(NSString *)domain;
  13. @end
  14. static NSString *nsDomainString = @"com.yaypixxo.kage";
  15. static NSString *nsNotificationString = @"com.yaypixxo.kage/preferences.changed";
  16. // declare pref things here (switches, buttons, etc.)
  17. static BOOL enabled;
  18. static BOOL hideQuickActionsBG;
  19. static BOOL gridSwitcher;
  20. static BOOL hideLSBatt;
  21. static BOOL statusBarShowTimeLS;
  22. static BOOL hideLabels;
  23. static BOOL hideFolderBadges;
  24. static void notificationCallback(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo) {
  25. NSNumber *eEnabled = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"enabled" inDomain:nsDomainString];
  26. NSNumber *eHideQuickActionsBG = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"hideQuickActionsBG" inDomain:nsDomainString];
  27. NSNumber *eGridSwitcher = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"gridSwitcher" inDomain:nsDomainString];
  28. NSNumber *eHideLSBatt = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"hideLSBatt" inDomain:nsDomainString];
  29. NSNumber *eStatusBarShowTimeLS = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"statusBarShowTimeLS" inDomain:nsDomainString];
  30. NSNumber *eHideLabels = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"hideLabels" inDomain:nsDomainString];
  31. NSNumber *eHideFolderBadges = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"hideFolderBadges" inDomain:nsDomainString];
  32. enabled = (eEnabled) ? [eEnabled boolValue]:NO;
  33. hideQuickActionsBG = (eHideQuickActionsBG) ? [eHideQuickActionsBG boolValue]:NO;
  34. gridSwitcher = (eGridSwitcher) ? [eGridSwitcher boolValue]:NO;
  35. hideLSBatt = (eHideLSBatt) ? [eHideLSBatt boolValue]:NO;
  36. statusBarShowTimeLS = (eStatusBarShowTimeLS) ? [eStatusBarShowTimeLS boolValue]:NO;
  37. hideLabels = (eHideLabels) ? [eHideLabels boolValue]:NO;
  38. hideFolderBadges = (eHideFolderBadges) ? [eHideFolderBadges boolValue]:NO;
  39. }
  40. // headers and hooks
  41. #import <UIKit/UIKit.h>
  42. @interface SBIconView : UIView
  43. -(void)setLabelHidden:(BOOL)hidden;
  44. @end
  45. @interface SBIcon : NSObject
  46. -(id)badgeNumberOrString;
  47. @end
  48. // QUICK ACTIONS BG START //
  49. %hook UICoverSheetButton
  50. -(id)_backgroundEffectsWithBrightness:(double)arg1 {
  51. if (enabled && hideQuickActionsBG) {
  52. return 0;
  53. }
  54. else {
  55. return %orig;
  56. }
  57. }
  58. %end
  59. // QUICK ACTIONS BG END //
  60. // HIDE BADGE TEXT START //
  61. %hook SBIcon
  62. -(id)badgeNumberOrString {
  63. if (enabled && hideFolderBadges) {
  64. return @"";
  65. }
  66. else {
  67. return %orig;
  68. }
  69. }
  70. %end
  71. // HIDE BADGE TEXT END //
  72. // HIDE LABELS START //
  73. %hook SBIconView
  74. -(void)setLabelHidden:(BOOL)hidden {
  75. if (enabled && hideLabels) {
  76. hidden = YES;
  77. }
  78. %orig;
  79. }
  80. %end
  81. // HIDE LABELS END //
  82. // GRID SWITCHER START //
  83. %hook SBAppSwitcherSettings
  84. - (void)setGridSwitcherPageScale:(double)arg1 {
  85. if (enabled && gridSwitcher) {
  86. arg1 = 0.4;
  87. }
  88. %orig;
  89. }
  90. - (void)setGridSwitcherHorizontalInterpageSpacingPortrait:(double)arg1 {
  91. if (enabled && gridSwitcher) {
  92. arg1 = 25.5;
  93. }
  94. %orig;
  95. }
  96. - (void)setGridSwitcherHorizontalInterpageSpacingLandscape:(double)arg1 {
  97. if (enabled && gridSwitcher) {
  98. arg1 = 11.6;
  99. }
  100. %orig;
  101. }
  102. - (void)setGridSwitcherVerticalNaturalSpacingPortrait:(double)arg1 {
  103. if (enabled && gridSwitcher) {
  104. arg1 = 42;
  105. }
  106. %orig;
  107. }
  108. - (void)setGridSwitcherVerticalNaturalSpacingLandscape:(double)arg1 {
  109. if (enabled && gridSwitcher) {
  110. arg1 = 38;
  111. }
  112. %orig;
  113. }
  114. - (void)setSwitcherStyle:(long long)arg1 {
  115. if (enabled && gridSwitcher) {
  116. arg1 = 2;
  117. }
  118. %orig;
  119. }
  120. %end
  121. // GRID SWITCHER END //
  122. // NO LS BATTERY START //
  123. %hook CSCoverSheetViewController
  124. - (void)_transitionChargingViewToVisible:(bool)arg1 showBattery:(bool)arg2 animated:(bool)arg3 {
  125. if (enabled && hideLSBatt) {
  126. arg1 = 0;
  127. }
  128. %orig;
  129. }
  130. %end
  131. // NO LS BATTERY END //
  132. // SHOW TIME IN LS STATUSBAR START //
  133. %hook CSCoverSheetViewController
  134. - (bool)shouldShowLockStatusBarTime {
  135. if (enabled && statusBarShowTimeLS) {
  136. return 1;
  137. }
  138. else {
  139. return %orig;
  140. }
  141. }
  142. %end
  143. // SHOW TIME IN LS STATUSBAR END //
  144. // LISTENERS
  145. %ctor {
  146. // prefs changed listener
  147. notificationCallback(NULL, NULL, NULL, NULL, NULL);
  148. CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, notificationCallback, (CFStringRef)nsNotificationString, NULL, CFNotificationSuspensionBehaviorCoalesce);
  149. // respring listener
  150. CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, (CFNotificationCallback)RespringDevice, CFSTR("com.yaypixxo.kage/respring"), NULL, CFNotificationSuspensionBehaviorDeliverImmediately);
  151. }