diff --git a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md index f6d7bb7d613b..dd38bcb3274f 100644 --- a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md @@ -1,5 +1,6 @@ ## 3.3.2 +* Resolves compilations warnings. * Updates compileSdkVersion to 33. * Bumps androidx.webkit:webkit from 1.5.0 to 1.6.0. diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/CookieManagerHostApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/CookieManagerHostApiImpl.java index 3e38ce94b3a5..d9a647d67a31 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/CookieManagerHostApiImpl.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/CookieManagerHostApiImpl.java @@ -14,11 +14,7 @@ public void clearCookies(GeneratedAndroidWebView.Result result) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { cookieManager.removeAllCookies(result::success); } else { - final boolean hasCookies = cookieManager.hasCookies(); - if (hasCookies) { - cookieManager.removeAllCookie(); - } - result.success(hasCookies); + result.success(removeCookiesPreL(cookieManager)); } } @@ -26,4 +22,20 @@ public void clearCookies(GeneratedAndroidWebView.Result result) { public void setCookie(String url, String value) { CookieManager.getInstance().setCookie(url, value); } + + /** + * Removes all cookies from the given cookie manager, using the deprecated (pre-Lollipop) + * implementation. + * + * @param cookieManager The cookie manager to clear all cookies from. + * @return Whether any cookies were removed. + */ + @SuppressWarnings("deprecation") + private boolean removeCookiesPreL(CookieManager cookieManager) { + final boolean hasCookies = cookieManager.hasCookies(); + if (hasCookies) { + cookieManager.removeAllCookie(); + } + return hasCookies; + } } diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/GeneratedAndroidWebView.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/GeneratedAndroidWebView.java index 425f6c1415bd..989747256b01 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/GeneratedAndroidWebView.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/GeneratedAndroidWebView.java @@ -1,7 +1,7 @@ // Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Autogenerated from Pigeon (v4.2.14), do not edit directly. +// Autogenerated from Pigeon (v9.0.4), do not edit directly. // See also: https://pub.dev/packages/pigeon package io.flutter.plugins.webviewflutter; @@ -24,6 +24,15 @@ /** Generated class from Pigeon. */ @SuppressWarnings({"unused", "unchecked", "CodeBlock2Expr", "RedundantSuppression"}) public class GeneratedAndroidWebView { + @NonNull + private static ArrayList wrapError(@NonNull Throwable exception) { + ArrayList errorList = new ArrayList(3); + errorList.add(exception.toString()); + errorList.add(exception.getClass().getSimpleName()); + errorList.add( + "Cause: " + exception.getCause() + ", Stacktrace: " + Log.getStackTraceString(exception)); + return errorList; + } /** * Mode of how to select files for a file chooser. @@ -62,7 +71,7 @@ private FileChooserMode(final int index) { } /** Generated class from Pigeon that represents data sent in messages. */ - public static class FileChooserModeEnumData { + public static final class FileChooserModeEnumData { private @NonNull FileChooserMode value; public @NonNull FileChooserMode getValue() { @@ -80,6 +89,7 @@ public void setValue(@NonNull FileChooserMode setterArg) { private FileChooserModeEnumData() {} public static final class Builder { + private @Nullable FileChooserMode value; public @NonNull Builder setValue(@NonNull FileChooserMode setterArg) { @@ -110,7 +120,7 @@ ArrayList toList() { } /** Generated class from Pigeon that represents data sent in messages. */ - public static class WebResourceRequestData { + public static final class WebResourceRequestData { private @NonNull String url; public @NonNull String getUrl() { @@ -190,6 +200,7 @@ public void setRequestHeaders(@NonNull Map setterArg) { private WebResourceRequestData() {} public static final class Builder { + private @Nullable String url; public @NonNull Builder setUrl(@NonNull String setterArg) { @@ -275,7 +286,7 @@ ArrayList toList() { } /** Generated class from Pigeon that represents data sent in messages. */ - public static class WebResourceErrorData { + public static final class WebResourceErrorData { private @NonNull Long errorCode; public @NonNull Long getErrorCode() { @@ -306,6 +317,7 @@ public void setDescription(@NonNull String setterArg) { private WebResourceErrorData() {} public static final class Builder { + private @Nullable Long errorCode; public @NonNull Builder setErrorCode(@NonNull Long setterArg) { @@ -350,7 +362,7 @@ ArrayList toList() { } /** Generated class from Pigeon that represents data sent in messages. */ - public static class WebViewPoint { + public static final class WebViewPoint { private @NonNull Long x; public @NonNull Long getX() { @@ -381,6 +393,7 @@ public void setY(@NonNull Long setterArg) { private WebViewPoint() {} public static final class Builder { + private @Nullable Long x; public @NonNull Builder setX(@NonNull Long setterArg) { @@ -436,6 +449,7 @@ public interface Result { *

Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface JavaObjectHostApi { + void dispose(@NonNull Long identifier); /** The codec used by JavaObjectHostApi. */ @@ -453,7 +467,7 @@ static void setup(BinaryMessenger binaryMessenger, JavaObjectHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -489,6 +503,7 @@ public JavaObjectFlutterApi(BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } + /** Public interface for sending reply. */ public interface Reply { void reply(T reply); } @@ -503,13 +518,12 @@ public void dispose(@NonNull Long identifierArg, Reply callback) { binaryMessenger, "dev.flutter.pigeon.JavaObjectFlutterApi.dispose", getCodec()); channel.send( new ArrayList(Collections.singletonList(identifierArg)), - channelReply -> { - callback.reply(null); - }); + channelReply -> callback.reply(null)); } } /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface CookieManagerHostApi { + void clearCookies(Result result); void setCookie(@NonNull String url, @NonNull String value); @@ -532,7 +546,7 @@ static void setup(BinaryMessenger binaryMessenger, CookieManagerHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { Result resultCallback = new Result() { @@ -564,7 +578,7 @@ public void error(Throwable error) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -601,7 +615,6 @@ protected Object readValueOfType(byte type, @NonNull ByteBuffer buffer) { switch (type) { case (byte) 128: return WebViewPoint.fromList((ArrayList) readValue(buffer)); - default: return super.readValueOfType(type, buffer); } @@ -620,6 +633,7 @@ protected void writeValue(@NonNull ByteArrayOutputStream stream, Object value) { /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface WebViewHostApi { + void create(@NonNull Long instanceId, @NonNull Boolean useHybridComposition); void loadData( @@ -705,7 +719,7 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -738,7 +752,7 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -777,7 +791,7 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -818,7 +832,7 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -856,7 +870,7 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -892,7 +906,7 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -920,7 +934,7 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -948,7 +962,7 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -976,7 +990,7 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1003,7 +1017,7 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1030,7 +1044,7 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1057,7 +1071,7 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1092,7 +1106,7 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1137,7 +1151,7 @@ public void error(Throwable error) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1165,7 +1179,7 @@ public void error(Throwable error) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1203,7 +1217,7 @@ public void error(Throwable error) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1241,7 +1255,7 @@ public void error(Throwable error) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1269,7 +1283,7 @@ public void error(Throwable error) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1297,7 +1311,7 @@ public void error(Throwable error) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1328,7 +1342,7 @@ public void error(Throwable error) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1355,7 +1369,7 @@ public void error(Throwable error) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1392,7 +1406,7 @@ public void error(Throwable error) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1430,7 +1444,7 @@ public void error(Throwable error) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1468,7 +1482,7 @@ public void error(Throwable error) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1500,7 +1514,7 @@ public void error(Throwable error) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1532,7 +1546,7 @@ public void error(Throwable error) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1562,6 +1576,7 @@ public void error(Throwable error) { } /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface WebSettingsHostApi { + void create(@NonNull Long instanceId, @NonNull Long webViewInstanceId); void setDomStorageEnabled(@NonNull Long instanceId, @NonNull Boolean flag); @@ -1603,7 +1618,7 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1638,7 +1653,7 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1672,7 +1687,7 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1706,7 +1721,7 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1740,7 +1755,7 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1774,7 +1789,7 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1806,7 +1821,7 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1840,7 +1855,7 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1874,7 +1889,7 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1908,7 +1923,7 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1942,7 +1957,7 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -1976,7 +1991,7 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -2010,7 +2025,7 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -2039,6 +2054,7 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { } /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface JavaScriptChannelHostApi { + void create(@NonNull Long instanceId, @NonNull String channelName); /** The codec used by JavaScriptChannelHostApi. */ @@ -2057,7 +2073,7 @@ static void setup(BinaryMessenger binaryMessenger, JavaScriptChannelHostApi api) if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -2092,6 +2108,7 @@ public JavaScriptChannelFlutterApi(BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } + /** Public interface for sending reply. */ public interface Reply { void reply(T reply); } @@ -2109,13 +2126,12 @@ public void postMessage( getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, messageArg)), - channelReply -> { - callback.reply(null); - }); + channelReply -> callback.reply(null)); } } /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface WebViewClientHostApi { + void create(@NonNull Long instanceId); void setSynchronousReturnValueForShouldOverrideUrlLoading( @@ -2137,7 +2153,7 @@ static void setup(BinaryMessenger binaryMessenger, WebViewClientHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -2166,7 +2182,7 @@ static void setup(BinaryMessenger binaryMessenger, WebViewClientHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -2204,10 +2220,8 @@ protected Object readValueOfType(byte type, @NonNull ByteBuffer buffer) { switch (type) { case (byte) 128: return WebResourceErrorData.fromList((ArrayList) readValue(buffer)); - case (byte) 129: return WebResourceRequestData.fromList((ArrayList) readValue(buffer)); - default: return super.readValueOfType(type, buffer); } @@ -2235,6 +2249,7 @@ public WebViewClientFlutterApi(BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } + /** Public interface for sending reply. */ public interface Reply { void reply(T reply); } @@ -2255,9 +2270,7 @@ public void onPageStarted( getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg)), - channelReply -> { - callback.reply(null); - }); + channelReply -> callback.reply(null)); } public void onPageFinished( @@ -2272,9 +2285,7 @@ public void onPageFinished( getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg)), - channelReply -> { - callback.reply(null); - }); + channelReply -> callback.reply(null)); } public void onReceivedRequestError( @@ -2291,9 +2302,7 @@ public void onReceivedRequestError( channel.send( new ArrayList( Arrays.asList(instanceIdArg, webViewInstanceIdArg, requestArg, errorArg)), - channelReply -> { - callback.reply(null); - }); + channelReply -> callback.reply(null)); } public void onReceivedError( @@ -2316,9 +2325,7 @@ public void onReceivedError( errorCodeArg, descriptionArg, failingUrlArg)), - channelReply -> { - callback.reply(null); - }); + channelReply -> callback.reply(null)); } public void requestLoading( @@ -2333,9 +2340,7 @@ public void requestLoading( getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, requestArg)), - channelReply -> { - callback.reply(null); - }); + channelReply -> callback.reply(null)); } public void urlLoading( @@ -2348,13 +2353,12 @@ public void urlLoading( binaryMessenger, "dev.flutter.pigeon.WebViewClientFlutterApi.urlLoading", getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg)), - channelReply -> { - callback.reply(null); - }); + channelReply -> callback.reply(null)); } } /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface DownloadListenerHostApi { + void create(@NonNull Long instanceId); /** The codec used by DownloadListenerHostApi. */ @@ -2373,7 +2377,7 @@ static void setup(BinaryMessenger binaryMessenger, DownloadListenerHostApi api) if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -2403,6 +2407,7 @@ public DownloadListenerFlutterApi(BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } + /** Public interface for sending reply. */ public interface Reply { void reply(T reply); } @@ -2433,13 +2438,12 @@ public void onDownloadStart( contentDispositionArg, mimetypeArg, contentLengthArg)), - channelReply -> { - callback.reply(null); - }); + channelReply -> callback.reply(null)); } } /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface WebChromeClientHostApi { + void create(@NonNull Long instanceId); void setSynchronousReturnValueForOnShowFileChooser( @@ -2461,7 +2465,7 @@ static void setup(BinaryMessenger binaryMessenger, WebChromeClientHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -2490,7 +2494,7 @@ static void setup(BinaryMessenger binaryMessenger, WebChromeClientHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -2519,6 +2523,7 @@ static void setup(BinaryMessenger binaryMessenger, WebChromeClientHostApi api) { } /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface FlutterAssetManagerHostApi { + @NonNull List list(@NonNull String path); @@ -2541,7 +2546,7 @@ static void setup(BinaryMessenger binaryMessenger, FlutterAssetManagerHostApi ap if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -2570,7 +2575,7 @@ static void setup(BinaryMessenger binaryMessenger, FlutterAssetManagerHostApi ap if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -2600,6 +2605,7 @@ public WebChromeClientFlutterApi(BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } + /** Public interface for sending reply. */ public interface Reply { void reply(T reply); } @@ -2620,9 +2626,7 @@ public void onProgressChanged( getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, progressArg)), - channelReply -> { - callback.reply(null); - }); + channelReply -> callback.reply(null)); } public void onShowFileChooser( @@ -2647,6 +2651,7 @@ public void onShowFileChooser( } /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface WebStorageHostApi { + void create(@NonNull Long instanceId); void deleteAllData(@NonNull Long instanceId); @@ -2666,7 +2671,7 @@ static void setup(BinaryMessenger binaryMessenger, WebStorageHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -2693,7 +2698,7 @@ static void setup(BinaryMessenger binaryMessenger, WebStorageHostApi api) { if (api != null) { channel.setMessageHandler( (message, reply) -> { - ArrayList wrapped = new ArrayList<>(); + ArrayList wrapped = new ArrayList(); try { ArrayList args = (ArrayList) message; assert args != null; @@ -2727,7 +2732,6 @@ protected Object readValueOfType(byte type, @NonNull ByteBuffer buffer) { switch (type) { case (byte) 128: return FileChooserModeEnumData.fromList((ArrayList) readValue(buffer)); - default: return super.readValueOfType(type, buffer); } @@ -2759,6 +2763,7 @@ public FileChooserParamsFlutterApi(BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } + /** Public interface for sending reply. */ public interface Reply { void reply(T reply); } @@ -2781,19 +2786,7 @@ public void create( new ArrayList( Arrays.asList( instanceIdArg, isCaptureEnabledArg, acceptTypesArg, modeArg, filenameHintArg)), - channelReply -> { - callback.reply(null); - }); + channelReply -> callback.reply(null)); } } - - @NonNull - private static ArrayList wrapError(@NonNull Throwable exception) { - ArrayList errorList = new ArrayList<>(3); - errorList.add(exception.toString()); - errorList.add(exception.getClass().getSimpleName()); - errorList.add( - "Cause: " + exception.getCause() + ", Stacktrace: " + Log.getStackTraceString(exception)); - return errorList; - } } diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebChromeClientHostApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebChromeClientHostApiImpl.java index a5825c0133ec..5bc40e63729f 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebChromeClientHostApiImpl.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebChromeClientHostApiImpl.java @@ -130,6 +130,8 @@ public boolean shouldOverrideUrlLoading( return true; } + // Legacy codepath for < N. + @SuppressWarnings("deprecation") @Override public boolean shouldOverrideUrlLoading(WebView windowWebView, String url) { if (!webViewClient.shouldOverrideUrlLoading(view, url)) { diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewClientHostApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewClientHostApiImpl.java index 09a34f2d4a85..79c0210ec56e 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewClientHostApiImpl.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewClientHostApiImpl.java @@ -59,6 +59,8 @@ public void onReceivedError(WebView view, WebResourceRequest request, WebResourc flutterApi.onReceivedRequestError(this, view, request, error, reply -> {}); } + // Legacy codepath for < 23; newer versions use the variant above. + @SuppressWarnings("deprecation") @Override public void onReceivedError( WebView view, int errorCode, String description, String failingUrl) { @@ -72,6 +74,8 @@ public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request return returnValueForShouldOverrideUrlLoading; } + // Legacy codepath for < 24; newer versions use the variant above. + @SuppressWarnings("deprecation") @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { flutterApi.urlLoading(this, view, url, reply -> {}); @@ -125,6 +129,8 @@ public void onReceivedError( flutterApi.onReceivedRequestError(this, view, request, error, reply -> {}); } + // Legacy codepath for versions that don't support the variant above. + @SuppressWarnings("deprecation") @Override public void onReceivedError( WebView view, int errorCode, String description, String failingUrl) { @@ -140,6 +146,8 @@ public boolean shouldOverrideUrlLoading( return returnValueForShouldOverrideUrlLoading; } + // Legacy codepath for < Lollipop; newer versions use the variant above. + @SuppressWarnings("deprecation") @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { flutterApi.urlLoading(this, view, url, reply -> {}); diff --git a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/CookieManagerHostApiImplTest.java b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/CookieManagerHostApiImplTest.java index 6daeb1be7f63..79edf9c06f27 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/CookieManagerHostApiImplTest.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/CookieManagerHostApiImplTest.java @@ -33,7 +33,9 @@ public void setup() { when(cookieManager.hasCookies()).thenReturn(true); doAnswer( answer -> { - ((ValueCallback) answer.getArgument(0)).onReceiveValue(true); + @SuppressWarnings("unchecked") + ValueCallback callback = (ValueCallback) answer.getArgument(0); + (callback).onReceiveValue(true); return null; }) .when(cookieManager) @@ -59,6 +61,7 @@ public void setCookieShouldCallSetCookie() { public void clearCookiesShouldCallRemoveAllCookiesOnAndroidLAbove() { // Setup TestUtils.setFinalStatic(Build.VERSION.class, "SDK_INT", Build.VERSION_CODES.LOLLIPOP); + @SuppressWarnings("unchecked") GeneratedAndroidWebView.Result result = mock(GeneratedAndroidWebView.Result.class); CookieManagerHostApiImpl impl = new CookieManagerHostApiImpl(); // Run @@ -69,9 +72,11 @@ public void clearCookiesShouldCallRemoveAllCookiesOnAndroidLAbove() { } @Test + @SuppressWarnings("deprecation") public void clearCookiesShouldCallRemoveAllCookieBelowAndroidL() { // Setup TestUtils.setFinalStatic(Build.VERSION.class, "SDK_INT", Build.VERSION_CODES.KITKAT_WATCH); + @SuppressWarnings("unchecked") GeneratedAndroidWebView.Result result = mock(GeneratedAndroidWebView.Result.class); CookieManagerHostApiImpl impl = new CookieManagerHostApiImpl(); // Run diff --git a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/JavaScriptChannelTest.java b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/JavaScriptChannelTest.java index c9a5e64c0a3a..391c6c833e50 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/JavaScriptChannelTest.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/JavaScriptChannelTest.java @@ -9,6 +9,7 @@ import static org.mockito.Mockito.verify; import android.os.Handler; +import android.os.Looper; import io.flutter.plugins.webviewflutter.JavaScriptChannelHostApiImpl.JavaScriptChannelCreator; import org.junit.After; import org.junit.Before; @@ -47,7 +48,10 @@ public JavaScriptChannel createJavaScriptChannel( hostApiImpl = new JavaScriptChannelHostApiImpl( - instanceManager, javaScriptChannelCreator, mockFlutterApi, new Handler()); + instanceManager, + javaScriptChannelCreator, + mockFlutterApi, + new Handler(Looper.myLooper())); hostApiImpl.create(0L, "aChannelName"); } diff --git a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/RegistrarFlutterAssetManagerTest.java b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/RegistrarFlutterAssetManagerTest.java index 86b0fb5432b9..fa0d27d2f5b2 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/RegistrarFlutterAssetManagerTest.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/RegistrarFlutterAssetManagerTest.java @@ -11,8 +11,6 @@ import static org.mockito.Mockito.when; import android.content.res.AssetManager; -import io.flutter.plugin.common.PluginRegistry.Registrar; -import io.flutter.plugins.webviewflutter.FlutterAssetManager.RegistrarFlutterAssetManager; import java.io.IOException; import org.junit.Before; import org.junit.Test; @@ -21,17 +19,19 @@ @SuppressWarnings("deprecation") public class RegistrarFlutterAssetManagerTest { @Mock AssetManager mockAssetManager; - @Mock Registrar mockRegistrar; + @Mock io.flutter.plugin.common.PluginRegistry.Registrar mockRegistrar; - RegistrarFlutterAssetManager testRegistrarFlutterAssetManager; + io.flutter.plugins.webviewflutter.FlutterAssetManager.RegistrarFlutterAssetManager + testRegistrarFlutterAssetManager; @Before public void setUp() { mockAssetManager = mock(AssetManager.class); - mockRegistrar = mock(Registrar.class); + mockRegistrar = mock(io.flutter.plugin.common.PluginRegistry.Registrar.class); testRegistrarFlutterAssetManager = - new RegistrarFlutterAssetManager(mockAssetManager, mockRegistrar); + new io.flutter.plugins.webviewflutter.FlutterAssetManager.RegistrarFlutterAssetManager( + mockAssetManager, mockRegistrar); } @Test diff --git a/packages/webview_flutter/webview_flutter_android/example/android/build.gradle b/packages/webview_flutter/webview_flutter_android/example/android/build.gradle index 1942e9d40d71..ca118fdb964d 100644 --- a/packages/webview_flutter/webview_flutter_android/example/android/build.gradle +++ b/packages/webview_flutter/webview_flutter_android/example/android/build.gradle @@ -35,9 +35,7 @@ task clean(type: Delete) { gradle.projectsEvaluated { project(":webview_flutter_android") { tasks.withType(JavaCompile) { - // TODO(stuartmorgan): Enable this. See - // https://github.com/flutter/flutter/issues/91868 - //options.compilerArgs << "-Xlint:all" << "-Werror" + options.compilerArgs << "-Xlint:all" << "-Werror" } } } diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.g.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.g.dart index d3c306a10238..5210879262e3 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.g.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.g.dart @@ -1,9 +1,10 @@ // Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Autogenerated from Pigeon (v4.2.14), do not edit directly. +// Autogenerated from Pigeon (v9.0.4), do not edit directly. // See also: https://pub.dev/packages/pigeon // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import + import 'dart:async'; import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; @@ -297,7 +298,6 @@ class _WebViewHostApiCodec extends StandardMessageCodec { switch (type) { case 128: return WebViewPoint.decode(readValue(buffer)!); - default: return super.readValueOfType(type, buffer); } @@ -1394,10 +1394,8 @@ class _WebViewClientFlutterApiCodec extends StandardMessageCodec { switch (type) { case 128: return WebResourceErrorData.decode(readValue(buffer)!); - case 129: return WebResourceRequestData.decode(readValue(buffer)!); - default: return super.readValueOfType(type, buffer); } @@ -1935,7 +1933,6 @@ class _FileChooserParamsFlutterApiCodec extends StandardMessageCodec { switch (type) { case 128: return FileChooserModeEnumData.decode(readValue(buffer)!); - default: return super.readValueOfType(type, buffer); } diff --git a/packages/webview_flutter/webview_flutter_android/pubspec.yaml b/packages/webview_flutter/webview_flutter_android/pubspec.yaml index 6196da94ea09..16d9eda1e862 100644 --- a/packages/webview_flutter/webview_flutter_android/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_android/pubspec.yaml @@ -29,4 +29,4 @@ dev_dependencies: flutter_test: sdk: flutter mockito: ^5.3.2 - pigeon: ^4.2.14 + pigeon: ^9.0.4 diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.mocks.dart index 01885caff54c..4bb2afb614bb 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.mocks.dart @@ -349,6 +349,12 @@ class MockAndroidNavigationDelegate extends _i1.Mock class MockAndroidWebViewController extends _i1.Mock implements _i8.AndroidWebViewController { @override + int get webViewIdentifier => (super.noSuchMethod( + Invocation.getter(#webViewIdentifier), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + @override _i3.PlatformWebViewControllerCreationParams get params => (super.noSuchMethod( Invocation.getter(#params), returnValue: _FakePlatformWebViewControllerCreationParams_4( @@ -650,11 +656,11 @@ class MockAndroidWebViewController extends _i1.Mock @override _i9.Future setOnShowFileSelector( _i9.Future> Function(_i8.FileSelectorParams)? - onShowFileSelectorCallback) => + onShowFileSelector) => (super.noSuchMethod( Invocation.method( #setOnShowFileSelector, - [onShowFileSelectorCallback], + [onShowFileSelector], ), returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), diff --git a/packages/webview_flutter/webview_flutter_android/test/test_android_webview.g.dart b/packages/webview_flutter/webview_flutter_android/test/test_android_webview.g.dart index 56ba79a66622..1b372e62b2cc 100644 --- a/packages/webview_flutter/webview_flutter_android/test/test_android_webview.g.dart +++ b/packages/webview_flutter/webview_flutter_android/test/test_android_webview.g.dart @@ -1,7 +1,7 @@ // Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Autogenerated from Pigeon (v4.2.14), do not edit directly. +// Autogenerated from Pigeon (v9.0.4), do not edit directly. // See also: https://pub.dev/packages/pigeon // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, unnecessary_import // ignore_for_file: avoid_relative_lib_imports @@ -64,7 +64,6 @@ class _TestWebViewHostApiCodec extends StandardMessageCodec { switch (type) { case 128: return WebViewPoint.decode(readValue(buffer)!); - default: return super.readValueOfType(type, buffer); }