From 1df9d3bea9f4b575dfdbdaba492ff3d5d056ba29 Mon Sep 17 00:00:00 2001 From: Burrit0z Date: Tue, 28 Apr 2020 15:57:15 -0400 Subject: [PATCH] commit --- KAIBattery.h | 2 + KAIBattery.mm | 25 +++++----- Kai.xm | 130 ++++++++++++++++---------------------------------- 3 files changed, 57 insertions(+), 100 deletions(-) diff --git a/KAIBattery.h b/KAIBattery.h index 8758a9f..2c04802 100644 --- a/KAIBattery.h +++ b/KAIBattery.h @@ -24,6 +24,8 @@ @interface KAIBattery : UIView @property (nonatomic, strong) NSArray *devices; @property (nonatomic, assign) NSInteger number; +@property (nonatomic, assign) BOOL isUpdating; ++(KAIBattery *)sharedInstance; -(instancetype)initWithFrame:(CGRect)arg1; -(void)updateBattery; @end \ No newline at end of file diff --git a/KAIBattery.mm b/KAIBattery.mm index 64f7a77..e6c7bcc 100644 --- a/KAIBattery.mm +++ b/KAIBattery.mm @@ -1,9 +1,11 @@ #import "KAIBattery.h" +KAIBattery *instance; @implementation KAIBattery -(instancetype)initWithFrame:(CGRect)arg1 { self = [super initWithFrame:arg1]; + instance = self; if (self) { /*self.batteryLabel = [[UILabel alloc]initWithFrame:CGRectMake(25,-10,220,120)]; [self.batteryLabel setFont:[UIFont systemFontOfSize:13]]; @@ -20,16 +22,10 @@ long long batteryPercentage; long long lastPercentage; -(void)updateBattery { + if(!self.isUpdating) { + self.isUpdating = YES; self.number = 0; - NSArray* subViews = self.subviews; - for( UIView *view in subViews ) { - @try { - [view removeFromSuperview]; - } @catch (NSException *exception) { - //Panik - } - } - BCBatteryDeviceController *bcb = [BCBatteryDeviceController sharedInstance]; + BCBatteryDeviceController *bcb = [BCBatteryDeviceController sharedInstance]; NSArray *devices = MSHookIvar(bcb, "_sortedDevices"); for (BCBatteryDevice *device in devices) { @@ -44,7 +40,8 @@ long long lastPercentage; UIVisualEffectView *blank = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]]; blank.frame = CGRectMake(0, 0 + y, self.frame.size.width, 80); blank.layer.masksToBounds = YES; - blank.layer.cornerRadius = 18; + blank.layer.cornerRadius = 13; + blank.alpha = 0.8; //[blank setBackgroundColor:[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1]]; [self addSubview:blank]; @@ -90,10 +87,16 @@ long long lastPercentage; battery.frame = CGRectMake(310,35 + y,20,10); percentLabel.frame = CGRectMake(265,35 + y,36,12); - y+=90; + y+=85; self.number +=1; } } + self.isUpdating = NO; + } +} + ++(KAIBattery *)sharedInstance { + return instance; } @end \ No newline at end of file diff --git a/Kai.xm b/Kai.xm index 4f2f5fa..8399b22 100644 --- a/Kai.xm +++ b/Kai.xm @@ -5,16 +5,6 @@ #import #import "KAIBattery.mm" -BOOL setFrame = NO; -KAIBattery *batteryWidget; -CGRect original; - -/* -- (void)addObserver:(NSObject *)observer - forKeyPath:(NSString *)keyPath - options:(NSKeyValueObservingOptions)options - context:(void *)context*/ - @interface UIApplication (Kai) +(id)sharedApplication; @@ -24,7 +14,22 @@ CGRect original; @interface CSMainPageView : UIView @property (nonatomic, strong) KAIBattery *battery; -(void)updateForPresentation:(id)arg1; +-(void)KaiUpdate; @end + + +BOOL setFrame = NO; +CSMainPageView *batteryWidget; +CGRect original; +CGRect originalBattery; + +/* +- (void)addObserver:(NSObject *)observer + forKeyPath:(NSString *)keyPath + options:(NSKeyValueObservingOptions)options + context:(void *)context*/ + + /* %hook BCBatterDeviceController @@ -48,9 +53,16 @@ CGRect original; -(void)viewWillAppear:(BOOL)arg1 { %orig; - [batteryWidget updateBattery]; -} + [batteryWidget.battery updateBattery]; + [batteryWidget KaiUpdate]; +} +/* +-(void)viewWillDisappear:(BOOL)arg1 { + %orig; + [batteryWidget.battery updateBattery]; + [batteryWidget KaiUpdate]; +}*/ %end @@ -59,93 +71,33 @@ CGRect original; -(void)updateForPresentation:(id)arg1 { %orig; - UIView *object = self; if(!setFrame) { original = self.frame; - - self.battery = [[KAIBattery alloc] initWithFrame:CGRectMake(8, 155, object.frame.size.width - 16, object.frame.size.height)]; + self.battery = [[KAIBattery alloc] initWithFrame:CGRectMake(8, self.frame.origin.y + 150, self.frame.size.width - 16, self.frame.size.height)]; + originalBattery = self.battery.frame; [self addSubview:self.battery]; setFrame = YES; - batteryWidget = self.battery; - [self.battery updateBattery]; + batteryWidget = self; } + [self.battery updateBattery]; + [self KaiUpdate]; - object.frame = CGRectMake( +} + +%new +-(void)KaiUpdate { + self.frame = CGRectMake( original.origin.x, - original.origin.y + (self.battery.number * 90), + original.origin.y + (self.battery.number * 85), original.size.width, original.size.height ); - //[self.battery updateBattery]; -/* - NSArray* subViews = self.subviews; - for( UIView *view in subViews ) { - if([view isMemberOfClass:[objc_getClass("UILabel") class]] || [view isMemberOfClass:[objc_getClass("_UIBatteryView") class]] || [view isKindOfClass:[objc_getClass("UIImageView") class]]) { - @try { - [view removeFromSuperview]; - } @catch (NSException *exception) { - //Panik - } - } - } - - /*BCBatteryDeviceController *bcb = [BCBatteryDeviceController sharedInstance]; - NSArray *devices = MSHookIvar(bcb, "_sortedDevices"); - for (BCBatteryDevice *device in devices) { - NSString *deviceName = MSHookIvar(device, "_name"); - double batteryPercentage = MSHookIvar(device, "_percentCharge"); - BOOL charging = MSHookIvar(device, "_charging"); - BOOL LPM = MSHookIvar(device, "_batterySaverModeActive"); - if(charging) { - - NSString *labelText = [NSString stringWithFormat:@"%@", deviceName]; - - UILabel *label = [[UILabel alloc] init]; - [label setFont:[UIFont systemFontOfSize:18]]; - [label setTextColor:[UIColor whiteColor]]; - label.lineBreakMode = NSLineBreakByWordWrapping; - label.numberOfLines = 0; - [label setText:labelText]; - - [self addSubview:label]; - - _UIBatteryView *battery = [[_UIBatteryView alloc] init]; - battery.chargePercent = (batteryPercentage*0.01); - UILabel *percentLabel = [[UILabel alloc] init]; - //if(self.percentEnabled) { - // battery.showsPercentage = YES; - // } else { - battery.showsPercentage = NO; - [percentLabel setFont:[UIFont systemFontOfSize:14]]; - [percentLabel setTextColor:[UIColor whiteColor]]; - percentLabel.lineBreakMode = NSLineBreakByWordWrapping; - [percentLabel setTextAlignment:NSTextAlignmentRight]; - percentLabel.numberOfLines = 0; - [percentLabel setText:[NSString stringWithFormat:@"%ld%%", (long)((NSInteger) batteryPercentage)]]; - [self addSubview:percentLabel]; - //} - if(charging) battery.chargingState = 2; - if(LPM) battery.saverModeActive = YES; - if(kCFCoreFoundationVersionNumber > 1600) { - [battery setBodyColorAlpha:1.0]; - [battery setPinColorAlpha:1.0]; - } - [self addSubview:battery]; - - UIImage *glyph = [device glyph]; - UIImageView *glyphView = [[UIImageView alloc] init]; - //if(self.glyphsEnabled) { - glyphView.contentMode = UIViewContentModeScaleAspectFit; - [glyphView setImage:glyph]; - [self addSubview:glyphView]; - //} - - label.frame = CGRectMake(10,20,275,25); - glyphView.frame = CGRectMake(27,25,17,15); - battery.frame = CGRectMake(325,25,20,10); - percentLabel.frame = CGRectMake(285,25,36,12); - } - }*/ + self.battery.frame = CGRectMake( + originalBattery.origin.x, + originalBattery.origin.y - (self.battery.number * 85) + 85, + originalBattery.size.width, + originalBattery.size.height + ); } %end \ No newline at end of file