diff --git a/packages/google_maps_flutter/google_maps_flutter_web/CHANGELOG.md b/packages/google_maps_flutter/google_maps_flutter_web/CHANGELOG.md index 13ea071ea8c4..07df4664dc2a 100644 --- a/packages/google_maps_flutter/google_maps_flutter_web/CHANGELOG.md +++ b/packages/google_maps_flutter/google_maps_flutter_web/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.2 + +* Adds `colorScheme` support for controlling cloud-based map brightness. + ## 0.6.1 * Batches clustered marker add/remove operations to avoid redundant re-rendering. 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 ed963650792a..efbf2398ff49 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 @@ -131,6 +131,13 @@ gmaps.MapOptions _configurationAndStyleToGmapsOptions( options.mapId = configuration.mapId; + final gmaps.ColorScheme? jsColorScheme = _gmapTypeColorSchemeForPluginColor( + configuration.colorScheme, + ); + if (jsColorScheme != null) { + options.colorScheme = jsColorScheme; + } + return options; } @@ -155,6 +162,28 @@ gmaps.MapTypeId _gmapTypeIDForPluginType(MapType type) { return gmaps.MapTypeId.ROADMAP; } +gmaps.ColorScheme? _gmapTypeColorSchemeForPluginColor(MapColorScheme? scheme) { + if (scheme == null) { + return null; + } + + switch (scheme) { + case MapColorScheme.dark: + return gmaps.ColorScheme.DARK; + case MapColorScheme.light: + return gmaps.ColorScheme.LIGHT; + case MapColorScheme.followSystem: + return gmaps.ColorScheme.FOLLOW_SYSTEM; + } + // The enum comes from a different package, which could get a new value at + // any time, so provide a fallback that ensures this won't break when used + // with a version that contains new values. This is deliberately outside + // the switch rather than a `default` so that the linter will flag the + // switch as needing an update. + // ignore: dead_code + return null; +} + gmaps.MapOptions _applyInitialPosition( CameraPosition initialPosition, gmaps.MapOptions options, diff --git a/packages/google_maps_flutter/google_maps_flutter_web/pubspec.yaml b/packages/google_maps_flutter/google_maps_flutter_web/pubspec.yaml index 79c431e2a569..423d547c4abe 100644 --- a/packages/google_maps_flutter/google_maps_flutter_web/pubspec.yaml +++ b/packages/google_maps_flutter/google_maps_flutter_web/pubspec.yaml @@ -2,7 +2,7 @@ name: google_maps_flutter_web description: Web platform implementation of google_maps_flutter repository: https://github.com/flutter/packages/tree/main/packages/google_maps_flutter/google_maps_flutter_web issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+maps%22 -version: 0.6.1 +version: 0.6.2 environment: sdk: ^3.9.0 @@ -23,7 +23,7 @@ dependencies: flutter_web_plugins: sdk: flutter google_maps: ^8.1.0 - google_maps_flutter_platform_interface: ^2.14.0 + google_maps_flutter_platform_interface: ^2.15.0 sanitize_html: ^2.0.0 stream_transform: ^2.0.0 web: ^1.0.0