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 e95ec946388c..6e50480a59f0 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 @@ -491,72 +491,58 @@ void main() { // Object two should be changed. { expect(toChange.length, 1); - final List? encoded = toChange.first?.encode() as List?; - expect(encoded?[0], object2new.alpha); - final PlatformDoublePair? offset = encoded?[1] as PlatformDoublePair?; - expect(offset?.x, object2new.anchor.dx); - expect(offset?.y, object2new.anchor.dy); - expect(encoded?.getRange(2, 5).toList(), [ - object2new.consumeTapEvents, - object2new.draggable, - object2new.flat, - ]); + final PlatformMarker firstChanged = toChange.first; + expect(firstChanged.alpha, object2new.alpha); + expect(firstChanged.anchor.x, object2new.anchor.dx); + expect(firstChanged.anchor.y, object2new.anchor.dy); + expect(firstChanged.consumeTapEvents, object2new.consumeTapEvents); + expect(firstChanged.draggable, object2new.draggable); + expect(firstChanged.flat, object2new.flat); expect( - (encoded?[5] as PlatformBitmap?)?.bitmap.runtimeType, + firstChanged.icon.bitmap.runtimeType, GoogleMapsFlutterAndroid.platformBitmapFromBitmapDescriptor( object2new.icon) .bitmap .runtimeType); - final PlatformInfoWindow? window = encoded?[6] as PlatformInfoWindow?; - expect(window?.title, object2new.infoWindow.title); - expect(window?.snippet, object2new.infoWindow.snippet); - expect(window?.anchor.x, object2new.infoWindow.anchor.dx); - expect(window?.anchor.y, object2new.infoWindow.anchor.dy); - final PlatformLatLng? latLng = encoded?[7] as PlatformLatLng?; - expect(latLng?.latitude, object2new.position.latitude); - expect(latLng?.longitude, object2new.position.longitude); - expect(encoded?.getRange(8, 13), [ - object2new.rotation, - object2new.visible, - object2new.zIndex, - object2new.markerId.value, - object2new.clusterManagerId?.value, - ]); + expect(firstChanged.infoWindow.title, object2new.infoWindow.title); + expect(firstChanged.infoWindow.snippet, object2new.infoWindow.snippet); + expect(firstChanged.infoWindow.anchor.x, object2new.infoWindow.anchor.dx); + expect(firstChanged.infoWindow.anchor.y, object2new.infoWindow.anchor.dy); + expect(firstChanged.position.latitude, object2new.position.latitude); + expect(firstChanged.position.longitude, object2new.position.longitude); + expect(firstChanged.rotation, object2new.rotation); + expect(firstChanged.visible, object2new.visible); + expect(firstChanged.zIndex, object2new.zIndex); + expect(firstChanged.markerId, object2new.markerId.value); + expect(firstChanged.clusterManagerId, object2new.clusterManagerId?.value); } // Object 3 should be added. { expect(toAdd.length, 1); - final List? encoded = toAdd.first?.encode() as List?; - expect(encoded?[0], object3.alpha); - final PlatformDoublePair? offset = encoded?[1] as PlatformDoublePair?; - expect(offset?.x, object3.anchor.dx); - expect(offset?.y, object3.anchor.dy); - expect(encoded?.getRange(2, 5).toList(), [ - object3.consumeTapEvents, - object3.draggable, - object3.flat, - ]); + final PlatformMarker firstAdded = toAdd.first; + expect(firstAdded.alpha, object3.alpha); + expect(firstAdded.anchor.x, object3.anchor.dx); + expect(firstAdded.anchor.y, object3.anchor.dy); + expect(firstAdded.consumeTapEvents, object3.consumeTapEvents); + expect(firstAdded.draggable, object3.draggable); + expect(firstAdded.flat, object3.flat); expect( - (encoded?[5] as PlatformBitmap?)?.bitmap.runtimeType, + firstAdded.icon.bitmap.runtimeType, GoogleMapsFlutterAndroid.platformBitmapFromBitmapDescriptor( object3.icon) .bitmap .runtimeType); - final PlatformInfoWindow? window = encoded?[6] as PlatformInfoWindow?; - expect(window?.title, object3.infoWindow.title); - expect(window?.snippet, object3.infoWindow.snippet); - expect(window?.anchor.x, object3.infoWindow.anchor.dx); - expect(window?.anchor.y, object3.infoWindow.anchor.dy); - final PlatformLatLng? latLng = encoded?[7] as PlatformLatLng?; - expect(latLng?.latitude, object3.position.latitude); - expect(latLng?.longitude, object3.position.longitude); - expect(encoded?.getRange(8, 13), [ - object3.rotation, - object3.visible, - object3.zIndex, - object3.markerId.value, - object3.clusterManagerId?.value, - ]); + expect(firstAdded.infoWindow.title, object3.infoWindow.title); + expect(firstAdded.infoWindow.snippet, object3.infoWindow.snippet); + expect(firstAdded.infoWindow.anchor.x, object3.infoWindow.anchor.dx); + expect(firstAdded.infoWindow.anchor.y, object3.infoWindow.anchor.dy); + expect(firstAdded.position.latitude, object3.position.latitude); + expect(firstAdded.position.longitude, object3.position.longitude); + expect(firstAdded.rotation, object3.rotation); + expect(firstAdded.visible, object3.visible); + 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/ios/Classes/GoogleMapMarkerController.m b/packages/google_maps_flutter/google_maps_flutter_ios/ios/Classes/GoogleMapMarkerController.m index 1a9e388ea26f..cfc10cbb9988 100644 --- a/packages/google_maps_flutter/google_maps_flutter_ios/ios/Classes/GoogleMapMarkerController.m +++ b/packages/google_maps_flutter/google_maps_flutter_ios/ios/Classes/GoogleMapMarkerController.m @@ -229,34 +229,29 @@ - (UIImage *)iconFromBitmap:(FGMPlatformBitmap *)platformBitmap } } } else if ([bitmap isKindOfClass:[FGMPlatformBitmapBytesMap class]]) { - FGMPlatformBitmapBytesMap *bitmapBytesMap = bitmap; - FlutterStandardTypedData *bytes = bitmapBytesMap.byteData; - - @try { - image = [UIImage imageWithData:bytes.data scale:screenScale]; - if (bitmapBytesMap.bitmapScaling == FGMPlatformMapBitmapScalingAuto) { - NSNumber *width = bitmapBytesMap.width; - NSNumber *height = bitmapBytesMap.height; - - if (width || height) { - // Before scaling the image, image must be in screenScale. - image = [FLTGoogleMapMarkerController scaledImage:image withScale:screenScale]; - image = [FLTGoogleMapMarkerController scaledImage:image - withWidth:width - height:height - screenScale:screenScale]; - } else { - image = [FLTGoogleMapMarkerController scaledImage:image - withScale:bitmapBytesMap.imagePixelRatio]; - } - } else { - // No scaling, load image from bytes without scale parameter. - image = [UIImage imageWithData:bytes.data]; - } - } @catch (NSException *exception) { - @throw [NSException exceptionWithName:@"InvalidByteDescriptor" - reason:@"Unable to interpret bytes as a valid image." - userInfo:nil]; + FGMPlatformBitmapBytesMap *bitmapBytesMap = bitmap; + FlutterStandardTypedData *bytes = bitmapBytesMap.byteData; + + @try { + image = [UIImage imageWithData:bytes.data scale:screenScale]; + if (bitmapBytesMap.bitmapScaling == FGMPlatformMapBitmapScalingAuto) { + NSNumber *width = bitmapBytesMap.width; + NSNumber *height = bitmapBytesMap.height; + + if (width || height) { + // Before scaling the image, image must be in screenScale. + image = [FLTGoogleMapMarkerController scaledImage:image withScale:screenScale]; + image = [FLTGoogleMapMarkerController scaledImage:image + withWidth:width + height:height + screenScale:screenScale]; + } else { + image = [FLTGoogleMapMarkerController scaledImage:image + withScale:bitmapBytesMap.imagePixelRatio]; + } + } else { + // No scaling, load image from bytes without scale parameter. + image = [UIImage imageWithData:bytes.data]; } } else if ([bitmap isKindOfClass:[FGMPlatformBitmapPinConfig class]]) { FGMPlatformBitmapPinConfig *pinConfig = bitmap; diff --git a/packages/url_launcher/url_launcher_ios/CHANGELOG.md b/packages/url_launcher/url_launcher_ios/CHANGELOG.md index a7a283075d4c..b519fa42c3ad 100644 --- a/packages/url_launcher/url_launcher_ios/CHANGELOG.md +++ b/packages/url_launcher/url_launcher_ios/CHANGELOG.md @@ -4,6 +4,10 @@ ## 6.3.2 +* Updates minimum supported SDK version to Flutter 3.22/Dart 3.4. + +## 6.3.2 + * Updates to Pigeon v22. * Updates minimum supported SDK version to Flutter 3.19/Dart 3.3.