|
|
|
|
|
|
|
|
|
|
|
@interface UIDateLabel : UILabel |
|
|
|
|
|
@property (nonatomic, strong) NSDate *date; |
|
|
|
|
|
@end |
|
|
|
|
|
|
|
|
|
|
|
@interface MPRecentsTableViewCell |
|
|
|
|
|
@property (nonatomic, strong) UIDateLabel *callerDateLabel; |
|
|
|
|
|
@end |
|
|
|
|
|
|
|
|
|
|
|
static bool is24h; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%hook MPRecentsTableViewCell |
|
|
|
|
|
-(void)layoutSubviews{ |
|
|
|
|
|
%orig; |
|
|
|
|
|
if(![self.callerDateLabel.text containsString:@":"]){ |
|
|
|
|
|
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; |
|
|
|
|
|
if(is24h){ |
|
|
|
|
|
[dateFormatter setDateFormat:@"\nHH:mm"]; |
|
|
|
|
|
}else{ |
|
|
|
|
|
[dateFormatter setDateFormat:@"\nh:mm a"]; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
self.callerDateLabel.textAlignment = 2; |
|
|
|
|
|
self.callerDateLabel.numberOfLines = 2; |
|
|
|
|
|
self.callerDateLabel.text = [self.callerDateLabel.text stringByAppendingString:[dateFormatter stringFromDate:self.callerDateLabel.date]]; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
%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); |
|
|
|
|
|
} |