diff --git a/AUTHORS b/AUTHORS index 51345c9a3481..76dc765dbaf3 100644 --- a/AUTHORS +++ b/AUTHORS @@ -42,6 +42,7 @@ Debkanchan Samadder Audrius Karosevicius Lukasz Piliszczuk SoundReply Solutions GmbH +Iurii Dorofeev Rafal Wachol Pau Picas Christian Weder diff --git a/packages/google_maps_flutter/google_maps_flutter/CHANGELOG.md b/packages/google_maps_flutter/google_maps_flutter/CHANGELOG.md index a2e0c1bc3df6..1f21236d7aaa 100644 --- a/packages/google_maps_flutter/google_maps_flutter/CHANGELOG.md +++ b/packages/google_maps_flutter/google_maps_flutter/CHANGELOG.md @@ -1,3 +1,8 @@ +## 1.0.6 + +* Fix references to `myLocationButtonEnabled` in test and example app. +* Added `isMyLocationEnabled` to `GoogleMapsInspector`. + ## 1.0.5 Overhaul lifecycle management in GoogleMapsPlugin. diff --git a/packages/google_maps_flutter/google_maps_flutter/android/src/main/java/io/flutter/plugins/googlemaps/GoogleMapController.java b/packages/google_maps_flutter/google_maps_flutter/android/src/main/java/io/flutter/plugins/googlemaps/GoogleMapController.java index 33cacffc88d4..89f39e99933a 100644 --- a/packages/google_maps_flutter/google_maps_flutter/android/src/main/java/io/flutter/plugins/googlemaps/GoogleMapController.java +++ b/packages/google_maps_flutter/google_maps_flutter/android/src/main/java/io/flutter/plugins/googlemaps/GoogleMapController.java @@ -347,6 +347,11 @@ public void onSnapshotReady(Bitmap bitmap) { result.success(googleMap.getUiSettings().isRotateGesturesEnabled()); break; } + case "map#isMyLocationEnabled": + { + result.success(googleMap.isMyLocationEnabled()); + break; + } case "map#isMyLocationButtonEnabled": { result.success(googleMap.getUiSettings().isMyLocationButtonEnabled()); diff --git a/packages/google_maps_flutter/google_maps_flutter/example/integration_test/google_map_inspector.dart b/packages/google_maps_flutter/google_maps_flutter/example/integration_test/google_map_inspector.dart index 2fcfec15713a..2f596c1ed189 100644 --- a/packages/google_maps_flutter/google_maps_flutter/example/integration_test/google_map_inspector.dart +++ b/packages/google_maps_flutter/google_maps_flutter/example/integration_test/google_map_inspector.dart @@ -61,6 +61,10 @@ class GoogleMapInspector { return await _channel.invokeMethod('map#isScrollGesturesEnabled'); } + Future isMyLocationEnabled() async { + return await _channel.invokeMethod('map#isMyLocationEnabled'); + } + Future isMyLocationButtonEnabled() async { return await _channel.invokeMethod('map#isMyLocationButtonEnabled'); } diff --git a/packages/google_maps_flutter/google_maps_flutter/example/integration_test/google_maps_test.dart b/packages/google_maps_flutter/google_maps_flutter/example/integration_test/google_maps_test.dart index 2a5bf80a4578..a689c65314fe 100644 --- a/packages/google_maps_flutter/google_maps_flutter/example/integration_test/google_maps_test.dart +++ b/packages/google_maps_flutter/google_maps_flutter/example/integration_test/google_maps_test.dart @@ -541,6 +541,57 @@ void main() { expect(secondVisibleRegion.contains(newCenter), isTrue); }); + testWidgets('testMyLocation', (WidgetTester tester) async { + final Key key = GlobalKey(); + final Completer inspectorCompleter = + Completer(); + + await tester.pumpWidget(Directionality( + textDirection: TextDirection.ltr, + child: GoogleMap( + key: key, + initialCameraPosition: _kInitialCameraPosition, + myLocationEnabled: true, + myLocationButtonEnabled: true, + onMapCreated: (GoogleMapController controller) { + final GoogleMapInspector inspector = + // ignore: invalid_use_of_visible_for_testing_member + GoogleMapInspector(controller.channel); + inspectorCompleter.complete(inspector); + }, + ), + )); + + GoogleMapInspector inspector = await inspectorCompleter.future; + bool myLocationEnabled = await inspector.isMyLocationEnabled(); + expect(myLocationEnabled, true); + bool myLocationButtonEnabled = await inspector.isMyLocationButtonEnabled(); + expect(myLocationButtonEnabled, true); + + await tester.pumpWidget(Directionality( + textDirection: TextDirection.ltr, + child: GoogleMap( + key: key, + initialCameraPosition: _kInitialCameraPosition, + myLocationEnabled: false, + myLocationButtonEnabled: false, + onMapCreated: (GoogleMapController controller) { + final GoogleMapInspector inspector = + // ignore: invalid_use_of_visible_for_testing_member + GoogleMapInspector(controller.channel); + inspectorCompleter.complete(inspector); + }, + ), + )); + + inspector = await inspectorCompleter.future; + myLocationEnabled = await inspector.isMyLocationEnabled(); + expect(myLocationEnabled, false); + myLocationButtonEnabled = await inspector.isMyLocationButtonEnabled(); + expect(myLocationButtonEnabled, false); + }, skip: true); + //TODO: Remove `skip' when https://github.com/flutter/flutter/issues/12561 will be fixed + testWidgets('testTraffic', (WidgetTester tester) async { final Key key = GlobalKey(); final Completer inspectorCompleter = diff --git a/packages/google_maps_flutter/google_maps_flutter/ios/Classes/GoogleMapController.m b/packages/google_maps_flutter/google_maps_flutter/ios/Classes/GoogleMapController.m index 321ddd318536..d5cba4652980 100644 --- a/packages/google_maps_flutter/google_maps_flutter/ios/Classes/GoogleMapController.m +++ b/packages/google_maps_flutter/google_maps_flutter/ios/Classes/GoogleMapController.m @@ -324,6 +324,9 @@ - (void)onMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result { } else if ([call.method isEqualToString:@"map#isScrollGesturesEnabled"]) { NSNumber* isScrollGesturesEnabled = @(_mapView.settings.scrollGestures); result(isScrollGesturesEnabled); + } else if ([call.method isEqualToString:@"map#isMyLocationEnabled"]) { + NSNumber* isMyLocationEnabled = @(_mapView.myLocationEnabled); + result(isMyLocationEnabled); } else if ([call.method isEqualToString:@"map#isMyLocationButtonEnabled"]) { NSNumber* isMyLocationButtonEnabled = @(_mapView.settings.myLocationButton); result(isMyLocationButtonEnabled); diff --git a/packages/google_maps_flutter/google_maps_flutter/pubspec.yaml b/packages/google_maps_flutter/google_maps_flutter/pubspec.yaml index dadedb8cce3b..2e4ae9dca5d1 100644 --- a/packages/google_maps_flutter/google_maps_flutter/pubspec.yaml +++ b/packages/google_maps_flutter/google_maps_flutter/pubspec.yaml @@ -1,7 +1,7 @@ name: google_maps_flutter description: A Flutter plugin for integrating Google Maps in iOS and Android applications. homepage: https://github.com/flutter/plugins/tree/master/packages/google_maps_flutter/google_maps_flutter -version: 1.0.5 +version: 1.0.6 dependencies: flutter: diff --git a/packages/google_maps_flutter/google_maps_flutter/test/google_map_test.dart b/packages/google_maps_flutter/google_maps_flutter/test/google_map_test.dart index 3c1eadb8d2a4..643dcdd9ca0a 100644 --- a/packages/google_maps_flutter/google_maps_flutter/test/google_map_test.dart +++ b/packages/google_maps_flutter/google_maps_flutter/test/google_map_test.dart @@ -451,7 +451,7 @@ void main() { textDirection: TextDirection.ltr, child: GoogleMap( initialCameraPosition: CameraPosition(target: LatLng(10.0, 15.0)), - myLocationEnabled: false, + myLocationButtonEnabled: false, ), ), ); @@ -459,19 +459,19 @@ void main() { final FakePlatformGoogleMap platformGoogleMap = fakePlatformViewsController.lastCreatedView; - expect(platformGoogleMap.myLocationButtonEnabled, true); + expect(platformGoogleMap.myLocationButtonEnabled, false); await tester.pumpWidget( const Directionality( textDirection: TextDirection.ltr, child: GoogleMap( initialCameraPosition: CameraPosition(target: LatLng(10.0, 15.0)), - myLocationButtonEnabled: false, + myLocationButtonEnabled: true, ), ), ); - expect(platformGoogleMap.myLocationButtonEnabled, false); + expect(platformGoogleMap.myLocationButtonEnabled, true); }); testWidgets('Is default padding 0', (WidgetTester tester) async {