Browse Source

Early Pref support, still a little wonky

master
Cooper Hull 4 years ago
parent
commit
53c5a14808
21 changed files with 195 additions and 79 deletions
  1. +1
    -1
      .theos/_/DEBIAN/control
  2. BIN
      .theos/_/Library/MobileSubstrate/DynamicLibraries/ZenithDark.dylib
  3. BIN
      .theos/_/Library/PreferenceBundles/ZenithDarkPrefs.bundle/Root.plist
  4. BIN
      .theos/obj/ZenithDark.dylib
  5. +1
    -30
      .theos/obj/ZenithDarkPrefs.bundle/Root.plist
  6. +20
    -0
      .theos/obj/arm64/Tweak.xm.27a6b95b.Td
  7. +20
    -0
      .theos/obj/arm64/Tweak.xm.c4e2add9.Td
  8. BIN
      .theos/obj/arm64/Tweak.xm.c4e2add9.o
  9. +12
    -9
      .theos/obj/arm64/Tweak.xm.mm
  10. BIN
      .theos/obj/arm64/ZenithDark.dylib
  11. BIN
      .theos/obj/arm64/ZenithDark.dylib.dSYM/Contents/Resources/DWARF/ZenithDark.dylib
  12. +20
    -0
      .theos/obj/arm64e/Tweak.xm.6fecb14d.Td
  13. BIN
      .theos/obj/arm64e/Tweak.xm.6fecb14d.o
  14. +108
    -0
      .theos/obj/arm64e/Tweak.xm.mm
  15. BIN
      .theos/obj/arm64e/ZenithDark.dylib
  16. BIN
      .theos/obj/arm64e/ZenithDark.dylib.dSYM/Contents/Resources/DWARF/ZenithDark.dylib
  17. +2
    -2
      Makefile
  18. +9
    -6
      Tweak.xm
  19. BIN
      packages/com.mac-user669.zenithdark_1.0_iphoneos-arm.deb
  20. +1
    -1
      zenithdarkprefs/Makefile
  21. +1
    -30
      zenithdarkprefs/Resources/Root.plist

+ 1
- 1
.theos/_/DEBIAN/control View File

@@ -9,4 +9,4 @@ Name: ZenithDark
Sileodepiction: https://raw.githubusercontent.com/mac-user669/repo/master/sileodepictions/ZenithDark.json
Depiction: https://mac-user669.github.io/repo/depictions/?p=com.mac-user669.zenithdark/
Version: 1.0
Installed-Size: 312
Installed-Size: 344

BIN
.theos/_/Library/MobileSubstrate/DynamicLibraries/ZenithDark.dylib View File


BIN
.theos/_/Library/PreferenceBundles/ZenithDarkPrefs.bundle/Root.plist View File


BIN
.theos/obj/ZenithDark.dylib View File


+ 1
- 30
.theos/obj/ZenithDarkPrefs.bundle/Root.plist View File

@@ -22,36 +22,7 @@
<key>label</key>
<string>Enable</string>
</dict>
<dict>
<key>cell</key>
<string>PSGroupCell</string>
<key>label</key>
<string>Customization</string>
</dict>
<dict>
<key>cell</key>
<string>PSSwitchCell</string>
<key>default</key>
<true/>
<key>defaults</key>
<string>com.mac-user669.zenithdarkprefs</string>
<key>key</key>
<string>replaceoriginalview</string>
<key>label</key>
<string>Replace Original View</string>
</dict>
<dict>
<key>cell</key>
<string>PSSwitchCell</string>
<key>default</key>
<false/>
<key>defaults</key>
<string>com.mac-user669.zenithdarkprefs</string>
<key>key</key>
<string>notificationBadgesEnabled</string>
<key>label</key>
<string>Enable Notification Badges</string>
</dict>

<dict>
<key>cell</key>
<string>PSGroupCell</string>

+ 20
- 0
.theos/obj/arm64/Tweak.xm.27a6b95b.Td View File

@@ -0,0 +1,20 @@
/Users/cooperhull/Desktop/Tweaks/ZenithDark/.theos/obj/arm64/Tweak.xm.27a6b95b.o: \
/Users/cooperhull/Desktop/Tweaks/ZenithDark/.theos/obj/arm64/Tweak.xm.mm \
/Users/cooperhull/theos/Prefix.pch \
/Users/cooperhull/theos/include/_Prefix/BackwardsCompat.h \
/Users/cooperhull/theos/include/_Prefix/IOSMacros.h \
/Users/cooperhull/theos/include/HBLog.h \
/Users/cooperhull/Desktop/Tweaks/ZenithDark/ZenithDark.h \
/Users/cooperhull/theos/include/substrate.h

