spogulis no
				https://github.com/Burrit0z/Dockify_Source.git
				synced 2025-10-31 21:16:19 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			192 rindas
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Izpildāmais fails
		
	
	
	
	
			
		
		
	
	
			192 rindas
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Izpildāmais fails
		
	
	
	
	
| //Please note, in order to use MSHookIvar, this file needs to be .xm
 | |
| #import <Cephei/HBPreferences.h>
 | |
| #import <Foundation/Foundation.h>
 | |
| 
 | |
| @interface SBCoverSheetPrimarySlidingViewController : UIViewController
 | |
| - (void)viewDidDisappear:(BOOL)arg1;
 | |
| - (void)viewDidAppear:(BOOL)arg1;
 | |
| @end
 | |
| 
 | |
| @interface SBIconListGridLayoutConfiguration
 | |
| @property (nonatomic, assign) NSString *location;
 | |
| 
 | |
| - (NSString *)findLocation;
 | |
| - (NSUInteger)numberOfPortraitColumns;
 | |
| - (NSUInteger)numberOfPortraitRows;
 | |
| @end
 | |
| 
 | |
| //Set up variables for use with Cephei
 | |
| static BOOL tweakEnabled;
 | |
| static BOOL transparent;
 | |
| static BOOL hidden;
 | |
| static double setHeight;
 | |
| static double customOpacity;
 | |
| static NSInteger setIconNumber;
 | |
| //nepeta like drm
 | |
| BOOL dpkgInvalid = NO;
 | |
| 
 | |
| HBPreferences *preferences;
 | |
| 
 | |
| %group allVersions
 | |
| %hook SBCoverSheetPrimarySlidingViewController
 | |
| - (void)viewDidDisappear:(BOOL)arg1 {
 | |
| 
 | |
|     %orig; //  Thanks to Nepeta for the DRM
 | |
|     if (!dpkgInvalid) return;
 | |
| 		UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Pirate Detected!"
 | |
| 		message:@"Seriously? Pirating a free Tweak is awful!\nPiracy repo's Tweaks could contain Malware if you didn't know that, so go ahead and get Dockify from the official Source https://Burrit0z.github.io/repo/.\nIf you're seeing this but you got it from the official source then make sure to add https://Burrit0z.github.io/repo to Cydia or Sileo."
 | |
| 		preferredStyle:UIAlertControllerStyleAlert];
 | |
| 
 | |
| 		UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Aww man" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * action) {
 | |
| 
 | |
| 			UIApplication *application = [UIApplication sharedApplication];
 | |
| 			[application openURL:[NSURL URLWithString:@"https://Burrit0z.github.io/repo"] options:@{} completionHandler:nil];
 | |
| 
 | |
| 	}];
 | |
|     [alertController addAction:cancelAction];
 | |
| 		[self presentViewController:alertController animated:YES completion:nil];
 | |
| 
 | |
| }
 | |
| %end
 | |
| %end
 | |
| 
 | |
| %group version12
 | |
| //hook the dock
 | |
| %hook SBDockView
 | |
| //ios 12
 | |
| -(double)dockHeight {
 | |
|   if (hidden) {
 | |
|     return (0);
 | |
|   } else {
 | |
|     return (%orig*setHeight); //sets custom height if dock is not set to hidden
 | |
|   }
 | |
| }
 | |
| //this deals with everything adjusting opacity/transparency
 | |
| //ios 12 and 13
 | |
| -(void)setBackgroundAlpha:(double)arg1 {
 | |
|     if (transparent == NO && hidden == NO) { //if not transparent and not hidden
 | |
|       %orig(customOpacity);
 | |
|     }else if (transparent || hidden) { // Note: || means or in objc
 | |
|       %orig(0.0); //hides background of the dock (transparent)
 | |
|     } else {
 | |
|       NSLog(@"Dock not Transparent/hidden, no custom opacity\n");
 | |
|     }
 | |
| }
 | |
| %end
 | |
| 
 | |
| //NEW HOOK FOR ICON STATE
 | |
| %hook SBDockIconListView
 | |
| //ios 12 required piece
 | |
| +(NSInteger)maxIcons {
 | |
|   if (hidden) {
 | |
|     return (0);
 | |
|   } else {
 | |
|     return (setIconNumber);
 | |
|   }
 | |
| }
 | |
| %end
 | |
| %end
 | |
| 
 | |
| //NEW GROUP FOR ios13
 | |
| %group version13
 | |
| %hook SBDockView
 | |
| //ios 13
 | |
| -(double)dockHeight {
 | |
|   if (hidden) {
 | |
|     return (0);
 | |
|   } else {
 | |
|     return (%orig*setHeight); //sets custom height if dock is not set to hidden
 | |
|   }
 | |
| }
 | |
