|
|
@@ -7,7 +7,7 @@ |
|
|
|
@interface NCLookHeaderContentView |
|
|
|
-(void)_updateDateLabelFontForShortLook; |
|
|
|
@end |
|
|
|
//IOS 11 |
|
|
|
//IOS 11 & 12 |
|
|
|
@interface BSUIRelativeDateLabel |
|
|
|
@property (assign,nonatomic) NSString *text; |
|
|
|
-(void)sizeToFit; |
|
|
@@ -16,6 +16,11 @@ |
|
|
|
@interface MTPlatterHeaderContentView |
|
|
|
-(void)_updateTextAttributesForDateLabel; |
|
|
|
@end |
|
|
|
//IOS 12 |
|
|
|
@interface PLPlatterHeaderContentView |
|
|
|
-(void)_updateTextAttributesForDateLabel; |
|
|
|
@end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static bool is24h; |
|
|
@@ -147,6 +152,69 @@ static NSString *settingsPath = @"/var/mobile/Library/Preferences/com.gilshahar7 |
|
|
|
%end |
|
|
|
%end |
|
|
|
|
|
|
|
%group iOS12 |
|
|
|
%hook PLPlatterHeaderContentView |
|
|
|
-(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 |
|
|
|
|
|
|
|
%ctor{ |
|
|
|
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; |
|
|
|
[formatter setLocale:[NSLocale currentLocale]]; |
|
|
@@ -161,5 +229,7 @@ static NSString *settingsPath = @"/var/mobile/Library/Preferences/com.gilshahar7 |
|
|
|
%init(iOS10); |
|
|
|
} else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 11.0 && [[[UIDevice currentDevice] systemVersion] floatValue] < 12.0) { |
|
|
|
%init(iOS11); |
|
|
|
}else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 12.0 && [[[UIDevice currentDevice] systemVersion] floatValue] < 13.0) { |
|
|
|
%init(iOS12); |
|
|
|
} |
|
|
|
} |
|
|
|
} |