From 402992e89bd168ee377f96e6209cb550ba6e3cf0 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Fri, 20 Jun 2025 11:06:34 -0400 Subject: [PATCH] [google_maps_flutter] Annotate `zIndex` usage Marks intentional usage of the deprecated `zIndex`, per https://github.com/flutter/flutter/blob/main/docs/infra/Packages-Gardener-Rotation.md#deprecations On iOS, switches from `zIndex` to `zIndexInt` since it's converted to an int later anyway. Also switches the Android example app, since clients should be using the int version (and the example only uses integer values anyway). --- .../example/integration_test/google_maps_tests.dart | 1 + .../google_maps_flutter_android/example/lib/place_marker.dart | 4 ++-- .../lib/src/google_maps_flutter_android.dart | 3 +++ .../test/google_maps_flutter_android_test.dart | 2 ++ .../example/ios14/integration_test/google_maps_test.dart | 2 +- .../test/google_maps_flutter_ios_test.dart | 4 ++-- .../example/integration_test/marker_clustering_test.dart | 1 + .../google_maps_flutter_web/lib/src/convert.dart | 2 ++ 8 files changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/google_maps_flutter/google_maps_flutter_android/example/integration_test/google_maps_tests.dart b/packages/google_maps_flutter/google_maps_flutter_android/example/integration_test/google_maps_tests.dart index 4f54bfa1cc1..0a18e976b9f 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/example/integration_test/google_maps_tests.dart +++ b/packages/google_maps_flutter/google_maps_flutter_android/example/integration_test/google_maps_tests.dart @@ -2010,6 +2010,7 @@ Marker _copyMarkerWithClusterManagerId( rotation: marker.rotation, visible: marker.visible, // The deprecated parameter is used here to avoid losing precision. + // ignore: deprecated_member_use zIndex: marker.zIndex, onTap: marker.onTap, onDragStart: marker.onDragStart, diff --git a/packages/google_maps_flutter/google_maps_flutter_android/example/lib/place_marker.dart b/packages/google_maps_flutter/google_maps_flutter_android/example/lib/place_marker.dart index d475787c92f..946b3df33cb 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/example/lib/place_marker.dart +++ b/packages/google_maps_flutter/google_maps_flutter_android/example/lib/place_marker.dart @@ -250,10 +250,10 @@ class PlaceMarkerBodyState extends State { Future _changeZIndex(MarkerId markerId) async { final Marker marker = markers[markerId]!; - final double current = marker.zIndex; + final int current = marker.zIndexInt; setState(() { markers[markerId] = marker.copyWith( - zIndexParam: current == 12.0 ? 0.0 : current + 1.0, + zIndexIntParam: current == 12 ? 0 : current + 1, ); }); } diff --git a/packages/google_maps_flutter/google_maps_flutter_android/lib/src/google_maps_flutter_android.dart b/packages/google_maps_flutter/google_maps_flutter_android/lib/src/google_maps_flutter_android.dart index ef713e6fd0a..54718e7b7f5 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/lib/src/google_maps_flutter_android.dart +++ b/packages/google_maps_flutter/google_maps_flutter_android/lib/src/google_maps_flutter_android.dart @@ -792,6 +792,9 @@ class GoogleMapsFlutterAndroid extends GoogleMapsFlutterPlatform { position: _platformLatLngFromLatLng(marker.position), rotation: marker.rotation, visible: marker.visible, + // The deprecated paramater is used to avoid losing precision, since the + // Android SDK uses doubles. + // ignore: deprecated_member_use zIndex: marker.zIndex, markerId: marker.markerId.value, clusterManagerId: marker.clusterManagerId?.value, diff --git a/packages/google_maps_flutter/google_maps_flutter_android/test/google_maps_flutter_android_test.dart b/packages/google_maps_flutter/google_maps_flutter_android/test/google_maps_flutter_android_test.dart index 210be3c3e01..e5e8047f89c 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/test/google_maps_flutter_android_test.dart +++ b/packages/google_maps_flutter/google_maps_flutter_android/test/google_maps_flutter_android_test.dart @@ -444,6 +444,7 @@ void main() { expect(firstChanged.position.longitude, object2new.position.longitude); expect(firstChanged.rotation, object2new.rotation); expect(firstChanged.visible, object2new.visible); + // ignore: deprecated_member_use expect(firstChanged.zIndex, object2new.zIndex); expect(firstChanged.markerId, object2new.markerId.value); expect(firstChanged.clusterManagerId, object2new.clusterManagerId?.value); @@ -472,6 +473,7 @@ void main() { expect(firstAdded.position.longitude, object3.position.longitude); expect(firstAdded.rotation, object3.rotation); expect(firstAdded.visible, object3.visible); + // ignore: deprecated_member_use expect(firstAdded.zIndex, object3.zIndex); expect(firstAdded.markerId, object3.markerId.value); expect(firstAdded.clusterManagerId, object3.clusterManagerId?.value); diff --git a/packages/google_maps_flutter/google_maps_flutter_ios/example/ios14/integration_test/google_maps_test.dart b/packages/google_maps_flutter/google_maps_flutter_ios/example/ios14/integration_test/google_maps_test.dart index e106dbb2be8..21347358665 100644 --- a/packages/google_maps_flutter/google_maps_flutter_ios/example/ios14/integration_test/google_maps_test.dart +++ b/packages/google_maps_flutter/google_maps_flutter_ios/example/ios14/integration_test/google_maps_test.dart @@ -1950,7 +1950,7 @@ Marker _copyMarkerWithClusterManagerId( position: marker.position, rotation: marker.rotation, visible: marker.visible, - zIndex: marker.zIndex, + zIndexInt: marker.zIndexInt, onTap: marker.onTap, onDragStart: marker.onDragStart, onDrag: marker.onDrag, diff --git a/packages/google_maps_flutter/google_maps_flutter_ios/test/google_maps_flutter_ios_test.dart b/packages/google_maps_flutter/google_maps_flutter_ios/test/google_maps_flutter_ios_test.dart index ba920814a7e..47bafa0ac0d 100644 --- a/packages/google_maps_flutter/google_maps_flutter_ios/test/google_maps_flutter_ios_test.dart +++ b/packages/google_maps_flutter/google_maps_flutter_ios/test/google_maps_flutter_ios_test.dart @@ -446,7 +446,7 @@ void main() { expect(firstChanged.position.longitude, object2new.position.longitude); expect(firstChanged.rotation, object2new.rotation); expect(firstChanged.visible, object2new.visible); - expect(firstChanged.zIndex, object2new.zIndex); + expect(firstChanged.zIndex, object2new.zIndexInt); expect(firstChanged.markerId, object2new.markerId.value); expect(firstChanged.clusterManagerId, object2new.clusterManagerId?.value); } @@ -473,7 +473,7 @@ void main() { expect(firstAdded.position.longitude, object3.position.longitude); expect(firstAdded.rotation, object3.rotation); expect(firstAdded.visible, object3.visible); - expect(firstAdded.zIndex, object3.zIndex); + expect(firstAdded.zIndex, object3.zIndexInt); expect(firstAdded.markerId, object3.markerId.value); expect(firstAdded.clusterManagerId, object3.clusterManagerId?.value); } diff --git a/packages/google_maps_flutter/google_maps_flutter_web/example/integration_test/marker_clustering_test.dart b/packages/google_maps_flutter/google_maps_flutter_web/example/integration_test/marker_clustering_test.dart index ce39bea20b7..fbdcbf94946 100644 --- a/packages/google_maps_flutter/google_maps_flutter_web/example/integration_test/marker_clustering_test.dart +++ b/packages/google_maps_flutter/google_maps_flutter_web/example/integration_test/marker_clustering_test.dart @@ -133,6 +133,7 @@ Marker _copyMarkerWithClusterManagerId( position: marker.position, rotation: marker.rotation, visible: marker.visible, + // ignore: deprecated_member_use zIndex: marker.zIndex, onTap: marker.onTap, onDragStart: marker.onDragStart, diff --git a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/convert.dart b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/convert.dart index 956ca751e93..9f175c04b4a 100644 --- a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/convert.dart +++ b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/convert.dart @@ -273,6 +273,7 @@ gmaps.InfoWindowOptions? _infoWindowOptionsFromMarker(Marker marker) { return gmaps.InfoWindowOptions() ..content = container // The deprecated parameter is used here to avoid losing precision. + // ignore: deprecated_member_use ..zIndex = marker.zIndex; // TODO(ditman): Compute the pixelOffset of the infoWindow, from the size of the Marker, // and the marker.infoWindow.anchor property. @@ -467,6 +468,7 @@ Future _markerOptionsFromMarker( ) ..title = sanitizeHtml(marker.infoWindow.title ?? '') // The deprecated parameter is used here to avoid losing precision. + // ignore: deprecated_member_use ..zIndex = marker.zIndex ..visible = marker.visible ..opacity = marker.alpha