diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index c6189d907..28fa877f6 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -241,5 +241,9 @@ This change eventually prevents building the app with Flutter v3.0.2. + + diff --git a/plugins/aves_services_google/lib/aves_services_platform.dart b/plugins/aves_services_google/lib/aves_services_platform.dart index ff24f4e04..8e11799c6 100644 --- a/plugins/aves_services_google/lib/aves_services_platform.dart +++ b/plugins/aves_services_google/lib/aves_services_platform.dart @@ -6,7 +6,8 @@ import 'package:aves_services_platform/src/map.dart'; import 'package:device_info_plus/device_info_plus.dart'; import 'package:flutter/widgets.dart'; import 'package:google_api_availability/google_api_availability.dart'; -import 'package:latlong2/latlong.dart'; +import 'package:google_maps_flutter/google_maps_flutter.dart'; +import 'package:latlong2/latlong.dart' as ll; class PlatformMobileServices extends MobileServices { bool _isAvailable = false; @@ -24,6 +25,17 @@ class PlatformMobileServices extends MobileServices { // as of google_maps_flutter v2.1.5, Flutter v3.0.1 makes the map hide overlay widgets on API <=22 final androidInfo = await DeviceInfoPlugin().androidInfo; _canRenderMaps = (androidInfo.version.sdkInt ?? 0) >= 21; + if (_canRenderMaps) { + // as of google_maps_flutter_android v2.2.0, + // setting `useAndroidViewSurface` to true: + // + issue #241 exists but workaround is efficient + // + pan perf is OK when overlay is disabled + // - pan perf is bad when overlay is enabled + // setting `useAndroidViewSurface` to false: + // - issue #241 exists and workaround is inefficient + // + pan perf is OK when overlay is disabled or enabled + AndroidGoogleMapsFlutter.useAndroidViewSurface = false; + } } @override @@ -52,7 +64,7 @@ class PlatformMobileServices extends MobileServices { required MarkerClusterBuilder markerClusterBuilder, required MarkerWidgetBuilder markerWidgetBuilder, required MarkerImageReadyChecker markerImageReadyChecker, - required ValueNotifier? dotLocationNotifier, + required ValueNotifier? dotLocationNotifier, required ValueNotifier? overlayOpacityNotifier, required MapOverlay? overlayEntry, required UserZoomChangeCallback? onUserZoomChange,