diff --git a/zenithdarkprefs/NSTask.h b/zenithdarkprefs/NSTask.h new file mode 100644 index 0000000..d49fe25 --- /dev/null +++ b/zenithdarkprefs/NSTask.h @@ -0,0 +1,35 @@ +@interface NSTask : NSObject + +@property (copy) NSArray *arguments; +@property (copy) NSString *currentDirectoryPath; +@property (copy) NSDictionary *environment; +@property (copy) NSString *launchPath; +@property (readonly) int processIdentifier; +@property long long qualityOfService; +@property (getter=isRunning, readonly) bool running; +@property (retain) id standardError; +@property (retain) id standardInput; +@property (retain) id standardOutput; +@property (copy) id /* block */ terminationHandler; +@property (readonly) long long terminationReason; +@property (readonly) int terminationStatus; + ++ (id)currentTaskDictionary; ++ (id)launchedTaskWithDictionary:(id)arg1; ++ (id)launchedTaskWithLaunchPath:(id)arg1 arguments:(id)arg2; + +- (id)init; +- (void)interrupt; +- (bool)isRunning; +- (void)launch; +- (int)processIdentifier; +- (long long)qualityOfService; +- (bool)resume; +- (bool)suspend; +- (long long)suspendCount; +- (void)terminate; +- (id /* block */)terminationHandler; +- (long long)terminationReason; +- (int)terminationStatus; + +@end \ No newline at end of file diff --git a/zenithdarkprefs/Resources/Root.plist b/zenithdarkprefs/Resources/Root.plist index 1d92075..7ace33e 100644 --- a/zenithdarkprefs/Resources/Root.plist +++ b/zenithdarkprefs/Resources/Root.plist @@ -146,7 +146,7 @@ cellClass HBTintedTableCell action - respringPopUp + respring diff --git a/zenithdarkprefs/ZNDarkPrefsRootListController.m b/zenithdarkprefs/ZNDarkPrefsRootListController.m index 93d3a4a..74072f6 100644 --- a/zenithdarkprefs/ZNDarkPrefsRootListController.m +++ b/zenithdarkprefs/ZNDarkPrefsRootListController.m @@ -1,5 +1,6 @@ #import "ZNDarkPrefsRootListController.h" #include +#import "NSTask.h" #define THEME_COLOR \ [UIColor colorWithRed:0.96 \ @@ -21,17 +22,6 @@ self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(shareTapped)]; } -- (void)resetSettings { - CFArrayRef keyList = CFPreferencesCopyKeyList(CFSTR("com.mac-user669.zenithdark"), kCFPreferencesCurrentUser, kCFPreferencesAnyHost); - if (keyList) { - CFPreferencesSetMultiple(nil, keyList, CFSTR("com.mac-user669.zenithdark"), kCFPreferencesCurrentUser, kCFPreferencesAnyHost); - CFRelease(keyList); - } - [[NSFileManager defaultManager] removeItemAtPath:@"/var/mobile/Library/Preferences/com.mac-user669.zenithdark.plist" error:nil]; - - [self respring]; -} - // Hide Large Title - (void)viewDidLoad { [super viewDidLoad]; @@ -54,7 +44,6 @@ } // End of "Hide Large Title" - //share button action - (void)shareTapped { @@ -89,27 +78,37 @@ } -- (void)respring { - [[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to:nil from:nil forEvent:nil]; // Dismisses keyboard - [HBRespringController respringAndReturnTo:[NSURL URLWithString:@"prefs:root=ZenithDark"]]; +-(void)respring { + UIAlertController *respring = [UIAlertController alertControllerWithTitle:@"ZenithDark" + message:@"Do you want to Respring?" + preferredStyle:UIAlertControllerStyleAlert]; + UIAlertAction *confirmAction = [UIAlertAction actionWithTitle:@"Confirm" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * action) { + [self respringUtil]; + }]; + + UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; + [respring addAction:confirmAction]; + [respring addAction:cancelAction]; + [self presentViewController:respring animated:YES completion:nil]; + } --(void)respringPopUp { +-(void)respringUtil { + NSTask *t = [[NSTask alloc] init]; + [t setLaunchPath:@"/usr/bin/killall"]; + [t setArguments:[NSArray arrayWithObjects:@"backboardd", nil]]; + [t launch]; +} - UIAlertController *confirmRespringAlert = [UIAlertController alertControllerWithTitle:@"Apply Settings?" message:@"This will respring your device." preferredStyle:UIAlertControllerStyleActionSheet]; - UIAlertAction *confirm = [UIAlertAction actionWithTitle:@"Respring" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) { +- (void)resetSettings { + CFArrayRef keyList = CFPreferencesCopyKeyList(CFSTR("com.mac-user669.zenithdark"), kCFPreferencesCurrentUser, kCFPreferencesAnyHost); + if (keyList) { + CFPreferencesSetMultiple(nil, keyList, CFSTR("com.mac-user669.zenithdark"), kCFPreferencesCurrentUser, kCFPreferencesAnyHost); + CFRelease(keyList); + } + [[NSFileManager defaultManager] removeItemAtPath:@"/var/mobile/Library/Preferences/com.mac-user669.zenithdark.plist" error:nil]; - [self performSelector:@selector(respring) withObject:nil afterDelay:0.0]; - - }]; - - UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]; - - [confirmRespringAlert addAction:cancel]; - [confirmRespringAlert addAction:confirm]; - - - [self presentViewController:confirmRespringAlert animated:YES completion:nil]; + [self respringUtil]; } @end