[google_maps_flutter] Fixes toggling traffic layer not working on Android (#2497)

diff --git a/packages/google_maps_flutter/CHANGELOG.md b/packages/google_maps_flutter/CHANGELOG.md
index 75a5832..be723ec 100644
--- a/packages/google_maps_flutter/CHANGELOG.md
+++ b/packages/google_maps_flutter/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.5.22+1
+
+* Fix for toggling traffic layer on Android not working
+
 ## 0.5.22
 
 * Support Android v2 embedding.
diff --git a/packages/google_maps_flutter/android/src/main/java/io/flutter/plugins/googlemaps/GoogleMapController.java b/packages/google_maps_flutter/android/src/main/java/io/flutter/plugins/googlemaps/GoogleMapController.java
index c7c02bd..154515f 100644
--- a/packages/google_maps_flutter/android/src/main/java/io/flutter/plugins/googlemaps/GoogleMapController.java
+++ b/packages/google_maps_flutter/android/src/main/java/io/flutter/plugins/googlemaps/GoogleMapController.java
@@ -830,6 +830,10 @@
 
   public void setTrafficEnabled(boolean trafficEnabled) {
     this.trafficEnabled = trafficEnabled;
+    if (googleMap == null) {
+      return;
+    }
+    googleMap.setTrafficEnabled(trafficEnabled);
   }
 
   public void setBuildingsEnabled(boolean buildingsEnabled) {
diff --git a/packages/google_maps_flutter/example/lib/map_ui.dart b/packages/google_maps_flutter/example/lib/map_ui.dart
index 2a84e71..788af8b 100644
--- a/packages/google_maps_flutter/example/lib/map_ui.dart
+++ b/packages/google_maps_flutter/example/lib/map_ui.dart
@@ -53,6 +53,7 @@
   bool _zoomGesturesEnabled = true;
   bool _indoorViewEnabled = true;
   bool _myLocationEnabled = true;
+  bool _myTrafficEnabled = false;
   bool _myLocationButtonEnabled = true;
   GoogleMapController _controller;
   bool _nightMode = false;
@@ -213,6 +214,17 @@
     );
   }
 
+  Widget _myTrafficToggler() {
+    return FlatButton(
+      child: Text('${_myTrafficEnabled ? 'disable' : 'enable'} my traffic'),
+      onPressed: () {
+        setState(() {
+          _myTrafficEnabled = !_myTrafficEnabled;
+        });
+      },
+    );
+  }
+
   Future<String> _getFileData(String path) async {
     return await rootBundle.loadString(path);
   }
@@ -260,6 +272,7 @@
       indoorViewEnabled: _indoorViewEnabled,
       myLocationEnabled: _myLocationEnabled,
       myLocationButtonEnabled: _myLocationButtonEnabled,
+      trafficEnabled: _myTrafficEnabled,
       onCameraMove: _updateCameraPosition,
     );
 
@@ -300,6 +313,7 @@
               _indoorViewToggler(),
               _myLocationToggler(),
               _myLocationButtonToggler(),
+              _myTrafficToggler(),
               _nightModeToggler(),
             ],
           ),
diff --git a/packages/google_maps_flutter/example/test_driver/google_maps_e2e.dart b/packages/google_maps_flutter/example/test_driver/google_maps_e2e.dart
index 1b1c086..474f605 100644
--- a/packages/google_maps_flutter/example/test_driver/google_maps_e2e.dart
+++ b/packages/google_maps_flutter/example/test_driver/google_maps_e2e.dart
@@ -434,8 +434,23 @@
     ));
 
     final GoogleMapInspector inspector = await inspectorCompleter.future;
-    final bool isTrafficEnabled = await inspector.isTrafficEnabled();
+    bool isTrafficEnabled = await inspector.isTrafficEnabled();
     expect(isTrafficEnabled, true);
+
+    await tester.pumpWidget(Directionality(
+      textDirection: TextDirection.ltr,
+      child: GoogleMap(
+        key: key,
+        initialCameraPosition: _kInitialCameraPosition,
+        trafficEnabled: false,
+        onMapCreated: (GoogleMapController controller) {
+          fail("OnMapCreated should get called only once.");
+        },
+      ),
+    ));
+
+    isTrafficEnabled = await inspector.isTrafficEnabled();
+    expect(isTrafficEnabled, false);
   });
 
   testWidgets('testBuildings', (WidgetTester tester) async {
diff --git a/packages/google_maps_flutter/pubspec.yaml b/packages/google_maps_flutter/pubspec.yaml
index b2ea9a1..61e27c9 100644
--- a/packages/google_maps_flutter/pubspec.yaml
+++ b/packages/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
-version: 0.5.22
+version: 0.5.22+1
 
 dependencies:
   flutter: