| // Copyright 2018 The Chromium Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #import "GoogleMapsPlugin.h" | |
| #pragma mark - GoogleMaps plugin implementation | |
| @implementation FLTGoogleMapsPlugin { | |
| NSObject<FlutterPluginRegistrar>* _registrar; | |
| FlutterMethodChannel* _channel; | |
| NSMutableDictionary* _mapControllers; | |
| } | |
| + (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar { | |
| FLTGoogleMapFactory* googleMapFactory = [[FLTGoogleMapFactory alloc] initWithRegistrar:registrar]; | |
| [registrar registerViewFactory:googleMapFactory withId:@"plugins.flutter.io/google_maps"]; | |
| } | |
| - (FLTGoogleMapController*)mapFromCall:(FlutterMethodCall*)call error:(FlutterError**)error { | |
| id mapId = call.arguments[@"map"]; | |
| FLTGoogleMapController* controller = _mapControllers[mapId]; | |
| if (!controller && error) { | |
| *error = [FlutterError errorWithCode:@"unknown_map" message:nil details:mapId]; | |
| } | |
| return controller; | |
| } | |
| @end |