diff --git a/MacPass/MPPluginRepository.h b/MacPass/MPPluginRepository.h index e041c369..39627065 100644 --- a/MacPass/MPPluginRepository.h +++ b/MacPass/MPPluginRepository.h @@ -31,6 +31,7 @@ FOUNDATION_EXTERN NSString *const MPPluginRepositoryDidUpdateAvailablePluginsNot @interface MPPluginRepository : NSObject @property (class, strong, readonly) MPPluginRepository *defaultRepository; +@property (readonly, copy) NSDate *updatedAt; @property (readonly) BOOL isInitialized; /* this property is set asynchronously, to make sure, you receive valid data, diff --git a/MacPass/MPPluginRepository.m b/MacPass/MPPluginRepository.m index f562fa7d..09268b09 100644 --- a/MacPass/MPPluginRepository.m +++ b/MacPass/MPPluginRepository.m @@ -38,6 +38,10 @@ NSString *const MPPluginRepositoryDidUpdateAvailablePluginsNotification = @"com. @synthesize availablePlugins = _availablePlugins; ++ (NSSet *)keyPathsForValuesAffectingUpdatedAt { + return [NSSet setWithObject:NSStringFromSelector(@selector(lastDataFetchTime))]; +} + + (instancetype)defaultRepository { static MPPluginRepository *instance; static dispatch_once_t onceToken; @@ -71,6 +75,10 @@ NSString *const MPPluginRepositoryDidUpdateAvailablePluginsNotification = @"com. return _availablePlugins; } +- (NSDate *)updatedAt { + return [NSDate dateWithTimeIntervalSinceReferenceDate:self.lastDataFetchTime]; +} + - (void)setAvailablePlugins:(NSArray *)availablePlugins { @synchronized (self) { _availablePlugins = [availablePlugins copy]; diff --git a/MacPass/MPPluginRepositoryBrowserViewController.m b/MacPass/MPPluginRepositoryBrowserViewController.m index 810a40ae..feed3383 100644 --- a/MacPass/MPPluginRepositoryBrowserViewController.m +++ b/MacPass/MPPluginRepositoryBrowserViewController.m @@ -24,6 +24,7 @@ typedef NS_ENUM(NSUInteger, MPPluginTableColumn) { @property (copy) NSArray* repositoryItems; @property (strong) IBOutlet NSTableView *itemTable; +@property (strong) IBOutlet NSTextField *updatedAtTextField; @end @@ -35,6 +36,7 @@ typedef NS_ENUM(NSUInteger, MPPluginTableColumn) { - (void)viewDidLoad { [super viewDidLoad]; + [self.updatedAtTextField bind:NSValueBinding toObject:MPPluginRepository.defaultRepository withKeyPath:NSStringFromSelector(@selector(updatedAt)) options:nil]; [self _refreshRepository]; } diff --git a/MacPass/PluginRepositoryBrowserView.xib b/MacPass/PluginRepositoryBrowserView.xib index fcff738d..7fa4b67a 100644 --- a/MacPass/PluginRepositoryBrowserView.xib +++ b/MacPass/PluginRepositoryBrowserView.xib @@ -9,6 +9,7 @@ + @@ -19,13 +20,13 @@ - + - + - + @@ -142,7 +143,7 @@ - + - + + + + - +