Converted to class properties and modern obj-c syntax

This commit is contained in:
Michael Starke
2020-11-26 12:08:32 +01:00
parent 3807b0a0b7
commit 7c9460d027
2 changed files with 22 additions and 18 deletions

View File

@@ -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<KPKIcon *> *)databaseIcons;
@property (class, nonatomic, strong, readonly) NSArray<KPKIcon *> *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;

View File

@@ -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 */