/Users/cooperhull/theos/Prefix.pch:

/Users/cooperhull/theos/include/_Prefix/BackwardsCompat.h:

/Users/cooperhull/theos/include/_Prefix/IOSMacros.h:

/Users/cooperhull/theos/include/HBLog.h:

/Users/cooperhull/Desktop/Tweaks/ZenithDark/ZenithDark.h:

/Users/cooperhull/theos/include/substrate.h:

+ 20
- 0
.theos/obj/arm64/Tweak.xm.c4e2add9.Td View File

@@ -0,0 +1,20 @@
/Users/cooperhull/Desktop/Tweaks/ZenithDark/.theos/obj/arm64/Tweak.xm.c4e2add9.o: \
/Users/cooperhull/Desktop/Tweaks/ZenithDark/.theos/obj/arm64/Tweak.xm.mm \
/Users/cooperhull/theos/Prefix.pch \
/Users/cooperhull/theos/include/_Prefix/BackwardsCompat.h \
/Users/cooperhull/theos/include/_Prefix/IOSMacros.h \
/Users/cooperhull/theos/include/HBLog.h \
/Users/cooperhull/Desktop/Tweaks/ZenithDark/ZenithDark.h \
/Users/cooperhull/theos/include/substrate.h

/Users/cooperhull/theos/Prefix.pch:

/Users/cooperhull/theos/include/_Prefix/BackwardsCompat.h:

/Users/cooperhull/theos/include/_Prefix/IOSMacros.h:

/Users/cooperhull/theos/include/HBLog.h:

/Users/cooperhull/Desktop/Tweaks/ZenithDark/ZenithDark.h:

/Users/cooperhull/theos/include/substrate.h:

BIN
.theos/obj/arm64/Tweak.xm.c4e2add9.o View File


+ 12
- 9
.theos/obj/arm64/Tweak.xm.mm View File

@@ -13,8 +13,6 @@
#import "ZenithDark.h"

static BOOL enabled;
static BOOL replaceOriginalView;
static BOOL notificationBadgesEnabled;
static void loadPrefs() {
static NSMutableDictionary *settings;

@@ -27,13 +25,10 @@ static void loadPrefs() {
}

enabled = [([settings objectForKey:@"enabled"] ? [settings objectForKey:@"enabled"] : @(YES)) boolValue];
replaceOriginalView = [([settings objectForKey:@"replaceoriginalview"] ? [settings objectForKey:@"replaceoriginalview"] : @(YES)) boolValue];
notificationBadgesEnabled = [([settings objectForKey:@"notificationBadgesEnabled"] ? [settings objectForKey:@"notificationBadgesEnabled"] : NO) boolValue];
}




