diff --git a/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/DatabasesManager.h b/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/DatabasesManager.h index 0907f01f3..693aac5f6 100644 --- a/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/DatabasesManager.h +++ b/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/DatabasesManager.h @@ -14,12 +14,11 @@ @interface DatabasesManager : NSObject @property(nonatomic, strong) id connection; -@property(nonatomic, strong, readonly) - NSArray>* databaseDrivers; -- (instancetype)initWithDatabaseDrivers: - (NSArray>*)databaseDrivers; +- (instancetype)init; - (void)setConnection:(id)connection; - (BOOL)isConnected; +- (void)addDatabaseDriver:(id)driver; +- (void)removeDatabaseDriver:(id)driver; @end diff --git a/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/DatabasesManager.m b/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/DatabasesManager.m index b97a3cf05..428ab34f4 100644 --- a/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/DatabasesManager.m +++ b/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/DatabasesManager.m @@ -27,18 +27,18 @@ databaseDescriptorHolders; @property(nonatomic, strong) NSMutableSet* databaseDescriptorHolderSet; +@property(nonatomic, strong) NSMutableSet>* databaseDrivers; @end @implementation DatabasesManager -- (instancetype)initWithDatabaseDrivers: - (NSArray>*)databaseDrivers { +- (instancetype)init { self = [super init]; if (self) { - _databaseDrivers = [databaseDrivers copy]; - _databaseDescriptorHolders = [[NSMutableDictionary alloc] init]; - _databaseDescriptorHolderSet = [[NSMutableSet alloc] init]; + _databaseDrivers = [NSMutableSet new]; + _databaseDescriptorHolders = [NSMutableDictionary new]; + _databaseDescriptorHolderSet = [NSMutableSet new]; } return self; } @@ -224,6 +224,20 @@ }]; } +- (void)addDatabaseDriver:(id)driver { + if ([self.databaseDrivers containsObject:driver]) { + return; + } + [self.databaseDrivers addObject:driver]; +} + +- (void)removeDatabaseDriver:(id)driver { + if (![self.databaseDrivers containsObject:driver]) { + return; + } + [self.databaseDrivers removeObject:driver]; +} + + (void)raiseInvalidRequestError:(id)responder { NSDictionary* errorResponse = [ObjectMapper errorWithCode:DatabasesErrorCodesInvalidRequest diff --git a/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin.h b/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin.h index 41f563b27..67be40da5 100644 --- a/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin.h +++ b/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin.h @@ -7,6 +7,7 @@ #import #import +#import "DatabaseDriver.h" @class DatabasesManager; @@ -15,5 +16,7 @@ - (instancetype)init NS_UNAVAILABLE; + (instancetype)sharedInstance; +- (void)addDatabaseDriver:(id)driver; +- (void)removeDatabaseDriver:(id)driver; @end diff --git a/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin.m b/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin.m index 7f6c4da20..8ca0dd3b6 100644 --- a/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin.m +++ b/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin.m @@ -23,10 +23,7 @@ - (instancetype)init { if (self = [super init]) { - NSArray>* databaseDrivers = - @[ [MockDatabaseDriver new] ]; - _databasesManager = - [[DatabasesManager alloc] initWithDatabaseDrivers:databaseDrivers]; + _databasesManager = [DatabasesManager new]; } return self; } @@ -59,6 +56,14 @@ return NO; } +- (void)addDatabaseDriver:(id)driver { + [self.databasesManager addDatabaseDriver:driver]; +} + +- (void)removeDatabaseDriver:(id)driver { + [self.databasesManager addDatabaseDriver:driver]; +} + @end #endif diff --git a/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/Mock/MockDatabaseDriver.h b/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/Mock/MockDatabaseDriver.h index bd62e9812..c78aa89e0 100644 --- a/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/Mock/MockDatabaseDriver.h +++ b/iOS/Plugins/FlipperKitDatabasesPlugin/FlipperKitDatabasesPlugin/Mock/MockDatabaseDriver.h @@ -5,8 +5,8 @@ * LICENSE file in the root directory of this source tree. */ +#import #import -#import "DatabaseDriver.h" @interface MockDatabaseDriver : NSObject