mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-13 22:52:26 +00:00
Extracted MPPluginRepositoryItem into a seperate file
This commit is contained in:
@@ -215,6 +215,7 @@
|
|||||||
4CA4B3461FC8833A007DF507 /* PickcharView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CA4B3451FC88339007DF507 /* PickcharView.xib */; };
|
4CA4B3461FC8833A007DF507 /* PickcharView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4CA4B3451FC88339007DF507 /* PickcharView.xib */; };
|
||||||
4CA78C001FD58C92003C8560 /* MPPluginRepository.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CA78BFF1FD58C92003C8560 /* MPPluginRepository.m */; };
|
4CA78C001FD58C92003C8560 /* MPPluginRepository.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CA78BFF1FD58C92003C8560 /* MPPluginRepository.m */; };
|
||||||
4CAAA8271D787B8B00CDE977 /* MPAutotypeBuilderViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CAAA8251D787B8B00CDE977 /* MPAutotypeBuilderViewController.m */; };
|
4CAAA8271D787B8B00CDE977 /* MPAutotypeBuilderViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CAAA8251D787B8B00CDE977 /* MPAutotypeBuilderViewController.m */; };
|
||||||
|
4CAD338F205169D30068587E /* MPPluginRepositoryItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CAD338E205169D30068587E /* MPPluginRepositoryItem.m */; };
|
||||||
4CAD748C15B889B700104512 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748B15B889B700104512 /* Security.framework */; };
|
4CAD748C15B889B700104512 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748B15B889B700104512 /* Security.framework */; };
|
||||||
4CAD748E15B88AC100104512 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748D15B88AC100104512 /* libz.dylib */; };
|
4CAD748E15B88AC100104512 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CAD748D15B88AC100104512 /* libz.dylib */; };
|
||||||
4CB33F861EAF54A000C9341E /* KPKNode+MPIsHistory.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CB33F851EAF54A000C9341E /* KPKNode+MPIsHistory.m */; };
|
4CB33F861EAF54A000C9341E /* KPKNode+MPIsHistory.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CB33F851EAF54A000C9341E /* KPKNode+MPIsHistory.m */; };
|
||||||
@@ -726,6 +727,8 @@
|
|||||||
4CA78BFF1FD58C92003C8560 /* MPPluginRepository.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPPluginRepository.m; sourceTree = "<group>"; };
|
4CA78BFF1FD58C92003C8560 /* MPPluginRepository.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPPluginRepository.m; sourceTree = "<group>"; };
|
||||||
4CAAA8241D787B8B00CDE977 /* MPAutotypeBuilderViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPAutotypeBuilderViewController.h; sourceTree = "<group>"; };
|
4CAAA8241D787B8B00CDE977 /* MPAutotypeBuilderViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPAutotypeBuilderViewController.h; sourceTree = "<group>"; };
|
||||||
4CAAA8251D787B8B00CDE977 /* MPAutotypeBuilderViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPAutotypeBuilderViewController.m; sourceTree = "<group>"; };
|
4CAAA8251D787B8B00CDE977 /* MPAutotypeBuilderViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPAutotypeBuilderViewController.m; sourceTree = "<group>"; };
|
||||||
|
4CAD338D205169D30068587E /* MPPluginRepositoryItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPPluginRepositoryItem.h; sourceTree = "<group>"; };
|
||||||
|
4CAD338E205169D30068587E /* MPPluginRepositoryItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MPPluginRepositoryItem.m; sourceTree = "<group>"; };
|
||||||
4CAD748B15B889B700104512 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
|
4CAD748B15B889B700104512 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
|
||||||
4CAD748D15B88AC100104512 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
|
4CAD748D15B88AC100104512 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
|
||||||
4CB33F841EAF54A000C9341E /* KPKNode+MPIsHistory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KPKNode+MPIsHistory.h"; sourceTree = "<group>"; };
|
4CB33F841EAF54A000C9341E /* KPKNode+MPIsHistory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "KPKNode+MPIsHistory.h"; sourceTree = "<group>"; };
|
||||||
@@ -1623,6 +1626,8 @@
|
|||||||
4C8F0C6D1FCEE9B900BE157F /* MPPluginConstants.m */,
|
4C8F0C6D1FCEE9B900BE157F /* MPPluginConstants.m */,
|
||||||
4CA78BFE1FD58C92003C8560 /* MPPluginRepository.h */,
|
4CA78BFE1FD58C92003C8560 /* MPPluginRepository.h */,
|
||||||
4CA78BFF1FD58C92003C8560 /* MPPluginRepository.m */,
|
4CA78BFF1FD58C92003C8560 /* MPPluginRepository.m */,
|
||||||
|
4CAD338D205169D30068587E /* MPPluginRepositoryItem.h */,
|
||||||
|
4CAD338E205169D30068587E /* MPPluginRepositoryItem.m */,
|
||||||
4C735FBE2035FCBF00708D53 /* MPPluginEntryActionContext.h */,
|
4C735FBE2035FCBF00708D53 /* MPPluginEntryActionContext.h */,
|
||||||
4C735FBF2035FCBF00708D53 /* MPPluginEntryActionContext.m */,
|
4C735FBF2035FCBF00708D53 /* MPPluginEntryActionContext.m */,
|
||||||
);
|
);
|
||||||
@@ -1953,6 +1958,7 @@
|
|||||||
4C6F228919A4A7F90012310C /* MPAutotypeClear.m in Sources */,
|
4C6F228919A4A7F90012310C /* MPAutotypeClear.m in Sources */,
|
||||||
4C0B038C18E36DA400B9F9C9 /* MPFixAutotypeWindowController.m in Sources */,
|
4C0B038C18E36DA400B9F9C9 /* MPFixAutotypeWindowController.m in Sources */,
|
||||||
4C7679BF1D76D6D8001F33D6 /* MPErrorRecoveryAttempter.m in Sources */,
|
4C7679BF1D76D6D8001F33D6 /* MPErrorRecoveryAttempter.m in Sources */,
|
||||||
|
4CAD338F205169D30068587E /* MPPluginRepositoryItem.m in Sources */,
|
||||||
4C9BFFFB1FD19B5400264B16 /* MPPrettyPasswordTransformer.m in Sources */,
|
4C9BFFFB1FD19B5400264B16 /* MPPrettyPasswordTransformer.m in Sources */,
|
||||||
4CA0F3ED1A3074B50067C0E5 /* MPWindowTitleComboBoxDelegate.m in Sources */,
|
4CA0F3ED1A3074B50067C0E5 /* MPWindowTitleComboBoxDelegate.m in Sources */,
|
||||||
4CF78064176E75AD0032EE71 /* MPIntegrationSettingsController.m in Sources */,
|
4CF78064176E75AD0032EE71 /* MPIntegrationSettingsController.m in Sources */,
|
||||||
|
|||||||
@@ -28,6 +28,6 @@ NSString *const MPKdbxDocumentUTI = @"com.hicknhack.macpass.kdbx";
|
|||||||
NSString *const MPPluginUTI = @"com.hicknhack.macpass.plugin";
|
NSString *const MPPluginUTI = @"com.hicknhack.macpass.plugin";
|
||||||
|
|
||||||
NSString *const MPBundleHelpURLKey = @"MPHelpURL";
|
NSString *const MPBundleHelpURLKey = @"MPHelpURL";
|
||||||
NSString *const MPBundlePluginRepositoryURLKey = @"MPPluginRepositoryURL";
|
NSString *const MPBundlePluginRepositoryURLKey = @"MPPluginRepositoryURLKey";
|
||||||
NSString *const MPBundlePluginCompaibilityURLKey = @"MPPluginCompaibilityURL";
|
NSString *const MPBundlePluginCompadibilityURLKey = @"MPPluginCompadibilityURLKey";
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,4 @@
|
|||||||
|
|
||||||
FOUNDATION_EXPORT NSString *const MPPluginFileExtension;
|
FOUNDATION_EXPORT NSString *const MPPluginFileExtension;
|
||||||
|
|
||||||
FOUNDATION_EXPORT NSString *const MPPluginMinimumHostVersionKey;
|
|
||||||
FOUNDATION_EXPORT NSString *const MPPluginMaxiumHostVersoinKey;
|
|
||||||
|
|
||||||
#endif /* MPPluginConstants_h */
|
#endif /* MPPluginConstants_h */
|
||||||
|
|||||||
@@ -6,26 +6,14 @@
|
|||||||
// Copyright © 2017 HicknHack Software GmbH. All rights reserved.
|
// Copyright © 2017 HicknHack Software GmbH. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
@import Foundation;
|
||||||
|
|
||||||
@interface MPPluginRespositoryItem : NSObject
|
@class MPPluginRepositoryItem;
|
||||||
|
|
||||||
@property (copy) NSString *name;
|
|
||||||
@property (copy) NSString *version;
|
|
||||||
@property (copy) NSString *descriptionText;
|
|
||||||
@property (copy) NSURL *sourceURL;
|
|
||||||
@property (copy) NSURL *downloadURL;
|
|
||||||
@property (readonly, nonatomic, getter=isVaid) BOOL valid;
|
|
||||||
|
|
||||||
+ (instancetype)pluginItemFromDictionary:(NSDictionary *)dict;
|
|
||||||
- (instancetype)initWithDictionary:(NSDictionary *)dict;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface MPPluginRepository : NSObject
|
@interface MPPluginRepository : NSObject
|
||||||
|
|
||||||
@property (nonatomic, copy) NSArray<MPPluginRespositoryItem *> *availablePlugins;
|
@property (class, strong, readonly) MPPluginRepository *sharedRespoitory;
|
||||||
|
@property (nonatomic, copy) NSArray<MPPluginRepositoryItem *> *availablePlugins;
|
||||||
|
|
||||||
+ (instancetype)sharedRespoitory;
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -8,39 +8,7 @@
|
|||||||
|
|
||||||
#import "MPPluginRepository.h"
|
#import "MPPluginRepository.h"
|
||||||
#import "MPConstants.h"
|
#import "MPConstants.h"
|
||||||
|
#import "MPPluginRepositoryItem.h"
|
||||||
NSString *const MPPluginItemNameKey = @"name";
|
|
||||||
NSString *const MPPluginItemDescriptionKey = @"description";
|
|
||||||
NSString *const MPPluginItemDownloadURLKey = @"download";
|
|
||||||
NSString *const MPPluginItemSourceURLKey = @"source";
|
|
||||||
NSString *const MPPluginItemVersionKey = @"version";
|
|
||||||
|
|
||||||
@implementation MPPluginRespositoryItem
|
|
||||||
|
|
||||||
@dynamic valid;
|
|
||||||
|
|
||||||
+ (instancetype)pluginItemFromDictionary:(NSDictionary *)dict {
|
|
||||||
return [[MPPluginRespositoryItem alloc] initWithDictionary:dict];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (instancetype)initWithDictionary:(NSDictionary *)dict {
|
|
||||||
self = [super init];
|
|
||||||
if(self) {
|
|
||||||
self.name = dict[MPPluginItemNameKey];
|
|
||||||
self.descriptionText = dict[MPPluginItemDescriptionKey];
|
|
||||||
self.downloadURL = [NSURL URLWithString:dict[MPPluginItemDownloadURLKey]];
|
|
||||||
self.sourceURL = [NSURL URLWithString:dict[MPPluginItemSourceURLKey]];
|
|
||||||
self.version = dict[MPPluginItemVersionKey];
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (BOOL)isVaid {
|
|
||||||
/* name and download seems ok */
|
|
||||||
return (self.name.length > 0 && self.downloadURL);
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation MPPluginRepository
|
@implementation MPPluginRepository
|
||||||
|
|
||||||
@@ -60,7 +28,7 @@ NSString *const MPPluginItemVersionKey = @"version";
|
|||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSArray<MPPluginRespositoryItem *> *)availablePlugins {
|
- (NSArray<MPPluginRepositoryItem *> *)availablePlugins {
|
||||||
NSString *urlString = NSBundle.mainBundle.infoDictionary[MPBundlePluginRepositoryURLKey];
|
NSString *urlString = NSBundle.mainBundle.infoDictionary[MPBundlePluginRepositoryURLKey];
|
||||||
if(!urlString) {
|
if(!urlString) {
|
||||||
return @[];
|
return @[];
|
||||||
@@ -83,7 +51,7 @@ NSString *const MPPluginItemVersionKey = @"version";
|
|||||||
if(![item isKindOfClass:NSDictionary.class]) {
|
if(![item isKindOfClass:NSDictionary.class]) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
MPPluginRespositoryItem *pluginItem = [MPPluginRespositoryItem pluginItemFromDictionary:item];
|
MPPluginRepositoryItem *pluginItem = [MPPluginRepositoryItem pluginItemFromDictionary:item];
|
||||||
if(pluginItem.isVaid) {
|
if(pluginItem.isVaid) {
|
||||||
[items addObject:pluginItem];
|
[items addObject:pluginItem];
|
||||||
}
|
}
|
||||||
|
|||||||
25
MacPass/MPPluginRepositoryItem.h
Normal file
25
MacPass/MPPluginRepositoryItem.h
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
//
|
||||||
|
// MPPluginRepositoryItem.h
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 08.03.18.
|
||||||
|
// Copyright © 2018 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@interface MPPluginRepositoryItem : NSObject
|
||||||
|
|
||||||
|
@property (copy,readonly) NSString *name;
|
||||||
|
@property (copy,readonly) NSString *currentVersion;
|
||||||
|
@property (copy,readonly) NSString *descriptionText;
|
||||||
|
@property (copy,readonly) NSURL *sourceURL;
|
||||||
|
@property (copy,readonly) NSURL *downloadURL;
|
||||||
|
@property (copy,readonly) NSURL *bundleIdentifier;
|
||||||
|
|
||||||
|
@property (readonly, nonatomic, getter=isVaid) BOOL valid;
|
||||||
|
|
||||||
|
+ (instancetype)pluginItemFromDictionary:(NSDictionary *)dict;
|
||||||
|
- (instancetype)initWithDictionary:(NSDictionary *)dict;
|
||||||
|
|
||||||
|
@end
|
||||||
54
MacPass/MPPluginRepositoryItem.m
Normal file
54
MacPass/MPPluginRepositoryItem.m
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
//
|
||||||
|
// MPPluginRepositoryItem.m
|
||||||
|
// MacPass
|
||||||
|
//
|
||||||
|
// Created by Michael Starke on 08.03.18.
|
||||||
|
// Copyright © 2018 HicknHack Software GmbH. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import "MPPluginRepositoryItem.h"
|
||||||
|
|
||||||
|
|
||||||
|
NSString *const MPPluginItemNameKey = @"name";
|
||||||
|
NSString *const MPPluginItemDescriptionKey = @"description";
|
||||||
|
NSString *const MPPluginItemDownloadURLKey = @"download";
|
||||||
|
NSString *const MPPluginItemSourceURLKey = @"source";
|
||||||
|
NSString *const MPPluginItemCurrentVersionKey = @"currentVersion";
|
||||||
|
|
||||||
|
@interface MPPluginRepositoryItem ()
|
||||||
|
|
||||||
|
@property (copy) NSString *name;
|
||||||
|
@property (copy) NSString *currentVersion;
|
||||||
|
@property (copy) NSString *descriptionText;
|
||||||
|
@property (copy) NSURL *sourceURL;
|
||||||
|
@property (copy) NSURL *downloadURL;
|
||||||
|
@property (copy) NSURL *bundleIdentifier;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation MPPluginRepositoryItem
|
||||||
|
|
||||||
|
@dynamic valid;
|
||||||
|
|
||||||
|
+ (instancetype)pluginItemFromDictionary:(NSDictionary *)dict {
|
||||||
|
return [[MPPluginRepositoryItem alloc] initWithDictionary:dict];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (instancetype)initWithDictionary:(NSDictionary *)dict {
|
||||||
|
self = [super init];
|
||||||
|
if(self) {
|
||||||
|
self.name = dict[MPPluginItemNameKey];
|
||||||
|
self.descriptionText = dict[MPPluginItemDescriptionKey];
|
||||||
|
self.downloadURL = [NSURL URLWithString:dict[MPPluginItemDownloadURLKey]];
|
||||||
|
self.sourceURL = [NSURL URLWithString:dict[MPPluginItemSourceURLKey]];
|
||||||
|
self.currentVersion = dict[MPPluginItemCurrentVersionKey];
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)isVaid {
|
||||||
|
/* name and download seems ok */
|
||||||
|
return (self.name.length > 0 && self.downloadURL);
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
Reference in New Issue
Block a user