From 7c9460d027b3f85dbdaf01d4daec0f69864877fe Mon Sep 17 00:00:00 2001 From: Michael Starke Date: Thu, 26 Nov 2020 12:08:32 +0100 Subject: [PATCH] Converted to class properties and modern obj-c syntax --- MacPass/MPIconHelper.h | 6 +++--- MacPass/MPIconHelper.m | 34 +++++++++++++++++++--------------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/MacPass/MPIconHelper.h b/MacPass/MPIconHelper.h index 3aeab3e4..9e88113c 100644 --- a/MacPass/MPIconHelper.h +++ b/MacPass/MPIconHelper.h @@ -130,19 +130,19 @@ typedef NS_ENUM(NSUInteger, MPIconType) { * Available Icon names (all) * @return Dictionary with MPIconType keys and NSString values containing their names */ -+ (NSDictionary *)availableIconNames; +@property (class, nonatomic, strong, readonly) NSDictionary *availableIconNames; /** * List of all available DatabaseIcons as an array of Images. Sorted by IconIndex. * @return Array of Icons as NSImage objects */ -+ (NSArray *)databaseIcons; +@property (class, nonatomic, strong, readonly) NSArray *databaseIcons; /** * List of all available DatabaseIcons as an array of MPIconType. Sorted by IconIndex. * @return Array of MPIconType as NSNumber objects */ -+ (NSArray *)databaseIconTypes; +@property (class, nonatomic, strong, readonly) NSArray *databaseIconTypes; + (void)fetchIconDataForURL:(NSURL *)url completionHandler:(void (^)(NSData *iconData))handler; diff --git a/MacPass/MPIconHelper.m b/MacPass/MPIconHelper.m index b2664da6..cbe93d6f 100644 --- a/MacPass/MPIconHelper.m +++ b/MacPass/MPIconHelper.m @@ -29,9 +29,9 @@ + (NSImage *)icon:(MPIconType)type { static NSDictionary *icons; if(!icons) { - icons = [MPIconHelper availableIconNames]; + icons = MPIconHelper.availableIconNames; } - if([[icons allKeys] containsObject:@(type)]) { + if([icons.allKeys containsObject:@(type)]) { NSString *imageName = icons[@(type)]; NSImage *image = [NSImage imageNamed:imageName]; return image; @@ -43,7 +43,7 @@ static NSArray *icons; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ - NSDictionary *imageNames = [MPIconHelper availableIconNames]; + NSDictionary *imageNames = MPIconHelper.availableIconNames; NSMutableArray *mutableIcons = [[NSMutableArray alloc] initWithCapacity:imageNames.count]; NSArray *sortedImageNames = [imageNames.allKeys sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { @@ -68,10 +68,10 @@ static NSArray *iconTypes; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ - NSDictionary *imageNames = [MPIconHelper availableIconNames]; + NSDictionary *imageNames = MPIconHelper.availableIconNames; - NSArray *sortedImageNames = [[imageNames allKeys] sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { - return [[imageNames objectForKey:obj1] compare:[imageNames objectForKey:obj2]]; + NSArray *sortedImageNames = [imageNames.allKeys sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { + return [imageNames[obj1] compare:imageNames[obj2]]; }]; iconTypes = [sortedImageNames filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) { NSNumber *iconNumber = (NSNumber *)evaluatedObject; @@ -178,17 +178,21 @@ return; // no url, no handler so no need to do anything } - // default setting value is direct download - NSString *urlString = [NSString stringWithFormat:@"%@://%@/favicon.ico", url.scheme, url.host ? url.host : @""]; - + NSString *urlString; MPFaviconDownloadMethod faviconDownloadMethod = (MPFaviconDownloadMethod)[NSUserDefaults.standardUserDefaults integerForKey:kMPSettingsKeyFaviconDownloadMethod]; - if (faviconDownloadMethod == MPFaviconDownloadMethodDuckDuckGo) { - urlString = [NSString stringWithFormat:@"https://icons.duckduckgo.com/ip3/%@.ico", url.host ? url.host : @""]; + switch(faviconDownloadMethod) { + case MPFaviconDownloadMethodGoogle: + urlString = [NSString stringWithFormat:@"https://www.google.com/s2/favicons?domain=%@", url.host ? url.host : @""]; + break; + case MPFaviconDownloadMethodDuckDuckGo: + urlString = [NSString stringWithFormat:@"https://icons.duckduckgo.com/ip3/%@.ico", url.host ? url.host : @""]; + break; + case MPFaviconDownloadMethodDirect: + default: + urlString = [NSString stringWithFormat:@"%@://%@/favicon.ico", url.scheme, url.host ? url.host : @""]; + break; } - else if (faviconDownloadMethod == MPFaviconDownloadMethodGoogle) { - urlString = [NSString stringWithFormat:@"https://www.google.com/s2/favicons?domain=%@", url.host ? url.host : @""]; - } - + NSURL *favIconURL = [NSURL URLWithString:urlString]; if(!favIconURL) { /* call the handler with nil data */