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: