Browse Source

fix shit, other stuff. reformat comments

master
Burrit0z 3 years ago
parent
commit
c5add0a58a
7 changed files with 145 additions and 132 deletions
  1. +8
    -1
      Changelog
  2. +12
    -12
      KAIBatteryCell.mm
  3. +55
    -57
      KAIBatteryPlatter.mm
  4. +3
    -3
      KAIClassHeaders.h
  5. +11
    -6
      Kai.h
  6. +55
    -52
      Kai.xm
  7. +1
    -1
      Layout/DEBIAN/control

+ 8
- 1
Changelog View File

@@ -50,4 +50,11 @@
1.3.1:
- Fix very unoptimized code, made it more-ish optimized
- Below music option now moves kai just below the media controls, and not to the very bottom.
- Fixed kai going below Axon with below music player option on
- Fixed kai going below Axon with below music player option on

1.4.0:
- Adds iOS 14 support

1.5.0:
- Replace the code that handles hiding kai when media plays
- Fix edge cases where battery info would not update completely until an update was called for again

+ 12
- 12
KAIBatteryCell.mm View File

@@ -17,9 +17,9 @@
if (bannerStyle == 1) {
if (kCFCoreFoundationVersionNumber > 1600 && kCFCoreFoundationVersionNumber < 1740) {
blur = [[[objc_getClass("MTMaterialView") class] alloc] _initWithRecipe:1 configuration:1 initialWeighting:1 scaleAdjustment:nil];
} else if (kCFCoreFoundationVersionNumber < 1600) { //ios 12
} else if (kCFCoreFoundationVersionNumber < 1600) { // ios 12
blur = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]];
} else if(kCFCoreFoundationVersionNumber >= 1740) { //ios 14 :fr:
} else if(kCFCoreFoundationVersionNumber >= 1740) { // ios 14 :fr:
blur = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleRegular]];
}
} else if (bannerStyle == 2) {
@@ -92,13 +92,13 @@
[self addSubview:self.battery];
[self addSubview:self.glyphView];

// Blur Platter
// Blur Platter
blurPlatter.translatesAutoresizingMaskIntoConstraints = NO;
if (bannerAlign == 2) { //center
if (bannerAlign == 2) { // center
[blurPlatter.centerXAnchor constraintEqualToAnchor:self.centerXAnchor].active = YES;
} else if (bannerAlign == 1) { //left
} else if (bannerAlign == 1) { // left
[blurPlatter.leftAnchor constraintEqualToAnchor:self.leftAnchor].active = YES;
} else if (bannerAlign == 3) { //right
} else if (bannerAlign == 3) { // right
[blurPlatter.rightAnchor constraintEqualToAnchor:self.rightAnchor].active = YES;
}
[NSLayoutConstraint activateConstraints:@[
@@ -109,7 +109,7 @@

[self.widthAnchor constraintEqualToAnchor:blurPlatter.widthAnchor].active = YES;

// Blur
// Blur
blur.translatesAutoresizingMaskIntoConstraints = NO;
[NSLayoutConstraint activateConstraints:@[
[blur.centerXAnchor constraintEqualToAnchor:blurPlatter.centerXAnchor],
@@ -118,7 +118,7 @@
[blur.heightAnchor constraintEqualToAnchor:blurPlatter.heightAnchor]
]];

// Percent label
// Percent label
self.percentLabel.translatesAutoresizingMaskIntoConstraints = NO;
[NSLayoutConstraint activateConstraints:@[
[self.percentLabel.centerYAnchor constraintEqualToAnchor:blurPlatter.centerYAnchor],
@@ -126,7 +126,7 @@
[self.percentLabel.heightAnchor constraintEqualToConstant:12]
]];

// Label
// Label
self.label.translatesAutoresizingMaskIntoConstraints = NO;
[NSLayoutConstraint activateConstraints:@[
[self.label.leftAnchor constraintEqualToAnchor:self.glyphView.rightAnchor
@@ -140,7 +140,7 @@
[self.label.rightAnchor constraintEqualToAnchor:self.label.leftAnchor].active = YES;
}

// Glyph View
// Glyph View
self.glyphView.translatesAutoresizingMaskIntoConstraints = NO;
[NSLayoutConstraint activateConstraints:@[
[self.glyphView.leftAnchor constraintEqualToAnchor:blurPlatter.leftAnchor
@@ -150,7 +150,7 @@
[self.glyphView.heightAnchor constraintEqualToConstant:glyphSize]
]];

// Battery
// Battery
self.battery.translatesAutoresizingMaskIntoConstraints = NO;
if (!hideBatteryIcon) {
[self.battery.widthAnchor constraintEqualToConstant:20].active = YES;
@@ -231,4 +231,4 @@
[super removeFromSuperview];
}

@end
@end

+ 55
- 57
KAIBatteryPlatter.mm View File

@@ -29,7 +29,7 @@ NSMutableArray *cellsForDeviceNames = [[NSMutableArray alloc] init];
[self setContentSize:self.stack.frame.size];
[self resetOffset];

//Add noti observer
// Add noti observer
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(resetOffset)
name:@"KaiResetOffset"
@@ -41,11 +41,11 @@ NSMutableArray *cellsForDeviceNames = [[NSMutableArray alloc] init];
[self.stackHolder.centerYAnchor constraintEqualToAnchor:self.centerYAnchor].active = YES;

if (kaiAlign == 0) {
if (bannerAlign == 2) { //center
if (bannerAlign == 2) { // center
self.subviewAligner = [self.stack.centerXAnchor constraintEqualToAnchor:self.stackHolder.centerXAnchor constant:horizontalOffset];
} else if (bannerAlign == 1) { //left
} else if (bannerAlign == 1) { // left
self.subviewAligner = [self.stack.leftAnchor constraintEqualToAnchor:self.stackHolder.leftAnchor constant:horizontalOffset];
} else if (bannerAlign == 3) { //right
} else if (bannerAlign == 3) { // right
self.subviewAligner = [self.stack.rightAnchor constraintEqualToAnchor:self.stackHolder.rightAnchor constant:horizontalOffset];
}

@@ -57,39 +57,33 @@ NSMutableArray *cellsForDeviceNames = [[NSMutableArray alloc] init];
return self;
}

- (void)resetOffset {
- (void)resetOffset { // holy fucking shit i just read this method, what is this garbage????
if (kaiAlign != 0 && reAlignSelf) {
[UIView animateWithDuration:0.2
animations:^{
if (bannerAlign == 1) { //left
[self setContentOffset:CGPointMake(0 + horizontalOffset, self.contentOffset.y)];

self.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);
} else if (bannerAlign == 2) { //center
[self setContentOffset:CGPointMake(((-1 * self.stackHolder.frame.size.width) / 2) + (self.stack.frame.size.width / 2) + horizontalOffset, self.contentOffset.y)];

CGFloat top = 0, left = 0;
if (self.contentSize.width < self.bounds.size.width) {
left = (self.bounds.size.width - self.contentSize.width) * 0.5f;
}
if (self.contentSize.height < self.bounds.size.height) {
top = (self.bounds.size.height - self.contentSize.height) * 0.5f;
}
self.contentInset = UIEdgeInsetsMake(top, left, top, left);

} else if (bannerAlign == 3) { //right
[self setContentOffset:CGPointMake((-1 * self.stackHolder.frame.size.width) + self.stack.frame.size.width + horizontalOffset, self.contentOffset.y)];

CGFloat top = 0, left = 0;
if (self.contentSize.width < self.bounds.size.width) {
left = (self.bounds.size.width - self.contentSize.width);
}
if (self.contentSize.height < self.bounds.size.height) {
top = (self.bounds.size.height - self.contentSize.height);
}
self.contentInset = UIEdgeInsetsMake(top, left, top, left);
}
}];
[UIView animateWithDuration:0.2 animations:^{
if (bannerAlign == 1) { // left

[self setContentOffset:CGPointMake(0 + horizontalOffset, self.contentOffset.y)];
self.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);

} else if (bannerAlign == 2) { // center
[self setContentOffset:CGPointMake(((-1 * self.stackHolder.frame.size.width) / 2) + (self.stack.frame.size.width / 2) + horizontalOffset, self.contentOffset.y)];

CGFloat top = 0, left = 0;
if (self.contentSize.width < self.bounds.size.width) left = (self.bounds.size.width - self.contentSize.width) * 0.5f;
if (self.contentSize.height < self.bounds.size.height) top = (self.bounds.size.height - self.contentSize.height) * 0.5f;
self.contentInset = UIEdgeInsetsMake(top, left, top, left);

} else if (bannerAlign == 3) { // right
[self setContentOffset:CGPointMake((-1 * self.stackHolder.frame.size.width) + self.stack.frame.size.width + horizontalOffset, self.contentOffset.y)];

CGFloat top = 0, left = 0;
if(self.contentSize.width < self.bounds.size.width) left = (self.bounds.size.width - self.contentSize.width);
if(self.contentSize.height < self.bounds.size.height) top = (self.bounds.size.height - self.contentSize.height);

self.contentInset = UIEdgeInsetsMake(top, left, top, left);
}

}];
}
}

@@ -98,6 +92,11 @@ NSMutableArray *cellsForDeviceNames = [[NSMutableArray alloc] init];
}

- (void)updateBattery {
if(self.isUpdating == YES) {
self.queued = YES;
return;
}

dispatch_async(dispatch_get_main_queue(), ^{
BCBatteryDeviceController *bcb = [BCBatteryDeviceController sharedInstance];
NSArray *devices = [bcb connectedDevices];
@@ -110,7 +109,6 @@ NSMutableArray *cellsForDeviceNames = [[NSMutableArray alloc] init];
}

if (!self.isUpdating && self.oldCountOfDevices != 0 && ([devices count] + 1 == self.oldCountOfDevices || [devices count] - 1 == self.oldCountOfDevices || [devices count] == self.oldCountOfDevices)) {
//if(!self.isUpdating) {

self.isUpdating = YES;

@@ -193,7 +191,7 @@ NSMutableArray *cellsForDeviceNames = [[NSMutableArray alloc] init];
}

for (KAIBatteryCell *cell in self.stack.subviews) {
if (![devices containsObject:cell.device] || cell.device == nil) { //not existing, remove
if (![devices containsObject:cell.device] || cell.device == nil) { // not existing, remove
NSString *deviceName = cell.label.text;
[UIView animateWithDuration:0.3
animations:^{
@@ -209,12 +207,11 @@ NSMutableArray *cellsForDeviceNames = [[NSMutableArray alloc] init];
}
}

// isUpdating is set to NO in this block
// adds a cooldown, essentially
queueTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(dispatchQueue) userInfo:nil repeats:NO];
//self.isUpdating = NO;

} else if (self.isUpdating) {
self.queued = YES;
}
}

self.oldCountOfDevices = [devices count];

@@ -230,7 +227,7 @@ NSMutableArray *cellsForDeviceNames = [[NSMutableArray alloc] init];
}

- (void)setContentOffset:(CGPoint)arg1 {
[self setContentSize:self.stack.frame.size]; //sometimes the view gets "stuck", this fixes it
[self setContentSize:self.stack.frame.size]; // sometimes the view gets "stuck", this fixes it
[super setContentOffset:CGPointMake(arg1.x, 0)];
}

@@ -244,7 +241,7 @@ NSMutableArray *cellsForDeviceNames = [[NSMutableArray alloc] init];
[self removeFromSuperview];
} else if (self.number != 0 && self.superview == nil && shouldBeAdded == YES) {
[[[[objc_getClass("CSAdjunctListView") class] sharedListViewForKai] stackView] addArrangedSubview:self];
//[self performSelector:@selector(calculateHeight) withObject:self afterDelay:0.1];
// [self performSelector:@selector(calculateHeight) withObject:self afterDelay:0.1];
}

[UIView animateWithDuration:0.3
@@ -270,7 +267,7 @@ NSMutableArray *cellsForDeviceNames = [[NSMutableArray alloc] init];
int height = (self.number * (bannerHeight + spacing));
int extra = extraPaddingAfter ? spacing : 0;
if (kaiAlign == 0) {
//self.stack.widthConstraint.constant = bannerWidthFactor;
// self.stack.widthConstraint.constant = bannerWidthFactor;
} else {
height = bannerHeight + spacing;
}
@@ -282,11 +279,11 @@ NSMutableArray *cellsForDeviceNames = [[NSMutableArray alloc] init];
}

self.heightConstraint.constant = height;
self.stack.heightConstraint.constant = height - extra; //minus extra because it will stretch cell spacing otherwise
self.stack.heightConstraint.constant = height - extra; // minus extra because it will stretch cell spacing otherwise

UIStackView *s = (UIStackView *)(self.superview);
s.frame = CGRectMake(s.frame.origin.x, s.frame.origin.y, s.frame.size.width, (s.frame.size.height - 1));
//literally does nothing but makes the stack view lay itself out (doesnt adjust frame because translatesAutoreszingMaskIntoConstraints = NO on stack views)
// literally does nothing but makes the stack view lay itself out (doesnt adjust frame because translatesAutoreszingMaskIntoConstraints = NO on stack views)
}

[self setContentSize:self.stack.frame.size];
@@ -306,7 +303,7 @@ NSMutableArray *cellsForDeviceNames = [[NSMutableArray alloc] init];
@try {
[view removeFromSuperview];
} @catch (NSException *exception) {
//Panik
// Panik
}
}

@@ -318,11 +315,11 @@ NSMutableArray *cellsForDeviceNames = [[NSMutableArray alloc] init];

if (kaiAlign == 0) {
self.subviewAligner.active = NO;
if (bannerAlign == 2) { //center
if (bannerAlign == 2) { // center
self.subviewAligner = [self.stack.centerXAnchor constraintEqualToAnchor:self.stackHolder.centerXAnchor constant:horizontalOffset];
} else if (bannerAlign == 1) { //left
} else if (bannerAlign == 1) { // left
self.subviewAligner = [self.stack.leftAnchor constraintEqualToAnchor:self.stackHolder.leftAnchor constant:horizontalOffset];
} else if (bannerAlign == 3) { //right
} else if (bannerAlign == 3) { // right
self.subviewAligner = [self.stack.rightAnchor constraintEqualToAnchor:self.stackHolder.rightAnchor constant:horizontalOffset];
}

@@ -336,26 +333,27 @@ NSMutableArray *cellsForDeviceNames = [[NSMutableArray alloc] init];
}

- (void)dispatchQueue {
[queueTimer invalidate];
queueTimer = nil;

self.isUpdating = NO;
if (self.queued) {
self.queued = NO;
[self updateBattery];
if ([self.superview.superview.superview respondsToSelector:@selector(fixComplicationsViewFrame)]) {
[(NCNotificationListView *)(self.superview.superview.superview) fixComplicationsViewFrame];
}
self.queued = NO;
}
[queueTimer invalidate];
queueTimer = nil;
}

+ (KAIBatteryPlatter *)sharedInstance {
return instance;
}

//This is for compatibility (did i spell that right?)
//basically this fixes it crashing in landscape:
// This is for compatibility (did i spell that right?)
// basically this fixes it crashing in landscape:

- (void)setSizeToMimic:(CGSize)arg1 {
}

@end
@end

+ 3
- 3
KAIClassHeaders.h View File

@@ -32,8 +32,8 @@
@property (nonatomic, assign, getter=isInternal) BOOL internal;
@property (nonatomic, assign, getter=isBatterySaverModeActive) BOOL batterySaverModeActive;
@property (nonatomic, strong) NSString *identifier;
- (id)glyph; //ios 13
- (id)batteryWidgetGlyph; //ios 14
- (id)glyph; // ios 13
- (id)batteryWidgetGlyph; // ios 14
- (id)kaiCellForDevice;
- (void)resetKaiCellForNewPrefs;
@end
@@ -72,4 +72,4 @@

@interface UIView (kai)
- (void)_didRemoveSubview:(UIView *)arg1;
@end
@end

+ 11
- 6
Kai.h View File

@@ -3,8 +3,7 @@
#import <UIKit/UIKit.h>
#import <objc/runtime.h>

#define KAISelf ((CSAdjunctListView *)self) //for use when calling self in KAITarget
#define afterMusicIndex(cls, obj) [[[cls sharedListViewForKai] stackView].subviews indexOfObject:obj]
#define KAISelf ((CSAdjunctListView *)self) // for use when calling self in KAITarget

@interface CSAdjunctListView : UIView
@property (nonatomic, assign) BOOL hasKai;
@@ -12,6 +11,12 @@
- (void)_layoutStackView;
- (void)setStackView:(UIStackView *)arg1;
+ (id)sharedListViewForKai;
+ (void)reorderKai;
@end

@interface SBMediaController : NSObject
@property (nonatomic, strong) id nowPlayingApplication;
- (BOOL)isPlaying;
@end

@interface CALayer (kai)
@@ -35,7 +40,7 @@ BOOL ios13 = NO;
BOOL isUpdating = NO;
BOOL shouldBeAdded = YES;

//prefs
// prefs
BOOL enabled;
BOOL disableGlyphs;
BOOL hidePercent;
@@ -62,7 +67,7 @@ double bannerAlpha;
double kaiAlign;
double spacingHorizontal;

//by importing here, I can use vars in the .mm files
// by importing here, I can use vars in the .mm files
#import "KAIBatteryCell.mm"
#import "KAIBatteryPlatter.mm"
#import "KAIStackView.mm"
@@ -141,9 +146,9 @@ static void applyPrefs() {

isUpdating = YES;

[[KAIBatteryPlatter sharedInstance] refreshForPrefs]; //so hard (not)
[[KAIBatteryPlatter sharedInstance] refreshForPrefs]; // so hard (not)
[(CSAdjunctListView *)([KAIBatteryPlatter sharedInstance].superview.superview) _layoutStackView];
[[NSNotificationCenter defaultCenter] postNotificationName:@"KaiResetOffset" object:nil userInfo:nil];

isUpdating = NO;
}
}

+ 55
- 52
Kai.xm View File

@@ -1,54 +1,43 @@
#import "Kai.h"

CSAdjunctListView *list;
Class mediaClass;

%group main

%hook Media
%hook SBMediaController

- (void)dealloc {
%orig;
if(removeForMedia) {
shouldBeAdded = YES;

[[KAIBatteryPlatter sharedInstance] updateBattery];
Class cls = kCFCoreFoundationVersionNumber > 1600 ? ([objc_getClass("CSAdjunctListView") class]) : ([objc_getClass("SBDashBoardAdjunctListView") class]);
- (BOOL)isPlaying {
Class cls = kCFCoreFoundationVersionNumber > 1600 ? ([objc_getClass("CSAdjunctListView") class]) : ([objc_getClass("SBDashBoardAdjunctListView") class]);
BOOL playing = %orig;

if(!belowMusic) { //cursed
[[[cls sharedListViewForKai] stackView] removeArrangedSubview:[KAIBatteryPlatter sharedInstance]];
[[[cls sharedListViewForKai] stackView] insertArrangedSubview:[KAIBatteryPlatter sharedInstance] atIndex:0];
}
if(!removeForMedia) {
[cls reorderKai];
return playing;
}
}

- (void)didMoveToSuperview {
%orig;
Class cls = kCFCoreFoundationVersionNumber > 1600 ? ([objc_getClass("CSAdjunctListView") class]) : ([objc_getClass("SBDashBoardAdjunctListView") class]);
// if removeForMedia
if(self.nowPlayingApplication && shouldBeAdded) {
// a valid playing app, and it was shown
shouldBeAdded = NO;

if([[[cls sharedListViewForKai] stackView].arrangedSubviews containsObject:self]) {
if(belowMusic) {//cursed
[[[cls sharedListViewForKai] stackView] removeArrangedSubview:[KAIBatteryPlatter sharedInstance]];
[[[cls sharedListViewForKai] stackView] insertArrangedSubview:[KAIBatteryPlatter sharedInstance] atIndex:afterMusicIndex(cls, self)];
} else {
[[[cls sharedListViewForKai] stackView] removeArrangedSubview:[KAIBatteryPlatter sharedInstance]];
[[[cls sharedListViewForKai] stackView] insertArrangedSubview:[KAIBatteryPlatter sharedInstance] atIndex:0];
}
[[KAIBatteryPlatter sharedInstance] removeFromSuperview];
[[[cls sharedListViewForKai] stackView] removeArrangedSubview:[KAIBatteryPlatter sharedInstance]];

if(removeForMedia) {
shouldBeAdded = NO;
return playing;
} else if(!playing && self.nowPlayingApplication == nil) {
// not playing and the app is nil
shouldBeAdded = YES;

[[KAIBatteryPlatter sharedInstance] removeFromSuperview];
[[[cls sharedListViewForKai] stackView] removeArrangedSubview:[KAIBatteryPlatter sharedInstance]];
}
// if we don't want to hide kai, fix its order
[cls reorderKai];
}

return playing;
}

%end

%hook KAITarget //This class is defined in %ctor, KAITarget is not a class name.
%hook KAITarget // This class is defined in %ctor, KAITarget is not a class name.

%property (nonatomic, assign) BOOL hasKai;

@@ -65,20 +54,20 @@ Class mediaClass;

KAIBatteryPlatter *battery = [[KAIBatteryPlatter alloc] initWithFrame:[self stackView].frame];

//Add noti observer
// Add noti observer
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(KaiInfo)
name:@"KaiInfoChanged"
object:nil];
KAISelf.hasKai = YES;

if(![arg1.subviews containsObject:battery]) { //if not added
//add kai to the stack view
if(![arg1.subviews containsObject:battery]) { // if not added
// add kai to the stack view
[arg1 addArrangedSubview:battery];
}
[battery updateBattery];

//send the adjusted stackview as arg1
// send the adjusted stackview as arg1
%orig(arg1);

}
@@ -91,7 +80,6 @@ Class mediaClass;

isUpdating = YES;

//NSLog(@"kai: kai info will update");
dispatch_async(dispatch_get_main_queue(), ^{

[[KAIBatteryPlatter sharedInstance] updateBattery];
@@ -118,6 +106,19 @@ Class mediaClass;
return list;
}

%new
+ (void)reorderKai {
NSLog(@"[Kai]: Reordering kai");
UIStackView *stack = [[self sharedListViewForKai] stackView];
if(belowMusic) { // cursed
[stack removeArrangedSubview:[KAIBatteryPlatter sharedInstance]];
[stack addArrangedSubview:[KAIBatteryPlatter sharedInstance]];
} else {
[stack removeArrangedSubview:[KAIBatteryPlatter sharedInstance]];
[stack insertArrangedSubview:[KAIBatteryPlatter sharedInstance] atIndex:0];
}
}

%end

%hook SBCoverSheetPrimarySlidingViewController
@@ -140,21 +141,21 @@ Class mediaClass;
%property (nonatomic, strong) KAIBatteryCell *kaiCell;

- (void)setCharging:(BOOL)arg1 {
//sends the noti to update battery info
// sends the noti to update battery info
[[NSNotificationCenter defaultCenter] postNotificationName:@"KaiInfoChanged" object:nil userInfo:nil];
%orig;
}

- (void)setBatterySaverModeActive:(BOOL)arg1 {
//sends the noti to update battery info
// sends the noti to update battery info
[[NSNotificationCenter defaultCenter] postNotificationName:@"KaiInfoChanged" object:nil userInfo:nil];
%orig;
}

- (void)setPercentCharge:(NSInteger)arg1 {
//sends the noti to update battery info
if(arg1!=0) {
[[NSNotificationCenter defaultCenter] postNotificationName:@"KaiInfoChanged" object:nil userInfo:nil];
// sends the noti to update battery info
if(arg1 != 0) {
[[NSNotificationCenter defaultCenter] postNotificationName:@"KaiInfoChanged" object:nil userInfo:nil];
}
%orig;
}
@@ -176,25 +177,29 @@ Class mediaClass;

%new
- (void)resetKaiCellForNewPrefs {
self.kaiCell = [[KAIBatteryCell alloc] initWithFrame:CGRectMake(0,0,[KAIBatteryPlatter sharedInstance].frame.size.width,0) device:self];
self.kaiCell = [[KAIBatteryCell alloc] initWithFrame:CGRectMake(0,0,[KAIBatteryPlatter sharedInstance].frame.size.width,0) device:self];
((KAIBatteryCell *)self.kaiCell).translatesAutoresizingMaskIntoConstraints = NO;
[(KAIBatteryCell *)self.kaiCell updateInfo];
}
%end

%hook KAICSTarget //Again, not a class
%hook KAICSTarget // Again, not a class

- (void)_transitionChargingViewToVisible:(BOOL)arg1 showBattery:(BOOL)arg2 animated:(BOOL)arg3 {
if(hideChargingAnimation) {
//Yeah bro this just makes the method never call to show the charging thing
// Yeah bro this just makes the method never call to show the charging thing
%orig(NO,NO,NO);
} else {
%orig(arg1, arg2, arg3);
}
}

- (void)_transitionChargingViewToVisible:(BOOL)arg1 showBattery:(BOOL)arg2 animated:(BOOL)arg3 force:(BOOL)arg4 { //might just be ios12
- (void)_transitionChargingViewToVisible:(BOOL)arg1 showBattery:(BOOL)arg2 animated:(BOOL)arg3 force:(BOOL)arg4 { // might just be ios12
if(hideChargingAnimation) {
//Same idea
// Same idea
%orig(NO,NO,NO,NO);
} else {
%orig(arg1, arg2, arg3, arg4);
}
}

@@ -213,20 +218,18 @@ Class mediaClass;
CFNotificationSuspensionBehaviorDeliverImmediately
);

//Bro Muirey helped me figure out a logical way to do this because iOS 12-13 classes have changed

mediaClass = kCFCoreFoundationVersionNumber > 1600 ? %c(CSAdjunctItemView) : %c(SBDashBoardAdjunctItemView);
// Bro Muirey helped me figure out a logical way to do this because iOS 12-13 classes have changed

Class cls = kCFCoreFoundationVersionNumber > 1600 ? %c(CSAdjunctListView) : %c(SBDashBoardAdjunctListView);

Class CSCls = kCFCoreFoundationVersionNumber > 1600 ? %c(CSCoverSheetViewController) : %c(SBDashBoardViewController);

if(kCFCoreFoundationVersionNumber < 1740) {
ios13 = YES; //wow very pog version you have
ios13 = YES; // wow very pog version you have
}

if(enabled) {
%init(main, Media = mediaClass, KAITarget = cls, KAICSTarget = CSCls); //BIG BRAIN BRO!!
%init(main, KAITarget = cls, KAICSTarget = CSCls); // BIG BRAIN BRO!!
}

NSLog(@"[kai]: loaded into %@", [NSBundle mainBundle].bundleIdentifier);

+ 1
- 1
Layout/DEBIAN/control View File

@@ -1,6 +1,6 @@
Package: com.burritoz.kai
Name: Kai
Version: 1.4.0
Version: 1.5.0
Architecture: iphoneos-arm
Description: Device battery indicators on your lock screen!
Maintainer: burrit0z

Loading…
Cancel
Save