Sync is saving the last completed date.
[pithos-macos] / pithos-macos / LastModifiedDateTransformer.m
index a5420b4..b14fda6 100644 (file)
 - (id)transformedValue:(id)value {
     if (value == nil)
                return nil;
-    // XXX make it more like finder
-    return [NSDateFormatter localizedStringFromDate:(NSDate *)value 
-                                          dateStyle:NSDateFormatterShortStyle 
-                                          timeStyle:NSDateFormatterShortStyle];
+    
+    NSCalendar *calendar = [NSCalendar currentCalendar];
+    NSDateComponents *comps = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:[NSDate date]];
+    [comps setHour:23];
+    [comps setMinute:59];
+    [comps setSecond:59];    
+    NSTimeInterval timeInterval = [[calendar dateFromComponents:comps] timeIntervalSinceDate:(NSDate *)value];
+    if (timeInterval < 86400) {
+        // Today
+        return [NSString stringWithFormat:@"Today %@", [NSDateFormatter localizedStringFromDate:(NSDate *)value 
+                                                                                                 dateStyle:NSDateFormatterNoStyle 
+                                                                                                 timeStyle:NSDateFormatterShortStyle]];
+    } else if (timeInterval < 172800) {
+        // Yesterday
+        return [NSString stringWithFormat:@"Yesterday %@", [NSDateFormatter localizedStringFromDate:(NSDate *)value 
+                                                                                                     dateStyle:NSDateFormatterNoStyle 
+                                                                                                     timeStyle:NSDateFormatterShortStyle]];
+    } else {
+        return [NSDateFormatter localizedStringFromDate:(NSDate *)value 
+                                              dateStyle:NSDateFormatterShortStyle 
+                                              timeStyle:NSDateFormatterShortStyle];
+    }
 }
 
 + (void)initialize {