diff --git a/Makefile b/Makefile index 9a0afea..9866ab3 100644 --- a/Makefile +++ b/Makefile @@ -9,6 +9,7 @@ TWEAK_NAME = ZenithDark ZenithDark_FILES = Tweak.xm ZenithDark_FRAMEWORKS = UIKit CoreGraphics ZenithDark_EXTRA_FRAMEWORKS += Cephei +ZenithDark_LIBRARIES = sparkcolourpicker include $(THEOS_MAKE_PATH)/tweak.mk diff --git a/Tweak.xm b/Tweak.xm index b018735..4e01987 100644 --- a/Tweak.xm +++ b/Tweak.xm @@ -1,17 +1,11 @@ #import "ZenithDark.h" -#import -#import -#import /* - Dark Mode for Zenith's Grabber view! Copyright 2020 J.K. Hayslip (@iKilledAppl3) & ToxicAppl3 INSDC/iKilledAppl3 LLC. All code was written for learning purposes and credit must be given to the original author. Written for Cooper Hull, @mac-user669. - - */ %group Adaptive @@ -25,7 +19,7 @@ Written for Cooper Hull, @mac-user669. // if the tweak is enabled and the version is iOS 13 or later run our code if (@available(iOS 13, *)) { if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) { - [self setBackgroundColor:kDarkColor]; + [self setBackgroundColor:kColor1]; } else { @@ -40,17 +34,24 @@ else { } - - // the method we modify is this method that is called from UIImageView to set the backgroundColor of the image view. // Since the grabber view is of type UIImageView we can modify this method :) -(void)setBackgroundColor:(UIColor *)backgroundColor { %orig; if (kEnabled) { + NSString* colourString = NULL; + NSDictionary* preferencesDictionary = [NSDictionary dictionaryWithContentsOfFile: @"/var/mobile/Library/Preferences/com.mac-user669.zenithdark.plist"]; + if(preferencesDictionary) + { + colourString = [preferencesDictionary objectForKey: @"kCustomDarkColor"]; + } + + UIColor* darkColor = [SparkColourPickerUtils colourWithString: colourString withFallback: @"#FF00FF"]; + // by default have our tweak overide this. if (@available(iOS 13, *)) { if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) { - %orig(kDarkColor); + %orig(darkColor); } } @@ -63,89 +64,6 @@ else { %end // We need to make sure we tell theos that we are finished hooking this class not doing so with cause the end of the world :P %end - -%group justDark - -//We then hook the class in this case Zenith's grabber view is called “ZNGrabberAccessoryView” -%hook ZNGrabberAccessoryView -// The method we then modify is this method that is called from UIImageView to set the backgroundColor of the image view. -// Since the grabber view is of type UIImageView we can modify this method :) - --(void)setBackgroundColor:(UIColor *)backgroundColor { - //call the original function then pass our custom argument to the backgroundColor argument as shown below. - %orig(kDarkColor); -} - -// We need to make sure we tell theos that we are finished hooking this class not doing so with cause the end of the world :P -%end -%end - -%group OLEDadaptive -// We then hook the class in this case Zenith's grabber view is called “ZNGrabberAccessoryView” -%hook ZNGrabberAccessoryView - -// this is called when iOS 13's dark mode is enabled! --(void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection { - %orig(previousTraitCollection); - if (kEnabled) { - // if the tweak is enabled and the version is iOS 13 or later run our code - if (@available(iOS 13, *)) { - if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) { - [self setBackgroundColor:kOLEDColor]; - } - - else { - [self setBackgroundColor:kLightColor]; - } - } -} - -else { - %orig(previousTraitCollection); -} - -} - - - -// the method we modify is this method that is called from UIImageView to set the backgroundColor of the image view. -// Since the grabber view is of type UIImageView we can modify this method :) --(void)setBackgroundColor:(UIColor *)backgroundColor { - %orig; - if (kEnabled) { - // by default have our tweak overide this. - if (@available(iOS 13, *)) { - if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) { - %orig(kOLEDColor); - } - } - - else { - %orig; - } - } -} - - %end // We need to make sure we tell theos that we are finished hooking this class not doing so with cause the end of the world :P -%end - -%group OLEDgroup - -//We then hook the class in this case Zenith's grabber view is called “ZNGrabberAccessoryView” -%hook ZNGrabberAccessoryView -// The method we then modify is this method that is called from UIImageView to set the backgroundColor of the image view. -// Since the grabber view is of type UIImageView we can modify this method :) - --(void)setBackgroundColor:(UIColor *)backgroundColor { - //call the original function then pass our custom argument to the backgroundColor argument as shown below. - %orig(kOLEDColor); -} - -// We need to make sure we tell theos that we are finished hooking this class not doing so with cause the end of the world :P -%end -%end - - static void loadPrefs() { // Load preferences to make sure changes are written to the plist // Thanks to skittyblock! @@ -162,8 +80,6 @@ static void loadPrefs() { // Load preferences to make sure changes are written } kEnabled = [([prefs objectForKey:@"kEnabled"] ?: @(YES)) boolValue]; //our preference values that write to a plist file when a user selects somethings - sortType = [([prefs objectForKey:@"sortingType"] ? [prefs objectForKey:@"sortingType"] : @"0") integerValue]; - } @@ -177,21 +93,7 @@ static void PreferencesChangedCallback(CFNotificationCenterRef center, void *obs loadPrefs(); // Load our prefs if (kEnabled) { // If enabled - if (sortType == ZNDarkSortTypeAdaptive) { %init(Adaptive); // Enable the group "Adaptive" - } - - else if (sortType == ZNDarkSortTypeDark) { - %init(justDark); // Enable the group "Adaptive" - } - - else if (sortType == ZNDarkSortTypeOLEDAdaptive) { - %init(OLEDadaptive); // Enable the group "OLEDgroup" - } - - else if (sortType == ZNDarkSortTypeOLED) { - %init(OLEDgroup); // Enable the group "OLEDgroup" - } } CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, (CFNotificationCallback) PreferencesChangedCallback, CFSTR("com.mac-user669.zenithdark.prefschanged"), NULL, CFNotificationSuspensionBehaviorDeliverImmediately); diff --git a/ZenithDark.h b/ZenithDark.h index b9e14d7..7a80d81 100644 --- a/ZenithDark.h +++ b/ZenithDark.h @@ -12,6 +12,11 @@ ZenithDark Header file to keep the tweak.x file clean! */ +#import +#import +#import +#import "SparkColourPickerUtils.h" + // We then import UIKit so we can override the color property without this Theos doesn't have a clue what those properties are. @import UIKit; @@ -19,14 +24,6 @@ ZenithDark Header file to keep the tweak.x file clean! @interface ZNGrabberAccessoryView : UIImageView @end -typedef NS_ENUM(NSUInteger, ZNDarkSortType) { - ZNDarkSortTypeAdaptive, - ZNDarkSortTypeDark, - ZNDarkSortTypeOLEDAdaptive, - ZNDarkSortTypeOLED -}; - -static ZNDarkSortType sortType = ZNDarkSortTypeAdaptive; // a boolean value to store to the tweak's property list path to see if the user has enabled or disabled the tweak. BOOL kEnabled; @@ -39,6 +36,6 @@ NSMutableDictionary *prefs; // Stock Zenith color we are using macros so we can call it later if need be. #define kLightColor [UIColor colorWithWhite:1.0 alpha:0.7] -#define kOLEDColor [UIColor colorWithWhite:0.0 alpha:0.75] +#define kColor1 [UIColor redColor] // the PLIST path where all user settings are stored. #define PLIST_PATH @"/var/mobile/Library/Preferences/com.mac-user669.zenithdark.plist" diff --git a/control b/control index fac59a2..d65cb7e 100644 --- a/control +++ b/control @@ -1,8 +1,8 @@ Package: com.mac-user669.zenithdark -Version: 1.4.1 +Version: 1.5 Architecture: iphoneos-arm Maintainer: mac-user669 -Depends: mobilesubstrate, preferenceloader, com.muirey03.zenith, ws.hbang.common (>= 1.11), firmware (>=13.0) +Depends: mobilesubstrate, preferenceloader, com.muirey03.zenith, ws.hbang.common (>= 1.11), firmware (>=13.0), com.spark.libsparkcolourpicker Section: Tweaks Description: Changes Zeniths tabs to a dark blur Author: mac-user669 diff --git a/layout/Library/Application Support/ZenithDark/ZNDark 2.png b/layout/Library/Application Support/ZenithDark/ZNDark 2.png new file mode 100644 index 0000000..0bff729 Binary files /dev/null and b/layout/Library/Application Support/ZenithDark/ZNDark 2.png differ diff --git a/zenithdarkprefs/Makefile b/zenithdarkprefs/Makefile index 62b8566..1916a17 100644 --- a/zenithdarkprefs/Makefile +++ b/zenithdarkprefs/Makefile @@ -12,7 +12,7 @@ ZenithDarkPrefs_INSTALL_PATH = /Library/PreferenceBundles ZenithDarkPrefs_FRAMEWORKS = UIKit ZenithDarkPrefs_PRIVATE_FRAMEWORKS = Preferences ZenithDarkPrefs_EXTRA_FRAMEWORKS = Cephei CepheiPrefs - +ZenithDarkPrefs_LIBRARIES = sparkcolourpicker include $(THEOS_MAKE_PATH)/bundle.mk diff --git a/zenithdarkprefs/Resources/Root.plist b/zenithdarkprefs/Resources/Root.plist index b75d015..4e0f107 100644 --- a/zenithdarkprefs/Resources/Root.plist +++ b/zenithdarkprefs/Resources/Root.plist @@ -40,35 +40,35 @@ label Enable + cell PSGroupCell label - Color Type + Color Options cell - PSSegmentCell - default - 0 - defaults - com.mac-user669.zenithdark + PSLinkCell + cellClass + SparkColourPickerCell + libsparkcolourpicker + + defaults + com.mac-user669.zenithdark + key + kCustomDarkColor + fallback + #000000:0.44 + alpha + + + label + Color key - sortingType - validValues - - 0 - 1 - 2 - 3 - - validTitles - - Adaptive - Dark - OLED Adaptive - OLED - + kCustomDarkColor + PostNotification + com.mac-user669.zenithdark.prefschanged