Skip to content

Commit 64b5002

Browse files
committed
iOS: Call [CDVViewController registerPlugin:withPluginName:] instead calling private properties
- Since cordova-ios 8 the properties `pluginObjects` and `pluginsMap` in `CDVViewController` are deprecated and should not be used anymore. [CDVViewController registerPlugin:withPluginName:] is used, when `setObject` or `setValue` was called on these deprecated properties before. - Removed deregistering of pseudo map plugins in`pluginUnload` by using private properties `pluginObjects` and `pluginsMap` of `CDVViewController`. There is no equivalent method in `CDVViewController` for deregister a plugin.
1 parent 3b5fd5d commit 64b5002

File tree

8 files changed

+9
-90
lines changed

8 files changed

+9
-90
lines changed

src/ios/GoogleMaps/CordovaGoogleMaps.m

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -155,20 +155,14 @@ -(void)pageDidLoad {
155155
}
156156

157157
- (void)_destroyMap:(NSString *)mapId {
158-
if (![self.viewPlugins objectForKey:mapId]) {
159-
return;
160-
}
161-
CDVViewController *cdvViewController = (CDVViewController*)self.viewController;
158+
if (![self.viewPlugins objectForKey:mapId]) return;
162159

163160
CDVPlugin<IPluginView> *pluginView = [self.viewPlugins objectForKey:mapId];
164161
if ([mapId hasPrefix:@"streetview_"]) {
165162
PluginStreetViewPanorama *pluginSV = (PluginStreetViewPanorama *)pluginView;
166163
pluginSV.isRemoved = YES;
167164
//[pluginSV clear:nil];
168165
[pluginSV pluginUnload];
169-
[cdvViewController.pluginObjects setObject:pluginView forKey:mapId];
170-
[cdvViewController.pluginsMap setValue:mapId forKey:mapId];
171-
172166
[self.pluginLayer removePluginOverlay:pluginSV.panoramaCtrl];
173167
pluginSV.panoramaCtrl.view = nil;
174168
pluginSV = nil;
@@ -177,10 +171,6 @@ - (void)_destroyMap:(NSString *)mapId {
177171
pluginMap.isRemoved = YES;
178172
//[pluginMap clear:nil];
179173
[pluginMap pluginUnload];
180-
181-
[cdvViewController.pluginObjects setObject:pluginView forKey:mapId];
182-
[cdvViewController.pluginsMap setValue:mapId forKey:mapId];
183-
184174
[self.pluginLayer removePluginOverlay:pluginMap.mapCtrl];
185175

186176
pluginMap.mapCtrl.view = nil;
@@ -193,8 +183,6 @@ - (void)_destroyMap:(NSString *)mapId {
193183

194184

195185
[self.viewPlugins removeObjectForKey:mapId];
196-
197-
[cdvViewController.pluginObjects removeObjectForKey:mapId];
198186
}
199187
/**
200188
* Remove the map
@@ -248,8 +236,7 @@ - (void)getMap:(CDVInvokedUrlCommand *)command {
248236
[pluginMap setCommandDelegate:cdvViewController.commandDelegate];
249237
}
250238

251-
[cdvViewController.pluginObjects setObject:pluginMap forKey:mapId];
252-
[cdvViewController.pluginsMap setValue:mapId forKey:mapId];
239+
[cdvViewController registerPlugin:pluginMap withPluginName:mapId];
253240
[pluginMap pluginInitialize];
254241

255242
[self.viewPlugins setObject:pluginMap forKey:mapId];
@@ -433,8 +420,8 @@ - (void)getPanorama:(CDVInvokedUrlCommand *)command {
433420
if ([pluginStreetView respondsToSelector:@selector(setCommandDelegate:)]) {
434421
[pluginStreetView setCommandDelegate:cdvViewController.commandDelegate];
435422
}
436-
[cdvViewController.pluginObjects setObject:pluginStreetView forKey:panoramaId];
437-
[cdvViewController.pluginsMap setValue:panoramaId forKey:panoramaId];
423+
424+
[cdvViewController registerPlugin:pluginStreetView withPluginName:panoramaId];
438425
[pluginStreetView pluginInitialize];
439426

440427
[self.viewPlugins setObject:pluginStreetView forKey:panoramaId];

src/ios/GoogleMaps/PluginCircle.m

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,6 @@ - (void)pluginUnload
3535
}
3636
[self.mapCtrl.objects removeObjectForKey:key];
3737
}
38-
39-
key = nil;
40-
keys = nil;
41-
42-
NSString *pluginId = [NSString stringWithFormat:@"%@-circle", self.mapCtrl.overlayId];
43-
CDVViewController *cdvViewController = (CDVViewController*)self.viewController;
44-
[cdvViewController.pluginObjects removeObjectForKey:pluginId];
45-
[cdvViewController.pluginsMap setValue:nil forKey:pluginId];
46-
pluginId = nil;
4738
}
4839
-(void)setPluginViewController:(PluginViewController *)viewCtrl
4940
{

src/ios/GoogleMaps/PluginGroundOverlay.m

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,6 @@ - (void)pluginUnload
3737
}
3838
[self.mapCtrl.objects removeObjectForKey:key];
3939
}
40-
41-
//[self.imgCache removeAllObjects];
42-
//self.imgCache = nil;
43-
44-
key = nil;
45-
keys = nil;
46-
47-
NSString *pluginId = [NSString stringWithFormat:@"%@-groundoverlay", self.mapCtrl.overlayId];
48-
CDVViewController *cdvViewController = (CDVViewController*)self.viewController;
49-
[cdvViewController.pluginObjects removeObjectForKey:pluginId];
50-
[cdvViewController.pluginsMap setValue:nil forKey:pluginId];
51-
pluginId = nil;
5240
}
5341

5442
-(void)setPluginViewController:(PluginViewController *)viewCtrl

src/ios/GoogleMaps/PluginMap.m

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ - (void)loadPlugin:(CDVInvokedUrlCommand*)command {
9393
if ([plugin respondsToSelector:@selector(setCommandDelegate:)]) {
9494
[plugin setCommandDelegate:cdvViewController.commandDelegate];
9595
}
96-
[cdvViewController.pluginObjects setObject:plugin forKey:pluginId];
97-
[cdvViewController.pluginsMap setValue:pluginId forKey:pluginId];
96+
97+
[cdvViewController registerPlugin:plugin withPluginName:pluginId];
9898
[plugin pluginInitialize];
9999

100100
//NSLog(@"--->loadPlugin : %@ className : %@, plugin : %@", pluginId, className, plugin);
@@ -258,20 +258,9 @@ - (void)clear:(CDVInvokedUrlCommand *)command {
258258
dispatch_async(dispatch_get_main_queue(), ^{
259259
[self.mapCtrl.map clear];
260260
});
261-
262-
263-
CDVViewController *cdvViewController = (CDVViewController*)self.viewController;
264-
CDVPlugin<IPluginProtocol> *plugin;
265-
NSString *pluginName;
266-
NSArray *keys = [self.mapCtrl.plugins allKeys];
267-
for (int j = 0; j < [keys count]; j++) {
268-
pluginName = [keys objectAtIndex:j];
269-
plugin = [self.mapCtrl.plugins objectForKey:pluginName];
270-
[plugin pluginUnload];
271-
272-
[cdvViewController.pluginObjects removeObjectForKey:pluginName];
273-
[cdvViewController.pluginsMap setValue:nil forKey:pluginName];
274-
//plugin = nil;
261+
262+
for (id pluginName in [self.mapCtrl.plugins allKeys]) {
263+
[[self.mapCtrl.plugins objectForKey:pluginName] pluginUnload];
275264
}
276265

277266
[self.mapCtrl.plugins removeAllObjects];

src/ios/GoogleMaps/PluginMarker.m

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,6 @@ - (void)pluginUnload
4646
}
4747

4848
[[UIImageCache sharedInstance] removeAllCachedImages];
49-
key = nil;
50-
keys = nil;
51-
52-
53-
NSString *pluginId = [NSString stringWithFormat:@"%@-marker", self.mapCtrl.overlayId];
54-
CDVViewController *cdvViewController = (CDVViewController*)self.viewController;
55-
[cdvViewController.pluginObjects removeObjectForKey:pluginId];
56-
//[cdvViewController.pluginsMap setValue:nil forKey:pluginId];
57-
pluginId = nil;
5849
}
5950

6051
/**

src/ios/GoogleMaps/PluginPolygon.m

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,6 @@ - (void)pluginUnload
3030
}
3131
[self.mapCtrl.objects removeObjectForKey:key];
3232
}
33-
34-
key = nil;
35-
keys = nil;
36-
37-
NSString *pluginId = [NSString stringWithFormat:@"%@-polygon", self.mapCtrl.overlayId];
38-
CDVViewController *cdvViewController = (CDVViewController*)self.viewController;
39-
[cdvViewController.pluginObjects removeObjectForKey:pluginId];
40-
[cdvViewController.pluginsMap setValue:nil forKey:pluginId];
41-
pluginId = nil;
4233
}
4334

4435

src/ios/GoogleMaps/PluginPolyline.m

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,6 @@ - (void)pluginUnload
4141
}
4242
[self.mapCtrl.objects removeObjectForKey:key];
4343
}
44-
45-
key = nil;
46-
keys = nil;
47-
48-
NSString *pluginId = [NSString stringWithFormat:@"%@-polyline", self.mapCtrl.overlayId];
49-
CDVViewController *cdvViewController = (CDVViewController*)self.viewController;
50-
[cdvViewController.pluginObjects removeObjectForKey:pluginId];
51-
[cdvViewController.pluginsMap setValue:nil forKey:pluginId];
52-
pluginId = nil;
5344
}
5445

5546
-(void)create:(CDVInvokedUrlCommand *)command

src/ios/GoogleMaps/PluginTileOverlay.m

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,6 @@ - (void)pluginUnload
5454

5555
[self.imgCache removeAllObjects];
5656
self.imgCache = nil;
57-
58-
key = nil;
59-
keys = nil;
60-
61-
NSString *pluginId = [NSString stringWithFormat:@"%@-tileoverlay", self.mapCtrl.overlayId];
62-
CDVViewController *cdvViewController = (CDVViewController*)self.viewController;
63-
[cdvViewController.pluginObjects removeObjectForKey:pluginId];
64-
[cdvViewController.pluginsMap setValue:nil forKey:pluginId];
65-
pluginId = nil;
6657
}
6758

6859
-(void)create:(CDVInvokedUrlCommand *)command

0 commit comments

Comments
 (0)