#include <substrate.h>
#if defined(__clang__)
#if __has_feature(objc_arc)
@@ -57,10 +52,11 @@ static void loadPrefs() {
@class ZNGrabberAccessoryView;
static void (*_logos_orig$_ungrouped$ZNGrabberAccessoryView$traitCollectionDidChange$)(_LOGOS_SELF_TYPE_NORMAL ZNGrabberAccessoryView* _LOGOS_SELF_CONST, SEL, UITraitCollection *); static void _logos_method$_ungrouped$ZNGrabberAccessoryView$traitCollectionDidChange$(_LOGOS_SELF_TYPE_NORMAL ZNGrabberAccessoryView* _LOGOS_SELF_CONST, SEL, UITraitCollection *); static void (*_logos_orig$_ungrouped$ZNGrabberAccessoryView$setBackgroundColor$)(_LOGOS_SELF_TYPE_NORMAL ZNGrabberAccessoryView* _LOGOS_SELF_CONST, SEL, UIColor *); static void _logos_method$_ungrouped$ZNGrabberAccessoryView$setBackgroundColor$(_LOGOS_SELF_TYPE_NORMAL ZNGrabberAccessoryView* _LOGOS_SELF_CONST, SEL, UIColor *);

#line 35 "Tweak.xm"

#line 30 "Tweak.xm"

static void _logos_method$_ungrouped$ZNGrabberAccessoryView$traitCollectionDidChange$(_LOGOS_SELF_TYPE_NORMAL ZNGrabberAccessoryView* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd, UITraitCollection * previousTraitCollection) {
if (enabled) {
_logos_orig$_ungrouped$ZNGrabberAccessoryView$traitCollectionDidChange$(self, _cmd, previousTraitCollection);
if (@available(iOS 13, *)) {
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
@@ -69,13 +65,16 @@ static void _logos_method$_ungrouped$ZNGrabberAccessoryView$traitCollectionDidCh

else {
[self setBackgroundColor:kLightModeColor];
}
}
}
_logos_orig$_ungrouped$ZNGrabberAccessoryView$traitCollectionDidChange$(self, _cmd, previousTraitCollection);
}



static void _logos_method$_ungrouped$ZNGrabberAccessoryView$setBackgroundColor$(_LOGOS_SELF_TYPE_NORMAL ZNGrabberAccessoryView* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd, UIColor * backgroundColor) {
if (enabled) {
if (@available(iOS 13, *)) {
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
@@ -84,15 +83,19 @@ static void _logos_method$_ungrouped$ZNGrabberAccessoryView$setBackgroundColor$(

else {
_logos_orig$_ungrouped$ZNGrabberAccessoryView$setBackgroundColor$(self, _cmd, backgroundColor);
}
}
}
_logos_orig$_ungrouped$ZNGrabberAccessoryView$setBackgroundColor$(self, _cmd, backgroundColor);
}





static __attribute__((constructor)) void _logosLocalCtor_bbe4a825(int __unused argc, char __unused **argv, char __unused **envp) {


static __attribute__((constructor)) void _logosLocalCtor_7f270ec4(int __unused argc, char __unused **argv, char __unused **envp) {

loadPrefs();

@@ -102,4 +105,4 @@ dlopen ("/Library/MobileSubstrate/DynamicLibraries/Zenith.dylib", RTLD_NOW);
}
static __attribute__((constructor)) void _logosLocalInit() {
{Class _logos_class$_ungrouped$ZNGrabberAccessoryView = objc_getClass("ZNGrabberAccessoryView"); MSHookMessageEx(_logos_class$_ungrouped$ZNGrabberAccessoryView, @selector(traitCollectionDidChange:), (IMP)&_logos_method$_ungrouped$ZNGrabberAccessoryView$traitCollectionDidChange$, (IMP*)&_logos_orig$_ungrouped$ZNGrabberAccessoryView$traitCollectionDidChange$);MSHookMessageEx(_logos_class$_ungrouped$ZNGrabberAccessoryView, @selector(setBackgroundColor:), (IMP)&_logos_method$_ungrouped$ZNGrabberAccessoryView$setBackgroundColor$, (IMP*)&_logos_orig$_ungrouped$ZNGrabberAccessoryView$setBackgroundColor$);} }
#line 77 "Tweak.xm"
#line 80 "Tweak.xm"

BIN
.theos/obj/arm64/ZenithDark.dylib View File


BIN
.theos/obj/arm64/ZenithDark.dylib.dSYM/Contents/Resources/DWARF/ZenithDark.dylib View File


+ 20
- 0
.theos/obj/arm64e/Tweak.xm.6fecb14d.Td View File

@@ -0,0 +1,20 @@
/Users/cooperhull/Desktop/Tweaks/ZenithDark/.theos/obj/arm64e/Tweak.xm.6fecb14d.o: \
/Users/cooperhull/Desktop/Tweaks/ZenithDark/.theos/obj/arm64e/Tweak.xm.mm \
/Users/cooperhull/theos/Prefix.pch \
/Users/cooperhull/theos/include/_Prefix/BackwardsCompat.h \
/Users/cooperhull/theos/include/_Prefix/IOSMacros.h \
/Users/cooperhull/theos/include/HBLog.h \
/Users/cooperhull/Desktop/Tweaks/ZenithDark/ZenithDark.h \
/Users/cooperhull/theos/include/substrate.h

/Users/cooperhull/theos/Prefix.pch:

/Users/cooperhull/theos/include/_Prefix/BackwardsCompat.h:

/Users/cooperhull/theos/include/_Prefix/IOSMacros.h:

/Users/cooperhull/theos/include/HBLog.h:

/Users/cooperhull/Desktop/Tweaks/ZenithDark/ZenithDark.h:

/Users/cooperhull/theos/include/substrate.h:

BIN
.theos/obj/arm64e/Tweak.xm.6fecb14d.o View File


+ 108
- 0
.theos/obj/arm64e/Tweak.xm.mm View File

@@ -0,0 +1,108 @@
#line 1 "Tweak.xm"











#import "ZenithDark.h"

static BOOL enabled;
static void loadPrefs() {
static NSMutableDictionary *settings;

CFArrayRef keyList = CFPreferencesCopyKeyList(CFSTR("com.mac-user669.zenithdarkprefs"), kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
if (keyList) {
settings = (NSMutableDictionary *)CFBridgingRelease(CFPreferencesCopyMultiple(keyList, CFSTR("com.mac-user669.zenithdarkprefs"), kCFPreferencesCurrentUser, kCFPreferencesAnyHost));
CFRelease(keyList);
} else {
settings = [NSMutableDictionary dictionaryWithContentsOfFile:@"/var/mobile/Library/Preferences/com.mac-user669.zenithdarkprefs.plist"];
}

enabled = [([settings objectForKey:@"enabled"] ? [settings objectForKey:@"enabled"] : @(YES)) boolValue];
}



#include <substrate.h>
#if defined(__clang__)
#if __has_feature(objc_arc)
#define _LOGOS_SELF_TYPE_NORMAL __unsafe_unretained
#define _LOGOS_SELF_TYPE_INIT __attribute__((ns_consumed))
#define _LOGOS_SELF_CONST const
#define _LOGOS_RETURN_RETAINED __attribute__((ns_returns_retained))
#else
#define _LOGOS_SELF_TYPE_NORMAL
#define _LOGOS_SELF_TYPE_INIT
#define _LOGOS_SELF_CONST
#define _LOGOS_RETURN_RETAINED
#endif
#else
#define _LOGOS_SELF_TYPE_NORMAL
#define _LOGOS_SELF_TYPE_INIT
#define _LOGOS_SELF_CONST
#define _LOGOS_RETURN_RETAINED
#endif

@class ZNGrabberAccessoryView;
static void (*_logos_orig$_ungrouped$ZNGrabberAccessoryView$traitCollectionDidChange$)(_LOGOS_SELF_TYPE_NORMAL ZNGrabberAccessoryView* _LOGOS_SELF_CONST, SEL, UITraitCollection *); static void _logos_method$_ungrouped$ZNGrabberAccessoryView$traitCollectionDidChange$(_LOGOS_SELF_TYPE_NORMAL ZNGrabberAccessoryView* _LOGOS_SELF_CONST, SEL, UITraitCollection *); static void (*_logos_orig$_ungrouped$ZNGrabberAccessoryView$setBackgroundColor$)(_LOGOS_SELF_TYPE_NORMAL ZNGrabberAccessoryView* _LOGOS_SELF_CONST, SEL, UIColor *); static void _logos_method$_ungrouped$ZNGrabberAccessoryView$setBackgroundColor$(_LOGOS_SELF_TYPE_NORMAL ZNGrabberAccessoryView* _LOGOS_SELF_CONST, SEL, UIColor *);

#line 30 "Tweak.xm"

static void _logos_method$_ungrouped$ZNGrabberAccessoryView$traitCollectionDidChange$(_LOGOS_SELF_TYPE_NORMAL ZNGrabberAccessoryView* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd, UITraitCollection * previousTraitCollection) {
if (enabled) {
_logos_orig$_ungrouped$ZNGrabberAccessoryView$traitCollectionDidChange$(self, _cmd, previousTraitCollection);
if (@available(iOS 13, *)) {
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
[self setBackgroundColor:kDarkModeColor];
}

else {
[self setBackgroundColor:kLightModeColor];
}
}
}
_logos_orig$_ungrouped$ZNGrabberAccessoryView$traitCollectionDidChange$(self, _cmd, previousTraitCollection);
}



static void _logos_method$_ungrouped$ZNGrabberAccessoryView$setBackgroundColor$(_LOGOS_SELF_TYPE_NORMAL ZNGrabberAccessoryView* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd, UIColor * backgroundColor) {
if (enabled) {
if (@available(iOS 13, *)) {
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
_logos_orig$_ungrouped$ZNGrabberAccessoryView$setBackgroundColor$(self, _cmd, kDarkModeColor);
}

else {
_logos_orig$_ungrouped$ZNGrabberAccessoryView$setBackgroundColor$(self, _cmd, backgroundColor);
}
}
}
_logos_orig$_ungrouped$ZNGrabberAccessoryView$setBackgroundColor$(self, _cmd, backgroundColor);
}







static __attribute__((constructor)) void _logosLocalCtor_7f270ec4(int __unused argc, char __unused **argv, char __unused **envp) {

loadPrefs();


dlopen ("/Library/MobileSubstrate/DynamicLibraries/Zenith.dylib", RTLD_NOW);

}
static __attribute__((constructor)) void _logosLocalInit() {
{Class _logos_class$_ungrouped$ZNGrabberAccessoryView = objc_getClass("ZNGrabberAccessoryView"); MSHookMessageEx(_logos_class$_ungrouped$ZNGrabberAccessoryView, @selector(traitCollectionDidChange:), (IMP)&_logos_method$_ungrouped$ZNGrabberAccessoryView$traitCollectionDidChange$, (IMP*)&_logos_orig$_ungrouped$ZNGrabberAccessoryView$traitCollectionDidChange$);MSHookMessageEx(_logos_class$_ungrouped$ZNGrabberAccessoryView, @selector(setBackgroundColor:), (IMP)&_logos_method$_ungrouped$ZNGrabberAccessoryView$setBackgroundColor$, (IMP*)&_logos_orig$_ungrouped$ZNGrabberAccessoryView$setBackgroundColor$);} }
#line 80 "Tweak.xm"

BIN
.theos/obj/arm64e/ZenithDark.dylib View File


BIN
.theos/obj/arm64e/ZenithDark.dylib.dSYM/Contents/Resources/DWARF/ZenithDark.dylib View File


+ 2
- 2
Makefile View File

@@ -1,7 +1,7 @@
ARCHS = arm64 arm64e
SDK = iPhoneOS12.4
SDK = iPhoneOS13.0
FINALPACKAGE = 1
export TARGET = iphone:clang:11.2:latest
export TARGET = iphone:clang:13.0:latest

include $(THEOS)/makefiles/common.mk


+ 9
- 6
Tweak.xm View File

@@ -12,8 +12,6 @@ Written for Cooper Hull, @(mac-user669).
#import "ZenithDark.h"

static BOOL enabled;
static BOOL replaceOriginalView;
static BOOL notificationBadgesEnabled;
static void loadPrefs() {
static NSMutableDictionary *settings;

@@ -26,15 +24,13 @@ static void loadPrefs() {
}

enabled = [([settings objectForKey:@"enabled"] ? [settings objectForKey:@"enabled"] : @(YES)) boolValue];
replaceOriginalView = [([settings objectForKey:@"replaceoriginalview"] ? [settings objectForKey:@"replaceoriginalview"] : @(YES)) boolValue];
notificationBadgesEnabled = [([settings objectForKey:@"notificationBadgesEnabled"] ? [settings objectForKey:@"notificationBadgesEnabled"] : NO) boolValue];
}


// 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!
// this is called when iOS 13's dark mode is enabled!
-(void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
if (enabled) {
%orig(previousTraitCollection);
if (@available(iOS 13, *)) {
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
@@ -43,13 +39,16 @@ static void loadPrefs() {

else {
[self setBackgroundColor:kLightModeColor];
}
}
}
%orig;
}

// 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 {
if (enabled) {
// by default have our tweak overide this.
if (@available(iOS 13, *)) {
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
@@ -58,13 +57,17 @@ static void loadPrefs() {

else {
%orig;
}
}
}
%orig;
}


// 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


// our constructor
%ctor {


BIN
packages/com.mac-user669.zenithdark_1.0_iphoneos-arm.deb View File


+ 1
- 1
zenithdarkprefs/Makefile View File

@@ -1,7 +1,7 @@
include $(THEOS)/makefiles/common.mk

ARCHS = arm64 arm64e
export TARGET = iphone:clang:11.2:latest
export TARGET = iphone:clang:13.0:latest
BUNDLE_NAME = ZenithDarkPrefs

ZenithDarkPrefs_FILES = ZnthDrkRootListController.m

+ 1
- 30
zenithdarkprefs/Resources/Root.plist View File

@@ -22,36 +22,7 @@
<key>label</key>
<string>Enable</string>
</dict>
<dict>
<key>cell</key>
<string>PSGroupCell</string>
<key>label</key>
<string>Customization</string>
</dict>
<dict>
<key>cell</key>
<string>PSSwitchCell</string>
<key>default</key>
<true/>
<key>defaults</key>
<string>com.mac-user669.zenithdarkprefs</string>
<key>key</key>
<string>replaceoriginalview</string>
<key>label</key>
<string>Replace Original View</string>
</dict>
<dict>
<key>cell</key>
<string>PSSwitchCell</string>
<key>default</key>
<false/>
<key>defaults</key>
<string>com.mac-user669.zenithdarkprefs</string>
<key>key</key>
<string>notificationBadgesEnabled</string>
<key>label</key>
<string>Enable Notification Badges</string>
</dict>

<dict>
<key>cell</key>
<string>PSGroupCell</string>

Loading…
Cancel
Save