| //this deals with everything adjusting opacity/transparency
 | |
| //ios 12 and 13
 | |
| -(void)setBackgroundAlpha:(double)arg1 {
 | |
|     if (transparent == NO && hidden == NO) { //if not transparent and not hidden
 | |
|       %orig(customOpacity);
 | |
|     }else if (transparent || hidden) { // Note: || means or in objc
 | |
|       %orig(0.0); //hides background of the dock (transparent)
 | |
|     } else {
 | |
|       NSLog(@"Dock not Transparent/hidden, no custom opacity\n");
 | |
|     }
 | |
| }
 | |
| %end
 | |
| %hook SBDockIconListView
 | |
| 
 | |
| - (NSUInteger)iconColumnsForCurrentOrientation {
 | |
|   if (hidden) {
 | |
|     return (0);
 | |
|   } else {
 | |
|     return (setIconNumber);
 | |
|   }
 | |
| }
 | |
| %end
 | |
| //fix for icons being off the page ios 13
 | |
| %hook SBIconListGridLayoutConfiguration
 | |
| 
 | |
| %property (nonatomic, assign) NSString *location;
 | |
| 
 | |
| %new //Modeled off of Kritanta's solution with ivars
 | |
| - (NSString *)findLocation {
 | |
|     if (self.location) return self.location;
 | |
|     else {
 | |
|         NSUInteger rows = MSHookIvar<NSUInteger>(self, "_numberOfPortraitRows");
 | |
|         NSUInteger columns = MSHookIvar<NSUInteger>(self, "_numberOfPortraitColumns");
 | |
|         // dock
 | |
|         if (rows <= 2 && columns == 4) {
 | |
|             self.location =  @"Dock";
 | |
|         } else if (rows == 3 && columns == 3) {
 | |
|             self.location =  @"Folder";
 | |
|         } else {
 | |
|             self.location =  @"Root";
 | |
|         }
 | |
|     }
 | |
|     return self.location;
 | |
| }
 | |
| 
 | |
| - (NSUInteger)numberOfPortraitColumns {
 | |
|   [self findLocation];
 | |
|     if ([self.location isEqualToString:@"Dock"]) {
 | |
|       if (hidden) {
 | |
|         return (0);
 | |
|       } else {
 | |
|         return (setIconNumber);
 | |
|       }
 | |
|     } else {
 | |
|       return (%orig);
 | |
|     }
 | |
| }
 | |
| %end
 | |
| %end
 | |
| // Thanks to Nepeta for the DRM, and thanks to Litten as well
 | |
| %ctor {
 | |
|   dpkgInvalid = ![[NSFileManager defaultManager] fileExistsAtPath:@"/var/lib/dpkg/info/com.burritoz.dockify.list"];
 | |
|   if (!dpkgInvalid) dpkgInvalid = ![[NSFileManager defaultManager] fileExistsAtPath:@"/var/lib/dpkg/info/com.burritoz.dockify.md5sums"];
 | |
| 
 | |
| 
 | |
| 	preferences = [[HBPreferences alloc] initWithIdentifier:@"com.burritoz.dockifyprefs"];
 | |
|   [preferences registerDefaults:@ { //defaults for prefernces
 | |
|     @"tweakEnabled": @YES,
 | |
|     @"setHeight": @1,
 | |
|     @"customOpacity": @1,
 | |
|     @"hidden": @NO,
 | |
|     @"setIconNumber": @4,
 | |
| 	}];
 | |
|   [preferences registerBool:&tweakEnabled default:YES forKey:@"tweakEnabled"];
 | |
| 	[preferences registerBool:&transparent default:YES forKey:@"transparent"]; //registering transparent as a Boolean
 | |
|   [preferences registerBool:&hidden default:NO forKey:@"hidden"]; //registering hidden as a Boolean
 | |
| 	[preferences registerDouble:(double *)&setHeight default:1 forKey:@"setHeight"]; //registering setHeigt as a double (number)
 | |
|   [preferences registerDouble:(double *)&customOpacity default:1 forKey:@"customOpacity"]; //registering customOpacity as a double (number)
 | |
|   [preferences registerInteger:(NSInteger *)&setIconNumber default:4 forKey:@"setIconNumber"]; //Integer of how many icons to allow
 | |
| if (tweakEnabled) {
 | |
|   %init(allVersions);
 | |
|   if (kCFCoreFoundationVersionNumber < 1600) //This means version < 12
 | |
|     {
 | |
|         %init(version12);
 | |
|     }
 | |
|     else
 | |
|     {
 | |
|         %init(version13);
 | |
|     }
 | |
|   }
 | |
| }
 |