This commit is contained in:
2018-03-18 07:21:24 +02:00
committed by GitHub
parent 2fa8a407a9
commit 7baaa07fdb
3 changed files with 143 additions and 62 deletions

View File

@ -1,3 +1,4 @@
ARCHS = armv7 arm64 ARCHS = armv7 arm64
include $(THEOS)/makefiles/common.mk include $(THEOS)/makefiles/common.mk
@ -9,4 +10,4 @@ include $(THEOS_MAKE_PATH)/tweak.mk
after-install:: after-install::
install.exec "killall -9 SpringBoard" install.exec "killall -9 SpringBoard"
SUBPROJECTS += exacttimeprefs SUBPROJECTS += exacttimeprefs
include $(THEOS_MAKE_PATH)/aggregate.mk include $(THEOS)/makefiles/aggregate.mk

View File

@ -1,18 +1,29 @@
//IOS 10
@interface NCNotificationDateLabel @interface NCNotificationDateLabel
@property (assign,nonatomic) NSString *text; @property (assign,nonatomic) NSString *text;
-(void)sizeToFit; -(void)sizeToFit;
@end @end
//IOS 10
@interface NCLookHeaderContentView @interface NCLookHeaderContentView
-(void)_updateDateLabelFontForShortLook; -(void)_updateDateLabelFontForShortLook;
@end @end
//IOS 11
@interface BSUIRelativeDateLabel
@property (assign,nonatomic) NSString *text;
-(void)sizeToFit;
@end
//IOS 11
@interface MTPlatterHeaderContentView
-(void)_updateTextAttributesForDateLabel;
@end
static bool is24h; static bool is24h;
static NSString *settingsPath = @"/var/mobile/Library/Preferences/com.gilshahar7.exacttimeprefs.plist"; static NSString *settingsPath = @"/var/mobile/Library/Preferences/com.gilshahar7.exacttimeprefs.plist";
%group iOS10
%hook NCLookHeaderContentView %hook NCLookHeaderContentView
-(void)_updateDateLabelFontForShortLook{ -(void)_updateDateLabelFontForShortLook{
%orig; %orig;
NSDate *date = MSHookIvar<NSDate *>(self, "_date"); NSDate *date = MSHookIvar<NSDate *>(self, "_date");
NSInteger format = MSHookIvar<NSInteger >(self, "_dateFormatStyle"); NSInteger format = MSHookIvar<NSInteger >(self, "_dateFormatStyle");
@ -65,11 +76,75 @@ static NSString *settingsPath = @"/var/mobile/Library/Preferences/com.gilshahar7
[dateFormatter release]; [dateFormatter release];
} }
} }
} }
-(void)dateLabelDidChange:(id)arg1{ -(void)dateLabelDidChange:(id)arg1{
%orig(arg1); %orig(arg1);
[self _updateDateLabelFontForShortLook]; [self _updateDateLabelFontForShortLook];
} }
%end
%end
%group iOS11
%hook MTPlatterHeaderContentView
-(void)_updateTextAttributesForDateLabel{
%orig;
NSDate *date = MSHookIvar<NSDate *>(self, "_date");
NSInteger format = MSHookIvar<NSInteger >(self, "_dateFormatStyle");
NSMutableDictionary *prefs = [[NSMutableDictionary alloc] initWithContentsOfFile:settingsPath];
CGFloat affectTime = [[prefs objectForKey:@"affectTime"] floatValue];
if((date != nil) && (format == 1)){
BSUIRelativeDateLabel *dateLabel = MSHookIvar<BSUIRelativeDateLabel *>(self, "_dateLabel");
int timeSinceNow = (int)[date timeIntervalSinceNow];
timeSinceNow = timeSinceNow*-1;
bool addMinutes = [[prefs objectForKey:@"addMinutes"] boolValue];
bool addToCurrent = [[prefs objectForKey:@"addToCurrent"] boolValue];
int hours = timeSinceNow / 3600;
int minutes = (timeSinceNow % 3600) / 60;
if(addMinutes){
if(hours == 0){
if(minutes == 0){
}else{
dateLabel.text = [NSString stringWithFormat:@"%im ago", minutes];
}
}else{
if(minutes == 0){
dateLabel.text = [NSString stringWithFormat:@"%ih ago", hours];
} else{
dateLabel.text = [NSString stringWithFormat:@"%ih %im ago", hours, minutes];
}
}
}else if(addToCurrent){
if(hours == 0){
if(minutes == 0){
}else{
dateLabel.text = [NSString stringWithFormat:@"%im ago", minutes];
}
}else{
dateLabel.text = [NSString stringWithFormat:@"%ih ago", hours];
}
}
if((timeSinceNow/60) >= affectTime){
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
if(is24h){
[dateFormatter setDateFormat:@"HH:mm"];
}else{
[dateFormatter setDateFormat:@"h:mm a"];
}
if(addToCurrent && !([dateLabel.text isEqualToString:[dateFormatter stringFromDate:date]])){
dateLabel.text = [[dateLabel.text stringByAppendingString:@" • "] stringByAppendingString:[dateFormatter stringFromDate:date]];
}else{
dateLabel.text =[dateFormatter stringFromDate:date];
}
[dateLabel sizeToFit];
[dateFormatter release];
}
}
}
-(void)dateLabelDidChange:(id)arg1{
%orig(arg1);
[self _updateTextAttributesForDateLabel];
}
%end
%end %end
%ctor{ %ctor{
@ -82,4 +157,9 @@ static NSString *settingsPath = @"/var/mobile/Library/Preferences/com.gilshahar7
NSRange pmRange = [dateString rangeOfString:[formatter PMSymbol]]; NSRange pmRange = [dateString rangeOfString:[formatter PMSymbol]];
is24h = (amRange.location == NSNotFound && pmRange.location == NSNotFound); is24h = (amRange.location == NSNotFound && pmRange.location == NSNotFound);
[formatter release]; [formatter release];
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9.0 && [[[UIDevice currentDevice] systemVersion] floatValue] < 11.0) {
%init(iOS10);
} else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 11.0 && [[[UIDevice currentDevice] systemVersion] floatValue] < 12.0) {
%init(iOS11);
}
} }

View File

@ -1,7 +1,7 @@
Package: com.gilshahar7.exacttime Package: com.gilshahar7.exacttime
Name: ExactTime Name: ExactTime
Depends: mobilesubstrate Depends: mobilesubstrate
Version: 1.3 Version: 1.4
Architecture: iphoneos-arm Architecture: iphoneos-arm
Description: Shows the exact time of a notification. Description: Shows the exact time of a notification.
Maintainer: gilshahar7 Maintainer: gilshahar7