Android Code Inspection and Clean up (#3117)
diff --git a/packages/webview_flutter/CHANGELOG.md b/packages/webview_flutter/CHANGELOG.md
index 56c4dd9..4270e11 100644
--- a/packages/webview_flutter/CHANGELOG.md
+++ b/packages/webview_flutter/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.0.2
+
+* Android Code Inspection and Clean up.
+
## 1.0.1
* Add documentation for `WebViewPlatformCreatedCallback`.
diff --git a/packages/webview_flutter/android/src/main/java/io/flutter/plugins/webviewflutter/FlutterWebView.java b/packages/webview_flutter/android/src/main/java/io/flutter/plugins/webviewflutter/FlutterWebView.java
index 9bec8fa..bfb79a3 100644
--- a/packages/webview_flutter/android/src/main/java/io/flutter/plugins/webviewflutter/FlutterWebView.java
+++ b/packages/webview_flutter/android/src/main/java/io/flutter/plugins/webviewflutter/FlutterWebView.java
@@ -103,13 +103,16 @@
methodChannel.setMethodCallHandler(this);
flutterWebViewClient = new FlutterWebViewClient(methodChannel);
- applySettings((Map<String, Object>) params.get("settings"));
+ Map<String, Object> settings = (Map<String, Object>) params.get("settings");
+ if (settings != null) applySettings(settings);
if (params.containsKey(JS_CHANNEL_NAMES_FIELD)) {
- registerJavaScriptChannelNames((List<String>) params.get(JS_CHANNEL_NAMES_FIELD));
+ List<String> names = (List<String>) params.get(JS_CHANNEL_NAMES_FIELD);
+ if (names != null) registerJavaScriptChannelNames(names);
}
- updateAutoMediaPlaybackPolicy((Integer) params.get("autoMediaPlaybackPolicy"));
+ Integer autoMediaPlaybackPolicy = (Integer) params.get("autoMediaPlaybackPolicy");
+ if (autoMediaPlaybackPolicy != null) updateAutoMediaPlaybackPolicy(autoMediaPlaybackPolicy);
if (params.containsKey("userAgent")) {
String userAgent = (String) params.get("userAgent");
updateUserAgent(userAgent);
@@ -316,7 +319,7 @@
}
private void scrollTo(MethodCall methodCall, Result result) {
- Map<String, Object> request = (Map<String, Object>) methodCall.arguments;
+ Map<String, Object> request = methodCall.arguments();
int x = (int) request.get("x");
int y = (int) request.get("y");
@@ -326,7 +329,7 @@
}
private void scrollBy(MethodCall methodCall, Result result) {
- Map<String, Object> request = (Map<String, Object>) methodCall.arguments;
+ Map<String, Object> request = methodCall.arguments();
int x = (int) request.get("x");
int y = (int) request.get("y");
@@ -346,7 +349,8 @@
for (String key : settings.keySet()) {
switch (key) {
case "jsMode":
- updateJsMode((Integer) settings.get(key));
+ Integer mode = (Integer) settings.get(key);
+ if (mode != null) updateJsMode(mode);
break;
case "hasNavigationDelegate":
final boolean hasNavigationDelegate = (boolean) settings.get(key);
@@ -359,7 +363,9 @@
case "debuggingEnabled":
final boolean debuggingEnabled = (boolean) settings.get(key);
- webView.setWebContentsDebuggingEnabled(debuggingEnabled);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+ webView.setWebContentsDebuggingEnabled(debuggingEnabled);
+ }
break;
case "gestureNavigationEnabled":
break;
@@ -389,7 +395,9 @@
// This is the index of the AutoMediaPlaybackPolicy enum, index 1 is always_allow, for all
// other values we require a user gesture.
boolean requireUserGesture = mode != 1;
- webView.getSettings().setMediaPlaybackRequiresUserGesture(requireUserGesture);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
+ webView.getSettings().setMediaPlaybackRequiresUserGesture(requireUserGesture);
+ }
}
private void registerJavaScriptChannelNames(List<String> channelNames) {
diff --git a/packages/webview_flutter/android/src/main/java/io/flutter/plugins/webviewflutter/InputAwareWebView.java b/packages/webview_flutter/android/src/main/java/io/flutter/plugins/webviewflutter/InputAwareWebView.java
index 0aa2f58..9b81a5b 100644
--- a/packages/webview_flutter/android/src/main/java/io/flutter/plugins/webviewflutter/InputAwareWebView.java
+++ b/packages/webview_flutter/android/src/main/java/io/flutter/plugins/webviewflutter/InputAwareWebView.java
@@ -222,9 +222,9 @@
private boolean isCalledFromListPopupWindowShow() {
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
- for (int i = 0; i < stackTraceElements.length; i++) {
- if (stackTraceElements[i].getClassName().equals(ListPopupWindow.class.getCanonicalName())
- && stackTraceElements[i].getMethodName().equals("show")) {
+ for (StackTraceElement stackTraceElement : stackTraceElements) {
+ if (stackTraceElement.getClassName().equals(ListPopupWindow.class.getCanonicalName())
+ && stackTraceElement.getMethodName().equals("show")) {
return true;
}
}
diff --git a/packages/webview_flutter/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterPlugin.java b/packages/webview_flutter/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterPlugin.java
index 5ed2da3..2de8fdf 100644
--- a/packages/webview_flutter/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterPlugin.java
+++ b/packages/webview_flutter/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterPlugin.java
@@ -54,9 +54,7 @@
public void onAttachedToEngine(FlutterPluginBinding binding) {
BinaryMessenger messenger = binding.getBinaryMessenger();
binding
- .getFlutterEngine()
- .getPlatformViewsController()
- .getRegistry()
+ .getPlatformViewRegistry()
.registerViewFactory(
"plugins.flutter.io/webview", new WebViewFactory(messenger, /*containerView=*/ null));
flutterCookieManager = new FlutterCookieManager(messenger);
diff --git a/packages/webview_flutter/pubspec.yaml b/packages/webview_flutter/pubspec.yaml
index a38d328..ad1c356 100644
--- a/packages/webview_flutter/pubspec.yaml
+++ b/packages/webview_flutter/pubspec.yaml
@@ -1,6 +1,6 @@
name: webview_flutter
description: A Flutter plugin that provides a WebView widget on Android and iOS.
-version: 1.0.1
+version: 1.0.2
homepage: https://github.com/flutter/plugins/tree/master/packages/webview_flutter
environment: