diff --git a/Tweak.xm b/Tweak.xm
index 9747273..b018735 100644
--- a/Tweak.xm
+++ b/Tweak.xm
@@ -9,12 +9,12 @@ 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).
+Written for Cooper Hull, @mac-user669.
*/
-%group Tweak13
+%group Adaptive
// We then hook the class in this case Zenith's grabber view is called “ZNGrabberAccessoryView”
%hook ZNGrabberAccessoryView
@@ -25,11 +25,11 @@ 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:kDarkModeColor];
+ [self setBackgroundColor:kDarkColor];
}
else {
- [self setBackgroundColor:kLightModeColor];
+ [self setBackgroundColor:kLightColor];
}
}
}
@@ -50,7 +50,7 @@ else {
// by default have our tweak overide this.
if (@available(iOS 13, *)) {
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
- %orig(kDarkModeColor);
+ %orig(kDarkColor);
}
}
@@ -63,10 +63,8 @@ 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
-static BOOL ios13;
-
-%group Tweak12
+%group justDark
//We then hook the class in this case Zenith's grabber view is called “ZNGrabberAccessoryView”
%hook ZNGrabberAccessoryView
@@ -75,7 +73,72 @@ static BOOL ios13;
-(void)setBackgroundColor:(UIColor *)backgroundColor {
//call the original function then pass our custom argument to the backgroundColor argument as shown below.
- %orig(kDarkModeColor);
+ %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
@@ -99,6 +162,8 @@ 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];
+
}
@@ -112,12 +177,20 @@ static void PreferencesChangedCallback(CFNotificationCenterRef center, void *obs
loadPrefs(); // Load our prefs
if (kEnabled) { // If enabled
- if (@available(iOS 13, *)) { // If the device is running iOS 13
- ios13 = YES; // Set "iOS13" to "YES"
- %init(Tweak13); // Enable the group "Tweak13"
- } else {
- ios13 = NO; // Set "iOS13" to "NO"
- %init(Tweak12); // Enable the group "Tweak12"
+ 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"
}
}
diff --git a/ZenithDark.h b/ZenithDark.h
index f88a3ba..b9e14d7 100644
--- a/ZenithDark.h
+++ b/ZenithDark.h
@@ -19,6 +19,14 @@ 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;
@@ -26,10 +34,11 @@ BOOL kEnabled;
NSMutableDictionary *prefs;
// Dark Zenith color we are using macros so we can call it later if need be.
-#define kDarkModeColor [UIColor colorWithWhite:0.0 alpha:0.44]
+#define kDarkColor [UIColor colorWithWhite:0.0 alpha:0.44]
// Stock Zenith color we are using macros so we can call it later if need be.
-#define kLightModeColor [UIColor colorWithWhite:1.0 alpha:0.7]
+#define kLightColor [UIColor colorWithWhite:1.0 alpha:0.7]
+#define kOLEDColor [UIColor colorWithWhite:0.0 alpha:0.75]
// 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 9294f6e..bbc85a8 100644
--- a/control
+++ b/control
@@ -1,5 +1,5 @@
Package: com.mac-user669.zenithdark
-Version: 1.3
+Version: 1.4
Architecture: iphoneos-arm
Maintainer: mac-user669
Depends: mobilesubstrate, preferenceloader, com.muirey03.zenith, ws.hbang.common (>= 1.11)
diff --git a/zenithdarkprefs/Resources/Root.plist b/zenithdarkprefs/Resources/Root.plist
index d09febf..b75d015 100644
--- a/zenithdarkprefs/Resources/Root.plist
+++ b/zenithdarkprefs/Resources/Root.plist
@@ -40,6 +40,45 @@
label
Enable
+
+ cell
+ PSGroupCell
+ label
+ Color Type
+
+
+ cell
+ PSSegmentCell
+ default
+ 0
+ defaults
+ com.mac-user669.zenithdark
+ key
+ sortingType
+ validValues
+
+ 0
+ 1
+ 2
+ 3
+
+ validTitles
+
+ Adaptive
+ Dark
+ OLED Adaptive
+ OLED
+
+
+
+
+ cell
+ PSGroupCell
+ label
+
+ footerText
+ A respring is needed to apply changes
+
cell