forked from Mojave/ExactTime
1.4
This commit is contained in:
3
Makefile
3
Makefile
@ -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
|
||||||
|
94
Tweak.xm
94
Tweak.xm
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
2
control
2
control
@ -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
|
||||||
|
Reference in New Issue
Block a user