Files
ExactTime/Tweak.xm
Gil Shahar 41180d2ffc Version 1.3
*Added an option to add estimated time to the exact time.
Example: "48m ago • 09:41"

*Added an option to add minutes to "Xh ago"
Example: "5h 47m ago"

*You can also combine these two options to get something like this: "5h 47m ago • 09:41"

*Added an icon to the preferences.
2017-06-03 10:19:05 +03:00

86 line
2.9 KiB
Plaintext

@interface NCNotificationDateLabel
@property (assign,nonatomic) NSString *text;
-(void)sizeToFit;
@end
@interface NCLookHeaderContentView
-(void)_updateDateLabelFontForShortLook;
@end
static bool is24h;
static NSString *settingsPath = @"/var/mobile/Library/Preferences/com.gilshahar7.exacttimeprefs.plist";
%hook NCLookHeaderContentView
-(void)_updateDateLabelFontForShortLook{
%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)){
NCNotificationDateLabel *dateLabel = MSHookIvar<NCNotificationDateLabel *>(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 _updateDateLabelFontForShortLook];
}
%end
%ctor{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale currentLocale]];
[formatter setDateStyle:NSDateFormatterNoStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
NSString *dateString = [formatter stringFromDate:[NSDate date]];
NSRange amRange = [dateString rangeOfString:[formatter AMSymbol]];
NSRange pmRange = [dateString rangeOfString:[formatter PMSymbol]];
is24h = (amRange.location == NSNotFound && pmRange.location == NSNotFound);
[formatter release];
}