hide/show/change stuff on the LS and HS
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

292 lines
8.0KB

  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 hideCarPlayLabels;
  24. static BOOL hideFolderBadges;
  25. //static BOOL hideStatusBarLS;
  26. static BOOL hideCCGrabber;
  27. static void notificationCallback(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo) {
  28. NSNumber *eEnabled = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"enabled" inDomain:nsDomainString];
  29. NSNumber *eHideQuickActionsBG = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"hideQuickActionsBG" inDomain:nsDomainString];
  30. NSNumber *eGridSwitcher = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"gridSwitcher" inDomain:nsDomainString];
  31. NSNumber *eHideLSBatt = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"hideLSBatt" inDomain:nsDomainString];
  32. NSNumber *eStatusBarShowTimeLS = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"statusBarShowTimeLS" inDomain:nsDomainString];
  33. NSNumber *eHideLabels = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"hideLabels" inDomain:nsDomainString];
  34. NSNumber *eHideCarPlayLabels = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"hideCarPlayLabels" inDomain:nsDomainString];
  35. NSNumber *eHideFolderBadges = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"hideFolderBadges" inDomain:nsDomainString];
  36. //NSNumber *eHideStatusBarLS = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"hideStatusBarLS" inDomain:nsDomainString];
  37. NSNumber *eHideCCGrabber = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"hideCCGrabber" inDomain:nsDomainString];
  38. enabled = (eEnabled) ? [eEnabled boolValue]:NO;
  39. hideQuickActionsBG = (eHideQuickActionsBG) ? [eHideQuickActionsBG boolValue]:NO;
  40. gridSwitcher = (eGridSwitcher) ? [eGridSwitcher boolValue]:NO;
  41. hideLSBatt = (eHideLSBatt) ? [eHideLSBatt boolValue]:NO;
  42. statusBarShowTimeLS = (eStatusBarShowTimeLS) ? [eStatusBarShowTimeLS boolValue]:NO;
  43. hideLabels = (eHideLabels) ? [eHideLabels boolValue]:NO;
  44. hideCarPlayLabels = (eHideCarPlayLabels) ? [eHideCarPlayLabels boolValue]:NO;
  45. hideFolderBadges = (eHideFolderBadges) ? [eHideFolderBadges boolValue]:NO;
  46. //hideStatusBarLS = (eHideStatusBarLS) ? [eHideStatusBarLS boolValue]:NO;
  47. hideCCGrabber = (eHideCCGrabber) ? [eHideCCGrabber boolValue]:NO;
  48. }
  49. // headers and hooks
  50. #import <UIKit/UIKit.h>
  51. @interface SBIconView : UIView
  52. -(void)setLabelHidden:(BOOL)hidden;
  53. @end
  54. @interface SBIcon : NSObject
  55. -(id)badgeNumberOrString;
  56. @end
  57. @interface CSTeachableMomentsContainerView {
  58. }
  59. @property (nonatomic,retain) UIView * controlCenterGrabberView;
  60. @end
  61. @interface SBDashBoardTeachableMomentsContainerView {
  62. }
  63. @property (nonatomic,retain) UIView * controlCenterGrabberView;
  64. @end
  65. #ifndef kCFCoreFoundationVersionNumber_iOS_13_0
  66. #define kCFCoreFoundationVersionNumber_iOS_13_0 1665.15
  67. #endif
  68. #define kSLSystemVersioniOS13 kCFCoreFoundationVersionNumber >= kCFCoreFoundationVersionNumber_iOS_13_0
  69. %group universal
  70. // QUICK ACTIONS BG START //
  71. %hook UICoverSheetButton
  72. -(id)_backgroundEffectsWithBrightness:(double)arg1 {
  73. if (enabled && hideQuickActionsBG) {
  74. return 0;
  75. }
  76. else {
  77. return %orig;
  78. }
  79. }
  80. %end
  81. // QUICK ACTIONS BG END //
  82. // HIDE FOLDER BADGE TEXT START //
  83. %hook SBIcon
  84. -(id)badgeNumberOrString {
  85. if (enabled && hideFolderBadges) {
  86. return @"";
  87. }
  88. else {
  89. return %orig;
  90. }
  91. }
  92. %end
  93. // HIDE FOLDER BADGE TEXT END //
  94. // HIDE LABELS START //
  95. %hook SBIconView
  96. -(void)setLabelHidden:(BOOL)hidden {
  97. if (enabled && hideLabels) {
  98. hidden = YES;
  99. }
  100. %orig;
  101. }
  102. %end
  103. // HIDE LABELS END //
  104. // GRID SWITCHER START //
  105. %hook SBAppSwitcherSettings
  106. - (void)setGridSwitcherPageScale:(double)arg1 {
  107. if (enabled && gridSwitcher) {
  108. arg1 = 0.4;
  109. }
  110. %orig;
  111. }
  112. - (void)setGridSwitcherHorizontalInterpageSpacingPortrait:(double)arg1 {
  113. if (enabled && gridSwitcher) {
  114. arg1 = 25.5;
  115. }
  116. %orig;
  117. }
  118. - (void)setGridSwitcherHorizontalInterpageSpacingLandscape:(double)arg1 {
  119. if (enabled && gridSwitcher) {
  120. arg1 = 11.6;
  121. }
  122. %orig;
  123. }
  124. - (void)setGridSwitcherVerticalNaturalSpacingPortrait:(double)arg1 {
  125. if (enabled && gridSwitcher) {
  126. arg1 = 42;
  127. }
  128. %orig;
  129. }
  130. - (void)setGridSwitcherVerticalNaturalSpacingLandscape:(double)arg1 {
  131. if (enabled && gridSwitcher) {
  132. arg1 = 38;
  133. }
  134. %orig;
  135. }
  136. - (void)setSwitcherStyle:(long long)arg1 {
  137. if (enabled && gridSwitcher) {
  138. arg1 = 2;
  139. }
  140. %orig;
  141. }
  142. %end
  143. // GRID SWITCHER END //
  144. // NO LS BATTERY START //
  145. %hook CSCoverSheetViewController
  146. - (void)_transitionChargingViewToVisible:(bool)arg1 showBattery:(bool)arg2 animated:(bool)arg3 {
  147. if (enabled && hideLSBatt) {
  148. arg1 = 0;
  149. }
  150. %orig;
  151. }
  152. %end
  153. // NO LS BATTERY END //
  154. %end // end universal group
  155. // stuff that only works on iOS 13
  156. %group ios13
  157. // SHOW TIME IN LS STATUSBAR START //
  158. %hook CSCoverSheetViewController
  159. - (bool)shouldShowLockStatusBarTime {
  160. if (enabled && statusBarShowTimeLS) {
  161. return YES;
  162. }
  163. else {
  164. return %orig;
  165. }
  166. }
  167. %end
  168. // SHOW TIME IN LS STATUSBAR END //
  169. // HIDE CC GRABBER START //
  170. %hook CSTeachableMomentsContainerView
  171. - (void)layoutSubviews {
  172. if (enabled && hideCCGrabber) {
  173. [self.controlCenterGrabberView setHidden:YES];
  174. }
  175. else {
  176. [self.controlCenterGrabberView setHidden:NO];
  177. }
  178. return %orig;
  179. }
  180. %end
  181. // HIDE CC GRABBER END //
  182. // HIDE CARPLAY LABELS START //
  183. %hook CARIconView
  184. +(CGSize)maxLabelSizeForIconImageSize:(CGSize)imageSize {
  185. if (enabled && hideCarPlayLabels) {
  186. return CGSizeZero;
  187. }
  188. else {
  189. return %orig;
  190. }
  191. }
  192. %end
  193. // HIDE CARPLAY LABELS END //
  194. %end // end ios13 group
  195. // stuff that only works on iOS 12
  196. %group ios12
  197. // SHOW TIME IN LS STATUSBAR START //
  198. %hook SBLockScreenViewControllerBase
  199. - (bool)shouldShowLockStatusBarTime {
  200. if (enabled && statusBarShowTimeLS) {
  201. return YES;
  202. }
  203. else {
  204. return %orig;
  205. }
  206. }
  207. %end
  208. // SHOW TIME IN LS STATUSBAR END //
  209. // HIDE CC GRABBER START //
  210. %hook SBDashBoardTeachableMomentsContainerView
  211. - (void)layoutSubviews {
  212. if (enabled && hideCCGrabber) {
  213. [self.controlCenterGrabberView setHidden:YES];
  214. }
  215. else {
  216. [self.controlCenterGrabberView setHidden:NO];
  217. }
  218. return %orig;
  219. }
  220. %end
  221. // HIDE CC GRABBER END //
  222. // HIDE CARPLAY LABELS START //
  223. %hook SBStarkIconView
  224. +(CGSize)maxLabelSize {
  225. if (enabled && hideCarPlayLabels) {
  226. return CGSizeZero;
  227. }
  228. else {
  229. return %orig;
  230. }
  231. }
  232. %end
  233. // HIDE CARPLAY LABELS END //
  234. %end // end ios12 group
  235. // LISTENERS
  236. %ctor {
  237. %init(universal);
  238. // check iOS version
  239. if (kSLSystemVersioniOS13) {
  240. %init(ios13);
  241. }
  242. else {
  243. %init(ios12);
  244. }
  245. // prefs changed listener
  246. notificationCallback(NULL, NULL, NULL, NULL, NULL);
  247. CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, notificationCallback, (CFStringRef)nsNotificationString, NULL, CFNotificationSuspensionBehaviorCoalesce);
  248. // respring listener
  249. CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, (CFNotificationCallback)RespringDevice, CFSTR("com.yaypixxo.kage/respring"), NULL, CFNotificationSuspensionBehaviorDeliverImmediately);
  250. }