From dd1196d7cd03f0e196b6b503817c1bc333c810c9 Mon Sep 17 00:00:00 2001 From: TheVinhLuong Date: Sat, 11 Mar 2023 22:21:34 +0700 Subject: [PATCH 01/20] Recreating PR from flutter/plugins --- .../webview_flutter_android/CHANGELOG.md | 4 ++ .../ContentOffsetChangedListener.java | 9 +++ .../GeneratedAndroidWebView.java | 71 +++++++++++++++++++ .../webviewflutter/WebViewExtendedApi.java | 12 ++++ .../webviewflutter/WebViewFlutterApiImpl.java | 39 ++++++++++ .../webviewflutter/WebViewFlutterPlugin.java | 1 + .../webviewflutter/WebViewHostApiImpl.java | 63 +++++++++++++++- .../plugins/webviewflutter/WebViewTest.java | 28 +++++++- .../example/lib/main.dart | 6 +- .../example/pubspec.yaml | 6 ++ .../lib/src/android_webview.dart | 12 ++++ .../lib/src/android_webview.g.dart | 67 +++++++++++++++++ .../lib/src/android_webview_api_impls.dart | 35 +++++++++ .../lib/src/android_webview_controller.dart | 8 +++ .../src/legacy/webview_android_widget.dart | 25 ++++--- .../pigeons/android_webview.dart | 8 +++ .../webview_flutter_android/pubspec.yaml | 8 ++- .../test/android_webview_controller_test.dart | 12 ++++ ...android_webview_controller_test.mocks.dart | 46 +++++++++++- .../test/android_webview_test.mocks.dart | 34 +++++++++ .../webview_android_widget_test.mocks.dart | 19 +++++ .../test/test_android_webview.g.dart | 25 +++++++ 22 files changed, 518 insertions(+), 20 deletions(-) create mode 100644 packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/ContentOffsetChangedListener.java create mode 100644 packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewExtendedApi.java create mode 100644 packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java diff --git a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md index ed6c546ed14..455f72fe261 100644 --- a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.3.1 + +* Added `setOnContentOffsetChanged` method to the `AndroidWebViewController`. + ## 3.3.0 * Adds support to access native `WebView`. diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/ContentOffsetChangedListener.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/ContentOffsetChangedListener.java new file mode 100644 index 00000000000..5737261f960 --- /dev/null +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/ContentOffsetChangedListener.java @@ -0,0 +1,9 @@ +// 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. + +package io.flutter.plugins.webviewflutter; + +public interface ContentOffsetChangedListener { + void onContentOffsetChange(int left, int top, int oldLeft, int oldTop); +} 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 425f6c1415b..0066a936d21 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 @@ -692,6 +692,8 @@ void removeJavaScriptChannel( void setBackgroundColor(@NonNull Long instanceId, @NonNull Long color); + void enableContentOffsetChangedListener(@NonNull Long instanceId, @NonNull Boolean enabled); + /** The codec used by WebViewHostApi. */ static MessageCodec getCodec() { return WebViewHostApiCodec.INSTANCE; @@ -1558,6 +1560,40 @@ public void error(Throwable error) { channel.setMessageHandler(null); } } + { + BasicMessageChannel channel = + new BasicMessageChannel<>( + binaryMessenger, + "dev.flutter.pigeon.WebViewHostApi.enableContentOffsetChangedListener", + getCodec()); + if (api != null) { + channel.setMessageHandler( + (message, reply) -> { + ArrayList wrapped = new ArrayList<>(); + try { + ArrayList args = (ArrayList) message; + assert args != null; + Number instanceIdArg = (Number) args.get(0); + if (instanceIdArg == null) { + throw new NullPointerException("instanceIdArg unexpectedly null."); + } + Boolean enabledArg = (Boolean) args.get(1); + if (enabledArg == null) { + throw new NullPointerException("enabledArg unexpectedly null."); + } + api.enableContentOffsetChangedListener( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); + wrapped.add(0, null); + } catch (Error | RuntimeException exception) { + ArrayList wrappedError = wrapError(exception); + wrapped = wrappedError; + } + reply.reply(wrapped); + }); + } else { + channel.setMessageHandler(null); + } + } } } /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ @@ -2438,6 +2474,41 @@ public void onDownloadStart( }); } } + /** Generated class from Pigeon that represents Flutter messages that can be called from Java. */ + public static class WebViewFlutterApi { + private final BinaryMessenger binaryMessenger; + + public WebViewFlutterApi(BinaryMessenger argBinaryMessenger) { + this.binaryMessenger = argBinaryMessenger; + } + + public interface Reply { + void reply(T reply); + } + /** The codec used by WebViewFlutterApi. */ + static MessageCodec getCodec() { + return new StandardMessageCodec(); + } + + public void onScrollPosChange( + @NonNull Long webViewInstanceIdArg, + @NonNull Long xArg, + @NonNull Long yArg, + @NonNull Long oldXArg, + @NonNull Long oldYArg, + Reply callback) { + BasicMessageChannel channel = + new BasicMessageChannel<>( + binaryMessenger, + "dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange", + getCodec()); + channel.send( + new ArrayList(Arrays.asList(webViewInstanceIdArg, xArg, yArg, oldXArg, oldYArg)), + channelReply -> { + callback.reply(null); + }); + } + } /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface WebChromeClientHostApi { void create(@NonNull Long instanceId); diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewExtendedApi.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewExtendedApi.java new file mode 100644 index 00000000000..7adad9219c1 --- /dev/null +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewExtendedApi.java @@ -0,0 +1,12 @@ +// 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. + +package io.flutter.plugins.webviewflutter; + +import androidx.annotation.Nullable; +/** Define extending APIs for {@link android.webkit.WebView} */ +public interface WebViewExtendedApi { + void setContentOffsetChangedListener( + @Nullable ContentOffsetChangedListener contentOffsetChangedListener); +} diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java new file mode 100644 index 00000000000..3e7844aaf68 --- /dev/null +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java @@ -0,0 +1,39 @@ +// 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. + +package io.flutter.plugins.webviewflutter; + +import android.webkit.WebView; +import io.flutter.plugin.common.BinaryMessenger; +import io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewFlutterApi; + +/** + * Flutter Api implementation for {@link ContentOffsetChangedListener}. + * + *

Passes arguments of callbacks methods from a {@link ContentOffsetChangedListener} to Dart. + */ +public class WebViewFlutterApiImpl extends WebViewFlutterApi { + private final InstanceManager instanceManager; + + /** + * Creates a Flutter api that sends messages to Dart. + * + * @param binaryMessenger handles sending messages to Dart + * @param instanceManager maintains instances stored to communicate with Dart objects + */ + public WebViewFlutterApiImpl(BinaryMessenger binaryMessenger, InstanceManager instanceManager) { + super(binaryMessenger); + this.instanceManager = instanceManager; + } + + /** Passes arguments from {@link ContentOffsetChangedListener#onContentOffsetChange} to Dart. */ + public void onScrollPosChange( + WebView webView, long x, long y, long oldX, long oldY, Reply callback) { + final Long webViewIdentifier = instanceManager.getIdentifierForStrongReference(webView); + if (webViewIdentifier == null) { + throw new IllegalStateException("Could not find identifier for WebView."); + } + onScrollPosChange(webViewIdentifier, x, y, oldX, oldY, callback); + } +} diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterPlugin.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterPlugin.java index 04a9735e028..c092c897123 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterPlugin.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterPlugin.java @@ -92,6 +92,7 @@ private void setUp( instanceManager, binaryMessenger, new WebViewHostApiImpl.WebViewProxy(), + new WebViewFlutterApiImpl(binaryMessenger, instanceManager), context, containerView); javaScriptChannelHostApi = diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java index 77d535b78ae..cfc3f8918c9 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java @@ -16,6 +16,7 @@ import androidx.annotation.Nullable; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugin.platform.PlatformView; +import io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewFlutterApi; import io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi; import java.util.Map; import java.util.Objects; @@ -31,6 +32,7 @@ public class WebViewHostApiImpl implements WebViewHostApi { // Only used with WebView using virtual displays. @Nullable private final View containerView; private final BinaryMessenger binaryMessenger; + private final WebViewFlutterApi webViewFlutterApi; private Context context; @@ -77,9 +79,11 @@ public void setWebContentsDebuggingEnabled(boolean enabled) { } /** Implementation of {@link WebView} that can be used as a Flutter {@link PlatformView}s. */ - public static class WebViewPlatformView extends WebView implements PlatformView { + public static class WebViewPlatformView extends WebView + implements PlatformView, WebViewExtendedApi { private WebViewClient currentWebViewClient; private WebChromeClientHostApiImpl.SecureWebChromeClient currentWebChromeClient; + private @Nullable ContentOffsetChangedListener contentOffsetChangedListener; /** * Creates a {@link WebViewPlatformView}. @@ -129,6 +133,20 @@ public void setWebChromeClient(WebChromeClient client) { public WebChromeClient getWebChromeClient() { return currentWebChromeClient; } + + @Override + protected void onScrollChanged(int l, int t, int oldL, int oldT) { + super.onScrollChanged(l, t, oldL, oldT); + if (contentOffsetChangedListener != null) { + contentOffsetChangedListener.onContentOffsetChange(l, t, oldL, oldT); + } + } + + @Override + public void setContentOffsetChangedListener( + ContentOffsetChangedListener contentOffsetChangedListener) { + this.contentOffsetChangedListener = contentOffsetChangedListener; + } } /** @@ -137,9 +155,10 @@ public WebChromeClient getWebChromeClient() { */ @SuppressLint("ViewConstructor") public static class InputAwareWebViewPlatformView extends InputAwareWebView - implements PlatformView { + implements PlatformView, WebViewExtendedApi { private WebViewClient currentWebViewClient; private WebChromeClientHostApiImpl.SecureWebChromeClient currentWebChromeClient; + private @Nullable ContentOffsetChangedListener contentOffsetChangedListener; /** * Creates a {@link InputAwareWebViewPlatformView}. @@ -206,6 +225,20 @@ public void setWebChromeClient(WebChromeClient client) { currentWebChromeClient = (WebChromeClientHostApiImpl.SecureWebChromeClient) client; currentWebChromeClient.setWebViewClient(currentWebViewClient); } + + @Override + protected void onScrollChanged(int l, int t, int oldl, int oldt) { + super.onScrollChanged(l, t, oldl, oldt); + if (contentOffsetChangedListener != null) { + contentOffsetChangedListener.onContentOffsetChange(l, t, oldl, oldt); + } + } + + @Override + public void setContentOffsetChangedListener( + ContentOffsetChangedListener contentOffsetChangedListener) { + this.contentOffsetChangedListener = contentOffsetChangedListener; + } } /** @@ -221,11 +254,13 @@ public WebViewHostApiImpl( InstanceManager instanceManager, BinaryMessenger binaryMessenger, WebViewProxy webViewProxy, + WebViewFlutterApi webViewFlutterApi, Context context, @Nullable View containerView) { this.instanceManager = instanceManager; this.binaryMessenger = binaryMessenger; this.webViewProxy = webViewProxy; + this.webViewFlutterApi = webViewFlutterApi; this.context = context; this.containerView = containerView; } @@ -420,6 +455,30 @@ public void setBackgroundColor(Long instanceId, Long color) { webView.setBackgroundColor(color.intValue()); } + @Override + public void enableContentOffsetChangedListener( + @NonNull Long instanceId, @NonNull Boolean enabled) { + final WebView webView = (WebView) instanceManager.getInstance(instanceId); + if (webView instanceof WebViewExtendedApi) { + if (enabled) { + ((WebViewExtendedApi) webView) + .setContentOffsetChangedListener( + (left, top, oldLeft, oldTop) -> { + webViewFlutterApi.onScrollPosChange( + instanceId, + (long) left, + (long) top, + (long) oldLeft, + (long) oldTop, + reply -> {}); + }); + + } else { + ((WebViewExtendedApi) webView).setContentOffsetChangedListener(null); + } + } + } + /** Maintains instances used to communicate with the corresponding WebView Dart object. */ public InstanceManager getInstanceManager() { return instanceManager; diff --git a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java index 1721ccdce8e..a7c9a2d0a42 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java @@ -6,7 +6,9 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @@ -37,6 +39,8 @@ public class WebViewTest { @Mock WebViewHostApiImpl.WebViewProxy mockWebViewProxy; + @Mock public GeneratedAndroidWebView.WebViewFlutterApi mockWebViewFlutterApi; + @Mock Context mockContext; @Mock BinaryMessenger mockBinaryMessenger; @@ -52,7 +56,12 @@ public void setUp() { .thenReturn(mockWebView); testHostApiImpl = new WebViewHostApiImpl( - testInstanceManager, mockBinaryMessenger, mockWebViewProxy, mockContext, null); + testInstanceManager, + mockBinaryMessenger, + mockWebViewProxy, + mockWebViewFlutterApi, + mockContext, + null); testHostApiImpl.create(0L, true); } @@ -314,4 +323,21 @@ public void destroy() { assertTrue(destroyCalled[0]); } + + @Test + public void disableContentOffsetChangedListener() { + testHostApiImpl.enableContentOffsetChangedListener(0L, false); + verify(mockWebView).setContentOffsetChangedListener(null); + } + + @Test + public void enableContentOffsetChangedListener() { + final ArgumentCaptor modeCaptor = + ArgumentCaptor.forClass(ContentOffsetChangedListener.class); + testHostApiImpl.enableContentOffsetChangedListener(0L, true); + verify(mockWebView).setContentOffsetChangedListener(modeCaptor.capture()); + assertNotNull(modeCaptor.getValue()); + modeCaptor.getValue().onContentOffsetChange(0, 1, 2, 3); + verify(mockWebViewFlutterApi).onScrollPosChange(eq(0L), eq(0L), eq(1L), eq(2L), eq(3L), any()); + } } diff --git a/packages/webview_flutter/webview_flutter_android/example/lib/main.dart b/packages/webview_flutter/webview_flutter_android/example/lib/main.dart index 75f01b457b3..e4ba49c6c8c 100644 --- a/packages/webview_flutter/webview_flutter_android/example/lib/main.dart +++ b/packages/webview_flutter/webview_flutter_android/example/lib/main.dart @@ -135,7 +135,11 @@ Page resource error: )) ..loadRequest(LoadRequestParams( uri: Uri.parse('https://flutter.dev'), - )); + )) + ..setOnContentOffsetChanged((int left, int top, int oldLeft, int oldTop) { + debugPrint( + 'Scroll offset change to left = $left y = $top oldX = $oldLeft oldY = $oldTop'); + }); } @override diff --git a/packages/webview_flutter/webview_flutter_android/example/pubspec.yaml b/packages/webview_flutter/webview_flutter_android/example/pubspec.yaml index 0fc0daf8411..e6b348f92fb 100644 --- a/packages/webview_flutter/webview_flutter_android/example/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_android/example/pubspec.yaml @@ -35,3 +35,9 @@ flutter: - assets/sample_video.mp4 - assets/www/index.html - assets/www/styles/style.css + + +# FOR TESTING ONLY. DO NOT MERGE. +dependency_overrides: + webview_flutter_platform_interface: + path: ../../../webview_flutter/webview_flutter_platform_interface diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart index 1ab30a9ea1f..05ffef3ee68 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart @@ -59,6 +59,10 @@ class JavaObject with Copyable { } } +/// Signature for the `onScrollChanged` callback responsible for listening to scroll's offset changed events. +typedef ScrollChangedCallback = void Function( + int left, int top, int oldLeft, int oldTop); + /// An Android View that displays web pages. /// /// **Basic usage** @@ -112,6 +116,9 @@ class WebView extends JavaObject { /// The [WebSettings] object used to control the settings for this WebView. late final WebSettings settings = WebSettings(this); + /// The [ScrollChangedCallback] object used to listen for scroll changed events. + late ScrollChangedCallback? onScrollChanged; + /// Enables debugging of web contents (HTML / CSS / JavaScript) loaded into any WebViews of this application. /// /// This flag can be enabled in order to facilitate debugging of web layouts @@ -397,6 +404,11 @@ class WebView extends JavaObject { return api.setBackgroundColorFromInstance(this, color.value); } + ///Toggle scroll listener for this WebView + Future enableContentOffsetChangedListener(bool enabled) { + return api.enableContentOffsetChangedListenerFromInstance(this, enabled); + } + @override WebView copy() { return WebView.detached(useHybridComposition: useHybridComposition); 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 d3c306a1023..84c71b2948d 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 @@ -942,6 +942,30 @@ class WebViewHostApi { return; } } + + Future enableContentOffsetChangedListener( + int arg_instanceId, bool arg_enabled) async { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.WebViewHostApi.enableContentOffsetChangedListener', + codec, + binaryMessenger: _binaryMessenger); + final List? replyList = await channel + .send([arg_instanceId, arg_enabled]) as List?; + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel.', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else { + return; + } + } } class WebSettingsHostApi { @@ -1673,6 +1697,49 @@ abstract class DownloadListenerFlutterApi { } } +abstract class WebViewFlutterApi { + static const MessageCodec codec = StandardMessageCodec(); + + void onScrollPosChange( + int webViewInstanceId, int x, int y, int oldX, int oldY); + + static void setup(WebViewFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange', codec, + binaryMessenger: binaryMessenger); + if (api == null) { + channel.setMessageHandler(null); + } else { + channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange was null.'); + final List args = (message as List?)!; + final int? arg_webViewInstanceId = (args[0] as int?); + assert(arg_webViewInstanceId != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange was null, expected non-null int.'); + final int? arg_x = (args[1] as int?); + assert(arg_x != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange was null, expected non-null int.'); + final int? arg_y = (args[2] as int?); + assert(arg_y != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange was null, expected non-null int.'); + final int? arg_oldX = (args[3] as int?); + assert(arg_oldX != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange was null, expected non-null int.'); + final int? arg_oldY = (args[4] as int?); + assert(arg_oldY != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange was null, expected non-null int.'); + api.onScrollPosChange( + arg_webViewInstanceId!, arg_x!, arg_y!, arg_oldX!, arg_oldY!); + return; + }); + } + } + } +} + class WebChromeClientHostApi { /// Constructor for [WebChromeClientHostApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart index 127a2fa58ef..9db471133e1 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart @@ -45,6 +45,7 @@ class AndroidWebViewFlutterApis { WebChromeClientFlutterApiImpl? webChromeClientFlutterApi, JavaScriptChannelFlutterApiImpl? javaScriptChannelFlutterApi, FileChooserParamsFlutterApiImpl? fileChooserParamsFlutterApi, + WebViewFlutterApiImpl? webViewFlutterApi, }) { this.javaObjectFlutterApi = javaObjectFlutterApi ?? JavaObjectFlutterApiImpl(); @@ -58,6 +59,7 @@ class AndroidWebViewFlutterApis { javaScriptChannelFlutterApi ?? JavaScriptChannelFlutterApiImpl(); this.fileChooserParamsFlutterApi = fileChooserParamsFlutterApi ?? FileChooserParamsFlutterApiImpl(); + this.webViewFlutterApi = webViewFlutterApi ?? WebViewFlutterApiImpl(); } static bool _haveBeenSetUp = false; @@ -85,6 +87,9 @@ class AndroidWebViewFlutterApis { /// Flutter Api for [FileChooserParams]. late final FileChooserParamsFlutterApiImpl fileChooserParamsFlutterApi; + /// Flutter Api for [ScrollListener]. + late final WebViewFlutterApiImpl webViewFlutterApi; + /// Ensures all the Flutter APIs have been setup to receive calls from native code. void ensureSetUp() { if (!_haveBeenSetUp) { @@ -94,6 +99,7 @@ class AndroidWebViewFlutterApis { WebChromeClientFlutterApi.setup(webChromeClientFlutterApi); JavaScriptChannelFlutterApi.setup(javaScriptChannelFlutterApi); FileChooserParamsFlutterApi.setup(fileChooserParamsFlutterApi); + WebViewFlutterApi.setup(webViewFlutterApi); _haveBeenSetUp = true; } } @@ -344,6 +350,13 @@ class WebViewHostApiImpl extends WebViewHostApi { Future setBackgroundColorFromInstance(WebView instance, int color) { return setBackgroundColor(instanceManager.getIdentifier(instance)!, color); } + + /// Helper method to convert instances ids to objects. + Future enableContentOffsetChangedListenerFromInstance( + WebView instance, bool enabled) { + return enableContentOffsetChangedListener( + instanceManager.getIdentifier(instance)!, enabled); + } } /// Host api implementation for [WebSettings]. @@ -905,3 +918,25 @@ class FileChooserParamsFlutterApiImpl extends FileChooserParamsFlutterApi { ); } } + +/// Flutter api implementation for [ScrollListenerFlutterApi]. +class WebViewFlutterApiImpl extends WebViewFlutterApi { + /// Constructs a [JavaScriptChannelFlutterApiImpl]. + WebViewFlutterApiImpl({InstanceManager? instanceManager}) + : instanceManager = instanceManager ?? JavaObject.globalInstanceManager; + + /// Maintains instances stored to communicate with java objects. + final InstanceManager instanceManager; + + @override + void onScrollPosChange( + int webViewInstanceId, int x, int y, int oldX, int oldY) { + final WebView? webViewInstance = instanceManager + .getInstanceWithWeakReference(webViewInstanceId) as WebView?; + assert( + webViewInstance != null, + 'InstanceManager does not contain a WebView with instanceId: $webViewInstanceId', + ); + webViewInstance!.onScrollChanged!(x, y, oldX, oldY); + } +} diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart index 6bd3dc03746..0397a325a6c 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart @@ -350,6 +350,14 @@ class AndroidWebViewController extends PlatformWebViewController { Future setUserAgent(String? userAgent) => _webView.settings.setUserAgentString(userAgent); + @override + Future setOnContentOffsetChanged( + void Function(int left, int top, int oldLeft, int oldTop)? + onOffsetChange) async { + _webView.onScrollChanged = onOffsetChange; + _webView.enableContentOffsetChangedListener(onOffsetChange != null); + } + /// Sets the restrictions that apply on automatic media playback. Future setMediaPlaybackRequiresUserGesture(bool require) { return _webView.settings.setMediaPlaybackRequiresUserGesture(require); diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/legacy/webview_android_widget.dart b/packages/webview_flutter/webview_flutter_android/lib/src/legacy/webview_android_widget.dart index cd4ba820cf4..ead7dca568e 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/legacy/webview_android_widget.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/legacy/webview_android_widget.dart @@ -96,21 +96,20 @@ class _WebViewAndroidWidgetState extends State { /// Implementation of [WebViewPlatformController] with the Android WebView api. class WebViewAndroidPlatformController extends WebViewPlatformController { /// Construct a [WebViewAndroidPlatformController]. - WebViewAndroidPlatformController({ - required bool useHybridComposition, - required CreationParams creationParams, - required this.callbacksHandler, - required this.javascriptChannelRegistry, - @visibleForTesting this.webViewProxy = const WebViewProxy(), - @visibleForTesting - this.flutterAssetManager = const android_webview.FlutterAssetManager(), - @visibleForTesting android_webview.WebStorage? webStorage, - }) : webStorage = webStorage ?? android_webview.WebStorage.instance, + WebViewAndroidPlatformController( + {required bool useHybridComposition, + required CreationParams creationParams, + required this.callbacksHandler, + required this.javascriptChannelRegistry, + @visibleForTesting this.webViewProxy = const WebViewProxy(), + @visibleForTesting this.flutterAssetManager = + const android_webview.FlutterAssetManager(), + @visibleForTesting android_webview.WebStorage? webStorage}) + : webStorage = webStorage ?? android_webview.WebStorage.instance, assert(creationParams.webSettings?.hasNavigationDelegate != null), super(callbacksHandler) { - webView = webViewProxy.createWebView( - useHybridComposition: useHybridComposition, - ); + webView = + webViewProxy.createWebView(useHybridComposition: useHybridComposition); webView.settings.setDomStorageEnabled(true); webView.settings.setJavaScriptCanOpenWindowsAutomatically(true); diff --git a/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart b/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart index 7f4d362c927..225f3722ae5 100644 --- a/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart +++ b/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart @@ -189,6 +189,8 @@ abstract class WebViewHostApi { void setWebChromeClient(int instanceId, int? clientInstanceId); void setBackgroundColor(int instanceId, int color); + + void enableContentOffsetChangedListener(int instanceId, bool enabled); } @HostApi(dartHostTestHandler: 'TestWebSettingsHostApi') @@ -287,6 +289,12 @@ abstract class DownloadListenerFlutterApi { ); } +@FlutterApi() +abstract class WebViewFlutterApi { + void onScrollPosChange( + int webViewInstanceId, int x, int y, int oldX, int oldY); +} + @HostApi(dartHostTestHandler: 'TestWebChromeClientHostApi') abstract class WebChromeClientHostApi { void create(int instanceId); diff --git a/packages/webview_flutter/webview_flutter_android/pubspec.yaml b/packages/webview_flutter/webview_flutter_android/pubspec.yaml index ac8971006ba..fcfecf31224 100644 --- a/packages/webview_flutter/webview_flutter_android/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_android/pubspec.yaml @@ -2,7 +2,7 @@ name: webview_flutter_android description: A Flutter plugin that provides a WebView widget on Android. repository: https://github.com/flutter/plugins/tree/main/packages/webview_flutter/webview_flutter_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22 -version: 3.3.0 +version: 3.3.1 environment: sdk: ">=2.17.0 <3.0.0" @@ -30,3 +30,9 @@ dev_dependencies: sdk: flutter mockito: ^5.3.2 pigeon: ^4.2.14 + + +# FOR TESTING ONLY. DO NOT MERGE. +dependency_overrides: + webview_flutter_platform_interface: + path: ../../webview_flutter/webview_flutter_platform_interface diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart index 43bab384e0c..dfa3e4d7253 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart @@ -870,6 +870,18 @@ void main() { verify(mockWebView.settings).called(1); verify(mockSettings.setUserAgentString('Test Framework')).called(1); }); + + test('setScrollListener', () async { + final MockWebView mockWebView = MockWebView(); + final AndroidWebViewController controller = createControllerWithMocks( + mockWebView: mockWebView, + ); + await controller.setOnContentOffsetChanged( + (int left, int top, int oldLeft, int oldTop) {}); + verify(mockWebView.enableContentOffsetChangedListener(true)).called(1); + await controller.setOnContentOffsetChanged(null); + verify(mockWebView.enableContentOffsetChangedListener(false)).called(1); + }); }); test('setMediaPlaybackRequiresUserGesture', () async { 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 01885caff54..a5b82c436b8 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( @@ -638,6 +644,23 @@ class MockAndroidWebViewController extends _i1.Mock returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); @override + _i9.Future setOnContentOffsetChanged( + void Function( + int, + int, + int, + int, + )? + onOffsetChange) => + (super.noSuchMethod( + Invocation.method( + #setOnContentOffsetChanged, + [onOffsetChange], + ), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) as _i9.Future); + @override _i9.Future setMediaPlaybackRequiresUserGesture(bool? require) => (super.noSuchMethod( Invocation.method( @@ -650,11 +673,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(), @@ -1776,6 +1799,15 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), ) as _i2.WebSettings); @override + set onScrollChanged(_i2.ScrollChangedCallback? _onScrollChanged) => + super.noSuchMethod( + Invocation.setter( + #onScrollChanged, + _onScrollChanged, + ), + returnValueForMissingStub: null, + ); + @override _i9.Future loadData({ required String? data, String? mimeType, @@ -2064,6 +2096,16 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); @override + _i9.Future enableContentOffsetChangedListener(bool? enabled) => + (super.noSuchMethod( + Invocation.method( + #enableContentOffsetChangedListener, + [enabled], + ), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) as _i9.Future); + @override _i2.WebView copy() => (super.noSuchMethod( Invocation.method( #copy, diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart index 0b5afbaf5b1..1268149877c 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart @@ -930,6 +930,21 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override + void enableContentOffsetChangedListener( + int? instanceId, + bool? enabled, + ) => + super.noSuchMethod( + Invocation.method( + #enableContentOffsetChangedListener, + [ + instanceId, + enabled, + ], + ), + returnValueForMissingStub: null, + ); } /// A class which mocks [TestAssetManagerHostApi]. @@ -1015,6 +1030,15 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), ) as _i2.WebSettings); @override + set onScrollChanged(_i2.ScrollChangedCallback? _onScrollChanged) => + super.noSuchMethod( + Invocation.setter( + #onScrollChanged, + _onScrollChanged, + ), + returnValueForMissingStub: null, + ); + @override _i5.Future loadData({ required String? data, String? mimeType, @@ -1289,6 +1313,16 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); @override + _i5.Future enableContentOffsetChangedListener(bool? enabled) => + (super.noSuchMethod( + Invocation.method( + #enableContentOffsetChangedListener, + [enabled], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + @override _i2.WebView copy() => (super.noSuchMethod( Invocation.method( #copy, diff --git a/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart index 03489ce5c1e..47e9a0d5fa3 100644 --- a/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart @@ -339,6 +339,15 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), ) as _i2.WebSettings); @override + set onScrollChanged(_i2.ScrollChangedCallback? _onScrollChanged) => + super.noSuchMethod( + Invocation.setter( + #onScrollChanged, + _onScrollChanged, + ), + returnValueForMissingStub: null, + ); + @override _i5.Future loadData({ required String? data, String? mimeType, @@ -613,6 +622,16 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); @override + _i5.Future enableContentOffsetChangedListener(bool? enabled) => + (super.noSuchMethod( + Invocation.method( + #enableContentOffsetChangedListener, + [enabled], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + @override _i2.WebView copy() => (super.noSuchMethod( Invocation.method( #copy, 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 56ba79a6662..5583361dae9 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 @@ -128,6 +128,8 @@ abstract class TestWebViewHostApi { void setBackgroundColor(int instanceId, int color); + void enableContentOffsetChangedListener(int instanceId, bool enabled); + static void setup(TestWebViewHostApi? api, {BinaryMessenger? binaryMessenger}) { { @@ -689,6 +691,29 @@ abstract class TestWebViewHostApi { }); } } + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.WebViewHostApi.enableContentOffsetChangedListener', + codec, + binaryMessenger: binaryMessenger); + if (api == null) { + channel.setMockMessageHandler(null); + } else { + channel.setMockMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.WebViewHostApi.enableContentOffsetChangedListener was null.'); + final List args = (message as List?)!; + final int? arg_instanceId = (args[0] as int?); + assert(arg_instanceId != null, + 'Argument for dev.flutter.pigeon.WebViewHostApi.enableContentOffsetChangedListener was null, expected non-null int.'); + final bool? arg_enabled = (args[1] as bool?); + assert(arg_enabled != null, + 'Argument for dev.flutter.pigeon.WebViewHostApi.enableContentOffsetChangedListener was null, expected non-null bool.'); + api.enableContentOffsetChangedListener(arg_instanceId!, arg_enabled!); + return []; + }); + } + } } } From 2a9b8275fc7cdc5d9e12f9b985a85a0c4d8d8074 Mon Sep 17 00:00:00 2001 From: TheVinhLuong Date: Sun, 2 Apr 2023 00:02:54 +0700 Subject: [PATCH 02/20] [webview_android] Remove enableContentOffsetChangedListener --- .../ContentOffsetChangedListener.java | 9 - .../GeneratedAndroidWebView.java | 852 ++++++------------ .../webviewflutter/WebViewExtendedApi.java | 12 - .../webviewflutter/WebViewFlutterApiImpl.java | 19 +- .../webviewflutter/WebViewFlutterPlugin.java | 1 - .../webviewflutter/WebViewHostApiImpl.java | 65 +- .../plugins/webviewflutter/WebViewTest.java | 34 +- .../lib/src/android_webview.dart | 5 - .../lib/src/android_webview.g.dart | 26 +- .../lib/src/android_webview_api_impls.dart | 7 - .../lib/src/android_webview_controller.dart | 1 - .../pigeons/android_webview.dart | 2 - .../test/android_webview_controller_test.dart | 2 - ...android_webview_controller_test.mocks.dart | 22 +- ...oid_webview_cookie_manager_test.mocks.dart | 2 +- .../test/android_webview_test.mocks.dart | 27 +- ...iew_android_cookie_manager_test.mocks.dart | 2 +- .../webview_android_widget_test.mocks.dart | 12 +- .../test/test_android_webview.g.dart | 402 ++++++--- 19 files changed, 596 insertions(+), 906 deletions(-) delete mode 100644 packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/ContentOffsetChangedListener.java delete mode 100644 packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewExtendedApi.java diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/ContentOffsetChangedListener.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/ContentOffsetChangedListener.java deleted file mode 100644 index 5737261f960..00000000000 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/ContentOffsetChangedListener.java +++ /dev/null @@ -1,9 +0,0 @@ -// 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. - -package io.flutter.plugins.webviewflutter; - -public interface ContentOffsetChangedListener { - void onContentOffsetChange(int left, int top, int oldLeft, int oldTop); -} 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 27efb69a935..f3cc4def816 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 (v9.0.6), do not edit directly. +// Autogenerated from Pigeon (v9.1.4), do not edit directly. // See also: https://pub.dev/packages/pigeon package io.flutter.plugins.webviewflutter; @@ -22,15 +22,39 @@ import java.util.Map; /** Generated class from Pigeon. */ -@SuppressWarnings({"unused", "unchecked", "CodeBlock2Expr", "RedundantSuppression"}) +@SuppressWarnings({"unused", "unchecked", "CodeBlock2Expr", "RedundantSuppression", "serial"}) public class GeneratedAndroidWebView { + + /** Error class for passing custom error details to Flutter via a thrown PlatformException. */ + public static class FlutterError extends RuntimeException { + + /** The error code. */ + public final String code; + + /** The error details. Must be a datatype supported by the api codec. */ + public final Object details; + + public FlutterError(@NonNull String code, @Nullable String message, @Nullable Object details) { + super(message); + this.code = code; + this.details = details; + } + } + @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)); + if (exception instanceof FlutterError) { + FlutterError error = (FlutterError) exception; + errorList.add(error.code); + errorList.add(error.getMessage()); + errorList.add(error.details); + } else { + errorList.add(exception.toString()); + errorList.add(exception.getClass().getSimpleName()); + errorList.add( + "Cause: " + exception.getCause() + ", Stacktrace: " + Log.getStackTraceString(exception)); + } return errorList; } @@ -468,16 +492,12 @@ static void setup(BinaryMessenger binaryMessenger, JavaObjectHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number identifierArg = (Number) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number identifierArg = (Number) args.get(0); - if (identifierArg == null) { - throw new NullPointerException("identifierArg unexpectedly null."); - } api.dispose((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -547,25 +567,20 @@ static void setup(BinaryMessenger binaryMessenger, CookieManagerHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); - try { - Result resultCallback = - new Result() { - public void success(Boolean result) { - wrapped.add(0, result); - reply.reply(wrapped); - } - - public void error(Throwable error) { - ArrayList wrappedError = wrapError(error); - reply.reply(wrappedError); - } - }; - - api.clearCookies(resultCallback); - } catch (Error | RuntimeException exception) { - ArrayList wrappedError = wrapError(exception); - reply.reply(wrappedError); - } + Result resultCallback = + new Result() { + public void success(Boolean result) { + wrapped.add(0, result); + reply.reply(wrapped); + } + + public void error(Throwable error) { + ArrayList wrappedError = wrapError(error); + reply.reply(wrappedError); + } + }; + + api.clearCookies(resultCallback); }); } else { channel.setMessageHandler(null); @@ -579,20 +594,13 @@ public void error(Throwable error) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + String urlArg = (String) args.get(0); + String valueArg = (String) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - String urlArg = (String) args.get(0); - if (urlArg == null) { - throw new NullPointerException("urlArg unexpectedly null."); - } - String valueArg = (String) args.get(1); - if (valueArg == null) { - throw new NullPointerException("valueArg unexpectedly null."); - } api.setCookie(urlArg, valueArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -706,8 +714,6 @@ void removeJavaScriptChannel( void setBackgroundColor(@NonNull Long instanceId, @NonNull Long color); - void enableContentOffsetChangedListener(@NonNull Long instanceId, @NonNull Boolean enabled); - /** The codec used by WebViewHostApi. */ static MessageCodec getCodec() { return WebViewHostApiCodec.INSTANCE; @@ -722,22 +728,15 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Boolean useHybridCompositionArg = (Boolean) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Boolean useHybridCompositionArg = (Boolean) args.get(1); - if (useHybridCompositionArg == null) { - throw new NullPointerException("useHybridCompositionArg unexpectedly null."); - } api.create( (instanceIdArg == null) ? null : instanceIdArg.longValue(), useHybridCompositionArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -755,26 +754,19 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + String dataArg = (String) args.get(1); + String mimeTypeArg = (String) args.get(2); + String encodingArg = (String) args.get(3); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - String dataArg = (String) args.get(1); - if (dataArg == null) { - throw new NullPointerException("dataArg unexpectedly null."); - } - String mimeTypeArg = (String) args.get(2); - String encodingArg = (String) args.get(3); api.loadData( (instanceIdArg == null) ? null : instanceIdArg.longValue(), dataArg, mimeTypeArg, encodingArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -794,21 +786,14 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + String baseUrlArg = (String) args.get(1); + String dataArg = (String) args.get(2); + String mimeTypeArg = (String) args.get(3); + String encodingArg = (String) args.get(4); + String historyUrlArg = (String) args.get(5); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - String baseUrlArg = (String) args.get(1); - String dataArg = (String) args.get(2); - if (dataArg == null) { - throw new NullPointerException("dataArg unexpectedly null."); - } - String mimeTypeArg = (String) args.get(3); - String encodingArg = (String) args.get(4); - String historyUrlArg = (String) args.get(5); api.loadDataWithBaseUrl( (instanceIdArg == null) ? null : instanceIdArg.longValue(), baseUrlArg, @@ -817,7 +802,7 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { encodingArg, historyUrlArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -835,27 +820,17 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + String urlArg = (String) args.get(1); + Map headersArg = (Map) args.get(2); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - String urlArg = (String) args.get(1); - if (urlArg == null) { - throw new NullPointerException("urlArg unexpectedly null."); - } - Map headersArg = (Map) args.get(2); - if (headersArg == null) { - throw new NullPointerException("headersArg unexpectedly null."); - } api.loadUrl( (instanceIdArg == null) ? null : instanceIdArg.longValue(), urlArg, headersArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -873,25 +848,15 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + String urlArg = (String) args.get(1); + byte[] dataArg = (byte[]) args.get(2); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - String urlArg = (String) args.get(1); - if (urlArg == null) { - throw new NullPointerException("urlArg unexpectedly null."); - } - byte[] dataArg = (byte[]) args.get(2); - if (dataArg == null) { - throw new NullPointerException("dataArg unexpectedly null."); - } api.postUrl( (instanceIdArg == null) ? null : instanceIdArg.longValue(), urlArg, dataArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -909,17 +874,13 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } String output = api.getUrl((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -937,17 +898,13 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } Boolean output = api.canGoBack((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -965,17 +922,13 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } Boolean output = api.canGoForward((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -993,16 +946,12 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } api.goBack((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1020,16 +969,12 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } api.goForward((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1047,16 +992,12 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } api.reload((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1074,22 +1015,15 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Boolean includeDiskFilesArg = (Boolean) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Boolean includeDiskFilesArg = (Boolean) args.get(1); - if (includeDiskFilesArg == null) { - throw new NullPointerException("includeDiskFilesArg unexpectedly null."); - } api.clearCache( (instanceIdArg == null) ? null : instanceIdArg.longValue(), includeDiskFilesArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1109,38 +1043,26 @@ static void setup(BinaryMessenger binaryMessenger, WebViewHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); - try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - String javascriptStringArg = (String) args.get(1); - if (javascriptStringArg == null) { - throw new NullPointerException("javascriptStringArg unexpectedly null."); - } - Result resultCallback = - new Result() { - public void success(String result) { - wrapped.add(0, result); - reply.reply(wrapped); - } - - public void error(Throwable error) { - ArrayList wrappedError = wrapError(error); - reply.reply(wrappedError); - } - }; - - api.evaluateJavascript( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - javascriptStringArg, - resultCallback); - } catch (Error | RuntimeException exception) { - ArrayList wrappedError = wrapError(exception); - reply.reply(wrappedError); - } + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + String javascriptStringArg = (String) args.get(1); + Result resultCallback = + new Result() { + public void success(String result) { + wrapped.add(0, result); + reply.reply(wrapped); + } + + public void error(Throwable error) { + ArrayList wrappedError = wrapError(error); + reply.reply(wrappedError); + } + }; + + api.evaluateJavascript( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + javascriptStringArg, + resultCallback); }); } else { channel.setMessageHandler(null); @@ -1154,17 +1076,13 @@ public void error(Throwable error) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } String output = api.getTitle((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1182,27 +1100,17 @@ public void error(Throwable error) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Number xArg = (Number) args.get(1); + Number yArg = (Number) args.get(2); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Number xArg = (Number) args.get(1); - if (xArg == null) { - throw new NullPointerException("xArg unexpectedly null."); - } - Number yArg = (Number) args.get(2); - if (yArg == null) { - throw new NullPointerException("yArg unexpectedly null."); - } api.scrollTo( (instanceIdArg == null) ? null : instanceIdArg.longValue(), (xArg == null) ? null : xArg.longValue(), (yArg == null) ? null : yArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1220,27 +1128,17 @@ public void error(Throwable error) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Number xArg = (Number) args.get(1); + Number yArg = (Number) args.get(2); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Number xArg = (Number) args.get(1); - if (xArg == null) { - throw new NullPointerException("xArg unexpectedly null."); - } - Number yArg = (Number) args.get(2); - if (yArg == null) { - throw new NullPointerException("yArg unexpectedly null."); - } api.scrollBy( (instanceIdArg == null) ? null : instanceIdArg.longValue(), (xArg == null) ? null : xArg.longValue(), (yArg == null) ? null : yArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1258,17 +1156,13 @@ public void error(Throwable error) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } Long output = api.getScrollX((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1286,17 +1180,13 @@ public void error(Throwable error) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } Long output = api.getScrollY((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1314,18 +1204,14 @@ public void error(Throwable error) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } WebViewPoint output = api.getScrollPosition( (instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1345,16 +1231,12 @@ public void error(Throwable error) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Boolean enabledArg = (Boolean) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - Boolean enabledArg = (Boolean) args.get(0); - if (enabledArg == null) { - throw new NullPointerException("enabledArg unexpectedly null."); - } api.setWebContentsDebuggingEnabled(enabledArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1372,24 +1254,17 @@ public void error(Throwable error) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Number webViewClientInstanceIdArg = (Number) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Number webViewClientInstanceIdArg = (Number) args.get(1); - if (webViewClientInstanceIdArg == null) { - throw new NullPointerException("webViewClientInstanceIdArg unexpectedly null."); - } api.setWebViewClient( (instanceIdArg == null) ? null : instanceIdArg.longValue(), (webViewClientInstanceIdArg == null) ? null : webViewClientInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1409,25 +1284,17 @@ public void error(Throwable error) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Number javaScriptChannelInstanceIdArg = (Number) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Number javaScriptChannelInstanceIdArg = (Number) args.get(1); - if (javaScriptChannelInstanceIdArg == null) { - throw new NullPointerException( - "javaScriptChannelInstanceIdArg unexpectedly null."); - } api.addJavaScriptChannel( (instanceIdArg == null) ? null : instanceIdArg.longValue(), (javaScriptChannelInstanceIdArg == null) ? null : javaScriptChannelInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1447,25 +1314,17 @@ public void error(Throwable error) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Number javaScriptChannelInstanceIdArg = (Number) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Number javaScriptChannelInstanceIdArg = (Number) args.get(1); - if (javaScriptChannelInstanceIdArg == null) { - throw new NullPointerException( - "javaScriptChannelInstanceIdArg unexpectedly null."); - } api.removeJavaScriptChannel( (instanceIdArg == null) ? null : instanceIdArg.longValue(), (javaScriptChannelInstanceIdArg == null) ? null : javaScriptChannelInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1485,19 +1344,15 @@ public void error(Throwable error) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Number listenerInstanceIdArg = (Number) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Number listenerInstanceIdArg = (Number) args.get(1); api.setDownloadListener( (instanceIdArg == null) ? null : instanceIdArg.longValue(), (listenerInstanceIdArg == null) ? null : listenerInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1517,19 +1372,15 @@ public void error(Throwable error) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Number clientInstanceIdArg = (Number) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Number clientInstanceIdArg = (Number) args.get(1); api.setWebChromeClient( (instanceIdArg == null) ? null : instanceIdArg.longValue(), (clientInstanceIdArg == null) ? null : clientInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1549,56 +1400,15 @@ public void error(Throwable error) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Number colorArg = (Number) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Number colorArg = (Number) args.get(1); - if (colorArg == null) { - throw new NullPointerException("colorArg unexpectedly null."); - } api.setBackgroundColor( (instanceIdArg == null) ? null : instanceIdArg.longValue(), (colorArg == null) ? null : colorArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { - ArrayList wrappedError = wrapError(exception); - wrapped = wrappedError; - } - reply.reply(wrapped); - }); - } else { - channel.setMessageHandler(null); - } - } - { - BasicMessageChannel channel = - new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebViewHostApi.enableContentOffsetChangedListener", - getCodec()); - if (api != null) { - channel.setMessageHandler( - (message, reply) -> { - ArrayList wrapped = new ArrayList(); - try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Boolean enabledArg = (Boolean) args.get(1); - if (enabledArg == null) { - throw new NullPointerException("enabledArg unexpectedly null."); - } - api.enableContentOffsetChangedListener( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); - wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1709,22 +1519,15 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Number webViewInstanceIdArg = (Number) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Number webViewInstanceIdArg = (Number) args.get(1); - if (webViewInstanceIdArg == null) { - throw new NullPointerException("webViewInstanceIdArg unexpectedly null."); - } api.create( (instanceIdArg == null) ? null : instanceIdArg.longValue(), (webViewInstanceIdArg == null) ? null : webViewInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1744,21 +1547,14 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Boolean flagArg = (Boolean) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Boolean flagArg = (Boolean) args.get(1); - if (flagArg == null) { - throw new NullPointerException("flagArg unexpectedly null."); - } api.setDomStorageEnabled( (instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1778,21 +1574,14 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Boolean flagArg = (Boolean) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Boolean flagArg = (Boolean) args.get(1); - if (flagArg == null) { - throw new NullPointerException("flagArg unexpectedly null."); - } api.setJavaScriptCanOpenWindowsAutomatically( (instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1812,21 +1601,14 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Boolean supportArg = (Boolean) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Boolean supportArg = (Boolean) args.get(1); - if (supportArg == null) { - throw new NullPointerException("supportArg unexpectedly null."); - } api.setSupportMultipleWindows( (instanceIdArg == null) ? null : instanceIdArg.longValue(), supportArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1846,21 +1628,14 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Boolean flagArg = (Boolean) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Boolean flagArg = (Boolean) args.get(1); - if (flagArg == null) { - throw new NullPointerException("flagArg unexpectedly null."); - } api.setJavaScriptEnabled( (instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1880,19 +1655,15 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + String userAgentStringArg = (String) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - String userAgentStringArg = (String) args.get(1); api.setUserAgentString( (instanceIdArg == null) ? null : instanceIdArg.longValue(), userAgentStringArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1912,21 +1683,14 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Boolean requireArg = (Boolean) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Boolean requireArg = (Boolean) args.get(1); - if (requireArg == null) { - throw new NullPointerException("requireArg unexpectedly null."); - } api.setMediaPlaybackRequiresUserGesture( (instanceIdArg == null) ? null : instanceIdArg.longValue(), requireArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1946,21 +1710,14 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Boolean supportArg = (Boolean) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Boolean supportArg = (Boolean) args.get(1); - if (supportArg == null) { - throw new NullPointerException("supportArg unexpectedly null."); - } api.setSupportZoom( (instanceIdArg == null) ? null : instanceIdArg.longValue(), supportArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1980,21 +1737,14 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Boolean overviewArg = (Boolean) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Boolean overviewArg = (Boolean) args.get(1); - if (overviewArg == null) { - throw new NullPointerException("overviewArg unexpectedly null."); - } api.setLoadWithOverviewMode( (instanceIdArg == null) ? null : instanceIdArg.longValue(), overviewArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2014,21 +1764,14 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Boolean useArg = (Boolean) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Boolean useArg = (Boolean) args.get(1); - if (useArg == null) { - throw new NullPointerException("useArg unexpectedly null."); - } api.setUseWideViewPort( (instanceIdArg == null) ? null : instanceIdArg.longValue(), useArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2048,21 +1791,14 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Boolean enabledArg = (Boolean) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Boolean enabledArg = (Boolean) args.get(1); - if (enabledArg == null) { - throw new NullPointerException("enabledArg unexpectedly null."); - } api.setDisplayZoomControls( (instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2082,21 +1818,14 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Boolean enabledArg = (Boolean) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Boolean enabledArg = (Boolean) args.get(1); - if (enabledArg == null) { - throw new NullPointerException("enabledArg unexpectedly null."); - } api.setBuiltInZoomControls( (instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2116,21 +1845,14 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Boolean enabledArg = (Boolean) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Boolean enabledArg = (Boolean) args.get(1); - if (enabledArg == null) { - throw new NullPointerException("enabledArg unexpectedly null."); - } api.setAllowFileAccess( (instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2148,22 +1870,15 @@ static void setup(BinaryMessenger binaryMessenger, WebSettingsHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Number textZoomArg = (Number) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Number textZoomArg = (Number) args.get(1); - if (textZoomArg == null) { - throw new NullPointerException("textZoomArg unexpectedly null."); - } api.setTextZoom( (instanceIdArg == null) ? null : instanceIdArg.longValue(), (textZoomArg == null) ? null : textZoomArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2197,21 +1912,14 @@ static void setup(BinaryMessenger binaryMessenger, JavaScriptChannelHostApi api) channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + String channelNameArg = (String) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - String channelNameArg = (String) args.get(1); - if (channelNameArg == null) { - throw new NullPointerException("channelNameArg unexpectedly null."); - } api.create( (instanceIdArg == null) ? null : instanceIdArg.longValue(), channelNameArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2277,16 +1985,12 @@ static void setup(BinaryMessenger binaryMessenger, WebViewClientHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2306,21 +2010,14 @@ static void setup(BinaryMessenger binaryMessenger, WebViewClientHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Boolean valueArg = (Boolean) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Boolean valueArg = (Boolean) args.get(1); - if (valueArg == null) { - throw new NullPointerException("valueArg unexpectedly null."); - } api.setSynchronousReturnValueForShouldOverrideUrlLoading( (instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2501,16 +2198,12 @@ static void setup(BinaryMessenger binaryMessenger, DownloadListenerHostApi api) channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2589,16 +2282,12 @@ static void setup(BinaryMessenger binaryMessenger, WebChromeClientHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2618,21 +2307,14 @@ static void setup(BinaryMessenger binaryMessenger, WebChromeClientHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); + Boolean valueArg = (Boolean) args.get(1); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } - Boolean valueArg = (Boolean) args.get(1); - if (valueArg == null) { - throw new NullPointerException("valueArg unexpectedly null."); - } api.setSynchronousReturnValueForOnShowFileChooser( (instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2670,16 +2352,12 @@ static void setup(BinaryMessenger binaryMessenger, FlutterAssetManagerHostApi ap channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + String pathArg = (String) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - String pathArg = (String) args.get(0); - if (pathArg == null) { - throw new NullPointerException("pathArg unexpectedly null."); - } List output = api.list(pathArg); wrapped.add(0, output); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2699,16 +2377,12 @@ static void setup(BinaryMessenger binaryMessenger, FlutterAssetManagerHostApi ap channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + String nameArg = (String) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - String nameArg = (String) args.get(0); - if (nameArg == null) { - throw new NullPointerException("nameArg unexpectedly null."); - } String output = api.getAssetFilePathByName(nameArg); wrapped.add(0, output); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2795,16 +2469,12 @@ static void setup(BinaryMessenger binaryMessenger, WebStorageHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2822,16 +2492,12 @@ static void setup(BinaryMessenger binaryMessenger, WebStorageHostApi api) { channel.setMessageHandler( (message, reply) -> { ArrayList wrapped = new ArrayList(); + ArrayList args = (ArrayList) message; + Number instanceIdArg = (Number) args.get(0); try { - ArrayList args = (ArrayList) message; - assert args != null; - Number instanceIdArg = (Number) args.get(0); - if (instanceIdArg == null) { - throw new NullPointerException("instanceIdArg unexpectedly null."); - } api.deleteAllData((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewExtendedApi.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewExtendedApi.java deleted file mode 100644 index 7adad9219c1..00000000000 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewExtendedApi.java +++ /dev/null @@ -1,12 +0,0 @@ -// 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. - -package io.flutter.plugins.webviewflutter; - -import androidx.annotation.Nullable; -/** Define extending APIs for {@link android.webkit.WebView} */ -public interface WebViewExtendedApi { - void setContentOffsetChangedListener( - @Nullable ContentOffsetChangedListener contentOffsetChangedListener); -} diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java index 07f933764ca..bb80544bd63 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java @@ -9,6 +9,7 @@ import androidx.annotation.VisibleForTesting; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewFlutterApi; +import java.util.Objects; /** * Flutter API implementation for `WebView`. @@ -26,7 +27,7 @@ public class WebViewFlutterApiImpl extends WebViewFlutterApi { * @param binaryMessenger used to communicate with Dart over asynchronous messages * @param instanceManager maintains instances stored to communicate with attached Dart objects */ - public WebViewFContentOffsetChangedListener lutterApiImpl( + public WebViewFlutterApiImpl( @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { super(binaryMessenger); this.instanceManager = instanceManager; @@ -52,4 +53,20 @@ public void create(@NonNull WebView instance, @NonNull WebViewFlutterApi.Reply callback) { + api.onScrollPosChange( + Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(instance)), + xArg, + yArg, + oldXArg, + oldYArg, + callback); + } } diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterPlugin.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterPlugin.java index c092c897123..04a9735e028 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterPlugin.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterPlugin.java @@ -92,7 +92,6 @@ private void setUp( instanceManager, binaryMessenger, new WebViewHostApiImpl.WebViewProxy(), - new WebViewFlutterApiImpl(binaryMessenger, instanceManager), context, containerView); javaScriptChannelHostApi = diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java index cfc3f8918c9..f6c3d0d52e0 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java @@ -32,7 +32,6 @@ public class WebViewHostApiImpl implements WebViewHostApi { // Only used with WebView using virtual displays. @Nullable private final View containerView; private final BinaryMessenger binaryMessenger; - private final WebViewFlutterApi webViewFlutterApi; private Context context; @@ -79,11 +78,10 @@ public void setWebContentsDebuggingEnabled(boolean enabled) { } /** Implementation of {@link WebView} that can be used as a Flutter {@link PlatformView}s. */ - public static class WebViewPlatformView extends WebView - implements PlatformView, WebViewExtendedApi { + public static class WebViewPlatformView extends WebView implements PlatformView { private WebViewClient currentWebViewClient; private WebChromeClientHostApiImpl.SecureWebChromeClient currentWebChromeClient; - private @Nullable ContentOffsetChangedListener contentOffsetChangedListener; + private final WebViewFlutterApiImpl webViewFlutterApi; /** * Creates a {@link WebViewPlatformView}. @@ -95,7 +93,7 @@ public WebViewPlatformView( super(context); currentWebViewClient = new WebViewClient(); currentWebChromeClient = new WebChromeClientHostApiImpl.SecureWebChromeClient(); - + webViewFlutterApi = new WebViewFlutterApiImpl(binaryMessenger, instanceManager); setWebViewClient(currentWebViewClient); setWebChromeClient(currentWebChromeClient); } @@ -136,16 +134,9 @@ public WebChromeClient getWebChromeClient() { @Override protected void onScrollChanged(int l, int t, int oldL, int oldT) { + webViewFlutterApi.onScrollPosChange( + this, (long) l, (long) t, (long) oldL, (long) oldT, reply -> {}); super.onScrollChanged(l, t, oldL, oldT); - if (contentOffsetChangedListener != null) { - contentOffsetChangedListener.onContentOffsetChange(l, t, oldL, oldT); - } - } - - @Override - public void setContentOffsetChangedListener( - ContentOffsetChangedListener contentOffsetChangedListener) { - this.contentOffsetChangedListener = contentOffsetChangedListener; } } @@ -155,10 +146,10 @@ public void setContentOffsetChangedListener( */ @SuppressLint("ViewConstructor") public static class InputAwareWebViewPlatformView extends InputAwareWebView - implements PlatformView, WebViewExtendedApi { + implements PlatformView { private WebViewClient currentWebViewClient; private WebChromeClientHostApiImpl.SecureWebChromeClient currentWebChromeClient; - private @Nullable ContentOffsetChangedListener contentOffsetChangedListener; + private final WebViewFlutterApiImpl webViewFlutterApi; /** * Creates a {@link InputAwareWebViewPlatformView}. @@ -173,6 +164,7 @@ public InputAwareWebViewPlatformView( super(context, containerView); currentWebViewClient = new WebViewClient(); currentWebChromeClient = new WebChromeClientHostApiImpl.SecureWebChromeClient(); + webViewFlutterApi = new WebViewFlutterApiImpl(binaryMessenger, instanceManager); setWebViewClient(currentWebViewClient); setWebChromeClient(currentWebChromeClient); @@ -227,17 +219,10 @@ public void setWebChromeClient(WebChromeClient client) { } @Override - protected void onScrollChanged(int l, int t, int oldl, int oldt) { - super.onScrollChanged(l, t, oldl, oldt); - if (contentOffsetChangedListener != null) { - contentOffsetChangedListener.onContentOffsetChange(l, t, oldl, oldt); - } - } - - @Override - public void setContentOffsetChangedListener( - ContentOffsetChangedListener contentOffsetChangedListener) { - this.contentOffsetChangedListener = contentOffsetChangedListener; + protected void onScrollChanged(int l, int t, int oldL, int oldT) { + webViewFlutterApi.onScrollPosChange( + this, (long) l, (long) t, (long) oldL, (long) oldT, reply -> {}); + super.onScrollChanged(l, t, oldL, oldT); } } @@ -254,13 +239,11 @@ public WebViewHostApiImpl( InstanceManager instanceManager, BinaryMessenger binaryMessenger, WebViewProxy webViewProxy, - WebViewFlutterApi webViewFlutterApi, Context context, @Nullable View containerView) { this.instanceManager = instanceManager; this.binaryMessenger = binaryMessenger; this.webViewProxy = webViewProxy; - this.webViewFlutterApi = webViewFlutterApi; this.context = context; this.containerView = containerView; } @@ -455,30 +438,6 @@ public void setBackgroundColor(Long instanceId, Long color) { webView.setBackgroundColor(color.intValue()); } - @Override - public void enableContentOffsetChangedListener( - @NonNull Long instanceId, @NonNull Boolean enabled) { - final WebView webView = (WebView) instanceManager.getInstance(instanceId); - if (webView instanceof WebViewExtendedApi) { - if (enabled) { - ((WebViewExtendedApi) webView) - .setContentOffsetChangedListener( - (left, top, oldLeft, oldTop) -> { - webViewFlutterApi.onScrollPosChange( - instanceId, - (long) left, - (long) top, - (long) oldLeft, - (long) oldTop, - reply -> {}); - }); - - } else { - ((WebViewExtendedApi) webView).setContentOffsetChangedListener(null); - } - } - } - /** Maintains instances used to communicate with the corresponding WebView Dart object. */ public InstanceManager getInstanceManager() { return instanceManager; diff --git a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java index 90c6e134aae..f0b5015ce35 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java @@ -6,7 +6,6 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; @@ -40,8 +39,6 @@ public class WebViewTest { @Mock WebViewHostApiImpl.WebViewProxy mockWebViewProxy; - @Mock public GeneratedAndroidWebView.WebViewFlutterApi mockWebViewFlutterApi; - @Mock Context mockContext; @Mock BinaryMessenger mockBinaryMessenger; @@ -60,7 +57,6 @@ public void setUp() { testInstanceManager, mockBinaryMessenger, mockWebViewProxy, - mockWebViewFlutterApi, mockContext, null); testHostApiImpl.create(0L, true); @@ -345,19 +341,23 @@ public void flutterApiCreate() { } @Test - public void disableContentOffsetChangedListener() { - testHostApiImpl.enableContentOffsetChangedListener(0L, false); - verify(mockWebView).setContentOffsetChangedListener(null); - } + public void onScrollPosChange() { + final InstanceManager instanceManager = InstanceManager.open(identifier -> {}); - @Test - public void enableContentOffsetChangedListener() { - final ArgumentCaptor modeCaptor = - ArgumentCaptor.forClass(ContentOffsetChangedListener.class); - testHostApiImpl.enableContentOffsetChangedListener(0L, true); - verify(mockWebView).setContentOffsetChangedListener(modeCaptor.capture()); - assertNotNull(modeCaptor.getValue()); - modeCaptor.getValue().onContentOffsetChange(0, 1, 2, 3); - verify(mockWebViewFlutterApi).onScrollPosChange(eq(0L), eq(0L), eq(1L), eq(2L), eq(3L), any()); + final WebViewFlutterApiImpl flutterApiImpl = + new WebViewFlutterApiImpl(mockBinaryMessenger, instanceManager); + + final WebViewFlutterApi mockFlutterApi = mock(WebViewFlutterApi.class); + flutterApiImpl.setApi(mockFlutterApi); + flutterApiImpl.create(mockWebView, reply -> {}); + + flutterApiImpl.onScrollPosChange(mockWebView, 0L, 1L, 2L, 3L, reply -> {}); + + final long instanceIdentifier = + Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockWebView)); + verify(mockFlutterApi) + .onScrollPosChange(eq(instanceIdentifier), eq(0L), eq(1L), eq(2L), eq(3L), any()); + + instanceManager.close(); } } diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart index f132f54af0e..437276ee009 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart @@ -404,11 +404,6 @@ class WebView extends JavaObject { return api.setBackgroundColorFromInstance(this, color.value); } - ///Toggle scroll listener for this WebView - Future enableContentOffsetChangedListener(bool enabled) { - return api.enableContentOffsetChangedListenerFromInstance(this, enabled); - } - @override WebView copy() { return WebView.detached(useHybridComposition: useHybridComposition); 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 d29e9e625c7..631b3231b4b 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,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 (v9.0.6), do not edit directly. +// Autogenerated from Pigeon (v9.1.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 @@ -942,30 +942,6 @@ class WebViewHostApi { return; } } - - Future enableContentOffsetChangedListener( - int arg_instanceId, bool arg_enabled) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebViewHostApi.enableContentOffsetChangedListener', - codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_enabled]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } } /// Flutter API for `WebView`. diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart index 2e0aa9bb909..b751593d645 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart @@ -350,13 +350,6 @@ class WebViewHostApiImpl extends WebViewHostApi { Future setBackgroundColorFromInstance(WebView instance, int color) { return setBackgroundColor(instanceManager.getIdentifier(instance)!, color); } - - /// Helper method to convert instances ids to objects. - Future enableContentOffsetChangedListenerFromInstance( - WebView instance, bool enabled) { - return enableContentOffsetChangedListener( - instanceManager.getIdentifier(instance)!, enabled); - } } /// Flutter API implementation for [WebView]. diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart index c7bad10e359..d2c63060e9f 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart @@ -355,7 +355,6 @@ class AndroidWebViewController extends PlatformWebViewController { void Function(int left, int top, int oldLeft, int oldTop)? onOffsetChange) async { _webView.onScrollChanged = onOffsetChange; - _webView.enableContentOffsetChangedListener(onOffsetChange != null); } /// Sets the restrictions that apply on automatic media playback. diff --git a/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart b/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart index f3931c4f00b..09dbd8a305c 100644 --- a/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart +++ b/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart @@ -189,8 +189,6 @@ abstract class WebViewHostApi { void setWebChromeClient(int instanceId, int? clientInstanceId); void setBackgroundColor(int instanceId, int color); - - void enableContentOffsetChangedListener(int instanceId, bool enabled); } /// Flutter API for `WebView`. diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart index 5ad2f477cc0..3abf81afdea 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart @@ -878,9 +878,7 @@ void main() { ); await controller.setOnContentOffsetChanged( (int left, int top, int oldLeft, int oldTop) {}); - verify(mockWebView.enableContentOffsetChangedListener(true)).called(1); await controller.setOnContentOffsetChanged(null); - verify(mockWebView.enableContentOffsetChangedListener(false)).called(1); }); }); 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 9b32b327b30..1d1e03a5a51 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 @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.3.2 from annotations +// Mocks generated by Mockito 5.4.0 from annotations // in webview_flutter_android/test/android_webview_controller_test.dart. // Do not manually edit this file. @@ -341,6 +341,16 @@ class MockAndroidNavigationDelegate extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override + _i9.Future setOnUrlChange(_i3.UrlChangeCallback? onUrlChange) => + (super.noSuchMethod( + Invocation.method( + #setOnUrlChange, + [onUrlChange], + ), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) as _i9.Future); } /// A class which mocks [AndroidWebViewController]. @@ -2114,16 +2124,6 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); @override - _i9.Future enableContentOffsetChangedListener(bool? enabled) => - (super.noSuchMethod( - Invocation.method( - #enableContentOffsetChangedListener, - [enabled], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); - @override _i2.WebView copy() => (super.noSuchMethod( Invocation.method( #copy, diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_cookie_manager_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_cookie_manager_test.mocks.dart index 07321805a55..d2937d54f92 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_cookie_manager_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_cookie_manager_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.3.2 from annotations +// Mocks generated by Mockito 5.4.0 from annotations // in webview_flutter_android/test/android_webview_cookie_manager_test.dart. // Do not manually edit this file. diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart index d1d1a26d2d0..6ca1b5c8cbf 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.3.2 from annotations +// Mocks generated by Mockito 5.4.0 from annotations // in webview_flutter_android/test/android_webview_test.dart. // Do not manually edit this file. @@ -945,21 +945,6 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); - @override - void enableContentOffsetChangedListener( - int? instanceId, - bool? enabled, - ) => - super.noSuchMethod( - Invocation.method( - #enableContentOffsetChangedListener, - [ - instanceId, - enabled, - ], - ), - returnValueForMissingStub: null, - ); } /// A class which mocks [TestAssetManagerHostApi]. @@ -1328,16 +1313,6 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); @override - _i5.Future enableContentOffsetChangedListener(bool? enabled) => - (super.noSuchMethod( - Invocation.method( - #enableContentOffsetChangedListener, - [enabled], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - @override _i2.WebView copy() => (super.noSuchMethod( Invocation.method( #copy, diff --git a/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_cookie_manager_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_cookie_manager_test.mocks.dart index 85aed145bfb..b306f2c77d6 100644 --- a/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_cookie_manager_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_cookie_manager_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.3.2 from annotations +// Mocks generated by Mockito 5.4.0 from annotations // in webview_flutter_android/test/legacy/webview_android_cookie_manager_test.dart. // Do not manually edit this file. diff --git a/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart index a81b405efdc..e3364de4b4b 100644 --- a/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart @@ -1,4 +1,4 @@ -// Mocks generated by Mockito 5.3.2 from annotations +// Mocks generated by Mockito 5.4.0 from annotations // in webview_flutter_android/test/legacy/webview_android_widget_test.dart. // Do not manually edit this file. @@ -631,16 +631,6 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); @override - _i5.Future enableContentOffsetChangedListener(bool? enabled) => - (super.noSuchMethod( - Invocation.method( - #enableContentOffsetChangedListener, - [enabled], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - @override _i2.WebView copy() => (super.noSuchMethod( Invocation.method( #copy, 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 125a1a12e24..9372dfbaac8 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 (v9.0.6), do not edit directly. +// Autogenerated from Pigeon (v9.1.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 @@ -19,6 +19,8 @@ import 'package:webview_flutter_android/src/android_webview.g.dart'; /// /// See https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. abstract class TestJavaObjectHostApi { + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void dispose(int identifier); @@ -30,9 +32,12 @@ abstract class TestJavaObjectHostApi { 'dev.flutter.pigeon.JavaObjectHostApi.dispose', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.JavaObjectHostApi.dispose was null.'); final List args = (message as List?)!; @@ -71,6 +76,8 @@ class _TestWebViewHostApiCodec extends StandardMessageCodec { } abstract class TestWebViewHostApi { + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = _TestWebViewHostApiCodec(); void create(int instanceId, bool useHybridComposition); @@ -127,8 +134,6 @@ abstract class TestWebViewHostApi { void setBackgroundColor(int instanceId, int color); - void enableContentOffsetChangedListener(int instanceId, bool enabled); - static void setup(TestWebViewHostApi? api, {BinaryMessenger? binaryMessenger}) { { @@ -136,9 +141,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.create was null.'); final List args = (message as List?)!; @@ -158,9 +166,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.loadData', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.loadData was null.'); final List args = (message as List?)!; @@ -182,9 +193,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.loadDataWithBaseUrl', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.loadDataWithBaseUrl was null.'); final List args = (message as List?)!; @@ -209,9 +223,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.loadUrl', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.loadUrl was null.'); final List args = (message as List?)!; @@ -235,9 +252,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.postUrl', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.postUrl was null.'); final List args = (message as List?)!; @@ -260,9 +280,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.getUrl', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.getUrl was null.'); final List args = (message as List?)!; @@ -279,9 +302,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.canGoBack', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.canGoBack was null.'); final List args = (message as List?)!; @@ -298,9 +324,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.canGoForward', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.canGoForward was null.'); final List args = (message as List?)!; @@ -317,9 +346,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.goBack', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.goBack was null.'); final List args = (message as List?)!; @@ -336,9 +368,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.goForward', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.goForward was null.'); final List args = (message as List?)!; @@ -355,9 +390,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.reload', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.reload was null.'); final List args = (message as List?)!; @@ -374,9 +412,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.clearCache', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.clearCache was null.'); final List args = (message as List?)!; @@ -396,9 +437,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.evaluateJavascript', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.evaluateJavascript was null.'); final List args = (message as List?)!; @@ -419,9 +463,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.getTitle', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.getTitle was null.'); final List args = (message as List?)!; @@ -438,9 +485,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.scrollTo', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.scrollTo was null.'); final List args = (message as List?)!; @@ -463,9 +513,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.scrollBy', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.scrollBy was null.'); final List args = (message as List?)!; @@ -488,9 +541,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.getScrollX', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.getScrollX was null.'); final List args = (message as List?)!; @@ -507,9 +563,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.getScrollY', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.getScrollY was null.'); final List args = (message as List?)!; @@ -526,9 +585,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.getScrollPosition', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.getScrollPosition was null.'); final List args = (message as List?)!; @@ -546,9 +608,12 @@ abstract class TestWebViewHostApi { codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.setWebContentsDebuggingEnabled was null.'); final List args = (message as List?)!; @@ -565,9 +630,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.setWebViewClient', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.setWebViewClient was null.'); final List args = (message as List?)!; @@ -587,9 +655,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.addJavaScriptChannel', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.addJavaScriptChannel was null.'); final List args = (message as List?)!; @@ -610,9 +681,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.removeJavaScriptChannel', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.removeJavaScriptChannel was null.'); final List args = (message as List?)!; @@ -633,9 +707,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.setDownloadListener', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.setDownloadListener was null.'); final List args = (message as List?)!; @@ -653,9 +730,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.setWebChromeClient', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.setWebChromeClient was null.'); final List args = (message as List?)!; @@ -673,9 +753,12 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.setBackgroundColor', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.setBackgroundColor was null.'); final List args = (message as List?)!; @@ -690,33 +773,12 @@ abstract class TestWebViewHostApi { }); } } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebViewHostApi.enableContentOffsetChangedListener', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMockMessageHandler(null); - } else { - channel.setMockMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.enableContentOffsetChangedListener was null.'); - final List args = (message as List?)!; - final int? arg_instanceId = (args[0] as int?); - assert(arg_instanceId != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.enableContentOffsetChangedListener was null, expected non-null int.'); - final bool? arg_enabled = (args[1] as bool?); - assert(arg_enabled != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.enableContentOffsetChangedListener was null, expected non-null bool.'); - api.enableContentOffsetChangedListener(arg_instanceId!, arg_enabled!); - return []; - }); - } - } } } abstract class TestWebSettingsHostApi { + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId, int webViewInstanceId); @@ -754,9 +816,12 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.create was null.'); final List args = (message as List?)!; @@ -776,9 +841,12 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setDomStorageEnabled', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setDomStorageEnabled was null.'); final List args = (message as List?)!; @@ -799,9 +867,12 @@ abstract class TestWebSettingsHostApi { codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically was null.'); final List args = (message as List?)!; @@ -823,9 +894,12 @@ abstract class TestWebSettingsHostApi { codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setSupportMultipleWindows was null.'); final List args = (message as List?)!; @@ -845,9 +919,12 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptEnabled', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptEnabled was null.'); final List args = (message as List?)!; @@ -867,9 +944,12 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setUserAgentString', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setUserAgentString was null.'); final List args = (message as List?)!; @@ -888,9 +968,12 @@ abstract class TestWebSettingsHostApi { codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture was null.'); final List args = (message as List?)!; @@ -911,9 +994,12 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setSupportZoom', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setSupportZoom was null.'); final List args = (message as List?)!; @@ -934,9 +1020,12 @@ abstract class TestWebSettingsHostApi { codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setLoadWithOverviewMode was null.'); final List args = (message as List?)!; @@ -956,9 +1045,12 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setUseWideViewPort', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setUseWideViewPort was null.'); final List args = (message as List?)!; @@ -978,9 +1070,12 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setDisplayZoomControls', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setDisplayZoomControls was null.'); final List args = (message as List?)!; @@ -1000,9 +1095,12 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setBuiltInZoomControls', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setBuiltInZoomControls was null.'); final List args = (message as List?)!; @@ -1022,9 +1120,12 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setAllowFileAccess', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setAllowFileAccess was null.'); final List args = (message as List?)!; @@ -1044,9 +1145,12 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setTextZoom', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setTextZoom was null.'); final List args = (message as List?)!; @@ -1065,6 +1169,8 @@ abstract class TestWebSettingsHostApi { } abstract class TestJavaScriptChannelHostApi { + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId, String channelName); @@ -1076,9 +1182,12 @@ abstract class TestJavaScriptChannelHostApi { 'dev.flutter.pigeon.JavaScriptChannelHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.JavaScriptChannelHostApi.create was null.'); final List args = (message as List?)!; @@ -1097,6 +1206,8 @@ abstract class TestJavaScriptChannelHostApi { } abstract class TestWebViewClientHostApi { + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); @@ -1111,9 +1222,12 @@ abstract class TestWebViewClientHostApi { 'dev.flutter.pigeon.WebViewClientHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewClientHostApi.create was null.'); final List args = (message as List?)!; @@ -1131,9 +1245,12 @@ abstract class TestWebViewClientHostApi { codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading was null.'); final List args = (message as List?)!; @@ -1153,6 +1270,8 @@ abstract class TestWebViewClientHostApi { } abstract class TestDownloadListenerHostApi { + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); @@ -1164,9 +1283,12 @@ abstract class TestDownloadListenerHostApi { 'dev.flutter.pigeon.DownloadListenerHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.DownloadListenerHostApi.create was null.'); final List args = (message as List?)!; @@ -1182,6 +1304,8 @@ abstract class TestDownloadListenerHostApi { } abstract class TestWebChromeClientHostApi { + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); @@ -1196,9 +1320,12 @@ abstract class TestWebChromeClientHostApi { 'dev.flutter.pigeon.WebChromeClientHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebChromeClientHostApi.create was null.'); final List args = (message as List?)!; @@ -1216,9 +1343,12 @@ abstract class TestWebChromeClientHostApi { codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser was null.'); final List args = (message as List?)!; @@ -1238,6 +1368,8 @@ abstract class TestWebChromeClientHostApi { } abstract class TestAssetManagerHostApi { + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); List list(String path); @@ -1251,9 +1383,12 @@ abstract class TestAssetManagerHostApi { 'dev.flutter.pigeon.FlutterAssetManagerHostApi.list', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.FlutterAssetManagerHostApi.list was null.'); final List args = (message as List?)!; @@ -1271,9 +1406,12 @@ abstract class TestAssetManagerHostApi { codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.FlutterAssetManagerHostApi.getAssetFilePathByName was null.'); final List args = (message as List?)!; @@ -1289,6 +1427,8 @@ abstract class TestAssetManagerHostApi { } abstract class TestWebStorageHostApi { + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); @@ -1302,9 +1442,12 @@ abstract class TestWebStorageHostApi { 'dev.flutter.pigeon.WebStorageHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebStorageHostApi.create was null.'); final List args = (message as List?)!; @@ -1321,9 +1464,12 @@ abstract class TestWebStorageHostApi { 'dev.flutter.pigeon.WebStorageHostApi.deleteAllData', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, 'Argument for dev.flutter.pigeon.WebStorageHostApi.deleteAllData was null.'); final List args = (message as List?)!; From 5a80183660786d97915275ec24d2a753ff971f72 Mon Sep 17 00:00:00 2001 From: TheVinhLuong Date: Fri, 14 Apr 2023 17:42:38 +0700 Subject: [PATCH 03/20] Fixup based on code review --- .../GeneratedAndroidWebView.java | 2 +- .../webviewflutter/WebViewFlutterApiImpl.java | 12 +- .../webviewflutter/WebViewHostApiImpl.java | 14 +- .../plugins/webviewflutter/WebViewTest.java | 8 +- .../example/android/build.gradle | 2 +- .../webview_flutter_test.dart | 31 ++- .../lib/src/android_proxy.dart | 22 +- .../lib/src/android_webview.dart | 9 +- .../lib/src/android_webview_controller.dart | 32 ++- .../src/legacy/webview_android_widget.dart | 18 +- .../test/android_webview_controller_test.dart | 36 +--- ...android_webview_controller_test.mocks.dart | 191 ++++++++---------- .../test/android_webview_test.mocks.dart | 9 - .../webview_android_widget_test.mocks.dart | 27 +-- .../test/test_android_webview.g.dart | 9 +- 15 files changed, 203 insertions(+), 219 deletions(-) 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 fbce38e5909..3da318477c0 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 @@ -496,7 +496,7 @@ static void setup(BinaryMessenger binaryMessenger, InstanceManagerHostApi api) { try { api.clear(); wrapped.add(0, null); - } catch (Error | RuntimeException exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java index bb80544bd63..445516473b9 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java @@ -17,7 +17,11 @@ *

This class may handle adding native instances that are attached to a Dart instance or passing * arguments of callbacks methods to a Dart instance. */ -public class WebViewFlutterApiImpl extends WebViewFlutterApi { +public class WebViewFlutterApiImpl { + // To ease adding additional methods, this value is added prematurely. + @SuppressWarnings({"unused", "FieldCanBeLocal"}) + private final BinaryMessenger binaryMessenger; + private final InstanceManager instanceManager; private WebViewFlutterApi api; @@ -29,7 +33,7 @@ public class WebViewFlutterApiImpl extends WebViewFlutterApi { */ public WebViewFlutterApiImpl( @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - super(binaryMessenger); + this.binaryMessenger = binaryMessenger; this.instanceManager = instanceManager; api = new WebViewFlutterApi(binaryMessenger); } @@ -54,13 +58,13 @@ void setApi(@NonNull WebViewFlutterApi api) { this.api = api; } - public void onScrollPosChange( + public void onScrollChanged( @NonNull WebView instance, @NonNull Long xArg, @NonNull Long yArg, @NonNull Long oldXArg, @NonNull Long oldYArg, - Reply callback) { + WebViewFlutterApi.Reply callback) { api.onScrollPosChange( Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(instance)), xArg, diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java index 3d406c1295d..3a81c474ee3 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java @@ -19,7 +19,6 @@ import io.flutter.embedding.android.FlutterView; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugin.platform.PlatformView; -import io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewFlutterApi; import io.flutter.plugins.webviewflutter.GeneratedAndroidWebView.WebViewHostApi; import java.util.Map; import java.util.Objects; @@ -166,9 +165,9 @@ public WebChromeClient getWebChromeClient() { @Override protected void onScrollChanged(int l, int t, int oldL, int oldT) { - webViewFlutterApi.onScrollPosChange( - this, (long) l, (long) t, (long) oldL, (long) oldT, reply -> {}); super.onScrollChanged(l, t, oldL, oldT); + webViewFlutterApi.onScrollChanged( + this, (long) l, (long) t, (long) oldL, (long) oldT, reply -> {}); } } @@ -181,7 +180,6 @@ public static class InputAwareWebViewPlatformView extends InputAwareWebView implements PlatformView { private WebViewClient currentWebViewClient; private WebChromeClientHostApiImpl.SecureWebChromeClient currentWebChromeClient; - private final WebViewFlutterApiImpl webViewFlutterApi; /** * Creates a {@link InputAwareWebViewPlatformView}. @@ -196,7 +194,6 @@ public InputAwareWebViewPlatformView( super(context, containerView); currentWebViewClient = new WebViewClient(); currentWebChromeClient = new WebChromeClientHostApiImpl.SecureWebChromeClient(); - webViewFlutterApi = new WebViewFlutterApiImpl(binaryMessenger, instanceManager); setWebViewClient(currentWebViewClient); setWebChromeClient(currentWebChromeClient); @@ -249,13 +246,6 @@ public void setWebChromeClient(WebChromeClient client) { currentWebChromeClient = (WebChromeClientHostApiImpl.SecureWebChromeClient) client; currentWebChromeClient.setWebViewClient(currentWebViewClient); } - - @Override - protected void onScrollChanged(int l, int t, int oldL, int oldT) { - webViewFlutterApi.onScrollPosChange( - this, (long) l, (long) t, (long) oldL, (long) oldT, reply -> {}); - super.onScrollChanged(l, t, oldL, oldT); - } } /** diff --git a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java index 199d6914a21..03cddc32be0 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java @@ -361,18 +361,18 @@ public void onScrollPosChange() { final InstanceManager instanceManager = InstanceManager.open(identifier -> {}); final WebViewFlutterApiImpl flutterApiImpl = - new WebViewFlutterApiImpl(mockBinaryMessenger, instanceManager); + new WebViewFlutterApiImpl(mockBinaryMessenger, instanceManager); final WebViewFlutterApi mockFlutterApi = mock(WebViewFlutterApi.class); flutterApiImpl.setApi(mockFlutterApi); flutterApiImpl.create(mockWebView, reply -> {}); - flutterApiImpl.onScrollPosChange(mockWebView, 0L, 1L, 2L, 3L, reply -> {}); + flutterApiImpl.onScrollChanged(mockWebView, 0L, 1L, 2L, 3L, reply -> {}); final long instanceIdentifier = - Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockWebView)); + Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockWebView)); verify(mockFlutterApi) - .onScrollPosChange(eq(instanceIdentifier), eq(0L), eq(1L), eq(2L), eq(3L), any()); + .onScrollPosChange(eq(instanceIdentifier), eq(0L), eq(1L), eq(2L), eq(3L), any()); instanceManager.close(); } 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 ca118fdb964..614573a9fb8 100644 --- a/packages/webview_flutter/webview_flutter_android/example/android/build.gradle +++ b/packages/webview_flutter/webview_flutter_android/example/android/build.gradle @@ -24,7 +24,7 @@ subprojects { project.evaluationDependsOn(':app') } -task clean(type: Delete) { +tasks.register("clean", Delete) { delete rootProject.buildDir } diff --git a/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart index 4ec7ae829e6..4cb6c40fc99 100644 --- a/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart @@ -657,7 +657,8 @@ Future main() async { }); group('Programmatic Scroll', () { - testWidgets('setAndGetScrollPosition', (WidgetTester tester) async { + testWidgets('setAndGetAndListenScrollPosition', + (WidgetTester tester) async { const String scrollTestPage = ''' @@ -683,6 +684,7 @@ Future main() async { base64Encode(const Utf8Encoder().convert(scrollTestPage)); final Completer pageLoaded = Completer(); + Completer> offsetsCompleter = Completer>(); final PlatformWebViewController controller = PlatformWebViewController( const PlatformWebViewControllerCreationParams(), ) @@ -698,7 +700,11 @@ Future main() async { 'data:text/html;charset=utf-8;base64,$scrollTestPageBase64', ), ), - ); + ) + ..setOnContentOffsetChanged( + (int left, int top, int oldLeft, int oldTop) { + offsetsCompleter.complete([left, top, oldLeft, oldTop]); + }); await tester.pumpWidget(Builder( builder: (BuildContext context) { @@ -727,12 +733,17 @@ Future main() async { scrollPos = await controller.getScrollPosition(); expect(scrollPos.dx, X_SCROLL); expect(scrollPos.dy, Y_SCROLL); + expect( + offsetsCompleter.future, completion([X_SCROLL, Y_SCROLL, 0, 0])); // Check scrollBy() (on top of scrollTo()) + offsetsCompleter = Completer>(); await controller.scrollBy(X_SCROLL, Y_SCROLL); scrollPos = await controller.getScrollPosition(); expect(scrollPos.dx, X_SCROLL * 2); expect(scrollPos.dy, Y_SCROLL * 2); + expect(offsetsCompleter.future, + completion([X_SCROLL * 2, Y_SCROLL * 2, X_SCROLL, Y_SCROLL])); }); }); @@ -1124,6 +1135,22 @@ Future main() async { ); }, ); + + // testWidgets('On Content Offset Listener', (WidgetTester tester) async { + // final PlatformWebViewController controller = PlatformWebViewController( + // const PlatformWebViewControllerCreationParams(), + // ); + // final Completer> offsetCompleter = Completer>(); + // controller.setOnContentOffsetChanged((left, top, oldLeft, oldTop) { + // offsetCompleter.complete([left, top, oldLeft, oldTop]); + // }); + // + // await tester.pumpWidget(widget); + // + // await controller.runJavaScript('Echo.postMessage("hello");'); + // await expectLater(channelCompleter.future, completion('hello')); + // + // }); } /// Returns the value used for the HTTP User-Agent: request header in subsequent HTTP requests. diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart index 9437e9dd3eb..d8f6c1e6101 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart @@ -29,9 +29,10 @@ class AndroidWebViewProxy { /// Due to changes in Flutter 3.0 the [useHybridComposition] doesn't have /// any effect and should not be exposed publicly. More info here: /// https://github.com/flutter/flutter/issues/108106 - final android_webview.WebView Function({ - required bool useHybridComposition, - }) createAndroidWebView; + final android_webview.WebView Function( + {required bool useHybridComposition, + required Function(int left, int top, int oldLeft, int oldTop)? + onScrollChanged}) createAndroidWebView; /// Constructs a [android_webview.WebChromeClient]. final android_webview.WebChromeClient Function({ @@ -40,8 +41,7 @@ class AndroidWebViewProxy { Future> Function( android_webview.WebView webView, android_webview.FileChooserParams params, - )? - onShowFileChooser, + )? onShowFileChooser, }) createAndroidWebChromeClient; /// Constructs a [android_webview.WebViewClient]. @@ -52,21 +52,18 @@ class AndroidWebViewProxy { android_webview.WebView webView, android_webview.WebResourceRequest request, android_webview.WebResourceError error, - )? - onReceivedRequestError, + )? onReceivedRequestError, @Deprecated('Only called on Android version < 23.') void Function( android_webview.WebView webView, int errorCode, String description, String failingUrl, - )? - onReceivedError, + )? onReceivedError, void Function( android_webview.WebView webView, android_webview.WebResourceRequest request, - )? - requestLoading, + )? requestLoading, void Function(android_webview.WebView webView, String url)? urlLoading, }) createAndroidWebViewClient; @@ -88,8 +85,7 @@ class AndroidWebViewProxy { String contentDisposition, String mimetype, int contentLength, - ) - onDownloadStart, + ) onDownloadStart, }) createDownloadListener; /// Enables debugging of web contents (HTML / CSS / JavaScript) loaded into any WebViews of this application. diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart index 3476329f2ad..195a27eb1f2 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart @@ -63,10 +63,6 @@ class JavaObject with Copyable { } } -/// Signature for the `onScrollChanged` callback responsible for listening to scroll's offset changed events. -typedef ScrollChangedCallback = void Function( - int left, int top, int oldLeft, int oldTop); - /// An Android View that displays web pages. /// /// **Basic usage** @@ -94,6 +90,7 @@ class WebView extends JavaObject { /// https://github.com/flutter/flutter/issues/108106 WebView({ this.useHybridComposition = false, + this.onScrollChanged, @visibleForTesting super.binaryMessenger, @visibleForTesting super.instanceManager, }) : super.detached() { @@ -107,6 +104,7 @@ class WebView extends JavaObject { @protected WebView.detached({ this.useHybridComposition = false, + this.onScrollChanged, super.binaryMessenger, super.instanceManager, }) : super.detached(); @@ -130,7 +128,7 @@ class WebView extends JavaObject { late final WebSettings settings = WebSettings(this); /// The [ScrollChangedCallback] object used to listen for scroll changed events. - late ScrollChangedCallback? onScrollChanged; + final Function(int left, int top, int oldLeft, int oldTop)? onScrollChanged; /// Enables debugging of web contents (HTML / CSS / JavaScript) loaded into any WebViews of this application. /// @@ -421,6 +419,7 @@ class WebView extends JavaObject { WebView copy() { return WebView.detached( useHybridComposition: useHybridComposition, + onScrollChanged: onScrollChanged, binaryMessenger: _api.binaryMessenger, instanceManager: _api.instanceManager, ); diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart index d2c63060e9f..05ec6e072e4 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart @@ -44,7 +44,8 @@ class AndroidWebViewControllerCreationParams PlatformWebViewControllerCreationParams params, { @visibleForTesting AndroidWebViewProxy androidWebViewProxy = const AndroidWebViewProxy(), - @visibleForTesting android_webview.WebStorage? androidWebStorage, + @visibleForTesting + android_webview.WebStorage? androidWebStorage, }) { return AndroidWebViewControllerCreationParams( androidWebViewProxy: androidWebViewProxy, @@ -88,12 +89,21 @@ class AndroidWebViewController extends PlatformWebViewController { /// The native [android_webview.WebView] being controlled. late final android_webview.WebView _webView = _androidWebViewParams.androidWebViewProxy.createAndroidWebView( - // Due to changes in Flutter 3.0 the `useHybridComposition` doesn't have - // any effect and is purposefully not exposed publicly by the - // [AndroidWebViewController]. More info here: - // https://github.com/flutter/flutter/issues/108106 - useHybridComposition: true, - ); + // Due to changes in Flutter 3.0 the `useHybridComposition` doesn't have + // any effect and is purposefully not exposed publicly by the + // [AndroidWebViewController]. More info here: + // https://github.com/flutter/flutter/issues/108106 + useHybridComposition: true, + onScrollChanged: withWeakReferenceTo(this, + (WeakReference weakReference) { + return (int l, int t, int oldL, int oldT) async { + if (weakReference.target?._onContentOffsetChangedCallback != + null) { + return weakReference.target!._onContentOffsetChangedCallback!( + l, t, oldL, oldT); + } + }; + })); late final android_webview.WebChromeClient _webChromeClient = _androidWebViewParams.androidWebViewProxy.createAndroidWebChromeClient( @@ -133,6 +143,9 @@ class AndroidWebViewController extends PlatformWebViewController { Future> Function(FileSelectorParams)? _onShowFileSelectorCallback; + Function(int left, int top, int oldLeft, int oldTop)? + _onContentOffsetChangedCallback; + /// Whether to enable the platform's webview content debugging tools. /// /// Defaults to false. @@ -354,7 +367,7 @@ class AndroidWebViewController extends PlatformWebViewController { Future setOnContentOffsetChanged( void Function(int left, int top, int oldLeft, int oldTop)? onOffsetChange) async { - _webView.onScrollChanged = onOffsetChange; + _onContentOffsetChangedCallback = onOffsetChange; } /// Sets the restrictions that apply on automatic media playback. @@ -502,7 +515,8 @@ class AndroidWebViewWidgetCreationParams super.layoutDirection, super.gestureRecognizers, this.displayWithHybridComposition = false, - @visibleForTesting InstanceManager? instanceManager, + @visibleForTesting + InstanceManager? instanceManager, @visibleForTesting this.platformViewsServiceProxy = const PlatformViewsServiceProxy(), }) : instanceManager = diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/legacy/webview_android_widget.dart b/packages/webview_flutter/webview_flutter_android/lib/src/legacy/webview_android_widget.dart index c5ac6820ae6..8504253cd92 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/legacy/webview_android_widget.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/legacy/webview_android_widget.dart @@ -23,10 +23,12 @@ class WebViewAndroidWidget extends StatefulWidget { required this.callbacksHandler, required this.javascriptChannelRegistry, required this.onBuildWidget, - @visibleForTesting this.webViewProxy = const WebViewProxy(), + @visibleForTesting + this.webViewProxy = const WebViewProxy(), @visibleForTesting this.flutterAssetManager = const android_webview.FlutterAssetManager(), - @visibleForTesting this.webStorage, + @visibleForTesting + this.webStorage, }); /// Initial parameters used to setup the WebView. @@ -101,10 +103,12 @@ class WebViewAndroidPlatformController extends WebViewPlatformController { required CreationParams creationParams, required this.callbacksHandler, required this.javascriptChannelRegistry, - @visibleForTesting this.webViewProxy = const WebViewProxy(), + @visibleForTesting + this.webViewProxy = const WebViewProxy(), @visibleForTesting this.flutterAssetManager = const android_webview.FlutterAssetManager(), - @visibleForTesting android_webview.WebStorage? webStorage, + @visibleForTesting + android_webview.WebStorage? webStorage, }) : webStorage = webStorage ?? android_webview.WebStorage.instance, assert(creationParams.webSettings?.hasNavigationDelegate != null), super(callbacksHandler) { @@ -640,15 +644,13 @@ class WebViewProxy { android_webview.WebView webView, android_webview.WebResourceRequest request, android_webview.WebResourceError error, - )? - onReceivedRequestError, + )? onReceivedRequestError, void Function( android_webview.WebView webView, int errorCode, String description, String failingUrl, - )? - onReceivedError, + )? onReceivedError, void Function(android_webview.WebView webView, android_webview.WebResourceRequest request)? requestLoading, diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart index 0e51d2c799c..951a6ebd0c7 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart @@ -57,10 +57,8 @@ void main() { Future> Function( android_webview.WebView webView, android_webview.FileChooserParams params, - )? - onShowFileChooser, - })? - createWebChromeClient, + )? onShowFileChooser, + })? createWebChromeClient, android_webview.WebView? mockWebView, android_webview.WebViewClient? mockWebViewClient, android_webview.WebStorage? mockWebStorage, @@ -80,11 +78,13 @@ void main() { Future> Function( android_webview.WebView webView, android_webview.FileChooserParams params, - )? - onShowFileChooser, + )? onShowFileChooser, }) => MockWebChromeClient(), - createAndroidWebView: ({required bool useHybridComposition}) => + createAndroidWebView: ( + {required bool useHybridComposition, + required dynamic Function(int, int, int, int)? + onScrollChanged}) => nonNullMockWebView, createAndroidWebViewClient: ({ void Function(android_webview.WebView webView, String url)? @@ -97,19 +97,16 @@ void main() { int errorCode, String description, String failingUrl, - )? - onReceivedError, + )? onReceivedError, void Function( android_webview.WebView webView, android_webview.WebResourceRequest request, android_webview.WebResourceError error, - )? - onReceivedRequestError, + )? onReceivedRequestError, void Function( android_webview.WebView webView, android_webview.WebResourceRequest request, - )? - requestLoading, + )? requestLoading, void Function(android_webview.WebView webView, String url)? urlLoading, }) => @@ -570,8 +567,7 @@ void main() { Future> Function( android_webview.WebView webView, android_webview.FileChooserParams params, - )? - onShowFileChooser, + )? onShowFileChooser, }) { onShowFileChooserCallback = onShowFileChooser!; return mockWebChromeClient; @@ -875,16 +871,6 @@ void main() { verify(mockWebView.settings).called(1); verify(mockSettings.setUserAgentString('Test Framework')).called(1); }); - - test('setScrollListener', () async { - final MockWebView mockWebView = MockWebView(); - final AndroidWebViewController controller = createControllerWithMocks( - mockWebView: mockWebView, - ); - await controller.setOnContentOffsetChanged( - (int left, int top, int oldLeft, int oldTop) {}); - await controller.setOnContentOffsetChanged(null); - }); }); test('setMediaPlaybackRequiresUserGesture', () async { 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 b59b4607a10..7e7c3243897 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 @@ -658,12 +658,11 @@ class MockAndroidWebViewController extends _i1.Mock @override _i9.Future setOnContentOffsetChanged( void Function( - int, - int, - int, - int, - )? - onOffsetChange) => + int, + int, + int, + int, + )? onOffsetChange) => (super.noSuchMethod( Invocation.method( #setOnContentOffsetChanged, @@ -711,45 +710,72 @@ class MockAndroidWebViewController extends _i1.Mock class MockAndroidWebViewProxy extends _i1.Mock implements _i10.AndroidWebViewProxy { @override - _i2.WebView Function({required bool useHybridComposition}) - get createAndroidWebView => (super.noSuchMethod( - Invocation.getter(#createAndroidWebView), - returnValue: ({required bool useHybridComposition}) => - _FakeWebView_7( - this, - Invocation.getter(#createAndroidWebView), - ), - returnValueForMissingStub: ({required bool useHybridComposition}) => - _FakeWebView_7( - this, - Invocation.getter(#createAndroidWebView), - ), - ) as _i2.WebView Function({required bool useHybridComposition})); + _i2.WebView Function({ + required dynamic Function( + int, + int, + int, + int, + )? onScrollChanged, + required bool useHybridComposition, + }) get createAndroidWebView => (super.noSuchMethod( + Invocation.getter(#createAndroidWebView), + returnValue: ({ + required dynamic Function( + int, + int, + int, + int, + )? onScrollChanged, + required bool useHybridComposition, + }) => + _FakeWebView_7( + this, + Invocation.getter(#createAndroidWebView), + ), + returnValueForMissingStub: ({ + required dynamic Function( + int, + int, + int, + int, + )? onScrollChanged, + required bool useHybridComposition, + }) => + _FakeWebView_7( + this, + Invocation.getter(#createAndroidWebView), + ), + ) as _i2.WebView Function({ + required dynamic Function( + int, + int, + int, + int, + )? onScrollChanged, + required bool useHybridComposition, + })); @override _i2.WebChromeClient Function({ void Function( _i2.WebView, int, - )? - onProgressChanged, + )? onProgressChanged, _i9.Future> Function( _i2.WebView, _i2.FileChooserParams, - )? - onShowFileChooser, + )? onShowFileChooser, }) get createAndroidWebChromeClient => (super.noSuchMethod( Invocation.getter(#createAndroidWebChromeClient), returnValue: ({ void Function( _i2.WebView, int, - )? - onProgressChanged, + )? onProgressChanged, _i9.Future> Function( _i2.WebView, _i2.FileChooserParams, - )? - onShowFileChooser, + )? onShowFileChooser, }) => _FakeWebChromeClient_0( this, @@ -759,13 +785,11 @@ class MockAndroidWebViewProxy extends _i1.Mock void Function( _i2.WebView, int, - )? - onProgressChanged, + )? onProgressChanged, _i9.Future> Function( _i2.WebView, _i2.FileChooserParams, - )? - onShowFileChooser, + )? onShowFileChooser, }) => _FakeWebChromeClient_0( this, @@ -775,85 +799,71 @@ class MockAndroidWebViewProxy extends _i1.Mock void Function( _i2.WebView, int, - )? - onProgressChanged, + )? onProgressChanged, _i9.Future> Function( _i2.WebView, _i2.FileChooserParams, - )? - onShowFileChooser, + )? onShowFileChooser, })); @override _i2.WebViewClient Function({ void Function( _i2.WebView, String, - )? - onPageFinished, + )? onPageFinished, void Function( _i2.WebView, String, - )? - onPageStarted, + )? onPageStarted, void Function( _i2.WebView, int, String, String, - )? - onReceivedError, + )? onReceivedError, void Function( _i2.WebView, _i2.WebResourceRequest, _i2.WebResourceError, - )? - onReceivedRequestError, + )? onReceivedRequestError, void Function( _i2.WebView, _i2.WebResourceRequest, - )? - requestLoading, + )? requestLoading, void Function( _i2.WebView, String, - )? - urlLoading, + )? urlLoading, }) get createAndroidWebViewClient => (super.noSuchMethod( Invocation.getter(#createAndroidWebViewClient), returnValue: ({ void Function( _i2.WebView, String, - )? - onPageFinished, + )? onPageFinished, void Function( _i2.WebView, String, - )? - onPageStarted, + )? onPageStarted, void Function( _i2.WebView, int, String, String, - )? - onReceivedError, + )? onReceivedError, void Function( _i2.WebView, _i2.WebResourceRequest, _i2.WebResourceError, - )? - onReceivedRequestError, + )? onReceivedRequestError, void Function( _i2.WebView, _i2.WebResourceRequest, - )? - requestLoading, + )? requestLoading, void Function( _i2.WebView, String, - )? - urlLoading, + )? urlLoading, }) => _FakeWebViewClient_1( this, @@ -863,36 +873,30 @@ class MockAndroidWebViewProxy extends _i1.Mock void Function( _i2.WebView, String, - )? - onPageFinished, + )? onPageFinished, void Function( _i2.WebView, String, - )? - onPageStarted, + )? onPageStarted, void Function( _i2.WebView, int, String, String, - )? - onReceivedError, + )? onReceivedError, void Function( _i2.WebView, _i2.WebResourceRequest, _i2.WebResourceError, - )? - onReceivedRequestError, + )? onReceivedRequestError, void Function( _i2.WebView, _i2.WebResourceRequest, - )? - requestLoading, + )? requestLoading, void Function( _i2.WebView, String, - )? - urlLoading, + )? urlLoading, }) => _FakeWebViewClient_1( this, @@ -902,36 +906,30 @@ class MockAndroidWebViewProxy extends _i1.Mock void Function( _i2.WebView, String, - )? - onPageFinished, + )? onPageFinished, void Function( _i2.WebView, String, - )? - onPageStarted, + )? onPageStarted, void Function( _i2.WebView, int, String, String, - )? - onReceivedError, + )? onReceivedError, void Function( _i2.WebView, _i2.WebResourceRequest, _i2.WebResourceError, - )? - onReceivedRequestError, + )? onReceivedRequestError, void Function( _i2.WebView, _i2.WebResourceRequest, - )? - requestLoading, + )? requestLoading, void Function( _i2.WebView, String, - )? - urlLoading, + )? urlLoading, })); @override _i2.FlutterAssetManager Function() get createFlutterAssetManager => @@ -980,8 +978,7 @@ class MockAndroidWebViewProxy extends _i1.Mock String, String, int, - ) - onDownloadStart}) get createDownloadListener => (super.noSuchMethod( + ) onDownloadStart}) get createDownloadListener => (super.noSuchMethod( Invocation.getter(#createDownloadListener), returnValue: ( {required void Function( @@ -990,8 +987,7 @@ class MockAndroidWebViewProxy extends _i1.Mock String, String, int, - ) - onDownloadStart}) => + ) onDownloadStart}) => _FakeDownloadListener_2( this, Invocation.getter(#createDownloadListener), @@ -1003,8 +999,7 @@ class MockAndroidWebViewProxy extends _i1.Mock String, String, int, - ) - onDownloadStart}) => + ) onDownloadStart}) => _FakeDownloadListener_2( this, Invocation.getter(#createDownloadListener), @@ -1016,8 +1011,7 @@ class MockAndroidWebViewProxy extends _i1.Mock String, String, int, - ) - onDownloadStart})); + ) onDownloadStart})); @override _i9.Future setWebContentsDebuggingEnabled(bool? enabled) => (super.noSuchMethod( @@ -1090,8 +1084,8 @@ class MockAndroidWebViewWidgetCreationParams extends _i1.Mock (super.noSuchMethod( Invocation.getter(#gestureRecognizers), returnValue: <_i11.Factory<_i12.OneSequenceGestureRecognizer>>{}, - returnValueForMissingStub: < - _i11.Factory<_i12.OneSequenceGestureRecognizer>>{}, + returnValueForMissingStub: <_i11 + .Factory<_i12.OneSequenceGestureRecognizer>>{}, ) as Set<_i11.Factory<_i12.OneSequenceGestureRecognizer>>); } @@ -1829,15 +1823,6 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), ) as _i2.WebSettings); @override - set onScrollChanged(_i2.ScrollChangedCallback? _onScrollChanged) => - super.noSuchMethod( - Invocation.setter( - #onScrollChanged, - _onScrollChanged, - ), - returnValueForMissingStub: null, - ); - @override _i9.Future loadData({ required String? data, String? mimeType, diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart index fa2c634158c..43eda09c429 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart @@ -1049,15 +1049,6 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), ) as _i2.WebSettings); @override - set onScrollChanged(_i2.ScrollChangedCallback? _onScrollChanged) => - super.noSuchMethod( - Invocation.setter( - #onScrollChanged, - _onScrollChanged, - ), - returnValueForMissingStub: null, - ); - @override _i5.Future loadData({ required String? data, String? mimeType, diff --git a/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart index e3364de4b4b..0588a0b0d7f 100644 --- a/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart @@ -348,15 +348,6 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), ) as _i2.WebSettings); @override - set onScrollChanged(_i2.ScrollChangedCallback? _onScrollChanged) => - super.noSuchMethod( - Invocation.setter( - #onScrollChanged, - _onScrollChanged, - ), - returnValueForMissingStub: null, - ); - @override _i5.Future loadData({ required String? data, String? mimeType, @@ -971,36 +962,30 @@ class MockWebViewProxy extends _i1.Mock implements _i7.WebViewProxy { void Function( _i2.WebView, String, - )? - onPageStarted, + )? onPageStarted, void Function( _i2.WebView, String, - )? - onPageFinished, + )? onPageFinished, void Function( _i2.WebView, _i2.WebResourceRequest, _i2.WebResourceError, - )? - onReceivedRequestError, + )? onReceivedRequestError, void Function( _i2.WebView, int, String, String, - )? - onReceivedError, + )? onReceivedError, void Function( _i2.WebView, _i2.WebResourceRequest, - )? - requestLoading, + )? requestLoading, void Function( _i2.WebView, String, - )? - urlLoading, + )? urlLoading, }) => (super.noSuchMethod( Invocation.method( 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 3803a641016..28409512c3b 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 @@ -15,6 +15,8 @@ import 'package:webview_flutter_android/src/android_webview.g.dart'; /// Host API for managing the native `InstanceManager`. abstract class TestInstanceManagerHostApi { + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); /// Clear the native `InstanceManager`. @@ -29,9 +31,12 @@ abstract class TestInstanceManagerHostApi { 'dev.flutter.pigeon.InstanceManagerHostApi.clear', codec, binaryMessenger: binaryMessenger); if (api == null) { - channel.setMockMessageHandler(null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - channel.setMockMessageHandler((Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { // ignore message api.clear(); return []; From e6a5c550de8fe22aed573335b4a1fdaa1a7ed36c Mon Sep 17 00:00:00 2001 From: TheVinhLuong Date: Sat, 29 Apr 2023 19:53:34 +0700 Subject: [PATCH 04/20] Resolve conflict --- .../GeneratedAndroidWebView.java | 19 +++++++- .../webviewflutter/WebViewFlutterApiImpl.java | 2 +- .../webviewflutter/WebViewHostApiImpl.java | 4 +- .../plugins/webviewflutter/WebViewTest.java | 4 +- .../lib/src/android_proxy.dart | 5 +- .../lib/src/android_webview.g.dart | 37 +++++++++++++- .../lib/src/android_webview_controller.dart | 18 ++++--- .../test/android_webview_controller_test.dart | 6 +-- ...android_webview_controller_test.mocks.dart | 48 +++++++++++++++++-- .../test/test_android_webview.g.dart | 2 +- .../lib/src/platform_webview_controller.dart | 2 +- 11 files changed, 119 insertions(+), 28 deletions(-) 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 a9dc42f4010..ba9812ce3f8 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 (v9.2.4), do not edit directly. +// Autogenerated from Pigeon (v9.2.5), do not edit directly. // See also: https://pub.dev/packages/pigeon package io.flutter.plugins.webviewflutter; @@ -1501,6 +1501,23 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); } + + public void onScrollPosChange( + @NonNull Long webViewInstanceIdArg, + @NonNull Long xArg, + @NonNull Long yArg, + @NonNull Long oldXArg, + @NonNull Long oldYArg, + @NonNull Reply callback) { + BasicMessageChannel channel = + new BasicMessageChannel<>( + binaryMessenger, + "dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange", + getCodec()); + channel.send( + new ArrayList(Arrays.asList(webViewInstanceIdArg, xArg, yArg, oldXArg, oldYArg)), + channelReply -> callback.reply(null)); + } } /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface WebSettingsHostApi { diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java index 445516473b9..efea2bf0b4b 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java @@ -64,7 +64,7 @@ public void onScrollChanged( @NonNull Long yArg, @NonNull Long oldXArg, @NonNull Long oldYArg, - WebViewFlutterApi.Reply callback) { + @NonNull WebViewFlutterApi.Reply callback) { api.onScrollPosChange( Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(instance)), xArg, diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java index eb2bb145c17..01f1520b779 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java @@ -159,8 +159,8 @@ public WebChromeClient getWebChromeClient() { @Override protected void onScrollChanged(int l, int t, int oldL, int oldT) { super.onScrollChanged(l, t, oldL, oldT); - webViewFlutterApi.onScrollChanged( - this, (long) l, (long) t, (long) oldL, (long) oldT, reply -> {}); + api.onScrollChanged( + this, (long) l, (long) t, (long) oldL, (long) oldT, reply -> {}); } /** diff --git a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java index f2441402522..329bfe269f8 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java @@ -359,7 +359,7 @@ public void setImportantForAutofillForParentFlutterView() { @Test public void onScrollPosChange() { - final InstanceManager instanceManager = InstanceManager.open(identifier -> {}); + final InstanceManager instanceManager = InstanceManager.create(identifier -> {}); final WebViewFlutterApiImpl flutterApiImpl = new WebViewFlutterApiImpl(mockBinaryMessenger, instanceManager); @@ -375,6 +375,6 @@ public void onScrollPosChange() { verify(mockFlutterApi) .onScrollPosChange(eq(instanceIdentifier), eq(0L), eq(1L), eq(2L), eq(3L), any()); - instanceManager.close(); + instanceManager.stopFinalizationListener(); } } diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart index fb84f60ef9f..80a705cccda 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart @@ -25,8 +25,9 @@ class AndroidWebViewProxy { }); /// Constructs a [android_webview.WebView]. - final android_webview.WebView Function(required Function(int left, int top, int oldLeft, int oldTop)? - onScrollChanged) createAndroidWebView; + final android_webview.WebView Function( + {Function(int left, int top, int oldLeft, int oldTop)? + onScrollChanged}) createAndroidWebView; /// Constructs a [android_webview.WebChromeClient]. final android_webview.WebChromeClient Function({ 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 7488cd86337..0fb5bb25d71 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,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 (v9.2.4), do not edit directly. +// Autogenerated from Pigeon (v9.2.5), 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 @@ -992,6 +992,9 @@ abstract class WebViewFlutterApi { /// Create a new Dart instance and add it to the `InstanceManager`. void create(int identifier); + void onScrollPosChange( + int webViewInstanceId, int x, int y, int oldX, int oldY); + static void setup(WebViewFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { @@ -1013,6 +1016,38 @@ abstract class WebViewFlutterApi { }); } } + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange', codec, + binaryMessenger: binaryMessenger); + if (api == null) { + channel.setMessageHandler(null); + } else { + channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange was null.'); + final List args = (message as List?)!; + final int? arg_webViewInstanceId = (args[0] as int?); + assert(arg_webViewInstanceId != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange was null, expected non-null int.'); + final int? arg_x = (args[1] as int?); + assert(arg_x != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange was null, expected non-null int.'); + final int? arg_y = (args[2] as int?); + assert(arg_y != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange was null, expected non-null int.'); + final int? arg_oldX = (args[3] as int?); + assert(arg_oldX != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange was null, expected non-null int.'); + final int? arg_oldY = (args[4] as int?); + assert(arg_oldY != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange was null, expected non-null int.'); + api.onScrollPosChange( + arg_webViewInstanceId!, arg_x!, arg_y!, arg_oldX!, arg_oldY!); + return; + }); + } + } } } diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart index 46cae0efd00..dd0b7ff87eb 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart @@ -105,16 +105,14 @@ class AndroidWebViewController extends PlatformWebViewController { late final android_webview.WebView _webView = _androidWebViewParams.androidWebViewProxy.createAndroidWebView( onScrollChanged: withWeakReferenceTo(this, - (WeakReference weakReference) { - return (int l, int t, int oldL, int oldT) async { - if (weakReference.target?._onContentOffsetChangedCallback != - null) { - return weakReference.target!._onContentOffsetChangedCallback!( - l, t, oldL, oldT); - } - }; - }) - ); + (WeakReference weakReference) { + return (int l, int t, int oldL, int oldT) async { + if (weakReference.target?._onContentOffsetChangedCallback != null) { + return weakReference.target!._onContentOffsetChangedCallback!( + l, t, oldL, oldT); + } + }; + })); late final android_webview.WebChromeClient _webChromeClient = _androidWebViewParams.androidWebViewProxy.createAndroidWebChromeClient( diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart index 35337beb3ec..5093f5a79cf 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart @@ -90,9 +90,9 @@ void main() { )? onPermissionRequest, }) => MockWebChromeClient(), - createAndroidWebView: ({ - required dynamic Function(int, int, int, int)? - onScrollChanged}) => nonNullMockWebView, + createAndroidWebView: + ({dynamic Function(int, int, int, int)? onScrollChanged}) => + nonNullMockWebView, createAndroidWebViewClient: ({ void Function(android_webview.WebView webView, String url)? onPageFinished, 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 093312e06e1..95caa350387 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 @@ -677,6 +677,22 @@ class MockAndroidWebViewController extends _i1.Mock returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); @override + _i9.Future setOnContentOffsetChanged( + void Function( + int, + int, + int, + int, + )? onOffsetChange) => + (super.noSuchMethod( + Invocation.method( + #setOnContentOffsetChanged, + [onOffsetChange], + ), + returnValue: _i9.Future.value(), + returnValueForMissingStub: _i9.Future.value(), + ) as _i9.Future); + @override _i9.Future setMediaPlaybackRequiresUserGesture(bool? require) => (super.noSuchMethod( Invocation.method( @@ -727,17 +743,41 @@ class MockAndroidWebViewController extends _i1.Mock class MockAndroidWebViewProxy extends _i1.Mock implements _i10.AndroidWebViewProxy { @override - _i2.WebView Function() get createAndroidWebView => (super.noSuchMethod( + _i2.WebView Function( + dynamic Function( + int, + int, + int, + int, + )?) get createAndroidWebView => (super.noSuchMethod( Invocation.getter(#createAndroidWebView), - returnValue: () => _FakeWebView_7( + returnValue: (dynamic Function( + int, + int, + int, + int, + )? onScrollChanged) => + _FakeWebView_7( this, Invocation.getter(#createAndroidWebView), ), - returnValueForMissingStub: () => _FakeWebView_7( + returnValueForMissingStub: (dynamic Function( + int, + int, + int, + int, + )? onScrollChanged) => + _FakeWebView_7( this, Invocation.getter(#createAndroidWebView), ), - ) as _i2.WebView Function()); + ) as _i2.WebView Function( + dynamic Function( + int, + int, + int, + int, + )?)); @override _i2.WebChromeClient Function({ void Function( 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 fca0b96dd87..c247d0c69c8 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 (v9.2.4), do not edit directly. +// Autogenerated from Pigeon (v9.2.5), 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 diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart index 1874897f420..ef259fd213e 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart @@ -274,7 +274,7 @@ abstract class PlatformWebViewController extends PlatformInterface { /// Toggle the listener for content offset changes. Set to null to stop listening. Future setOnContentOffsetChanged( void Function(int left, int top, int oldLeft, int oldTop)? - onOffsetChange) { + onOffsetChange) { throw UnimplementedError( 'setOnContentOffsetChanged is not implemented on the current platform'); } From 024e3a7f8a60ab5f17c225b6c72c5fb27c682a0c Mon Sep 17 00:00:00 2001 From: TheVinhLuong Date: Sat, 29 Apr 2023 19:01:11 +0700 Subject: [PATCH 05/20] Fixup based on code review --- .../webview_flutter_android/CHANGELOG.md | 2 +- .../GeneratedAndroidWebView.java | 815 ++++++------------ .../webviewflutter/WebViewFlutterApiImpl.java | 4 - .../webviewflutter/WebViewHostApiImpl.java | 2 +- .../plugins/webviewflutter/WebViewTest.java | 6 +- .../webview_flutter_test.dart | 36 +- .../example/lib/main.dart | 4 +- .../lib/src/android_proxy.dart | 4 +- .../lib/src/android_webview.dart | 3 +- .../lib/src/android_webview.g.dart | 388 ++++----- .../lib/src/android_webview_api_impls.dart | 5 +- .../lib/src/android_webview_controller.dart | 16 +- .../pigeons/android_webview.dart | 2 +- .../test/android_webview_controller_test.dart | 2 +- ...android_webview_controller_test.mocks.dart | 38 +- .../test/test_android_webview.g.dart | 618 +++++-------- .../lib/src/platform_webview_controller.dart | 3 +- .../lib/src/types/content_offset_change.dart | 13 + .../lib/src/types/types.dart | 1 + 19 files changed, 697 insertions(+), 1265 deletions(-) create mode 100644 packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/content_offset_change.dart diff --git a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md index 3cc3f1df095..cf44453e8fd 100644 --- a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md @@ -1,6 +1,6 @@ ## 3.6.4 -* Added `setOnContentOffsetChanged` method to the `AndroidWebViewController`. +* Adds support for `setOnContentOffsetChanged` method to the `AndroidWebViewController`. ## 3.6.3 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 ba9812ce3f8..35b2504f865 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 @@ -18,6 +18,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -34,7 +35,8 @@ public static class FlutterError extends RuntimeException { /** The error details. Must be a datatype supported by the api codec. */ public final Object details; - public FlutterError(@NonNull String code, @Nullable String message, @Nullable Object details) { + public FlutterError(@NonNull String code, @Nullable String message, @Nullable Object details) + { super(message); this.code = code; this.details = details; @@ -53,7 +55,7 @@ protected static ArrayList wrapError(@NonNull Throwable exception) { errorList.add(exception.toString()); errorList.add(exception.getClass().getSimpleName()); errorList.add( - "Cause: " + exception.getCause() + ", Stacktrace: " + Log.getStackTraceString(exception)); + "Cause: " + exception.getCause() + ", Stacktrace: " + Log.getStackTraceString(exception)); } return errorList; } @@ -61,29 +63,26 @@ protected static ArrayList wrapError(@NonNull Throwable exception) { /** * Mode of how to select files for a file chooser. * - *

See - * https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams. + * See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams. */ public enum FileChooserMode { /** - * Open single file and requires that the file exists before allowing the user to pick it. + * Open single file and requires that the file exists before allowing the + * user to pick it. * - *

See - * https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN. + * See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN. */ OPEN(0), /** * Similar to [open] but allows multiple files to be selected. * - *

See - * https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN_MULTIPLE. + * See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN_MULTIPLE. */ OPEN_MULTIPLE(1), /** * Allows picking a nonexistent file and saving it. * - *

See - * https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_SAVE. + * See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_SAVE. */ SAVE(2); @@ -375,10 +374,7 @@ ArrayList toList() { static @NonNull WebResourceErrorData fromList(@NonNull ArrayList list) { WebResourceErrorData pigeonResult = new WebResourceErrorData(); Object errorCode = list.get(0); - pigeonResult.setErrorCode( - (errorCode == null) - ? null - : ((errorCode instanceof Integer) ? (Integer) errorCode : (Long) errorCode)); + pigeonResult.setErrorCode((errorCode == null) ? null : ((errorCode instanceof Integer) ? (Integer) errorCode : (Long) errorCode)); Object description = list.get(1); pigeonResult.setDescription((String) description); return pigeonResult; @@ -467,13 +463,13 @@ public interface Result { /** * Host API for managing the native `InstanceManager`. * - *

Generated interface from Pigeon that represents a handler of messages from Flutter. + * Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface InstanceManagerHostApi { /** * Clear the native `InstanceManager`. * - *

This is typically only used after a hot restart. + * This is typically only used after a hot restart. */ void clear(); @@ -481,12 +477,8 @@ public interface InstanceManagerHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `InstanceManagerHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable InstanceManagerHostApi api) { + /**Sets up an instance of `InstanceManagerHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable InstanceManagerHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -498,7 +490,8 @@ static void setup( try { api.clear(); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -513,11 +506,11 @@ static void setup( /** * Handles methods calls to the native Java Object class. * - *

Also handles calls to remove the reference to an instance with `dispose`. + * Also handles calls to remove the reference to an instance with `dispose`. * - *

See https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. + * See https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. * - *

Generated interface from Pigeon that represents a handler of messages from Flutter. + * Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface JavaObjectHostApi { @@ -527,9 +520,7 @@ public interface JavaObjectHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `JavaObjectHostApi` to handle messages through the `binaryMessenger`. - */ + /**Sets up an instance of `JavaObjectHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable JavaObjectHostApi api) { { BasicMessageChannel channel = @@ -544,7 +535,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable JavaObject try { api.dispose((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -559,9 +551,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable JavaObject /** * Handles callbacks methods for the native Java Object class. * - *

See https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. + * See https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. * - *

Generated class from Pigeon that represents Flutter messages that can be called from Java. + * Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class JavaObjectFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -570,7 +562,7 @@ public JavaObjectFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -579,7 +571,6 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void dispose(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -600,18 +591,12 @@ public interface CookieManagerHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `CookieManagerHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable CookieManagerHostApi api) { + /**Sets up an instance of `CookieManagerHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CookieManagerHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.CookieManagerHostApi.clearCookies", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.CookieManagerHostApi.clearCookies", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -649,7 +634,8 @@ public void error(Throwable error) { try { api.setCookie(urlArg, valueArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -693,32 +679,21 @@ public interface WebViewHostApi { void create(@NonNull Long instanceId); - void loadData( - @NonNull Long instanceId, - @NonNull String data, - @Nullable String mimeType, - @Nullable String encoding); + void loadData(@NonNull Long instanceId, @NonNull String data, @Nullable String mimeType, @Nullable String encoding); - void loadDataWithBaseUrl( - @NonNull Long instanceId, - @Nullable String baseUrl, - @NonNull String data, - @Nullable String mimeType, - @Nullable String encoding, - @Nullable String historyUrl); + void loadDataWithBaseUrl(@NonNull Long instanceId, @Nullable String baseUrl, @NonNull String data, @Nullable String mimeType, @Nullable String encoding, @Nullable String historyUrl); - void loadUrl( - @NonNull Long instanceId, @NonNull String url, @NonNull Map headers); + void loadUrl(@NonNull Long instanceId, @NonNull String url, @NonNull Map headers); void postUrl(@NonNull Long instanceId, @NonNull String url, @NonNull byte[] data); - @Nullable + @Nullable String getUrl(@NonNull Long instanceId); - @NonNull + @NonNull Boolean canGoBack(@NonNull Long instanceId); - @NonNull + @NonNull Boolean canGoForward(@NonNull Long instanceId); void goBack(@NonNull Long instanceId); @@ -729,23 +704,22 @@ void loadUrl( void clearCache(@NonNull Long instanceId, @NonNull Boolean includeDiskFiles); - void evaluateJavascript( - @NonNull Long instanceId, @NonNull String javascriptString, @NonNull Result result); + void evaluateJavascript(@NonNull Long instanceId, @NonNull String javascriptString, @NonNull Result result); - @Nullable + @Nullable String getTitle(@NonNull Long instanceId); void scrollTo(@NonNull Long instanceId, @NonNull Long x, @NonNull Long y); void scrollBy(@NonNull Long instanceId, @NonNull Long x, @NonNull Long y); - @NonNull + @NonNull Long getScrollX(@NonNull Long instanceId); - @NonNull + @NonNull Long getScrollY(@NonNull Long instanceId); - @NonNull + @NonNull WebViewPoint getScrollPosition(@NonNull Long instanceId); void setWebContentsDebuggingEnabled(@NonNull Boolean enabled); @@ -754,8 +728,7 @@ void evaluateJavascript( void addJavaScriptChannel(@NonNull Long instanceId, @NonNull Long javaScriptChannelInstanceId); - void removeJavaScriptChannel( - @NonNull Long instanceId, @NonNull Long javaScriptChannelInstanceId); + void removeJavaScriptChannel(@NonNull Long instanceId, @NonNull Long javaScriptChannelInstanceId); void setDownloadListener(@NonNull Long instanceId, @Nullable Long listenerInstanceId); @@ -767,7 +740,7 @@ void removeJavaScriptChannel( static @NonNull MessageCodec getCodec() { return WebViewHostApiCodec.INSTANCE; } - /** Sets up an instance of `WebViewHostApi` to handle messages through the `binaryMessenger`. */ + /**Sets up an instance of `WebViewHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHostApi api) { { BasicMessageChannel channel = @@ -782,7 +755,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos try { api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -806,13 +780,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos String mimeTypeArg = (String) args.get(2); String encodingArg = (String) args.get(3); try { - api.loadData( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - dataArg, - mimeTypeArg, - encodingArg); + api.loadData((instanceIdArg == null) ? null : instanceIdArg.longValue(), dataArg, mimeTypeArg, encodingArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -825,9 +796,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebViewHostApi.loadDataWithBaseUrl", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebViewHostApi.loadDataWithBaseUrl", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -840,15 +809,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos String encodingArg = (String) args.get(4); String historyUrlArg = (String) args.get(5); try { - api.loadDataWithBaseUrl( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - baseUrlArg, - dataArg, - mimeTypeArg, - encodingArg, - historyUrlArg); + api.loadDataWithBaseUrl((instanceIdArg == null) ? null : instanceIdArg.longValue(), baseUrlArg, dataArg, mimeTypeArg, encodingArg, historyUrlArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -871,12 +835,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos String urlArg = (String) args.get(1); Map headersArg = (Map) args.get(2); try { - api.loadUrl( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - urlArg, - headersArg); + api.loadUrl((instanceIdArg == null) ? null : instanceIdArg.longValue(), urlArg, headersArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -899,10 +861,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos String urlArg = (String) args.get(1); byte[] dataArg = (byte[]) args.get(2); try { - api.postUrl( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), urlArg, dataArg); + api.postUrl((instanceIdArg == null) ? null : instanceIdArg.longValue(), urlArg, dataArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -923,10 +885,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - String output = - api.getUrl((instanceIdArg == null) ? null : instanceIdArg.longValue()); + String output = api.getUrl((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -947,10 +909,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - Boolean output = - api.canGoBack((instanceIdArg == null) ? null : instanceIdArg.longValue()); + Boolean output = api.canGoBack((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -971,10 +933,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - Boolean output = - api.canGoForward((instanceIdArg == null) ? null : instanceIdArg.longValue()); + Boolean output = api.canGoForward((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -997,7 +959,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos try { api.goBack((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1020,7 +983,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos try { api.goForward((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1043,7 +1007,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos try { api.reload((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1065,11 +1030,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos Number instanceIdArg = (Number) args.get(0); Boolean includeDiskFilesArg = (Boolean) args.get(1); try { - api.clearCache( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - includeDiskFilesArg); + api.clearCache((instanceIdArg == null) ? null : instanceIdArg.longValue(), includeDiskFilesArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1082,9 +1046,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebViewHostApi.evaluateJavascript", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebViewHostApi.evaluateJavascript", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1105,10 +1067,7 @@ public void error(Throwable error) { } }; - api.evaluateJavascript( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - javascriptStringArg, - resultCallback); + api.evaluateJavascript((instanceIdArg == null) ? null : instanceIdArg.longValue(), javascriptStringArg, resultCallback); }); } else { channel.setMessageHandler(null); @@ -1125,10 +1084,10 @@ public void error(Throwable error) { ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - String output = - api.getTitle((instanceIdArg == null) ? null : instanceIdArg.longValue()); + String output = api.getTitle((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1151,12 +1110,10 @@ public void error(Throwable error) { Number xArg = (Number) args.get(1); Number yArg = (Number) args.get(2); try { - api.scrollTo( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (xArg == null) ? null : xArg.longValue(), - (yArg == null) ? null : yArg.longValue()); + api.scrollTo((instanceIdArg == null) ? null : instanceIdArg.longValue(), (xArg == null) ? null : xArg.longValue(), (yArg == null) ? null : yArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1179,12 +1136,10 @@ public void error(Throwable error) { Number xArg = (Number) args.get(1); Number yArg = (Number) args.get(2); try { - api.scrollBy( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (xArg == null) ? null : xArg.longValue(), - (yArg == null) ? null : yArg.longValue()); + api.scrollBy((instanceIdArg == null) ? null : instanceIdArg.longValue(), (xArg == null) ? null : xArg.longValue(), (yArg == null) ? null : yArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1205,10 +1160,10 @@ public void error(Throwable error) { ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - Long output = - api.getScrollX((instanceIdArg == null) ? null : instanceIdArg.longValue()); + Long output = api.getScrollX((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1229,10 +1184,10 @@ public void error(Throwable error) { ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - Long output = - api.getScrollY((instanceIdArg == null) ? null : instanceIdArg.longValue()); + Long output = api.getScrollY((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1253,11 +1208,10 @@ public void error(Throwable error) { ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - WebViewPoint output = - api.getScrollPosition( - (instanceIdArg == null) ? null : instanceIdArg.longValue()); + WebViewPoint output = api.getScrollPosition((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1270,9 +1224,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebViewHostApi.setWebContentsDebuggingEnabled", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebViewHostApi.setWebContentsDebuggingEnabled", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1282,7 +1234,8 @@ public void error(Throwable error) { try { api.setWebContentsDebuggingEnabled(enabledArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1304,13 +1257,10 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number webViewClientInstanceIdArg = (Number) args.get(1); try { - api.setWebViewClient( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (webViewClientInstanceIdArg == null) - ? null - : webViewClientInstanceIdArg.longValue()); + api.setWebViewClient((instanceIdArg == null) ? null : instanceIdArg.longValue(), (webViewClientInstanceIdArg == null) ? null : webViewClientInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1323,9 +1273,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebViewHostApi.addJavaScriptChannel", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebViewHostApi.addJavaScriptChannel", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1334,13 +1282,10 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number javaScriptChannelInstanceIdArg = (Number) args.get(1); try { - api.addJavaScriptChannel( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (javaScriptChannelInstanceIdArg == null) - ? null - : javaScriptChannelInstanceIdArg.longValue()); + api.addJavaScriptChannel((instanceIdArg == null) ? null : instanceIdArg.longValue(), (javaScriptChannelInstanceIdArg == null) ? null : javaScriptChannelInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1353,9 +1298,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebViewHostApi.removeJavaScriptChannel", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebViewHostApi.removeJavaScriptChannel", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1364,13 +1307,10 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number javaScriptChannelInstanceIdArg = (Number) args.get(1); try { - api.removeJavaScriptChannel( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (javaScriptChannelInstanceIdArg == null) - ? null - : javaScriptChannelInstanceIdArg.longValue()); + api.removeJavaScriptChannel((instanceIdArg == null) ? null : instanceIdArg.longValue(), (javaScriptChannelInstanceIdArg == null) ? null : javaScriptChannelInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1383,9 +1323,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebViewHostApi.setDownloadListener", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebViewHostApi.setDownloadListener", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1394,11 +1332,10 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number listenerInstanceIdArg = (Number) args.get(1); try { - api.setDownloadListener( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (listenerInstanceIdArg == null) ? null : listenerInstanceIdArg.longValue()); + api.setDownloadListener((instanceIdArg == null) ? null : instanceIdArg.longValue(), (listenerInstanceIdArg == null) ? null : listenerInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1411,9 +1348,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebViewHostApi.setWebChromeClient", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebViewHostApi.setWebChromeClient", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1422,11 +1357,10 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number clientInstanceIdArg = (Number) args.get(1); try { - api.setWebChromeClient( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (clientInstanceIdArg == null) ? null : clientInstanceIdArg.longValue()); + api.setWebChromeClient((instanceIdArg == null) ? null : instanceIdArg.longValue(), (clientInstanceIdArg == null) ? null : clientInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1439,9 +1373,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebViewHostApi.setBackgroundColor", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebViewHostApi.setBackgroundColor", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1450,11 +1382,10 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number colorArg = (Number) args.get(1); try { - api.setBackgroundColor( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (colorArg == null) ? null : colorArg.longValue()); + api.setBackgroundColor((instanceIdArg == null) ? null : instanceIdArg.longValue(), (colorArg == null) ? null : colorArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1469,12 +1400,13 @@ public void error(Throwable error) { /** * Flutter API for `WebView`. * - *

This class may handle instantiating and adding Dart instances that are attached to a native - * instance or receiving callback methods from an overridden native class. + * This class may handle instantiating and adding Dart instances that are + * attached to a native instance or receiving callback methods from an + * overridden native class. * - *

See https://developer.android.com/reference/android/webkit/WebView. + * See https://developer.android.com/reference/android/webkit/WebView. * - *

Generated class from Pigeon that represents Flutter messages that can be called from Java. + * Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class WebViewFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -1483,7 +1415,7 @@ public WebViewFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -1501,21 +1433,12 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); } - - public void onScrollPosChange( - @NonNull Long webViewInstanceIdArg, - @NonNull Long xArg, - @NonNull Long yArg, - @NonNull Long oldXArg, - @NonNull Long oldYArg, - @NonNull Reply callback) { + public void onScrollPosChange(@NonNull Long webViewInstanceIdArg, @NonNull Long xArg, @NonNull Long yArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange", getCodec()); channel.send( - new ArrayList(Arrays.asList(webViewInstanceIdArg, xArg, yArg, oldXArg, oldYArg)), + new ArrayList(Arrays.asList(webViewInstanceIdArg, xArg, yArg)), channelReply -> callback.reply(null)); } } @@ -1554,9 +1477,7 @@ public interface WebSettingsHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `WebSettingsHostApi` to handle messages through the `binaryMessenger`. - */ + /**Sets up an instance of `WebSettingsHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSettingsHostApi api) { { BasicMessageChannel channel = @@ -1570,11 +1491,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Number webViewInstanceIdArg = (Number) args.get(1); try { - api.create( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (webViewInstanceIdArg == null) ? null : webViewInstanceIdArg.longValue()); + api.create((instanceIdArg == null) ? null : instanceIdArg.longValue(), (webViewInstanceIdArg == null) ? null : webViewInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1587,9 +1507,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebSettingsHostApi.setDomStorageEnabled", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebSettingsHostApi.setDomStorageEnabled", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1598,10 +1516,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean flagArg = (Boolean) args.get(1); try { - api.setDomStorageEnabled( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); + api.setDomStorageEnabled((instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1614,9 +1532,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1625,10 +1541,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean flagArg = (Boolean) args.get(1); try { - api.setJavaScriptCanOpenWindowsAutomatically( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); + api.setJavaScriptCanOpenWindowsAutomatically((instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1641,9 +1557,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebSettingsHostApi.setSupportMultipleWindows", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebSettingsHostApi.setSupportMultipleWindows", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1652,10 +1566,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean supportArg = (Boolean) args.get(1); try { - api.setSupportMultipleWindows( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), supportArg); + api.setSupportMultipleWindows((instanceIdArg == null) ? null : instanceIdArg.longValue(), supportArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1668,9 +1582,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptEnabled", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptEnabled", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1679,10 +1591,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean flagArg = (Boolean) args.get(1); try { - api.setJavaScriptEnabled( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); + api.setJavaScriptEnabled((instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1695,9 +1607,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebSettingsHostApi.setUserAgentString", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebSettingsHostApi.setUserAgentString", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1706,11 +1616,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); String userAgentStringArg = (String) args.get(1); try { - api.setUserAgentString( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - userAgentStringArg); + api.setUserAgentString((instanceIdArg == null) ? null : instanceIdArg.longValue(), userAgentStringArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1723,9 +1632,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1734,10 +1641,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean requireArg = (Boolean) args.get(1); try { - api.setMediaPlaybackRequiresUserGesture( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), requireArg); + api.setMediaPlaybackRequiresUserGesture((instanceIdArg == null) ? null : instanceIdArg.longValue(), requireArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1750,9 +1657,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebSettingsHostApi.setSupportZoom", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebSettingsHostApi.setSupportZoom", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1761,10 +1666,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean supportArg = (Boolean) args.get(1); try { - api.setSupportZoom( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), supportArg); + api.setSupportZoom((instanceIdArg == null) ? null : instanceIdArg.longValue(), supportArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1777,9 +1682,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebSettingsHostApi.setLoadWithOverviewMode", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebSettingsHostApi.setLoadWithOverviewMode", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1788,10 +1691,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean overviewArg = (Boolean) args.get(1); try { - api.setLoadWithOverviewMode( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), overviewArg); + api.setLoadWithOverviewMode((instanceIdArg == null) ? null : instanceIdArg.longValue(), overviewArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1804,9 +1707,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebSettingsHostApi.setUseWideViewPort", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebSettingsHostApi.setUseWideViewPort", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1815,10 +1716,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean useArg = (Boolean) args.get(1); try { - api.setUseWideViewPort( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), useArg); + api.setUseWideViewPort((instanceIdArg == null) ? null : instanceIdArg.longValue(), useArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1831,9 +1732,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebSettingsHostApi.setDisplayZoomControls", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebSettingsHostApi.setDisplayZoomControls", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1842,10 +1741,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean enabledArg = (Boolean) args.get(1); try { - api.setDisplayZoomControls( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); + api.setDisplayZoomControls((instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1858,9 +1757,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebSettingsHostApi.setBuiltInZoomControls", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebSettingsHostApi.setBuiltInZoomControls", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1869,10 +1766,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean enabledArg = (Boolean) args.get(1); try { - api.setBuiltInZoomControls( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); + api.setBuiltInZoomControls((instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1885,9 +1782,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebSettingsHostApi.setAllowFileAccess", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebSettingsHostApi.setAllowFileAccess", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1896,10 +1791,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean enabledArg = (Boolean) args.get(1); try { - api.setAllowFileAccess( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); + api.setAllowFileAccess((instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1921,11 +1816,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Number textZoomArg = (Number) args.get(1); try { - api.setTextZoom( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (textZoomArg == null) ? null : textZoomArg.longValue()); + api.setTextZoom((instanceIdArg == null) ? null : instanceIdArg.longValue(), (textZoomArg == null) ? null : textZoomArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1946,12 +1840,8 @@ public interface JavaScriptChannelHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `JavaScriptChannelHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable JavaScriptChannelHostApi api) { + /**Sets up an instance of `JavaScriptChannelHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable JavaScriptChannelHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -1964,10 +1854,10 @@ static void setup( Number instanceIdArg = (Number) args.get(0); String channelNameArg = (String) args.get(1); try { - api.create( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), channelNameArg); + api.create((instanceIdArg == null) ? null : instanceIdArg.longValue(), channelNameArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1987,7 +1877,7 @@ public JavaScriptChannelFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -1996,14 +1886,10 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - - public void postMessage( - @NonNull Long instanceIdArg, @NonNull String messageArg, @NonNull Reply callback) { + public void postMessage(@NonNull Long instanceIdArg, @NonNull String messageArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.JavaScriptChannelFlutterApi.postMessage", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.JavaScriptChannelFlutterApi.postMessage", getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, messageArg)), channelReply -> callback.reply(null)); @@ -2014,19 +1900,14 @@ public interface WebViewClientHostApi { void create(@NonNull Long instanceId); - void setSynchronousReturnValueForShouldOverrideUrlLoading( - @NonNull Long instanceId, @NonNull Boolean value); + void setSynchronousReturnValueForShouldOverrideUrlLoading(@NonNull Long instanceId, @NonNull Boolean value); /** The codec used by WebViewClientHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `WebViewClientHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable WebViewClientHostApi api) { + /**Sets up an instance of `WebViewClientHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewClientHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -2040,7 +1921,8 @@ static void setup( try { api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2053,9 +1935,7 @@ static void setup( { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2064,10 +1944,10 @@ static void setup( Number instanceIdArg = (Number) args.get(0); Boolean valueArg = (Boolean) args.get(1); try { - api.setSynchronousReturnValueForShouldOverrideUrlLoading( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); + api.setSynchronousReturnValueForShouldOverrideUrlLoading((instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2119,7 +1999,7 @@ public WebViewClientFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2128,97 +2008,47 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return WebViewClientFlutterApiCodec.INSTANCE; } - - public void onPageStarted( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull String urlArg, - @NonNull Reply callback) { + public void onPageStarted(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull String urlArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebViewClientFlutterApi.onPageStarted", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebViewClientFlutterApi.onPageStarted", getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg)), channelReply -> callback.reply(null)); } - - public void onPageFinished( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull String urlArg, - @NonNull Reply callback) { + public void onPageFinished(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull String urlArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebViewClientFlutterApi.onPageFinished", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebViewClientFlutterApi.onPageFinished", getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg)), channelReply -> callback.reply(null)); } - - public void onReceivedRequestError( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull WebResourceRequestData requestArg, - @NonNull WebResourceErrorData errorArg, - @NonNull Reply callback) { + public void onReceivedRequestError(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull WebResourceRequestData requestArg, @NonNull WebResourceErrorData errorArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebViewClientFlutterApi.onReceivedRequestError", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebViewClientFlutterApi.onReceivedRequestError", getCodec()); channel.send( - new ArrayList( - Arrays.asList(instanceIdArg, webViewInstanceIdArg, requestArg, errorArg)), + new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, requestArg, errorArg)), channelReply -> callback.reply(null)); } - - public void onReceivedError( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull Long errorCodeArg, - @NonNull String descriptionArg, - @NonNull String failingUrlArg, - @NonNull Reply callback) { + public void onReceivedError(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull Long errorCodeArg, @NonNull String descriptionArg, @NonNull String failingUrlArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebViewClientFlutterApi.onReceivedError", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebViewClientFlutterApi.onReceivedError", getCodec()); channel.send( - new ArrayList( - Arrays.asList( - instanceIdArg, - webViewInstanceIdArg, - errorCodeArg, - descriptionArg, - failingUrlArg)), + new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, errorCodeArg, descriptionArg, failingUrlArg)), channelReply -> callback.reply(null)); } - - public void requestLoading( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull WebResourceRequestData requestArg, - @NonNull Reply callback) { + public void requestLoading(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull WebResourceRequestData requestArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebViewClientFlutterApi.requestLoading", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebViewClientFlutterApi.requestLoading", getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, requestArg)), channelReply -> callback.reply(null)); } - - public void urlLoading( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull String urlArg, - @NonNull Reply callback) { + public void urlLoading(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull String urlArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.WebViewClientFlutterApi.urlLoading", getCodec()); @@ -2226,21 +2056,12 @@ public void urlLoading( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg)), channelReply -> callback.reply(null)); } - - public void doUpdateVisitedHistory( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull String urlArg, - @NonNull Boolean isReloadArg, - @NonNull Reply callback) { + public void doUpdateVisitedHistory(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull String urlArg, @NonNull Boolean isReloadArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebViewClientFlutterApi.doUpdateVisitedHistory", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebViewClientFlutterApi.doUpdateVisitedHistory", getCodec()); channel.send( - new ArrayList( - Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg, isReloadArg)), + new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg, isReloadArg)), channelReply -> callback.reply(null)); } } @@ -2253,12 +2074,8 @@ public interface DownloadListenerHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `DownloadListenerHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable DownloadListenerHostApi api) { + /**Sets up an instance of `DownloadListenerHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DownloadListenerHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -2272,7 +2089,8 @@ static void setup( try { api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2292,7 +2110,7 @@ public DownloadListenerFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2301,29 +2119,12 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - - public void onDownloadStart( - @NonNull Long instanceIdArg, - @NonNull String urlArg, - @NonNull String userAgentArg, - @NonNull String contentDispositionArg, - @NonNull String mimetypeArg, - @NonNull Long contentLengthArg, - @NonNull Reply callback) { + public void onDownloadStart(@NonNull Long instanceIdArg, @NonNull String urlArg, @NonNull String userAgentArg, @NonNull String contentDispositionArg, @NonNull String mimetypeArg, @NonNull Long contentLengthArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.DownloadListenerFlutterApi.onDownloadStart", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.DownloadListenerFlutterApi.onDownloadStart", getCodec()); channel.send( - new ArrayList( - Arrays.asList( - instanceIdArg, - urlArg, - userAgentArg, - contentDispositionArg, - mimetypeArg, - contentLengthArg)), + new ArrayList(Arrays.asList(instanceIdArg, urlArg, userAgentArg, contentDispositionArg, mimetypeArg, contentLengthArg)), channelReply -> callback.reply(null)); } } @@ -2332,19 +2133,14 @@ public interface WebChromeClientHostApi { void create(@NonNull Long instanceId); - void setSynchronousReturnValueForOnShowFileChooser( - @NonNull Long instanceId, @NonNull Boolean value); + void setSynchronousReturnValueForOnShowFileChooser(@NonNull Long instanceId, @NonNull Boolean value); /** The codec used by WebChromeClientHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `WebChromeClientHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable WebChromeClientHostApi api) { + /**Sets up an instance of `WebChromeClientHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebChromeClientHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -2358,7 +2154,8 @@ static void setup( try { api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2371,9 +2168,7 @@ static void setup( { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2382,10 +2177,10 @@ static void setup( Number instanceIdArg = (Number) args.get(0); Boolean valueArg = (Boolean) args.get(1); try { - api.setSynchronousReturnValueForOnShowFileChooser( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); + api.setSynchronousReturnValueForOnShowFileChooser((instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2400,22 +2195,18 @@ static void setup( /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface FlutterAssetManagerHostApi { - @NonNull + @NonNull List list(@NonNull String path); - @NonNull + @NonNull String getAssetFilePathByName(@NonNull String name); /** The codec used by FlutterAssetManagerHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `FlutterAssetManagerHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable FlutterAssetManagerHostApi api) { + /**Sets up an instance of `FlutterAssetManagerHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FlutterAssetManagerHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -2429,7 +2220,8 @@ static void setup( try { List output = api.list(pathArg); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2442,9 +2234,7 @@ static void setup( { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.FlutterAssetManagerHostApi.getAssetFilePathByName", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.FlutterAssetManagerHostApi.getAssetFilePathByName", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2454,7 +2244,8 @@ static void setup( try { String output = api.getAssetFilePathByName(nameArg); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2474,7 +2265,7 @@ public WebChromeClientFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2483,35 +2274,20 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - - public void onProgressChanged( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull Long progressArg, - @NonNull Reply callback) { + public void onProgressChanged(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull Long progressArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebChromeClientFlutterApi.onProgressChanged", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebChromeClientFlutterApi.onProgressChanged", getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, progressArg)), channelReply -> callback.reply(null)); } - - public void onShowFileChooser( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull Long paramsInstanceIdArg, - @NonNull Reply> callback) { + public void onShowFileChooser(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull Long paramsInstanceIdArg, @NonNull Reply> callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebChromeClientFlutterApi.onShowFileChooser", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebChromeClientFlutterApi.onShowFileChooser", getCodec()); channel.send( - new ArrayList( - Arrays.asList(instanceIdArg, webViewInstanceIdArg, paramsInstanceIdArg)), + new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, paramsInstanceIdArg)), channelReply -> { @SuppressWarnings("ConstantConditions") List output = (List) channelReply; @@ -2519,15 +2295,10 @@ public void onShowFileChooser( }); } /** Callback to Dart function `WebChromeClient.onPermissionRequest`. */ - public void onPermissionRequest( - @NonNull Long instanceIdArg, - @NonNull Long requestInstanceIdArg, - @NonNull Reply callback) { + public void onPermissionRequest(@NonNull Long instanceIdArg, @NonNull Long requestInstanceIdArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.WebChromeClientFlutterApi.onPermissionRequest", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.WebChromeClientFlutterApi.onPermissionRequest", getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, requestInstanceIdArg)), channelReply -> callback.reply(null)); @@ -2544,9 +2315,7 @@ public interface WebStorageHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `WebStorageHostApi` to handle messages through the `binaryMessenger`. - */ + /**Sets up an instance of `WebStorageHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebStorageHostApi api) { { BasicMessageChannel channel = @@ -2561,7 +2330,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebStorage try { api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2584,7 +2354,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebStorage try { api.deleteAllData((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2598,8 +2369,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebStorage } private static class FileChooserParamsFlutterApiCodec extends StandardMessageCodec { - public static final FileChooserParamsFlutterApiCodec INSTANCE = - new FileChooserParamsFlutterApiCodec(); + public static final FileChooserParamsFlutterApiCodec INSTANCE = new FileChooserParamsFlutterApiCodec(); private FileChooserParamsFlutterApiCodec() {} @@ -2627,10 +2397,9 @@ protected void writeValue(@NonNull ByteArrayOutputStream stream, Object value) { /** * Handles callbacks methods for the native Java FileChooserParams class. * - *

See - * https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams. + * See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams. * - *

Generated class from Pigeon that represents Flutter messages that can be called from Java. + * Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class FileChooserParamsFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -2639,7 +2408,7 @@ public FileChooserParamsFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2648,34 +2417,25 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return FileChooserParamsFlutterApiCodec.INSTANCE; } - - public void create( - @NonNull Long instanceIdArg, - @NonNull Boolean isCaptureEnabledArg, - @NonNull List acceptTypesArg, - @NonNull FileChooserModeEnumData modeArg, - @Nullable String filenameHintArg, - @NonNull Reply callback) { + public void create(@NonNull Long instanceIdArg, @NonNull Boolean isCaptureEnabledArg, @NonNull List acceptTypesArg, @NonNull FileChooserModeEnumData modeArg, @Nullable String filenameHintArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.FileChooserParamsFlutterApi.create", getCodec()); channel.send( - new ArrayList( - Arrays.asList( - instanceIdArg, isCaptureEnabledArg, acceptTypesArg, modeArg, filenameHintArg)), + new ArrayList(Arrays.asList(instanceIdArg, isCaptureEnabledArg, acceptTypesArg, modeArg, filenameHintArg)), channelReply -> callback.reply(null)); } } /** * Host API for `PermissionRequest`. * - *

This class may handle instantiating and adding native object instances that are attached to - * a Dart instance or handle method calls on the associated native class or an instance of the - * class. + * This class may handle instantiating and adding native object instances that + * are attached to a Dart instance or handle method calls on the associated + * native class or an instance of the class. * - *

See https://developer.android.com/reference/android/webkit/PermissionRequest. + * See https://developer.android.com/reference/android/webkit/PermissionRequest. * - *

Generated interface from Pigeon that represents a handler of messages from Flutter. + * Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface PermissionRequestHostApi { /** Handles Dart method `PermissionRequest.grant`. */ @@ -2687,12 +2447,8 @@ public interface PermissionRequestHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `PermissionRequestHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable PermissionRequestHostApi api) { + /**Sets up an instance of `PermissionRequestHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PermissionRequestHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( @@ -2705,10 +2461,10 @@ static void setup( Number instanceIdArg = (Number) args.get(0); List resourcesArg = (List) args.get(1); try { - api.grant( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), resourcesArg); + api.grant((instanceIdArg == null) ? null : instanceIdArg.longValue(), resourcesArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2731,7 +2487,8 @@ static void setup( try { api.deny((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2746,12 +2503,13 @@ static void setup( /** * Flutter API for `PermissionRequest`. * - *

This class may handle instantiating and adding Dart instances that are attached to a native - * instance or receiving callback methods from an overridden native class. + * This class may handle instantiating and adding Dart instances that are + * attached to a native instance or receiving callback methods from an + * overridden native class. * - *

See https://developer.android.com/reference/android/webkit/PermissionRequest. + * See https://developer.android.com/reference/android/webkit/PermissionRequest. * - *

Generated class from Pigeon that represents Flutter messages that can be called from Java. + * Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class PermissionRequestFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -2760,7 +2518,7 @@ public PermissionRequestFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2770,10 +2528,7 @@ public interface Reply { return new StandardMessageCodec(); } /** Create a new Dart instance and add it to the `InstanceManager`. */ - public void create( - @NonNull Long instanceIdArg, - @NonNull List resourcesArg, - @NonNull Reply callback) { + public void create(@NonNull Long instanceIdArg, @NonNull List resourcesArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( binaryMessenger, "dev.flutter.pigeon.PermissionRequestFlutterApi.create", getCodec()); diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java index efea2bf0b4b..279900c2dd3 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java @@ -62,15 +62,11 @@ public void onScrollChanged( @NonNull WebView instance, @NonNull Long xArg, @NonNull Long yArg, - @NonNull Long oldXArg, - @NonNull Long oldYArg, @NonNull WebViewFlutterApi.Reply callback) { api.onScrollPosChange( Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(instance)), xArg, yArg, - oldXArg, - oldYArg, callback); } } diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java index 01f1520b779..89a9ca10a49 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java @@ -160,7 +160,7 @@ public WebChromeClient getWebChromeClient() { protected void onScrollChanged(int l, int t, int oldL, int oldT) { super.onScrollChanged(l, t, oldL, oldT); api.onScrollChanged( - this, (long) l, (long) t, (long) oldL, (long) oldT, reply -> {}); + this, (long) l, (long) t, reply -> {}); } /** diff --git a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java index 329bfe269f8..ccfd65d3977 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java @@ -358,7 +358,7 @@ public void setImportantForAutofillForParentFlutterView() { } @Test - public void onScrollPosChange() { + public void onScrollChanged() { final InstanceManager instanceManager = InstanceManager.create(identifier -> {}); final WebViewFlutterApiImpl flutterApiImpl = @@ -368,12 +368,12 @@ public void onScrollPosChange() { flutterApiImpl.setApi(mockFlutterApi); flutterApiImpl.create(mockWebView, reply -> {}); - flutterApiImpl.onScrollChanged(mockWebView, 0L, 1L, 2L, 3L, reply -> {}); + flutterApiImpl.onScrollChanged(mockWebView, 0L, 1L, reply -> {}); final long instanceIdentifier = Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockWebView)); verify(mockFlutterApi) - .onScrollPosChange(eq(instanceIdentifier), eq(0L), eq(1L), eq(2L), eq(3L), any()); + .onScrollPosChange(eq(instanceIdentifier), eq(0L), eq(1L), any()); instanceManager.stopFinalizationListener(); } diff --git a/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart index f3ccc919e38..903804ed036 100644 --- a/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart @@ -684,7 +684,7 @@ Future main() async { base64Encode(const Utf8Encoder().convert(scrollTestPage)); final Completer pageLoaded = Completer(); - Completer> offsetsCompleter = Completer>(); + Completer offsetsCompleter = Completer(); final PlatformWebViewController controller = PlatformWebViewController( const PlatformWebViewControllerCreationParams(), ) @@ -702,8 +702,9 @@ Future main() async { ), ) ..setOnContentOffsetChanged( - (int left, int top, int oldLeft, int oldTop) { - offsetsCompleter.complete([left, top, oldLeft, oldTop]); + (ContentOffsetChange contentOffsetChange) { + print('comppp $contentOffsetChange'); + offsetsCompleter.complete(contentOffsetChange); }); await tester.pumpWidget(Builder( @@ -728,22 +729,21 @@ Future main() async { // time to settle. expect(scrollPos.dx, isNot(X_SCROLL)); expect(scrollPos.dy, isNot(Y_SCROLL)); - await controller.scrollTo(X_SCROLL, Y_SCROLL); scrollPos = await controller.getScrollPosition(); expect(scrollPos.dx, X_SCROLL); expect(scrollPos.dy, Y_SCROLL); - expect( - offsetsCompleter.future, completion([X_SCROLL, Y_SCROLL, 0, 0])); - + await expectLater( + offsetsCompleter.future.then((ContentOffsetChange contentOffsetChange) => [contentOffsetChange.x, contentOffsetChange.y]), completion([X_SCROLL, Y_SCROLL])); + // Check scrollBy() (on top of scrollTo()) - offsetsCompleter = Completer>(); + offsetsCompleter = Completer(); await controller.scrollBy(X_SCROLL, Y_SCROLL); scrollPos = await controller.getScrollPosition(); expect(scrollPos.dx, X_SCROLL * 2); expect(scrollPos.dy, Y_SCROLL * 2); - expect(offsetsCompleter.future, - completion([X_SCROLL * 2, Y_SCROLL * 2, X_SCROLL, Y_SCROLL])); + await expectLater( + offsetsCompleter.future.then((ContentOffsetChange contentOffsetChange) => [contentOffsetChange.x, contentOffsetChange.y]), completion([X_SCROLL * 2, Y_SCROLL * 2])); }); }); @@ -1210,22 +1210,6 @@ Future main() async { ); }, ); - - // testWidgets('On Content Offset Listener', (WidgetTester tester) async { - // final PlatformWebViewController controller = PlatformWebViewController( - // const PlatformWebViewControllerCreationParams(), - // ); - // final Completer> offsetCompleter = Completer>(); - // controller.setOnContentOffsetChanged((left, top, oldLeft, oldTop) { - // offsetCompleter.complete([left, top, oldLeft, oldTop]); - // }); - // - // await tester.pumpWidget(widget); - // - // await controller.runJavaScript('Echo.postMessage("hello");'); - // await expectLater(channelCompleter.future, completion('hello')); - // - // }); } /// Returns the value used for the HTTP User-Agent: request header in subsequent HTTP requests. diff --git a/packages/webview_flutter/webview_flutter_android/example/lib/main.dart b/packages/webview_flutter/webview_flutter_android/example/lib/main.dart index 7ad6169a8a4..12d7a3bacd4 100644 --- a/packages/webview_flutter/webview_flutter_android/example/lib/main.dart +++ b/packages/webview_flutter/webview_flutter_android/example/lib/main.dart @@ -147,9 +147,9 @@ Page resource error: ..loadRequest(LoadRequestParams( uri: Uri.parse('https://flutter.dev'), )) - ..setOnContentOffsetChanged((int left, int top, int oldLeft, int oldTop) { + ..setOnContentOffsetChanged((ContentOffsetChange contentOffsetChange) { debugPrint( - 'Scroll offset change to left = $left y = $top oldX = $oldLeft oldY = $oldTop'); + 'Scroll offset change to x = ${contentOffsetChange.x}, y = ${contentOffsetChange.y}'); }); } diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart index 80a705cccda..2c02adcbff2 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart'; + import 'android_webview.dart' as android_webview; /// Handles constructing objects and calling static methods for the Android @@ -26,7 +28,7 @@ class AndroidWebViewProxy { /// Constructs a [android_webview.WebView]. final android_webview.WebView Function( - {Function(int left, int top, int oldLeft, int oldTop)? + {Function(ContentOffsetChange contentOffsetChange)? onScrollChanged}) createAndroidWebView; /// Constructs a [android_webview.WebChromeClient]. diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart index 2ad4eb26167..052d7907a7a 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart @@ -11,6 +11,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart' show BinaryMessenger; import 'package:flutter/widgets.dart' show WidgetsFlutterBinding; +import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart'; import 'android_webview.g.dart'; import 'android_webview_api_impls.dart'; @@ -115,7 +116,7 @@ class WebView extends JavaObject { late final WebSettings settings = WebSettings(this); /// The [ScrollChangedCallback] object used to listen for scroll changed events. - final Function(int left, int top, int oldLeft, int oldTop)? onScrollChanged; + final Function(ContentOffsetChange contentOffsetChange)? onScrollChanged; /// Enables debugging of web contents (HTML / CSS / JavaScript) loaded into any WebViews of this application. /// 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 0fb5bb25d71..c08680e86b7 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 @@ -20,12 +20,10 @@ enum FileChooserMode { /// /// See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN. open, - /// Similar to [open] but allows multiple files to be selected. /// /// See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN_MULTIPLE. openMultiple, - /// Allows picking a nonexistent file and saving it. /// /// See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_SAVE. @@ -94,8 +92,7 @@ class WebResourceRequestData { isRedirect: result[2] as bool?, hasGesture: result[3]! as bool, method: result[4]! as String, - requestHeaders: - (result[5] as Map?)!.cast(), + requestHeaders: (result[5] as Map?)!.cast(), ); } } @@ -170,7 +167,8 @@ class InstanceManagerHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.InstanceManagerHostApi.clear', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send(null) as List?; + final List? replyList = + await channel.send(null) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -234,8 +232,7 @@ abstract class JavaObjectFlutterApi { void dispose(int identifier); - static void setup(JavaObjectFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(JavaObjectFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.JavaObjectFlutterApi.dispose', codec, @@ -245,7 +242,7 @@ abstract class JavaObjectFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.JavaObjectFlutterApi.dispose was null.'); + 'Argument for dev.flutter.pigeon.JavaObjectFlutterApi.dispose was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -272,7 +269,8 @@ class CookieManagerHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.CookieManagerHostApi.clearCookies', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send(null) as List?; + final List? replyList = + await channel.send(null) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -332,7 +330,7 @@ class _WebViewHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return WebViewPoint.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -372,14 +370,12 @@ class WebViewHostApi { } } - Future loadData(int arg_instanceId, String arg_data, - String? arg_mimeType, String? arg_encoding) async { + Future loadData(int arg_instanceId, String arg_data, String? arg_mimeType, String? arg_encoding) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewHostApi.loadData', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send( - [arg_instanceId, arg_data, arg_mimeType, arg_encoding]) - as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_data, arg_mimeType, arg_encoding]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -396,24 +392,12 @@ class WebViewHostApi { } } - Future loadDataWithBaseUrl( - int arg_instanceId, - String? arg_baseUrl, - String arg_data, - String? arg_mimeType, - String? arg_encoding, - String? arg_historyUrl) async { + Future loadDataWithBaseUrl(int arg_instanceId, String? arg_baseUrl, String arg_data, String? arg_mimeType, String? arg_encoding, String? arg_historyUrl) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewHostApi.loadDataWithBaseUrl', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_instanceId, - arg_baseUrl, - arg_data, - arg_mimeType, - arg_encoding, - arg_historyUrl - ]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_baseUrl, arg_data, arg_mimeType, arg_encoding, arg_historyUrl]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -430,14 +414,12 @@ class WebViewHostApi { } } - Future loadUrl(int arg_instanceId, String arg_url, - Map arg_headers) async { + Future loadUrl(int arg_instanceId, String arg_url, Map arg_headers) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewHostApi.loadUrl', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_url, arg_headers]) - as List?; + await channel.send([arg_instanceId, arg_url, arg_headers]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -454,13 +436,12 @@ class WebViewHostApi { } } - Future postUrl( - int arg_instanceId, String arg_url, Uint8List arg_data) async { + Future postUrl(int arg_instanceId, String arg_url, Uint8List arg_data) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewHostApi.postUrl', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_url, arg_data]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_url, arg_data]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -624,8 +605,7 @@ class WebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.clearCache', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_includeDiskFiles]) - as List?; + await channel.send([arg_instanceId, arg_includeDiskFiles]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -642,14 +622,12 @@ class WebViewHostApi { } } - Future evaluateJavascript( - int arg_instanceId, String arg_javascriptString) async { + Future evaluateJavascript(int arg_instanceId, String arg_javascriptString) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewHostApi.evaluateJavascript', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_javascriptString]) - as List?; + await channel.send([arg_instanceId, arg_javascriptString]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -692,8 +670,8 @@ class WebViewHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewHostApi.scrollTo', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_x, arg_y]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_x, arg_y]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -714,8 +692,8 @@ class WebViewHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewHostApi.scrollBy', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_x, arg_y]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_x, arg_y]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -815,8 +793,7 @@ class WebViewHostApi { Future setWebContentsDebuggingEnabled(bool arg_enabled) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebViewHostApi.setWebContentsDebuggingEnabled', - codec, + 'dev.flutter.pigeon.WebViewHostApi.setWebContentsDebuggingEnabled', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_enabled]) as List?; @@ -836,14 +813,12 @@ class WebViewHostApi { } } - Future setWebViewClient( - int arg_instanceId, int arg_webViewClientInstanceId) async { + Future setWebViewClient(int arg_instanceId, int arg_webViewClientInstanceId) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewHostApi.setWebViewClient', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_webViewClientInstanceId]) - as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_webViewClientInstanceId]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -860,14 +835,12 @@ class WebViewHostApi { } } - Future addJavaScriptChannel( - int arg_instanceId, int arg_javaScriptChannelInstanceId) async { + Future addJavaScriptChannel(int arg_instanceId, int arg_javaScriptChannelInstanceId) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewHostApi.addJavaScriptChannel', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_javaScriptChannelInstanceId]) - as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_javaScriptChannelInstanceId]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -884,14 +857,12 @@ class WebViewHostApi { } } - Future removeJavaScriptChannel( - int arg_instanceId, int arg_javaScriptChannelInstanceId) async { + Future removeJavaScriptChannel(int arg_instanceId, int arg_javaScriptChannelInstanceId) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewHostApi.removeJavaScriptChannel', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_javaScriptChannelInstanceId]) - as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_javaScriptChannelInstanceId]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -908,14 +879,12 @@ class WebViewHostApi { } } - Future setDownloadListener( - int arg_instanceId, int? arg_listenerInstanceId) async { + Future setDownloadListener(int arg_instanceId, int? arg_listenerInstanceId) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewHostApi.setDownloadListener', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_listenerInstanceId]) - as List?; + await channel.send([arg_instanceId, arg_listenerInstanceId]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -932,14 +901,12 @@ class WebViewHostApi { } } - Future setWebChromeClient( - int arg_instanceId, int? arg_clientInstanceId) async { + Future setWebChromeClient(int arg_instanceId, int? arg_clientInstanceId) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewHostApi.setWebChromeClient', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_clientInstanceId]) - as List?; + await channel.send([arg_instanceId, arg_clientInstanceId]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -960,8 +927,8 @@ class WebViewHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewHostApi.setBackgroundColor', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_color]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_color]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -992,11 +959,9 @@ abstract class WebViewFlutterApi { /// Create a new Dart instance and add it to the `InstanceManager`. void create(int identifier); - void onScrollPosChange( - int webViewInstanceId, int x, int y, int oldX, int oldY); + void onScrollPosChange(int webViewInstanceId, int x, int y); - static void setup(WebViewFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(WebViewFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewFlutterApi.create', codec, @@ -1006,7 +971,7 @@ abstract class WebViewFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1025,7 +990,7 @@ abstract class WebViewFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange was null.'); + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange was null.'); final List args = (message as List?)!; final int? arg_webViewInstanceId = (args[0] as int?); assert(arg_webViewInstanceId != null, @@ -1036,14 +1001,7 @@ abstract class WebViewFlutterApi { final int? arg_y = (args[2] as int?); assert(arg_y != null, 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange was null, expected non-null int.'); - final int? arg_oldX = (args[3] as int?); - assert(arg_oldX != null, - 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange was null, expected non-null int.'); - final int? arg_oldY = (args[4] as int?); - assert(arg_oldY != null, - 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollPosChange was null, expected non-null int.'); - api.onScrollPosChange( - arg_webViewInstanceId!, arg_x!, arg_y!, arg_oldX!, arg_oldY!); + api.onScrollPosChange(arg_webViewInstanceId!, arg_x!, arg_y!); return; }); } @@ -1066,8 +1024,7 @@ class WebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.create', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_webViewInstanceId]) - as List?; + await channel.send([arg_instanceId, arg_webViewInstanceId]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1088,8 +1045,8 @@ class WebSettingsHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebSettingsHostApi.setDomStorageEnabled', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_flag]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_flag]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1106,14 +1063,12 @@ class WebSettingsHostApi { } } - Future setJavaScriptCanOpenWindowsAutomatically( - int arg_instanceId, bool arg_flag) async { + Future setJavaScriptCanOpenWindowsAutomatically(int arg_instanceId, bool arg_flag) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically', - codec, + 'dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_flag]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_flag]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1130,14 +1085,12 @@ class WebSettingsHostApi { } } - Future setSupportMultipleWindows( - int arg_instanceId, bool arg_support) async { + Future setSupportMultipleWindows(int arg_instanceId, bool arg_support) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebSettingsHostApi.setSupportMultipleWindows', - codec, + 'dev.flutter.pigeon.WebSettingsHostApi.setSupportMultipleWindows', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_support]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_support]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1158,8 +1111,8 @@ class WebSettingsHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptEnabled', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_flag]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_flag]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1176,13 +1129,12 @@ class WebSettingsHostApi { } } - Future setUserAgentString( - int arg_instanceId, String? arg_userAgentString) async { + Future setUserAgentString(int arg_instanceId, String? arg_userAgentString) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebSettingsHostApi.setUserAgentString', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_userAgentString]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_userAgentString]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1199,14 +1151,12 @@ class WebSettingsHostApi { } } - Future setMediaPlaybackRequiresUserGesture( - int arg_instanceId, bool arg_require) async { + Future setMediaPlaybackRequiresUserGesture(int arg_instanceId, bool arg_require) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture', - codec, + 'dev.flutter.pigeon.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_require]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_require]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1227,8 +1177,8 @@ class WebSettingsHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebSettingsHostApi.setSupportZoom', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_support]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_support]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1245,13 +1195,12 @@ class WebSettingsHostApi { } } - Future setLoadWithOverviewMode( - int arg_instanceId, bool arg_overview) async { + Future setLoadWithOverviewMode(int arg_instanceId, bool arg_overview) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebSettingsHostApi.setLoadWithOverviewMode', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_overview]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_overview]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1272,8 +1221,8 @@ class WebSettingsHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebSettingsHostApi.setUseWideViewPort', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_use]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_use]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1290,13 +1239,12 @@ class WebSettingsHostApi { } } - Future setDisplayZoomControls( - int arg_instanceId, bool arg_enabled) async { + Future setDisplayZoomControls(int arg_instanceId, bool arg_enabled) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebSettingsHostApi.setDisplayZoomControls', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_enabled]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_enabled]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1313,13 +1261,12 @@ class WebSettingsHostApi { } } - Future setBuiltInZoomControls( - int arg_instanceId, bool arg_enabled) async { + Future setBuiltInZoomControls(int arg_instanceId, bool arg_enabled) async { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebSettingsHostApi.setBuiltInZoomControls', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_enabled]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_enabled]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1340,8 +1287,8 @@ class WebSettingsHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebSettingsHostApi.setAllowFileAccess', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_enabled]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_enabled]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1362,8 +1309,8 @@ class WebSettingsHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebSettingsHostApi.setTextZoom', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_textZoom]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_textZoom]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1395,8 +1342,8 @@ class JavaScriptChannelHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.JavaScriptChannelHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_channelName]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_channelName]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1419,8 +1366,7 @@ abstract class JavaScriptChannelFlutterApi { void postMessage(int instanceId, String message); - static void setup(JavaScriptChannelFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(JavaScriptChannelFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.JavaScriptChannelFlutterApi.postMessage', codec, @@ -1430,7 +1376,7 @@ abstract class JavaScriptChannelFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.JavaScriptChannelFlutterApi.postMessage was null.'); + 'Argument for dev.flutter.pigeon.JavaScriptChannelFlutterApi.postMessage was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1478,14 +1424,12 @@ class WebViewClientHostApi { } } - Future setSynchronousReturnValueForShouldOverrideUrlLoading( - int arg_instanceId, bool arg_value) async { + Future setSynchronousReturnValueForShouldOverrideUrlLoading(int arg_instanceId, bool arg_value) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading', - codec, + 'dev.flutter.pigeon.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_value]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_value]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1521,9 +1465,9 @@ class _WebViewClientFlutterApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return WebResourceErrorData.decode(readValue(buffer)!); - case 129: + case 129: return WebResourceRequestData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1538,22 +1482,17 @@ abstract class WebViewClientFlutterApi { void onPageFinished(int instanceId, int webViewInstanceId, String url); - void onReceivedRequestError(int instanceId, int webViewInstanceId, - WebResourceRequestData request, WebResourceErrorData error); + void onReceivedRequestError(int instanceId, int webViewInstanceId, WebResourceRequestData request, WebResourceErrorData error); - void onReceivedError(int instanceId, int webViewInstanceId, int errorCode, - String description, String failingUrl); + void onReceivedError(int instanceId, int webViewInstanceId, int errorCode, String description, String failingUrl); - void requestLoading( - int instanceId, int webViewInstanceId, WebResourceRequestData request); + void requestLoading(int instanceId, int webViewInstanceId, WebResourceRequestData request); void urlLoading(int instanceId, int webViewInstanceId, String url); - void doUpdateVisitedHistory( - int instanceId, int webViewInstanceId, String url, bool isReload); + void doUpdateVisitedHistory(int instanceId, int webViewInstanceId, String url, bool isReload); - static void setup(WebViewClientFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(WebViewClientFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewClientFlutterApi.onPageStarted', codec, @@ -1563,7 +1502,7 @@ abstract class WebViewClientFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.onPageStarted was null.'); + 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.onPageStarted was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1588,7 +1527,7 @@ abstract class WebViewClientFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.onPageFinished was null.'); + 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.onPageFinished was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1606,15 +1545,14 @@ abstract class WebViewClientFlutterApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebViewClientFlutterApi.onReceivedRequestError', - codec, + 'dev.flutter.pigeon.WebViewClientFlutterApi.onReceivedRequestError', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.onReceivedRequestError was null.'); + 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.onReceivedRequestError was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1622,16 +1560,13 @@ abstract class WebViewClientFlutterApi { final int? arg_webViewInstanceId = (args[1] as int?); assert(arg_webViewInstanceId != null, 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.onReceivedRequestError was null, expected non-null int.'); - final WebResourceRequestData? arg_request = - (args[2] as WebResourceRequestData?); + final WebResourceRequestData? arg_request = (args[2] as WebResourceRequestData?); assert(arg_request != null, 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.onReceivedRequestError was null, expected non-null WebResourceRequestData.'); - final WebResourceErrorData? arg_error = - (args[3] as WebResourceErrorData?); + final WebResourceErrorData? arg_error = (args[3] as WebResourceErrorData?); assert(arg_error != null, 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.onReceivedRequestError was null, expected non-null WebResourceErrorData.'); - api.onReceivedRequestError(arg_instanceId!, arg_webViewInstanceId!, - arg_request!, arg_error!); + api.onReceivedRequestError(arg_instanceId!, arg_webViewInstanceId!, arg_request!, arg_error!); return; }); } @@ -1645,7 +1580,7 @@ abstract class WebViewClientFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.onReceivedError was null.'); + 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.onReceivedError was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1662,8 +1597,7 @@ abstract class WebViewClientFlutterApi { final String? arg_failingUrl = (args[4] as String?); assert(arg_failingUrl != null, 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.onReceivedError was null, expected non-null String.'); - api.onReceivedError(arg_instanceId!, arg_webViewInstanceId!, - arg_errorCode!, arg_description!, arg_failingUrl!); + api.onReceivedError(arg_instanceId!, arg_webViewInstanceId!, arg_errorCode!, arg_description!, arg_failingUrl!); return; }); } @@ -1677,7 +1611,7 @@ abstract class WebViewClientFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.requestLoading was null.'); + 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.requestLoading was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1685,12 +1619,10 @@ abstract class WebViewClientFlutterApi { final int? arg_webViewInstanceId = (args[1] as int?); assert(arg_webViewInstanceId != null, 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.requestLoading was null, expected non-null int.'); - final WebResourceRequestData? arg_request = - (args[2] as WebResourceRequestData?); + final WebResourceRequestData? arg_request = (args[2] as WebResourceRequestData?); assert(arg_request != null, 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.requestLoading was null, expected non-null WebResourceRequestData.'); - api.requestLoading( - arg_instanceId!, arg_webViewInstanceId!, arg_request!); + api.requestLoading(arg_instanceId!, arg_webViewInstanceId!, arg_request!); return; }); } @@ -1704,7 +1636,7 @@ abstract class WebViewClientFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.urlLoading was null.'); + 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.urlLoading was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1722,15 +1654,14 @@ abstract class WebViewClientFlutterApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebViewClientFlutterApi.doUpdateVisitedHistory', - codec, + 'dev.flutter.pigeon.WebViewClientFlutterApi.doUpdateVisitedHistory', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.doUpdateVisitedHistory was null.'); + 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.doUpdateVisitedHistory was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1744,8 +1675,7 @@ abstract class WebViewClientFlutterApi { final bool? arg_isReload = (args[3] as bool?); assert(arg_isReload != null, 'Argument for dev.flutter.pigeon.WebViewClientFlutterApi.doUpdateVisitedHistory was null, expected non-null bool.'); - api.doUpdateVisitedHistory( - arg_instanceId!, arg_webViewInstanceId!, arg_url!, arg_isReload!); + api.doUpdateVisitedHistory(arg_instanceId!, arg_webViewInstanceId!, arg_url!, arg_isReload!); return; }); } @@ -1789,22 +1719,19 @@ class DownloadListenerHostApi { abstract class DownloadListenerFlutterApi { static const MessageCodec codec = StandardMessageCodec(); - void onDownloadStart(int instanceId, String url, String userAgent, - String contentDisposition, String mimetype, int contentLength); + void onDownloadStart(int instanceId, String url, String userAgent, String contentDisposition, String mimetype, int contentLength); - static void setup(DownloadListenerFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(DownloadListenerFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DownloadListenerFlutterApi.onDownloadStart', - codec, + 'dev.flutter.pigeon.DownloadListenerFlutterApi.onDownloadStart', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.DownloadListenerFlutterApi.onDownloadStart was null.'); + 'Argument for dev.flutter.pigeon.DownloadListenerFlutterApi.onDownloadStart was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1824,8 +1751,7 @@ abstract class DownloadListenerFlutterApi { final int? arg_contentLength = (args[5] as int?); assert(arg_contentLength != null, 'Argument for dev.flutter.pigeon.DownloadListenerFlutterApi.onDownloadStart was null, expected non-null int.'); - api.onDownloadStart(arg_instanceId!, arg_url!, arg_userAgent!, - arg_contentDisposition!, arg_mimetype!, arg_contentLength!); + api.onDownloadStart(arg_instanceId!, arg_url!, arg_userAgent!, arg_contentDisposition!, arg_mimetype!, arg_contentLength!); return; }); } @@ -1865,14 +1791,12 @@ class WebChromeClientHostApi { } } - Future setSynchronousReturnValueForOnShowFileChooser( - int arg_instanceId, bool arg_value) async { + Future setSynchronousReturnValueForOnShowFileChooser(int arg_instanceId, bool arg_value) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser', - codec, + 'dev.flutter.pigeon.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_value]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_value]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1929,8 +1853,7 @@ class FlutterAssetManagerHostApi { Future getAssetFilePathByName(String arg_name) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.FlutterAssetManagerHostApi.getAssetFilePathByName', - codec, + 'dev.flutter.pigeon.FlutterAssetManagerHostApi.getAssetFilePathByName', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_name]) as List?; @@ -1961,25 +1884,22 @@ abstract class WebChromeClientFlutterApi { void onProgressChanged(int instanceId, int webViewInstanceId, int progress); - Future> onShowFileChooser( - int instanceId, int webViewInstanceId, int paramsInstanceId); + Future> onShowFileChooser(int instanceId, int webViewInstanceId, int paramsInstanceId); /// Callback to Dart function `WebChromeClient.onPermissionRequest`. void onPermissionRequest(int instanceId, int requestInstanceId); - static void setup(WebChromeClientFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(WebChromeClientFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebChromeClientFlutterApi.onProgressChanged', - codec, + 'dev.flutter.pigeon.WebChromeClientFlutterApi.onProgressChanged', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebChromeClientFlutterApi.onProgressChanged was null.'); + 'Argument for dev.flutter.pigeon.WebChromeClientFlutterApi.onProgressChanged was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1990,23 +1910,21 @@ abstract class WebChromeClientFlutterApi { final int? arg_progress = (args[2] as int?); assert(arg_progress != null, 'Argument for dev.flutter.pigeon.WebChromeClientFlutterApi.onProgressChanged was null, expected non-null int.'); - api.onProgressChanged( - arg_instanceId!, arg_webViewInstanceId!, arg_progress!); + api.onProgressChanged(arg_instanceId!, arg_webViewInstanceId!, arg_progress!); return; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebChromeClientFlutterApi.onShowFileChooser', - codec, + 'dev.flutter.pigeon.WebChromeClientFlutterApi.onShowFileChooser', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebChromeClientFlutterApi.onShowFileChooser was null.'); + 'Argument for dev.flutter.pigeon.WebChromeClientFlutterApi.onShowFileChooser was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2017,23 +1935,21 @@ abstract class WebChromeClientFlutterApi { final int? arg_paramsInstanceId = (args[2] as int?); assert(arg_paramsInstanceId != null, 'Argument for dev.flutter.pigeon.WebChromeClientFlutterApi.onShowFileChooser was null, expected non-null int.'); - final List output = await api.onShowFileChooser( - arg_instanceId!, arg_webViewInstanceId!, arg_paramsInstanceId!); + final List output = await api.onShowFileChooser(arg_instanceId!, arg_webViewInstanceId!, arg_paramsInstanceId!); return output; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebChromeClientFlutterApi.onPermissionRequest', - codec, + 'dev.flutter.pigeon.WebChromeClientFlutterApi.onPermissionRequest', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebChromeClientFlutterApi.onPermissionRequest was null.'); + 'Argument for dev.flutter.pigeon.WebChromeClientFlutterApi.onPermissionRequest was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2119,7 +2035,7 @@ class _FileChooserParamsFlutterApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return FileChooserModeEnumData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -2131,14 +2047,11 @@ class _FileChooserParamsFlutterApiCodec extends StandardMessageCodec { /// /// See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams. abstract class FileChooserParamsFlutterApi { - static const MessageCodec codec = - _FileChooserParamsFlutterApiCodec(); + static const MessageCodec codec = _FileChooserParamsFlutterApiCodec(); - void create(int instanceId, bool isCaptureEnabled, List acceptTypes, - FileChooserModeEnumData mode, String? filenameHint); + void create(int instanceId, bool isCaptureEnabled, List acceptTypes, FileChooserModeEnumData mode, String? filenameHint); - static void setup(FileChooserParamsFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(FileChooserParamsFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.FileChooserParamsFlutterApi.create', codec, @@ -2148,7 +2061,7 @@ abstract class FileChooserParamsFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.FileChooserParamsFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.FileChooserParamsFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2156,17 +2069,14 @@ abstract class FileChooserParamsFlutterApi { final bool? arg_isCaptureEnabled = (args[1] as bool?); assert(arg_isCaptureEnabled != null, 'Argument for dev.flutter.pigeon.FileChooserParamsFlutterApi.create was null, expected non-null bool.'); - final List? arg_acceptTypes = - (args[2] as List?)?.cast(); + final List? arg_acceptTypes = (args[2] as List?)?.cast(); assert(arg_acceptTypes != null, 'Argument for dev.flutter.pigeon.FileChooserParamsFlutterApi.create was null, expected non-null List.'); - final FileChooserModeEnumData? arg_mode = - (args[3] as FileChooserModeEnumData?); + final FileChooserModeEnumData? arg_mode = (args[3] as FileChooserModeEnumData?); assert(arg_mode != null, 'Argument for dev.flutter.pigeon.FileChooserParamsFlutterApi.create was null, expected non-null FileChooserModeEnumData.'); final String? arg_filenameHint = (args[4] as String?); - api.create(arg_instanceId!, arg_isCaptureEnabled!, arg_acceptTypes!, - arg_mode!, arg_filenameHint); + api.create(arg_instanceId!, arg_isCaptureEnabled!, arg_acceptTypes!, arg_mode!, arg_filenameHint); return; }); } @@ -2196,8 +2106,8 @@ class PermissionRequestHostApi { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PermissionRequestHostApi.grant', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_resources]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_resources]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2251,8 +2161,7 @@ abstract class PermissionRequestFlutterApi { /// Create a new Dart instance and add it to the `InstanceManager`. void create(int instanceId, List resources); - static void setup(PermissionRequestFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(PermissionRequestFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PermissionRequestFlutterApi.create', codec, @@ -2262,13 +2171,12 @@ abstract class PermissionRequestFlutterApi { } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PermissionRequestFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.PermissionRequestFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, 'Argument for dev.flutter.pigeon.PermissionRequestFlutterApi.create was null, expected non-null int.'); - final List? arg_resources = - (args[1] as List?)?.cast(); + final List? arg_resources = (args[1] as List?)?.cast(); assert(arg_resources != null, 'Argument for dev.flutter.pigeon.PermissionRequestFlutterApi.create was null, expected non-null List.'); api.create(arg_instanceId!, arg_resources!); diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart index 64f762f72d5..ba29e0eae3e 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart @@ -8,6 +8,7 @@ import 'dart:typed_data'; import 'dart:ui'; import 'package:flutter/services.dart' show BinaryMessenger; +import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart' show ContentOffsetChange; import 'android_webview.dart'; import 'android_webview.g.dart'; @@ -384,14 +385,14 @@ class WebViewFlutterApiImpl implements WebViewFlutterApi { @override void onScrollPosChange( - int webViewInstanceId, int x, int y, int oldX, int oldY) { + int webViewInstanceId, int x, int y) { final WebView? webViewInstance = instanceManager .getInstanceWithWeakReference(webViewInstanceId) as WebView?; assert( webViewInstance != null, 'InstanceManager does not contain a WebView with instanceId: $webViewInstanceId', ); - webViewInstance!.onScrollChanged!(x, y, oldX, oldY); + webViewInstance!.onScrollChanged!(ContentOffsetChange(x, y)); } } diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart index dd0b7ff87eb..97d68bf3cce 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart @@ -106,13 +106,11 @@ class AndroidWebViewController extends PlatformWebViewController { _androidWebViewParams.androidWebViewProxy.createAndroidWebView( onScrollChanged: withWeakReferenceTo(this, (WeakReference weakReference) { - return (int l, int t, int oldL, int oldT) async { - if (weakReference.target?._onContentOffsetChangedCallback != null) { - return weakReference.target!._onContentOffsetChangedCallback!( - l, t, oldL, oldT); - } - }; - })); + return (ContentOffsetChange contentOffsetChange) async { + final Function(ContentOffsetChange)? callback = weakReference.target?._onContentOffsetChangedCallback; + callback?.call(contentOffsetChange); + }; + })); late final android_webview.WebChromeClient _webChromeClient = _androidWebViewParams.androidWebViewProxy.createAndroidWebChromeClient( @@ -198,7 +196,7 @@ class AndroidWebViewController extends PlatformWebViewController { _onShowFileSelectorCallback; void Function(PlatformWebViewPermissionRequest)? _onPermissionRequestCallback; - Function(int left, int top, int oldLeft, int oldTop)? + Function(ContentOffsetChange contentOffsetChange)? _onContentOffsetChangedCallback; /// Whether to enable the platform's webview content debugging tools. @@ -420,7 +418,7 @@ class AndroidWebViewController extends PlatformWebViewController { @override Future setOnContentOffsetChanged( - void Function(int left, int top, int oldLeft, int oldTop)? + void Function(ContentOffsetChange contentOffsetChange)? onOffsetChange) async { _onContentOffsetChangedCallback = onOffsetChange; } diff --git a/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart b/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart index c5e12512a9a..2536e130890 100644 --- a/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart +++ b/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart @@ -213,7 +213,7 @@ abstract class WebViewFlutterApi { void create(int identifier); void onScrollPosChange( - int webViewInstanceId, int x, int y, int oldX, int oldY); + int webViewInstanceId, int x, int y); } @HostApi(dartHostTestHandler: 'TestWebSettingsHostApi') diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart index 5093f5a79cf..46ffec8a801 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart @@ -91,7 +91,7 @@ void main() { }) => MockWebChromeClient(), createAndroidWebView: - ({dynamic Function(int, int, int, int)? onScrollChanged}) => + ({dynamic Function(ContentOffsetChange contentOffsetChange)? onScrollChanged}) => nonNullMockWebView, createAndroidWebViewClient: ({ void Function(android_webview.WebView webView, String url)? 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 95caa350387..345af2713fa 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 @@ -678,12 +678,7 @@ class MockAndroidWebViewController extends _i1.Mock ) as _i9.Future); @override _i9.Future setOnContentOffsetChanged( - void Function( - int, - int, - int, - int, - )? onOffsetChange) => + void Function(_i3.ContentOffsetChange)? onOffsetChange) => (super.noSuchMethod( Invocation.method( #setOnContentOffsetChanged, @@ -744,40 +739,23 @@ class MockAndroidWebViewProxy extends _i1.Mock implements _i10.AndroidWebViewProxy { @override _i2.WebView Function( - dynamic Function( - int, - int, - int, - int, - )?) get createAndroidWebView => (super.noSuchMethod( + {dynamic Function(_i3.ContentOffsetChange)? + onScrollChanged}) get createAndroidWebView => (super.noSuchMethod( Invocation.getter(#createAndroidWebView), - returnValue: (dynamic Function( - int, - int, - int, - int, - )? onScrollChanged) => + returnValue: ( + {dynamic Function(_i3.ContentOffsetChange)? onScrollChanged}) => _FakeWebView_7( this, Invocation.getter(#createAndroidWebView), ), - returnValueForMissingStub: (dynamic Function( - int, - int, - int, - int, - )? onScrollChanged) => + returnValueForMissingStub: ( + {dynamic Function(_i3.ContentOffsetChange)? onScrollChanged}) => _FakeWebView_7( this, Invocation.getter(#createAndroidWebView), ), ) as _i2.WebView Function( - dynamic Function( - int, - int, - int, - int, - )?)); + {dynamic Function(_i3.ContentOffsetChange)? onScrollChanged})); @override _i2.WebChromeClient Function({ void Function( 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 c247d0c69c8..ccae381db3e 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 @@ -15,8 +15,7 @@ import 'package:webview_flutter_android/src/android_webview.g.dart'; /// Host API for managing the native `InstanceManager`. abstract class TestInstanceManagerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); /// Clear the native `InstanceManager`. @@ -24,19 +23,15 @@ abstract class TestInstanceManagerHostApi { /// This is typically only used after a hot restart. void clear(); - static void setup(TestInstanceManagerHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestInstanceManagerHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.InstanceManagerHostApi.clear', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { // ignore message api.clear(); return []; @@ -52,27 +47,22 @@ abstract class TestInstanceManagerHostApi { /// /// See https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. abstract class TestJavaObjectHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void dispose(int identifier); - static void setup(TestJavaObjectHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestJavaObjectHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.JavaObjectHostApi.dispose', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.JavaObjectHostApi.dispose was null.'); + 'Argument for dev.flutter.pigeon.JavaObjectHostApi.dispose was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -100,7 +90,7 @@ class _TestWebViewHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return WebViewPoint.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -109,17 +99,14 @@ class _TestWebViewHostApiCodec extends StandardMessageCodec { } abstract class TestWebViewHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = _TestWebViewHostApiCodec(); void create(int instanceId); - void loadData( - int instanceId, String data, String? mimeType, String? encoding); + void loadData(int instanceId, String data, String? mimeType, String? encoding); - void loadDataWithBaseUrl(int instanceId, String? baseUrl, String data, - String? mimeType, String? encoding, String? historyUrl); + void loadDataWithBaseUrl(int instanceId, String? baseUrl, String data, String? mimeType, String? encoding, String? historyUrl); void loadUrl(int instanceId, String url, Map headers); @@ -167,21 +154,17 @@ abstract class TestWebViewHostApi { void setBackgroundColor(int instanceId, int color); - static void setup(TestWebViewHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebViewHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -196,14 +179,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.loadData', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.loadData was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.loadData was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -223,14 +203,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.loadDataWithBaseUrl', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.loadDataWithBaseUrl was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.loadDataWithBaseUrl was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -242,8 +219,7 @@ abstract class TestWebViewHostApi { final String? arg_mimeType = (args[3] as String?); final String? arg_encoding = (args[4] as String?); final String? arg_historyUrl = (args[5] as String?); - api.loadDataWithBaseUrl(arg_instanceId!, arg_baseUrl, arg_data!, - arg_mimeType, arg_encoding, arg_historyUrl); + api.loadDataWithBaseUrl(arg_instanceId!, arg_baseUrl, arg_data!, arg_mimeType, arg_encoding, arg_historyUrl); return []; }); } @@ -253,14 +229,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.loadUrl', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.loadUrl was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.loadUrl was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -268,8 +241,7 @@ abstract class TestWebViewHostApi { final String? arg_url = (args[1] as String?); assert(arg_url != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.loadUrl was null, expected non-null String.'); - final Map? arg_headers = - (args[2] as Map?)?.cast(); + final Map? arg_headers = (args[2] as Map?)?.cast(); assert(arg_headers != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.loadUrl was null, expected non-null Map.'); api.loadUrl(arg_instanceId!, arg_url!, arg_headers!); @@ -282,14 +254,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.postUrl', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.postUrl was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.postUrl was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -310,14 +279,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.getUrl', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.getUrl was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.getUrl was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -332,14 +298,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.canGoBack', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.canGoBack was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.canGoBack was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -354,14 +317,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.canGoForward', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.canGoForward was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.canGoForward was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -376,14 +336,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.goBack', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.goBack was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.goBack was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -398,14 +355,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.goForward', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.goForward was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.goForward was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -420,14 +374,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.reload', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.reload was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.reload was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -442,14 +393,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.clearCache', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.clearCache was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.clearCache was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -467,14 +415,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.evaluateJavascript', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.evaluateJavascript was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.evaluateJavascript was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -482,8 +427,7 @@ abstract class TestWebViewHostApi { final String? arg_javascriptString = (args[1] as String?); assert(arg_javascriptString != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.evaluateJavascript was null, expected non-null String.'); - final String? output = await api.evaluateJavascript( - arg_instanceId!, arg_javascriptString!); + final String? output = await api.evaluateJavascript(arg_instanceId!, arg_javascriptString!); return [output]; }); } @@ -493,14 +437,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.getTitle', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.getTitle was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.getTitle was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -515,14 +456,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.scrollTo', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.scrollTo was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.scrollTo was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -543,14 +481,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.scrollBy', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.scrollBy was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.scrollBy was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -571,14 +506,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.getScrollX', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.getScrollX was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.getScrollX was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -593,14 +525,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.getScrollY', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.getScrollY was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.getScrollY was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -615,14 +544,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.getScrollPosition', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.getScrollPosition was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.getScrollPosition was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -634,18 +560,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebViewHostApi.setWebContentsDebuggingEnabled', - codec, + 'dev.flutter.pigeon.WebViewHostApi.setWebContentsDebuggingEnabled', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.setWebContentsDebuggingEnabled was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.setWebContentsDebuggingEnabled was null.'); final List args = (message as List?)!; final bool? arg_enabled = (args[0] as bool?); assert(arg_enabled != null, @@ -660,14 +582,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.setWebViewClient', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.setWebViewClient was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.setWebViewClient was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -685,14 +604,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.addJavaScriptChannel', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.addJavaScriptChannel was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.addJavaScriptChannel was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -700,8 +616,7 @@ abstract class TestWebViewHostApi { final int? arg_javaScriptChannelInstanceId = (args[1] as int?); assert(arg_javaScriptChannelInstanceId != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.addJavaScriptChannel was null, expected non-null int.'); - api.addJavaScriptChannel( - arg_instanceId!, arg_javaScriptChannelInstanceId!); + api.addJavaScriptChannel(arg_instanceId!, arg_javaScriptChannelInstanceId!); return []; }); } @@ -711,14 +626,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.removeJavaScriptChannel', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.removeJavaScriptChannel was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.removeJavaScriptChannel was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -726,8 +638,7 @@ abstract class TestWebViewHostApi { final int? arg_javaScriptChannelInstanceId = (args[1] as int?); assert(arg_javaScriptChannelInstanceId != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.removeJavaScriptChannel was null, expected non-null int.'); - api.removeJavaScriptChannel( - arg_instanceId!, arg_javaScriptChannelInstanceId!); + api.removeJavaScriptChannel(arg_instanceId!, arg_javaScriptChannelInstanceId!); return []; }); } @@ -737,14 +648,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.setDownloadListener', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.setDownloadListener was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.setDownloadListener was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -760,14 +668,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.setWebChromeClient', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.setWebChromeClient was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.setWebChromeClient was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -783,14 +688,11 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.setBackgroundColor', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.setBackgroundColor was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.setBackgroundColor was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -807,8 +709,7 @@ abstract class TestWebViewHostApi { } abstract class TestWebSettingsHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId, int webViewInstanceId); @@ -839,21 +740,17 @@ abstract class TestWebSettingsHostApi { void setTextZoom(int instanceId, int textZoom); - static void setup(TestWebSettingsHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebSettingsHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebSettingsHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -871,14 +768,11 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setDomStorageEnabled', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setDomStorageEnabled was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setDomStorageEnabled was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -893,18 +787,14 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically', - codec, + 'dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -912,26 +802,21 @@ abstract class TestWebSettingsHostApi { final bool? arg_flag = (args[1] as bool?); assert(arg_flag != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically was null, expected non-null bool.'); - api.setJavaScriptCanOpenWindowsAutomatically( - arg_instanceId!, arg_flag!); + api.setJavaScriptCanOpenWindowsAutomatically(arg_instanceId!, arg_flag!); return []; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebSettingsHostApi.setSupportMultipleWindows', - codec, + 'dev.flutter.pigeon.WebSettingsHostApi.setSupportMultipleWindows', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setSupportMultipleWindows was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setSupportMultipleWindows was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -949,14 +834,11 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptEnabled', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptEnabled was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptEnabled was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -974,14 +856,11 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setUserAgentString', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setUserAgentString was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setUserAgentString was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -994,18 +873,14 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture', - codec, + 'dev.flutter.pigeon.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1013,8 +888,7 @@ abstract class TestWebSettingsHostApi { final bool? arg_require = (args[1] as bool?); assert(arg_require != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture was null, expected non-null bool.'); - api.setMediaPlaybackRequiresUserGesture( - arg_instanceId!, arg_require!); + api.setMediaPlaybackRequiresUserGesture(arg_instanceId!, arg_require!); return []; }); } @@ -1024,14 +898,11 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setSupportZoom', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setSupportZoom was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setSupportZoom was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1046,18 +917,14 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebSettingsHostApi.setLoadWithOverviewMode', - codec, + 'dev.flutter.pigeon.WebSettingsHostApi.setLoadWithOverviewMode', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setLoadWithOverviewMode was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setLoadWithOverviewMode was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1075,14 +942,11 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setUseWideViewPort', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setUseWideViewPort was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setUseWideViewPort was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1100,14 +964,11 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setDisplayZoomControls', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setDisplayZoomControls was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setDisplayZoomControls was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1125,14 +986,11 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setBuiltInZoomControls', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setBuiltInZoomControls was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setBuiltInZoomControls was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1150,14 +1008,11 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setAllowFileAccess', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setAllowFileAccess was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setAllowFileAccess was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1175,14 +1030,11 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setTextZoom', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setTextZoom was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setTextZoom was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1199,27 +1051,22 @@ abstract class TestWebSettingsHostApi { } abstract class TestJavaScriptChannelHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId, String channelName); - static void setup(TestJavaScriptChannelHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestJavaScriptChannelHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.JavaScriptChannelHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.JavaScriptChannelHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.JavaScriptChannelHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1236,30 +1083,24 @@ abstract class TestJavaScriptChannelHostApi { } abstract class TestWebViewClientHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); - void setSynchronousReturnValueForShouldOverrideUrlLoading( - int instanceId, bool value); + void setSynchronousReturnValueForShouldOverrideUrlLoading(int instanceId, bool value); - static void setup(TestWebViewClientHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebViewClientHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewClientHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewClientHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.WebViewClientHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1271,18 +1112,14 @@ abstract class TestWebViewClientHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading', - codec, + 'dev.flutter.pigeon.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading was null.'); + 'Argument for dev.flutter.pigeon.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1290,8 +1127,7 @@ abstract class TestWebViewClientHostApi { final bool? arg_value = (args[1] as bool?); assert(arg_value != null, 'Argument for dev.flutter.pigeon.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading was null, expected non-null bool.'); - api.setSynchronousReturnValueForShouldOverrideUrlLoading( - arg_instanceId!, arg_value!); + api.setSynchronousReturnValueForShouldOverrideUrlLoading(arg_instanceId!, arg_value!); return []; }); } @@ -1300,27 +1136,22 @@ abstract class TestWebViewClientHostApi { } abstract class TestDownloadListenerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); - static void setup(TestDownloadListenerHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestDownloadListenerHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.DownloadListenerHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.DownloadListenerHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.DownloadListenerHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1334,30 +1165,24 @@ abstract class TestDownloadListenerHostApi { } abstract class TestWebChromeClientHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); - void setSynchronousReturnValueForOnShowFileChooser( - int instanceId, bool value); + void setSynchronousReturnValueForOnShowFileChooser(int instanceId, bool value); - static void setup(TestWebChromeClientHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebChromeClientHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebChromeClientHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebChromeClientHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.WebChromeClientHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1369,18 +1194,14 @@ abstract class TestWebChromeClientHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser', - codec, + 'dev.flutter.pigeon.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser was null.'); + 'Argument for dev.flutter.pigeon.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1388,8 +1209,7 @@ abstract class TestWebChromeClientHostApi { final bool? arg_value = (args[1] as bool?); assert(arg_value != null, 'Argument for dev.flutter.pigeon.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser was null, expected non-null bool.'); - api.setSynchronousReturnValueForOnShowFileChooser( - arg_instanceId!, arg_value!); + api.setSynchronousReturnValueForOnShowFileChooser(arg_instanceId!, arg_value!); return []; }); } @@ -1398,29 +1218,24 @@ abstract class TestWebChromeClientHostApi { } abstract class TestAssetManagerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); List list(String path); String getAssetFilePathByName(String name); - static void setup(TestAssetManagerHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestAssetManagerHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.FlutterAssetManagerHostApi.list', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.FlutterAssetManagerHostApi.list was null.'); + 'Argument for dev.flutter.pigeon.FlutterAssetManagerHostApi.list was null.'); final List args = (message as List?)!; final String? arg_path = (args[0] as String?); assert(arg_path != null, @@ -1432,18 +1247,14 @@ abstract class TestAssetManagerHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.FlutterAssetManagerHostApi.getAssetFilePathByName', - codec, + 'dev.flutter.pigeon.FlutterAssetManagerHostApi.getAssetFilePathByName', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.FlutterAssetManagerHostApi.getAssetFilePathByName was null.'); + 'Argument for dev.flutter.pigeon.FlutterAssetManagerHostApi.getAssetFilePathByName was null.'); final List args = (message as List?)!; final String? arg_name = (args[0] as String?); assert(arg_name != null, @@ -1457,29 +1268,24 @@ abstract class TestAssetManagerHostApi { } abstract class TestWebStorageHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); void deleteAllData(int instanceId); - static void setup(TestWebStorageHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebStorageHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebStorageHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebStorageHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.WebStorageHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1494,14 +1300,11 @@ abstract class TestWebStorageHostApi { 'dev.flutter.pigeon.WebStorageHostApi.deleteAllData', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebStorageHostApi.deleteAllData was null.'); + 'Argument for dev.flutter.pigeon.WebStorageHostApi.deleteAllData was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1522,8 +1325,7 @@ abstract class TestWebStorageHostApi { /// /// See https://developer.android.com/reference/android/webkit/PermissionRequest. abstract class TestPermissionRequestHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); /// Handles Dart method `PermissionRequest.grant`. @@ -1532,27 +1334,22 @@ abstract class TestPermissionRequestHostApi { /// Handles Dart method `PermissionRequest.deny`. void deny(int instanceId); - static void setup(TestPermissionRequestHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestPermissionRequestHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PermissionRequestHostApi.grant', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PermissionRequestHostApi.grant was null.'); + 'Argument for dev.flutter.pigeon.PermissionRequestHostApi.grant was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, 'Argument for dev.flutter.pigeon.PermissionRequestHostApi.grant was null, expected non-null int.'); - final List? arg_resources = - (args[1] as List?)?.cast(); + final List? arg_resources = (args[1] as List?)?.cast(); assert(arg_resources != null, 'Argument for dev.flutter.pigeon.PermissionRequestHostApi.grant was null, expected non-null List.'); api.grant(arg_instanceId!, arg_resources!); @@ -1565,14 +1362,11 @@ abstract class TestPermissionRequestHostApi { 'dev.flutter.pigeon.PermissionRequestHostApi.deny', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PermissionRequestHostApi.deny was null.'); + 'Argument for dev.flutter.pigeon.PermissionRequestHostApi.deny was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart index ef259fd213e..95747128ba8 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart @@ -8,6 +8,7 @@ import 'package:plugin_platform_interface/plugin_platform_interface.dart'; import 'platform_navigation_delegate.dart'; import 'types/types.dart'; +import 'types/content_offset_change.dart'; import 'webview_platform.dart' show WebViewPlatform; /// Interface for a platform implementation of a web view controller. @@ -273,7 +274,7 @@ abstract class PlatformWebViewController extends PlatformInterface { /// Toggle the listener for content offset changes. Set to null to stop listening. Future setOnContentOffsetChanged( - void Function(int left, int top, int oldLeft, int oldTop)? + void Function(ContentOffsetChange contentOffsetChange)? onOffsetChange) { throw UnimplementedError( 'setOnContentOffsetChanged is not implemented on the current platform'); diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/content_offset_change.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/content_offset_change.dart new file mode 100644 index 00000000000..83a066d5794 --- /dev/null +++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/content_offset_change.dart @@ -0,0 +1,13 @@ +import 'package:flutter/foundation.dart'; + +/// Defines the parameters of the content offset change callback. +class ContentOffsetChange { + /// Creates a [ContentOffsetChange]. + const ContentOffsetChange(this.x, this.y); + + /// The value of horizontal offset with the origin begin at the leftmost of the [WebView] + final int x; + + /// The value of vertical offset with the origin begin at the topmost of the [WebView] + final int y; +} \ No newline at end of file diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/types.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/types.dart index e980aece3af..0872cfa1284 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/types.dart +++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/types.dart @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +export 'content_offset_change.dart'; export 'http_response_error.dart'; export 'javascript_message.dart'; export 'javascript_mode.dart'; From c7b523132761dff7c6c07c9b6937f4944a06f699 Mon Sep 17 00:00:00 2001 From: TheVinhLuong Date: Tue, 30 May 2023 22:20:58 +0700 Subject: [PATCH 06/20] Make dart low-level code for offset changes listener mirror the Android API closely --- .../GeneratedAndroidWebView.java | 15 + .../webviewflutter/WebViewFlutterApiImpl.java | 14 +- .../webviewflutter/WebViewHostApiImpl.java | 6 +- .../plugins/webviewflutter/WebViewTest.java | 4 +- .../webview_flutter_test.dart | 19 +- .../lib/src/android_proxy.dart | 4 +- .../lib/src/android_webview.g.dart | 34 + .../lib/src/android_webview_api_impls.dart | 7 +- .../lib/src/android_webview_controller.dart | 11 +- .../pigeons/android_webview.dart | 3 +- .../webview_flutter_android/pubspec.yaml | 2 +- ...ndroid_navigation_delegate_test.mocks.dart | 4 +- .../test/android_webview_controller_test.dart | 8 +- ...android_webview_controller_test.mocks.dart | 4 +- ...oid_webview_cookie_manager_test.mocks.dart | 15 +- .../test/android_webview_test.mocks.dart | 4 +- .../test/instance_manager_test.mocks.dart | 4 +- ...iew_android_cookie_manager_test.mocks.dart | 4 +- .../webview_android_widget_test.mocks.dart | 4 +- .../test/test_android_webview.g.dart | 618 ++++++++++++------ .../CHANGELOG.md | 4 + .../lib/src/platform_webview_controller.dart | 4 +- .../lib/src/types/content_offset_change.dart | 10 +- .../pubspec.yaml | 2 +- 24 files changed, 550 insertions(+), 254 deletions(-) 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 4dc43fa1d9d..ad7cb651e88 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 @@ -1575,6 +1575,21 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); } + + public void onScrollChanged( + @NonNull Long webViewInstanceIdArg, + @NonNull Long xArg, + @NonNull Long yArg, + @NonNull Long oldXArg, + @NonNull Long oldYArg, + @NonNull Reply callback) { + BasicMessageChannel channel = + new BasicMessageChannel<>( + binaryMessenger, "dev.flutter.pigeon.WebViewFlutterApi.onScrollChanged", getCodec()); + channel.send( + new ArrayList(Arrays.asList(webViewInstanceIdArg, xArg, yArg, oldXArg, oldYArg)), + channelReply -> callback.reply(null)); + } } /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface WebSettingsHostApi { diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java index 279900c2dd3..a108a46e65a 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java @@ -60,13 +60,17 @@ void setApi(@NonNull WebViewFlutterApi api) { public void onScrollChanged( @NonNull WebView instance, - @NonNull Long xArg, - @NonNull Long yArg, + @NonNull Long x, + @NonNull Long y, + @NonNull Long oldX, + @NonNull Long oldY, @NonNull WebViewFlutterApi.Reply callback) { - api.onScrollPosChange( + api.onScrollChanged( Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(instance)), - xArg, - yArg, + x, + y, + oldX, + oldY, callback); } } diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java index 89a9ca10a49..10d2ddbe4b0 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewHostApiImpl.java @@ -157,10 +157,10 @@ public WebChromeClient getWebChromeClient() { } @Override - protected void onScrollChanged(int l, int t, int oldL, int oldT) { - super.onScrollChanged(l, t, oldL, oldT); + protected void onScrollChanged(int left, int top, int oldLeft, int oldTop) { + super.onScrollChanged(left, top, oldLeft, oldTop); api.onScrollChanged( - this, (long) l, (long) t, reply -> {}); + this, (long) left, (long) top, (long) oldLeft, (long) oldTop, reply -> {}); } /** diff --git a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java index ccfd65d3977..5fa1899a49f 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/test/java/io/flutter/plugins/webviewflutter/WebViewTest.java @@ -368,12 +368,12 @@ public void onScrollChanged() { flutterApiImpl.setApi(mockFlutterApi); flutterApiImpl.create(mockWebView, reply -> {}); - flutterApiImpl.onScrollChanged(mockWebView, 0L, 1L, reply -> {}); + flutterApiImpl.onScrollChanged(mockWebView, 0L, 1L, 2L, 3L, reply -> {}); final long instanceIdentifier = Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockWebView)); verify(mockFlutterApi) - .onScrollPosChange(eq(instanceIdentifier), eq(0L), eq(1L), any()); + .onScrollChanged(eq(instanceIdentifier), eq(0L), eq(1L), eq(2L), eq(3L), any()); instanceManager.stopFinalizationListener(); } diff --git a/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart index 903804ed036..859b105f820 100644 --- a/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart @@ -684,7 +684,8 @@ Future main() async { base64Encode(const Utf8Encoder().convert(scrollTestPage)); final Completer pageLoaded = Completer(); - Completer offsetsCompleter = Completer(); + Completer offsetsCompleter = + Completer(); final PlatformWebViewController controller = PlatformWebViewController( const PlatformWebViewControllerCreationParams(), ) @@ -701,9 +702,7 @@ Future main() async { ), ), ) - ..setOnContentOffsetChanged( - (ContentOffsetChange contentOffsetChange) { - print('comppp $contentOffsetChange'); + ..setOnContentOffsetChanged((ContentOffsetChange contentOffsetChange) { offsetsCompleter.complete(contentOffsetChange); }); @@ -734,8 +733,11 @@ Future main() async { expect(scrollPos.dx, X_SCROLL); expect(scrollPos.dy, Y_SCROLL); await expectLater( - offsetsCompleter.future.then((ContentOffsetChange contentOffsetChange) => [contentOffsetChange.x, contentOffsetChange.y]), completion([X_SCROLL, Y_SCROLL])); - + offsetsCompleter.future.then( + (ContentOffsetChange contentOffsetChange) => + [contentOffsetChange.x, contentOffsetChange.y]), + completion([X_SCROLL, Y_SCROLL])); + // Check scrollBy() (on top of scrollTo()) offsetsCompleter = Completer(); await controller.scrollBy(X_SCROLL, Y_SCROLL); @@ -743,7 +745,10 @@ Future main() async { expect(scrollPos.dx, X_SCROLL * 2); expect(scrollPos.dy, Y_SCROLL * 2); await expectLater( - offsetsCompleter.future.then((ContentOffsetChange contentOffsetChange) => [contentOffsetChange.x, contentOffsetChange.y]), completion([X_SCROLL * 2, Y_SCROLL * 2])); + offsetsCompleter.future.then( + (ContentOffsetChange contentOffsetChange) => + [contentOffsetChange.x, contentOffsetChange.y]), + completion([X_SCROLL * 2, Y_SCROLL * 2])); }); }); diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart index bd7b85783ca..548d1c15327 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart @@ -28,8 +28,8 @@ class AndroidWebViewProxy { /// Constructs a [android_webview.WebView]. final android_webview.WebView Function( - {Function(ContentOffsetChange contentOffsetChange)? - onScrollChanged}) createAndroidWebView; + {Function(ContentOffsetChange contentOffsetChange)? onScrollChanged}) + createAndroidWebView; /// Constructs a [android_webview.WebChromeClient]. final android_webview.WebChromeClient Function({ 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 5a2c56ef16a..f8c7c2c78d5 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 @@ -1050,6 +1050,8 @@ abstract class WebViewFlutterApi { /// Create a new Dart instance and add it to the `InstanceManager`. void create(int identifier); + void onScrollChanged(int webViewInstanceId, int x, int y, int oldX, int oldY); + static void setup(WebViewFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { @@ -1071,6 +1073,38 @@ abstract class WebViewFlutterApi { }); } } + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.WebViewFlutterApi.onScrollChanged', codec, + binaryMessenger: binaryMessenger); + if (api == null) { + channel.setMessageHandler(null); + } else { + channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollChanged was null.'); + final List args = (message as List?)!; + final int? arg_webViewInstanceId = (args[0] as int?); + assert(arg_webViewInstanceId != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollChanged was null, expected non-null int.'); + final int? arg_x = (args[1] as int?); + assert(arg_x != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollChanged was null, expected non-null int.'); + final int? arg_y = (args[2] as int?); + assert(arg_y != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollChanged was null, expected non-null int.'); + final int? arg_oldX = (args[3] as int?); + assert(arg_oldX != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollChanged was null, expected non-null int.'); + final int? arg_oldY = (args[4] as int?); + assert(arg_oldY != null, + 'Argument for dev.flutter.pigeon.WebViewFlutterApi.onScrollChanged was null, expected non-null int.'); + api.onScrollChanged( + arg_webViewInstanceId!, arg_x!, arg_y!, arg_oldX!, arg_oldY!); + return; + }); + } + } } } diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart index 8f62d1423fb..783967ef702 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart @@ -8,7 +8,8 @@ import 'dart:typed_data'; import 'dart:ui'; import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart' show ContentOffsetChange; +import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart' + show ContentOffsetChange; import 'android_webview.dart'; import 'android_webview.g.dart'; @@ -384,8 +385,8 @@ class WebViewFlutterApiImpl implements WebViewFlutterApi { } @override - void onScrollPosChange( - int webViewInstanceId, int x, int y) { + void onScrollChanged( + int webViewInstanceId, int x, int y, int oldX, int oldY) { final WebView? webViewInstance = instanceManager .getInstanceWithWeakReference(webViewInstanceId) as WebView?; assert( diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart index 4728e1da09a..79098a50535 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart @@ -105,11 +105,12 @@ class AndroidWebViewController extends PlatformWebViewController { _androidWebViewParams.androidWebViewProxy.createAndroidWebView( onScrollChanged: withWeakReferenceTo(this, (WeakReference weakReference) { - return (ContentOffsetChange contentOffsetChange) async { - final Function(ContentOffsetChange)? callback = weakReference.target?._onContentOffsetChangedCallback; - callback?.call(contentOffsetChange); - }; - })); + return (ContentOffsetChange contentOffsetChange) async { + final Function(ContentOffsetChange)? callback = + weakReference.target?._onContentOffsetChangedCallback; + callback?.call(contentOffsetChange); + }; + })); late final android_webview.WebChromeClient _webChromeClient = _androidWebViewParams.androidWebViewProxy.createAndroidWebChromeClient( diff --git a/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart b/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart index aaefacf88ae..a20d4970f68 100644 --- a/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart +++ b/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart @@ -229,8 +229,7 @@ abstract class WebViewFlutterApi { /// Create a new Dart instance and add it to the `InstanceManager`. void create(int identifier); - void onScrollPosChange( - int webViewInstanceId, int x, int y); + void onScrollChanged(int webViewInstanceId, int x, int y, int oldX, int oldY); } @HostApi(dartHostTestHandler: 'TestWebSettingsHostApi') diff --git a/packages/webview_flutter/webview_flutter_android/pubspec.yaml b/packages/webview_flutter/webview_flutter_android/pubspec.yaml index 5e2b8597109..16a80a73f48 100644 --- a/packages/webview_flutter/webview_flutter_android/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_android/pubspec.yaml @@ -2,7 +2,7 @@ name: webview_flutter_android description: A Flutter plugin that provides a WebView widget on Android. repository: https://github.com/flutter/packages/tree/main/packages/webview_flutter/webview_flutter_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22 -version: 3.7.1 +version: 3.8.0 environment: sdk: ">=2.18.0 <4.0.0" diff --git a/packages/webview_flutter/webview_flutter_android/test/android_navigation_delegate_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/android_navigation_delegate_test.mocks.dart index aa0bf6569d8..37eaec813c0 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_navigation_delegate_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_navigation_delegate_test.mocks.dart @@ -1,7 +1,9 @@ -// Mocks generated by Mockito 5.4.0 from annotations +// Mocks generated by Mockito 5.4.1 from annotations // in webview_flutter_android/test/android_navigation_delegate_test.dart. // Do not manually edit this file. +// @dart=2.19 + // ignore_for_file: no_leading_underscores_for_library_prefixes import 'package:mockito/mockito.dart' as _i1; diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart index 510792206be..497b1a9576f 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart @@ -90,9 +90,11 @@ void main() { )? onPermissionRequest, }) => MockWebChromeClient(), - createAndroidWebView: - ({dynamic Function(ContentOffsetChange contentOffsetChange)? onScrollChanged}) => - nonNullMockWebView, + createAndroidWebView: ( + {dynamic Function( + ContentOffsetChange contentOffsetChange)? + onScrollChanged}) => + nonNullMockWebView, createAndroidWebViewClient: ({ void Function(android_webview.WebView webView, String url)? onPageFinished, 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 345af2713fa..d38d82c5cb1 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 @@ -1,7 +1,9 @@ -// Mocks generated by Mockito 5.4.0 from annotations +// Mocks generated by Mockito 5.4.1 from annotations // in webview_flutter_android/test/android_webview_controller_test.dart. // Do not manually edit this file. +// @dart=2.19 + // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i9; import 'dart:typed_data' as _i14; diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_cookie_manager_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_cookie_manager_test.mocks.dart index 9f4aa1dfc70..e56b8aa6f81 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_cookie_manager_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_cookie_manager_test.mocks.dart @@ -1,7 +1,9 @@ -// Mocks generated by Mockito 5.4.0 from annotations +// Mocks generated by Mockito 5.4.1 from annotations // in webview_flutter_android/test/android_webview_cookie_manager_test.dart. // Do not manually edit this file. +// @dart=2.19 + // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i5; import 'dart:ui' as _i4; @@ -412,6 +414,17 @@ class MockAndroidWebViewController extends _i1.Mock returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); @override + _i5.Future setOnContentOffsetChanged( + void Function(_i3.ContentOffsetChange)? onOffsetChange) => + (super.noSuchMethod( + Invocation.method( + #setOnContentOffsetChanged, + [onOffsetChange], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + @override _i5.Future setMediaPlaybackRequiresUserGesture(bool? require) => (super.noSuchMethod( Invocation.method( diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart index 3b55d856d05..9f64b525b9b 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart @@ -1,7 +1,9 @@ -// Mocks generated by Mockito 5.4.0 from annotations +// Mocks generated by Mockito 5.4.1 from annotations // in webview_flutter_android/test/android_webview_test.dart. // Do not manually edit this file. +// @dart=2.19 + // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i5; import 'dart:typed_data' as _i7; diff --git a/packages/webview_flutter/webview_flutter_android/test/instance_manager_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/instance_manager_test.mocks.dart index c9e6e4bfada..d071991ab0c 100644 --- a/packages/webview_flutter/webview_flutter_android/test/instance_manager_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/instance_manager_test.mocks.dart @@ -1,7 +1,9 @@ -// Mocks generated by Mockito 5.4.0 from annotations +// Mocks generated by Mockito 5.4.1 from annotations // in webview_flutter_android/test/instance_manager_test.dart. // Do not manually edit this file. +// @dart=2.19 + // ignore_for_file: no_leading_underscores_for_library_prefixes import 'package:mockito/mockito.dart' as _i1; diff --git a/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_cookie_manager_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_cookie_manager_test.mocks.dart index 864dbaa04aa..df06f625227 100644 --- a/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_cookie_manager_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_cookie_manager_test.mocks.dart @@ -1,7 +1,9 @@ -// Mocks generated by Mockito 5.4.0 from annotations +// Mocks generated by Mockito 5.4.1 from annotations // in webview_flutter_android/test/legacy/webview_android_cookie_manager_test.dart. // Do not manually edit this file. +// @dart=2.19 + // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i3; diff --git a/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart index b82f8dea91e..c52703812fe 100644 --- a/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart @@ -1,7 +1,9 @@ -// Mocks generated by Mockito 5.4.0 from annotations +// Mocks generated by Mockito 5.4.1 from annotations // in webview_flutter_android/test/legacy/webview_android_widget_test.dart. // Do not manually edit this file. +// @dart=2.19 + // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i5; import 'dart:typed_data' as _i6; 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 2fe12d34611..20b084e40c3 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 @@ -15,7 +15,8 @@ import 'package:webview_flutter_android/src/android_webview.g.dart'; /// Host API for managing the native `InstanceManager`. abstract class TestInstanceManagerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); /// Clear the native `InstanceManager`. @@ -23,15 +24,19 @@ abstract class TestInstanceManagerHostApi { /// This is typically only used after a hot restart. void clear(); - static void setup(TestInstanceManagerHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestInstanceManagerHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.InstanceManagerHostApi.clear', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { // ignore message api.clear(); return []; @@ -47,22 +52,27 @@ abstract class TestInstanceManagerHostApi { /// /// See https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. abstract class TestJavaObjectHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void dispose(int identifier); - static void setup(TestJavaObjectHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestJavaObjectHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.JavaObjectHostApi.dispose', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.JavaObjectHostApi.dispose was null.'); + 'Argument for dev.flutter.pigeon.JavaObjectHostApi.dispose was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -220,7 +230,7 @@ class _TestWebViewHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return WebViewPoint.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -229,14 +239,17 @@ class _TestWebViewHostApiCodec extends StandardMessageCodec { } abstract class TestWebViewHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = _TestWebViewHostApiCodec(); void create(int instanceId); - void loadData(int instanceId, String data, String? mimeType, String? encoding); + void loadData( + int instanceId, String data, String? mimeType, String? encoding); - void loadDataWithBaseUrl(int instanceId, String? baseUrl, String data, String? mimeType, String? encoding, String? historyUrl); + void loadDataWithBaseUrl(int instanceId, String? baseUrl, String data, + String? mimeType, String? encoding, String? historyUrl); void loadUrl(int instanceId, String url, Map headers); @@ -284,17 +297,21 @@ abstract class TestWebViewHostApi { void setBackgroundColor(int instanceId, int color); - static void setup(TestWebViewHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebViewHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -309,11 +326,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.loadData', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.loadData was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.loadData was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -333,11 +353,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.loadDataWithBaseUrl', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.loadDataWithBaseUrl was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.loadDataWithBaseUrl was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -349,7 +372,8 @@ abstract class TestWebViewHostApi { final String? arg_mimeType = (args[3] as String?); final String? arg_encoding = (args[4] as String?); final String? arg_historyUrl = (args[5] as String?); - api.loadDataWithBaseUrl(arg_instanceId!, arg_baseUrl, arg_data!, arg_mimeType, arg_encoding, arg_historyUrl); + api.loadDataWithBaseUrl(arg_instanceId!, arg_baseUrl, arg_data!, + arg_mimeType, arg_encoding, arg_historyUrl); return []; }); } @@ -359,11 +383,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.loadUrl', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.loadUrl was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.loadUrl was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -371,7 +398,8 @@ abstract class TestWebViewHostApi { final String? arg_url = (args[1] as String?); assert(arg_url != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.loadUrl was null, expected non-null String.'); - final Map? arg_headers = (args[2] as Map?)?.cast(); + final Map? arg_headers = + (args[2] as Map?)?.cast(); assert(arg_headers != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.loadUrl was null, expected non-null Map.'); api.loadUrl(arg_instanceId!, arg_url!, arg_headers!); @@ -384,11 +412,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.postUrl', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.postUrl was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.postUrl was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -409,11 +440,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.getUrl', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.getUrl was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.getUrl was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -428,11 +462,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.canGoBack', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.canGoBack was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.canGoBack was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -447,11 +484,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.canGoForward', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.canGoForward was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.canGoForward was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -466,11 +506,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.goBack', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.goBack was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.goBack was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -485,11 +528,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.goForward', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.goForward was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.goForward was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -504,11 +550,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.reload', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.reload was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.reload was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -523,11 +572,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.clearCache', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.clearCache was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.clearCache was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -545,11 +597,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.evaluateJavascript', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.evaluateJavascript was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.evaluateJavascript was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -557,7 +612,8 @@ abstract class TestWebViewHostApi { final String? arg_javascriptString = (args[1] as String?); assert(arg_javascriptString != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.evaluateJavascript was null, expected non-null String.'); - final String? output = await api.evaluateJavascript(arg_instanceId!, arg_javascriptString!); + final String? output = await api.evaluateJavascript( + arg_instanceId!, arg_javascriptString!); return [output]; }); } @@ -567,11 +623,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.getTitle', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.getTitle was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.getTitle was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -586,11 +645,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.scrollTo', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.scrollTo was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.scrollTo was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -611,11 +673,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.scrollBy', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.scrollBy was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.scrollBy was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -636,11 +701,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.getScrollX', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.getScrollX was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.getScrollX was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -655,11 +723,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.getScrollY', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.getScrollY was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.getScrollY was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -674,11 +745,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.getScrollPosition', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.getScrollPosition was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.getScrollPosition was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -690,14 +764,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebViewHostApi.setWebContentsDebuggingEnabled', codec, + 'dev.flutter.pigeon.WebViewHostApi.setWebContentsDebuggingEnabled', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.setWebContentsDebuggingEnabled was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.setWebContentsDebuggingEnabled was null.'); final List args = (message as List?)!; final bool? arg_enabled = (args[0] as bool?); assert(arg_enabled != null, @@ -712,11 +790,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.setWebViewClient', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.setWebViewClient was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.setWebViewClient was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -734,11 +815,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.addJavaScriptChannel', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.addJavaScriptChannel was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.addJavaScriptChannel was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -746,7 +830,8 @@ abstract class TestWebViewHostApi { final int? arg_javaScriptChannelInstanceId = (args[1] as int?); assert(arg_javaScriptChannelInstanceId != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.addJavaScriptChannel was null, expected non-null int.'); - api.addJavaScriptChannel(arg_instanceId!, arg_javaScriptChannelInstanceId!); + api.addJavaScriptChannel( + arg_instanceId!, arg_javaScriptChannelInstanceId!); return []; }); } @@ -756,11 +841,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.removeJavaScriptChannel', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.removeJavaScriptChannel was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.removeJavaScriptChannel was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -768,7 +856,8 @@ abstract class TestWebViewHostApi { final int? arg_javaScriptChannelInstanceId = (args[1] as int?); assert(arg_javaScriptChannelInstanceId != null, 'Argument for dev.flutter.pigeon.WebViewHostApi.removeJavaScriptChannel was null, expected non-null int.'); - api.removeJavaScriptChannel(arg_instanceId!, arg_javaScriptChannelInstanceId!); + api.removeJavaScriptChannel( + arg_instanceId!, arg_javaScriptChannelInstanceId!); return []; }); } @@ -778,11 +867,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.setDownloadListener', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.setDownloadListener was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.setDownloadListener was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -798,11 +890,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.setWebChromeClient', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.setWebChromeClient was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.setWebChromeClient was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -818,11 +913,14 @@ abstract class TestWebViewHostApi { 'dev.flutter.pigeon.WebViewHostApi.setBackgroundColor', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewHostApi.setBackgroundColor was null.'); + 'Argument for dev.flutter.pigeon.WebViewHostApi.setBackgroundColor was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -839,7 +937,8 @@ abstract class TestWebViewHostApi { } abstract class TestWebSettingsHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId, int webViewInstanceId); @@ -870,17 +969,21 @@ abstract class TestWebSettingsHostApi { void setTextZoom(int instanceId, int textZoom); - static void setup(TestWebSettingsHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebSettingsHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebSettingsHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -898,11 +1001,14 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setDomStorageEnabled', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setDomStorageEnabled was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setDomStorageEnabled was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -917,14 +1023,18 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically', codec, + 'dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -932,21 +1042,26 @@ abstract class TestWebSettingsHostApi { final bool? arg_flag = (args[1] as bool?); assert(arg_flag != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically was null, expected non-null bool.'); - api.setJavaScriptCanOpenWindowsAutomatically(arg_instanceId!, arg_flag!); + api.setJavaScriptCanOpenWindowsAutomatically( + arg_instanceId!, arg_flag!); return []; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebSettingsHostApi.setSupportMultipleWindows', codec, + 'dev.flutter.pigeon.WebSettingsHostApi.setSupportMultipleWindows', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setSupportMultipleWindows was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setSupportMultipleWindows was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -964,11 +1079,14 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptEnabled', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptEnabled was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setJavaScriptEnabled was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -986,11 +1104,14 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setUserAgentString', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setUserAgentString was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setUserAgentString was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1003,14 +1124,18 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture', codec, + 'dev.flutter.pigeon.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1018,7 +1143,8 @@ abstract class TestWebSettingsHostApi { final bool? arg_require = (args[1] as bool?); assert(arg_require != null, 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture was null, expected non-null bool.'); - api.setMediaPlaybackRequiresUserGesture(arg_instanceId!, arg_require!); + api.setMediaPlaybackRequiresUserGesture( + arg_instanceId!, arg_require!); return []; }); } @@ -1028,11 +1154,14 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setSupportZoom', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setSupportZoom was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setSupportZoom was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1047,14 +1176,18 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebSettingsHostApi.setLoadWithOverviewMode', codec, + 'dev.flutter.pigeon.WebSettingsHostApi.setLoadWithOverviewMode', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setLoadWithOverviewMode was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setLoadWithOverviewMode was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1072,11 +1205,14 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setUseWideViewPort', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setUseWideViewPort was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setUseWideViewPort was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1094,11 +1230,14 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setDisplayZoomControls', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setDisplayZoomControls was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setDisplayZoomControls was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1116,11 +1255,14 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setBuiltInZoomControls', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setBuiltInZoomControls was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setBuiltInZoomControls was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1138,11 +1280,14 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setAllowFileAccess', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setAllowFileAccess was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setAllowFileAccess was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1160,11 +1305,14 @@ abstract class TestWebSettingsHostApi { 'dev.flutter.pigeon.WebSettingsHostApi.setTextZoom', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setTextZoom was null.'); + 'Argument for dev.flutter.pigeon.WebSettingsHostApi.setTextZoom was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1181,22 +1329,27 @@ abstract class TestWebSettingsHostApi { } abstract class TestJavaScriptChannelHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId, String channelName); - static void setup(TestJavaScriptChannelHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestJavaScriptChannelHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.JavaScriptChannelHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.JavaScriptChannelHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.JavaScriptChannelHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1213,24 +1366,30 @@ abstract class TestJavaScriptChannelHostApi { } abstract class TestWebViewClientHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); - void setSynchronousReturnValueForShouldOverrideUrlLoading(int instanceId, bool value); + void setSynchronousReturnValueForShouldOverrideUrlLoading( + int instanceId, bool value); - static void setup(TestWebViewClientHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebViewClientHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebViewClientHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewClientHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.WebViewClientHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1242,14 +1401,18 @@ abstract class TestWebViewClientHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading', codec, + 'dev.flutter.pigeon.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading was null.'); + 'Argument for dev.flutter.pigeon.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1257,7 +1420,8 @@ abstract class TestWebViewClientHostApi { final bool? arg_value = (args[1] as bool?); assert(arg_value != null, 'Argument for dev.flutter.pigeon.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading was null, expected non-null bool.'); - api.setSynchronousReturnValueForShouldOverrideUrlLoading(arg_instanceId!, arg_value!); + api.setSynchronousReturnValueForShouldOverrideUrlLoading( + arg_instanceId!, arg_value!); return []; }); } @@ -1266,22 +1430,27 @@ abstract class TestWebViewClientHostApi { } abstract class TestDownloadListenerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); - static void setup(TestDownloadListenerHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestDownloadListenerHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.DownloadListenerHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.DownloadListenerHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.DownloadListenerHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1295,24 +1464,30 @@ abstract class TestDownloadListenerHostApi { } abstract class TestWebChromeClientHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); - void setSynchronousReturnValueForOnShowFileChooser(int instanceId, bool value); + void setSynchronousReturnValueForOnShowFileChooser( + int instanceId, bool value); - static void setup(TestWebChromeClientHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebChromeClientHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebChromeClientHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebChromeClientHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.WebChromeClientHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1324,14 +1499,18 @@ abstract class TestWebChromeClientHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser', codec, + 'dev.flutter.pigeon.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser was null.'); + 'Argument for dev.flutter.pigeon.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1339,7 +1518,8 @@ abstract class TestWebChromeClientHostApi { final bool? arg_value = (args[1] as bool?); assert(arg_value != null, 'Argument for dev.flutter.pigeon.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser was null, expected non-null bool.'); - api.setSynchronousReturnValueForOnShowFileChooser(arg_instanceId!, arg_value!); + api.setSynchronousReturnValueForOnShowFileChooser( + arg_instanceId!, arg_value!); return []; }); } @@ -1348,24 +1528,29 @@ abstract class TestWebChromeClientHostApi { } abstract class TestAssetManagerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); List list(String path); String getAssetFilePathByName(String name); - static void setup(TestAssetManagerHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestAssetManagerHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.FlutterAssetManagerHostApi.list', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.FlutterAssetManagerHostApi.list was null.'); + 'Argument for dev.flutter.pigeon.FlutterAssetManagerHostApi.list was null.'); final List args = (message as List?)!; final String? arg_path = (args[0] as String?); assert(arg_path != null, @@ -1377,14 +1562,18 @@ abstract class TestAssetManagerHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.FlutterAssetManagerHostApi.getAssetFilePathByName', codec, + 'dev.flutter.pigeon.FlutterAssetManagerHostApi.getAssetFilePathByName', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.FlutterAssetManagerHostApi.getAssetFilePathByName was null.'); + 'Argument for dev.flutter.pigeon.FlutterAssetManagerHostApi.getAssetFilePathByName was null.'); final List args = (message as List?)!; final String? arg_name = (args[0] as String?); assert(arg_name != null, @@ -1398,24 +1587,29 @@ abstract class TestAssetManagerHostApi { } abstract class TestWebStorageHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); void deleteAllData(int instanceId); - static void setup(TestWebStorageHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebStorageHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.WebStorageHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebStorageHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.WebStorageHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1430,11 +1624,14 @@ abstract class TestWebStorageHostApi { 'dev.flutter.pigeon.WebStorageHostApi.deleteAllData', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.WebStorageHostApi.deleteAllData was null.'); + 'Argument for dev.flutter.pigeon.WebStorageHostApi.deleteAllData was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1455,7 +1652,8 @@ abstract class TestWebStorageHostApi { /// /// See https://developer.android.com/reference/android/webkit/PermissionRequest. abstract class TestPermissionRequestHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); /// Handles Dart method `PermissionRequest.grant`. @@ -1464,22 +1662,27 @@ abstract class TestPermissionRequestHostApi { /// Handles Dart method `PermissionRequest.deny`. void deny(int instanceId); - static void setup(TestPermissionRequestHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestPermissionRequestHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( 'dev.flutter.pigeon.PermissionRequestHostApi.grant', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PermissionRequestHostApi.grant was null.'); + 'Argument for dev.flutter.pigeon.PermissionRequestHostApi.grant was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, 'Argument for dev.flutter.pigeon.PermissionRequestHostApi.grant was null, expected non-null int.'); - final List? arg_resources = (args[1] as List?)?.cast(); + final List? arg_resources = + (args[1] as List?)?.cast(); assert(arg_resources != null, 'Argument for dev.flutter.pigeon.PermissionRequestHostApi.grant was null, expected non-null List.'); api.grant(arg_instanceId!, arg_resources!); @@ -1492,11 +1695,14 @@ abstract class TestPermissionRequestHostApi { 'dev.flutter.pigeon.PermissionRequestHostApi.deny', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.PermissionRequestHostApi.deny was null.'); + 'Argument for dev.flutter.pigeon.PermissionRequestHostApi.deny was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, diff --git a/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md b/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md index a407df5f5a0..94c9ee6038a 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.4.0 + +* Adds support to track content offset changes. See `PlatformWebViewController.setOnContentOffsetChanged`. + ## 2.3.1 * Removes obsolete null checks on non-nullable values. diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart index 95747128ba8..5c339b7c5c2 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart @@ -8,7 +8,6 @@ import 'package:plugin_platform_interface/plugin_platform_interface.dart'; import 'platform_navigation_delegate.dart'; import 'types/types.dart'; -import 'types/content_offset_change.dart'; import 'webview_platform.dart' show WebViewPlatform; /// Interface for a platform implementation of a web view controller. @@ -274,8 +273,7 @@ abstract class PlatformWebViewController extends PlatformInterface { /// Toggle the listener for content offset changes. Set to null to stop listening. Future setOnContentOffsetChanged( - void Function(ContentOffsetChange contentOffsetChange)? - onOffsetChange) { + void Function(ContentOffsetChange contentOffsetChange)? onOffsetChange) { throw UnimplementedError( 'setOnContentOffsetChanged is not implemented on the current platform'); } diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/content_offset_change.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/content_offset_change.dart index 83a066d5794..9ad1aa2723e 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/content_offset_change.dart +++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/content_offset_change.dart @@ -1,13 +1,15 @@ -import 'package:flutter/foundation.dart'; +// 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. /// Defines the parameters of the content offset change callback. class ContentOffsetChange { /// Creates a [ContentOffsetChange]. const ContentOffsetChange(this.x, this.y); - + /// The value of horizontal offset with the origin begin at the leftmost of the [WebView] final int x; - + /// The value of vertical offset with the origin begin at the topmost of the [WebView] final int y; -} \ No newline at end of file +} diff --git a/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml b/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml index e5377f0fbab..eca7b4927be 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml @@ -4,7 +4,7 @@ repository: https://github.com/flutter/packages/tree/main/packages/webview_flutt issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview_flutter%22 # NOTE: We strongly prefer non-breaking changes, even at the expense of a # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes -version: 2.3.1 +version: 2.4.0 environment: sdk: ">=2.18.0 <4.0.0" From 44ca2591626a95ed77fcb3b9fe8f3f369631f9ed Mon Sep 17 00:00:00 2001 From: TheVinhLuong Date: Tue, 4 Jul 2023 02:16:21 +0700 Subject: [PATCH 07/20] Add iOS implementation --- .../webview_flutter_test.dart | 20 +++- .../ios/Runner.xcodeproj/project.pbxproj | 6 +- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- .../ios/Runner/Base.lproj/Main.storyboard | 13 ++- .../FWFScrollViewDelegateHostApiTests.m | 77 +++++++++++++ .../RunnerTests/FWFScrollViewHostApiTests.m | 17 +++ .../example/lib/main.dart | 7 +- .../example/pubspec.yaml | 3 +- .../ios/Classes/FLTWebViewFlutterPlugin.m | 6 +- .../ios/Classes/FWFGeneratedWebKitApis.h | 40 ++++++- .../ios/Classes/FWFGeneratedWebKitApis.m | 93 ++++++++++++++- .../Classes/FWFScrollViewDelegateHostApi.h | 47 ++++++++ .../Classes/FWFScrollViewDelegateHostApi.m | 95 ++++++++++++++++ .../ios/Classes/FWFScrollViewHostApi.m | 16 +++ .../ios/Classes/webview-umbrella.h | 1 + .../lib/src/common/web_kit.g.dart | 106 +++++++++++++++++- .../lib/src/ui_kit/ui_kit.dart | 50 +++++++++ .../lib/src/ui_kit/ui_kit_api_impls.dart | 59 ++++++++++ .../lib/src/web_kit/web_kit.dart | 2 + .../lib/src/web_kit/web_kit_api_impls.dart | 12 +- .../lib/src/webkit_proxy.dart | 22 ++-- .../lib/src/webkit_webview_controller.dart | 22 ++++ .../pigeons/web_kit.dart | 32 ++++++ .../webview_flutter_wkwebview/pubspec.yaml | 3 +- .../web_kit_cookie_manager_test.mocks.dart | 4 +- .../web_kit_webview_widget_test.mocks.dart | 4 +- .../test/src/common/test_web_kit.g.dart | 70 +++++++++++- .../src/foundation/foundation_test.mocks.dart | 4 +- .../test/src/ui_kit/ui_kit_test.mocks.dart | 4 +- .../test/src/web_kit/web_kit_test.mocks.dart | 4 +- .../webkit_webview_controller_test.mocks.dart | 4 +- ...kit_webview_cookie_manager_test.mocks.dart | 4 +- .../webkit_webview_widget_test.mocks.dart | 4 +- 33 files changed, 819 insertions(+), 34 deletions(-) create mode 100644 packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m create mode 100644 packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.h create mode 100644 packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.m diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart index 42b55556782..88dfaa05c4e 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart @@ -668,7 +668,7 @@ Future main() async { }); group('Programmatic Scroll', () { - testWidgets('setAndGetScrollPosition', (WidgetTester tester) async { + testWidgets('setAndGetAndListenScrollPosition', (WidgetTester tester) async { const String scrollTestPage = ''' @@ -694,6 +694,8 @@ Future main() async { base64Encode(const Utf8Encoder().convert(scrollTestPage)); final Completer pageLoaded = Completer(); + Completer offsetsCompleter = + Completer(); final PlatformWebViewController controller = PlatformWebViewController( WebKitWebViewControllerCreationParams(), ) @@ -709,7 +711,10 @@ Future main() async { 'data:text/html;charset=utf-8;base64,$scrollTestPageBase64', ), ), - ); + ) + ..setOnContentOffsetChanged((ContentOffsetChange contentOffsetChange) { + offsetsCompleter.complete(contentOffsetChange); + }); await tester.pumpWidget(Builder( builder: (BuildContext context) { @@ -738,12 +743,23 @@ Future main() async { scrollPos = await controller.getScrollPosition(); expect(scrollPos.dx, X_SCROLL); expect(scrollPos.dy, Y_SCROLL); + await expectLater( + offsetsCompleter.future.then( + (ContentOffsetChange contentOffsetChange) => + [contentOffsetChange.x, contentOffsetChange.y]), + completion([X_SCROLL, Y_SCROLL])); // Check scrollBy() (on top of scrollTo()) + offsetsCompleter = Completer(); await controller.scrollBy(X_SCROLL, Y_SCROLL); scrollPos = await controller.getScrollPosition(); expect(scrollPos.dx, X_SCROLL * 2); expect(scrollPos.dy, Y_SCROLL * 2); + await expectLater( + offsetsCompleter.future.then( + (ContentOffsetChange contentOffsetChange) => + [contentOffsetChange.x, contentOffsetChange.y]), + completion([X_SCROLL * 2, Y_SCROLL * 2])); }); }); diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner.xcodeproj/project.pbxproj b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner.xcodeproj/project.pbxproj index 19e2b39a5c1..5e407a394c8 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 1096EF442A6BD9DB000CBDF7 /* FWFScrollViewDelegateHostApiTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1096EF432A6BD9DB000CBDF7 /* FWFScrollViewDelegateHostApiTests.m */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 8F4FF949299ADC2D000A6586 /* FWFWebViewFlutterWKWebViewExternalAPITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F4FF948299ADC2D000A6586 /* FWFWebViewFlutterWKWebViewExternalAPITests.m */; }; @@ -66,6 +67,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 1096EF432A6BD9DB000CBDF7 /* FWFScrollViewDelegateHostApiTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FWFScrollViewDelegateHostApiTests.m; sourceTree = ""; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 17781D9462A1AEA7C99F8E45 /* libPods-RunnerTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RunnerTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -165,6 +167,7 @@ 8FB79B902820BAC700C101D3 /* FWFUIViewHostApiTests.m */, 8FB79B962821985200C101D3 /* FWFObjectHostApiTests.m */, 8F4FF94A29AC223F000A6586 /* FWFURLTests.m */, + 1096EF432A6BD9DB000CBDF7 /* FWFScrollViewDelegateHostApiTests.m */, ); path = RunnerTests; sourceTree = ""; @@ -315,7 +318,7 @@ isa = PBXProject; attributes = { DefaultBuildSystemTypeForWorkspace = Original; - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = "The Flutter Authors"; TargetAttributes = { 68BDCAE823C3F7CB00D9C032 = { @@ -475,6 +478,7 @@ 8FB79B7928209D1300C101D3 /* FWFUserContentControllerHostApiTests.m in Sources */, 8F4FF949299ADC2D000A6586 /* FWFWebViewFlutterWKWebViewExternalAPITests.m in Sources */, 8FB79B6B28204EE500C101D3 /* FWFWebsiteDataStoreHostApiTests.m in Sources */, + 1096EF442A6BD9DB000CBDF7 /* FWFScrollViewDelegateHostApiTests.m in Sources */, 8FB79B8F2820BAB300C101D3 /* FWFScrollViewHostApiTests.m in Sources */, 8FB79B912820BAC700C101D3 /* FWFUIViewHostApiTests.m in Sources */, 8FB79B55281B24F600C101D3 /* FWFDataConvertersTests.m in Sources */, diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index cb713d76763..cf07c46df2e 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ - + + + - + + @@ -14,13 +16,14 @@ - + - + + diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m new file mode 100644 index 00000000000..4f945e36740 --- /dev/null +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m @@ -0,0 +1,77 @@ +// +// FWFScrollViewDelegateHostApiTests.m +// RunnerTests +// +// Created by Luong Vinh on 22/07/2023. +// Copyright © 2023 The Flutter Authors. All rights reserved. +// + +@import Flutter; +@import XCTest; +@import webview_flutter_wkwebview; + +#import + +@interface FWFScrollViewDelegateHostApiTests : XCTestCase + +@end + +@implementation FWFScrollViewDelegateHostApiTests +/** + * Creates a partially mocked FWFScrollViewDelegate and adds it to instanceManager. + * + * @param instanceManager Instance manager to add the delegate to. + * @param identifier Identifier for the delegate added to the instanceManager. + * + * @return A mock FWFScrollViewDelegate. + */ +- (id)mockDelegateWithManager:(FWFInstanceManager *)instanceManager identifier:(long)identifier { + FWFScrollViewDelegate *delegate = [[FWFScrollViewDelegate alloc]initWithBinaryMessenger:OCMProtocolMock(@protocol (FlutterBinaryMessenger)) instanceManager: instanceManager]; + + [instanceManager addDartCreatedInstance:delegate withIdentifier:0]; + return OCMPartialMock(delegate); +} + +/** + * Creates a mock FWFUIScrollViewDelegateFlutterApiImpl with instanceManager. + * + * @param instanceManager Instance manager passed to the Flutter API. + * + * @return A mock FWFUIScrollViewDelegateFlutterApiImpl. + */ +- (id)mockFlutterApiWithManager:(FWFInstanceManager *)instanceManager { + FWFScrollViewDelegateFlutterApiImpl *flutterAPI = [[FWFScrollViewDelegateFlutterApiImpl alloc] + initWithBinaryMessenger:OCMProtocolMock(@protocol(FlutterBinaryMessenger)) + instanceManager:instanceManager]; + return OCMPartialMock(flutterAPI); +} + +- (void)testCreateWithIdentifier { + FWFInstanceManager *instanceManager = [[FWFInstanceManager alloc] init]; + FWFScrollViewDelegateHostApiImpl *hostAPI = [[FWFScrollViewDelegateHostApiImpl alloc] + initWithBinaryMessenger:OCMProtocolMock(@protocol(FlutterBinaryMessenger)) + instanceManager:instanceManager]; + + FlutterError *error; + [hostAPI createWithIdentifier:@0 error:&error]; + FWFScrollViewDelegate *delegate = (FWFScrollViewDelegate *)[instanceManager instanceForIdentifier:0]; + + XCTAssertTrue([delegate conformsToProtocol:@protocol(UIScrollViewDelegate)]); + XCTAssertNil(error); +} + +- (void)testOnScrollViewDidScrollForDelegateWithIdentifier { + FWFInstanceManager *instanceManager = [[FWFInstanceManager alloc] init]; + + FWFScrollViewDelegate *mockDelegate = [self mockDelegateWithManager:instanceManager identifier:0]; + FWFScrollViewDelegateFlutterApiImpl *mockFlutterAPI = [self mockFlutterApiWithManager:instanceManager]; + + OCMStub([mockDelegate ScrollViewDelegateAPI]).andReturn(mockFlutterAPI); + UIScrollView *scrollView = [[UIScrollView alloc] init]; + + [instanceManager addDartCreatedInstance:scrollView withIdentifier:1]; + + [mockDelegate scrollViewDidScroll:scrollView]; + OCMVerify([mockFlutterAPI scrollViewDidScrollWithIdentifier:@0 uiScrollViewIdentifier:@1 completion:OCMOCK_ANY]); +} +@end diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewHostApiTests.m b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewHostApiTests.m index ede8dcf35d8..51e097ba529 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewHostApiTests.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewHostApiTests.m @@ -61,4 +61,21 @@ - (void)testSetContentOffset { XCTAssertEqual(scrollView.contentOffset.y, 2); XCTAssertNil(error); } + +- (void) testSetDelegateForScrollView { + UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 500, 500)]; + FWFScrollViewDelegate *delegate = [[FWFScrollViewDelegate alloc] init]; + + FWFInstanceManager *instanceManager = [[FWFInstanceManager alloc] init]; + [instanceManager addDartCreatedInstance:scrollView withIdentifier:0]; + [instanceManager addDartCreatedInstance:delegate withIdentifier:1]; + + FWFScrollViewHostApiImpl *hostAPI = + [[FWFScrollViewHostApiImpl alloc] initWithInstanceManager:instanceManager]; + + FlutterError *error; + [hostAPI setDelegateForScrollViewWithIdentifier:@0 uiScrollViewDelegateIdentifier:@1 error:&error]; + XCTAssertEqual(scrollView.delegate, delegate); + XCTAssertNil(error); +} @end diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/lib/main.dart b/packages/webview_flutter/webview_flutter_wkwebview/example/lib/main.dart index 8c3f7531294..8c467097510 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/lib/main.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/lib/main.dart @@ -147,7 +147,12 @@ Page resource error: ) ..loadRequest(LoadRequestParams( uri: Uri.parse('https://flutter.dev'), - )); + )) + ..setOnContentOffsetChanged((ContentOffsetChange contentOffsetChange) { + debugPrint( + 'Content offset change to x = ${contentOffsetChange.x}, y = ${contentOffsetChange.y}', + ); + }); } @override diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/pubspec.yaml b/packages/webview_flutter/webview_flutter_wkwebview/example/pubspec.yaml index e67ec2bd6f5..688caa87f9a 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/pubspec.yaml @@ -10,7 +10,8 @@ dependencies: flutter: sdk: flutter path_provider: ^2.0.6 - webview_flutter_platform_interface: ^2.3.0 + webview_flutter_platform_interface: + path: ../../webview_flutter_platform_interface webview_flutter_wkwebview: # When depending on this package from a real application you should use: # webview_flutter: ^x.y.z diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FLTWebViewFlutterPlugin.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FLTWebViewFlutterPlugin.m index 2f919839aa5..d3182b96be0 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FLTWebViewFlutterPlugin.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FLTWebViewFlutterPlugin.m @@ -10,6 +10,7 @@ #import "FWFObjectHostApi.h" #import "FWFPreferencesHostApi.h" #import "FWFScriptMessageHandlerHostApi.h" +#import "FWFScrollViewDelegateHostApi.h" #import "FWFScrollViewHostApi.h" #import "FWFUIDelegateHostApi.h" #import "FWFUIViewHostApi.h" @@ -104,7 +105,10 @@ + (void)registerWithRegistrar:(NSObject *)registrar { FWFNSUrlHostApiSetup(registrar.messenger, [[FWFURLHostApiImpl alloc] initWithBinaryMessenger:registrar.messenger instanceManager:instanceManager]); - + FWFUIScrollViewDelegateHostApiSetup( + registrar.messenger, + [[FWFScrollViewDelegateHostApiImpl alloc] initWithBinaryMessenger:registrar.messenger + instanceManager:instanceManager]); FWFWebViewFactory *webviewFactory = [[FWFWebViewFactory alloc] initWithManager:instanceManager]; [registrar registerViewFactory:webviewFactory withId:@"plugins.flutter.io/webview"]; diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.h b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.h index 45b1e42a355..249a49b00c1 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.h +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.h @@ -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 (v9.2.4), do not edit directly. +// Autogenerated from Pigeon (v9.2.5), do not edit directly. // See also: https://pub.dev/packages/pigeon #import @@ -459,6 +459,9 @@ NSObject *FWFUIScrollViewHostApiGetCodec(void); toX:(NSNumber *)x y:(NSNumber *)y error:(FlutterError *_Nullable *_Nonnull)error; +- (void)setDelegateForScrollViewWithIdentifier:(NSNumber *)identifier + uiScrollViewDelegateIdentifier:(NSNumber *)uiScrollViewDelegateIdentifier + error:(FlutterError *_Nullable *_Nonnull)error; @end extern void FWFUIScrollViewHostApiSetup(id binaryMessenger, @@ -843,4 +846,39 @@ NSObject *FWFNSUrlFlutterApiGetCodec(void); completion:(void (^)(FlutterError *_Nullable))completion; @end +/// The codec used by FWFUIScrollViewDelegateHostApi. +NSObject *FWFUIScrollViewDelegateHostApiGetCodec(void); + +/// Host API for `UIScrollViewDelegate`. +/// +/// This class may handle instantiating and adding native object instances that +/// are attached to a Dart instance or method calls on the associated native +/// class or an instance of the class. +/// +/// See https://developer.apple.com/documentation/uikit/uiscrollviewdelegate?language=objc. +@protocol FWFUIScrollViewDelegateHostApi +- (void)createWithIdentifier:(NSNumber *)identifier error:(FlutterError *_Nullable *_Nonnull)error; +@end + +extern void FWFUIScrollViewDelegateHostApiSetup( + id binaryMessenger, + NSObject *_Nullable api); + +/// The codec used by FWFUIScrollViewDelegateFlutterApi. +NSObject *FWFUIScrollViewDelegateFlutterApiGetCodec(void); + +/// Flutter API for `UIScrollViewDelegate`. +/// +/// This class may handle instantiating and adding Dart instances that are +/// attached to a native instance or receiving callback methods from an +/// overridden native class. +/// +/// See https://developer.apple.com/documentation/uikit/uiscrollviewdelegate?language=objc. +@interface FWFScrollViewDelegateFlutterApi : NSObject +- (instancetype)initWithBinaryMessenger:(id)binaryMessenger; +- (void)scrollViewDidScrollWithIdentifier:(NSNumber *)identifier + uiScrollViewIdentifier:(NSNumber *)uiScrollViewIdentifier + completion:(void (^)(FlutterError *_Nullable))completion; +@end + NS_ASSUME_NONNULL_END diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.m index 3a5dff6a5d5..0ec0070c9f4 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.m @@ -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 (v9.2.4), do not edit directly. +// Autogenerated from Pigeon (v9.2.5), do not edit directly. // See also: https://pub.dev/packages/pigeon #import "FWFGeneratedWebKitApis.h" @@ -878,6 +878,32 @@ void FWFUIScrollViewHostApiSetup(id binaryMessenger, [channel setMessageHandler:nil]; } } + { + FlutterBasicMessageChannel *channel = [[FlutterBasicMessageChannel alloc] + initWithName:@"dev.flutter.pigeon.UIScrollViewHostApi.setDelegate" + binaryMessenger:binaryMessenger + codec:FWFUIScrollViewHostApiGetCodec()]; + if (api) { + NSCAssert([api respondsToSelector:@selector(setDelegateForScrollViewWithIdentifier: + uiScrollViewDelegateIdentifier:error:)], + @"FWFUIScrollViewHostApi api (%@) doesn't respond to " + @"@selector(setDelegateForScrollViewWithIdentifier:uiScrollViewDelegateIdentifier:" + @"error:)", + api); + [channel setMessageHandler:^(id _Nullable message, FlutterReply callback) { + NSArray *args = message; + NSNumber *arg_identifier = GetNullableObjectAtIndex(args, 0); + NSNumber *arg_uiScrollViewDelegateIdentifier = GetNullableObjectAtIndex(args, 1); + FlutterError *error; + [api setDelegateForScrollViewWithIdentifier:arg_identifier + uiScrollViewDelegateIdentifier:arg_uiScrollViewDelegateIdentifier + error:&error]; + callback(wrapResult(nil, error)); + }]; + } else { + [channel setMessageHandler:nil]; + } + } } @interface FWFWKWebViewConfigurationHostApiCodecReader : FlutterStandardReader @end @@ -2779,3 +2805,68 @@ - (void)createWithIdentifier:(NSNumber *)arg_identifier }]; } @end + +NSObject *FWFUIScrollViewDelegateHostApiGetCodec(void) { + static FlutterStandardMessageCodec *sSharedObject = nil; + sSharedObject = [FlutterStandardMessageCodec sharedInstance]; + return sSharedObject; +} + +void FWFUIScrollViewDelegateHostApiSetup(id binaryMessenger, + NSObject *api) { + { + FlutterBasicMessageChannel *channel = [[FlutterBasicMessageChannel alloc] + initWithName:@"dev.flutter.pigeon.UIScrollViewDelegateHostApi.create" + binaryMessenger:binaryMessenger + codec:FWFUIScrollViewDelegateHostApiGetCodec()]; + if (api) { + NSCAssert([api respondsToSelector:@selector(createWithIdentifier:error:)], + @"FWFUIScrollViewDelegateHostApi api (%@) doesn't respond to " + @"@selector(createWithIdentifier:error:)", + api); + [channel setMessageHandler:^(id _Nullable message, FlutterReply callback) { + NSArray *args = message; + NSNumber *arg_identifier = GetNullableObjectAtIndex(args, 0); + FlutterError *error; + [api createWithIdentifier:arg_identifier error:&error]; + callback(wrapResult(nil, error)); + }]; + } else { + [channel setMessageHandler:nil]; + } + } +} +NSObject *FWFUIScrollViewDelegateFlutterApiGetCodec(void) { + static FlutterStandardMessageCodec *sSharedObject = nil; + sSharedObject = [FlutterStandardMessageCodec sharedInstance]; + return sSharedObject; +} + +@interface FWFScrollViewDelegateFlutterApi () +@property(nonatomic, strong) NSObject *binaryMessenger; +@end + +@implementation FWFScrollViewDelegateFlutterApi + +- (instancetype)initWithBinaryMessenger:(NSObject *)binaryMessenger { + self = [super init]; + if (self) { + _binaryMessenger = binaryMessenger; + } + return self; +} +- (void)scrollViewDidScrollWithIdentifier:(NSNumber *)arg_identifier + uiScrollViewIdentifier:(NSNumber *)arg_uiScrollViewIdentifier + completion:(void (^)(FlutterError *_Nullable))completion { + FlutterBasicMessageChannel *channel = [FlutterBasicMessageChannel + messageChannelWithName: + @"dev.flutter.pigeon.UIScrollViewDelegateFlutterApi.scrollViewDidScroll" + binaryMessenger:self.binaryMessenger + codec:FWFUIScrollViewDelegateFlutterApiGetCodec()]; + [channel + sendMessage:@[ arg_identifier ?: [NSNull null], arg_uiScrollViewIdentifier ?: [NSNull null] ] + reply:^(id reply) { + completion(nil); + }]; +} +@end diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.h b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.h new file mode 100644 index 00000000000..2736ba24ea7 --- /dev/null +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.h @@ -0,0 +1,47 @@ +// 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. + +#import +#import +#import "FWFObjectHostApi.h" + +#import "FWFGeneratedWebKitApis.h" +#import "FWFInstanceManager.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Flutter api implementation for UIScrollViewDelegate. + * + * Handles making callbacks to Dart for a UIScrollViewDelegate. + */ +@interface FWFScrollViewDelegateFlutterApiImpl : FWFScrollViewDelegateFlutterApi + +- (instancetype)initWithBinaryMessenger:(id)binaryMessenger + instanceManager:(FWFInstanceManager *)instanceManager; +@end + +/** + * Implementation of WKUIScrollViewDelegate for FWFUIScrollViewDelegateHostApiImpl. + */ +@interface FWFScrollViewDelegate : FWFObject +@property(readonly, nonnull, nonatomic) + FWFScrollViewDelegateFlutterApiImpl *ScrollViewDelegateAPI; + +- (instancetype)initWithBinaryMessenger:(id)binaryMessenger + instanceManager:(FWFInstanceManager *)instanceManager; + +@end + +/** + * Host api implementation for UIScrollViewDelegate. + * + * Handles creating UIScrollView that intercommunicate with a paired Dart object. + */ +@interface FWFScrollViewDelegateHostApiImpl : NSObject +- (instancetype)initWithBinaryMessenger:(id)binaryMessenger + instanceManager:(FWFInstanceManager *)instanceManager; +@end + +NS_ASSUME_NONNULL_END diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.m new file mode 100644 index 00000000000..c66ef9adb0d --- /dev/null +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.m @@ -0,0 +1,95 @@ +// 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. + +#import "FWFScrollViewDelegateHostApi.h" +#import "FWFWebViewHostApi.h" + +@interface FWFScrollViewDelegateFlutterApiImpl () +// BinaryMessenger must be weak to prevent a circular reference with the host API it +// references. +@property(nonatomic, weak) id binaryMessenger; +// InstanceManager must be weak to prevent a circular reference with the object it stores. +@property(nonatomic, weak) FWFInstanceManager *instanceManager; +@end + +@implementation FWFScrollViewDelegateFlutterApiImpl + +- (instancetype)initWithBinaryMessenger:(id)binaryMessenger + instanceManager:(FWFInstanceManager *)instanceManager { + self = [self initWithBinaryMessenger:binaryMessenger]; + if (self) { + _binaryMessenger = binaryMessenger; + _instanceManager = instanceManager; + } + return self; +} +- (long)identifierForDelegate:(FWFScrollViewDelegate *)instance { + return [self.instanceManager identifierWithStrongReferenceForInstance:instance]; +} + +- (void)onCreateUIScrollViewForDelegate:(FWFScrollViewDelegate *)instance + uiScrollView:(UIScrollView *)scrollView { + scrollView.delegate = instance; +} + +- (void)_onScrollViewDidScrollForDelegate:(FWFScrollViewDelegate *)instance + uiScrollView:(UIScrollView *)scrollView + completion:(void (^)(FlutterError *_Nullable))completion { + [self scrollViewDidScrollWithIdentifier:@([self identifierForDelegate:instance]) + uiScrollViewIdentifier:@([self.instanceManager + identifierWithStrongReferenceForInstance:scrollView]) + completion:completion]; +} +@end + +@implementation FWFScrollViewDelegate + +- (instancetype)initWithBinaryMessenger:(id)binaryMessenger + instanceManager:(FWFInstanceManager *)instanceManager { + self = [super initWithBinaryMessenger:binaryMessenger instanceManager:instanceManager]; + if (self) { + _ScrollViewDelegateAPI = + [[FWFScrollViewDelegateFlutterApiImpl alloc] initWithBinaryMessenger:binaryMessenger + instanceManager:instanceManager]; + } + return self; +} + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + [self.ScrollViewDelegateAPI _onScrollViewDidScrollForDelegate:self + uiScrollView:scrollView + completion:^(FlutterError *error) { + NSAssert(!error, @"%@", error); + }]; +} +@end + +@interface FWFScrollViewDelegateHostApiImpl () +// BinaryMessenger must be weak to prevent a circular reference with the host API it +// references. +@property(nonatomic, weak) id binaryMessenger; +// InstanceManager must be weak to prevent a circular reference with the object it stores. +@property(nonatomic, weak) FWFInstanceManager *instanceManager; +@end + +@implementation FWFScrollViewDelegateHostApiImpl +- (instancetype)initWithBinaryMessenger:(id)binaryMessenger + instanceManager:(FWFInstanceManager *)instanceManager { + self = [self init]; + if (self) { + _binaryMessenger = binaryMessenger; + _instanceManager = instanceManager; + } + return self; +} + +- (void)createWithIdentifier:(nonnull NSNumber *)identifier + error:(FlutterError *_Nullable *_Nonnull)error { + FWFScrollViewDelegate *uiScrollViewDelegate = + [[FWFScrollViewDelegate alloc] initWithBinaryMessenger:self.binaryMessenger + instanceManager:self.instanceManager]; + [self.instanceManager addDartCreatedInstance:uiScrollViewDelegate + withIdentifier:identifier.longValue]; +} +@end diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m index a32e9565b51..9103934e860 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m @@ -3,9 +3,14 @@ // found in the LICENSE file. #import "FWFScrollViewHostApi.h" +#import "FWFScrollViewDelegateHostApi.h" #import "FWFWebViewHostApi.h" @interface FWFScrollViewHostApiImpl () +// BinaryMessenger must be weak to prevent a circular reference with the host API it +// references. +@property(nonatomic, weak) id binaryMessenger; + // InstanceManager must be weak to prevent a circular reference with the object it stores. @property(nonatomic, weak) FWFInstanceManager *instanceManager; @end @@ -28,6 +33,7 @@ - (void)createFromWebViewWithIdentifier:(nonnull NSNumber *)identifier error:(FlutterError *_Nullable __autoreleasing *_Nonnull)error { WKWebView *webView = (WKWebView *)[self.instanceManager instanceForIdentifier:webViewIdentifier.longValue]; + NSLog(@"UISCRILLVI ID %@", identifier); [self.instanceManager addDartCreatedInstance:webView.scrollView withIdentifier:identifier.longValue]; } @@ -56,4 +62,14 @@ - (void)setContentOffsetForScrollViewWithIdentifier:(nonnull NSNumber *)identifi [[self scrollViewForIdentifier:identifier] setContentOffset:CGPointMake(x.doubleValue, y.doubleValue)]; } +- (void)setDelegateForScrollViewWithIdentifier:(nonnull NSNumber *)identifier + uiScrollViewDelegateIdentifier:(nonnull NSNumber *)uiScrollViewDelegateIdentifier + error:(FlutterError *_Nullable *_Nonnull)error { + NSLog(@"UISCRILL ID %@", identifier); + NSLog(@"UISCRILLDELEGATE ID %@", uiScrollViewDelegateIdentifier); + [[self scrollViewForIdentifier:identifier] + setDelegate:(FWFScrollViewDelegate *)[self.instanceManager + instanceForIdentifier:uiScrollViewDelegateIdentifier.longValue]]; +} + @end diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/webview-umbrella.h b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/webview-umbrella.h index 283682957c2..85712876d3f 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/webview-umbrella.h +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/webview-umbrella.h @@ -13,6 +13,7 @@ #import "FWFObjectHostApi.h" #import "FWFPreferencesHostApi.h" #import "FWFScriptMessageHandlerHostApi.h" +#import "FWFScrollViewDelegateHostApi.h" #import "FWFScrollViewHostApi.h" #import "FWFUIDelegateHostApi.h" #import "FWFUIViewHostApi.h" diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/common/web_kit.g.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/common/web_kit.g.dart index 2ce5055d056..7ce189354fd 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/common/web_kit.g.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/common/web_kit.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 (v9.2.4), do not edit directly. +// Autogenerated from Pigeon (v9.2.5), 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 @@ -957,6 +957,30 @@ class UIScrollViewHostApi { return; } } + + Future setDelegate( + int arg_identifier, int arg_uiScrollViewDelegateIdentifier) async { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.UIScrollViewHostApi.setDelegate', codec, + binaryMessenger: _binaryMessenger); + final List? replyList = await channel + .send([arg_identifier, arg_uiScrollViewDelegateIdentifier]) + as List?; + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel.', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else { + return; + } + } } class _WKWebViewConfigurationHostApiCodec extends StandardMessageCodec { @@ -2841,3 +2865,83 @@ abstract class NSUrlFlutterApi { } } } + +/// Host API for `UIScrollViewDelegate`. +/// +/// This class may handle instantiating and adding native object instances that +/// are attached to a Dart instance or method calls on the associated native +/// class or an instance of the class. +/// +/// See https://developer.apple.com/documentation/uikit/uiscrollviewdelegate?language=objc. +class UIScrollViewDelegateHostApi { + /// Constructor for [UIScrollViewDelegateHostApi]. The [binaryMessenger] named argument is + /// available for dependency injection. If it is left null, the default + /// BinaryMessenger will be used which routes to the host platform. + UIScrollViewDelegateHostApi({BinaryMessenger? binaryMessenger}) + : _binaryMessenger = binaryMessenger; + final BinaryMessenger? _binaryMessenger; + + static const MessageCodec codec = StandardMessageCodec(); + + Future create(int arg_identifier) async { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.UIScrollViewDelegateHostApi.create', codec, + binaryMessenger: _binaryMessenger); + final List? replyList = + await channel.send([arg_identifier]) as List?; + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel.', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else { + return; + } + } +} + +/// Flutter API for `UIScrollViewDelegate`. +/// +/// This class may handle instantiating and adding Dart instances that are +/// attached to a native instance or receiving callback methods from an +/// overridden native class. +/// +/// See https://developer.apple.com/documentation/uikit/uiscrollviewdelegate?language=objc. +abstract class UIScrollViewDelegateFlutterApi { + static const MessageCodec codec = StandardMessageCodec(); + + void scrollViewDidScroll(int identifier, int uiScrollViewIdentifier); + + static void setup(UIScrollViewDelegateFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.UIScrollViewDelegateFlutterApi.scrollViewDidScroll', + codec, + binaryMessenger: binaryMessenger); + if (api == null) { + channel.setMessageHandler(null); + } else { + channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.UIScrollViewDelegateFlutterApi.scrollViewDidScroll was null.'); + final List args = (message as List?)!; + final int? arg_identifier = (args[0] as int?); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.UIScrollViewDelegateFlutterApi.scrollViewDidScroll was null, expected non-null int.'); + final int? arg_uiScrollViewIdentifier = (args[1] as int?); + assert(arg_uiScrollViewIdentifier != null, + 'Argument for dev.flutter.pigeon.UIScrollViewDelegateFlutterApi.scrollViewDidScroll was null, expected non-null int.'); + api.scrollViewDidScroll(arg_identifier!, arg_uiScrollViewIdentifier!); + return; + }); + } + } + } +} diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart index 33447091e5f..3bb57e48589 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'dart:async'; import 'dart:math'; import 'package:flutter/foundation.dart'; @@ -13,6 +14,7 @@ import 'package:flutter/services.dart'; import '../common/instance_manager.dart'; import '../foundation/foundation.dart'; import '../web_kit/web_kit.dart'; +import '../web_kit/web_kit_api_impls.dart'; import 'ui_kit_api_impls.dart'; /// A view that allows the scrolling and zooming of its contained views. @@ -78,6 +80,13 @@ class UIScrollView extends UIView { return _scrollViewApi.setContentOffsetForInstances(this, offset); } + /// Set the delegate to this scroll view. + /// + /// Represents [UIScrollView.delegate](https://developer.apple.com/documentation/uikit/uiscrollview/1619430-delegate?language=objc). + Future setDelegate(UIScrollViewDelegate delegate) { + return _scrollViewApi.setDelegateForInstances(this, delegate); + } + @override UIScrollView copy() { return UIScrollView.detached( @@ -135,3 +144,44 @@ class UIView extends NSObject { ); } } + +/// Responding to scroll view interactions. +/// +/// Represent [UIScrollViewDelegate](https://developer.apple.com/documentation/uikit/uiscrollviewdelegate?language=objc). +@immutable +class UIScrollViewDelegate extends NSObject { + /// Constructs a [UIScrollViewDelegate]. + UIScrollViewDelegate( + {this.scrollViewDidScroll, + super.observeValue, + super.binaryMessenger, + super.instanceManager}) + : _scrollViewDelegateApi = UIScrollViewDelegateHostApiImpl( + binaryMessenger: binaryMessenger, instanceManager: instanceManager), + super.detached() { + // Ensures FlutterApis for the WebKit library are set up. + WebKitFlutterApis.instance.ensureSetUp(); + _scrollViewDelegateApi.createForInstance(this); + } + + /// Constructs a [UIScrollViewDelegate] without creating the associated + /// Objective-C object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies. + UIScrollViewDelegate.detached( + {this.scrollViewDidScroll, + super.observeValue, + super.binaryMessenger, + super.instanceManager}) + : _scrollViewDelegateApi = UIScrollViewDelegateHostApiImpl( + binaryMessenger: binaryMessenger, instanceManager: instanceManager), + super.detached(); + + final UIScrollViewDelegateHostApiImpl _scrollViewDelegateApi; + + /// Called when scroll view did scroll. + /// + /// {@macro webview_flutter_wkwebview.foundation.callbacks} + final void Function(UIScrollView scrollView)? scrollViewDidScroll; +} diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart index 4749c6afca3..4fa0feec872 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart @@ -78,6 +78,17 @@ class UIScrollViewHostApiImpl extends UIScrollViewHostApi { offset.y, ); } + + /// Calls [setContentOffset] with the ids of the provided object instances. + Future setDelegateForInstances( + UIScrollView instance, + UIScrollViewDelegate delegate, + ) async { + return setDelegate( + instanceManager.getIdentifier(instance)!, + instanceManager.getIdentifier(delegate)!, + ); + } } /// Host api implementation for [UIView]. @@ -117,3 +128,51 @@ class UIViewHostApiImpl extends UIViewHostApi { return setOpaque(instanceManager.getIdentifier(instance)!, opaque); } } + +/// Flutter api implementation for [UIScrollViewDelegate]. +class UIScrollViewDelegateFlutterApiImpl + extends UIScrollViewDelegateFlutterApi { + /// Constructs a [UIScrollViewDelegateFlutterApiImpl]. + UIScrollViewDelegateFlutterApiImpl({InstanceManager? instanceManager}) + : instanceManager = instanceManager ?? NSObject.globalInstanceManager; + + /// Maintains instances stored to communicate with native language objects. + final InstanceManager instanceManager; + + UIScrollViewDelegate _getDelegate(int identifier) { + return instanceManager.getInstanceWithWeakReference(identifier)!; + } + + @override + void scrollViewDidScroll(int identifier, int uiScrollViewIdentifier) { + final void Function(UIScrollView)? function = + _getDelegate(identifier).scrollViewDidScroll; + final UIScrollView uiScrollView = instanceManager + .getInstanceWithWeakReference(uiScrollViewIdentifier)! as UIScrollView; + function?.call(uiScrollView); + } +} + +/// Host api implementation for [UIScrollViewDelegate]. +class UIScrollViewDelegateHostApiImpl extends UIScrollViewDelegateHostApi { + /// Constructs a [UIScrollViewDelegateHostApiImpl]. + UIScrollViewDelegateHostApiImpl({ + this.binaryMessenger, + InstanceManager? instanceManager, + }) : instanceManager = instanceManager ?? NSObject.globalInstanceManager, + super(binaryMessenger: binaryMessenger); + + /// Sends binary data across the Flutter platform barrier. + /// + /// If it is null, the default BinaryMessenger will be used which routes to + /// the host platform. + final BinaryMessenger? binaryMessenger; + + /// Maintains instances stored to communicate with Objective-C objects. + final InstanceManager instanceManager; + + /// Calls [create] with the ids of the provided object instances. + Future createForInstance(UIScrollViewDelegate instance) async { + return create(instanceManager.addDartCreatedInstance(instance)); + } +} diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit.dart index 070f554a5d5..cebcfa5081c 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit.dart @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'dart:async'; + import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit_api_impls.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit_api_impls.dart index 07a32aee8d3..0a9da1ae7a3 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit_api_impls.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit_api_impls.dart @@ -8,6 +8,8 @@ import 'package:flutter/services.dart'; import '../common/instance_manager.dart'; import '../common/web_kit.g.dart'; import '../foundation/foundation.dart'; +import '../ui_kit/ui_kit.dart'; +import '../ui_kit/ui_kit_api_impls.dart'; import 'web_kit.dart'; export '../common/web_kit.g.dart' @@ -257,7 +259,9 @@ class WebKitFlutterApis { webViewConfiguration = WKWebViewConfigurationFlutterApiImpl( binaryMessenger: binaryMessenger, instanceManager: instanceManager, - ); + ), + uiScrollViewDelegate = UIScrollViewDelegateFlutterApiImpl( + instanceManager: instanceManager); static WebKitFlutterApis _instance = WebKitFlutterApis(); @@ -291,6 +295,10 @@ class WebKitFlutterApis { @visibleForTesting final WKWebViewConfigurationFlutterApiImpl webViewConfiguration; + /// Flutter Api for [UIScrollViewDelegate]. + @visibleForTesting + final UIScrollViewDelegateFlutterApiImpl uiScrollViewDelegate; + /// Ensures all the Flutter APIs have been set up to receive calls from native code. void ensureSetUp() { if (!_hasBeenSetUp) { @@ -310,6 +318,8 @@ class WebKitFlutterApis { webViewConfiguration, binaryMessenger: _binaryMessenger, ); + UIScrollViewDelegateFlutterApi.setup(uiScrollViewDelegate, + binaryMessenger: _binaryMessenger); _hasBeenSetUp = true; } } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_proxy.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_proxy.dart index 68ce9132021..f1887df5e3d 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_proxy.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_proxy.dart @@ -4,6 +4,7 @@ import 'common/instance_manager.dart'; import 'foundation/foundation.dart'; +import 'ui_kit/ui_kit.dart'; import 'web_kit/web_kit.dart'; // This convenience method was added because Dart doesn't support constant @@ -22,14 +23,14 @@ WKWebsiteDataStore _defaultWebsiteDataStore() => /// it intends to return. class WebKitProxy { /// Constructs a [WebKitProxy]. - const WebKitProxy({ - this.createWebView = WKWebView.new, - this.createWebViewConfiguration = WKWebViewConfiguration.new, - this.createScriptMessageHandler = WKScriptMessageHandler.new, - this.defaultWebsiteDataStore = _defaultWebsiteDataStore, - this.createNavigationDelegate = WKNavigationDelegate.new, - this.createUIDelegate = WKUIDelegate.new, - }); + const WebKitProxy( + {this.createWebView = WKWebView.new, + this.createWebViewConfiguration = WKWebViewConfiguration.new, + this.createScriptMessageHandler = WKScriptMessageHandler.new, + this.defaultWebsiteDataStore = _defaultWebsiteDataStore, + this.createNavigationDelegate = WKNavigationDelegate.new, + this.createUIDelegate = WKUIDelegate.new, + this.createUIScrollViewDelegate = UIScrollViewDelegate.new}); /// Constructs a [WKWebView]. final WKWebView Function( @@ -89,4 +90,9 @@ class WebKitProxy { )? requestMediaCapturePermission, InstanceManager? instanceManager, }) createUIDelegate; + + /// Constructs a [UIScrollViewDelegate]. + final UIScrollViewDelegate Function( + {void Function(UIScrollView scrollView)? scrollViewDidScroll}) + createUIScrollViewDelegate; } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart index e49d41257e8..286deb2ba1b 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart @@ -13,6 +13,7 @@ import 'package:webview_flutter_platform_interface/webview_flutter_platform_inte import 'common/instance_manager.dart'; import 'common/weak_reference_utils.dart'; import 'foundation/foundation.dart'; +import 'ui_kit/ui_kit.dart'; import 'web_kit/web_kit.dart'; import 'webkit_proxy.dart'; @@ -206,6 +207,15 @@ class WebKitWebViewController extends PlatformWebViewController { ); _webView.setUIDelegate(_uiDelegate); + _uiScrollViewDelegate = _webKitParams.webKitProxy + .createUIScrollViewDelegate( + scrollViewDidScroll: (UIScrollView uiScrollView) async { + final Point offset = await uiScrollView.getContentOffset(); + _onContentOffsetChangedCallback + ?.call(ContentOffsetChange(offset.x.toInt(), offset.y.toInt())); + }); + _webView.scrollView.setDelegate(_uiScrollViewDelegate); + } /// The WebKit WebView being controlled. @@ -249,6 +259,8 @@ class WebKitWebViewController extends PlatformWebViewController { ); late final WKUIDelegate _uiDelegate; + + late final UIScrollViewDelegate _uiScrollViewDelegate; final Map _javaScriptChannelParams = {}; @@ -258,6 +270,9 @@ class WebKitWebViewController extends PlatformWebViewController { void Function(PlatformWebViewPermissionRequest)? _onPermissionRequestCallback; + Function(ContentOffsetChange contentOffsetChange)? + _onContentOffsetChangedCallback; + WebKitWebViewControllerCreationParams get _webKitParams => params as WebKitWebViewControllerCreationParams; @@ -531,6 +546,13 @@ class WebKitWebViewController extends PlatformWebViewController { ) async { _onPermissionRequestCallback = onPermissionRequest; } + + @override + Future setOnContentOffsetChanged( + void Function(ContentOffsetChange contentOffsetChange)? + onOffsetChange) async { + _onContentOffsetChangedCallback = onOffsetChange; + } } /// An implementation of [JavaScriptChannelParams] with the WebKit api. diff --git a/packages/webview_flutter/webview_flutter_wkwebview/pigeons/web_kit.dart b/packages/webview_flutter/webview_flutter_wkwebview/pigeons/web_kit.dart index 20d4ee41f4f..f4346494f8b 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/pigeons/web_kit.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/pigeons/web_kit.dart @@ -398,6 +398,10 @@ abstract class UIScrollViewHostApi { @ObjCSelector('setContentOffsetForScrollViewWithIdentifier:toX:y:') void setContentOffset(int identifier, double x, double y); + + @ObjCSelector( + 'setDelegateForScrollViewWithIdentifier:uiScrollViewDelegateIdentifier:') + void setDelegate(int identifier, int uiScrollViewDelegateIdentifier); } /// Mirror of WKWebViewConfiguration. @@ -770,3 +774,31 @@ abstract class NSUrlFlutterApi { @ObjCSelector('createWithIdentifier:') void create(int identifier); } + +/// Host API for `UIScrollViewDelegate`. +/// +/// This class may handle instantiating and adding native object instances that +/// are attached to a Dart instance or method calls on the associated native +/// class or an instance of the class. +/// +/// See https://developer.apple.com/documentation/uikit/uiscrollviewdelegate?language=objc. +@HostApi(dartHostTestHandler: 'TestUIScrollViewDelegateHostApi') +abstract class UIScrollViewDelegateHostApi { + @ObjCSelector('createWithIdentifier:') + void create(int identifier); +} + +/// Flutter API for `UIScrollViewDelegate`. +/// +/// This class may handle instantiating and adding Dart instances that are +/// attached to a native instance or receiving callback methods from an +/// overridden native class. +/// +/// See https://developer.apple.com/documentation/uikit/uiscrollviewdelegate?language=objc. +@FlutterApi() +abstract class UIScrollViewDelegateFlutterApi { + @ObjCSelector( + 'scrollViewDidScrollWithIdentifier:uiScrollViewIdentifier:', + ) + void scrollViewDidScroll(int identifier, int uiScrollViewIdentifier); +} diff --git a/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml b/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml index db7407ba56f..f102f8e065a 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml @@ -20,7 +20,8 @@ dependencies: flutter: sdk: flutter path: ^1.8.0 - webview_flutter_platform_interface: ^2.3.0 + webview_flutter_platform_interface: + path: ../webview_flutter_platform_interface dev_dependencies: build_runner: ^2.1.5 diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/legacy/web_kit_cookie_manager_test.mocks.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/legacy/web_kit_cookie_manager_test.mocks.dart index b88d686b205..5d0eede3b0e 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/legacy/web_kit_cookie_manager_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/legacy/web_kit_cookie_manager_test.mocks.dart @@ -1,7 +1,9 @@ -// Mocks generated by Mockito 5.4.0 from annotations +// Mocks generated by Mockito 5.4.1 from annotations // in webview_flutter_wkwebview/test/legacy/web_kit_cookie_manager_test.dart. // Do not manually edit this file. +// @dart=2.19 + // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i3; diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/legacy/web_kit_webview_widget_test.mocks.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/legacy/web_kit_webview_widget_test.mocks.dart index 6f5ffe0b5ac..0adac775a48 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/legacy/web_kit_webview_widget_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/legacy/web_kit_webview_widget_test.mocks.dart @@ -1,7 +1,9 @@ -// Mocks generated by Mockito 5.4.0 from annotations +// Mocks generated by Mockito 5.4.1 from annotations // in webview_flutter_wkwebview/test/legacy/web_kit_webview_widget_test.dart. // Do not manually edit this file. +// @dart=2.19 + // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i5; import 'dart:math' as _i2; diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/src/common/test_web_kit.g.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/src/common/test_web_kit.g.dart index ff09d4401ee..f18f30d2ca7 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/src/common/test_web_kit.g.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/src/common/test_web_kit.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 (v9.2.4), do not edit directly. +// Autogenerated from Pigeon (v9.2.5), 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 @@ -223,6 +223,8 @@ abstract class TestUIScrollViewHostApi { void setContentOffset(int identifier, double x, double y); + void setDelegate(int identifier, int uiScrollViewDelegateIdentifier); + static void setup(TestUIScrollViewHostApi? api, {BinaryMessenger? binaryMessenger}) { { @@ -328,6 +330,31 @@ abstract class TestUIScrollViewHostApi { }); } } + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.UIScrollViewHostApi.setDelegate', codec, + binaryMessenger: binaryMessenger); + if (api == null) { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); + } else { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.UIScrollViewHostApi.setDelegate was null.'); + final List args = (message as List?)!; + final int? arg_identifier = (args[0] as int?); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.UIScrollViewHostApi.setDelegate was null, expected non-null int.'); + final int? arg_uiScrollViewDelegateIdentifier = (args[1] as int?); + assert(arg_uiScrollViewDelegateIdentifier != null, + 'Argument for dev.flutter.pigeon.UIScrollViewHostApi.setDelegate was null, expected non-null int.'); + api.setDelegate(arg_identifier!, arg_uiScrollViewDelegateIdentifier!); + return []; + }); + } + } } } @@ -1724,3 +1751,44 @@ abstract class TestNSUrlHostApi { } } } + +/// Host API for `UIScrollViewDelegate`. +/// +/// This class may handle instantiating and adding native object instances that +/// are attached to a Dart instance or method calls on the associated native +/// class or an instance of the class. +/// +/// See https://developer.apple.com/documentation/uikit/uiscrollviewdelegate?language=objc. +abstract class TestUIScrollViewDelegateHostApi { + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; + static const MessageCodec codec = StandardMessageCodec(); + + void create(int identifier); + + static void setup(TestUIScrollViewDelegateHostApi? api, + {BinaryMessenger? binaryMessenger}) { + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.UIScrollViewDelegateHostApi.create', codec, + binaryMessenger: binaryMessenger); + if (api == null) { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); + } else { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.UIScrollViewDelegateHostApi.create was null.'); + final List args = (message as List?)!; + final int? arg_identifier = (args[0] as int?); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.UIScrollViewDelegateHostApi.create was null, expected non-null int.'); + api.create(arg_identifier!); + return []; + }); + } + } + } +} diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/src/foundation/foundation_test.mocks.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/src/foundation/foundation_test.mocks.dart index a648fc65a4d..60cb608302b 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/src/foundation/foundation_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/src/foundation/foundation_test.mocks.dart @@ -1,7 +1,9 @@ -// Mocks generated by Mockito 5.4.0 from annotations +// Mocks generated by Mockito 5.4.1 from annotations // in webview_flutter_wkwebview/test/src/foundation/foundation_test.dart. // Do not manually edit this file. +// @dart=2.19 + // ignore_for_file: no_leading_underscores_for_library_prefixes import 'package:mockito/mockito.dart' as _i1; import 'package:webview_flutter_wkwebview/src/common/web_kit.g.dart' as _i3; diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.mocks.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.mocks.dart index 355d69e7dc9..06b5c68f91b 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.mocks.dart @@ -1,7 +1,9 @@ -// Mocks generated by Mockito 5.4.0 from annotations +// Mocks generated by Mockito 5.4.1 from annotations // in webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.dart. // Do not manually edit this file. +// @dart=2.19 + // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i4; diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/src/web_kit/web_kit_test.mocks.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/src/web_kit/web_kit_test.mocks.dart index 601964044de..a6db655bf38 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/src/web_kit/web_kit_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/src/web_kit/web_kit_test.mocks.dart @@ -1,7 +1,9 @@ -// Mocks generated by Mockito 5.4.0 from annotations +// Mocks generated by Mockito 5.4.1 from annotations // in webview_flutter_wkwebview/test/src/web_kit/web_kit_test.dart. // Do not manually edit this file. +// @dart=2.19 + // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i3; diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.mocks.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.mocks.dart index 9eb03971e82..36fc9d44538 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.mocks.dart @@ -1,7 +1,9 @@ -// Mocks generated by Mockito 5.4.0 from annotations +// Mocks generated by Mockito 5.4.1 from annotations // in webview_flutter_wkwebview/test/webkit_webview_controller_test.dart. // Do not manually edit this file. +// @dart=2.19 + // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i6; import 'dart:math' as _i3; diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_cookie_manager_test.mocks.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_cookie_manager_test.mocks.dart index 95818c3cefa..042631982cf 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_cookie_manager_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_cookie_manager_test.mocks.dart @@ -1,7 +1,9 @@ -// Mocks generated by Mockito 5.4.0 from annotations +// Mocks generated by Mockito 5.4.1 from annotations // in webview_flutter_wkwebview/test/webkit_webview_cookie_manager_test.dart. // Do not manually edit this file. +// @dart=2.19 + // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i3; diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_widget_test.mocks.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_widget_test.mocks.dart index fe86de77af0..ba7b8eacba0 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_widget_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_widget_test.mocks.dart @@ -1,7 +1,9 @@ -// Mocks generated by Mockito 5.4.0 from annotations +// Mocks generated by Mockito 5.4.1 from annotations // in webview_flutter_wkwebview/test/webkit_webview_widget_test.dart. // Do not manually edit this file. +// @dart=2.19 + // ignore_for_file: no_leading_underscores_for_library_prefixes import 'dart:async' as _i3; From ac8eaccaae8fb7a5aee6ac56e5c120a6a9f81f6e Mon Sep 17 00:00:00 2001 From: TheVinhLuong Date: Tue, 1 Aug 2023 22:26:00 +0700 Subject: [PATCH 08/20] Add iOS related unit test codes --- .../webview_flutter_test.dart | 4 +- .../webview_flutter_test.dart | 7 +- .../FWFScrollViewDelegateHostApiTests.m | 40 ++++--- .../RunnerTests/FWFScrollViewHostApiTests.m | 32 +++--- .../ios/Classes/FWFGeneratedWebKitApis.h | 38 +++++++ .../ios/Classes/FWFGeneratedWebKitApis.m | 93 +++++++++++++++ .../Classes/FWFScrollViewDelegateHostApi.h | 5 +- .../Classes/FWFScrollViewDelegateHostApi.m | 14 +-- .../ios/Classes/FWFScrollViewHostApi.m | 8 +- .../lib/src/common/web_kit.g.dart | 106 ++++++++++++++++++ .../lib/src/ui_kit/ui_kit.dart | 2 +- .../lib/src/ui_kit/ui_kit_api_impls.dart | 4 +- .../lib/src/web_kit/web_kit.dart | 7 ++ .../lib/src/webkit_webview_controller.dart | 17 ++- .../pigeons/web_kit.dart | 2 +- .../web_kit_webview_widget_test.mocks.dart | 30 +++++ .../test/src/common/test_web_kit.g.dart | 68 +++++++++++ .../test/src/ui_kit/ui_kit_test.mocks.dart | 15 +++ .../test/webkit_webview_controller_test.dart | 85 +++++++------- .../webkit_webview_controller_test.mocks.dart | 78 +++++++++++++ .../test/webkit_webview_widget_test.dart | 13 ++- 21 files changed, 561 insertions(+), 107 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart index 17a318136ab..6f95a2bf7a8 100644 --- a/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart @@ -702,11 +702,11 @@ Future main() async { ); unawaited(delegate.setOnPageFinished((_) => pageLoaded.complete())); unawaited(controller.setPlatformNavigationDelegate(delegate)); - unawaited(controller.setOnContentOffsetChanged((ContentOffsetChange contentOffsetChange) { + unawaited(controller + .setOnContentOffsetChanged((ContentOffsetChange contentOffsetChange) { offsetsCompleter.complete(contentOffsetChange); })); - await controller.loadRequest( LoadRequestParams( uri: Uri.parse( diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart index 868b4d04a83..76a66b1d1c8 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart @@ -675,7 +675,8 @@ Future main() async { }); group('Programmatic Scroll', () { - testWidgets('setAndGetAndListenScrollPosition', (WidgetTester tester) async { + testWidgets('setAndGetAndListenScrollPosition', + (WidgetTester tester) async { const String scrollTestPage = ''' @@ -712,11 +713,11 @@ Future main() async { ); unawaited(delegate.setOnPageFinished((_) => pageLoaded.complete())); unawaited(controller.setPlatformNavigationDelegate(delegate)); - unawaited(controller.setOnContentOffsetChanged((ContentOffsetChange contentOffsetChange) { + unawaited(controller + .setOnContentOffsetChanged((ContentOffsetChange contentOffsetChange) { offsetsCompleter.complete(contentOffsetChange); })); - await controller.loadRequest( LoadRequestParams( uri: Uri.parse( diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m index 4f945e36740..0b4c2dd22c8 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m @@ -26,10 +26,12 @@ @implementation FWFScrollViewDelegateHostApiTests * @return A mock FWFScrollViewDelegate. */ - (id)mockDelegateWithManager:(FWFInstanceManager *)instanceManager identifier:(long)identifier { - FWFScrollViewDelegate *delegate = [[FWFScrollViewDelegate alloc]initWithBinaryMessenger:OCMProtocolMock(@protocol (FlutterBinaryMessenger)) instanceManager: instanceManager]; - - [instanceManager addDartCreatedInstance:delegate withIdentifier:0]; - return OCMPartialMock(delegate); + FWFScrollViewDelegate *delegate = [[FWFScrollViewDelegate alloc] + initWithBinaryMessenger:OCMProtocolMock(@protocol(FlutterBinaryMessenger)) + instanceManager:instanceManager]; + + [instanceManager addDartCreatedInstance:delegate withIdentifier:0]; + return OCMPartialMock(delegate); } /** @@ -40,21 +42,22 @@ - (id)mockDelegateWithManager:(FWFInstanceManager *)instanceManager identifier:( * @return A mock FWFUIScrollViewDelegateFlutterApiImpl. */ - (id)mockFlutterApiWithManager:(FWFInstanceManager *)instanceManager { - FWFScrollViewDelegateFlutterApiImpl *flutterAPI = [[FWFScrollViewDelegateFlutterApiImpl alloc] - initWithBinaryMessenger:OCMProtocolMock(@protocol(FlutterBinaryMessenger)) - instanceManager:instanceManager]; - return OCMPartialMock(flutterAPI); + FWFScrollViewDelegateFlutterApiImpl *flutterAPI = [[FWFScrollViewDelegateFlutterApiImpl alloc] + initWithBinaryMessenger:OCMProtocolMock(@protocol(FlutterBinaryMessenger)) + instanceManager:instanceManager]; + return OCMPartialMock(flutterAPI); } - (void)testCreateWithIdentifier { FWFInstanceManager *instanceManager = [[FWFInstanceManager alloc] init]; - FWFScrollViewDelegateHostApiImpl *hostAPI = [[FWFScrollViewDelegateHostApiImpl alloc] + FWFScrollViewDelegateHostApiImpl *hostAPI = [[FWFScrollViewDelegateHostApiImpl alloc] initWithBinaryMessenger:OCMProtocolMock(@protocol(FlutterBinaryMessenger)) instanceManager:instanceManager]; FlutterError *error; [hostAPI createWithIdentifier:@0 error:&error]; - FWFScrollViewDelegate *delegate = (FWFScrollViewDelegate *)[instanceManager instanceForIdentifier:0]; + FWFScrollViewDelegate *delegate = + (FWFScrollViewDelegate *)[instanceManager instanceForIdentifier:0]; XCTAssertTrue([delegate conformsToProtocol:@protocol(UIScrollViewDelegate)]); XCTAssertNil(error); @@ -63,15 +66,18 @@ - (void)testCreateWithIdentifier { - (void)testOnScrollViewDidScrollForDelegateWithIdentifier { FWFInstanceManager *instanceManager = [[FWFInstanceManager alloc] init]; - FWFScrollViewDelegate *mockDelegate = [self mockDelegateWithManager:instanceManager identifier:0]; - FWFScrollViewDelegateFlutterApiImpl *mockFlutterAPI = [self mockFlutterApiWithManager:instanceManager]; + FWFScrollViewDelegate *mockDelegate = [self mockDelegateWithManager:instanceManager identifier:0]; + FWFScrollViewDelegateFlutterApiImpl *mockFlutterAPI = + [self mockFlutterApiWithManager:instanceManager]; OCMStub([mockDelegate ScrollViewDelegateAPI]).andReturn(mockFlutterAPI); - UIScrollView *scrollView = [[UIScrollView alloc] init]; + UIScrollView *scrollView = [[UIScrollView alloc] init]; + + [instanceManager addDartCreatedInstance:scrollView withIdentifier:1]; - [instanceManager addDartCreatedInstance:scrollView withIdentifier:1]; - - [mockDelegate scrollViewDidScroll:scrollView]; - OCMVerify([mockFlutterAPI scrollViewDidScrollWithIdentifier:@0 uiScrollViewIdentifier:@1 completion:OCMOCK_ANY]); + [mockDelegate scrollViewDidScroll:scrollView]; + OCMVerify([mockFlutterAPI scrollViewDidScrollWithIdentifier:@0 + uiScrollViewIdentifier:@1 + completion:OCMOCK_ANY]); } @end diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewHostApiTests.m b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewHostApiTests.m index 51e097ba529..069a328cbd9 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewHostApiTests.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewHostApiTests.m @@ -62,20 +62,22 @@ - (void)testSetContentOffset { XCTAssertNil(error); } -- (void) testSetDelegateForScrollView { - UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 500, 500)]; - FWFScrollViewDelegate *delegate = [[FWFScrollViewDelegate alloc] init]; - - FWFInstanceManager *instanceManager = [[FWFInstanceManager alloc] init]; - [instanceManager addDartCreatedInstance:scrollView withIdentifier:0]; - [instanceManager addDartCreatedInstance:delegate withIdentifier:1]; - - FWFScrollViewHostApiImpl *hostAPI = - [[FWFScrollViewHostApiImpl alloc] initWithInstanceManager:instanceManager]; - - FlutterError *error; - [hostAPI setDelegateForScrollViewWithIdentifier:@0 uiScrollViewDelegateIdentifier:@1 error:&error]; - XCTAssertEqual(scrollView.delegate, delegate); - XCTAssertNil(error); +- (void)testSetDelegateForScrollView { + UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 500, 500)]; + FWFScrollViewDelegate *delegate = [[FWFScrollViewDelegate alloc] init]; + + FWFInstanceManager *instanceManager = [[FWFInstanceManager alloc] init]; + [instanceManager addDartCreatedInstance:scrollView withIdentifier:0]; + [instanceManager addDartCreatedInstance:delegate withIdentifier:1]; + + FWFScrollViewHostApiImpl *hostAPI = + [[FWFScrollViewHostApiImpl alloc] initWithInstanceManager:instanceManager]; + + FlutterError *error; + [hostAPI setDelegateForScrollViewWithIdentifier:@0 + uiScrollViewDelegateIdentifier:@1 + error:&error]; + XCTAssertEqual(scrollView.delegate, delegate); + XCTAssertNil(error); } @end diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.h b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.h index 5158dcd9689..a77994f1807 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.h +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.h @@ -459,6 +459,9 @@ NSObject *FWFUIScrollViewHostApiGetCodec(void); toX:(NSNumber *)x y:(NSNumber *)y error:(FlutterError *_Nullable *_Nonnull)error; +- (void)setDelegateForScrollViewWithIdentifier:(NSNumber *)identifier + uiScrollViewDelegateIdentifier:(nullable NSNumber *)uiScrollViewDelegateIdentifier + error:(FlutterError *_Nullable *_Nonnull)error; @end extern void FWFUIScrollViewHostApiSetup(id binaryMessenger, @@ -850,4 +853,39 @@ NSObject *FWFNSUrlFlutterApiGetCodec(void); completion:(void (^)(FlutterError *_Nullable))completion; @end +/// The codec used by FWFUIScrollViewDelegateHostApi. +NSObject *FWFUIScrollViewDelegateHostApiGetCodec(void); + +/// Host API for `UIScrollViewDelegate`. +/// +/// This class may handle instantiating and adding native object instances that +/// are attached to a Dart instance or method calls on the associated native +/// class or an instance of the class. +/// +/// See https://developer.apple.com/documentation/uikit/uiscrollviewdelegate?language=objc. +@protocol FWFUIScrollViewDelegateHostApi +- (void)createWithIdentifier:(NSNumber *)identifier error:(FlutterError *_Nullable *_Nonnull)error; +@end + +extern void FWFUIScrollViewDelegateHostApiSetup( + id binaryMessenger, + NSObject *_Nullable api); + +/// The codec used by FWFUIScrollViewDelegateFlutterApi. +NSObject *FWFUIScrollViewDelegateFlutterApiGetCodec(void); + +/// Flutter API for `UIScrollViewDelegate`. +/// +/// This class may handle instantiating and adding Dart instances that are +/// attached to a native instance or receiving callback methods from an +/// overridden native class. +/// +/// See https://developer.apple.com/documentation/uikit/uiscrollviewdelegate?language=objc. +@interface FWFUIScrollViewDelegateFlutterApi : NSObject +- (instancetype)initWithBinaryMessenger:(id)binaryMessenger; +- (void)scrollViewDidScrollWithIdentifier:(NSNumber *)identifier + uiScrollViewIdentifier:(NSNumber *)uiScrollViewIdentifier + completion:(void (^)(FlutterError *_Nullable))completion; +@end + NS_ASSUME_NONNULL_END diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.m index d8d4e2972ee..c2e39befe58 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.m @@ -888,6 +888,33 @@ void FWFUIScrollViewHostApiSetup(id binaryMessenger, [channel setMessageHandler:nil]; } } + { + FlutterBasicMessageChannel *channel = [[FlutterBasicMessageChannel alloc] + initWithName: + @"dev.flutter.pigeon.webview_flutter_wkwebview.UIScrollViewHostApi.setDelegate" + binaryMessenger:binaryMessenger + codec:FWFUIScrollViewHostApiGetCodec()]; + if (api) { + NSCAssert([api respondsToSelector:@selector(setDelegateForScrollViewWithIdentifier: + uiScrollViewDelegateIdentifier:error:)], + @"FWFUIScrollViewHostApi api (%@) doesn't respond to " + @"@selector(setDelegateForScrollViewWithIdentifier:uiScrollViewDelegateIdentifier:" + @"error:)", + api); + [channel setMessageHandler:^(id _Nullable message, FlutterReply callback) { + NSArray *args = message; + NSNumber *arg_identifier = GetNullableObjectAtIndex(args, 0); + NSNumber *arg_uiScrollViewDelegateIdentifier = GetNullableObjectAtIndex(args, 1); + FlutterError *error; + [api setDelegateForScrollViewWithIdentifier:arg_identifier + uiScrollViewDelegateIdentifier:arg_uiScrollViewDelegateIdentifier + error:&error]; + callback(wrapResult(nil, error)); + }]; + } else { + [channel setMessageHandler:nil]; + } + } } @interface FWFWKWebViewConfigurationHostApiCodecReader : FlutterStandardReader @end @@ -2869,3 +2896,69 @@ - (void)createWithIdentifier:(NSNumber *)arg_identifier }]; } @end + +NSObject *FWFUIScrollViewDelegateHostApiGetCodec(void) { + static FlutterStandardMessageCodec *sSharedObject = nil; + sSharedObject = [FlutterStandardMessageCodec sharedInstance]; + return sSharedObject; +} + +void FWFUIScrollViewDelegateHostApiSetup(id binaryMessenger, + NSObject *api) { + { + FlutterBasicMessageChannel *channel = [[FlutterBasicMessageChannel alloc] + initWithName: + @"dev.flutter.pigeon.webview_flutter_wkwebview.UIScrollViewDelegateHostApi.create" + binaryMessenger:binaryMessenger + codec:FWFUIScrollViewDelegateHostApiGetCodec()]; + if (api) { + NSCAssert([api respondsToSelector:@selector(createWithIdentifier:error:)], + @"FWFUIScrollViewDelegateHostApi api (%@) doesn't respond to " + @"@selector(createWithIdentifier:error:)", + api); + [channel setMessageHandler:^(id _Nullable message, FlutterReply callback) { + NSArray *args = message; + NSNumber *arg_identifier = GetNullableObjectAtIndex(args, 0); + FlutterError *error; + [api createWithIdentifier:arg_identifier error:&error]; + callback(wrapResult(nil, error)); + }]; + } else { + [channel setMessageHandler:nil]; + } + } +} +NSObject *FWFUIScrollViewDelegateFlutterApiGetCodec(void) { + static FlutterStandardMessageCodec *sSharedObject = nil; + sSharedObject = [FlutterStandardMessageCodec sharedInstance]; + return sSharedObject; +} + +@interface FWFUIScrollViewDelegateFlutterApi () +@property(nonatomic, strong) NSObject *binaryMessenger; +@end + +@implementation FWFUIScrollViewDelegateFlutterApi + +- (instancetype)initWithBinaryMessenger:(NSObject *)binaryMessenger { + self = [super init]; + if (self) { + _binaryMessenger = binaryMessenger; + } + return self; +} +- (void)scrollViewDidScrollWithIdentifier:(NSNumber *)arg_identifier + uiScrollViewIdentifier:(NSNumber *)arg_uiScrollViewIdentifier + completion:(void (^)(FlutterError *_Nullable))completion { + FlutterBasicMessageChannel *channel = [FlutterBasicMessageChannel + messageChannelWithName:@"dev.flutter.pigeon.webview_flutter_wkwebview." + @"UIScrollViewDelegateFlutterApi.scrollViewDidScroll" + binaryMessenger:self.binaryMessenger + codec:FWFUIScrollViewDelegateFlutterApiGetCodec()]; + [channel + sendMessage:@[ arg_identifier ?: [NSNull null], arg_uiScrollViewIdentifier ?: [NSNull null] ] + reply:^(id reply) { + completion(nil); + }]; +} +@end diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.h b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.h index 2736ba24ea7..9ab33bbf681 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.h +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.h @@ -16,7 +16,7 @@ NS_ASSUME_NONNULL_BEGIN * * Handles making callbacks to Dart for a UIScrollViewDelegate. */ -@interface FWFScrollViewDelegateFlutterApiImpl : FWFScrollViewDelegateFlutterApi +@interface FWFScrollViewDelegateFlutterApiImpl : FWFUIScrollViewDelegateFlutterApi - (instancetype)initWithBinaryMessenger:(id)binaryMessenger instanceManager:(FWFInstanceManager *)instanceManager; @@ -26,8 +26,7 @@ NS_ASSUME_NONNULL_BEGIN * Implementation of WKUIScrollViewDelegate for FWFUIScrollViewDelegateHostApiImpl. */ @interface FWFScrollViewDelegate : FWFObject -@property(readonly, nonnull, nonatomic) - FWFScrollViewDelegateFlutterApiImpl *ScrollViewDelegateAPI; +@property(readonly, nonnull, nonatomic) FWFScrollViewDelegateFlutterApiImpl *ScrollViewDelegateAPI; - (instancetype)initWithBinaryMessenger:(id)binaryMessenger instanceManager:(FWFInstanceManager *)instanceManager; diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.m index c66ef9adb0d..99bae5345df 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.m @@ -51,17 +51,17 @@ - (instancetype)initWithBinaryMessenger:(id)binaryMessen if (self) { _ScrollViewDelegateAPI = [[FWFScrollViewDelegateFlutterApiImpl alloc] initWithBinaryMessenger:binaryMessenger - instanceManager:instanceManager]; + instanceManager:instanceManager]; } return self; } - (void)scrollViewDidScroll:(UIScrollView *)scrollView { [self.ScrollViewDelegateAPI _onScrollViewDidScrollForDelegate:self - uiScrollView:scrollView - completion:^(FlutterError *error) { - NSAssert(!error, @"%@", error); - }]; + uiScrollView:scrollView + completion:^(FlutterError *error) { + NSAssert(!error, @"%@", error); + }]; } @end @@ -88,8 +88,8 @@ - (void)createWithIdentifier:(nonnull NSNumber *)identifier error:(FlutterError *_Nullable *_Nonnull)error { FWFScrollViewDelegate *uiScrollViewDelegate = [[FWFScrollViewDelegate alloc] initWithBinaryMessenger:self.binaryMessenger - instanceManager:self.instanceManager]; - [self.instanceManager addDartCreatedInstance:uiScrollViewDelegate + instanceManager:self.instanceManager]; + [self.instanceManager addDartCreatedInstance:uiScrollViewDelegate withIdentifier:identifier.longValue]; } @end diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m index 9103934e860..20d23f40fac 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m @@ -33,7 +33,7 @@ - (void)createFromWebViewWithIdentifier:(nonnull NSNumber *)identifier error:(FlutterError *_Nullable __autoreleasing *_Nonnull)error { WKWebView *webView = (WKWebView *)[self.instanceManager instanceForIdentifier:webViewIdentifier.longValue]; - NSLog(@"UISCRILLVI ID %@", identifier); + NSLog(@"UISCRILLVI ID %@", identifier); [self.instanceManager addDartCreatedInstance:webView.scrollView withIdentifier:identifier.longValue]; } @@ -63,10 +63,10 @@ - (void)setContentOffsetForScrollViewWithIdentifier:(nonnull NSNumber *)identifi setContentOffset:CGPointMake(x.doubleValue, y.doubleValue)]; } - (void)setDelegateForScrollViewWithIdentifier:(nonnull NSNumber *)identifier - uiScrollViewDelegateIdentifier:(nonnull NSNumber *)uiScrollViewDelegateIdentifier + uiScrollViewDelegateIdentifier:(NSNumber *)uiScrollViewDelegateIdentifier error:(FlutterError *_Nullable *_Nonnull)error { - NSLog(@"UISCRILL ID %@", identifier); - NSLog(@"UISCRILLDELEGATE ID %@", uiScrollViewDelegateIdentifier); + NSLog(@"UISCRILL ID %@", identifier); + NSLog(@"UISCRILLDELEGATE ID %@", uiScrollViewDelegateIdentifier); [[self scrollViewForIdentifier:identifier] setDelegate:(FWFScrollViewDelegate *)[self.instanceManager instanceForIdentifier:uiScrollViewDelegateIdentifier.longValue]]; diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/common/web_kit.g.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/common/web_kit.g.dart index 25649a01099..2f3f03c082f 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/common/web_kit.g.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/common/web_kit.g.dart @@ -964,6 +964,31 @@ class UIScrollViewHostApi { return; } } + + Future setDelegate( + int arg_identifier, int? arg_uiScrollViewDelegateIdentifier) async { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.webview_flutter_wkwebview.UIScrollViewHostApi.setDelegate', + codec, + binaryMessenger: _binaryMessenger); + final List? replyList = await channel + .send([arg_identifier, arg_uiScrollViewDelegateIdentifier]) + as List?; + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel.', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else { + return; + } + } } class _WKWebViewConfigurationHostApiCodec extends StandardMessageCodec { @@ -2927,3 +2952,84 @@ abstract class NSUrlFlutterApi { } } } + +/// Host API for `UIScrollViewDelegate`. +/// +/// This class may handle instantiating and adding native object instances that +/// are attached to a Dart instance or method calls on the associated native +/// class or an instance of the class. +/// +/// See https://developer.apple.com/documentation/uikit/uiscrollviewdelegate?language=objc. +class UIScrollViewDelegateHostApi { + /// Constructor for [UIScrollViewDelegateHostApi]. The [binaryMessenger] named argument is + /// available for dependency injection. If it is left null, the default + /// BinaryMessenger will be used which routes to the host platform. + UIScrollViewDelegateHostApi({BinaryMessenger? binaryMessenger}) + : _binaryMessenger = binaryMessenger; + final BinaryMessenger? _binaryMessenger; + + static const MessageCodec codec = StandardMessageCodec(); + + Future create(int arg_identifier) async { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.webview_flutter_wkwebview.UIScrollViewDelegateHostApi.create', + codec, + binaryMessenger: _binaryMessenger); + final List? replyList = + await channel.send([arg_identifier]) as List?; + if (replyList == null) { + throw PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel.', + ); + } else if (replyList.length > 1) { + throw PlatformException( + code: replyList[0]! as String, + message: replyList[1] as String?, + details: replyList[2], + ); + } else { + return; + } + } +} + +/// Flutter API for `UIScrollViewDelegate`. +/// +/// This class may handle instantiating and adding Dart instances that are +/// attached to a native instance or receiving callback methods from an +/// overridden native class. +/// +/// See https://developer.apple.com/documentation/uikit/uiscrollviewdelegate?language=objc. +abstract class UIScrollViewDelegateFlutterApi { + static const MessageCodec codec = StandardMessageCodec(); + + void scrollViewDidScroll(int identifier, int uiScrollViewIdentifier); + + static void setup(UIScrollViewDelegateFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.webview_flutter_wkwebview.UIScrollViewDelegateFlutterApi.scrollViewDidScroll', + codec, + binaryMessenger: binaryMessenger); + if (api == null) { + channel.setMessageHandler(null); + } else { + channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.webview_flutter_wkwebview.UIScrollViewDelegateFlutterApi.scrollViewDidScroll was null.'); + final List args = (message as List?)!; + final int? arg_identifier = (args[0] as int?); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.webview_flutter_wkwebview.UIScrollViewDelegateFlutterApi.scrollViewDidScroll was null, expected non-null int.'); + final int? arg_uiScrollViewIdentifier = (args[1] as int?); + assert(arg_uiScrollViewIdentifier != null, + 'Argument for dev.flutter.pigeon.webview_flutter_wkwebview.UIScrollViewDelegateFlutterApi.scrollViewDidScroll was null, expected non-null int.'); + api.scrollViewDidScroll(arg_identifier!, arg_uiScrollViewIdentifier!); + return; + }); + } + } + } +} diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart index d67b4b52d46..da8285a0a13 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart @@ -80,7 +80,7 @@ class UIScrollView extends UIView { /// Set the delegate to this scroll view. /// /// Represents [UIScrollView.delegate](https://developer.apple.com/documentation/uikit/uiscrollview/1619430-delegate?language=objc). - Future setDelegate(UIScrollViewDelegate delegate) { + Future setDelegate(UIScrollViewDelegate? delegate) { return _scrollViewApi.setDelegateForInstances(this, delegate); } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart index 1b8b8a6fa96..704504cd732 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart @@ -79,11 +79,11 @@ class UIScrollViewHostApiImpl extends UIScrollViewHostApi { /// Calls [setContentOffset] with the ids of the provided object instances. Future setDelegateForInstances( UIScrollView instance, - UIScrollViewDelegate delegate, + UIScrollViewDelegate? delegate, ) async { return setDelegate( instanceManager.getIdentifier(instance)!, - instanceManager.getIdentifier(delegate)!, + delegate != null ? instanceManager.getIdentifier(delegate)! : null, ); } } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit.dart index 4d1f9ed1ce2..d581cd10f25 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit.dart @@ -996,6 +996,13 @@ class WKWebView extends UIView { return _webViewApi.setUIDelegateForInstances(this, delegate); } + /// Used to set a scroll view delegate to a web view's scroll view. + /// + /// Sets [UIScrollView.UIScrollViewDelegate](https://developer.apple.com/documentation/uikit/uiscrollviewdelegate?language=objc). + Future setScrollViewDelegate(UIScrollViewDelegate? delegate) { + return scrollView.setDelegate(delegate); + } + /// The object you use to manage navigation behavior for the web view. /// /// Sets [WKWebView.navigationDelegate](https://developer.apple.com/documentation/webkit/wkwebview/1414971-navigationdelegate?language=objc). diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart index a842831d82f..38855c4c6f0 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart @@ -222,13 +222,12 @@ class WebKitWebViewController extends PlatformWebViewController { _webView.setUIDelegate(_uiDelegate); _uiScrollViewDelegate = _webKitParams.webKitProxy .createUIScrollViewDelegate( - scrollViewDidScroll: (UIScrollView uiScrollView) async { - final Point offset = await uiScrollView.getContentOffset(); - _onContentOffsetChangedCallback - ?.call(ContentOffsetChange(offset.x.toInt(), offset.y.toInt())); - }); - _webView.scrollView.setDelegate(_uiScrollViewDelegate); - + scrollViewDidScroll: (UIScrollView uiScrollView) async { + final Point offset = await uiScrollView.getContentOffset(); + _onContentOffsetChangedCallback + ?.call(ContentOffsetChange(offset.x.toInt(), offset.y.toInt())); + }); + _webView.setScrollViewDelegate(_uiScrollViewDelegate); } /// The WebKit WebView being controlled. @@ -272,7 +271,7 @@ class WebKitWebViewController extends PlatformWebViewController { ); late final WKUIDelegate _uiDelegate; - + late final UIScrollViewDelegate _uiScrollViewDelegate; final Map _javaScriptChannelParams = @@ -565,7 +564,7 @@ class WebKitWebViewController extends PlatformWebViewController { @override Future setOnContentOffsetChanged( void Function(ContentOffsetChange contentOffsetChange)? - onOffsetChange) async { + onOffsetChange) async { _onContentOffsetChangedCallback = onOffsetChange; } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/pigeons/web_kit.dart b/packages/webview_flutter/webview_flutter_wkwebview/pigeons/web_kit.dart index ee4fad2ea02..26ae2633ba7 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/pigeons/web_kit.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/pigeons/web_kit.dart @@ -401,7 +401,7 @@ abstract class UIScrollViewHostApi { @ObjCSelector( 'setDelegateForScrollViewWithIdentifier:uiScrollViewDelegateIdentifier:') - void setDelegate(int identifier, int uiScrollViewDelegateIdentifier); + void setDelegate(int identifier, int? uiScrollViewDelegateIdentifier); } /// Mirror of WKWebViewConfiguration. diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/legacy/web_kit_webview_widget_test.mocks.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/legacy/web_kit_webview_widget_test.mocks.dart index b4dbce54e95..66d7bf05ccc 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/legacy/web_kit_webview_widget_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/legacy/web_kit_webview_widget_test.mocks.dart @@ -194,6 +194,16 @@ class MockUIScrollView extends _i1.Mock implements _i3.UIScrollView { returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); @override + _i5.Future setDelegate(_i3.UIScrollViewDelegate? delegate) => + (super.noSuchMethod( + Invocation.method( + #setDelegate, + [delegate], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + @override _i3.UIScrollView copy() => (super.noSuchMethod( Invocation.method( #copy, @@ -491,6 +501,16 @@ class MockWKWebView extends _i1.Mock implements _i4.WKWebView { returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); @override + _i5.Future setScrollViewDelegate(_i3.UIScrollViewDelegate? delegate) => + (super.noSuchMethod( + Invocation.method( + #setScrollViewDelegate, + [delegate], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + @override _i5.Future setNavigationDelegate(_i4.WKNavigationDelegate? delegate) => (super.noSuchMethod( Invocation.method( @@ -762,6 +782,16 @@ class MockWKWebViewConfiguration extends _i1.Mock returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); @override + _i5.Future setLimitsNavigationsToAppBoundDomains(bool? limit) => + (super.noSuchMethod( + Invocation.method( + #setLimitsNavigationsToAppBoundDomains, + [limit], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + @override _i5.Future setMediaTypesRequiringUserActionForPlayback( Set<_i4.WKAudiovisualMediaType>? types) => (super.noSuchMethod( diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/src/common/test_web_kit.g.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/src/common/test_web_kit.g.dart index ee9065ea668..e3fb9228d95 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/src/common/test_web_kit.g.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/src/common/test_web_kit.g.dart @@ -225,6 +225,8 @@ abstract class TestUIScrollViewHostApi { void setContentOffset(int identifier, double x, double y); + void setDelegate(int identifier, int? uiScrollViewDelegateIdentifier); + static void setup(TestUIScrollViewHostApi? api, {BinaryMessenger? binaryMessenger}) { { @@ -334,6 +336,30 @@ abstract class TestUIScrollViewHostApi { }); } } + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.webview_flutter_wkwebview.UIScrollViewHostApi.setDelegate', + codec, + binaryMessenger: binaryMessenger); + if (api == null) { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); + } else { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.webview_flutter_wkwebview.UIScrollViewHostApi.setDelegate was null.'); + final List args = (message as List?)!; + final int? arg_identifier = (args[0] as int?); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.webview_flutter_wkwebview.UIScrollViewHostApi.setDelegate was null, expected non-null int.'); + final int? arg_uiScrollViewDelegateIdentifier = (args[1] as int?); + api.setDelegate(arg_identifier!, arg_uiScrollViewDelegateIdentifier); + return []; + }); + } + } } } @@ -1814,3 +1840,45 @@ abstract class TestNSUrlHostApi { } } } + +/// Host API for `UIScrollViewDelegate`. +/// +/// This class may handle instantiating and adding native object instances that +/// are attached to a Dart instance or method calls on the associated native +/// class or an instance of the class. +/// +/// See https://developer.apple.com/documentation/uikit/uiscrollviewdelegate?language=objc. +abstract class TestUIScrollViewDelegateHostApi { + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; + static const MessageCodec codec = StandardMessageCodec(); + + void create(int identifier); + + static void setup(TestUIScrollViewDelegateHostApi? api, + {BinaryMessenger? binaryMessenger}) { + { + final BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.webview_flutter_wkwebview.UIScrollViewDelegateHostApi.create', + codec, + binaryMessenger: binaryMessenger); + if (api == null) { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); + } else { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.webview_flutter_wkwebview.UIScrollViewDelegateHostApi.create was null.'); + final List args = (message as List?)!; + final int? arg_identifier = (args[0] as int?); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.webview_flutter_wkwebview.UIScrollViewDelegateHostApi.create was null, expected non-null int.'); + api.create(arg_identifier!); + return []; + }); + } + } + } +} diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.mocks.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.mocks.dart index 515028b1d1e..ceb95f6c5f2 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.mocks.dart @@ -406,6 +406,21 @@ class MockTestUIScrollViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override + void setDelegate( + int? identifier, + int? uiScrollViewDelegateIdentifier, + ) => + super.noSuchMethod( + Invocation.method( + #setDelegate, + [ + identifier, + uiScrollViewDelegateIdentifier, + ], + ), + returnValueForMissingStub: null, + ); } /// A class which mocks [TestUIViewHostApi]. diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.dart index 2cd20e0f688..a73a1d1acff 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.dart @@ -23,6 +23,7 @@ import 'webkit_webview_controller_test.mocks.dart'; @GenerateMocks([ NSUrl, UIScrollView, + UIScrollViewDelegate, WKPreferences, WKUserContentController, WKWebsiteDataStore, @@ -35,6 +36,7 @@ void main() { group('WebKitWebViewController', () { WebKitWebViewController createControllerWithMocks({ MockUIScrollView? mockScrollView, + MockUIScrollViewDelegate? mockScrollViewDelegate, MockWKPreferences? mockPreferences, WKUIDelegate? uiDelegate, MockWKUserContentController? mockUserContentController, @@ -57,48 +59,48 @@ void main() { final PlatformWebViewControllerCreationParams controllerCreationParams = WebKitWebViewControllerCreationParams( webKitProxy: WebKitProxy( - createWebViewConfiguration: ({InstanceManager? instanceManager}) { - return nonNullMockWebViewConfiguration; - }, - createWebView: ( - _, { - void Function( - String keyPath, - NSObject object, - Map change, - )? observeValue, - InstanceManager? instanceManager, - }) { - nonNullMockWebView = createMockWebView == null - ? MockWKWebView() - : createMockWebView( - nonNullMockWebViewConfiguration, - observeValue: observeValue, - ); - return nonNullMockWebView; - }, - createUIDelegate: ({ - void Function( - WKWebView webView, - WKWebViewConfiguration configuration, - WKNavigationAction navigationAction, - )? onCreateWebView, - Future Function( - WKUIDelegate instance, - WKWebView webView, - WKSecurityOrigin origin, - WKFrameInfo frame, - WKMediaCaptureType type, - )? requestMediaCapturePermission, - InstanceManager? instanceManager, - }) { - return uiDelegate ?? - CapturingUIDelegate( - onCreateWebView: onCreateWebView, - requestMediaCapturePermission: requestMediaCapturePermission, + createWebViewConfiguration: ({InstanceManager? instanceManager}) { + return nonNullMockWebViewConfiguration; + }, createWebView: ( + _, { + void Function( + String keyPath, + NSObject object, + Map change, + )? observeValue, + InstanceManager? instanceManager, + }) { + nonNullMockWebView = createMockWebView == null + ? MockWKWebView() + : createMockWebView( + nonNullMockWebViewConfiguration, + observeValue: observeValue, ); - }, - ), + return nonNullMockWebView; + }, createUIDelegate: ({ + void Function( + WKWebView webView, + WKWebViewConfiguration configuration, + WKNavigationAction navigationAction, + )? onCreateWebView, + Future Function( + WKUIDelegate instance, + WKWebView webView, + WKSecurityOrigin origin, + WKFrameInfo frame, + WKMediaCaptureType type, + )? requestMediaCapturePermission, + InstanceManager? instanceManager, + }) { + return uiDelegate ?? + CapturingUIDelegate( + onCreateWebView: onCreateWebView, + requestMediaCapturePermission: requestMediaCapturePermission, + ); + }, createUIScrollViewDelegate: ( + {void Function(UIScrollView scrollView)? scrollViewDidScroll}) { + return mockScrollViewDelegate ?? MockUIScrollViewDelegate(); + }), instanceManager: instanceManager, ); @@ -117,7 +119,6 @@ void main() { mockUserContentController ?? MockWKUserContentController()); when(nonNullMockWebViewConfiguration.websiteDataStore) .thenReturn(mockWebsiteDataStore ?? MockWKWebsiteDataStore()); - return controller; } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.mocks.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.mocks.dart index 4f62caf250a..f807561c754 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.mocks.dart @@ -228,6 +228,16 @@ class MockUIScrollView extends _i1.Mock implements _i4.UIScrollView { returnValueForMissingStub: _i6.Future.value(), ) as _i6.Future); @override + _i6.Future setDelegate(_i4.UIScrollViewDelegate? delegate) => + (super.noSuchMethod( + Invocation.method( + #setDelegate, + [delegate], + ), + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); + @override _i4.UIScrollView copy() => (super.noSuchMethod( Invocation.method( #copy, @@ -293,6 +303,64 @@ class MockUIScrollView extends _i1.Mock implements _i4.UIScrollView { ) as _i6.Future); } +/// A class which mocks [UIScrollViewDelegate]. +/// +/// See the documentation for Mockito's code generation for more information. +// ignore: must_be_immutable +class MockUIScrollViewDelegate extends _i1.Mock + implements _i4.UIScrollViewDelegate { + MockUIScrollViewDelegate() { + _i1.throwOnMissingStub(this); + } + + @override + _i6.Future addObserver( + _i2.NSObject? observer, { + required String? keyPath, + required Set<_i2.NSKeyValueObservingOptions>? options, + }) => + (super.noSuchMethod( + Invocation.method( + #addObserver, + [observer], + { + #keyPath: keyPath, + #options: options, + }, + ), + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); + @override + _i6.Future removeObserver( + _i2.NSObject? observer, { + required String? keyPath, + }) => + (super.noSuchMethod( + Invocation.method( + #removeObserver, + [observer], + {#keyPath: keyPath}, + ), + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); + @override + _i2.NSObject copy() => (super.noSuchMethod( + Invocation.method( + #copy, + [], + ), + returnValue: _FakeNSObject_0( + this, + Invocation.method( + #copy, + [], + ), + ), + ) as _i2.NSObject); +} + /// A class which mocks [WKPreferences]. /// /// See the documentation for Mockito's code generation for more information. @@ -588,6 +656,16 @@ class MockWKWebView extends _i1.Mock implements _i5.WKWebView { returnValueForMissingStub: _i6.Future.value(), ) as _i6.Future); @override + _i6.Future setScrollViewDelegate(_i4.UIScrollViewDelegate? delegate) => + (super.noSuchMethod( + Invocation.method( + #setScrollViewDelegate, + [delegate], + ), + returnValue: _i6.Future.value(), + returnValueForMissingStub: _i6.Future.value(), + ) as _i6.Future); + @override _i6.Future setNavigationDelegate(_i5.WKNavigationDelegate? delegate) => (super.noSuchMethod( Invocation.method( diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_widget_test.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_widget_test.dart index ae9ab6bd1d2..e655ae6167f 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_widget_test.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_widget_test.dart @@ -8,10 +8,12 @@ import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart'; import 'package:webview_flutter_wkwebview/src/common/instance_manager.dart'; import 'package:webview_flutter_wkwebview/src/foundation/foundation.dart'; +import 'package:webview_flutter_wkwebview/src/ui_kit/ui_kit.dart'; import 'package:webview_flutter_wkwebview/src/web_kit/web_kit.dart'; import 'package:webview_flutter_wkwebview/src/webkit_proxy.dart'; import 'package:webview_flutter_wkwebview/webview_flutter_wkwebview.dart'; - +import 'webkit_webview_controller_test.mocks.dart' + show MockUIScrollViewDelegate; import 'webkit_webview_widget_test.mocks.dart'; @GenerateMocks([WKUIDelegate, WKWebViewConfiguration]) @@ -121,6 +123,15 @@ WebKitWebViewController createTestWebViewController( testInstanceManager.addDartCreatedInstance(mockWKUIDelegate); return mockWKUIDelegate; + }, createUIScrollViewDelegate: ( + {void Function(UIScrollView scrollView)? scrollViewDidScroll}) { + final MockUIScrollViewDelegate mockScrollViewDelegate = + MockUIScrollViewDelegate(); + when(mockScrollViewDelegate.copy()) + .thenReturn(MockUIScrollViewDelegate()); + + testInstanceManager.addDartCreatedInstance(mockScrollViewDelegate); + return mockScrollViewDelegate; }), ), ); From cfbdee9d03b149ce349b3daf121cd91405e1d34a Mon Sep 17 00:00:00 2001 From: TheVinhLuong Date: Tue, 1 Aug 2023 23:05:29 +0700 Subject: [PATCH 09/20] Fix CI failing checks --- .../lib/src/android_webview_api_impls.dart | 2 +- .../webview_flutter_android/pubspec.yaml | 2 +- .../webview_flutter_platform_interface/pubspec.yaml | 2 +- .../webview_flutter_wkwebview/CHANGELOG.md | 4 ++++ .../integration_test/webview_flutter_test.dart | 4 +++- .../example/ios/Runner.xcodeproj/project.pbxproj | 2 +- .../RunnerTests/FWFScrollViewDelegateHostApiTests.m | 10 +++------- .../lib/src/ui_kit/ui_kit_api_impls.dart | 12 +++++++----- .../webview_flutter_wkwebview/pubspec.yaml | 2 +- 9 files changed, 22 insertions(+), 18 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart index 003fadd823b..9ce825231f9 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart @@ -402,7 +402,7 @@ class WebViewFlutterApiImpl implements WebViewFlutterApi { webViewInstance != null, 'InstanceManager does not contain a WebView with instanceId: $webViewInstanceId', ); - webViewInstance!.onScrollChanged!(ContentOffsetChange(x, y)); + webViewInstance!.onScrollChanged?.call(ContentOffsetChange(x, y)); } } diff --git a/packages/webview_flutter/webview_flutter_android/pubspec.yaml b/packages/webview_flutter/webview_flutter_android/pubspec.yaml index 6ad40f0642f..4f73d822c59 100644 --- a/packages/webview_flutter/webview_flutter_android/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_android/pubspec.yaml @@ -2,7 +2,7 @@ name: webview_flutter_android description: A Flutter plugin that provides a WebView widget on Android. repository: https://github.com/flutter/packages/tree/main/packages/webview_flutter/webview_flutter_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22 -version: 3.9.2 +version: 3.10.0 environment: sdk: ">=2.18.0 <4.0.0" diff --git a/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml b/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml index eca7b4927be..9d01da1fb31 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml @@ -4,7 +4,7 @@ repository: https://github.com/flutter/packages/tree/main/packages/webview_flutt issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview_flutter%22 # NOTE: We strongly prefer non-breaking changes, even at the expense of a # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes -version: 2.4.0 +version: 2.5.0 environment: sdk: ">=2.18.0 <4.0.0" diff --git a/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md b/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md index 35b2b8fb0af..ab878132b3c 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.8.0 + +* Adds support for `setOnContentOffsetChanged` method to the `WebKitWebViewController`. + ## 3.7.2 * Fixes bug where `PlatformWebViewWidget` doesn't rebuild when the controller changes. diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart index 76a66b1d1c8..9a8483c4a1b 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart @@ -715,7 +715,9 @@ Future main() async { unawaited(controller.setPlatformNavigationDelegate(delegate)); unawaited(controller .setOnContentOffsetChanged((ContentOffsetChange contentOffsetChange) { - offsetsCompleter.complete(contentOffsetChange); + if(!offsetsCompleter.isCompleted) { + offsetsCompleter.complete(contentOffsetChange); + } })); await controller.loadRequest( diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner.xcodeproj/project.pbxproj b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner.xcodeproj/project.pbxproj index 1f0aff38226..7fe009390ee 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner.xcodeproj/project.pbxproj @@ -321,7 +321,7 @@ isa = PBXProject; attributes = { DefaultBuildSystemTypeForWorkspace = Original; - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = "The Flutter Authors"; TargetAttributes = { 68BDCAE823C3F7CB00D9C032 = { diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m index 0b4c2dd22c8..bc1dcc11fae 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m @@ -1,10 +1,6 @@ -// -// FWFScrollViewDelegateHostApiTests.m -// RunnerTests -// -// Created by Luong Vinh on 22/07/2023. -// Copyright © 2023 The Flutter Authors. All rights reserved. -// +// 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. @import Flutter; @import XCTest; diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart index 704504cd732..59c5d950aaa 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart @@ -83,7 +83,7 @@ class UIScrollViewHostApiImpl extends UIScrollViewHostApi { ) async { return setDelegate( instanceManager.getIdentifier(instance)!, - delegate != null ? instanceManager.getIdentifier(delegate)! : null, + delegate != null ? instanceManager.getIdentifier(delegate) : null, ); } } @@ -142,11 +142,13 @@ class UIScrollViewDelegateFlutterApiImpl @override void scrollViewDidScroll(int identifier, int uiScrollViewIdentifier) { - final void Function(UIScrollView)? function = + final void Function(UIScrollView)? callback = _getDelegate(identifier).scrollViewDidScroll; - final UIScrollView uiScrollView = instanceManager - .getInstanceWithWeakReference(uiScrollViewIdentifier)! as UIScrollView; - function?.call(uiScrollView); + final UIScrollView? uiScrollView = instanceManager + .getInstanceWithWeakReference(uiScrollViewIdentifier) as UIScrollView?; + if(uiScrollView != null && callback != null) { + callback.call(uiScrollView); + } } } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml b/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml index a67582160f9..c3a4f45e892 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml @@ -2,7 +2,7 @@ name: webview_flutter_wkwebview description: A Flutter plugin that provides a WebView widget based on Apple's WKWebView control. repository: https://github.com/flutter/packages/tree/main/packages/webview_flutter/webview_flutter_wkwebview issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22 -version: 3.7.2 +version: 3.8.0 environment: sdk: ">=2.18.0 <4.0.0" From 562bd04db01d0c884e5032861d91d83f538643a9 Mon Sep 17 00:00:00 2001 From: TheVinhLuong Date: Sun, 27 Aug 2023 15:37:22 +0700 Subject: [PATCH 10/20] Apply changes based on review comments --- .../RunnerTests/FWFScrollViewDelegateHostApiTests.m | 2 +- .../ios/Classes/FWFScrollViewDelegateHostApi.h | 2 +- .../ios/Classes/FWFScrollViewDelegateHostApi.m | 11 +++-------- .../ios/Classes/FWFScrollViewHostApi.m | 3 --- .../lib/src/ui_kit/ui_kit_api_impls.dart | 7 +++---- 5 files changed, 8 insertions(+), 17 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m index bc1dcc11fae..8014063946b 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m @@ -66,7 +66,7 @@ - (void)testOnScrollViewDidScrollForDelegateWithIdentifier { FWFScrollViewDelegateFlutterApiImpl *mockFlutterAPI = [self mockFlutterApiWithManager:instanceManager]; - OCMStub([mockDelegate ScrollViewDelegateAPI]).andReturn(mockFlutterAPI); + OCMStub([mockDelegate scrollViewDelegateAPI]).andReturn(mockFlutterAPI); UIScrollView *scrollView = [[UIScrollView alloc] init]; [instanceManager addDartCreatedInstance:scrollView withIdentifier:1]; diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.h b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.h index 9ab33bbf681..5324725a8fb 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.h +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.h @@ -26,7 +26,7 @@ NS_ASSUME_NONNULL_BEGIN * Implementation of WKUIScrollViewDelegate for FWFUIScrollViewDelegateHostApiImpl. */ @interface FWFScrollViewDelegate : FWFObject -@property(readonly, nonnull, nonatomic) FWFScrollViewDelegateFlutterApiImpl *ScrollViewDelegateAPI; +@property(readonly, nonnull, nonatomic) FWFScrollViewDelegateFlutterApiImpl *scrollViewDelegateAPI; - (instancetype)initWithBinaryMessenger:(id)binaryMessenger instanceManager:(FWFInstanceManager *)instanceManager; diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.m index 99bae5345df..46231c040c8 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.m @@ -28,12 +28,7 @@ - (long)identifierForDelegate:(FWFScrollViewDelegate *)instance { return [self.instanceManager identifierWithStrongReferenceForInstance:instance]; } -- (void)onCreateUIScrollViewForDelegate:(FWFScrollViewDelegate *)instance - uiScrollView:(UIScrollView *)scrollView { - scrollView.delegate = instance; -} - -- (void)_onScrollViewDidScrollForDelegate:(FWFScrollViewDelegate *)instance +- (void)scrollViewDidScrollForDelegate:(FWFScrollViewDelegate *)instance uiScrollView:(UIScrollView *)scrollView completion:(void (^)(FlutterError *_Nullable))completion { [self scrollViewDidScrollWithIdentifier:@([self identifierForDelegate:instance]) @@ -49,7 +44,7 @@ - (instancetype)initWithBinaryMessenger:(id)binaryMessen instanceManager:(FWFInstanceManager *)instanceManager { self = [super initWithBinaryMessenger:binaryMessenger instanceManager:instanceManager]; if (self) { - _ScrollViewDelegateAPI = + _scrollViewDelegateAPI = [[FWFScrollViewDelegateFlutterApiImpl alloc] initWithBinaryMessenger:binaryMessenger instanceManager:instanceManager]; } @@ -57,7 +52,7 @@ - (instancetype)initWithBinaryMessenger:(id)binaryMessen } - (void)scrollViewDidScroll:(UIScrollView *)scrollView { - [self.ScrollViewDelegateAPI _onScrollViewDidScrollForDelegate:self + [self.scrollViewDelegateAPI scrollViewDidScrollForDelegate:self uiScrollView:scrollView completion:^(FlutterError *error) { NSAssert(!error, @"%@", error); diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m index 20d23f40fac..7706c720c69 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m @@ -33,7 +33,6 @@ - (void)createFromWebViewWithIdentifier:(nonnull NSNumber *)identifier error:(FlutterError *_Nullable __autoreleasing *_Nonnull)error { WKWebView *webView = (WKWebView *)[self.instanceManager instanceForIdentifier:webViewIdentifier.longValue]; - NSLog(@"UISCRILLVI ID %@", identifier); [self.instanceManager addDartCreatedInstance:webView.scrollView withIdentifier:identifier.longValue]; } @@ -65,8 +64,6 @@ - (void)setContentOffsetForScrollViewWithIdentifier:(nonnull NSNumber *)identifi - (void)setDelegateForScrollViewWithIdentifier:(nonnull NSNumber *)identifier uiScrollViewDelegateIdentifier:(NSNumber *)uiScrollViewDelegateIdentifier error:(FlutterError *_Nullable *_Nonnull)error { - NSLog(@"UISCRILL ID %@", identifier); - NSLog(@"UISCRILLDELEGATE ID %@", uiScrollViewDelegateIdentifier); [[self scrollViewForIdentifier:identifier] setDelegate:(FWFScrollViewDelegate *)[self.instanceManager instanceForIdentifier:uiScrollViewDelegateIdentifier.longValue]]; diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart index 6671f8494a6..8f914fe3452 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart @@ -76,7 +76,7 @@ class UIScrollViewHostApiImpl extends UIScrollViewHostApi { ); } - /// Calls [setContentOffset] with the ids of the provided object instances. + /// Calls [setDelegate] with the ids of the provided object instances. Future setDelegateForInstances( UIScrollView instance, UIScrollViewDelegate? delegate, @@ -146,9 +146,8 @@ class UIScrollViewDelegateFlutterApiImpl _getDelegate(identifier).scrollViewDidScroll; final UIScrollView? uiScrollView = instanceManager .getInstanceWithWeakReference(uiScrollViewIdentifier) as UIScrollView?; - if (uiScrollView != null && callback != null) { - callback.call(uiScrollView); - } + assert(uiScrollView != null && callback != null); + callback!.call(uiScrollView!); } } From d256a3546d743b9b6a000387d6dde78710329b82 Mon Sep 17 00:00:00 2001 From: TheVinhLuong Date: Tue, 26 Sep 2023 16:48:17 +0700 Subject: [PATCH 11/20] Fix code based on code review --- .../integration_test/webview_flutter_test.dart | 12 ++++++------ .../example/lib/main.dart | 4 ++-- .../lib/src/android_proxy.dart | 2 +- .../lib/src/android_webview.dart | 8 ++++---- .../lib/src/android_webview_api_impls.dart | 4 ++-- .../lib/src/android_webview_controller.dart | 18 +++++++++--------- .../test/android_webview_controller_test.dart | 4 ++-- .../CHANGELOG.md | 2 +- .../lib/src/platform_webview_controller.dart | 6 +++--- ...change.dart => scroll_position_change.dart} | 8 ++++---- .../lib/src/types/types.dart | 2 +- .../integration_test/webview_flutter_test.dart | 14 +++++++------- .../example/lib/main.dart | 4 ++-- .../lib/src/ui_kit/ui_kit.dart | 2 -- .../lib/src/webkit_webview_controller.dart | 16 ++++++++-------- 15 files changed, 52 insertions(+), 54 deletions(-) rename packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/{content_offset_change.dart => scroll_position_change.dart} (67%) diff --git a/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart index 6f95a2bf7a8..b463afae61d 100644 --- a/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart @@ -691,8 +691,8 @@ Future main() async { base64Encode(const Utf8Encoder().convert(scrollTestPage)); final Completer pageLoaded = Completer(); - Completer offsetsCompleter = - Completer(); + Completer offsetsCompleter = + Completer(); final PlatformWebViewController controller = PlatformWebViewController( const PlatformWebViewControllerCreationParams(), ); @@ -703,7 +703,7 @@ Future main() async { unawaited(delegate.setOnPageFinished((_) => pageLoaded.complete())); unawaited(controller.setPlatformNavigationDelegate(delegate)); unawaited(controller - .setOnContentOffsetChanged((ContentOffsetChange contentOffsetChange) { + .setOnScrollPositionChange((ScrollPositionChange contentOffsetChange) { offsetsCompleter.complete(contentOffsetChange); })); @@ -744,19 +744,19 @@ Future main() async { expect(scrollPos.dy, Y_SCROLL); await expectLater( offsetsCompleter.future.then( - (ContentOffsetChange contentOffsetChange) => + (ScrollPositionChange contentOffsetChange) => [contentOffsetChange.x, contentOffsetChange.y]), completion([X_SCROLL, Y_SCROLL])); // Check scrollBy() (on top of scrollTo()) - offsetsCompleter = Completer(); + offsetsCompleter = Completer(); await controller.scrollBy(X_SCROLL, Y_SCROLL); scrollPos = await controller.getScrollPosition(); expect(scrollPos.dx, X_SCROLL * 2); expect(scrollPos.dy, Y_SCROLL * 2); await expectLater( offsetsCompleter.future.then( - (ContentOffsetChange contentOffsetChange) => + (ScrollPositionChange contentOffsetChange) => [contentOffsetChange.x, contentOffsetChange.y]), completion([X_SCROLL * 2, Y_SCROLL * 2])); }); diff --git a/packages/webview_flutter/webview_flutter_android/example/lib/main.dart b/packages/webview_flutter/webview_flutter_android/example/lib/main.dart index 47f4bedecd7..c3c500e469f 100644 --- a/packages/webview_flutter/webview_flutter_android/example/lib/main.dart +++ b/packages/webview_flutter/webview_flutter_android/example/lib/main.dart @@ -148,9 +148,9 @@ Page resource error: ..loadRequest(LoadRequestParams( uri: Uri.parse('https://flutter.dev'), )) - ..setOnContentOffsetChanged((ContentOffsetChange contentOffsetChange) { + ..setOnScrollPositionChange((ScrollPositionChange scrollPositionChange) { debugPrint( - 'Scroll offset change to x = ${contentOffsetChange.x}, y = ${contentOffsetChange.y}'); + 'Scroll offset change to x = ${scrollPositionChange.x}, y = ${scrollPositionChange.y}'); }); } diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart index 0f15b843d16..9178fa143ff 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart @@ -28,7 +28,7 @@ class AndroidWebViewProxy { /// Constructs a [android_webview.WebView]. final android_webview.WebView Function( - {Function(ContentOffsetChange contentOffsetChange)? onScrollChanged}) + {Function(ScrollPositionChange scrollPositionChange)? onScrollPositionChange}) createAndroidWebView; /// Constructs a [android_webview.WebChromeClient]. diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart index 459e70d03ac..dc66d0e84c5 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart @@ -137,7 +137,7 @@ class WebView extends JavaObject { /// any effect and should not be exposed publicly. More info here: /// https://github.com/flutter/flutter/issues/108106 WebView({ - this.onScrollChanged, + this.onScrollPositionChange, @visibleForTesting super.binaryMessenger, @visibleForTesting super.instanceManager, }) : super.detached() { @@ -150,7 +150,7 @@ class WebView extends JavaObject { /// create copies. @protected WebView.detached({ - this.onScrollChanged, + this.onScrollPositionChange, super.binaryMessenger, super.instanceManager, }) : super.detached(); @@ -163,7 +163,7 @@ class WebView extends JavaObject { late final WebSettings settings = WebSettings(this); /// The [ScrollChangedCallback] object used to listen for scroll changed events. - final Function(ContentOffsetChange contentOffsetChange)? onScrollChanged; + final Function(ScrollPositionChange scrollPositionChange)? onScrollPositionChange; /// Enables debugging of web contents (HTML / CSS / JavaScript) loaded into any WebViews of this application. /// @@ -453,7 +453,7 @@ class WebView extends JavaObject { @override WebView copy() { return WebView.detached( - onScrollChanged: onScrollChanged, + onScrollPositionChange: onScrollPositionChange, binaryMessenger: _api.binaryMessenger, instanceManager: _api.instanceManager, ); diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart index 9ce825231f9..03fa9ef3168 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart @@ -7,7 +7,7 @@ import 'dart:ui'; import 'package:flutter/services.dart' show BinaryMessenger; import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart' - show ContentOffsetChange; + show ScrollPositionChange; import 'android_webview.dart'; import 'android_webview.g.dart'; @@ -402,7 +402,7 @@ class WebViewFlutterApiImpl implements WebViewFlutterApi { webViewInstance != null, 'InstanceManager does not contain a WebView with instanceId: $webViewInstanceId', ); - webViewInstance!.onScrollChanged?.call(ContentOffsetChange(x, y)); + webViewInstance!.onScrollPositionChange?.call(ScrollPositionChange(x, y)); } } diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart index 32aa3094e82..a40e56d60fd 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart @@ -97,12 +97,12 @@ class AndroidWebViewController extends PlatformWebViewController { /// The native [android_webview.WebView] being controlled. late final android_webview.WebView _webView = _androidWebViewParams.androidWebViewProxy.createAndroidWebView( - onScrollChanged: withWeakReferenceTo(this, + onScrollPositionChange: withWeakReferenceTo(this, (WeakReference weakReference) { - return (ContentOffsetChange contentOffsetChange) async { - final Function(ContentOffsetChange)? callback = + return (ScrollPositionChange scrollPositionChange) async { + final Function(ScrollPositionChange)? callback = weakReference.target?._onContentOffsetChangedCallback; - callback?.call(contentOffsetChange); + callback?.call(scrollPositionChange); }; })); @@ -222,7 +222,7 @@ class AndroidWebViewController extends PlatformWebViewController { void Function(PlatformWebViewPermissionRequest)? _onPermissionRequestCallback; - Function(ContentOffsetChange contentOffsetChange)? + Function(ScrollPositionChange scrollPositionChange)? _onContentOffsetChangedCallback; /// Whether to enable the platform's webview content debugging tools. @@ -445,10 +445,10 @@ class AndroidWebViewController extends PlatformWebViewController { _webView.settings.setUserAgentString(userAgent); @override - Future setOnContentOffsetChanged( - void Function(ContentOffsetChange contentOffsetChange)? - onOffsetChange) async { - _onContentOffsetChangedCallback = onOffsetChange; + Future setOnScrollPositionChange( + void Function(ScrollPositionChange scrollPositionChange)? + onScrollPositionChange) async { + _onContentOffsetChangedCallback = onScrollPositionChange; } /// Sets the restrictions that apply on automatic media playback. diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart index ae7de6aaf07..066485525ec 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart @@ -101,8 +101,8 @@ void main() { MockWebChromeClient(), createAndroidWebView: ( {dynamic Function( - ContentOffsetChange contentOffsetChange)? - onScrollChanged}) => + ScrollPositionChange scrollPositionChange)? + onScrollPositionChange}) => nonNullMockWebView, createAndroidWebViewClient: ({ void Function(android_webview.WebView webView, String url)? diff --git a/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md b/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md index 3a385370b13..defe195249f 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md @@ -4,7 +4,7 @@ ## 2.6.0 -* Adds support to track content offset changes. See `PlatformWebViewController.setOnContentOffsetChanged`. +* Adds support to track scroll position changes. See `PlatformWebViewController.setOnScrollPositionChange`. ## 2.5.0 diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart index f4b814b2365..1977c755e1f 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart @@ -279,10 +279,10 @@ abstract class PlatformWebViewController extends PlatformInterface { } /// Set the listener for content offset changes. - Future setOnContentOffsetChanged( - void Function(ContentOffsetChange contentOffsetChange)? onOffsetChange) { + Future setOnScrollPositionChange( + void Function(ScrollPositionChange scrollPositionChange)? onScrollPositionChange) { throw UnimplementedError( - 'setOnContentOffsetChanged is not implemented on the current platform'); + 'setOnScrollPositionChange is not implemented on the current platform'); } } diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/content_offset_change.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/scroll_position_change.dart similarity index 67% rename from packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/content_offset_change.dart rename to packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/scroll_position_change.dart index 9ad1aa2723e..b9b212eb1fc 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/content_offset_change.dart +++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/scroll_position_change.dart @@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -/// Defines the parameters of the content offset change callback. -class ContentOffsetChange { - /// Creates a [ContentOffsetChange]. - const ContentOffsetChange(this.x, this.y); +/// Defines the parameters of the scroll position change callback. +class ScrollPositionChange { + /// Creates a [ScrollPositionChange]. + const ScrollPositionChange(this.x, this.y); /// The value of horizontal offset with the origin begin at the leftmost of the [WebView] final int x; diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/types.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/types.dart index 0872cfa1284..07227f98487 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/types.dart +++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/types.dart @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -export 'content_offset_change.dart'; +export 'scroll_position_change.dart'; export 'http_response_error.dart'; export 'javascript_message.dart'; export 'javascript_mode.dart'; diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart index a302414760a..8a3ee38e77c 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart @@ -705,8 +705,8 @@ Future main() async { base64Encode(const Utf8Encoder().convert(scrollTestPage)); final Completer pageLoaded = Completer(); - Completer offsetsCompleter = - Completer(); + Completer offsetsCompleter = + Completer(); final PlatformWebViewController controller = PlatformWebViewController( const PlatformWebViewControllerCreationParams(), ); @@ -717,9 +717,9 @@ Future main() async { unawaited(delegate.setOnPageFinished((_) => pageLoaded.complete())); unawaited(controller.setPlatformNavigationDelegate(delegate)); unawaited(controller - .setOnContentOffsetChanged((ContentOffsetChange contentOffsetChange) { + .setOnScrollPositionChange((ScrollPositionChange scrollPositionChange) { if (!offsetsCompleter.isCompleted) { - offsetsCompleter.complete(contentOffsetChange); + offsetsCompleter.complete(scrollPositionChange); } })); @@ -760,19 +760,19 @@ Future main() async { expect(scrollPos.dy, Y_SCROLL); await expectLater( offsetsCompleter.future.then( - (ContentOffsetChange contentOffsetChange) => + (ScrollPositionChange contentOffsetChange) => [contentOffsetChange.x, contentOffsetChange.y]), completion([X_SCROLL, Y_SCROLL])); // Check scrollBy() (on top of scrollTo()) - offsetsCompleter = Completer(); + offsetsCompleter = Completer(); await controller.scrollBy(X_SCROLL, Y_SCROLL); scrollPos = await controller.getScrollPosition(); expect(scrollPos.dx, X_SCROLL * 2); expect(scrollPos.dy, Y_SCROLL * 2); await expectLater( offsetsCompleter.future.then( - (ContentOffsetChange contentOffsetChange) => + (ScrollPositionChange contentOffsetChange) => [contentOffsetChange.x, contentOffsetChange.y]), completion([X_SCROLL * 2, Y_SCROLL * 2])); }); diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/lib/main.dart b/packages/webview_flutter/webview_flutter_wkwebview/example/lib/main.dart index 4a9a65af8d1..1a1db825e25 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/lib/main.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/lib/main.dart @@ -149,9 +149,9 @@ Page resource error: ..loadRequest(LoadRequestParams( uri: Uri.parse('https://flutter.dev'), )) - ..setOnContentOffsetChanged((ContentOffsetChange contentOffsetChange) { + ..setOnScrollPositionChange((ScrollPositionChange scrollPositionChange) { debugPrint( - 'Content offset change to x = ${contentOffsetChange.x}, y = ${contentOffsetChange.y}', + 'Content offset change to x = ${scrollPositionChange.x}, y = ${scrollPositionChange.y}', ); }); } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart index da8285a0a13..2a6032e1161 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart @@ -150,7 +150,6 @@ class UIScrollViewDelegate extends NSObject { /// Constructs a [UIScrollViewDelegate]. UIScrollViewDelegate( {this.scrollViewDidScroll, - super.observeValue, super.binaryMessenger, super.instanceManager}) : _scrollViewDelegateApi = UIScrollViewDelegateHostApiImpl( @@ -168,7 +167,6 @@ class UIScrollViewDelegate extends NSObject { /// create copies. UIScrollViewDelegate.detached( {this.scrollViewDidScroll, - super.observeValue, super.binaryMessenger, super.instanceManager}) : _scrollViewDelegateApi = UIScrollViewDelegateHostApiImpl( diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart index 60c79b10db0..6bcb8a6cdb4 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart @@ -224,8 +224,8 @@ class WebKitWebViewController extends PlatformWebViewController { .createUIScrollViewDelegate( scrollViewDidScroll: (UIScrollView uiScrollView) async { final Point offset = await uiScrollView.getContentOffset(); - weakThis.target?._onContentOffsetChangedCallback - ?.call(ContentOffsetChange(offset.x.toInt(), offset.y.toInt())); + weakThis.target?._onScrollPositionChangeCallback + ?.call(ScrollPositionChange(offset.x.toInt(), offset.y.toInt())); }); _webView.setScrollViewDelegate(_uiScrollViewDelegate); } @@ -282,8 +282,8 @@ class WebKitWebViewController extends PlatformWebViewController { void Function(PlatformWebViewPermissionRequest)? _onPermissionRequestCallback; - void Function(ContentOffsetChange contentOffsetChange)? - _onContentOffsetChangedCallback; + void Function(ScrollPositionChange scrollPositionChange)? + _onScrollPositionChangeCallback; WebKitWebViewControllerCreationParams get _webKitParams => params as WebKitWebViewControllerCreationParams; @@ -562,10 +562,10 @@ class WebKitWebViewController extends PlatformWebViewController { } @override - Future setOnContentOffsetChanged( - void Function(ContentOffsetChange contentOffsetChange)? - onOffsetChange) async { - _onContentOffsetChangedCallback = onOffsetChange; + Future setOnScrollPositionChange( + void Function(ScrollPositionChange scrollPositionChange)? + onScrollPositionChange) async { + _onScrollPositionChangeCallback = onScrollPositionChange; } /// Whether to enable tools for debugging the current WKWebView content. From ac9dceee4a33281aee637cf678f37271fdf49cbb Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 4 Oct 2023 22:39:38 -0400 Subject: [PATCH 12/20] some improvements --- .../GeneratedAndroidWebView.java | 1218 ++++++----------- .../webviewflutter/WebViewFlutterApiImpl.java | 16 +- .../lib/src/android_proxy.dart | 8 +- .../lib/src/android_webview.dart | 25 +- .../lib/src/android_webview.g.dart | 682 ++++----- .../lib/src/android_webview_api_impls.dart | 6 +- .../lib/src/android_webview_controller.dart | 12 +- .../pigeons/android_webview.dart | 8 +- .../test/android_webview_controller_test.dart | 4 +- ...android_webview_controller_test.mocks.dart | 208 ++- ...oid_webview_cookie_manager_test.mocks.dart | 38 + .../test/android_webview_test.mocks.dart | 82 ++ ...iew_android_cookie_manager_test.mocks.dart | 3 + .../webview_android_widget_test.mocks.dart | 60 + .../test/test_android_webview.g.dart | 879 ++++-------- .../ios/Runner/Base.lproj/Main.storyboard | 13 +- .../ios/Classes/FWFScrollViewHostApi.m | 8 +- .../lib/src/ui_kit/ui_kit.dart | 33 +- .../lib/src/ui_kit/ui_kit_api_impls.dart | 4 +- .../lib/src/web_kit/web_kit.dart | 9 - .../lib/src/web_kit/web_kit_api_impls.dart | 3 +- .../lib/src/webkit_proxy.dart | 6 +- .../lib/src/webkit_webview_controller.dart | 27 +- .../web_kit_webview_widget_test.mocks.dart | 10 - .../test/src/ui_kit/ui_kit_test.dart | 55 + .../test/src/ui_kit/ui_kit_test.mocks.dart | 19 + .../test/webkit_webview_controller_test.dart | 48 +- .../webkit_webview_controller_test.mocks.dart | 99 +- 28 files changed, 1594 insertions(+), 1989 deletions(-) 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 c5d4ed53b2c..7a935ffefee 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 @@ -18,6 +18,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -34,7 +35,8 @@ public static class FlutterError extends RuntimeException { /** The error details. Must be a datatype supported by the api codec. */ public final Object details; - public FlutterError(@NonNull String code, @Nullable String message, @Nullable Object details) { + public FlutterError(@NonNull String code, @Nullable String message, @Nullable Object details) + { super(message); this.code = code; this.details = details; @@ -53,7 +55,7 @@ protected static ArrayList wrapError(@NonNull Throwable exception) { errorList.add(exception.toString()); errorList.add(exception.getClass().getSimpleName()); errorList.add( - "Cause: " + exception.getCause() + ", Stacktrace: " + Log.getStackTraceString(exception)); + "Cause: " + exception.getCause() + ", Stacktrace: " + Log.getStackTraceString(exception)); } return errorList; } @@ -61,29 +63,26 @@ protected static ArrayList wrapError(@NonNull Throwable exception) { /** * Mode of how to select files for a file chooser. * - *

See - * https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams. + * See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams. */ public enum FileChooserMode { /** - * Open single file and requires that the file exists before allowing the user to pick it. + * Open single file and requires that the file exists before allowing the + * user to pick it. * - *

See - * https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN. + * See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN. */ OPEN(0), /** * Similar to [open] but allows multiple files to be selected. * - *

See - * https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN_MULTIPLE. + * See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN_MULTIPLE. */ OPEN_MULTIPLE(1), /** * Allows picking a nonexistent file and saving it. * - *

See - * https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_SAVE. + * See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_SAVE. */ SAVE(2); @@ -97,49 +96,44 @@ private FileChooserMode(final int index) { /** * Indicates the type of message logged to the console. * - *

See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel. + * See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel. */ public enum ConsoleMessageLevel { /** * Indicates a message is logged for debugging. * - *

See - * https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#DEBUG. + * See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#DEBUG. */ DEBUG(0), /** * Indicates a message is provided as an error. * - *

See - * https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#ERROR. + * See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#ERROR. */ ERROR(1), /** * Indicates a message is provided as a basic log message. * - *

See - * https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#LOG. + * See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#LOG. */ LOG(2), /** * Indicates a message is provided as a tip. * - *

See - * https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#TIP. + * See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#TIP. */ TIP(3), /** * Indicates a message is provided as a warning. * - *

See - * https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#WARNING. + * See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#WARNING. */ WARNING(4), /** * Indicates a message with an unknown level. * - *

This does not represent an actual value provided by the platform and only indicates a - * value was provided that isn't currently supported. + * This does not represent an actual value provided by the platform and only + * indicates a value was provided that isn't currently supported. */ UNKNOWN(5); @@ -382,10 +376,7 @@ ArrayList toList() { static @NonNull WebResourceErrorData fromList(@NonNull ArrayList list) { WebResourceErrorData pigeonResult = new WebResourceErrorData(); Object errorCode = list.get(0); - pigeonResult.setErrorCode( - (errorCode == null) - ? null - : ((errorCode instanceof Integer) ? (Integer) errorCode : (Long) errorCode)); + pigeonResult.setErrorCode((errorCode == null) ? null : ((errorCode instanceof Integer) ? (Integer) errorCode : (Long) errorCode)); Object description = list.get(1); pigeonResult.setDescription((String) description); return pigeonResult; @@ -468,9 +459,9 @@ ArrayList toList() { /** * Represents a JavaScript console message from WebCore. * - *

See https://developer.android.com/reference/android/webkit/ConsoleMessage + * See https://developer.android.com/reference/android/webkit/ConsoleMessage * - *

Generated class from Pigeon that represents data sent in messages. + * Generated class from Pigeon that represents data sent in messages. */ public static final class ConsoleMessage { private @NonNull Long lineNumber; @@ -581,10 +572,7 @@ ArrayList toList() { static @NonNull ConsoleMessage fromList(@NonNull ArrayList list) { ConsoleMessage pigeonResult = new ConsoleMessage(); Object lineNumber = list.get(0); - pigeonResult.setLineNumber( - (lineNumber == null) - ? null - : ((lineNumber instanceof Integer) ? (Integer) lineNumber : (Long) lineNumber)); + pigeonResult.setLineNumber((lineNumber == null) ? null : ((lineNumber instanceof Integer) ? (Integer) lineNumber : (Long) lineNumber)); Object message = list.get(1); pigeonResult.setMessage((String) message); Object level = list.get(2); @@ -604,13 +592,13 @@ public interface Result { /** * Host API for managing the native `InstanceManager`. * - *

Generated interface from Pigeon that represents a handler of messages from Flutter. + * Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface InstanceManagerHostApi { /** * Clear the native `InstanceManager`. * - *

This is typically only used after a hot restart. + * This is typically only used after a hot restart. */ void clear(); @@ -618,18 +606,12 @@ public interface InstanceManagerHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `InstanceManagerHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable InstanceManagerHostApi api) { + /**Sets up an instance of `InstanceManagerHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable InstanceManagerHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.InstanceManagerHostApi.clear", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.InstanceManagerHostApi.clear", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -637,7 +619,8 @@ static void setup( try { api.clear(); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -652,11 +635,11 @@ static void setup( /** * Handles methods calls to the native Java Object class. * - *

Also handles calls to remove the reference to an instance with `dispose`. + * Also handles calls to remove the reference to an instance with `dispose`. * - *

See https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. + * See https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. * - *

Generated interface from Pigeon that represents a handler of messages from Flutter. + * Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface JavaObjectHostApi { @@ -666,16 +649,12 @@ public interface JavaObjectHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `JavaObjectHostApi` to handle messages through the `binaryMessenger`. - */ + /**Sets up an instance of `JavaObjectHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable JavaObjectHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.JavaObjectHostApi.dispose", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.JavaObjectHostApi.dispose", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -685,7 +664,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable JavaObject try { api.dispose((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -700,9 +680,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable JavaObject /** * Handles callbacks methods for the native Java Object class. * - *

See https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. + * See https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. * - *

Generated class from Pigeon that represents Flutter messages that can be called from Java. + * Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class JavaObjectFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -711,7 +691,7 @@ public JavaObjectFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -720,13 +700,10 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void dispose(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.JavaObjectFlutterApi.dispose", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.JavaObjectFlutterApi.dispose", getCodec()); channel.send( new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); @@ -735,11 +712,11 @@ public void dispose(@NonNull Long identifierArg, @NonNull Reply callback) /** * Host API for `CookieManager`. * - *

This class may handle instantiating and adding native object instances that are attached to - * a Dart instance or handle method calls on the associated native class or an instance of the - * class. + * This class may handle instantiating and adding native object instances that + * are attached to a Dart instance or handle method calls on the associated + * native class or an instance of the class. * - *

Generated interface from Pigeon that represents a handler of messages from Flutter. + * Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface CookieManagerHostApi { /** Handles attaching `CookieManager.instance` to a native instance. */ @@ -749,25 +726,18 @@ public interface CookieManagerHostApi { /** Handles Dart method `CookieManager.removeAllCookies`. */ void removeAllCookies(@NonNull Long identifier, @NonNull Result result); /** Handles Dart method `CookieManager.setAcceptThirdPartyCookies`. */ - void setAcceptThirdPartyCookies( - @NonNull Long identifier, @NonNull Long webViewIdentifier, @NonNull Boolean accept); + void setAcceptThirdPartyCookies(@NonNull Long identifier, @NonNull Long webViewIdentifier, @NonNull Boolean accept); /** The codec used by CookieManagerHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `CookieManagerHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable CookieManagerHostApi api) { + /**Sets up an instance of `CookieManagerHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CookieManagerHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.attachInstance", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.attachInstance", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -775,10 +745,10 @@ static void setup( ArrayList args = (ArrayList) message; Number instanceIdentifierArg = (Number) args.get(0); try { - api.attachInstance( - (instanceIdentifierArg == null) ? null : instanceIdentifierArg.longValue()); + api.attachInstance((instanceIdentifierArg == null) ? null : instanceIdentifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -791,9 +761,7 @@ static void setup( { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setCookie", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setCookie", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -803,10 +771,10 @@ static void setup( String urlArg = (String) args.get(1); String valueArg = (String) args.get(2); try { - api.setCookie( - (identifierArg == null) ? null : identifierArg.longValue(), urlArg, valueArg); + api.setCookie((identifierArg == null) ? null : identifierArg.longValue(), urlArg, valueArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -819,9 +787,7 @@ static void setup( { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.removeAllCookies", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.removeAllCookies", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -841,8 +807,7 @@ public void error(Throwable error) { } }; - api.removeAllCookies( - (identifierArg == null) ? null : identifierArg.longValue(), resultCallback); + api.removeAllCookies((identifierArg == null) ? null : identifierArg.longValue(), resultCallback); }); } else { channel.setMessageHandler(null); @@ -851,9 +816,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -863,12 +826,10 @@ public void error(Throwable error) { Number webViewIdentifierArg = (Number) args.get(1); Boolean acceptArg = (Boolean) args.get(2); try { - api.setAcceptThirdPartyCookies( - (identifierArg == null) ? null : identifierArg.longValue(), - (webViewIdentifierArg == null) ? null : webViewIdentifierArg.longValue(), - acceptArg); + api.setAcceptThirdPartyCookies((identifierArg == null) ? null : identifierArg.longValue(), (webViewIdentifierArg == null) ? null : webViewIdentifierArg.longValue(), acceptArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -912,32 +873,21 @@ public interface WebViewHostApi { void create(@NonNull Long instanceId); - void loadData( - @NonNull Long instanceId, - @NonNull String data, - @Nullable String mimeType, - @Nullable String encoding); + void loadData(@NonNull Long instanceId, @NonNull String data, @Nullable String mimeType, @Nullable String encoding); - void loadDataWithBaseUrl( - @NonNull Long instanceId, - @Nullable String baseUrl, - @NonNull String data, - @Nullable String mimeType, - @Nullable String encoding, - @Nullable String historyUrl); + void loadDataWithBaseUrl(@NonNull Long instanceId, @Nullable String baseUrl, @NonNull String data, @Nullable String mimeType, @Nullable String encoding, @Nullable String historyUrl); - void loadUrl( - @NonNull Long instanceId, @NonNull String url, @NonNull Map headers); + void loadUrl(@NonNull Long instanceId, @NonNull String url, @NonNull Map headers); void postUrl(@NonNull Long instanceId, @NonNull String url, @NonNull byte[] data); - @Nullable + @Nullable String getUrl(@NonNull Long instanceId); - @NonNull + @NonNull Boolean canGoBack(@NonNull Long instanceId); - @NonNull + @NonNull Boolean canGoForward(@NonNull Long instanceId); void goBack(@NonNull Long instanceId); @@ -948,23 +898,22 @@ void loadUrl( void clearCache(@NonNull Long instanceId, @NonNull Boolean includeDiskFiles); - void evaluateJavascript( - @NonNull Long instanceId, @NonNull String javascriptString, @NonNull Result result); + void evaluateJavascript(@NonNull Long instanceId, @NonNull String javascriptString, @NonNull Result result); - @Nullable + @Nullable String getTitle(@NonNull Long instanceId); void scrollTo(@NonNull Long instanceId, @NonNull Long x, @NonNull Long y); void scrollBy(@NonNull Long instanceId, @NonNull Long x, @NonNull Long y); - @NonNull + @NonNull Long getScrollX(@NonNull Long instanceId); - @NonNull + @NonNull Long getScrollY(@NonNull Long instanceId); - @NonNull + @NonNull WebViewPoint getScrollPosition(@NonNull Long instanceId); void setWebContentsDebuggingEnabled(@NonNull Boolean enabled); @@ -973,8 +922,7 @@ void evaluateJavascript( void addJavaScriptChannel(@NonNull Long instanceId, @NonNull Long javaScriptChannelInstanceId); - void removeJavaScriptChannel( - @NonNull Long instanceId, @NonNull Long javaScriptChannelInstanceId); + void removeJavaScriptChannel(@NonNull Long instanceId, @NonNull Long javaScriptChannelInstanceId); void setDownloadListener(@NonNull Long instanceId, @Nullable Long listenerInstanceId); @@ -986,14 +934,12 @@ void removeJavaScriptChannel( static @NonNull MessageCodec getCodec() { return WebViewHostApiCodec.INSTANCE; } - /** Sets up an instance of `WebViewHostApi` to handle messages through the `binaryMessenger`. */ + /**Sets up an instance of `WebViewHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.create", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.create", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1003,7 +949,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos try { api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1016,9 +963,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadData", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadData", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1029,13 +974,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos String mimeTypeArg = (String) args.get(2); String encodingArg = (String) args.get(3); try { - api.loadData( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - dataArg, - mimeTypeArg, - encodingArg); + api.loadData((instanceIdArg == null) ? null : instanceIdArg.longValue(), dataArg, mimeTypeArg, encodingArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1048,9 +990,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadDataWithBaseUrl", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadDataWithBaseUrl", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1063,15 +1003,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos String encodingArg = (String) args.get(4); String historyUrlArg = (String) args.get(5); try { - api.loadDataWithBaseUrl( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - baseUrlArg, - dataArg, - mimeTypeArg, - encodingArg, - historyUrlArg); + api.loadDataWithBaseUrl((instanceIdArg == null) ? null : instanceIdArg.longValue(), baseUrlArg, dataArg, mimeTypeArg, encodingArg, historyUrlArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1084,9 +1019,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1096,12 +1029,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos String urlArg = (String) args.get(1); Map headersArg = (Map) args.get(2); try { - api.loadUrl( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - urlArg, - headersArg); + api.loadUrl((instanceIdArg == null) ? null : instanceIdArg.longValue(), urlArg, headersArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1114,9 +1045,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.postUrl", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.postUrl", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1126,10 +1055,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos String urlArg = (String) args.get(1); byte[] dataArg = (byte[]) args.get(2); try { - api.postUrl( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), urlArg, dataArg); + api.postUrl((instanceIdArg == null) ? null : instanceIdArg.longValue(), urlArg, dataArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1142,9 +1071,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getUrl", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getUrl", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1152,10 +1079,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - String output = - api.getUrl((instanceIdArg == null) ? null : instanceIdArg.longValue()); + String output = api.getUrl((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1168,9 +1095,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoBack", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoBack", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1178,10 +1103,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - Boolean output = - api.canGoBack((instanceIdArg == null) ? null : instanceIdArg.longValue()); + Boolean output = api.canGoBack((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1194,9 +1119,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoForward", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoForward", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1204,10 +1127,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - Boolean output = - api.canGoForward((instanceIdArg == null) ? null : instanceIdArg.longValue()); + Boolean output = api.canGoForward((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1220,9 +1143,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goBack", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goBack", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1232,7 +1153,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos try { api.goBack((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1245,9 +1167,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goForward", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goForward", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1257,7 +1177,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos try { api.goForward((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1270,9 +1191,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.reload", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.reload", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1282,7 +1201,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos try { api.reload((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1295,9 +1215,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.clearCache", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.clearCache", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1306,11 +1224,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos Number instanceIdArg = (Number) args.get(0); Boolean includeDiskFilesArg = (Boolean) args.get(1); try { - api.clearCache( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - includeDiskFilesArg); + api.clearCache((instanceIdArg == null) ? null : instanceIdArg.longValue(), includeDiskFilesArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1323,9 +1240,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1346,10 +1261,7 @@ public void error(Throwable error) { } }; - api.evaluateJavascript( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - javascriptStringArg, - resultCallback); + api.evaluateJavascript((instanceIdArg == null) ? null : instanceIdArg.longValue(), javascriptStringArg, resultCallback); }); } else { channel.setMessageHandler(null); @@ -1358,9 +1270,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getTitle", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getTitle", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1368,10 +1278,10 @@ public void error(Throwable error) { ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - String output = - api.getTitle((instanceIdArg == null) ? null : instanceIdArg.longValue()); + String output = api.getTitle((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1384,9 +1294,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollTo", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollTo", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1396,12 +1304,10 @@ public void error(Throwable error) { Number xArg = (Number) args.get(1); Number yArg = (Number) args.get(2); try { - api.scrollTo( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (xArg == null) ? null : xArg.longValue(), - (yArg == null) ? null : yArg.longValue()); + api.scrollTo((instanceIdArg == null) ? null : instanceIdArg.longValue(), (xArg == null) ? null : xArg.longValue(), (yArg == null) ? null : yArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1414,9 +1320,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollBy", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollBy", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1426,12 +1330,10 @@ public void error(Throwable error) { Number xArg = (Number) args.get(1); Number yArg = (Number) args.get(2); try { - api.scrollBy( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (xArg == null) ? null : xArg.longValue(), - (yArg == null) ? null : yArg.longValue()); + api.scrollBy((instanceIdArg == null) ? null : instanceIdArg.longValue(), (xArg == null) ? null : xArg.longValue(), (yArg == null) ? null : yArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1444,9 +1346,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollX", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollX", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1454,10 +1354,10 @@ public void error(Throwable error) { ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - Long output = - api.getScrollX((instanceIdArg == null) ? null : instanceIdArg.longValue()); + Long output = api.getScrollX((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1470,9 +1370,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollY", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollY", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1480,10 +1378,10 @@ public void error(Throwable error) { ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - Long output = - api.getScrollY((instanceIdArg == null) ? null : instanceIdArg.longValue()); + Long output = api.getScrollY((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1496,9 +1394,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollPosition", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollPosition", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1506,11 +1402,10 @@ public void error(Throwable error) { ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - WebViewPoint output = - api.getScrollPosition( - (instanceIdArg == null) ? null : instanceIdArg.longValue()); + WebViewPoint output = api.getScrollPosition((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1523,9 +1418,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1535,7 +1428,8 @@ public void error(Throwable error) { try { api.setWebContentsDebuggingEnabled(enabledArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1548,9 +1442,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebViewClient", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebViewClient", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1559,13 +1451,10 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number webViewClientInstanceIdArg = (Number) args.get(1); try { - api.setWebViewClient( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (webViewClientInstanceIdArg == null) - ? null - : webViewClientInstanceIdArg.longValue()); + api.setWebViewClient((instanceIdArg == null) ? null : instanceIdArg.longValue(), (webViewClientInstanceIdArg == null) ? null : webViewClientInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1578,9 +1467,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1589,13 +1476,10 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number javaScriptChannelInstanceIdArg = (Number) args.get(1); try { - api.addJavaScriptChannel( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (javaScriptChannelInstanceIdArg == null) - ? null - : javaScriptChannelInstanceIdArg.longValue()); + api.addJavaScriptChannel((instanceIdArg == null) ? null : instanceIdArg.longValue(), (javaScriptChannelInstanceIdArg == null) ? null : javaScriptChannelInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1608,9 +1492,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1619,13 +1501,10 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number javaScriptChannelInstanceIdArg = (Number) args.get(1); try { - api.removeJavaScriptChannel( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (javaScriptChannelInstanceIdArg == null) - ? null - : javaScriptChannelInstanceIdArg.longValue()); + api.removeJavaScriptChannel((instanceIdArg == null) ? null : instanceIdArg.longValue(), (javaScriptChannelInstanceIdArg == null) ? null : javaScriptChannelInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1638,9 +1517,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setDownloadListener", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setDownloadListener", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1649,11 +1526,10 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number listenerInstanceIdArg = (Number) args.get(1); try { - api.setDownloadListener( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (listenerInstanceIdArg == null) ? null : listenerInstanceIdArg.longValue()); + api.setDownloadListener((instanceIdArg == null) ? null : instanceIdArg.longValue(), (listenerInstanceIdArg == null) ? null : listenerInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1666,9 +1542,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebChromeClient", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebChromeClient", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1677,11 +1551,10 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number clientInstanceIdArg = (Number) args.get(1); try { - api.setWebChromeClient( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (clientInstanceIdArg == null) ? null : clientInstanceIdArg.longValue()); + api.setWebChromeClient((instanceIdArg == null) ? null : instanceIdArg.longValue(), (clientInstanceIdArg == null) ? null : clientInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1694,9 +1567,7 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setBackgroundColor", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setBackgroundColor", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1705,11 +1576,10 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number colorArg = (Number) args.get(1); try { - api.setBackgroundColor( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (colorArg == null) ? null : colorArg.longValue()); + api.setBackgroundColor((instanceIdArg == null) ? null : instanceIdArg.longValue(), (colorArg == null) ? null : colorArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1724,12 +1594,13 @@ public void error(Throwable error) { /** * Flutter API for `WebView`. * - *

This class may handle instantiating and adding Dart instances that are attached to a native - * instance or receiving callback methods from an overridden native class. + * This class may handle instantiating and adding Dart instances that are + * attached to a native instance or receiving callback methods from an + * overridden native class. * - *

See https://developer.android.com/reference/android/webkit/WebView. + * See https://developer.android.com/reference/android/webkit/WebView. * - *

Generated class from Pigeon that represents Flutter messages that can be called from Java. + * Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class WebViewFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -1738,7 +1609,7 @@ public WebViewFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -1751,28 +1622,17 @@ public interface Reply { public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.create", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.create", getCodec()); channel.send( new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); } - - public void onScrollChanged( - @NonNull Long webViewInstanceIdArg, - @NonNull Long xArg, - @NonNull Long yArg, - @NonNull Long oldXArg, - @NonNull Long oldYArg, - @NonNull Reply callback) { + public void onScrollChanged(@NonNull Long webViewInstanceIdArg, @NonNull Long leftArg, @NonNull Long topArg, @NonNull Long oldLeftArg, @NonNull Long oldTopArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged", getCodec()); channel.send( - new ArrayList(Arrays.asList(webViewInstanceIdArg, xArg, yArg, oldXArg, oldYArg)), + new ArrayList(Arrays.asList(webViewInstanceIdArg, leftArg, topArg, oldLeftArg, oldTopArg)), channelReply -> callback.reply(null)); } } @@ -1807,23 +1667,19 @@ public interface WebSettingsHostApi { void setTextZoom(@NonNull Long instanceId, @NonNull Long textZoom); - @NonNull + @NonNull String getUserAgentString(@NonNull Long instanceId); /** The codec used by WebSettingsHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `WebSettingsHostApi` to handle messages through the `binaryMessenger`. - */ + /**Sets up an instance of `WebSettingsHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSettingsHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.create", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.create", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1832,11 +1688,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Number webViewInstanceIdArg = (Number) args.get(1); try { - api.create( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (webViewInstanceIdArg == null) ? null : webViewInstanceIdArg.longValue()); + api.create((instanceIdArg == null) ? null : instanceIdArg.longValue(), (webViewInstanceIdArg == null) ? null : webViewInstanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1849,9 +1704,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDomStorageEnabled", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDomStorageEnabled", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1860,10 +1713,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean flagArg = (Boolean) args.get(1); try { - api.setDomStorageEnabled( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); + api.setDomStorageEnabled((instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1876,9 +1729,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1887,10 +1738,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean flagArg = (Boolean) args.get(1); try { - api.setJavaScriptCanOpenWindowsAutomatically( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); + api.setJavaScriptCanOpenWindowsAutomatically((instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1903,9 +1754,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportMultipleWindows", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportMultipleWindows", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1914,10 +1763,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean supportArg = (Boolean) args.get(1); try { - api.setSupportMultipleWindows( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), supportArg); + api.setSupportMultipleWindows((instanceIdArg == null) ? null : instanceIdArg.longValue(), supportArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1930,9 +1779,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptEnabled", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptEnabled", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1941,10 +1788,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean flagArg = (Boolean) args.get(1); try { - api.setJavaScriptEnabled( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); + api.setJavaScriptEnabled((instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1957,9 +1804,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUserAgentString", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUserAgentString", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1968,11 +1813,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); String userAgentStringArg = (String) args.get(1); try { - api.setUserAgentString( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - userAgentStringArg); + api.setUserAgentString((instanceIdArg == null) ? null : instanceIdArg.longValue(), userAgentStringArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1985,9 +1829,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1996,10 +1838,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean requireArg = (Boolean) args.get(1); try { - api.setMediaPlaybackRequiresUserGesture( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), requireArg); + api.setMediaPlaybackRequiresUserGesture((instanceIdArg == null) ? null : instanceIdArg.longValue(), requireArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2012,9 +1854,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportZoom", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportZoom", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2023,10 +1863,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean supportArg = (Boolean) args.get(1); try { - api.setSupportZoom( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), supportArg); + api.setSupportZoom((instanceIdArg == null) ? null : instanceIdArg.longValue(), supportArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2039,9 +1879,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setLoadWithOverviewMode", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setLoadWithOverviewMode", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2050,10 +1888,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean overviewArg = (Boolean) args.get(1); try { - api.setLoadWithOverviewMode( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), overviewArg); + api.setLoadWithOverviewMode((instanceIdArg == null) ? null : instanceIdArg.longValue(), overviewArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2066,9 +1904,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUseWideViewPort", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUseWideViewPort", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2077,10 +1913,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean useArg = (Boolean) args.get(1); try { - api.setUseWideViewPort( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), useArg); + api.setUseWideViewPort((instanceIdArg == null) ? null : instanceIdArg.longValue(), useArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2093,9 +1929,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDisplayZoomControls", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDisplayZoomControls", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2104,10 +1938,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean enabledArg = (Boolean) args.get(1); try { - api.setDisplayZoomControls( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); + api.setDisplayZoomControls((instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2120,9 +1954,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setBuiltInZoomControls", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setBuiltInZoomControls", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2131,10 +1963,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean enabledArg = (Boolean) args.get(1); try { - api.setBuiltInZoomControls( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); + api.setBuiltInZoomControls((instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2147,9 +1979,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setAllowFileAccess", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setAllowFileAccess", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2158,10 +1988,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean enabledArg = (Boolean) args.get(1); try { - api.setAllowFileAccess( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); + api.setAllowFileAccess((instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2174,9 +2004,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setTextZoom", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setTextZoom", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2185,11 +2013,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Number textZoomArg = (Number) args.get(1); try { - api.setTextZoom( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - (textZoomArg == null) ? null : textZoomArg.longValue()); + api.setTextZoom((instanceIdArg == null) ? null : instanceIdArg.longValue(), (textZoomArg == null) ? null : textZoomArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2202,9 +2029,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.getUserAgentString", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.getUserAgentString", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2212,11 +2037,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - String output = - api.getUserAgentString( - (instanceIdArg == null) ? null : instanceIdArg.longValue()); + String output = api.getUserAgentString((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2237,18 +2061,12 @@ public interface JavaScriptChannelHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `JavaScriptChannelHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable JavaScriptChannelHostApi api) { + /**Sets up an instance of `JavaScriptChannelHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable JavaScriptChannelHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelHostApi.create", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelHostApi.create", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2257,10 +2075,10 @@ static void setup( Number instanceIdArg = (Number) args.get(0); String channelNameArg = (String) args.get(1); try { - api.create( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), channelNameArg); + api.create((instanceIdArg == null) ? null : instanceIdArg.longValue(), channelNameArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2280,7 +2098,7 @@ public JavaScriptChannelFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2289,14 +2107,10 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - - public void postMessage( - @NonNull Long instanceIdArg, @NonNull String messageArg, @NonNull Reply callback) { + public void postMessage(@NonNull Long instanceIdArg, @NonNull String messageArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelFlutterApi.postMessage", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelFlutterApi.postMessage", getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, messageArg)), channelReply -> callback.reply(null)); @@ -2307,25 +2121,18 @@ public interface WebViewClientHostApi { void create(@NonNull Long instanceId); - void setSynchronousReturnValueForShouldOverrideUrlLoading( - @NonNull Long instanceId, @NonNull Boolean value); + void setSynchronousReturnValueForShouldOverrideUrlLoading(@NonNull Long instanceId, @NonNull Boolean value); /** The codec used by WebViewClientHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `WebViewClientHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable WebViewClientHostApi api) { + /**Sets up an instance of `WebViewClientHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewClientHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.create", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.create", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2335,7 +2142,8 @@ static void setup( try { api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2348,9 +2156,7 @@ static void setup( { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2359,10 +2165,10 @@ static void setup( Number instanceIdArg = (Number) args.get(0); Boolean valueArg = (Boolean) args.get(1); try { - api.setSynchronousReturnValueForShouldOverrideUrlLoading( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); + api.setSynchronousReturnValueForShouldOverrideUrlLoading((instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2414,7 +2220,7 @@ public WebViewClientFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2423,121 +2229,60 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return WebViewClientFlutterApiCodec.INSTANCE; } - - public void onPageStarted( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull String urlArg, - @NonNull Reply callback) { + public void onPageStarted(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull String urlArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageStarted", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageStarted", getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg)), channelReply -> callback.reply(null)); } - - public void onPageFinished( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull String urlArg, - @NonNull Reply callback) { + public void onPageFinished(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull String urlArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageFinished", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageFinished", getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg)), channelReply -> callback.reply(null)); } - - public void onReceivedRequestError( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull WebResourceRequestData requestArg, - @NonNull WebResourceErrorData errorArg, - @NonNull Reply callback) { + public void onReceivedRequestError(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull WebResourceRequestData requestArg, @NonNull WebResourceErrorData errorArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError", getCodec()); channel.send( - new ArrayList( - Arrays.asList(instanceIdArg, webViewInstanceIdArg, requestArg, errorArg)), + new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, requestArg, errorArg)), channelReply -> callback.reply(null)); } - - public void onReceivedError( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull Long errorCodeArg, - @NonNull String descriptionArg, - @NonNull String failingUrlArg, - @NonNull Reply callback) { + public void onReceivedError(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull Long errorCodeArg, @NonNull String descriptionArg, @NonNull String failingUrlArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedError", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedError", getCodec()); channel.send( - new ArrayList( - Arrays.asList( - instanceIdArg, - webViewInstanceIdArg, - errorCodeArg, - descriptionArg, - failingUrlArg)), + new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, errorCodeArg, descriptionArg, failingUrlArg)), channelReply -> callback.reply(null)); } - - public void requestLoading( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull WebResourceRequestData requestArg, - @NonNull Reply callback) { + public void requestLoading(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull WebResourceRequestData requestArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.requestLoading", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.requestLoading", getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, requestArg)), channelReply -> callback.reply(null)); } - - public void urlLoading( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull String urlArg, - @NonNull Reply callback) { + public void urlLoading(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull String urlArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.urlLoading", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.urlLoading", getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg)), channelReply -> callback.reply(null)); } - - public void doUpdateVisitedHistory( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull String urlArg, - @NonNull Boolean isReloadArg, - @NonNull Reply callback) { + public void doUpdateVisitedHistory(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull String urlArg, @NonNull Boolean isReloadArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.doUpdateVisitedHistory", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.doUpdateVisitedHistory", getCodec()); channel.send( - new ArrayList( - Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg, isReloadArg)), + new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg, isReloadArg)), channelReply -> callback.reply(null)); } } @@ -2550,18 +2295,12 @@ public interface DownloadListenerHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `DownloadListenerHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable DownloadListenerHostApi api) { + /**Sets up an instance of `DownloadListenerHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DownloadListenerHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.DownloadListenerHostApi.create", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.DownloadListenerHostApi.create", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2571,7 +2310,8 @@ static void setup( try { api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2591,7 +2331,7 @@ public DownloadListenerFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2600,29 +2340,12 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - - public void onDownloadStart( - @NonNull Long instanceIdArg, - @NonNull String urlArg, - @NonNull String userAgentArg, - @NonNull String contentDispositionArg, - @NonNull String mimetypeArg, - @NonNull Long contentLengthArg, - @NonNull Reply callback) { + public void onDownloadStart(@NonNull Long instanceIdArg, @NonNull String urlArg, @NonNull String userAgentArg, @NonNull String contentDispositionArg, @NonNull String mimetypeArg, @NonNull Long contentLengthArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.DownloadListenerFlutterApi.onDownloadStart", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.DownloadListenerFlutterApi.onDownloadStart", getCodec()); channel.send( - new ArrayList( - Arrays.asList( - instanceIdArg, - urlArg, - userAgentArg, - contentDispositionArg, - mimetypeArg, - contentLengthArg)), + new ArrayList(Arrays.asList(instanceIdArg, urlArg, userAgentArg, contentDispositionArg, mimetypeArg, contentLengthArg)), channelReply -> callback.reply(null)); } } @@ -2631,28 +2354,20 @@ public interface WebChromeClientHostApi { void create(@NonNull Long instanceId); - void setSynchronousReturnValueForOnShowFileChooser( - @NonNull Long instanceId, @NonNull Boolean value); + void setSynchronousReturnValueForOnShowFileChooser(@NonNull Long instanceId, @NonNull Boolean value); - void setSynchronousReturnValueForOnConsoleMessage( - @NonNull Long instanceId, @NonNull Boolean value); + void setSynchronousReturnValueForOnConsoleMessage(@NonNull Long instanceId, @NonNull Boolean value); /** The codec used by WebChromeClientHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `WebChromeClientHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable WebChromeClientHostApi api) { + /**Sets up an instance of `WebChromeClientHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebChromeClientHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.create", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.create", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2662,7 +2377,8 @@ static void setup( try { api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2675,9 +2391,7 @@ static void setup( { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2686,10 +2400,10 @@ static void setup( Number instanceIdArg = (Number) args.get(0); Boolean valueArg = (Boolean) args.get(1); try { - api.setSynchronousReturnValueForOnShowFileChooser( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); + api.setSynchronousReturnValueForOnShowFileChooser((instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2702,9 +2416,7 @@ static void setup( { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2713,10 +2425,10 @@ static void setup( Number instanceIdArg = (Number) args.get(0); Boolean valueArg = (Boolean) args.get(1); try { - api.setSynchronousReturnValueForOnConsoleMessage( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); + api.setSynchronousReturnValueForOnConsoleMessage((instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2731,28 +2443,22 @@ static void setup( /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface FlutterAssetManagerHostApi { - @NonNull + @NonNull List list(@NonNull String path); - @NonNull + @NonNull String getAssetFilePathByName(@NonNull String name); /** The codec used by FlutterAssetManagerHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `FlutterAssetManagerHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable FlutterAssetManagerHostApi api) { + /**Sets up an instance of `FlutterAssetManagerHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FlutterAssetManagerHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.list", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.list", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2762,7 +2468,8 @@ static void setup( try { List output = api.list(pathArg); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2775,9 +2482,7 @@ static void setup( { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.getAssetFilePathByName", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.getAssetFilePathByName", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2787,7 +2492,8 @@ static void setup( try { String output = api.getAssetFilePathByName(nameArg); wrapped.add(0, output); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2801,8 +2507,7 @@ static void setup( } private static class WebChromeClientFlutterApiCodec extends StandardMessageCodec { - public static final WebChromeClientFlutterApiCodec INSTANCE = - new WebChromeClientFlutterApiCodec(); + public static final WebChromeClientFlutterApiCodec INSTANCE = new WebChromeClientFlutterApiCodec(); private WebChromeClientFlutterApiCodec() {} @@ -2835,7 +2540,7 @@ public WebChromeClientFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2844,35 +2549,20 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return WebChromeClientFlutterApiCodec.INSTANCE; } - - public void onProgressChanged( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull Long progressArg, - @NonNull Reply callback) { + public void onProgressChanged(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull Long progressArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onProgressChanged", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onProgressChanged", getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, progressArg)), channelReply -> callback.reply(null)); } - - public void onShowFileChooser( - @NonNull Long instanceIdArg, - @NonNull Long webViewInstanceIdArg, - @NonNull Long paramsInstanceIdArg, - @NonNull Reply> callback) { + public void onShowFileChooser(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull Long paramsInstanceIdArg, @NonNull Reply> callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowFileChooser", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowFileChooser", getCodec()); channel.send( - new ArrayList( - Arrays.asList(instanceIdArg, webViewInstanceIdArg, paramsInstanceIdArg)), + new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, paramsInstanceIdArg)), channelReply -> { @SuppressWarnings("ConstantConditions") List output = (List) channelReply; @@ -2880,83 +2570,55 @@ public void onShowFileChooser( }); } /** Callback to Dart function `WebChromeClient.onPermissionRequest`. */ - public void onPermissionRequest( - @NonNull Long instanceIdArg, - @NonNull Long requestInstanceIdArg, - @NonNull Reply callback) { + public void onPermissionRequest(@NonNull Long instanceIdArg, @NonNull Long requestInstanceIdArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onPermissionRequest", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onPermissionRequest", getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, requestInstanceIdArg)), channelReply -> callback.reply(null)); } /** Callback to Dart function `WebChromeClient.onShowCustomView`. */ - public void onShowCustomView( - @NonNull Long instanceIdArg, - @NonNull Long viewIdentifierArg, - @NonNull Long callbackIdentifierArg, - @NonNull Reply callback) { + public void onShowCustomView(@NonNull Long instanceIdArg, @NonNull Long viewIdentifierArg, @NonNull Long callbackIdentifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowCustomView", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowCustomView", getCodec()); channel.send( - new ArrayList( - Arrays.asList(instanceIdArg, viewIdentifierArg, callbackIdentifierArg)), + new ArrayList(Arrays.asList(instanceIdArg, viewIdentifierArg, callbackIdentifierArg)), channelReply -> callback.reply(null)); } /** Callback to Dart function `WebChromeClient.onHideCustomView`. */ public void onHideCustomView(@NonNull Long instanceIdArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onHideCustomView", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onHideCustomView", getCodec()); channel.send( new ArrayList(Collections.singletonList(instanceIdArg)), channelReply -> callback.reply(null)); } /** Callback to Dart function `WebChromeClient.onGeolocationPermissionsShowPrompt`. */ - public void onGeolocationPermissionsShowPrompt( - @NonNull Long instanceIdArg, - @NonNull Long paramsInstanceIdArg, - @NonNull String originArg, - @NonNull Reply callback) { + public void onGeolocationPermissionsShowPrompt(@NonNull Long instanceIdArg, @NonNull Long paramsInstanceIdArg, @NonNull String originArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsShowPrompt", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsShowPrompt", getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, paramsInstanceIdArg, originArg)), channelReply -> callback.reply(null)); } /** Callback to Dart function `WebChromeClient.onGeolocationPermissionsHidePrompt`. */ - public void onGeolocationPermissionsHidePrompt( - @NonNull Long identifierArg, @NonNull Reply callback) { + public void onGeolocationPermissionsHidePrompt(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsHidePrompt", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsHidePrompt", getCodec()); channel.send( new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); } /** Callback to Dart function `WebChromeClient.onConsoleMessage`. */ - public void onConsoleMessage( - @NonNull Long instanceIdArg, - @NonNull ConsoleMessage messageArg, - @NonNull Reply callback) { + public void onConsoleMessage(@NonNull Long instanceIdArg, @NonNull ConsoleMessage messageArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onConsoleMessage", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onConsoleMessage", getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, messageArg)), channelReply -> callback.reply(null)); @@ -2973,16 +2635,12 @@ public interface WebStorageHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `WebStorageHostApi` to handle messages through the `binaryMessenger`. - */ + /**Sets up an instance of `WebStorageHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebStorageHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.create", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.create", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2992,7 +2650,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebStorage try { api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3005,9 +2664,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebStorage { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.deleteAllData", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.deleteAllData", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -3017,7 +2674,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebStorage try { api.deleteAllData((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3032,10 +2690,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebStorage /** * Handles callbacks methods for the native Java FileChooserParams class. * - *

See - * https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams. + * See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams. * - *

Generated class from Pigeon that represents Flutter messages that can be called from Java. + * Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class FileChooserParamsFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -3044,7 +2701,7 @@ public FileChooserParamsFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -3053,40 +2710,25 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - - public void create( - @NonNull Long instanceIdArg, - @NonNull Boolean isCaptureEnabledArg, - @NonNull List acceptTypesArg, - @NonNull FileChooserMode modeArg, - @Nullable String filenameHintArg, - @NonNull Reply callback) { + public void create(@NonNull Long instanceIdArg, @NonNull Boolean isCaptureEnabledArg, @NonNull List acceptTypesArg, @NonNull FileChooserMode modeArg, @Nullable String filenameHintArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create", getCodec()); channel.send( - new ArrayList( - Arrays.asList( - instanceIdArg, - isCaptureEnabledArg, - acceptTypesArg, - modeArg.index, - filenameHintArg)), + new ArrayList(Arrays.asList(instanceIdArg, isCaptureEnabledArg, acceptTypesArg, modeArg.index, filenameHintArg)), channelReply -> callback.reply(null)); } } /** * Host API for `PermissionRequest`. * - *

This class may handle instantiating and adding native object instances that are attached to - * a Dart instance or handle method calls on the associated native class or an instance of the - * class. + * This class may handle instantiating and adding native object instances that + * are attached to a Dart instance or handle method calls on the associated + * native class or an instance of the class. * - *

See https://developer.android.com/reference/android/webkit/PermissionRequest. + * See https://developer.android.com/reference/android/webkit/PermissionRequest. * - *

Generated interface from Pigeon that represents a handler of messages from Flutter. + * Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface PermissionRequestHostApi { /** Handles Dart method `PermissionRequest.grant`. */ @@ -3098,18 +2740,12 @@ public interface PermissionRequestHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `PermissionRequestHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable PermissionRequestHostApi api) { + /**Sets up an instance of `PermissionRequestHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PermissionRequestHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -3118,10 +2754,10 @@ static void setup( Number instanceIdArg = (Number) args.get(0); List resourcesArg = (List) args.get(1); try { - api.grant( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), resourcesArg); + api.grant((instanceIdArg == null) ? null : instanceIdArg.longValue(), resourcesArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3134,9 +2770,7 @@ static void setup( { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.deny", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.deny", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -3146,7 +2780,8 @@ static void setup( try { api.deny((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3161,12 +2796,13 @@ static void setup( /** * Flutter API for `PermissionRequest`. * - *

This class may handle instantiating and adding Dart instances that are attached to a native - * instance or receiving callback methods from an overridden native class. + * This class may handle instantiating and adding Dart instances that are + * attached to a native instance or receiving callback methods from an + * overridden native class. * - *

See https://developer.android.com/reference/android/webkit/PermissionRequest. + * See https://developer.android.com/reference/android/webkit/PermissionRequest. * - *

Generated class from Pigeon that represents Flutter messages that can be called from Java. + * Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class PermissionRequestFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -3175,7 +2811,7 @@ public PermissionRequestFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -3185,15 +2821,10 @@ public interface Reply { return new StandardMessageCodec(); } /** Create a new Dart instance and add it to the `InstanceManager`. */ - public void create( - @NonNull Long instanceIdArg, - @NonNull List resourcesArg, - @NonNull Reply callback) { + public void create(@NonNull Long instanceIdArg, @NonNull List resourcesArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.PermissionRequestFlutterApi.create", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.PermissionRequestFlutterApi.create", getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, resourcesArg)), channelReply -> callback.reply(null)); @@ -3202,14 +2833,13 @@ public void create( /** * Host API for `CustomViewCallback`. * - *

This class may handle instantiating and adding native object instances that are attached to - * a Dart instance or handle method calls on the associated native class or an instance of the - * class. + * This class may handle instantiating and adding native object instances that + * are attached to a Dart instance or handle method calls on the associated + * native class or an instance of the class. * - *

See - * https://developer.android.com/reference/android/webkit/WebChromeClient.CustomViewCallback. + * See https://developer.android.com/reference/android/webkit/WebChromeClient.CustomViewCallback. * - *

Generated interface from Pigeon that represents a handler of messages from Flutter. + * Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface CustomViewCallbackHostApi { /** Handles Dart method `CustomViewCallback.onCustomViewHidden`. */ @@ -3219,18 +2849,12 @@ public interface CustomViewCallbackHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `CustomViewCallbackHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, @Nullable CustomViewCallbackHostApi api) { + /**Sets up an instance of `CustomViewCallbackHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CustomViewCallbackHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackHostApi.onCustomViewHidden", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackHostApi.onCustomViewHidden", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -3238,10 +2862,10 @@ static void setup( ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - api.onCustomViewHidden( - (identifierArg == null) ? null : identifierArg.longValue()); + api.onCustomViewHidden((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3256,13 +2880,13 @@ static void setup( /** * Flutter API for `CustomViewCallback`. * - *

This class may handle instantiating and adding Dart instances that are attached to a native - * instance or receiving callback methods from an overridden native class. + * This class may handle instantiating and adding Dart instances that are + * attached to a native instance or receiving callback methods from an + * overridden native class. * - *

See - * https://developer.android.com/reference/android/webkit/WebChromeClient.CustomViewCallback. + * See https://developer.android.com/reference/android/webkit/WebChromeClient.CustomViewCallback. * - *

Generated class from Pigeon that represents Flutter messages that can be called from Java. + * Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class CustomViewCallbackFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -3271,7 +2895,7 @@ public CustomViewCallbackFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -3284,9 +2908,7 @@ public interface Reply { public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackFlutterApi.create", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackFlutterApi.create", getCodec()); channel.send( new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); @@ -3295,12 +2917,13 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { /** * Flutter API for `View`. * - *

This class may handle instantiating and adding Dart instances that are attached to a native - * instance or receiving callback methods from an overridden native class. + * This class may handle instantiating and adding Dart instances that are + * attached to a native instance or receiving callback methods from an + * overridden native class. * - *

See https://developer.android.com/reference/android/view/View. + * See https://developer.android.com/reference/android/view/View. * - *

Generated class from Pigeon that represents Flutter messages that can be called from Java. + * Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class ViewFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -3309,7 +2932,7 @@ public ViewFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -3322,9 +2945,7 @@ public interface Reply { public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.ViewFlutterApi.create", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.ViewFlutterApi.create", getCodec()); channel.send( new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); @@ -3333,39 +2954,28 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { /** * Host API for `GeolocationPermissionsCallback`. * - *

This class may handle instantiating and adding native object instances that are attached to - * a Dart instance or handle method calls on the associated native class or an instance of the - * class. + * This class may handle instantiating and adding native object instances that + * are attached to a Dart instance or handle method calls on the associated + * native class or an instance of the class. * - *

See https://developer.android.com/reference/android/webkit/GeolocationPermissions.Callback. + * See https://developer.android.com/reference/android/webkit/GeolocationPermissions.Callback. * - *

Generated interface from Pigeon that represents a handler of messages from Flutter. + * Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface GeolocationPermissionsCallbackHostApi { /** Handles Dart method `GeolocationPermissionsCallback.invoke`. */ - void invoke( - @NonNull Long instanceId, - @NonNull String origin, - @NonNull Boolean allow, - @NonNull Boolean retain); + void invoke(@NonNull Long instanceId, @NonNull String origin, @NonNull Boolean allow, @NonNull Boolean retain); /** The codec used by GeolocationPermissionsCallbackHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /** - * Sets up an instance of `GeolocationPermissionsCallbackHostApi` to handle messages through the - * `binaryMessenger`. - */ - static void setup( - @NonNull BinaryMessenger binaryMessenger, - @Nullable GeolocationPermissionsCallbackHostApi api) { + /**Sets up an instance of `GeolocationPermissionsCallbackHostApi` to handle messages through the `binaryMessenger`. */ + static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable GeolocationPermissionsCallbackHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackHostApi.invoke", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackHostApi.invoke", getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -3376,13 +2986,10 @@ static void setup( Boolean allowArg = (Boolean) args.get(2); Boolean retainArg = (Boolean) args.get(3); try { - api.invoke( - (instanceIdArg == null) ? null : instanceIdArg.longValue(), - originArg, - allowArg, - retainArg); + api.invoke((instanceIdArg == null) ? null : instanceIdArg.longValue(), originArg, allowArg, retainArg); wrapped.add(0, null); - } catch (Throwable exception) { + } + catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3397,12 +3004,13 @@ static void setup( /** * Flutter API for `GeolocationPermissionsCallback`. * - *

This class may handle instantiating and adding Dart instances that are attached to a native - * instance or receiving callback methods from an overridden native class. + * This class may handle instantiating and adding Dart instances that are + * attached to a native instance or receiving callback methods from an + * overridden native class. * - *

See https://developer.android.com/reference/android/webkit/GeolocationPermissions.Callback. + * See https://developer.android.com/reference/android/webkit/GeolocationPermissions.Callback. * - *

Generated class from Pigeon that represents Flutter messages that can be called from Java. + * Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class GeolocationPermissionsCallbackFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -3411,7 +3019,7 @@ public GeolocationPermissionsCallbackFlutterApi(@NonNull BinaryMessenger argBina this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -3424,9 +3032,7 @@ public interface Reply { public void create(@NonNull Long instanceIdArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, - "dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackFlutterApi.create", - getCodec()); + binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackFlutterApi.create", getCodec()); channel.send( new ArrayList(Collections.singletonList(instanceIdArg)), channelReply -> callback.reply(null)); diff --git a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java index a108a46e65a..c368cfbe504 100644 --- a/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java +++ b/packages/webview_flutter/webview_flutter_android/android/src/main/java/io/flutter/plugins/webviewflutter/WebViewFlutterApiImpl.java @@ -60,17 +60,17 @@ void setApi(@NonNull WebViewFlutterApi api) { public void onScrollChanged( @NonNull WebView instance, - @NonNull Long x, - @NonNull Long y, - @NonNull Long oldX, - @NonNull Long oldY, + @NonNull Long left, + @NonNull Long top, + @NonNull Long oldLeft, + @NonNull Long oldTop, @NonNull WebViewFlutterApi.Reply callback) { api.onScrollChanged( Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(instance)), - x, - y, - oldX, - oldY, + left, + top, + oldLeft, + oldTop, callback); } } diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart index 99ce87984a8..c84472f2e2d 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_proxy.dart @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart'; - import 'android_webview.dart' as android_webview; /// Handles constructing objects and calling static methods for the Android @@ -27,9 +25,9 @@ class AndroidWebViewProxy { }); /// Constructs a [android_webview.WebView]. - final android_webview.WebView Function( - {Function(ScrollPositionChange scrollPositionChange)? - onScrollPositionChange}) createAndroidWebView; + final android_webview.WebView Function({ + Function(int left, int top, int oldLeft, int oldTop)? onScrollChanged, + }) createAndroidWebView; /// Constructs a [android_webview.WebChromeClient]. final android_webview.WebChromeClient Function({ diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart index 1b635565197..c6944889277 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview.dart @@ -7,7 +7,6 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart' show BinaryMessenger; import 'package:flutter/widgets.dart' show WidgetsFlutterBinding; -import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart'; import 'android_webview.g.dart'; import 'android_webview_api_impls.dart'; @@ -133,12 +132,8 @@ class GeolocationPermissionsCallback extends JavaObject { /// When a [WebView] is no longer needed [release] must be called. class WebView extends View { /// Constructs a new WebView. - /// - /// Due to changes in Flutter 3.0 the [useHybridComposition] doesn't have - /// any effect and should not be exposed publicly. More info here: - /// https://github.com/flutter/flutter/issues/108106 WebView({ - this.onScrollPositionChange, + this.onScrollChanged, @visibleForTesting super.binaryMessenger, @visibleForTesting super.instanceManager, }) : super.detached() { @@ -151,7 +146,7 @@ class WebView extends View { /// create copies. @protected WebView.detached({ - this.onScrollPositionChange, + this.onScrollChanged, super.binaryMessenger, super.instanceManager, }) : super.detached(); @@ -163,9 +158,17 @@ class WebView extends View { /// The [WebSettings] object used to control the settings for this WebView. late final WebSettings settings = WebSettings(this); - /// The [ScrollChangedCallback] object used to listen for scroll changed events. - final Function(ScrollPositionChange scrollPositionChange)? - onScrollPositionChange; + /// Called in response to an internal scroll in this view + /// (i.e., the view scrolled its own contents). + /// + /// This is typically as a result of [scrollBy] or [scrollTo] + /// having been called. + final Function( + int left, + int top, + int oldLeft, + int oldTop, + )? onScrollChanged; /// Enables debugging of web contents (HTML / CSS / JavaScript) loaded into any WebViews of this application. /// @@ -455,7 +458,7 @@ class WebView extends View { @override WebView copy() { return WebView.detached( - onScrollPositionChange: onScrollPositionChange, + onScrollChanged: onScrollChanged, binaryMessenger: _api.binaryMessenger, instanceManager: _api.instanceManager, ); 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 b3afc02e5d9..0b101ba9b5a 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 @@ -20,12 +20,10 @@ enum FileChooserMode { /// /// See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN. open, - /// Similar to [open] but allows multiple files to be selected. /// /// See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN_MULTIPLE. openMultiple, - /// Allows picking a nonexistent file and saving it. /// /// See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_SAVE. @@ -40,27 +38,22 @@ enum ConsoleMessageLevel { /// /// See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#DEBUG. debug, - /// Indicates a message is provided as an error. /// /// See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#ERROR. error, - /// Indicates a message is provided as a basic log message. /// /// See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#LOG. log, - /// Indicates a message is provided as a tip. /// /// See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#TIP. tip, - /// Indicates a message is provided as a warning. /// /// See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#WARNING. warning, - /// Indicates a message with an unknown level. /// /// This does not represent an actual value provided by the platform and only @@ -109,8 +102,7 @@ class WebResourceRequestData { isRedirect: result[2] as bool?, hasGesture: result[3]! as bool, method: result[4]! as String, - requestHeaders: - (result[5] as Map?)!.cast(), + requestHeaders: (result[5] as Map?)!.cast(), ); } } @@ -222,10 +214,10 @@ class InstanceManagerHostApi { /// This is typically only used after a hot restart. Future clear() async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.InstanceManagerHostApi.clear', - codec, + 'dev.flutter.pigeon.webview_flutter_android.InstanceManagerHostApi.clear', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send(null) as List?; + final List? replyList = + await channel.send(null) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -260,8 +252,7 @@ class JavaObjectHostApi { Future dispose(int arg_identifier) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.JavaObjectHostApi.dispose', - codec, + 'dev.flutter.pigeon.webview_flutter_android.JavaObjectHostApi.dispose', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_identifier]) as List?; @@ -290,19 +281,17 @@ abstract class JavaObjectFlutterApi { void dispose(int identifier); - static void setup(JavaObjectFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(JavaObjectFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.JavaObjectFlutterApi.dispose', - codec, + 'dev.flutter.pigeon.webview_flutter_android.JavaObjectFlutterApi.dispose', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.JavaObjectFlutterApi.dispose was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.JavaObjectFlutterApi.dispose was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -333,8 +322,7 @@ class CookieManagerHostApi { /// Handles attaching `CookieManager.instance` to a native instance. Future attachInstance(int arg_instanceIdentifier) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.attachInstance', - codec, + 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.attachInstance', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceIdentifier]) as List?; @@ -355,14 +343,12 @@ class CookieManagerHostApi { } /// Handles Dart method `CookieManager.setCookie`. - Future setCookie( - int arg_identifier, String arg_url, String arg_value) async { + Future setCookie(int arg_identifier, String arg_url, String arg_value) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setCookie', - codec, + 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setCookie', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_url, arg_value]) as List?; + final List? replyList = + await channel.send([arg_identifier, arg_url, arg_value]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -382,8 +368,7 @@ class CookieManagerHostApi { /// Handles Dart method `CookieManager.removeAllCookies`. Future removeAllCookies(int arg_identifier) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.removeAllCookies', - codec, + 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.removeAllCookies', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_identifier]) as List?; @@ -409,15 +394,12 @@ class CookieManagerHostApi { } /// Handles Dart method `CookieManager.setAcceptThirdPartyCookies`. - Future setAcceptThirdPartyCookies( - int arg_identifier, int arg_webViewIdentifier, bool arg_accept) async { + Future setAcceptThirdPartyCookies(int arg_identifier, int arg_webViewIdentifier, bool arg_accept) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies', - codec, + 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_webViewIdentifier, arg_accept]) - as List?; + final List? replyList = + await channel.send([arg_identifier, arg_webViewIdentifier, arg_accept]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -450,7 +432,7 @@ class _WebViewHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return WebViewPoint.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -470,8 +452,7 @@ class WebViewHostApi { Future create(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.create', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -491,15 +472,12 @@ class WebViewHostApi { } } - Future loadData(int arg_instanceId, String arg_data, - String? arg_mimeType, String? arg_encoding) async { + Future loadData(int arg_instanceId, String arg_data, String? arg_mimeType, String? arg_encoding) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadData', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadData', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send( - [arg_instanceId, arg_data, arg_mimeType, arg_encoding]) - as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_data, arg_mimeType, arg_encoding]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -516,25 +494,12 @@ class WebViewHostApi { } } - Future loadDataWithBaseUrl( - int arg_instanceId, - String? arg_baseUrl, - String arg_data, - String? arg_mimeType, - String? arg_encoding, - String? arg_historyUrl) async { + Future loadDataWithBaseUrl(int arg_instanceId, String? arg_baseUrl, String arg_data, String? arg_mimeType, String? arg_encoding, String? arg_historyUrl) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadDataWithBaseUrl', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadDataWithBaseUrl', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_instanceId, - arg_baseUrl, - arg_data, - arg_mimeType, - arg_encoding, - arg_historyUrl - ]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_baseUrl, arg_data, arg_mimeType, arg_encoding, arg_historyUrl]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -551,15 +516,12 @@ class WebViewHostApi { } } - Future loadUrl(int arg_instanceId, String arg_url, - Map arg_headers) async { + Future loadUrl(int arg_instanceId, String arg_url, Map arg_headers) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_url, arg_headers]) - as List?; + await channel.send([arg_instanceId, arg_url, arg_headers]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -576,14 +538,12 @@ class WebViewHostApi { } } - Future postUrl( - int arg_instanceId, String arg_url, Uint8List arg_data) async { + Future postUrl(int arg_instanceId, String arg_url, Uint8List arg_data) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.postUrl', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.postUrl', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_url, arg_data]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_url, arg_data]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -602,8 +562,7 @@ class WebViewHostApi { Future getUrl(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getUrl', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getUrl', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -625,8 +584,7 @@ class WebViewHostApi { Future canGoBack(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoBack', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoBack', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -653,8 +611,7 @@ class WebViewHostApi { Future canGoForward(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoForward', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoForward', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -681,8 +638,7 @@ class WebViewHostApi { Future goBack(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goBack', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goBack', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -704,8 +660,7 @@ class WebViewHostApi { Future goForward(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goForward', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goForward', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -727,8 +682,7 @@ class WebViewHostApi { Future reload(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.reload', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.reload', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -750,12 +704,10 @@ class WebViewHostApi { Future clearCache(int arg_instanceId, bool arg_includeDiskFiles) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.clearCache', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.clearCache', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_includeDiskFiles]) - as List?; + await channel.send([arg_instanceId, arg_includeDiskFiles]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -772,15 +724,12 @@ class WebViewHostApi { } } - Future evaluateJavascript( - int arg_instanceId, String arg_javascriptString) async { + Future evaluateJavascript(int arg_instanceId, String arg_javascriptString) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_javascriptString]) - as List?; + await channel.send([arg_instanceId, arg_javascriptString]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -799,8 +748,7 @@ class WebViewHostApi { Future getTitle(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getTitle', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getTitle', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -822,11 +770,10 @@ class WebViewHostApi { Future scrollTo(int arg_instanceId, int arg_x, int arg_y) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollTo', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollTo', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_x, arg_y]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_x, arg_y]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -845,11 +792,10 @@ class WebViewHostApi { Future scrollBy(int arg_instanceId, int arg_x, int arg_y) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollBy', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollBy', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_x, arg_y]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_x, arg_y]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -868,8 +814,7 @@ class WebViewHostApi { Future getScrollX(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollX', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollX', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -896,8 +841,7 @@ class WebViewHostApi { Future getScrollY(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollY', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollY', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -924,8 +868,7 @@ class WebViewHostApi { Future getScrollPosition(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollPosition', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollPosition', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -952,8 +895,7 @@ class WebViewHostApi { Future setWebContentsDebuggingEnabled(bool arg_enabled) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_enabled]) as List?; @@ -973,15 +915,12 @@ class WebViewHostApi { } } - Future setWebViewClient( - int arg_instanceId, int arg_webViewClientInstanceId) async { + Future setWebViewClient(int arg_instanceId, int arg_webViewClientInstanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebViewClient', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebViewClient', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_webViewClientInstanceId]) - as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_webViewClientInstanceId]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -998,15 +937,12 @@ class WebViewHostApi { } } - Future addJavaScriptChannel( - int arg_instanceId, int arg_javaScriptChannelInstanceId) async { + Future addJavaScriptChannel(int arg_instanceId, int arg_javaScriptChannelInstanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_javaScriptChannelInstanceId]) - as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_javaScriptChannelInstanceId]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1023,15 +959,12 @@ class WebViewHostApi { } } - Future removeJavaScriptChannel( - int arg_instanceId, int arg_javaScriptChannelInstanceId) async { + Future removeJavaScriptChannel(int arg_instanceId, int arg_javaScriptChannelInstanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_javaScriptChannelInstanceId]) - as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_javaScriptChannelInstanceId]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1048,15 +981,12 @@ class WebViewHostApi { } } - Future setDownloadListener( - int arg_instanceId, int? arg_listenerInstanceId) async { + Future setDownloadListener(int arg_instanceId, int? arg_listenerInstanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setDownloadListener', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setDownloadListener', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_listenerInstanceId]) - as List?; + await channel.send([arg_instanceId, arg_listenerInstanceId]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1073,15 +1003,12 @@ class WebViewHostApi { } } - Future setWebChromeClient( - int arg_instanceId, int? arg_clientInstanceId) async { + Future setWebChromeClient(int arg_instanceId, int? arg_clientInstanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebChromeClient', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebChromeClient', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_clientInstanceId]) - as List?; + await channel.send([arg_instanceId, arg_clientInstanceId]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1100,11 +1027,10 @@ class WebViewHostApi { Future setBackgroundColor(int arg_instanceId, int arg_color) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setBackgroundColor', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setBackgroundColor', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_color]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_color]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1135,21 +1061,19 @@ abstract class WebViewFlutterApi { /// Create a new Dart instance and add it to the `InstanceManager`. void create(int identifier); - void onScrollChanged(int webViewInstanceId, int x, int y, int oldX, int oldY); + void onScrollChanged(int webViewInstanceId, int left, int top, int oldLeft, int oldTop); - static void setup(WebViewFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(WebViewFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1161,33 +1085,31 @@ abstract class WebViewFlutterApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged was null.'); final List args = (message as List?)!; final int? arg_webViewInstanceId = (args[0] as int?); assert(arg_webViewInstanceId != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged was null, expected non-null int.'); - final int? arg_x = (args[1] as int?); - assert(arg_x != null, + final int? arg_left = (args[1] as int?); + assert(arg_left != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged was null, expected non-null int.'); - final int? arg_y = (args[2] as int?); - assert(arg_y != null, + final int? arg_top = (args[2] as int?); + assert(arg_top != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged was null, expected non-null int.'); - final int? arg_oldX = (args[3] as int?); - assert(arg_oldX != null, + final int? arg_oldLeft = (args[3] as int?); + assert(arg_oldLeft != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged was null, expected non-null int.'); - final int? arg_oldY = (args[4] as int?); - assert(arg_oldY != null, + final int? arg_oldTop = (args[4] as int?); + assert(arg_oldTop != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged was null, expected non-null int.'); - api.onScrollChanged( - arg_webViewInstanceId!, arg_x!, arg_y!, arg_oldX!, arg_oldY!); + api.onScrollChanged(arg_webViewInstanceId!, arg_left!, arg_top!, arg_oldLeft!, arg_oldTop!); return; }); } @@ -1207,12 +1129,10 @@ class WebSettingsHostApi { Future create(int arg_instanceId, int arg_webViewInstanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.create', codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_webViewInstanceId]) - as List?; + await channel.send([arg_instanceId, arg_webViewInstanceId]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1231,11 +1151,10 @@ class WebSettingsHostApi { Future setDomStorageEnabled(int arg_instanceId, bool arg_flag) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDomStorageEnabled', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDomStorageEnabled', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_flag]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_flag]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1252,14 +1171,12 @@ class WebSettingsHostApi { } } - Future setJavaScriptCanOpenWindowsAutomatically( - int arg_instanceId, bool arg_flag) async { + Future setJavaScriptCanOpenWindowsAutomatically(int arg_instanceId, bool arg_flag) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_flag]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_flag]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1276,14 +1193,12 @@ class WebSettingsHostApi { } } - Future setSupportMultipleWindows( - int arg_instanceId, bool arg_support) async { + Future setSupportMultipleWindows(int arg_instanceId, bool arg_support) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportMultipleWindows', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportMultipleWindows', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_support]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_support]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1302,11 +1217,10 @@ class WebSettingsHostApi { Future setJavaScriptEnabled(int arg_instanceId, bool arg_flag) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptEnabled', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptEnabled', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_flag]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_flag]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1323,14 +1237,12 @@ class WebSettingsHostApi { } } - Future setUserAgentString( - int arg_instanceId, String? arg_userAgentString) async { + Future setUserAgentString(int arg_instanceId, String? arg_userAgentString) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUserAgentString', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUserAgentString', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_userAgentString]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_userAgentString]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1347,14 +1259,12 @@ class WebSettingsHostApi { } } - Future setMediaPlaybackRequiresUserGesture( - int arg_instanceId, bool arg_require) async { + Future setMediaPlaybackRequiresUserGesture(int arg_instanceId, bool arg_require) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_require]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_require]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1373,11 +1283,10 @@ class WebSettingsHostApi { Future setSupportZoom(int arg_instanceId, bool arg_support) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportZoom', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportZoom', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_support]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_support]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1394,14 +1303,12 @@ class WebSettingsHostApi { } } - Future setLoadWithOverviewMode( - int arg_instanceId, bool arg_overview) async { + Future setLoadWithOverviewMode(int arg_instanceId, bool arg_overview) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setLoadWithOverviewMode', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setLoadWithOverviewMode', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_overview]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_overview]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1420,11 +1327,10 @@ class WebSettingsHostApi { Future setUseWideViewPort(int arg_instanceId, bool arg_use) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUseWideViewPort', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUseWideViewPort', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_use]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_use]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1441,14 +1347,12 @@ class WebSettingsHostApi { } } - Future setDisplayZoomControls( - int arg_instanceId, bool arg_enabled) async { + Future setDisplayZoomControls(int arg_instanceId, bool arg_enabled) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDisplayZoomControls', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDisplayZoomControls', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_enabled]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_enabled]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1465,14 +1369,12 @@ class WebSettingsHostApi { } } - Future setBuiltInZoomControls( - int arg_instanceId, bool arg_enabled) async { + Future setBuiltInZoomControls(int arg_instanceId, bool arg_enabled) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setBuiltInZoomControls', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setBuiltInZoomControls', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_enabled]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_enabled]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1491,11 +1393,10 @@ class WebSettingsHostApi { Future setAllowFileAccess(int arg_instanceId, bool arg_enabled) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setAllowFileAccess', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setAllowFileAccess', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_enabled]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_enabled]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1514,11 +1415,10 @@ class WebSettingsHostApi { Future setTextZoom(int arg_instanceId, int arg_textZoom) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setTextZoom', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setTextZoom', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_textZoom]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_textZoom]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1537,8 +1437,7 @@ class WebSettingsHostApi { Future getUserAgentString(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.getUserAgentString', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.getUserAgentString', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -1576,11 +1475,10 @@ class JavaScriptChannelHostApi { Future create(int arg_instanceId, String arg_channelName) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelHostApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelHostApi.create', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_channelName]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_channelName]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1603,19 +1501,17 @@ abstract class JavaScriptChannelFlutterApi { void postMessage(int instanceId, String message); - static void setup(JavaScriptChannelFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(JavaScriptChannelFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelFlutterApi.postMessage', - codec, + 'dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelFlutterApi.postMessage', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelFlutterApi.postMessage was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelFlutterApi.postMessage was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1643,8 +1539,7 @@ class WebViewClientHostApi { Future create(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.create', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -1664,14 +1559,12 @@ class WebViewClientHostApi { } } - Future setSynchronousReturnValueForShouldOverrideUrlLoading( - int arg_instanceId, bool arg_value) async { + Future setSynchronousReturnValueForShouldOverrideUrlLoading(int arg_instanceId, bool arg_value) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_value]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_value]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1707,9 +1600,9 @@ class _WebViewClientFlutterApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return WebResourceErrorData.decode(readValue(buffer)!); - case 129: + case 129: return WebResourceRequestData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1724,33 +1617,27 @@ abstract class WebViewClientFlutterApi { void onPageFinished(int instanceId, int webViewInstanceId, String url); - void onReceivedRequestError(int instanceId, int webViewInstanceId, - WebResourceRequestData request, WebResourceErrorData error); + void onReceivedRequestError(int instanceId, int webViewInstanceId, WebResourceRequestData request, WebResourceErrorData error); - void onReceivedError(int instanceId, int webViewInstanceId, int errorCode, - String description, String failingUrl); + void onReceivedError(int instanceId, int webViewInstanceId, int errorCode, String description, String failingUrl); - void requestLoading( - int instanceId, int webViewInstanceId, WebResourceRequestData request); + void requestLoading(int instanceId, int webViewInstanceId, WebResourceRequestData request); void urlLoading(int instanceId, int webViewInstanceId, String url); - void doUpdateVisitedHistory( - int instanceId, int webViewInstanceId, String url, bool isReload); + void doUpdateVisitedHistory(int instanceId, int webViewInstanceId, String url, bool isReload); - static void setup(WebViewClientFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(WebViewClientFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageStarted', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageStarted', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageStarted was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageStarted was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1768,15 +1655,14 @@ abstract class WebViewClientFlutterApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageFinished', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageFinished', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageFinished was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageFinished was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1794,15 +1680,14 @@ abstract class WebViewClientFlutterApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1810,31 +1695,27 @@ abstract class WebViewClientFlutterApi { final int? arg_webViewInstanceId = (args[1] as int?); assert(arg_webViewInstanceId != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError was null, expected non-null int.'); - final WebResourceRequestData? arg_request = - (args[2] as WebResourceRequestData?); + final WebResourceRequestData? arg_request = (args[2] as WebResourceRequestData?); assert(arg_request != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError was null, expected non-null WebResourceRequestData.'); - final WebResourceErrorData? arg_error = - (args[3] as WebResourceErrorData?); + final WebResourceErrorData? arg_error = (args[3] as WebResourceErrorData?); assert(arg_error != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError was null, expected non-null WebResourceErrorData.'); - api.onReceivedRequestError(arg_instanceId!, arg_webViewInstanceId!, - arg_request!, arg_error!); + api.onReceivedRequestError(arg_instanceId!, arg_webViewInstanceId!, arg_request!, arg_error!); return; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedError', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedError', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedError was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedError was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1851,23 +1732,21 @@ abstract class WebViewClientFlutterApi { final String? arg_failingUrl = (args[4] as String?); assert(arg_failingUrl != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedError was null, expected non-null String.'); - api.onReceivedError(arg_instanceId!, arg_webViewInstanceId!, - arg_errorCode!, arg_description!, arg_failingUrl!); + api.onReceivedError(arg_instanceId!, arg_webViewInstanceId!, arg_errorCode!, arg_description!, arg_failingUrl!); return; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.requestLoading', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.requestLoading', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.requestLoading was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.requestLoading was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1875,27 +1754,24 @@ abstract class WebViewClientFlutterApi { final int? arg_webViewInstanceId = (args[1] as int?); assert(arg_webViewInstanceId != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.requestLoading was null, expected non-null int.'); - final WebResourceRequestData? arg_request = - (args[2] as WebResourceRequestData?); + final WebResourceRequestData? arg_request = (args[2] as WebResourceRequestData?); assert(arg_request != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.requestLoading was null, expected non-null WebResourceRequestData.'); - api.requestLoading( - arg_instanceId!, arg_webViewInstanceId!, arg_request!); + api.requestLoading(arg_instanceId!, arg_webViewInstanceId!, arg_request!); return; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.urlLoading', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.urlLoading', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.urlLoading was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.urlLoading was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1913,15 +1789,14 @@ abstract class WebViewClientFlutterApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.doUpdateVisitedHistory', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.doUpdateVisitedHistory', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.doUpdateVisitedHistory was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.doUpdateVisitedHistory was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1935,8 +1810,7 @@ abstract class WebViewClientFlutterApi { final bool? arg_isReload = (args[3] as bool?); assert(arg_isReload != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.doUpdateVisitedHistory was null, expected non-null bool.'); - api.doUpdateVisitedHistory( - arg_instanceId!, arg_webViewInstanceId!, arg_url!, arg_isReload!); + api.doUpdateVisitedHistory(arg_instanceId!, arg_webViewInstanceId!, arg_url!, arg_isReload!); return; }); } @@ -1956,8 +1830,7 @@ class DownloadListenerHostApi { Future create(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.DownloadListenerHostApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.DownloadListenerHostApi.create', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -1981,22 +1854,19 @@ class DownloadListenerHostApi { abstract class DownloadListenerFlutterApi { static const MessageCodec codec = StandardMessageCodec(); - void onDownloadStart(int instanceId, String url, String userAgent, - String contentDisposition, String mimetype, int contentLength); + void onDownloadStart(int instanceId, String url, String userAgent, String contentDisposition, String mimetype, int contentLength); - static void setup(DownloadListenerFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(DownloadListenerFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.DownloadListenerFlutterApi.onDownloadStart', - codec, + 'dev.flutter.pigeon.webview_flutter_android.DownloadListenerFlutterApi.onDownloadStart', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.DownloadListenerFlutterApi.onDownloadStart was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.DownloadListenerFlutterApi.onDownloadStart was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2016,8 +1886,7 @@ abstract class DownloadListenerFlutterApi { final int? arg_contentLength = (args[5] as int?); assert(arg_contentLength != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.DownloadListenerFlutterApi.onDownloadStart was null, expected non-null int.'); - api.onDownloadStart(arg_instanceId!, arg_url!, arg_userAgent!, - arg_contentDisposition!, arg_mimetype!, arg_contentLength!); + api.onDownloadStart(arg_instanceId!, arg_url!, arg_userAgent!, arg_contentDisposition!, arg_mimetype!, arg_contentLength!); return; }); } @@ -2037,8 +1906,7 @@ class WebChromeClientHostApi { Future create(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.create', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -2058,14 +1926,12 @@ class WebChromeClientHostApi { } } - Future setSynchronousReturnValueForOnShowFileChooser( - int arg_instanceId, bool arg_value) async { + Future setSynchronousReturnValueForOnShowFileChooser(int arg_instanceId, bool arg_value) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_value]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_value]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2082,14 +1948,12 @@ class WebChromeClientHostApi { } } - Future setSynchronousReturnValueForOnConsoleMessage( - int arg_instanceId, bool arg_value) async { + Future setSynchronousReturnValueForOnConsoleMessage(int arg_instanceId, bool arg_value) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_value]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_value]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2119,8 +1983,7 @@ class FlutterAssetManagerHostApi { Future> list(String arg_path) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.list', - codec, + 'dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.list', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_path]) as List?; @@ -2147,8 +2010,7 @@ class FlutterAssetManagerHostApi { Future getAssetFilePathByName(String arg_name) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.getAssetFilePathByName', - codec, + 'dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.getAssetFilePathByName', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_name]) as List?; @@ -2189,7 +2051,7 @@ class _WebChromeClientFlutterApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return ConsoleMessage.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -2202,22 +2064,19 @@ abstract class WebChromeClientFlutterApi { void onProgressChanged(int instanceId, int webViewInstanceId, int progress); - Future> onShowFileChooser( - int instanceId, int webViewInstanceId, int paramsInstanceId); + Future> onShowFileChooser(int instanceId, int webViewInstanceId, int paramsInstanceId); /// Callback to Dart function `WebChromeClient.onPermissionRequest`. void onPermissionRequest(int instanceId, int requestInstanceId); /// Callback to Dart function `WebChromeClient.onShowCustomView`. - void onShowCustomView( - int instanceId, int viewIdentifier, int callbackIdentifier); + void onShowCustomView(int instanceId, int viewIdentifier, int callbackIdentifier); /// Callback to Dart function `WebChromeClient.onHideCustomView`. void onHideCustomView(int instanceId); /// Callback to Dart function `WebChromeClient.onGeolocationPermissionsShowPrompt`. - void onGeolocationPermissionsShowPrompt( - int instanceId, int paramsInstanceId, String origin); + void onGeolocationPermissionsShowPrompt(int instanceId, int paramsInstanceId, String origin); /// Callback to Dart function `WebChromeClient.onGeolocationPermissionsHidePrompt`. void onGeolocationPermissionsHidePrompt(int identifier); @@ -2225,19 +2084,17 @@ abstract class WebChromeClientFlutterApi { /// Callback to Dart function `WebChromeClient.onConsoleMessage`. void onConsoleMessage(int instanceId, ConsoleMessage message); - static void setup(WebChromeClientFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(WebChromeClientFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onProgressChanged', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onProgressChanged', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onProgressChanged was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onProgressChanged was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2248,23 +2105,21 @@ abstract class WebChromeClientFlutterApi { final int? arg_progress = (args[2] as int?); assert(arg_progress != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onProgressChanged was null, expected non-null int.'); - api.onProgressChanged( - arg_instanceId!, arg_webViewInstanceId!, arg_progress!); + api.onProgressChanged(arg_instanceId!, arg_webViewInstanceId!, arg_progress!); return; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowFileChooser', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowFileChooser', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowFileChooser was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowFileChooser was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2275,23 +2130,21 @@ abstract class WebChromeClientFlutterApi { final int? arg_paramsInstanceId = (args[2] as int?); assert(arg_paramsInstanceId != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowFileChooser was null, expected non-null int.'); - final List output = await api.onShowFileChooser( - arg_instanceId!, arg_webViewInstanceId!, arg_paramsInstanceId!); + final List output = await api.onShowFileChooser(arg_instanceId!, arg_webViewInstanceId!, arg_paramsInstanceId!); return output; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onPermissionRequest', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onPermissionRequest', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onPermissionRequest was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onPermissionRequest was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2306,15 +2159,14 @@ abstract class WebChromeClientFlutterApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowCustomView', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowCustomView', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowCustomView was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowCustomView was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2325,23 +2177,21 @@ abstract class WebChromeClientFlutterApi { final int? arg_callbackIdentifier = (args[2] as int?); assert(arg_callbackIdentifier != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowCustomView was null, expected non-null int.'); - api.onShowCustomView( - arg_instanceId!, arg_viewIdentifier!, arg_callbackIdentifier!); + api.onShowCustomView(arg_instanceId!, arg_viewIdentifier!, arg_callbackIdentifier!); return; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onHideCustomView', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onHideCustomView', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onHideCustomView was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onHideCustomView was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2353,15 +2203,14 @@ abstract class WebChromeClientFlutterApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsShowPrompt', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsShowPrompt', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsShowPrompt was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsShowPrompt was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2372,23 +2221,21 @@ abstract class WebChromeClientFlutterApi { final String? arg_origin = (args[2] as String?); assert(arg_origin != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsShowPrompt was null, expected non-null String.'); - api.onGeolocationPermissionsShowPrompt( - arg_instanceId!, arg_paramsInstanceId!, arg_origin!); + api.onGeolocationPermissionsShowPrompt(arg_instanceId!, arg_paramsInstanceId!, arg_origin!); return; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsHidePrompt', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsHidePrompt', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsHidePrompt was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsHidePrompt was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2400,15 +2247,14 @@ abstract class WebChromeClientFlutterApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onConsoleMessage', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onConsoleMessage', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onConsoleMessage was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onConsoleMessage was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2436,8 +2282,7 @@ class WebStorageHostApi { Future create(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.create', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -2459,8 +2304,7 @@ class WebStorageHostApi { Future deleteAllData(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.deleteAllData', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.deleteAllData', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -2487,22 +2331,19 @@ class WebStorageHostApi { abstract class FileChooserParamsFlutterApi { static const MessageCodec codec = StandardMessageCodec(); - void create(int instanceId, bool isCaptureEnabled, List acceptTypes, - FileChooserMode mode, String? filenameHint); + void create(int instanceId, bool isCaptureEnabled, List acceptTypes, FileChooserMode mode, String? filenameHint); - static void setup(FileChooserParamsFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(FileChooserParamsFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2510,17 +2351,14 @@ abstract class FileChooserParamsFlutterApi { final bool? arg_isCaptureEnabled = (args[1] as bool?); assert(arg_isCaptureEnabled != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create was null, expected non-null bool.'); - final List? arg_acceptTypes = - (args[2] as List?)?.cast(); + final List? arg_acceptTypes = (args[2] as List?)?.cast(); assert(arg_acceptTypes != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create was null, expected non-null List.'); - final FileChooserMode? arg_mode = - args[3] == null ? null : FileChooserMode.values[args[3]! as int]; + final FileChooserMode? arg_mode = args[3] == null ? null : FileChooserMode.values[args[3]! as int]; assert(arg_mode != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create was null, expected non-null FileChooserMode.'); final String? arg_filenameHint = (args[4] as String?); - api.create(arg_instanceId!, arg_isCaptureEnabled!, arg_acceptTypes!, - arg_mode!, arg_filenameHint); + api.create(arg_instanceId!, arg_isCaptureEnabled!, arg_acceptTypes!, arg_mode!, arg_filenameHint); return; }); } @@ -2548,11 +2386,10 @@ class PermissionRequestHostApi { /// Handles Dart method `PermissionRequest.grant`. Future grant(int arg_instanceId, List arg_resources) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant', - codec, + 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_resources]) as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_resources]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2572,8 +2409,7 @@ class PermissionRequestHostApi { /// Handles Dart method `PermissionRequest.deny`. Future deny(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.deny', - codec, + 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.deny', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -2607,25 +2443,22 @@ abstract class PermissionRequestFlutterApi { /// Create a new Dart instance and add it to the `InstanceManager`. void create(int instanceId, List resources); - static void setup(PermissionRequestFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(PermissionRequestFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestFlutterApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestFlutterApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestFlutterApi.create was null, expected non-null int.'); - final List? arg_resources = - (args[1] as List?)?.cast(); + final List? arg_resources = (args[1] as List?)?.cast(); assert(arg_resources != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestFlutterApi.create was null, expected non-null List.'); api.create(arg_instanceId!, arg_resources!); @@ -2656,8 +2489,7 @@ class CustomViewCallbackHostApi { /// Handles Dart method `CustomViewCallback.onCustomViewHidden`. Future onCustomViewHidden(int arg_identifier) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackHostApi.onCustomViewHidden', - codec, + 'dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackHostApi.onCustomViewHidden', codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_identifier]) as List?; @@ -2691,19 +2523,17 @@ abstract class CustomViewCallbackFlutterApi { /// Create a new Dart instance and add it to the `InstanceManager`. void create(int identifier); - static void setup(CustomViewCallbackFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(CustomViewCallbackFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackFlutterApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackFlutterApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2732,15 +2562,14 @@ abstract class ViewFlutterApi { static void setup(ViewFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.ViewFlutterApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.ViewFlutterApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.ViewFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.ViewFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2771,15 +2600,12 @@ class GeolocationPermissionsCallbackHostApi { static const MessageCodec codec = StandardMessageCodec(); /// Handles Dart method `GeolocationPermissionsCallback.invoke`. - Future invoke(int arg_instanceId, String arg_origin, bool arg_allow, - bool arg_retain) async { + Future invoke(int arg_instanceId, String arg_origin, bool arg_allow, bool arg_retain) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackHostApi.invoke', - codec, + 'dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackHostApi.invoke', codec, binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_instanceId, arg_origin, arg_allow, arg_retain]) - as List?; + final List? replyList = + await channel.send([arg_instanceId, arg_origin, arg_allow, arg_retain]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2810,19 +2636,17 @@ abstract class GeolocationPermissionsCallbackFlutterApi { /// Create a new Dart instance and add it to the `InstanceManager`. void create(int instanceId); - static void setup(GeolocationPermissionsCallbackFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(GeolocationPermissionsCallbackFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackFlutterApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackFlutterApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart index e39c960a32b..e14a10f7e46 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_api_impls.dart @@ -6,8 +6,6 @@ import 'dart:typed_data'; import 'dart:ui'; import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart' - show ScrollPositionChange; import 'android_webview.dart'; import 'android_webview.g.dart'; @@ -409,14 +407,14 @@ class WebViewFlutterApiImpl implements WebViewFlutterApi { @override void onScrollChanged( - int webViewInstanceId, int x, int y, int oldX, int oldY) { + int webViewInstanceId, int left, int top, int oldLeft, int oldTop) { final WebView? webViewInstance = instanceManager .getInstanceWithWeakReference(webViewInstanceId) as WebView?; assert( webViewInstance != null, 'InstanceManager does not contain a WebView with instanceId: $webViewInstanceId', ); - webViewInstance!.onScrollPositionChange?.call(ScrollPositionChange(x, y)); + webViewInstance!.onScrollChanged?.call(left, top, oldLeft, oldTop); } } diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart index fe959530ca2..fc6943f210b 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart @@ -100,12 +100,12 @@ class AndroidWebViewController extends PlatformWebViewController { /// The native [android_webview.WebView] being controlled. late final android_webview.WebView _webView = _androidWebViewParams.androidWebViewProxy.createAndroidWebView( - onScrollPositionChange: withWeakReferenceTo(this, + onScrollChanged: withWeakReferenceTo(this, (WeakReference weakReference) { - return (ScrollPositionChange scrollPositionChange) async { + return (int left, int top, int oldLeft, int oldTop) async { final Function(ScrollPositionChange)? callback = - weakReference.target?._onContentOffsetChangedCallback; - callback?.call(scrollPositionChange); + weakReference.target?._onScrollPositionChangedCallback; + callback?.call(ScrollPositionChange(left, top)); }; })); @@ -303,7 +303,7 @@ class AndroidWebViewController extends PlatformWebViewController { void Function(JavaScriptConsoleMessage consoleMessage)? _onConsoleLogCallback; void Function(ScrollPositionChange scrollPositionChange)? - _onContentOffsetChangedCallback; + _onScrollPositionChangedCallback; /// Whether to enable the platform's webview content debugging tools. /// @@ -528,7 +528,7 @@ class AndroidWebViewController extends PlatformWebViewController { Future setOnScrollPositionChange( void Function(ScrollPositionChange scrollPositionChange)? onScrollPositionChange) async { - _onContentOffsetChangedCallback = onScrollPositionChange; + _onScrollPositionChangedCallback = onScrollPositionChange; } /// Sets the restrictions that apply on automatic media playback. diff --git a/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart b/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart index 31ac1f125ad..247afce412e 100644 --- a/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart +++ b/packages/webview_flutter/webview_flutter_android/pigeons/android_webview.dart @@ -269,7 +269,13 @@ abstract class WebViewFlutterApi { /// Create a new Dart instance and add it to the `InstanceManager`. void create(int identifier); - void onScrollChanged(int webViewInstanceId, int x, int y, int oldX, int oldY); + void onScrollChanged( + int webViewInstanceId, + int left, + int top, + int oldLeft, + int oldTop, + ); } @HostApi(dartHostTestHandler: 'TestWebSettingsHostApi') diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart index f4afb93804b..4aabdeec1a7 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.dart @@ -121,8 +121,8 @@ void main() { MockWebChromeClient(), createAndroidWebView: ( {dynamic Function( - ScrollPositionChange scrollPositionChange)? - onScrollPositionChange}) => + int left, int top, int oldLeft, int oldTop)? + onScrollChanged}) => nonNullMockWebView, createAndroidWebViewClient: ({ void Function(android_webview.WebView webView, String url)? 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 201579d7275..21517909ee4 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 @@ -255,6 +255,7 @@ class MockAndroidNavigationDelegate extends _i1.Mock Invocation.getter(#androidWebChromeClient), ), ) as _i2.WebChromeClient); + @override _i2.WebViewClient get androidWebViewClient => (super.noSuchMethod( Invocation.getter(#androidWebViewClient), @@ -267,6 +268,7 @@ class MockAndroidNavigationDelegate extends _i1.Mock Invocation.getter(#androidWebViewClient), ), ) as _i2.WebViewClient); + @override _i2.DownloadListener get androidDownloadListener => (super.noSuchMethod( Invocation.getter(#androidDownloadListener), @@ -279,6 +281,7 @@ class MockAndroidNavigationDelegate extends _i1.Mock Invocation.getter(#androidDownloadListener), ), ) as _i2.DownloadListener); + @override _i3.PlatformNavigationDelegateCreationParams get params => (super.noSuchMethod( @@ -293,6 +296,7 @@ class MockAndroidNavigationDelegate extends _i1.Mock Invocation.getter(#params), ), ) as _i3.PlatformNavigationDelegateCreationParams); + @override _i9.Future setOnLoadRequest(_i8.LoadRequestCallback? onLoadRequest) => (super.noSuchMethod( @@ -303,6 +307,7 @@ class MockAndroidNavigationDelegate extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setOnNavigationRequest( _i3.NavigationRequestCallback? onNavigationRequest) => @@ -314,6 +319,7 @@ class MockAndroidNavigationDelegate extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setOnPageStarted(_i3.PageEventCallback? onPageStarted) => (super.noSuchMethod( @@ -324,6 +330,7 @@ class MockAndroidNavigationDelegate extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setOnPageFinished(_i3.PageEventCallback? onPageFinished) => (super.noSuchMethod( @@ -334,6 +341,7 @@ class MockAndroidNavigationDelegate extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setOnProgress(_i3.ProgressCallback? onProgress) => (super.noSuchMethod( @@ -344,6 +352,7 @@ class MockAndroidNavigationDelegate extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setOnWebResourceError( _i3.WebResourceErrorCallback? onWebResourceError) => @@ -355,6 +364,7 @@ class MockAndroidNavigationDelegate extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setOnUrlChange(_i3.UrlChangeCallback? onUrlChange) => (super.noSuchMethod( @@ -365,6 +375,7 @@ class MockAndroidNavigationDelegate extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setOnHttpError(_i3.HttpResponseErrorCallback? onHttpError) => (super.noSuchMethod( @@ -388,6 +399,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: 0, returnValueForMissingStub: 0, ) as int); + @override _i3.PlatformWebViewControllerCreationParams get params => (super.noSuchMethod( Invocation.getter(#params), @@ -401,6 +413,7 @@ class MockAndroidWebViewController extends _i1.Mock Invocation.getter(#params), ), ) as _i3.PlatformWebViewControllerCreationParams); + @override _i9.Future loadFile(String? absoluteFilePath) => (super.noSuchMethod( Invocation.method( @@ -410,6 +423,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future loadFlutterAsset(String? key) => (super.noSuchMethod( Invocation.method( @@ -419,6 +433,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future loadHtmlString( String? html, { @@ -433,6 +448,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future loadRequest(_i3.LoadRequestParams? params) => (super.noSuchMethod( @@ -443,6 +459,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future currentUrl() => (super.noSuchMethod( Invocation.method( @@ -452,6 +469,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future canGoBack() => (super.noSuchMethod( Invocation.method( @@ -461,6 +479,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(false), returnValueForMissingStub: _i9.Future.value(false), ) as _i9.Future); + @override _i9.Future canGoForward() => (super.noSuchMethod( Invocation.method( @@ -470,6 +489,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(false), returnValueForMissingStub: _i9.Future.value(false), ) as _i9.Future); + @override _i9.Future goBack() => (super.noSuchMethod( Invocation.method( @@ -479,6 +499,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future goForward() => (super.noSuchMethod( Invocation.method( @@ -488,6 +509,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future reload() => (super.noSuchMethod( Invocation.method( @@ -497,6 +519,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future clearCache() => (super.noSuchMethod( Invocation.method( @@ -506,6 +529,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future clearLocalStorage() => (super.noSuchMethod( Invocation.method( @@ -515,6 +539,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setPlatformNavigationDelegate( _i3.PlatformNavigationDelegate? handler) => @@ -526,6 +551,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future runJavaScript(String? javaScript) => (super.noSuchMethod( Invocation.method( @@ -535,6 +561,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future runJavaScriptReturningResult(String? javaScript) => (super.noSuchMethod( @@ -557,6 +584,7 @@ class MockAndroidWebViewController extends _i1.Mock ), )), ) as _i9.Future); + @override _i9.Future addJavaScriptChannel( _i3.JavaScriptChannelParams? javaScriptChannelParams) => @@ -568,6 +596,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future removeJavaScriptChannel(String? javaScriptChannelName) => (super.noSuchMethod( @@ -578,6 +607,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future getTitle() => (super.noSuchMethod( Invocation.method( @@ -587,6 +617,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future scrollTo( int? x, @@ -603,6 +634,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future scrollBy( int? x, @@ -619,6 +651,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future<_i4.Offset> getScrollPosition() => (super.noSuchMethod( Invocation.method( @@ -640,6 +673,7 @@ class MockAndroidWebViewController extends _i1.Mock ), )), ) as _i9.Future<_i4.Offset>); + @override _i9.Future enableZoom(bool? enabled) => (super.noSuchMethod( Invocation.method( @@ -649,6 +683,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setBackgroundColor(_i4.Color? color) => (super.noSuchMethod( Invocation.method( @@ -658,6 +693,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setJavaScriptMode(_i3.JavaScriptMode? javaScriptMode) => (super.noSuchMethod( @@ -668,6 +704,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setUserAgent(String? userAgent) => (super.noSuchMethod( Invocation.method( @@ -677,6 +714,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setOnScrollPositionChange( void Function(_i3.ScrollPositionChange)? onScrollPositionChange) => @@ -688,6 +726,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setMediaPlaybackRequiresUserGesture(bool? require) => (super.noSuchMethod( @@ -698,6 +737,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setTextZoom(int? textZoom) => (super.noSuchMethod( Invocation.method( @@ -707,6 +747,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setOnShowFileSelector( _i9.Future> Function(_i8.FileSelectorParams)? @@ -719,6 +760,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setOnPlatformPermissionRequest( void Function(_i3.PlatformWebViewPermissionRequest)? @@ -731,6 +773,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setGeolocationPermissionsPromptCallbacks({ _i8.OnGeolocationPermissionsShowPrompt? onShowPrompt, @@ -748,6 +791,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setCustomWidgetCallbacks({ required _i8.OnShowCustomWidgetCallback? onShowCustomWidget, @@ -765,6 +809,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setOnConsoleMessage( void Function(_i3.JavaScriptConsoleMessage)? onConsoleMessage) => @@ -776,6 +821,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future getUserAgent() => (super.noSuchMethod( Invocation.method( @@ -794,26 +840,43 @@ class MockAndroidWebViewProxy extends _i1.Mock implements _i10.AndroidWebViewProxy { @override _i2.WebView Function( - {dynamic Function(_i3.ScrollPositionChange)? onScrollPositionChange}) - get createAndroidWebView => (super.noSuchMethod( - Invocation.getter(#createAndroidWebView), - returnValue: ( - {dynamic Function(_i3.ScrollPositionChange)? - onScrollPositionChange}) => - _FakeWebView_7( - this, - Invocation.getter(#createAndroidWebView), - ), - returnValueForMissingStub: ( - {dynamic Function(_i3.ScrollPositionChange)? - onScrollPositionChange}) => - _FakeWebView_7( - this, - Invocation.getter(#createAndroidWebView), - ), - ) as _i2.WebView Function( - {dynamic Function(_i3.ScrollPositionChange)? - onScrollPositionChange})); + {dynamic Function( + int, + int, + int, + int, + )? onScrollChanged}) get createAndroidWebView => (super.noSuchMethod( + Invocation.getter(#createAndroidWebView), + returnValue: ( + {dynamic Function( + int, + int, + int, + int, + )? onScrollChanged}) => + _FakeWebView_7( + this, + Invocation.getter(#createAndroidWebView), + ), + returnValueForMissingStub: ( + {dynamic Function( + int, + int, + int, + int, + )? onScrollChanged}) => + _FakeWebView_7( + this, + Invocation.getter(#createAndroidWebView), + ), + ) as _i2.WebView Function( + {dynamic Function( + int, + int, + int, + int, + )? onScrollChanged})); + @override _i2.WebChromeClient Function({ void Function( @@ -942,6 +1005,7 @@ class MockAndroidWebViewProxy extends _i1.Mock _i2.FileChooserParams, )? onShowFileChooser, })); + @override _i2.WebViewClient Function({ void Function( @@ -1088,6 +1152,7 @@ class MockAndroidWebViewProxy extends _i1.Mock String, )? urlLoading, })); + @override _i2.FlutterAssetManager Function() get createFlutterAssetManager => (super.noSuchMethod( @@ -1101,6 +1166,7 @@ class MockAndroidWebViewProxy extends _i1.Mock Invocation.getter(#createFlutterAssetManager), ), ) as _i2.FlutterAssetManager Function()); + @override _i2.JavaScriptChannel Function( String, { @@ -1127,6 +1193,7 @@ class MockAndroidWebViewProxy extends _i1.Mock String, { required void Function(String) postMessage, })); + @override _i2.DownloadListener Function( {required void Function( @@ -1169,6 +1236,7 @@ class MockAndroidWebViewProxy extends _i1.Mock String, int, ) onDownloadStart})); + @override _i9.Future setWebContentsDebuggingEnabled(bool? enabled) => (super.noSuchMethod( @@ -1199,6 +1267,7 @@ class MockAndroidWebViewWidgetCreationParams extends _i1.Mock Invocation.getter(#instanceManager), ), ) as _i5.InstanceManager); + @override _i6.PlatformViewsServiceProxy get platformViewsServiceProxy => (super.noSuchMethod( @@ -1212,12 +1281,14 @@ class MockAndroidWebViewWidgetCreationParams extends _i1.Mock Invocation.getter(#platformViewsServiceProxy), ), ) as _i6.PlatformViewsServiceProxy); + @override bool get displayWithHybridComposition => (super.noSuchMethod( Invocation.getter(#displayWithHybridComposition), returnValue: false, returnValueForMissingStub: false, ) as bool); + @override _i3.PlatformWebViewController get controller => (super.noSuchMethod( Invocation.getter(#controller), @@ -1230,12 +1301,7 @@ class MockAndroidWebViewWidgetCreationParams extends _i1.Mock Invocation.getter(#controller), ), ) as _i3.PlatformWebViewController); - @override - _i4.TextDirection get layoutDirection => (super.noSuchMethod( - Invocation.getter(#layoutDirection), - returnValue: _i4.TextDirection.rtl, - returnValueForMissingStub: _i4.TextDirection.rtl, - ) as _i4.TextDirection); + @override Set<_i11.Factory<_i12.OneSequenceGestureRecognizer>> get gestureRecognizers => (super.noSuchMethod( @@ -1257,18 +1323,21 @@ class MockExpensiveAndroidViewController extends _i1.Mock returnValue: false, returnValueForMissingStub: false, ) as bool); + @override int get viewId => (super.noSuchMethod( Invocation.getter(#viewId), returnValue: 0, returnValueForMissingStub: 0, ) as int); + @override bool get awaitingCreation => (super.noSuchMethod( Invocation.getter(#awaitingCreation), returnValue: false, returnValueForMissingStub: false, ) as bool); + @override _i7.PointTransformer get pointTransformer => (super.noSuchMethod( Invocation.getter(#pointTransformer), @@ -1281,6 +1350,7 @@ class MockExpensiveAndroidViewController extends _i1.Mock Invocation.getter(#pointTransformer), ), ) as _i7.PointTransformer); + @override set pointTransformer(_i7.PointTransformer? transformer) => super.noSuchMethod( Invocation.setter( @@ -1289,12 +1359,14 @@ class MockExpensiveAndroidViewController extends _i1.Mock ), returnValueForMissingStub: null, ); + @override bool get isCreated => (super.noSuchMethod( Invocation.getter(#isCreated), returnValue: false, returnValueForMissingStub: false, ) as bool); + @override List<_i7.PlatformViewCreatedCallback> get createdCallbacks => (super.noSuchMethod( @@ -1302,6 +1374,7 @@ class MockExpensiveAndroidViewController extends _i1.Mock returnValue: <_i7.PlatformViewCreatedCallback>[], returnValueForMissingStub: <_i7.PlatformViewCreatedCallback>[], ) as List<_i7.PlatformViewCreatedCallback>); + @override _i9.Future setOffset(_i4.Offset? off) => (super.noSuchMethod( Invocation.method( @@ -1311,6 +1384,7 @@ class MockExpensiveAndroidViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future create({ _i4.Size? size, @@ -1328,6 +1402,7 @@ class MockExpensiveAndroidViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future<_i4.Size> setSize(_i4.Size? size) => (super.noSuchMethod( Invocation.method( @@ -1349,6 +1424,7 @@ class MockExpensiveAndroidViewController extends _i1.Mock ), )), ) as _i9.Future<_i4.Size>); + @override _i9.Future sendMotionEvent(_i7.AndroidMotionEvent? event) => (super.noSuchMethod( @@ -1359,6 +1435,7 @@ class MockExpensiveAndroidViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override void addOnPlatformViewCreatedListener( _i7.PlatformViewCreatedCallback? listener) => @@ -1369,6 +1446,7 @@ class MockExpensiveAndroidViewController extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void removeOnPlatformViewCreatedListener( _i7.PlatformViewCreatedCallback? listener) => @@ -1379,6 +1457,7 @@ class MockExpensiveAndroidViewController extends _i1.Mock ), returnValueForMissingStub: null, ); + @override _i9.Future setLayoutDirection(_i4.TextDirection? layoutDirection) => (super.noSuchMethod( @@ -1389,6 +1468,7 @@ class MockExpensiveAndroidViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future dispatchPointerEvent(_i12.PointerEvent? event) => (super.noSuchMethod( @@ -1399,6 +1479,7 @@ class MockExpensiveAndroidViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future clearFocus() => (super.noSuchMethod( Invocation.method( @@ -1408,6 +1489,7 @@ class MockExpensiveAndroidViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future dispose() => (super.noSuchMethod( Invocation.method( @@ -1433,6 +1515,7 @@ class MockFlutterAssetManager extends _i1.Mock returnValue: _i9.Future>.value([]), returnValueForMissingStub: _i9.Future>.value([]), ) as _i9.Future>); + @override _i9.Future getAssetFilePathByName(String? name) => (super.noSuchMethod( @@ -1455,12 +1538,14 @@ class MockJavaScriptChannel extends _i1.Mock implements _i2.JavaScriptChannel { returnValue: '', returnValueForMissingStub: '', ) as String); + @override void Function(String) get postMessage => (super.noSuchMethod( Invocation.getter(#postMessage), returnValue: (String message) {}, returnValueForMissingStub: (String message) {}, ) as void Function(String)); + @override _i2.JavaScriptChannel copy() => (super.noSuchMethod( Invocation.method( @@ -1494,6 +1579,7 @@ class MockPermissionRequest extends _i1.Mock implements _i2.PermissionRequest { returnValue: [], returnValueForMissingStub: [], ) as List); + @override _i9.Future grant(List? resources) => (super.noSuchMethod( Invocation.method( @@ -1503,6 +1589,7 @@ class MockPermissionRequest extends _i1.Mock implements _i2.PermissionRequest { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future deny() => (super.noSuchMethod( Invocation.method( @@ -1512,6 +1599,7 @@ class MockPermissionRequest extends _i1.Mock implements _i2.PermissionRequest { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i2.PermissionRequest copy() => (super.noSuchMethod( Invocation.method( @@ -1594,6 +1682,7 @@ class MockPlatformViewsServiceProxy extends _i1.Mock ), ), ) as _i7.ExpensiveAndroidViewController); + @override _i7.SurfaceAndroidViewController initSurfaceAndroidView({ required int? id, @@ -1660,18 +1749,21 @@ class MockSurfaceAndroidViewController extends _i1.Mock returnValue: false, returnValueForMissingStub: false, ) as bool); + @override int get viewId => (super.noSuchMethod( Invocation.getter(#viewId), returnValue: 0, returnValueForMissingStub: 0, ) as int); + @override bool get awaitingCreation => (super.noSuchMethod( Invocation.getter(#awaitingCreation), returnValue: false, returnValueForMissingStub: false, ) as bool); + @override _i7.PointTransformer get pointTransformer => (super.noSuchMethod( Invocation.getter(#pointTransformer), @@ -1684,6 +1776,7 @@ class MockSurfaceAndroidViewController extends _i1.Mock Invocation.getter(#pointTransformer), ), ) as _i7.PointTransformer); + @override set pointTransformer(_i7.PointTransformer? transformer) => super.noSuchMethod( Invocation.setter( @@ -1692,12 +1785,14 @@ class MockSurfaceAndroidViewController extends _i1.Mock ), returnValueForMissingStub: null, ); + @override bool get isCreated => (super.noSuchMethod( Invocation.getter(#isCreated), returnValue: false, returnValueForMissingStub: false, ) as bool); + @override List<_i7.PlatformViewCreatedCallback> get createdCallbacks => (super.noSuchMethod( @@ -1705,6 +1800,7 @@ class MockSurfaceAndroidViewController extends _i1.Mock returnValue: <_i7.PlatformViewCreatedCallback>[], returnValueForMissingStub: <_i7.PlatformViewCreatedCallback>[], ) as List<_i7.PlatformViewCreatedCallback>); + @override _i9.Future setOffset(_i4.Offset? off) => (super.noSuchMethod( Invocation.method( @@ -1714,6 +1810,7 @@ class MockSurfaceAndroidViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future create({ _i4.Size? size, @@ -1731,6 +1828,7 @@ class MockSurfaceAndroidViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future<_i4.Size> setSize(_i4.Size? size) => (super.noSuchMethod( Invocation.method( @@ -1752,6 +1850,7 @@ class MockSurfaceAndroidViewController extends _i1.Mock ), )), ) as _i9.Future<_i4.Size>); + @override _i9.Future sendMotionEvent(_i7.AndroidMotionEvent? event) => (super.noSuchMethod( @@ -1762,6 +1861,7 @@ class MockSurfaceAndroidViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override void addOnPlatformViewCreatedListener( _i7.PlatformViewCreatedCallback? listener) => @@ -1772,6 +1872,7 @@ class MockSurfaceAndroidViewController extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void removeOnPlatformViewCreatedListener( _i7.PlatformViewCreatedCallback? listener) => @@ -1782,6 +1883,7 @@ class MockSurfaceAndroidViewController extends _i1.Mock ), returnValueForMissingStub: null, ); + @override _i9.Future setLayoutDirection(_i4.TextDirection? layoutDirection) => (super.noSuchMethod( @@ -1792,6 +1894,7 @@ class MockSurfaceAndroidViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future dispatchPointerEvent(_i12.PointerEvent? event) => (super.noSuchMethod( @@ -1802,6 +1905,7 @@ class MockSurfaceAndroidViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future clearFocus() => (super.noSuchMethod( Invocation.method( @@ -1811,6 +1915,7 @@ class MockSurfaceAndroidViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future dispose() => (super.noSuchMethod( Invocation.method( @@ -1836,6 +1941,7 @@ class MockWebChromeClient extends _i1.Mock implements _i2.WebChromeClient { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setSynchronousReturnValueForOnConsoleMessage(bool? value) => (super.noSuchMethod( @@ -1846,6 +1952,7 @@ class MockWebChromeClient extends _i1.Mock implements _i2.WebChromeClient { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i2.WebChromeClient copy() => (super.noSuchMethod( Invocation.method( @@ -1882,6 +1989,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setJavaScriptCanOpenWindowsAutomatically(bool? flag) => (super.noSuchMethod( @@ -1892,6 +2000,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setSupportMultipleWindows(bool? support) => (super.noSuchMethod( @@ -1902,6 +2011,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setJavaScriptEnabled(bool? flag) => (super.noSuchMethod( Invocation.method( @@ -1911,6 +2021,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setUserAgentString(String? userAgentString) => (super.noSuchMethod( @@ -1921,6 +2032,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setMediaPlaybackRequiresUserGesture(bool? require) => (super.noSuchMethod( @@ -1931,6 +2043,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setSupportZoom(bool? support) => (super.noSuchMethod( Invocation.method( @@ -1940,6 +2053,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setLoadWithOverviewMode(bool? overview) => (super.noSuchMethod( @@ -1950,6 +2064,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setUseWideViewPort(bool? use) => (super.noSuchMethod( Invocation.method( @@ -1959,6 +2074,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setDisplayZoomControls(bool? enabled) => (super.noSuchMethod( Invocation.method( @@ -1968,6 +2084,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setBuiltInZoomControls(bool? enabled) => (super.noSuchMethod( Invocation.method( @@ -1977,6 +2094,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setAllowFileAccess(bool? enabled) => (super.noSuchMethod( Invocation.method( @@ -1986,6 +2104,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setTextZoom(int? textZoom) => (super.noSuchMethod( Invocation.method( @@ -1995,6 +2114,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future getUserAgentString() => (super.noSuchMethod( Invocation.method( @@ -2004,6 +2124,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i9.Future.value(''), returnValueForMissingStub: _i9.Future.value(''), ) as _i9.Future); + @override _i2.WebSettings copy() => (super.noSuchMethod( Invocation.method( @@ -2043,6 +2164,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { Invocation.getter(#settings), ), ) as _i2.WebSettings); + @override _i9.Future loadData({ required String? data, @@ -2062,6 +2184,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future loadDataWithBaseUrl({ String? baseUrl, @@ -2085,6 +2208,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future loadUrl( String? url, @@ -2101,6 +2225,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future postUrl( String? url, @@ -2117,6 +2242,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future getUrl() => (super.noSuchMethod( Invocation.method( @@ -2126,6 +2252,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future canGoBack() => (super.noSuchMethod( Invocation.method( @@ -2135,6 +2262,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(false), returnValueForMissingStub: _i9.Future.value(false), ) as _i9.Future); + @override _i9.Future canGoForward() => (super.noSuchMethod( Invocation.method( @@ -2144,6 +2272,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(false), returnValueForMissingStub: _i9.Future.value(false), ) as _i9.Future); + @override _i9.Future goBack() => (super.noSuchMethod( Invocation.method( @@ -2153,6 +2282,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future goForward() => (super.noSuchMethod( Invocation.method( @@ -2162,6 +2292,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future reload() => (super.noSuchMethod( Invocation.method( @@ -2171,6 +2302,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future clearCache(bool? includeDiskFiles) => (super.noSuchMethod( Invocation.method( @@ -2180,6 +2312,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future evaluateJavascript(String? javascriptString) => (super.noSuchMethod( @@ -2190,6 +2323,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future getTitle() => (super.noSuchMethod( Invocation.method( @@ -2199,6 +2333,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future scrollTo( int? x, @@ -2215,6 +2350,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future scrollBy( int? x, @@ -2231,6 +2367,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future getScrollX() => (super.noSuchMethod( Invocation.method( @@ -2240,6 +2377,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(0), returnValueForMissingStub: _i9.Future.value(0), ) as _i9.Future); + @override _i9.Future getScrollY() => (super.noSuchMethod( Invocation.method( @@ -2249,6 +2387,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(0), returnValueForMissingStub: _i9.Future.value(0), ) as _i9.Future); + @override _i9.Future<_i4.Offset> getScrollPosition() => (super.noSuchMethod( Invocation.method( @@ -2270,6 +2409,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), )), ) as _i9.Future<_i4.Offset>); + @override _i9.Future setWebViewClient(_i2.WebViewClient? webViewClient) => (super.noSuchMethod( @@ -2280,6 +2420,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future addJavaScriptChannel( _i2.JavaScriptChannel? javaScriptChannel) => @@ -2291,6 +2432,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future removeJavaScriptChannel( _i2.JavaScriptChannel? javaScriptChannel) => @@ -2302,6 +2444,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setDownloadListener(_i2.DownloadListener? listener) => (super.noSuchMethod( @@ -2312,6 +2455,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setWebChromeClient(_i2.WebChromeClient? client) => (super.noSuchMethod( @@ -2322,6 +2466,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i9.Future setBackgroundColor(_i4.Color? color) => (super.noSuchMethod( Invocation.method( @@ -2331,6 +2476,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i2.WebView copy() => (super.noSuchMethod( Invocation.method( @@ -2369,6 +2515,7 @@ class MockWebViewClient extends _i1.Mock implements _i2.WebViewClient { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i2.WebViewClient copy() => (super.noSuchMethod( Invocation.method( @@ -2405,6 +2552,7 @@ class MockWebStorage extends _i1.Mock implements _i2.WebStorage { returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); + @override _i2.WebStorage copy() => (super.noSuchMethod( Invocation.method( @@ -2438,6 +2586,7 @@ class MockInstanceManager extends _i1.Mock implements _i5.InstanceManager { returnValue: (int __p0) {}, returnValueForMissingStub: (int __p0) {}, ) as void Function(int)); + @override set onWeakReferenceRemoved(void Function(int)? _onWeakReferenceRemoved) => super.noSuchMethod( @@ -2447,6 +2596,7 @@ class MockInstanceManager extends _i1.Mock implements _i5.InstanceManager { ), returnValueForMissingStub: null, ); + @override int addDartCreatedInstance(_i5.Copyable? instance) => (super.noSuchMethod( Invocation.method( @@ -2456,6 +2606,7 @@ class MockInstanceManager extends _i1.Mock implements _i5.InstanceManager { returnValue: 0, returnValueForMissingStub: 0, ) as int); + @override int? removeWeakReference(_i5.Copyable? instance) => (super.noSuchMethod( Invocation.method( @@ -2464,6 +2615,7 @@ class MockInstanceManager extends _i1.Mock implements _i5.InstanceManager { ), returnValueForMissingStub: null, ) as int?); + @override T? remove(int? identifier) => (super.noSuchMethod( Invocation.method( @@ -2472,6 +2624,7 @@ class MockInstanceManager extends _i1.Mock implements _i5.InstanceManager { ), returnValueForMissingStub: null, ) as T?); + @override T? getInstanceWithWeakReference(int? identifier) => (super.noSuchMethod( @@ -2481,6 +2634,7 @@ class MockInstanceManager extends _i1.Mock implements _i5.InstanceManager { ), returnValueForMissingStub: null, ) as T?); + @override int? getIdentifier(_i5.Copyable? instance) => (super.noSuchMethod( Invocation.method( @@ -2489,6 +2643,7 @@ class MockInstanceManager extends _i1.Mock implements _i5.InstanceManager { ), returnValueForMissingStub: null, ) as int?); + @override void addHostCreatedInstance( _i5.Copyable? instance, @@ -2504,6 +2659,7 @@ class MockInstanceManager extends _i1.Mock implements _i5.InstanceManager { ), returnValueForMissingStub: null, ); + @override bool containsIdentifier(int? identifier) => (super.noSuchMethod( Invocation.method( diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_cookie_manager_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_cookie_manager_test.mocks.dart index e3055da9238..c6d3679bf50 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_cookie_manager_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_cookie_manager_test.mocks.dart @@ -93,6 +93,7 @@ class MockCookieManager extends _i1.Mock implements _i2.CookieManager { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future removeAllCookies() => (super.noSuchMethod( Invocation.method( @@ -101,6 +102,7 @@ class MockCookieManager extends _i1.Mock implements _i2.CookieManager { ), returnValue: _i5.Future.value(false), ) as _i5.Future); + @override _i5.Future setAcceptThirdPartyCookies( _i2.WebView? webView, @@ -117,6 +119,7 @@ class MockCookieManager extends _i1.Mock implements _i2.CookieManager { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i2.CookieManager copy() => (super.noSuchMethod( Invocation.method( @@ -147,6 +150,7 @@ class MockAndroidWebViewController extends _i1.Mock Invocation.getter(#webViewIdentifier), returnValue: 0, ) as int); + @override _i3.PlatformWebViewControllerCreationParams get params => (super.noSuchMethod( Invocation.getter(#params), @@ -155,6 +159,7 @@ class MockAndroidWebViewController extends _i1.Mock Invocation.getter(#params), ), ) as _i3.PlatformWebViewControllerCreationParams); + @override _i5.Future loadFile(String? absoluteFilePath) => (super.noSuchMethod( Invocation.method( @@ -164,6 +169,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future loadFlutterAsset(String? key) => (super.noSuchMethod( Invocation.method( @@ -173,6 +179,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future loadHtmlString( String? html, { @@ -187,6 +194,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future loadRequest(_i3.LoadRequestParams? params) => (super.noSuchMethod( @@ -197,6 +205,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future currentUrl() => (super.noSuchMethod( Invocation.method( @@ -205,6 +214,7 @@ class MockAndroidWebViewController extends _i1.Mock ), returnValue: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future canGoBack() => (super.noSuchMethod( Invocation.method( @@ -213,6 +223,7 @@ class MockAndroidWebViewController extends _i1.Mock ), returnValue: _i5.Future.value(false), ) as _i5.Future); + @override _i5.Future canGoForward() => (super.noSuchMethod( Invocation.method( @@ -221,6 +232,7 @@ class MockAndroidWebViewController extends _i1.Mock ), returnValue: _i5.Future.value(false), ) as _i5.Future); + @override _i5.Future goBack() => (super.noSuchMethod( Invocation.method( @@ -230,6 +242,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future goForward() => (super.noSuchMethod( Invocation.method( @@ -239,6 +252,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future reload() => (super.noSuchMethod( Invocation.method( @@ -248,6 +262,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future clearCache() => (super.noSuchMethod( Invocation.method( @@ -257,6 +272,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future clearLocalStorage() => (super.noSuchMethod( Invocation.method( @@ -266,6 +282,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setPlatformNavigationDelegate( _i3.PlatformNavigationDelegate? handler) => @@ -277,6 +294,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future runJavaScript(String? javaScript) => (super.noSuchMethod( Invocation.method( @@ -286,6 +304,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future runJavaScriptReturningResult(String? javaScript) => (super.noSuchMethod( @@ -301,6 +320,7 @@ class MockAndroidWebViewController extends _i1.Mock ), )), ) as _i5.Future); + @override _i5.Future addJavaScriptChannel( _i3.JavaScriptChannelParams? javaScriptChannelParams) => @@ -312,6 +332,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future removeJavaScriptChannel(String? javaScriptChannelName) => (super.noSuchMethod( @@ -322,6 +343,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future getTitle() => (super.noSuchMethod( Invocation.method( @@ -330,6 +352,7 @@ class MockAndroidWebViewController extends _i1.Mock ), returnValue: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future scrollTo( int? x, @@ -346,6 +369,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future scrollBy( int? x, @@ -362,6 +386,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future<_i4.Offset> getScrollPosition() => (super.noSuchMethod( Invocation.method( @@ -376,6 +401,7 @@ class MockAndroidWebViewController extends _i1.Mock ), )), ) as _i5.Future<_i4.Offset>); + @override _i5.Future enableZoom(bool? enabled) => (super.noSuchMethod( Invocation.method( @@ -385,6 +411,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setBackgroundColor(_i4.Color? color) => (super.noSuchMethod( Invocation.method( @@ -394,6 +421,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setJavaScriptMode(_i3.JavaScriptMode? javaScriptMode) => (super.noSuchMethod( @@ -404,6 +432,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setUserAgent(String? userAgent) => (super.noSuchMethod( Invocation.method( @@ -413,6 +442,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setOnScrollPositionChange( void Function(_i3.ScrollPositionChange)? onScrollPositionChange) => @@ -424,6 +454,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setMediaPlaybackRequiresUserGesture(bool? require) => (super.noSuchMethod( @@ -434,6 +465,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setTextZoom(int? textZoom) => (super.noSuchMethod( Invocation.method( @@ -443,6 +475,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setOnShowFileSelector( _i5.Future> Function(_i6.FileSelectorParams)? @@ -455,6 +488,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setOnPlatformPermissionRequest( void Function(_i3.PlatformWebViewPermissionRequest)? @@ -467,6 +501,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setGeolocationPermissionsPromptCallbacks({ _i6.OnGeolocationPermissionsShowPrompt? onShowPrompt, @@ -484,6 +519,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setCustomWidgetCallbacks({ required _i6.OnShowCustomWidgetCallback? onShowCustomWidget, @@ -501,6 +537,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setOnConsoleMessage( void Function(_i3.JavaScriptConsoleMessage)? onConsoleMessage) => @@ -512,6 +549,7 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future getUserAgent() => (super.noSuchMethod( Invocation.method( diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart index 4a6130f13ad..0928486956d 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_test.mocks.dart @@ -128,6 +128,7 @@ class MockCookieManagerHostApi extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setCookie( int? arg_identifier, @@ -146,6 +147,7 @@ class MockCookieManagerHostApi extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future removeAllCookies(int? arg_identifier) => (super.noSuchMethod( Invocation.method( @@ -154,6 +156,7 @@ class MockCookieManagerHostApi extends _i1.Mock ), returnValue: _i5.Future.value(false), ) as _i5.Future); + @override _i5.Future setAcceptThirdPartyCookies( int? arg_identifier, @@ -205,6 +208,7 @@ class MockDownloadListener extends _i1.Mock implements _i2.DownloadListener { String, int, )); + @override _i2.DownloadListener copy() => (super.noSuchMethod( Invocation.method( @@ -234,11 +238,13 @@ class MockJavaScriptChannel extends _i1.Mock implements _i2.JavaScriptChannel { Invocation.getter(#channelName), returnValue: '', ) as String); + @override void Function(String) get postMessage => (super.noSuchMethod( Invocation.getter(#postMessage), returnValue: (String message) {}, ) as void Function(String)); + @override _i2.JavaScriptChannel copy() => (super.noSuchMethod( Invocation.method( @@ -272,6 +278,7 @@ class MockTestCookieManagerHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setCookie( int? identifier, @@ -289,6 +296,7 @@ class MockTestCookieManagerHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override _i5.Future removeAllCookies(int? identifier) => (super.noSuchMethod( Invocation.method( @@ -297,6 +305,7 @@ class MockTestCookieManagerHostApi extends _i1.Mock ), returnValue: _i5.Future.value(false), ) as _i5.Future); + @override void setAcceptThirdPartyCookies( int? identifier, @@ -465,6 +474,7 @@ class MockTestWebChromeClientHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setSynchronousReturnValueForOnShowFileChooser( int? instanceId, @@ -480,6 +490,7 @@ class MockTestWebChromeClientHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setSynchronousReturnValueForOnConsoleMessage( int? instanceId, @@ -521,6 +532,7 @@ class MockTestWebSettingsHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setDomStorageEnabled( int? instanceId, @@ -536,6 +548,7 @@ class MockTestWebSettingsHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setJavaScriptCanOpenWindowsAutomatically( int? instanceId, @@ -551,6 +564,7 @@ class MockTestWebSettingsHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setSupportMultipleWindows( int? instanceId, @@ -566,6 +580,7 @@ class MockTestWebSettingsHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setJavaScriptEnabled( int? instanceId, @@ -581,6 +596,7 @@ class MockTestWebSettingsHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setUserAgentString( int? instanceId, @@ -596,6 +612,7 @@ class MockTestWebSettingsHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setMediaPlaybackRequiresUserGesture( int? instanceId, @@ -611,6 +628,7 @@ class MockTestWebSettingsHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setSupportZoom( int? instanceId, @@ -626,6 +644,7 @@ class MockTestWebSettingsHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setLoadWithOverviewMode( int? instanceId, @@ -641,6 +660,7 @@ class MockTestWebSettingsHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setUseWideViewPort( int? instanceId, @@ -656,6 +676,7 @@ class MockTestWebSettingsHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setDisplayZoomControls( int? instanceId, @@ -671,6 +692,7 @@ class MockTestWebSettingsHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setBuiltInZoomControls( int? instanceId, @@ -686,6 +708,7 @@ class MockTestWebSettingsHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setAllowFileAccess( int? instanceId, @@ -701,6 +724,7 @@ class MockTestWebSettingsHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setTextZoom( int? instanceId, @@ -716,6 +740,7 @@ class MockTestWebSettingsHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override String getUserAgentString(int? instanceId) => (super.noSuchMethod( Invocation.method( @@ -743,6 +768,7 @@ class MockTestWebStorageHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void deleteAllData(int? instanceId) => super.noSuchMethod( Invocation.method( @@ -770,6 +796,7 @@ class MockTestWebViewClientHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setSynchronousReturnValueForShouldOverrideUrlLoading( int? instanceId, @@ -804,6 +831,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void loadData( int? instanceId, @@ -823,6 +851,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void loadDataWithBaseUrl( int? instanceId, @@ -846,6 +875,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void loadUrl( int? instanceId, @@ -863,6 +893,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void postUrl( int? instanceId, @@ -880,11 +911,13 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override String? getUrl(int? instanceId) => (super.noSuchMethod(Invocation.method( #getUrl, [instanceId], )) as String?); + @override bool canGoBack(int? instanceId) => (super.noSuchMethod( Invocation.method( @@ -893,6 +926,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValue: false, ) as bool); + @override bool canGoForward(int? instanceId) => (super.noSuchMethod( Invocation.method( @@ -901,6 +935,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValue: false, ) as bool); + @override void goBack(int? instanceId) => super.noSuchMethod( Invocation.method( @@ -909,6 +944,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void goForward(int? instanceId) => super.noSuchMethod( Invocation.method( @@ -917,6 +953,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void reload(int? instanceId) => super.noSuchMethod( Invocation.method( @@ -925,6 +962,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void clearCache( int? instanceId, @@ -940,6 +978,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override _i5.Future evaluateJavascript( int? instanceId, @@ -955,11 +994,13 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValue: _i5.Future.value(), ) as _i5.Future); + @override String? getTitle(int? instanceId) => (super.noSuchMethod(Invocation.method( #getTitle, [instanceId], )) as String?); + @override void scrollTo( int? instanceId, @@ -977,6 +1018,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void scrollBy( int? instanceId, @@ -994,6 +1036,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override int getScrollX(int? instanceId) => (super.noSuchMethod( Invocation.method( @@ -1002,6 +1045,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValue: 0, ) as int); + @override int getScrollY(int? instanceId) => (super.noSuchMethod( Invocation.method( @@ -1010,6 +1054,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValue: 0, ) as int); + @override _i3.WebViewPoint getScrollPosition(int? instanceId) => (super.noSuchMethod( Invocation.method( @@ -1024,6 +1069,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), ), ) as _i3.WebViewPoint); + @override void setWebContentsDebuggingEnabled(bool? enabled) => super.noSuchMethod( Invocation.method( @@ -1032,6 +1078,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setWebViewClient( int? instanceId, @@ -1047,6 +1094,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void addJavaScriptChannel( int? instanceId, @@ -1062,6 +1110,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void removeJavaScriptChannel( int? instanceId, @@ -1077,6 +1126,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setDownloadListener( int? instanceId, @@ -1092,6 +1142,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setWebChromeClient( int? instanceId, @@ -1107,6 +1158,7 @@ class MockTestWebViewHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void setBackgroundColor( int? instanceId, @@ -1141,6 +1193,7 @@ class MockTestAssetManagerHostApi extends _i1.Mock ), returnValue: [], ) as List); + @override String getAssetFilePathByName(String? name) => (super.noSuchMethod( Invocation.method( @@ -1175,6 +1228,7 @@ class MockTestPermissionRequestHostApi extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void deny(int? instanceId) => super.noSuchMethod( Invocation.method( @@ -1203,6 +1257,7 @@ class MockWebChromeClient extends _i1.Mock implements _i2.WebChromeClient { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setSynchronousReturnValueForOnConsoleMessage(bool? value) => (super.noSuchMethod( @@ -1213,6 +1268,7 @@ class MockWebChromeClient extends _i1.Mock implements _i2.WebChromeClient { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i2.WebChromeClient copy() => (super.noSuchMethod( Invocation.method( @@ -1245,6 +1301,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { Invocation.getter(#settings), ), ) as _i2.WebSettings); + @override _i5.Future loadData({ required String? data, @@ -1264,6 +1321,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future loadDataWithBaseUrl({ String? baseUrl, @@ -1287,6 +1345,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future loadUrl( String? url, @@ -1303,6 +1362,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future postUrl( String? url, @@ -1319,6 +1379,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future getUrl() => (super.noSuchMethod( Invocation.method( @@ -1327,6 +1388,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), returnValue: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future canGoBack() => (super.noSuchMethod( Invocation.method( @@ -1335,6 +1397,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), returnValue: _i5.Future.value(false), ) as _i5.Future); + @override _i5.Future canGoForward() => (super.noSuchMethod( Invocation.method( @@ -1343,6 +1406,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), returnValue: _i5.Future.value(false), ) as _i5.Future); + @override _i5.Future goBack() => (super.noSuchMethod( Invocation.method( @@ -1352,6 +1416,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future goForward() => (super.noSuchMethod( Invocation.method( @@ -1361,6 +1426,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future reload() => (super.noSuchMethod( Invocation.method( @@ -1370,6 +1436,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future clearCache(bool? includeDiskFiles) => (super.noSuchMethod( Invocation.method( @@ -1379,6 +1446,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future evaluateJavascript(String? javascriptString) => (super.noSuchMethod( @@ -1388,6 +1456,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), returnValue: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future getTitle() => (super.noSuchMethod( Invocation.method( @@ -1396,6 +1465,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), returnValue: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future scrollTo( int? x, @@ -1412,6 +1482,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future scrollBy( int? x, @@ -1428,6 +1499,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future getScrollX() => (super.noSuchMethod( Invocation.method( @@ -1436,6 +1508,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), returnValue: _i5.Future.value(0), ) as _i5.Future); + @override _i5.Future getScrollY() => (super.noSuchMethod( Invocation.method( @@ -1444,6 +1517,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), returnValue: _i5.Future.value(0), ) as _i5.Future); + @override _i5.Future<_i4.Offset> getScrollPosition() => (super.noSuchMethod( Invocation.method( @@ -1458,6 +1532,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), )), ) as _i5.Future<_i4.Offset>); + @override _i5.Future setWebViewClient(_i2.WebViewClient? webViewClient) => (super.noSuchMethod( @@ -1468,6 +1543,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future addJavaScriptChannel( _i2.JavaScriptChannel? javaScriptChannel) => @@ -1479,6 +1555,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future removeJavaScriptChannel( _i2.JavaScriptChannel? javaScriptChannel) => @@ -1490,6 +1567,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setDownloadListener(_i2.DownloadListener? listener) => (super.noSuchMethod( @@ -1500,6 +1578,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setWebChromeClient(_i2.WebChromeClient? client) => (super.noSuchMethod( @@ -1510,6 +1589,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setBackgroundColor(_i4.Color? color) => (super.noSuchMethod( Invocation.method( @@ -1519,6 +1599,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i2.WebView copy() => (super.noSuchMethod( Invocation.method( @@ -1554,6 +1635,7 @@ class MockWebViewClient extends _i1.Mock implements _i2.WebViewClient { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i2.WebViewClient copy() => (super.noSuchMethod( Invocation.method( diff --git a/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_cookie_manager_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_cookie_manager_test.mocks.dart index df06f625227..cb453ddb6b1 100644 --- a/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_cookie_manager_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_cookie_manager_test.mocks.dart @@ -55,6 +55,7 @@ class MockCookieManager extends _i1.Mock implements _i2.CookieManager { returnValue: _i3.Future.value(), returnValueForMissingStub: _i3.Future.value(), ) as _i3.Future); + @override _i3.Future removeAllCookies() => (super.noSuchMethod( Invocation.method( @@ -63,6 +64,7 @@ class MockCookieManager extends _i1.Mock implements _i2.CookieManager { ), returnValue: _i3.Future.value(false), ) as _i3.Future); + @override _i3.Future setAcceptThirdPartyCookies( _i2.WebView? webView, @@ -79,6 +81,7 @@ class MockCookieManager extends _i1.Mock implements _i2.CookieManager { returnValue: _i3.Future.value(), returnValueForMissingStub: _i3.Future.value(), ) as _i3.Future); + @override _i2.CookieManager copy() => (super.noSuchMethod( Invocation.method( diff --git a/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart index 19e03b393bd..f83d2eaee74 100644 --- a/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/legacy/webview_android_widget_test.mocks.dart @@ -138,6 +138,7 @@ class MockFlutterAssetManager extends _i1.Mock ), returnValue: _i5.Future>.value([]), ) as _i5.Future>); + @override _i5.Future getAssetFilePathByName(String? name) => (super.noSuchMethod( @@ -166,6 +167,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setJavaScriptCanOpenWindowsAutomatically(bool? flag) => (super.noSuchMethod( @@ -176,6 +178,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setSupportMultipleWindows(bool? support) => (super.noSuchMethod( @@ -186,6 +189,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setJavaScriptEnabled(bool? flag) => (super.noSuchMethod( Invocation.method( @@ -195,6 +199,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setUserAgentString(String? userAgentString) => (super.noSuchMethod( @@ -205,6 +210,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setMediaPlaybackRequiresUserGesture(bool? require) => (super.noSuchMethod( @@ -215,6 +221,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setSupportZoom(bool? support) => (super.noSuchMethod( Invocation.method( @@ -224,6 +231,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setLoadWithOverviewMode(bool? overview) => (super.noSuchMethod( @@ -234,6 +242,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setUseWideViewPort(bool? use) => (super.noSuchMethod( Invocation.method( @@ -243,6 +252,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setDisplayZoomControls(bool? enabled) => (super.noSuchMethod( Invocation.method( @@ -252,6 +262,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setBuiltInZoomControls(bool? enabled) => (super.noSuchMethod( Invocation.method( @@ -261,6 +272,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setAllowFileAccess(bool? enabled) => (super.noSuchMethod( Invocation.method( @@ -270,6 +282,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setTextZoom(int? textZoom) => (super.noSuchMethod( Invocation.method( @@ -279,6 +292,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future getUserAgentString() => (super.noSuchMethod( Invocation.method( @@ -287,6 +301,7 @@ class MockWebSettings extends _i1.Mock implements _i2.WebSettings { ), returnValue: _i5.Future.value(''), ) as _i5.Future); + @override _i2.WebSettings copy() => (super.noSuchMethod( Invocation.method( @@ -320,6 +335,7 @@ class MockWebStorage extends _i1.Mock implements _i2.WebStorage { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i2.WebStorage copy() => (super.noSuchMethod( Invocation.method( @@ -352,6 +368,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { Invocation.getter(#settings), ), ) as _i2.WebSettings); + @override _i5.Future loadData({ required String? data, @@ -371,6 +388,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future loadDataWithBaseUrl({ String? baseUrl, @@ -394,6 +412,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future loadUrl( String? url, @@ -410,6 +429,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future postUrl( String? url, @@ -426,6 +446,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future getUrl() => (super.noSuchMethod( Invocation.method( @@ -434,6 +455,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), returnValue: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future canGoBack() => (super.noSuchMethod( Invocation.method( @@ -442,6 +464,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), returnValue: _i5.Future.value(false), ) as _i5.Future); + @override _i5.Future canGoForward() => (super.noSuchMethod( Invocation.method( @@ -450,6 +473,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), returnValue: _i5.Future.value(false), ) as _i5.Future); + @override _i5.Future goBack() => (super.noSuchMethod( Invocation.method( @@ -459,6 +483,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future goForward() => (super.noSuchMethod( Invocation.method( @@ -468,6 +493,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future reload() => (super.noSuchMethod( Invocation.method( @@ -477,6 +503,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future clearCache(bool? includeDiskFiles) => (super.noSuchMethod( Invocation.method( @@ -486,6 +513,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future evaluateJavascript(String? javascriptString) => (super.noSuchMethod( @@ -495,6 +523,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), returnValue: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future getTitle() => (super.noSuchMethod( Invocation.method( @@ -503,6 +532,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), returnValue: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future scrollTo( int? x, @@ -519,6 +549,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future scrollBy( int? x, @@ -535,6 +566,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future getScrollX() => (super.noSuchMethod( Invocation.method( @@ -543,6 +575,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), returnValue: _i5.Future.value(0), ) as _i5.Future); + @override _i5.Future getScrollY() => (super.noSuchMethod( Invocation.method( @@ -551,6 +584,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), returnValue: _i5.Future.value(0), ) as _i5.Future); + @override _i5.Future<_i3.Offset> getScrollPosition() => (super.noSuchMethod( Invocation.method( @@ -565,6 +599,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { ), )), ) as _i5.Future<_i3.Offset>); + @override _i5.Future setWebViewClient(_i2.WebViewClient? webViewClient) => (super.noSuchMethod( @@ -575,6 +610,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future addJavaScriptChannel( _i2.JavaScriptChannel? javaScriptChannel) => @@ -586,6 +622,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future removeJavaScriptChannel( _i2.JavaScriptChannel? javaScriptChannel) => @@ -597,6 +634,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setDownloadListener(_i2.DownloadListener? listener) => (super.noSuchMethod( @@ -607,6 +645,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setWebChromeClient(_i2.WebChromeClient? client) => (super.noSuchMethod( @@ -617,6 +656,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setBackgroundColor(_i3.Color? color) => (super.noSuchMethod( Invocation.method( @@ -626,6 +666,7 @@ class MockWebView extends _i1.Mock implements _i2.WebView { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i2.WebView copy() => (super.noSuchMethod( Invocation.method( @@ -656,21 +697,25 @@ class MockWebResourceRequest extends _i1.Mock Invocation.getter(#url), returnValue: '', ) as String); + @override bool get isForMainFrame => (super.noSuchMethod( Invocation.getter(#isForMainFrame), returnValue: false, ) as bool); + @override bool get hasGesture => (super.noSuchMethod( Invocation.getter(#hasGesture), returnValue: false, ) as bool); + @override String get method => (super.noSuchMethod( Invocation.getter(#method), returnValue: '', ) as String); + @override Map get requestHeaders => (super.noSuchMethod( Invocation.getter(#requestHeaders), @@ -709,6 +754,7 @@ class MockDownloadListener extends _i1.Mock implements _i2.DownloadListener { String, int, )); + @override _i2.DownloadListener copy() => (super.noSuchMethod( Invocation.method( @@ -743,16 +789,19 @@ class MockWebViewAndroidJavaScriptChannel extends _i1.Mock Invocation.getter(#javascriptChannelRegistry), ), ) as _i4.JavascriptChannelRegistry); + @override String get channelName => (super.noSuchMethod( Invocation.getter(#channelName), returnValue: '', ) as String); + @override void Function(String) get postMessage => (super.noSuchMethod( Invocation.getter(#postMessage), returnValue: (String message) {}, ) as void Function(String)); + @override _i2.JavaScriptChannel copy() => (super.noSuchMethod( Invocation.method( @@ -787,6 +836,7 @@ class MockWebChromeClient extends _i1.Mock implements _i2.WebChromeClient { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i5.Future setSynchronousReturnValueForOnConsoleMessage(bool? value) => (super.noSuchMethod( @@ -797,6 +847,7 @@ class MockWebChromeClient extends _i1.Mock implements _i2.WebChromeClient { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i2.WebChromeClient copy() => (super.noSuchMethod( Invocation.method( @@ -832,6 +883,7 @@ class MockWebViewClient extends _i1.Mock implements _i2.WebViewClient { returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override _i2.WebViewClient copy() => (super.noSuchMethod( Invocation.method( @@ -862,6 +914,7 @@ class MockJavascriptChannelRegistry extends _i1.Mock Invocation.getter(#channels), returnValue: {}, ) as Map); + @override void onJavascriptChannelMessage( String? channel, @@ -877,6 +930,7 @@ class MockJavascriptChannelRegistry extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void updateJavascriptChannelsFromSet(Set<_i4.JavascriptChannel>? channels) => super.noSuchMethod( @@ -913,6 +967,7 @@ class MockWebViewPlatformCallbacksHandler extends _i1.Mock ), returnValue: _i5.Future.value(false), ) as _i5.FutureOr); + @override void onPageStarted(String? url) => super.noSuchMethod( Invocation.method( @@ -921,6 +976,7 @@ class MockWebViewPlatformCallbacksHandler extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void onPageFinished(String? url) => super.noSuchMethod( Invocation.method( @@ -929,6 +985,7 @@ class MockWebViewPlatformCallbacksHandler extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void onProgress(int? progress) => super.noSuchMethod( Invocation.method( @@ -937,6 +994,7 @@ class MockWebViewPlatformCallbacksHandler extends _i1.Mock ), returnValueForMissingStub: null, ); + @override void onWebResourceError(_i4.WebResourceError? error) => super.noSuchMethod( Invocation.method( @@ -969,6 +1027,7 @@ class MockWebViewProxy extends _i1.Mock implements _i7.WebViewProxy { ), ), ) as _i2.WebView); + @override _i2.WebViewClient createWebViewClient({ void Function( @@ -1028,6 +1087,7 @@ class MockWebViewProxy extends _i1.Mock implements _i7.WebViewProxy { ), ), ) as _i2.WebViewClient); + @override _i5.Future setWebContentsDebuggingEnabled(bool? enabled) => (super.noSuchMethod( 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 9644887711d..38802ec3ddd 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 @@ -15,8 +15,7 @@ import 'package:webview_flutter_android/src/android_webview.g.dart'; /// Host API for managing the native `InstanceManager`. abstract class TestInstanceManagerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); /// Clear the native `InstanceManager`. @@ -24,20 +23,15 @@ abstract class TestInstanceManagerHostApi { /// This is typically only used after a hot restart. void clear(); - static void setup(TestInstanceManagerHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestInstanceManagerHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.InstanceManagerHostApi.clear', - codec, + 'dev.flutter.pigeon.webview_flutter_android.InstanceManagerHostApi.clear', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { // ignore message api.clear(); return []; @@ -53,28 +47,22 @@ abstract class TestInstanceManagerHostApi { /// /// See https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. abstract class TestJavaObjectHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void dispose(int identifier); - static void setup(TestJavaObjectHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestJavaObjectHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.JavaObjectHostApi.dispose', - codec, + 'dev.flutter.pigeon.webview_flutter_android.JavaObjectHostApi.dispose', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.JavaObjectHostApi.dispose was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.JavaObjectHostApi.dispose was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -93,8 +81,7 @@ abstract class TestJavaObjectHostApi { /// are attached to a Dart instance or handle method calls on the associated /// native class or an instance of the class. abstract class TestCookieManagerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); /// Handles attaching `CookieManager.instance` to a native instance. @@ -107,25 +94,19 @@ abstract class TestCookieManagerHostApi { Future removeAllCookies(int identifier); /// Handles Dart method `CookieManager.setAcceptThirdPartyCookies`. - void setAcceptThirdPartyCookies( - int identifier, int webViewIdentifier, bool accept); + void setAcceptThirdPartyCookies(int identifier, int webViewIdentifier, bool accept); - static void setup(TestCookieManagerHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestCookieManagerHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.attachInstance', - codec, + 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.attachInstance', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.attachInstance was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.attachInstance was null.'); final List args = (message as List?)!; final int? arg_instanceIdentifier = (args[0] as int?); assert(arg_instanceIdentifier != null, @@ -137,18 +118,14 @@ abstract class TestCookieManagerHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setCookie', - codec, + 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setCookie', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setCookie was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setCookie was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -166,18 +143,14 @@ abstract class TestCookieManagerHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.removeAllCookies', - codec, + 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.removeAllCookies', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.removeAllCookies was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.removeAllCookies was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -189,18 +162,14 @@ abstract class TestCookieManagerHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies', - codec, + 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -211,8 +180,7 @@ abstract class TestCookieManagerHostApi { final bool? arg_accept = (args[2] as bool?); assert(arg_accept != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies was null, expected non-null bool.'); - api.setAcceptThirdPartyCookies( - arg_identifier!, arg_webViewIdentifier!, arg_accept!); + api.setAcceptThirdPartyCookies(arg_identifier!, arg_webViewIdentifier!, arg_accept!); return []; }); } @@ -235,7 +203,7 @@ class _TestWebViewHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return WebViewPoint.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -244,17 +212,14 @@ class _TestWebViewHostApiCodec extends StandardMessageCodec { } abstract class TestWebViewHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = _TestWebViewHostApiCodec(); void create(int instanceId); - void loadData( - int instanceId, String data, String? mimeType, String? encoding); + void loadData(int instanceId, String data, String? mimeType, String? encoding); - void loadDataWithBaseUrl(int instanceId, String? baseUrl, String data, - String? mimeType, String? encoding, String? historyUrl); + void loadDataWithBaseUrl(int instanceId, String? baseUrl, String data, String? mimeType, String? encoding, String? historyUrl); void loadUrl(int instanceId, String url, Map headers); @@ -302,22 +267,17 @@ abstract class TestWebViewHostApi { void setBackgroundColor(int instanceId, int color); - static void setup(TestWebViewHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebViewHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -329,18 +289,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadData', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadData', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadData was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadData was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -357,18 +313,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadDataWithBaseUrl', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadDataWithBaseUrl', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadDataWithBaseUrl was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadDataWithBaseUrl was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -380,26 +332,21 @@ abstract class TestWebViewHostApi { final String? arg_mimeType = (args[3] as String?); final String? arg_encoding = (args[4] as String?); final String? arg_historyUrl = (args[5] as String?); - api.loadDataWithBaseUrl(arg_instanceId!, arg_baseUrl, arg_data!, - arg_mimeType, arg_encoding, arg_historyUrl); + api.loadDataWithBaseUrl(arg_instanceId!, arg_baseUrl, arg_data!, arg_mimeType, arg_encoding, arg_historyUrl); return []; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -407,8 +354,7 @@ abstract class TestWebViewHostApi { final String? arg_url = (args[1] as String?); assert(arg_url != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl was null, expected non-null String.'); - final Map? arg_headers = - (args[2] as Map?)?.cast(); + final Map? arg_headers = (args[2] as Map?)?.cast(); assert(arg_headers != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl was null, expected non-null Map.'); api.loadUrl(arg_instanceId!, arg_url!, arg_headers!); @@ -418,18 +364,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.postUrl', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.postUrl', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.postUrl was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.postUrl was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -447,18 +389,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getUrl', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getUrl', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getUrl was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getUrl was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -470,18 +408,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoBack', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoBack', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoBack was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoBack was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -493,18 +427,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoForward', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoForward', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoForward was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoForward was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -516,18 +446,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goBack', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goBack', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goBack was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goBack was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -539,18 +465,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goForward', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goForward', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goForward was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goForward was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -562,18 +484,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.reload', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.reload', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.reload was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.reload was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -585,18 +503,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.clearCache', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.clearCache', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.clearCache was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.clearCache was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -611,18 +525,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -630,26 +540,21 @@ abstract class TestWebViewHostApi { final String? arg_javascriptString = (args[1] as String?); assert(arg_javascriptString != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript was null, expected non-null String.'); - final String? output = await api.evaluateJavascript( - arg_instanceId!, arg_javascriptString!); + final String? output = await api.evaluateJavascript(arg_instanceId!, arg_javascriptString!); return [output]; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getTitle', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getTitle', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getTitle was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getTitle was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -661,18 +566,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollTo', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollTo', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollTo was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollTo was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -690,18 +591,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollBy', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollBy', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollBy was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollBy was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -719,18 +616,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollX', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollX', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollX was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollX was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -742,18 +635,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollY', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollY', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollY was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollY was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -765,18 +654,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollPosition', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollPosition', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollPosition was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollPosition was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -788,18 +673,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled was null.'); final List args = (message as List?)!; final bool? arg_enabled = (args[0] as bool?); assert(arg_enabled != null, @@ -811,18 +692,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebViewClient', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebViewClient', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebViewClient was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebViewClient was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -837,18 +714,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -856,26 +729,21 @@ abstract class TestWebViewHostApi { final int? arg_javaScriptChannelInstanceId = (args[1] as int?); assert(arg_javaScriptChannelInstanceId != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel was null, expected non-null int.'); - api.addJavaScriptChannel( - arg_instanceId!, arg_javaScriptChannelInstanceId!); + api.addJavaScriptChannel(arg_instanceId!, arg_javaScriptChannelInstanceId!); return []; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -883,26 +751,21 @@ abstract class TestWebViewHostApi { final int? arg_javaScriptChannelInstanceId = (args[1] as int?); assert(arg_javaScriptChannelInstanceId != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel was null, expected non-null int.'); - api.removeJavaScriptChannel( - arg_instanceId!, arg_javaScriptChannelInstanceId!); + api.removeJavaScriptChannel(arg_instanceId!, arg_javaScriptChannelInstanceId!); return []; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setDownloadListener', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setDownloadListener', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setDownloadListener was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setDownloadListener was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -915,18 +778,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebChromeClient', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebChromeClient', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebChromeClient was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebChromeClient was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -939,18 +798,14 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setBackgroundColor', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setBackgroundColor', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setBackgroundColor was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setBackgroundColor was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -967,8 +822,7 @@ abstract class TestWebViewHostApi { } abstract class TestWebSettingsHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId, int webViewInstanceId); @@ -1001,22 +855,17 @@ abstract class TestWebSettingsHostApi { String getUserAgentString(int instanceId); - static void setup(TestWebSettingsHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebSettingsHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1031,18 +880,14 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDomStorageEnabled', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDomStorageEnabled', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDomStorageEnabled was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDomStorageEnabled was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1057,18 +902,14 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1076,26 +917,21 @@ abstract class TestWebSettingsHostApi { final bool? arg_flag = (args[1] as bool?); assert(arg_flag != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically was null, expected non-null bool.'); - api.setJavaScriptCanOpenWindowsAutomatically( - arg_instanceId!, arg_flag!); + api.setJavaScriptCanOpenWindowsAutomatically(arg_instanceId!, arg_flag!); return []; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportMultipleWindows', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportMultipleWindows', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportMultipleWindows was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportMultipleWindows was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1110,18 +946,14 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptEnabled', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptEnabled', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptEnabled was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptEnabled was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1136,18 +968,14 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUserAgentString', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUserAgentString', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUserAgentString was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUserAgentString was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1160,18 +988,14 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1179,26 +1003,21 @@ abstract class TestWebSettingsHostApi { final bool? arg_require = (args[1] as bool?); assert(arg_require != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture was null, expected non-null bool.'); - api.setMediaPlaybackRequiresUserGesture( - arg_instanceId!, arg_require!); + api.setMediaPlaybackRequiresUserGesture(arg_instanceId!, arg_require!); return []; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportZoom', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportZoom', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportZoom was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportZoom was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1213,18 +1032,14 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setLoadWithOverviewMode', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setLoadWithOverviewMode', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setLoadWithOverviewMode was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setLoadWithOverviewMode was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1239,18 +1054,14 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUseWideViewPort', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUseWideViewPort', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUseWideViewPort was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUseWideViewPort was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1265,18 +1076,14 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDisplayZoomControls', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDisplayZoomControls', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDisplayZoomControls was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDisplayZoomControls was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1291,18 +1098,14 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setBuiltInZoomControls', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setBuiltInZoomControls', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setBuiltInZoomControls was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setBuiltInZoomControls was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1317,18 +1120,14 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setAllowFileAccess', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setAllowFileAccess', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setAllowFileAccess was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setAllowFileAccess was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1343,18 +1142,14 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setTextZoom', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setTextZoom', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setTextZoom was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setTextZoom was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1369,18 +1164,14 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.getUserAgentString', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.getUserAgentString', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.getUserAgentString was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.getUserAgentString was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1394,28 +1185,22 @@ abstract class TestWebSettingsHostApi { } abstract class TestJavaScriptChannelHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId, String channelName); - static void setup(TestJavaScriptChannelHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestJavaScriptChannelHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelHostApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1432,31 +1217,24 @@ abstract class TestJavaScriptChannelHostApi { } abstract class TestWebViewClientHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); - void setSynchronousReturnValueForShouldOverrideUrlLoading( - int instanceId, bool value); + void setSynchronousReturnValueForShouldOverrideUrlLoading(int instanceId, bool value); - static void setup(TestWebViewClientHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebViewClientHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1468,18 +1246,14 @@ abstract class TestWebViewClientHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1487,8 +1261,7 @@ abstract class TestWebViewClientHostApi { final bool? arg_value = (args[1] as bool?); assert(arg_value != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading was null, expected non-null bool.'); - api.setSynchronousReturnValueForShouldOverrideUrlLoading( - arg_instanceId!, arg_value!); + api.setSynchronousReturnValueForShouldOverrideUrlLoading(arg_instanceId!, arg_value!); return []; }); } @@ -1497,28 +1270,22 @@ abstract class TestWebViewClientHostApi { } abstract class TestDownloadListenerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); - static void setup(TestDownloadListenerHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestDownloadListenerHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.DownloadListenerHostApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.DownloadListenerHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.DownloadListenerHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.DownloadListenerHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1532,33 +1299,26 @@ abstract class TestDownloadListenerHostApi { } abstract class TestWebChromeClientHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); - void setSynchronousReturnValueForOnShowFileChooser( - int instanceId, bool value); + void setSynchronousReturnValueForOnShowFileChooser(int instanceId, bool value); void setSynchronousReturnValueForOnConsoleMessage(int instanceId, bool value); - static void setup(TestWebChromeClientHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebChromeClientHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1570,18 +1330,14 @@ abstract class TestWebChromeClientHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1589,26 +1345,21 @@ abstract class TestWebChromeClientHostApi { final bool? arg_value = (args[1] as bool?); assert(arg_value != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser was null, expected non-null bool.'); - api.setSynchronousReturnValueForOnShowFileChooser( - arg_instanceId!, arg_value!); + api.setSynchronousReturnValueForOnShowFileChooser(arg_instanceId!, arg_value!); return []; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1616,8 +1367,7 @@ abstract class TestWebChromeClientHostApi { final bool? arg_value = (args[1] as bool?); assert(arg_value != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage was null, expected non-null bool.'); - api.setSynchronousReturnValueForOnConsoleMessage( - arg_instanceId!, arg_value!); + api.setSynchronousReturnValueForOnConsoleMessage(arg_instanceId!, arg_value!); return []; }); } @@ -1626,30 +1376,24 @@ abstract class TestWebChromeClientHostApi { } abstract class TestAssetManagerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); List list(String path); String getAssetFilePathByName(String name); - static void setup(TestAssetManagerHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestAssetManagerHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.list', - codec, + 'dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.list', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.list was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.list was null.'); final List args = (message as List?)!; final String? arg_path = (args[0] as String?); assert(arg_path != null, @@ -1661,18 +1405,14 @@ abstract class TestAssetManagerHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.getAssetFilePathByName', - codec, + 'dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.getAssetFilePathByName', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.getAssetFilePathByName was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.getAssetFilePathByName was null.'); final List args = (message as List?)!; final String? arg_name = (args[0] as String?); assert(arg_name != null, @@ -1686,30 +1426,24 @@ abstract class TestAssetManagerHostApi { } abstract class TestWebStorageHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); void deleteAllData(int instanceId); - static void setup(TestWebStorageHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebStorageHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.create', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.create', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1721,18 +1455,14 @@ abstract class TestWebStorageHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.deleteAllData', - codec, + 'dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.deleteAllData', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.deleteAllData was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.deleteAllData was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1753,8 +1483,7 @@ abstract class TestWebStorageHostApi { /// /// See https://developer.android.com/reference/android/webkit/PermissionRequest. abstract class TestPermissionRequestHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); /// Handles Dart method `PermissionRequest.grant`. @@ -1763,28 +1492,22 @@ abstract class TestPermissionRequestHostApi { /// Handles Dart method `PermissionRequest.deny`. void deny(int instanceId); - static void setup(TestPermissionRequestHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestPermissionRequestHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant', - codec, + 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant was null, expected non-null int.'); - final List? arg_resources = - (args[1] as List?)?.cast(); + final List? arg_resources = (args[1] as List?)?.cast(); assert(arg_resources != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant was null, expected non-null List.'); api.grant(arg_instanceId!, arg_resources!); @@ -1794,18 +1517,14 @@ abstract class TestPermissionRequestHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.deny', - codec, + 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.deny', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.deny was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.deny was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1826,29 +1545,23 @@ abstract class TestPermissionRequestHostApi { /// /// See https://developer.android.com/reference/android/webkit/WebChromeClient.CustomViewCallback. abstract class TestCustomViewCallbackHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); /// Handles Dart method `CustomViewCallback.onCustomViewHidden`. void onCustomViewHidden(int identifier); - static void setup(TestCustomViewCallbackHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestCustomViewCallbackHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackHostApi.onCustomViewHidden', - codec, + 'dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackHostApi.onCustomViewHidden', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackHostApi.onCustomViewHidden was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackHostApi.onCustomViewHidden was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1869,29 +1582,23 @@ abstract class TestCustomViewCallbackHostApi { /// /// See https://developer.android.com/reference/android/webkit/GeolocationPermissions.Callback. abstract class TestGeolocationPermissionsCallbackHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); /// Handles Dart method `GeolocationPermissionsCallback.invoke`. void invoke(int instanceId, String origin, bool allow, bool retain); - static void setup(TestGeolocationPermissionsCallbackHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setup(TestGeolocationPermissionsCallbackHostApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackHostApi.invoke', - codec, + 'dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackHostApi.invoke', codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackHostApi.invoke was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackHostApi.invoke was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner/Base.lproj/Main.storyboard b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner/Base.lproj/Main.storyboard index 5a57f30821f..f3c28516fb3 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner/Base.lproj/Main.storyboard +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/Runner/Base.lproj/Main.storyboard @@ -1,10 +1,8 @@ - - - + + - - + @@ -16,14 +14,13 @@ - + - + - diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m index 7706c720c69..e9298ce1889 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m @@ -61,12 +61,12 @@ - (void)setContentOffsetForScrollViewWithIdentifier:(nonnull NSNumber *)identifi [[self scrollViewForIdentifier:identifier] setContentOffset:CGPointMake(x.doubleValue, y.doubleValue)]; } + - (void)setDelegateForScrollViewWithIdentifier:(nonnull NSNumber *)identifier - uiScrollViewDelegateIdentifier:(NSNumber *)uiScrollViewDelegateIdentifier + uiScrollViewDelegateIdentifier:(nullable NSNumber *)uiScrollViewDelegateIdentifier error:(FlutterError *_Nullable *_Nonnull)error { [[self scrollViewForIdentifier:identifier] - setDelegate:(FWFScrollViewDelegate *)[self.instanceManager - instanceForIdentifier:uiScrollViewDelegateIdentifier.longValue]]; + setDelegate:uiScrollViewDelegateIdentifier ? (FWFScrollViewDelegate *)[self.instanceManager + instanceForIdentifier:uiScrollViewDelegateIdentifier.longValue] : nil]; } - @end diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart index 68ba08de4b8..9dbbc7e0142 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart @@ -148,10 +148,14 @@ class UIView extends NSObject { @immutable class UIScrollViewDelegate extends NSObject { /// Constructs a [UIScrollViewDelegate]. - UIScrollViewDelegate( - {this.scrollViewDidScroll, super.binaryMessenger, super.instanceManager}) - : _scrollViewDelegateApi = UIScrollViewDelegateHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager), + UIScrollViewDelegate({ + this.scrollViewDidScroll, + super.binaryMessenger, + super.instanceManager, + }) : _scrollViewDelegateApi = UIScrollViewDelegateHostApiImpl( + binaryMessenger: binaryMessenger, + instanceManager: instanceManager, + ), super.detached() { // Ensures FlutterApis for the WebKit library are set up. WebKitFlutterApis.instance.ensureSetUp(); @@ -163,10 +167,14 @@ class UIScrollViewDelegate extends NSObject { /// /// This should only be used by subclasses created by this library or to /// create copies. - UIScrollViewDelegate.detached( - {this.scrollViewDidScroll, super.binaryMessenger, super.instanceManager}) - : _scrollViewDelegateApi = UIScrollViewDelegateHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager), + UIScrollViewDelegate.detached({ + this.scrollViewDidScroll, + super.binaryMessenger, + super.instanceManager, + }) : _scrollViewDelegateApi = UIScrollViewDelegateHostApiImpl( + binaryMessenger: binaryMessenger, + instanceManager: instanceManager, + ), super.detached(); final UIScrollViewDelegateHostApiImpl _scrollViewDelegateApi; @@ -175,4 +183,13 @@ class UIScrollViewDelegate extends NSObject { /// /// {@macro webview_flutter_wkwebview.foundation.callbacks} final void Function(UIScrollView scrollView)? scrollViewDidScroll; + + @override + UIScrollViewDelegate copy() { + return UIScrollViewDelegate.detached( + scrollViewDidScroll: scrollViewDidScroll, + binaryMessenger: _scrollViewDelegateApi.binaryMessenger, + instanceManager: _scrollViewDelegateApi.instanceManager, + ); + } } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart index 8f914fe3452..ad36290fcd8 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart @@ -146,8 +146,8 @@ class UIScrollViewDelegateFlutterApiImpl _getDelegate(identifier).scrollViewDidScroll; final UIScrollView? uiScrollView = instanceManager .getInstanceWithWeakReference(uiScrollViewIdentifier) as UIScrollView?; - assert(uiScrollView != null && callback != null); - callback!.call(uiScrollView!); + assert(uiScrollView != null); + callback?.call(uiScrollView!); } } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit.dart index 5b065a0e397..db9f41c2851 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit.dart @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'dart:async'; - import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; @@ -996,13 +994,6 @@ class WKWebView extends UIView { return _webViewApi.setUIDelegateForInstances(this, delegate); } - /// Used to set a scroll view delegate to a web view's scroll view. - /// - /// Sets [UIScrollView.UIScrollViewDelegate](https://developer.apple.com/documentation/uikit/uiscrollviewdelegate?language=objc). - Future setScrollViewDelegate(UIScrollViewDelegate? delegate) { - return scrollView.setDelegate(delegate); - } - /// The object you use to manage navigation behavior for the web view. /// /// Sets [WKWebView.navigationDelegate](https://developer.apple.com/documentation/webkit/wkwebview/1414971-navigationdelegate?language=objc). diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit_api_impls.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit_api_impls.dart index 6dcd9779f62..4a51009d5ea 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit_api_impls.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/web_kit/web_kit_api_impls.dart @@ -261,7 +261,8 @@ class WebKitFlutterApis { instanceManager: instanceManager, ), uiScrollViewDelegate = UIScrollViewDelegateFlutterApiImpl( - instanceManager: instanceManager); + instanceManager: instanceManager, + ); static WebKitFlutterApis _instance = WebKitFlutterApis(); diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_proxy.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_proxy.dart index f1887df5e3d..00772e9c4cc 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_proxy.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_proxy.dart @@ -92,7 +92,7 @@ class WebKitProxy { }) createUIDelegate; /// Constructs a [UIScrollViewDelegate]. - final UIScrollViewDelegate Function( - {void Function(UIScrollView scrollView)? scrollViewDidScroll}) - createUIScrollViewDelegate; + final UIScrollViewDelegate Function({ + void Function(UIScrollView scrollView)? scrollViewDidScroll, + }) createUIScrollViewDelegate; } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart index dcb8d524275..e54f1910e67 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart @@ -221,14 +221,6 @@ class WebKitWebViewController extends PlatformWebViewController { ); _webView.setUIDelegate(_uiDelegate); - _uiScrollViewDelegate = _webKitParams.webKitProxy - .createUIScrollViewDelegate( - scrollViewDidScroll: (UIScrollView uiScrollView) async { - final Point offset = await uiScrollView.getContentOffset(); - weakThis.target?._onScrollPositionChangeCallback - ?.call(ScrollPositionChange(offset.x.toInt(), offset.y.toInt())); - }); - _webView.setScrollViewDelegate(_uiScrollViewDelegate); } /// The WebKit WebView being controlled. @@ -273,7 +265,7 @@ class WebKitWebViewController extends PlatformWebViewController { late final WKUIDelegate _uiDelegate; - late final UIScrollViewDelegate _uiScrollViewDelegate; + late final UIScrollViewDelegate? _uiScrollViewDelegate; final Map _javaScriptChannelParams = {}; @@ -670,6 +662,23 @@ window.addEventListener("error", function(e) { void Function(ScrollPositionChange scrollPositionChange)? onScrollPositionChange) async { _onScrollPositionChangeCallback = onScrollPositionChange; + + if (onScrollPositionChange != null) { + final WeakReference weakThis = + WeakReference(this); + _uiScrollViewDelegate = + _webKitParams.webKitProxy.createUIScrollViewDelegate( + scrollViewDidScroll: (UIScrollView uiScrollView) async { + final Point offset = await uiScrollView.getContentOffset(); + weakThis.target?._onScrollPositionChangeCallback + ?.call(ScrollPositionChange(offset.x.toInt(), offset.y.toInt())); + }, + ); + return _webView.scrollView.setDelegate(_uiScrollViewDelegate); + } else { + _uiScrollViewDelegate = null; + return _webView.scrollView.setDelegate(null); + } } /// Whether to enable tools for debugging the current WKWebView content. diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/legacy/web_kit_webview_widget_test.mocks.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/legacy/web_kit_webview_widget_test.mocks.dart index 523ef9007d3..81fa7f76e5a 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/legacy/web_kit_webview_widget_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/legacy/web_kit_webview_widget_test.mocks.dart @@ -501,16 +501,6 @@ class MockWKWebView extends _i1.Mock implements _i4.WKWebView { returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); @override - _i5.Future setScrollViewDelegate(_i3.UIScrollViewDelegate? delegate) => - (super.noSuchMethod( - Invocation.method( - #setScrollViewDelegate, - [delegate], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - @override _i5.Future setNavigationDelegate(_i4.WKNavigationDelegate? delegate) => (super.noSuchMethod( Invocation.method( diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.dart index f6295668363..6ccf1b3c6be 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.dart @@ -9,7 +9,9 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart'; import 'package:webview_flutter_wkwebview/src/common/instance_manager.dart'; +import 'package:webview_flutter_wkwebview/src/common/web_kit.g.dart'; import 'package:webview_flutter_wkwebview/src/ui_kit/ui_kit.dart'; +import 'package:webview_flutter_wkwebview/src/ui_kit/ui_kit_api_impls.dart'; import 'package:webview_flutter_wkwebview/src/web_kit/web_kit.dart'; import '../common/test_web_kit.g.dart'; @@ -19,6 +21,7 @@ import 'ui_kit_test.mocks.dart'; TestWKWebViewConfigurationHostApi, TestWKWebViewHostApi, TestUIScrollViewHostApi, + TestUIScrollViewDelegateHostApi, TestUIViewHostApi, ]) void main() { @@ -85,6 +88,58 @@ void main() { 10.0, )); }); + + test('setDelegate', () async { + final UIScrollViewDelegate delegate = UIScrollViewDelegate.detached( + instanceManager: instanceManager, + ); + const int delegateIdentifier = 10; + instanceManager.addHostCreatedInstance(delegate, delegateIdentifier); + await scrollView.setDelegate(delegate); + verify(mockPlatformHostApi.setDelegate( + scrollViewInstanceId, + delegateIdentifier, + )); + }); + }); + + group('UIScrollViewDelegate', () { + // Ensure the test host api is removed after each test run. + tearDown(() => TestUIScrollViewDelegateHostApi.setup(null)); + + test('Host API create', () { + final MockTestUIScrollViewDelegateHostApi mockApi = + MockTestUIScrollViewDelegateHostApi(); + TestUIScrollViewDelegateHostApi.setup(mockApi); + + UIScrollViewDelegate(instanceManager: instanceManager); + verify(mockApi.create(0)); + }); + + test('scrollViewDidScroll', () { + final UIScrollViewDelegateFlutterApi flutterApi = + UIScrollViewDelegateFlutterApiImpl( + instanceManager: instanceManager, + ); + + final UIScrollView scrollView = UIScrollView.detached( + instanceManager: instanceManager, + ); + instanceManager.addHostCreatedInstance(scrollView, 0); + + List? args; + final UIScrollViewDelegate scrollViewDelegate = + UIScrollViewDelegate.detached( + scrollViewDidScroll: (UIScrollView scrollView) { + args = [scrollView]; + }, + instanceManager: instanceManager, + ); + instanceManager.addHostCreatedInstance(scrollViewDelegate, 1); + + flutterApi.scrollViewDidScroll(1, 0); + expect(args, [scrollView]); + }); }); group('UIView', () { diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.mocks.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.mocks.dart index 4b8ad823618..f66d9d8997e 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.mocks.dart @@ -429,6 +429,25 @@ class MockTestUIScrollViewHostApi extends _i1.Mock ); } +/// A class which mocks [TestUIScrollViewDelegateHostApi]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockTestUIScrollViewDelegateHostApi extends _i1.Mock + implements _i2.TestUIScrollViewDelegateHostApi { + MockTestUIScrollViewDelegateHostApi() { + _i1.throwOnMissingStub(this); + } + + @override + void create(int? identifier) => super.noSuchMethod( + Invocation.method( + #create, + [identifier], + ), + returnValueForMissingStub: null, + ); +} + /// A class which mocks [TestUIViewHostApi]. /// /// See the documentation for Mockito's code generation for more information. diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.dart index 1ec4c371949..d31732391d2 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.dart @@ -37,7 +37,7 @@ void main() { group('WebKitWebViewController', () { WebKitWebViewController createControllerWithMocks({ MockUIScrollView? mockScrollView, - MockUIScrollViewDelegate? mockScrollViewDelegate, + UIScrollViewDelegate? scrollViewDelegate, MockWKPreferences? mockPreferences, WKUIDelegate? uiDelegate, MockWKUserContentController? mockUserContentController, @@ -105,7 +105,10 @@ void main() { createScriptMessageHandler: WKScriptMessageHandler.detached, createUIScrollViewDelegate: ( {void Function(UIScrollView scrollView)? scrollViewDidScroll}) { - return mockScrollViewDelegate ?? MockUIScrollViewDelegate(); + return scrollViewDelegate ?? + CapturingUIScrollViewDelegate( + scrollViewDidScroll: scrollViewDidScroll, + ); }), instanceManager: instanceManager, ); @@ -1305,6 +1308,35 @@ window.addEventListener("error", function(e) { expect(logs[JavaScriptLogLevel.warning], 'Warning message'); }); }); + + test('setOnScrollPositionChange', () async { + final WebKitWebViewController controller = createControllerWithMocks(); + + final Completer changeCompleter = + Completer(); + await controller.setOnScrollPositionChange( + (ScrollPositionChange change) { + changeCompleter.complete(change); + }, + ); + + final void Function( + UIScrollView scrollView, + ) onScrollViewDidScroll = CapturingUIScrollViewDelegate + .lastCreatedDelegate.scrollViewDidScroll!; + + final MockUIScrollView mockUIScrollView = MockUIScrollView(); + when(mockUIScrollView.getContentOffset()).thenAnswer( + (_) => Future>.value( + const Point(1.0, 2.0), + ), + ); + onScrollViewDidScroll(mockUIScrollView); + + final ScrollPositionChange change = await changeCompleter.future; + expect(change.x, 1.0); + expect(change.y, 2.0); + }); }); group('WebKitJavaScriptChannelParams', () { @@ -1373,3 +1405,15 @@ class CapturingUIDelegate extends WKUIDelegate { static CapturingUIDelegate lastCreatedDelegate = CapturingUIDelegate(); } + +class CapturingUIScrollViewDelegate extends UIScrollViewDelegate { + CapturingUIScrollViewDelegate({ + super.scrollViewDidScroll, + super.instanceManager, + }) : super.detached() { + lastCreatedDelegate = this; + } + + static CapturingUIScrollViewDelegate lastCreatedDelegate = + CapturingUIScrollViewDelegate(); +} diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.mocks.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.mocks.dart index b73bd5262d2..57d557ff327 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.mocks.dart @@ -57,8 +57,9 @@ class _FakeUIScrollView_2 extends _i1.SmartFake implements _i4.UIScrollView { ); } -class _FakeWKPreferences_3 extends _i1.SmartFake implements _i5.WKPreferences { - _FakeWKPreferences_3( +class _FakeUIScrollViewDelegate_3 extends _i1.SmartFake + implements _i4.UIScrollViewDelegate { + _FakeUIScrollViewDelegate_3( Object parent, Invocation parentInvocation, ) : super( @@ -67,9 +68,19 @@ class _FakeWKPreferences_3 extends _i1.SmartFake implements _i5.WKPreferences { ); } -class _FakeWKUserContentController_4 extends _i1.SmartFake +class _FakeWKPreferences_4 extends _i1.SmartFake implements _i5.WKPreferences { + _FakeWKPreferences_4( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeWKUserContentController_5 extends _i1.SmartFake implements _i5.WKUserContentController { - _FakeWKUserContentController_4( + _FakeWKUserContentController_5( Object parent, Invocation parentInvocation, ) : super( @@ -78,9 +89,9 @@ class _FakeWKUserContentController_4 extends _i1.SmartFake ); } -class _FakeWKHttpCookieStore_5 extends _i1.SmartFake +class _FakeWKHttpCookieStore_6 extends _i1.SmartFake implements _i5.WKHttpCookieStore { - _FakeWKHttpCookieStore_5( + _FakeWKHttpCookieStore_6( Object parent, Invocation parentInvocation, ) : super( @@ -89,9 +100,9 @@ class _FakeWKHttpCookieStore_5 extends _i1.SmartFake ); } -class _FakeWKWebsiteDataStore_6 extends _i1.SmartFake +class _FakeWKWebsiteDataStore_7 extends _i1.SmartFake implements _i5.WKWebsiteDataStore { - _FakeWKWebsiteDataStore_6( + _FakeWKWebsiteDataStore_7( Object parent, Invocation parentInvocation, ) : super( @@ -100,9 +111,9 @@ class _FakeWKWebsiteDataStore_6 extends _i1.SmartFake ); } -class _FakeWKWebViewConfiguration_7 extends _i1.SmartFake +class _FakeWKWebViewConfiguration_8 extends _i1.SmartFake implements _i5.WKWebViewConfiguration { - _FakeWKWebViewConfiguration_7( + _FakeWKWebViewConfiguration_8( Object parent, Invocation parentInvocation, ) : super( @@ -111,8 +122,8 @@ class _FakeWKWebViewConfiguration_7 extends _i1.SmartFake ); } -class _FakeWKWebView_8 extends _i1.SmartFake implements _i5.WKWebView { - _FakeWKWebView_8( +class _FakeWKWebView_9 extends _i1.SmartFake implements _i5.WKWebView { + _FakeWKWebView_9( Object parent, Invocation parentInvocation, ) : super( @@ -121,9 +132,9 @@ class _FakeWKWebView_8 extends _i1.SmartFake implements _i5.WKWebView { ); } -class _FakeWKScriptMessageHandler_9 extends _i1.SmartFake +class _FakeWKScriptMessageHandler_10 extends _i1.SmartFake implements _i5.WKScriptMessageHandler { - _FakeWKScriptMessageHandler_9( + _FakeWKScriptMessageHandler_10( Object parent, Invocation parentInvocation, ) : super( @@ -324,6 +335,20 @@ class MockUIScrollViewDelegate extends _i1.Mock _i1.throwOnMissingStub(this); } + @override + _i4.UIScrollViewDelegate copy() => (super.noSuchMethod( + Invocation.method( + #copy, + [], + ), + returnValue: _FakeUIScrollViewDelegate_3( + this, + Invocation.method( + #copy, + [], + ), + ), + ) as _i4.UIScrollViewDelegate); @override _i6.Future addObserver( _i2.NSObject? observer, { @@ -356,20 +381,6 @@ class MockUIScrollViewDelegate extends _i1.Mock returnValue: _i6.Future.value(), returnValueForMissingStub: _i6.Future.value(), ) as _i6.Future); - @override - _i2.NSObject copy() => (super.noSuchMethod( - Invocation.method( - #copy, - [], - ), - returnValue: _FakeNSObject_0( - this, - Invocation.method( - #copy, - [], - ), - ), - ) as _i2.NSObject); } /// A class which mocks [WKPreferences]. @@ -396,7 +407,7 @@ class MockWKPreferences extends _i1.Mock implements _i5.WKPreferences { #copy, [], ), - returnValue: _FakeWKPreferences_3( + returnValue: _FakeWKPreferences_4( this, Invocation.method( #copy, @@ -508,7 +519,7 @@ class MockWKUserContentController extends _i1.Mock #copy, [], ), - returnValue: _FakeWKUserContentController_4( + returnValue: _FakeWKUserContentController_5( this, Invocation.method( #copy, @@ -563,7 +574,7 @@ class MockWKWebsiteDataStore extends _i1.Mock @override _i5.WKHttpCookieStore get httpCookieStore => (super.noSuchMethod( Invocation.getter(#httpCookieStore), - returnValue: _FakeWKHttpCookieStore_5( + returnValue: _FakeWKHttpCookieStore_6( this, Invocation.getter(#httpCookieStore), ), @@ -589,7 +600,7 @@ class MockWKWebsiteDataStore extends _i1.Mock #copy, [], ), - returnValue: _FakeWKWebsiteDataStore_6( + returnValue: _FakeWKWebsiteDataStore_7( this, Invocation.method( #copy, @@ -643,7 +654,7 @@ class MockWKWebView extends _i1.Mock implements _i5.WKWebView { @override _i5.WKWebViewConfiguration get configuration => (super.noSuchMethod( Invocation.getter(#configuration), - returnValue: _FakeWKWebViewConfiguration_7( + returnValue: _FakeWKWebViewConfiguration_8( this, Invocation.getter(#configuration), ), @@ -667,16 +678,6 @@ class MockWKWebView extends _i1.Mock implements _i5.WKWebView { returnValueForMissingStub: _i6.Future.value(), ) as _i6.Future); @override - _i6.Future setScrollViewDelegate(_i4.UIScrollViewDelegate? delegate) => - (super.noSuchMethod( - Invocation.method( - #setScrollViewDelegate, - [delegate], - ), - returnValue: _i6.Future.value(), - returnValueForMissingStub: _i6.Future.value(), - ) as _i6.Future); - @override _i6.Future setNavigationDelegate(_i5.WKNavigationDelegate? delegate) => (super.noSuchMethod( Invocation.method( @@ -851,7 +852,7 @@ class MockWKWebView extends _i1.Mock implements _i5.WKWebView { #copy, [], ), - returnValue: _FakeWKWebView_8( + returnValue: _FakeWKWebView_9( this, Invocation.method( #copy, @@ -924,7 +925,7 @@ class MockWKWebViewConfiguration extends _i1.Mock @override _i5.WKUserContentController get userContentController => (super.noSuchMethod( Invocation.getter(#userContentController), - returnValue: _FakeWKUserContentController_4( + returnValue: _FakeWKUserContentController_5( this, Invocation.getter(#userContentController), ), @@ -932,7 +933,7 @@ class MockWKWebViewConfiguration extends _i1.Mock @override _i5.WKPreferences get preferences => (super.noSuchMethod( Invocation.getter(#preferences), - returnValue: _FakeWKPreferences_3( + returnValue: _FakeWKPreferences_4( this, Invocation.getter(#preferences), ), @@ -940,7 +941,7 @@ class MockWKWebViewConfiguration extends _i1.Mock @override _i5.WKWebsiteDataStore get websiteDataStore => (super.noSuchMethod( Invocation.getter(#websiteDataStore), - returnValue: _FakeWKWebsiteDataStore_6( + returnValue: _FakeWKWebsiteDataStore_7( this, Invocation.getter(#websiteDataStore), ), @@ -982,7 +983,7 @@ class MockWKWebViewConfiguration extends _i1.Mock #copy, [], ), - returnValue: _FakeWKWebViewConfiguration_7( + returnValue: _FakeWKWebViewConfiguration_8( this, Invocation.method( #copy, @@ -1054,7 +1055,7 @@ class MockWKScriptMessageHandler extends _i1.Mock #copy, [], ), - returnValue: _FakeWKScriptMessageHandler_9( + returnValue: _FakeWKScriptMessageHandler_10( this, Invocation.method( #copy, From 5dfa5b29d4c2f295fa899fc92c0d323defa2b2db Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 4 Oct 2023 22:54:52 -0400 Subject: [PATCH 13/20] switch to doubles --- .../integration_test/webview_flutter_test.dart | 8 +++----- .../lib/src/android_webview_controller.dart | 2 +- .../lib/src/types/scroll_position_change.dart | 10 ++++++---- .../integration_test/webview_flutter_test.dart | 12 ++++++------ .../lib/src/webkit_webview_controller.dart | 2 +- 5 files changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart index ccc2ffda783..c2fae4b157c 100644 --- a/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart @@ -828,9 +828,8 @@ Future main() async { expect(scrollPos.dy, Y_SCROLL); await expectLater( offsetsCompleter.future.then( - (ScrollPositionChange contentOffsetChange) => - [contentOffsetChange.x, contentOffsetChange.y]), - completion([X_SCROLL, Y_SCROLL])); + (ScrollPositionChange change) => [change.x, change.y]), + completion([X_SCROLL.toDouble(), Y_SCROLL.toDouble()])); // Check scrollBy() (on top of scrollTo()) offsetsCompleter = Completer(); @@ -840,8 +839,7 @@ Future main() async { expect(scrollPos.dy, Y_SCROLL * 2); await expectLater( offsetsCompleter.future.then( - (ScrollPositionChange contentOffsetChange) => - [contentOffsetChange.x, contentOffsetChange.y]), + (ScrollPositionChange change) => [change.x, change.y]), completion([X_SCROLL * 2, Y_SCROLL * 2])); }); }); diff --git a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart index fc6943f210b..f3ab4c74143 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/src/android_webview_controller.dart @@ -105,7 +105,7 @@ class AndroidWebViewController extends PlatformWebViewController { return (int left, int top, int oldLeft, int oldTop) async { final Function(ScrollPositionChange)? callback = weakReference.target?._onScrollPositionChangedCallback; - callback?.call(ScrollPositionChange(left, top)); + callback?.call(ScrollPositionChange(left.toDouble(), top.toDouble())); }; })); diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/scroll_position_change.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/scroll_position_change.dart index b9b212eb1fc..dab68d49188 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/scroll_position_change.dart +++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/scroll_position_change.dart @@ -7,9 +7,11 @@ class ScrollPositionChange { /// Creates a [ScrollPositionChange]. const ScrollPositionChange(this.x, this.y); - /// The value of horizontal offset with the origin begin at the leftmost of the [WebView] - final int x; + /// The value of the horizontal offset with the origin being at the leftmost + /// of the `WebView`. + final double x; - /// The value of vertical offset with the origin begin at the topmost of the [WebView] - final int y; + /// The value of the vertical offset with the origin being at the topmost of + /// the `WebView`. + final double y; } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart index 2893bdaadaa..72794e145d6 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart @@ -780,9 +780,9 @@ Future main() async { expect(scrollPos.dy, Y_SCROLL); await expectLater( offsetsCompleter.future.then( - (ScrollPositionChange contentOffsetChange) => - [contentOffsetChange.x, contentOffsetChange.y]), - completion([X_SCROLL, Y_SCROLL])); + (ScrollPositionChange change) => + [change.x, change.y]), + completion([X_SCROLL.toDouble(), Y_SCROLL.toDouble()])); // Check scrollBy() (on top of scrollTo()) offsetsCompleter = Completer(); @@ -792,9 +792,9 @@ Future main() async { expect(scrollPos.dy, Y_SCROLL * 2); await expectLater( offsetsCompleter.future.then( - (ScrollPositionChange contentOffsetChange) => - [contentOffsetChange.x, contentOffsetChange.y]), - completion([X_SCROLL * 2, Y_SCROLL * 2])); + (ScrollPositionChange change) => + [change.x, change.y]), + completion([X_SCROLL * 2, Y_SCROLL * 2])); }); }); diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart index e54f1910e67..3610c84c7aa 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart @@ -671,7 +671,7 @@ window.addEventListener("error", function(e) { scrollViewDidScroll: (UIScrollView uiScrollView) async { final Point offset = await uiScrollView.getContentOffset(); weakThis.target?._onScrollPositionChangeCallback - ?.call(ScrollPositionChange(offset.x.toInt(), offset.y.toInt())); + ?.call(ScrollPositionChange(offset.x, offset.y)); }, ); return _webView.scrollView.setDelegate(_uiScrollViewDelegate); From 94eed4be9ae5185d53817eb43fe11cbe4c79bf13 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 4 Oct 2023 23:14:19 -0400 Subject: [PATCH 14/20] update webview_flutter --- .../webview_flutter_test.dart | 16 +++++++++++++++ .../webview_flutter/example/pubspec.yaml | 9 +++++++++ .../lib/src/webview_controller.dart | 7 +++++++ .../webview_flutter/lib/webview_flutter.dart | 1 + .../webview_flutter/pubspec.yaml | 5 +++++ .../test/webview_controller_test.dart | 20 ++++++++++++++++++- .../test/webview_controller_test.mocks.dart | 11 ++++++++++ .../test/webview_flutter_test.dart | 2 ++ .../test/webview_widget_test.mocks.dart | 11 ++++++++++ 9 files changed, 81 insertions(+), 1 deletion(-) diff --git a/packages/webview_flutter/webview_flutter/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter/example/integration_test/webview_flutter_test.dart index cee1b8b0344..247232869c4 100644 --- a/packages/webview_flutter/webview_flutter/example/integration_test/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter/example/integration_test/webview_flutter_test.dart @@ -530,10 +530,17 @@ Future main() async { final Completer pageLoaded = Completer(); final WebViewController controller = WebViewController(); + Completer offsetsCompleter = + Completer(); unawaited(controller.setJavaScriptMode(JavaScriptMode.unrestricted)); unawaited(controller.setNavigationDelegate(NavigationDelegate( onPageFinished: (_) => pageLoaded.complete(), ))); + unawaited(controller.setOnScrollPositionChange( + (ScrollPositionChange contentOffsetChange) { + offsetsCompleter.complete(contentOffsetChange); + })); + unawaited(controller.loadRequest(Uri.parse( 'data:text/html;charset=utf-8;base64,$scrollTestPageBase64', ))); @@ -559,12 +566,21 @@ Future main() async { scrollPos = await controller.getScrollPosition(); expect(scrollPos.dx, X_SCROLL); expect(scrollPos.dy, Y_SCROLL); + await expectLater( + offsetsCompleter.future.then( + (ScrollPositionChange change) => [change.x, change.y]), + completion([X_SCROLL.toDouble(), Y_SCROLL.toDouble()])); // Check scrollBy() (on top of scrollTo()) + offsetsCompleter = Completer(); await controller.scrollBy(X_SCROLL, Y_SCROLL); scrollPos = await controller.getScrollPosition(); expect(scrollPos.dx, X_SCROLL * 2); expect(scrollPos.dy, Y_SCROLL * 2); + await expectLater( + offsetsCompleter.future.then( + (ScrollPositionChange change) => [change.x, change.y]), + completion([X_SCROLL * 2, Y_SCROLL * 2])); }); }); diff --git a/packages/webview_flutter/webview_flutter/example/pubspec.yaml b/packages/webview_flutter/webview_flutter/example/pubspec.yaml index 3133daf588c..04f682a3bf9 100644 --- a/packages/webview_flutter/webview_flutter/example/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter/example/pubspec.yaml @@ -36,3 +36,12 @@ flutter: - assets/sample_video.mp4 - assets/www/index.html - assets/www/styles/style.css + +# FOR TESTING ONLY. DO NOT MERGE. +dependency_overrides: + webview_flutter_android: + path: ../../webview_flutter_android + webview_flutter_wkwebview: + path: ../../webview_flutter_wkwebview + webview_flutter_platform_interface: + path: ../../webview_flutter_platform_interface diff --git a/packages/webview_flutter/webview_flutter/lib/src/webview_controller.dart b/packages/webview_flutter/webview_flutter/lib/src/webview_controller.dart index 0b81978d6fc..d317b8c47d6 100644 --- a/packages/webview_flutter/webview_flutter/lib/src/webview_controller.dart +++ b/packages/webview_flutter/webview_flutter/lib/src/webview_controller.dart @@ -374,6 +374,13 @@ class WebViewController { Future getUserAgent() { return platform.getUserAgent(); } + + /// Sets a listener for scroll position changes. + Future setOnScrollPositionChange( + void Function(ScrollPositionChange change) onScrollPositionChange, + ) { + return platform.setOnScrollPositionChange(onScrollPositionChange); + } } /// Permissions request when web content requests access to protected resources. diff --git a/packages/webview_flutter/webview_flutter/lib/webview_flutter.dart b/packages/webview_flutter/webview_flutter/lib/webview_flutter.dart index 4132a61cab7..d40015ec4ea 100644 --- a/packages/webview_flutter/webview_flutter/lib/webview_flutter.dart +++ b/packages/webview_flutter/webview_flutter/lib/webview_flutter.dart @@ -21,6 +21,7 @@ export 'package:webview_flutter_platform_interface/webview_flutter_platform_inte PlatformWebViewPermissionRequest, PlatformWebViewWidgetCreationParams, ProgressCallback, + ScrollPositionChange, UrlChange, WebResourceError, WebResourceErrorCallback, diff --git a/packages/webview_flutter/webview_flutter/pubspec.yaml b/packages/webview_flutter/webview_flutter/pubspec.yaml index 75b9efcc23a..5d1b98f83d1 100644 --- a/packages/webview_flutter/webview_flutter/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter/pubspec.yaml @@ -34,3 +34,8 @@ topics: - html - webview - webview-flutter + +# FOR TESTING ONLY. DO NOT MERGE. +dependency_overrides: + webview_flutter_platform_interface: + path: ../webview_flutter_platform_interface diff --git a/packages/webview_flutter/webview_flutter/test/webview_controller_test.dart b/packages/webview_flutter/webview_flutter/test/webview_controller_test.dart index 695a781738e..9ab19a06e1e 100644 --- a/packages/webview_flutter/webview_flutter/test/webview_controller_test.dart +++ b/packages/webview_flutter/webview_flutter/test/webview_controller_test.dart @@ -388,7 +388,7 @@ void main() { expect(permissionRequestCallbackCalled, isTrue); }); - test('setConsoleLogCallback', () async { + test('setOnConsoleMessage', () async { final MockPlatformWebViewController mockPlatformWebViewController = MockPlatformWebViewController(); @@ -418,6 +418,24 @@ void main() { ); await expectLater(webViewController.getUserAgent(), completion(userAgent)); }); + + test('setOnScrollPositionChange', () async { + final MockPlatformWebViewController mockPlatformWebViewController = + MockPlatformWebViewController(); + + final WebViewController webViewController = WebViewController.fromPlatform( + mockPlatformWebViewController, + ); + + void onScrollPositionChange(ScrollPositionChange change) {} + + await webViewController.setOnScrollPositionChange(onScrollPositionChange); + + verify( + mockPlatformWebViewController + .setOnScrollPositionChange(onScrollPositionChange), + ); + }); } class TestPlatformWebViewPermissionRequest diff --git a/packages/webview_flutter/webview_flutter/test/webview_controller_test.mocks.dart b/packages/webview_flutter/webview_flutter/test/webview_controller_test.mocks.dart index 343a7ad5689..25675c9d197 100644 --- a/packages/webview_flutter/webview_flutter/test/webview_controller_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter/test/webview_controller_test.mocks.dart @@ -374,6 +374,17 @@ class MockPlatformWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); + @override + _i5.Future setOnScrollPositionChange( + void Function(_i2.ScrollPositionChange)? onScrollPositionChange) => + (super.noSuchMethod( + Invocation.method( + #setOnScrollPositionChange, + [onScrollPositionChange], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); } /// A class which mocks [PlatformNavigationDelegate]. diff --git a/packages/webview_flutter/webview_flutter/test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter/test/webview_flutter_test.dart index 8ceac19f686..f2ab6726141 100644 --- a/packages/webview_flutter/webview_flutter/test/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter/test/webview_flutter_test.dart @@ -40,6 +40,8 @@ void main() { // ignore: unnecessary_statements main_file.ProgressCallback; // ignore: unnecessary_statements + main_file.ScrollPositionChange; + // ignore: unnecessary_statements main_file.WebViewPermissionResourceType; // ignore: unnecessary_statements main_file.WebResourceError; diff --git a/packages/webview_flutter/webview_flutter/test/webview_widget_test.mocks.dart b/packages/webview_flutter/webview_flutter/test/webview_widget_test.mocks.dart index aeff7808371..1b9138a1fbf 100644 --- a/packages/webview_flutter/webview_flutter/test/webview_widget_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter/test/webview_widget_test.mocks.dart @@ -392,6 +392,17 @@ class MockPlatformWebViewController extends _i1.Mock returnValue: _i7.Future.value(), returnValueForMissingStub: _i7.Future.value(), ) as _i7.Future); + @override + _i7.Future setOnScrollPositionChange( + void Function(_i2.ScrollPositionChange)? onScrollPositionChange) => + (super.noSuchMethod( + Invocation.method( + #setOnScrollPositionChange, + [onScrollPositionChange], + ), + returnValue: _i7.Future.value(), + returnValueForMissingStub: _i7.Future.value(), + ) as _i7.Future); } /// A class which mocks [PlatformWebViewWidget]. From b0153f9ee84ae86cb0dd7aebff1ae3ebeea01d72 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 4 Oct 2023 23:15:07 -0400 Subject: [PATCH 15/20] formatting --- .../GeneratedAndroidWebView.java | 1219 +++++++++++------ .../lib/src/android_webview.g.dart | 667 +++++---- .../test/test_android_webview.g.dart | 879 ++++++++---- .../webview_flutter_test.dart | 6 +- .../ios/Classes/FWFScrollViewHostApi.m | 6 +- .../test/src/ui_kit/ui_kit_test.dart | 6 +- 6 files changed, 1824 insertions(+), 959 deletions(-) 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 7a935ffefee..e749f22c40a 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 @@ -18,7 +18,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -35,8 +34,7 @@ public static class FlutterError extends RuntimeException { /** The error details. Must be a datatype supported by the api codec. */ public final Object details; - public FlutterError(@NonNull String code, @Nullable String message, @Nullable Object details) - { + public FlutterError(@NonNull String code, @Nullable String message, @Nullable Object details) { super(message); this.code = code; this.details = details; @@ -55,7 +53,7 @@ protected static ArrayList wrapError(@NonNull Throwable exception) { errorList.add(exception.toString()); errorList.add(exception.getClass().getSimpleName()); errorList.add( - "Cause: " + exception.getCause() + ", Stacktrace: " + Log.getStackTraceString(exception)); + "Cause: " + exception.getCause() + ", Stacktrace: " + Log.getStackTraceString(exception)); } return errorList; } @@ -63,26 +61,29 @@ protected static ArrayList wrapError(@NonNull Throwable exception) { /** * Mode of how to select files for a file chooser. * - * See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams. + *

See + * https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams. */ public enum FileChooserMode { /** - * Open single file and requires that the file exists before allowing the - * user to pick it. + * Open single file and requires that the file exists before allowing the user to pick it. * - * See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN. + *

See + * https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN. */ OPEN(0), /** * Similar to [open] but allows multiple files to be selected. * - * See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN_MULTIPLE. + *

See + * https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN_MULTIPLE. */ OPEN_MULTIPLE(1), /** * Allows picking a nonexistent file and saving it. * - * See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_SAVE. + *

See + * https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_SAVE. */ SAVE(2); @@ -96,44 +97,49 @@ private FileChooserMode(final int index) { /** * Indicates the type of message logged to the console. * - * See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel. + *

See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel. */ public enum ConsoleMessageLevel { /** * Indicates a message is logged for debugging. * - * See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#DEBUG. + *

See + * https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#DEBUG. */ DEBUG(0), /** * Indicates a message is provided as an error. * - * See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#ERROR. + *

See + * https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#ERROR. */ ERROR(1), /** * Indicates a message is provided as a basic log message. * - * See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#LOG. + *

See + * https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#LOG. */ LOG(2), /** * Indicates a message is provided as a tip. * - * See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#TIP. + *

See + * https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#TIP. */ TIP(3), /** * Indicates a message is provided as a warning. * - * See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#WARNING. + *

See + * https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#WARNING. */ WARNING(4), /** * Indicates a message with an unknown level. * - * This does not represent an actual value provided by the platform and only - * indicates a value was provided that isn't currently supported. + *

This does not represent an actual value provided by the platform and only indicates a + * value was provided that isn't currently supported. */ UNKNOWN(5); @@ -376,7 +382,10 @@ ArrayList toList() { static @NonNull WebResourceErrorData fromList(@NonNull ArrayList list) { WebResourceErrorData pigeonResult = new WebResourceErrorData(); Object errorCode = list.get(0); - pigeonResult.setErrorCode((errorCode == null) ? null : ((errorCode instanceof Integer) ? (Integer) errorCode : (Long) errorCode)); + pigeonResult.setErrorCode( + (errorCode == null) + ? null + : ((errorCode instanceof Integer) ? (Integer) errorCode : (Long) errorCode)); Object description = list.get(1); pigeonResult.setDescription((String) description); return pigeonResult; @@ -459,9 +468,9 @@ ArrayList toList() { /** * Represents a JavaScript console message from WebCore. * - * See https://developer.android.com/reference/android/webkit/ConsoleMessage + *

See https://developer.android.com/reference/android/webkit/ConsoleMessage * - * Generated class from Pigeon that represents data sent in messages. + *

Generated class from Pigeon that represents data sent in messages. */ public static final class ConsoleMessage { private @NonNull Long lineNumber; @@ -572,7 +581,10 @@ ArrayList toList() { static @NonNull ConsoleMessage fromList(@NonNull ArrayList list) { ConsoleMessage pigeonResult = new ConsoleMessage(); Object lineNumber = list.get(0); - pigeonResult.setLineNumber((lineNumber == null) ? null : ((lineNumber instanceof Integer) ? (Integer) lineNumber : (Long) lineNumber)); + pigeonResult.setLineNumber( + (lineNumber == null) + ? null + : ((lineNumber instanceof Integer) ? (Integer) lineNumber : (Long) lineNumber)); Object message = list.get(1); pigeonResult.setMessage((String) message); Object level = list.get(2); @@ -592,13 +604,13 @@ public interface Result { /** * Host API for managing the native `InstanceManager`. * - * Generated interface from Pigeon that represents a handler of messages from Flutter. + *

Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface InstanceManagerHostApi { /** * Clear the native `InstanceManager`. * - * This is typically only used after a hot restart. + *

This is typically only used after a hot restart. */ void clear(); @@ -606,12 +618,18 @@ public interface InstanceManagerHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `InstanceManagerHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable InstanceManagerHostApi api) { + /** + * Sets up an instance of `InstanceManagerHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable InstanceManagerHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.InstanceManagerHostApi.clear", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.InstanceManagerHostApi.clear", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -619,8 +637,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable InstanceMa try { api.clear(); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -635,11 +652,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable InstanceMa /** * Handles methods calls to the native Java Object class. * - * Also handles calls to remove the reference to an instance with `dispose`. + *

Also handles calls to remove the reference to an instance with `dispose`. * - * See https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. + *

See https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. * - * Generated interface from Pigeon that represents a handler of messages from Flutter. + *

Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface JavaObjectHostApi { @@ -649,12 +666,16 @@ public interface JavaObjectHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `JavaObjectHostApi` to handle messages through the `binaryMessenger`. */ + /** + * Sets up an instance of `JavaObjectHostApi` to handle messages through the `binaryMessenger`. + */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable JavaObjectHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.JavaObjectHostApi.dispose", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.JavaObjectHostApi.dispose", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -664,8 +685,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable JavaObject try { api.dispose((identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -680,9 +700,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable JavaObject /** * Handles callbacks methods for the native Java Object class. * - * See https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. + *

See https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. * - * Generated class from Pigeon that represents Flutter messages that can be called from Java. + *

Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class JavaObjectFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -691,7 +711,7 @@ public JavaObjectFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -700,10 +720,13 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } + public void dispose(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.JavaObjectFlutterApi.dispose", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.JavaObjectFlutterApi.dispose", + getCodec()); channel.send( new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); @@ -712,11 +735,11 @@ public void dispose(@NonNull Long identifierArg, @NonNull Reply callback) /** * Host API for `CookieManager`. * - * This class may handle instantiating and adding native object instances that - * are attached to a Dart instance or handle method calls on the associated - * native class or an instance of the class. + *

This class may handle instantiating and adding native object instances that are attached to + * a Dart instance or handle method calls on the associated native class or an instance of the + * class. * - * Generated interface from Pigeon that represents a handler of messages from Flutter. + *

Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface CookieManagerHostApi { /** Handles attaching `CookieManager.instance` to a native instance. */ @@ -726,18 +749,25 @@ public interface CookieManagerHostApi { /** Handles Dart method `CookieManager.removeAllCookies`. */ void removeAllCookies(@NonNull Long identifier, @NonNull Result result); /** Handles Dart method `CookieManager.setAcceptThirdPartyCookies`. */ - void setAcceptThirdPartyCookies(@NonNull Long identifier, @NonNull Long webViewIdentifier, @NonNull Boolean accept); + void setAcceptThirdPartyCookies( + @NonNull Long identifier, @NonNull Long webViewIdentifier, @NonNull Boolean accept); /** The codec used by CookieManagerHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `CookieManagerHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CookieManagerHostApi api) { + /** + * Sets up an instance of `CookieManagerHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable CookieManagerHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.attachInstance", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.attachInstance", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -745,10 +775,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CookieMana ArrayList args = (ArrayList) message; Number instanceIdentifierArg = (Number) args.get(0); try { - api.attachInstance((instanceIdentifierArg == null) ? null : instanceIdentifierArg.longValue()); + api.attachInstance( + (instanceIdentifierArg == null) ? null : instanceIdentifierArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -761,7 +791,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CookieMana { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setCookie", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setCookie", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -771,10 +803,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CookieMana String urlArg = (String) args.get(1); String valueArg = (String) args.get(2); try { - api.setCookie((identifierArg == null) ? null : identifierArg.longValue(), urlArg, valueArg); + api.setCookie( + (identifierArg == null) ? null : identifierArg.longValue(), urlArg, valueArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -787,7 +819,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CookieMana { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.removeAllCookies", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.removeAllCookies", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -807,7 +841,8 @@ public void error(Throwable error) { } }; - api.removeAllCookies((identifierArg == null) ? null : identifierArg.longValue(), resultCallback); + api.removeAllCookies( + (identifierArg == null) ? null : identifierArg.longValue(), resultCallback); }); } else { channel.setMessageHandler(null); @@ -816,7 +851,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -826,10 +863,12 @@ public void error(Throwable error) { Number webViewIdentifierArg = (Number) args.get(1); Boolean acceptArg = (Boolean) args.get(2); try { - api.setAcceptThirdPartyCookies((identifierArg == null) ? null : identifierArg.longValue(), (webViewIdentifierArg == null) ? null : webViewIdentifierArg.longValue(), acceptArg); + api.setAcceptThirdPartyCookies( + (identifierArg == null) ? null : identifierArg.longValue(), + (webViewIdentifierArg == null) ? null : webViewIdentifierArg.longValue(), + acceptArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -873,21 +912,32 @@ public interface WebViewHostApi { void create(@NonNull Long instanceId); - void loadData(@NonNull Long instanceId, @NonNull String data, @Nullable String mimeType, @Nullable String encoding); + void loadData( + @NonNull Long instanceId, + @NonNull String data, + @Nullable String mimeType, + @Nullable String encoding); - void loadDataWithBaseUrl(@NonNull Long instanceId, @Nullable String baseUrl, @NonNull String data, @Nullable String mimeType, @Nullable String encoding, @Nullable String historyUrl); + void loadDataWithBaseUrl( + @NonNull Long instanceId, + @Nullable String baseUrl, + @NonNull String data, + @Nullable String mimeType, + @Nullable String encoding, + @Nullable String historyUrl); - void loadUrl(@NonNull Long instanceId, @NonNull String url, @NonNull Map headers); + void loadUrl( + @NonNull Long instanceId, @NonNull String url, @NonNull Map headers); void postUrl(@NonNull Long instanceId, @NonNull String url, @NonNull byte[] data); - @Nullable + @Nullable String getUrl(@NonNull Long instanceId); - @NonNull + @NonNull Boolean canGoBack(@NonNull Long instanceId); - @NonNull + @NonNull Boolean canGoForward(@NonNull Long instanceId); void goBack(@NonNull Long instanceId); @@ -898,22 +948,23 @@ public interface WebViewHostApi { void clearCache(@NonNull Long instanceId, @NonNull Boolean includeDiskFiles); - void evaluateJavascript(@NonNull Long instanceId, @NonNull String javascriptString, @NonNull Result result); + void evaluateJavascript( + @NonNull Long instanceId, @NonNull String javascriptString, @NonNull Result result); - @Nullable + @Nullable String getTitle(@NonNull Long instanceId); void scrollTo(@NonNull Long instanceId, @NonNull Long x, @NonNull Long y); void scrollBy(@NonNull Long instanceId, @NonNull Long x, @NonNull Long y); - @NonNull + @NonNull Long getScrollX(@NonNull Long instanceId); - @NonNull + @NonNull Long getScrollY(@NonNull Long instanceId); - @NonNull + @NonNull WebViewPoint getScrollPosition(@NonNull Long instanceId); void setWebContentsDebuggingEnabled(@NonNull Boolean enabled); @@ -922,7 +973,8 @@ public interface WebViewHostApi { void addJavaScriptChannel(@NonNull Long instanceId, @NonNull Long javaScriptChannelInstanceId); - void removeJavaScriptChannel(@NonNull Long instanceId, @NonNull Long javaScriptChannelInstanceId); + void removeJavaScriptChannel( + @NonNull Long instanceId, @NonNull Long javaScriptChannelInstanceId); void setDownloadListener(@NonNull Long instanceId, @Nullable Long listenerInstanceId); @@ -934,12 +986,14 @@ public interface WebViewHostApi { static @NonNull MessageCodec getCodec() { return WebViewHostApiCodec.INSTANCE; } - /**Sets up an instance of `WebViewHostApi` to handle messages through the `binaryMessenger`. */ + /** Sets up an instance of `WebViewHostApi` to handle messages through the `binaryMessenger`. */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.create", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -949,8 +1003,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos try { api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -963,7 +1016,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadData", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadData", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -974,10 +1029,13 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos String mimeTypeArg = (String) args.get(2); String encodingArg = (String) args.get(3); try { - api.loadData((instanceIdArg == null) ? null : instanceIdArg.longValue(), dataArg, mimeTypeArg, encodingArg); + api.loadData( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + dataArg, + mimeTypeArg, + encodingArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -990,7 +1048,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadDataWithBaseUrl", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadDataWithBaseUrl", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1003,10 +1063,15 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos String encodingArg = (String) args.get(4); String historyUrlArg = (String) args.get(5); try { - api.loadDataWithBaseUrl((instanceIdArg == null) ? null : instanceIdArg.longValue(), baseUrlArg, dataArg, mimeTypeArg, encodingArg, historyUrlArg); + api.loadDataWithBaseUrl( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + baseUrlArg, + dataArg, + mimeTypeArg, + encodingArg, + historyUrlArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1019,7 +1084,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1029,10 +1096,12 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos String urlArg = (String) args.get(1); Map headersArg = (Map) args.get(2); try { - api.loadUrl((instanceIdArg == null) ? null : instanceIdArg.longValue(), urlArg, headersArg); + api.loadUrl( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + urlArg, + headersArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1045,7 +1114,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.postUrl", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.postUrl", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1055,10 +1126,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos String urlArg = (String) args.get(1); byte[] dataArg = (byte[]) args.get(2); try { - api.postUrl((instanceIdArg == null) ? null : instanceIdArg.longValue(), urlArg, dataArg); + api.postUrl( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), urlArg, dataArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1071,7 +1142,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getUrl", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getUrl", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1079,10 +1152,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - String output = api.getUrl((instanceIdArg == null) ? null : instanceIdArg.longValue()); + String output = + api.getUrl((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1095,7 +1168,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoBack", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoBack", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1103,10 +1178,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - Boolean output = api.canGoBack((instanceIdArg == null) ? null : instanceIdArg.longValue()); + Boolean output = + api.canGoBack((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1119,7 +1194,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoForward", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoForward", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1127,10 +1204,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - Boolean output = api.canGoForward((instanceIdArg == null) ? null : instanceIdArg.longValue()); + Boolean output = + api.canGoForward((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1143,7 +1220,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goBack", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goBack", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1153,8 +1232,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos try { api.goBack((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1167,7 +1245,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goForward", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goForward", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1177,8 +1257,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos try { api.goForward((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1191,7 +1270,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.reload", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.reload", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1201,8 +1282,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos try { api.reload((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1215,7 +1295,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.clearCache", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.clearCache", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1224,10 +1306,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos Number instanceIdArg = (Number) args.get(0); Boolean includeDiskFilesArg = (Boolean) args.get(1); try { - api.clearCache((instanceIdArg == null) ? null : instanceIdArg.longValue(), includeDiskFilesArg); + api.clearCache( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + includeDiskFilesArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1240,7 +1323,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewHos { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1261,7 +1346,10 @@ public void error(Throwable error) { } }; - api.evaluateJavascript((instanceIdArg == null) ? null : instanceIdArg.longValue(), javascriptStringArg, resultCallback); + api.evaluateJavascript( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + javascriptStringArg, + resultCallback); }); } else { channel.setMessageHandler(null); @@ -1270,7 +1358,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getTitle", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getTitle", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1278,10 +1368,10 @@ public void error(Throwable error) { ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - String output = api.getTitle((instanceIdArg == null) ? null : instanceIdArg.longValue()); + String output = + api.getTitle((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1294,7 +1384,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollTo", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollTo", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1304,10 +1396,12 @@ public void error(Throwable error) { Number xArg = (Number) args.get(1); Number yArg = (Number) args.get(2); try { - api.scrollTo((instanceIdArg == null) ? null : instanceIdArg.longValue(), (xArg == null) ? null : xArg.longValue(), (yArg == null) ? null : yArg.longValue()); + api.scrollTo( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + (xArg == null) ? null : xArg.longValue(), + (yArg == null) ? null : yArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1320,7 +1414,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollBy", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollBy", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1330,10 +1426,12 @@ public void error(Throwable error) { Number xArg = (Number) args.get(1); Number yArg = (Number) args.get(2); try { - api.scrollBy((instanceIdArg == null) ? null : instanceIdArg.longValue(), (xArg == null) ? null : xArg.longValue(), (yArg == null) ? null : yArg.longValue()); + api.scrollBy( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + (xArg == null) ? null : xArg.longValue(), + (yArg == null) ? null : yArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1346,7 +1444,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollX", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollX", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1354,10 +1454,10 @@ public void error(Throwable error) { ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - Long output = api.getScrollX((instanceIdArg == null) ? null : instanceIdArg.longValue()); + Long output = + api.getScrollX((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1370,7 +1470,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollY", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollY", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1378,10 +1480,10 @@ public void error(Throwable error) { ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - Long output = api.getScrollY((instanceIdArg == null) ? null : instanceIdArg.longValue()); + Long output = + api.getScrollY((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1394,7 +1496,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollPosition", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollPosition", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1402,10 +1506,11 @@ public void error(Throwable error) { ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - WebViewPoint output = api.getScrollPosition((instanceIdArg == null) ? null : instanceIdArg.longValue()); + WebViewPoint output = + api.getScrollPosition( + (instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1418,7 +1523,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1428,8 +1535,7 @@ public void error(Throwable error) { try { api.setWebContentsDebuggingEnabled(enabledArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1442,7 +1548,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebViewClient", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebViewClient", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1451,10 +1559,13 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number webViewClientInstanceIdArg = (Number) args.get(1); try { - api.setWebViewClient((instanceIdArg == null) ? null : instanceIdArg.longValue(), (webViewClientInstanceIdArg == null) ? null : webViewClientInstanceIdArg.longValue()); + api.setWebViewClient( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + (webViewClientInstanceIdArg == null) + ? null + : webViewClientInstanceIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1467,7 +1578,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1476,10 +1589,13 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number javaScriptChannelInstanceIdArg = (Number) args.get(1); try { - api.addJavaScriptChannel((instanceIdArg == null) ? null : instanceIdArg.longValue(), (javaScriptChannelInstanceIdArg == null) ? null : javaScriptChannelInstanceIdArg.longValue()); + api.addJavaScriptChannel( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + (javaScriptChannelInstanceIdArg == null) + ? null + : javaScriptChannelInstanceIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1492,7 +1608,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1501,10 +1619,13 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number javaScriptChannelInstanceIdArg = (Number) args.get(1); try { - api.removeJavaScriptChannel((instanceIdArg == null) ? null : instanceIdArg.longValue(), (javaScriptChannelInstanceIdArg == null) ? null : javaScriptChannelInstanceIdArg.longValue()); + api.removeJavaScriptChannel( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + (javaScriptChannelInstanceIdArg == null) + ? null + : javaScriptChannelInstanceIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1517,7 +1638,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setDownloadListener", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setDownloadListener", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1526,10 +1649,11 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number listenerInstanceIdArg = (Number) args.get(1); try { - api.setDownloadListener((instanceIdArg == null) ? null : instanceIdArg.longValue(), (listenerInstanceIdArg == null) ? null : listenerInstanceIdArg.longValue()); + api.setDownloadListener( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + (listenerInstanceIdArg == null) ? null : listenerInstanceIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1542,7 +1666,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebChromeClient", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebChromeClient", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1551,10 +1677,11 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number clientInstanceIdArg = (Number) args.get(1); try { - api.setWebChromeClient((instanceIdArg == null) ? null : instanceIdArg.longValue(), (clientInstanceIdArg == null) ? null : clientInstanceIdArg.longValue()); + api.setWebChromeClient( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + (clientInstanceIdArg == null) ? null : clientInstanceIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1567,7 +1694,9 @@ public void error(Throwable error) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setBackgroundColor", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setBackgroundColor", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1576,10 +1705,11 @@ public void error(Throwable error) { Number instanceIdArg = (Number) args.get(0); Number colorArg = (Number) args.get(1); try { - api.setBackgroundColor((instanceIdArg == null) ? null : instanceIdArg.longValue(), (colorArg == null) ? null : colorArg.longValue()); + api.setBackgroundColor( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + (colorArg == null) ? null : colorArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1594,13 +1724,12 @@ public void error(Throwable error) { /** * Flutter API for `WebView`. * - * This class may handle instantiating and adding Dart instances that are - * attached to a native instance or receiving callback methods from an - * overridden native class. + *

This class may handle instantiating and adding Dart instances that are attached to a native + * instance or receiving callback methods from an overridden native class. * - * See https://developer.android.com/reference/android/webkit/WebView. + *

See https://developer.android.com/reference/android/webkit/WebView. * - * Generated class from Pigeon that represents Flutter messages that can be called from Java. + *

Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class WebViewFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -1609,7 +1738,7 @@ public WebViewFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -1622,17 +1751,29 @@ public interface Reply { public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.create", + getCodec()); channel.send( new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); } - public void onScrollChanged(@NonNull Long webViewInstanceIdArg, @NonNull Long leftArg, @NonNull Long topArg, @NonNull Long oldLeftArg, @NonNull Long oldTopArg, @NonNull Reply callback) { + + public void onScrollChanged( + @NonNull Long webViewInstanceIdArg, + @NonNull Long leftArg, + @NonNull Long topArg, + @NonNull Long oldLeftArg, + @NonNull Long oldTopArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged", + getCodec()); channel.send( - new ArrayList(Arrays.asList(webViewInstanceIdArg, leftArg, topArg, oldLeftArg, oldTopArg)), + new ArrayList( + Arrays.asList(webViewInstanceIdArg, leftArg, topArg, oldLeftArg, oldTopArg)), channelReply -> callback.reply(null)); } } @@ -1667,19 +1808,23 @@ public interface WebSettingsHostApi { void setTextZoom(@NonNull Long instanceId, @NonNull Long textZoom); - @NonNull + @NonNull String getUserAgentString(@NonNull Long instanceId); /** The codec used by WebSettingsHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `WebSettingsHostApi` to handle messages through the `binaryMessenger`. */ + /** + * Sets up an instance of `WebSettingsHostApi` to handle messages through the `binaryMessenger`. + */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSettingsHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.create", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1688,10 +1833,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Number webViewInstanceIdArg = (Number) args.get(1); try { - api.create((instanceIdArg == null) ? null : instanceIdArg.longValue(), (webViewInstanceIdArg == null) ? null : webViewInstanceIdArg.longValue()); + api.create( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + (webViewInstanceIdArg == null) ? null : webViewInstanceIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1704,7 +1850,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDomStorageEnabled", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDomStorageEnabled", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1713,10 +1861,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean flagArg = (Boolean) args.get(1); try { - api.setDomStorageEnabled((instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); + api.setDomStorageEnabled( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1729,7 +1877,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1738,10 +1888,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean flagArg = (Boolean) args.get(1); try { - api.setJavaScriptCanOpenWindowsAutomatically((instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); + api.setJavaScriptCanOpenWindowsAutomatically( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1754,7 +1904,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportMultipleWindows", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportMultipleWindows", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1763,10 +1915,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean supportArg = (Boolean) args.get(1); try { - api.setSupportMultipleWindows((instanceIdArg == null) ? null : instanceIdArg.longValue(), supportArg); + api.setSupportMultipleWindows( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), supportArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1779,7 +1931,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptEnabled", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptEnabled", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1788,10 +1942,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean flagArg = (Boolean) args.get(1); try { - api.setJavaScriptEnabled((instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); + api.setJavaScriptEnabled( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), flagArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1804,7 +1958,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUserAgentString", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUserAgentString", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1813,10 +1969,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); String userAgentStringArg = (String) args.get(1); try { - api.setUserAgentString((instanceIdArg == null) ? null : instanceIdArg.longValue(), userAgentStringArg); + api.setUserAgentString( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + userAgentStringArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1829,7 +1986,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1838,10 +1997,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean requireArg = (Boolean) args.get(1); try { - api.setMediaPlaybackRequiresUserGesture((instanceIdArg == null) ? null : instanceIdArg.longValue(), requireArg); + api.setMediaPlaybackRequiresUserGesture( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), requireArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1854,7 +2013,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportZoom", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportZoom", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1863,10 +2024,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean supportArg = (Boolean) args.get(1); try { - api.setSupportZoom((instanceIdArg == null) ? null : instanceIdArg.longValue(), supportArg); + api.setSupportZoom( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), supportArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1879,7 +2040,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setLoadWithOverviewMode", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setLoadWithOverviewMode", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1888,10 +2051,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean overviewArg = (Boolean) args.get(1); try { - api.setLoadWithOverviewMode((instanceIdArg == null) ? null : instanceIdArg.longValue(), overviewArg); + api.setLoadWithOverviewMode( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), overviewArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1904,7 +2067,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUseWideViewPort", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUseWideViewPort", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1913,10 +2078,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean useArg = (Boolean) args.get(1); try { - api.setUseWideViewPort((instanceIdArg == null) ? null : instanceIdArg.longValue(), useArg); + api.setUseWideViewPort( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), useArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1929,7 +2094,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDisplayZoomControls", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDisplayZoomControls", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1938,10 +2105,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean enabledArg = (Boolean) args.get(1); try { - api.setDisplayZoomControls((instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); + api.setDisplayZoomControls( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1954,7 +2121,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setBuiltInZoomControls", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setBuiltInZoomControls", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1963,10 +2132,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean enabledArg = (Boolean) args.get(1); try { - api.setBuiltInZoomControls((instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); + api.setBuiltInZoomControls( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -1979,7 +2148,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setAllowFileAccess", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setAllowFileAccess", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -1988,10 +2159,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Boolean enabledArg = (Boolean) args.get(1); try { - api.setAllowFileAccess((instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); + api.setAllowFileAccess( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), enabledArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2004,7 +2175,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setTextZoom", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setTextZoom", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2013,10 +2186,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting Number instanceIdArg = (Number) args.get(0); Number textZoomArg = (Number) args.get(1); try { - api.setTextZoom((instanceIdArg == null) ? null : instanceIdArg.longValue(), (textZoomArg == null) ? null : textZoomArg.longValue()); + api.setTextZoom( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + (textZoomArg == null) ? null : textZoomArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2029,7 +2203,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.getUserAgentString", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.getUserAgentString", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2037,10 +2213,11 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebSetting ArrayList args = (ArrayList) message; Number instanceIdArg = (Number) args.get(0); try { - String output = api.getUserAgentString((instanceIdArg == null) ? null : instanceIdArg.longValue()); + String output = + api.getUserAgentString( + (instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2061,12 +2238,18 @@ public interface JavaScriptChannelHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `JavaScriptChannelHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable JavaScriptChannelHostApi api) { + /** + * Sets up an instance of `JavaScriptChannelHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable JavaScriptChannelHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelHostApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelHostApi.create", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2075,10 +2258,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable JavaScript Number instanceIdArg = (Number) args.get(0); String channelNameArg = (String) args.get(1); try { - api.create((instanceIdArg == null) ? null : instanceIdArg.longValue(), channelNameArg); + api.create( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), channelNameArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2098,7 +2281,7 @@ public JavaScriptChannelFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2107,10 +2290,14 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void postMessage(@NonNull Long instanceIdArg, @NonNull String messageArg, @NonNull Reply callback) { + + public void postMessage( + @NonNull Long instanceIdArg, @NonNull String messageArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelFlutterApi.postMessage", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelFlutterApi.postMessage", + getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, messageArg)), channelReply -> callback.reply(null)); @@ -2121,18 +2308,25 @@ public interface WebViewClientHostApi { void create(@NonNull Long instanceId); - void setSynchronousReturnValueForShouldOverrideUrlLoading(@NonNull Long instanceId, @NonNull Boolean value); + void setSynchronousReturnValueForShouldOverrideUrlLoading( + @NonNull Long instanceId, @NonNull Boolean value); /** The codec used by WebViewClientHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `WebViewClientHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewClientHostApi api) { + /** + * Sets up an instance of `WebViewClientHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable WebViewClientHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.create", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2142,8 +2336,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewCli try { api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2156,7 +2349,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewCli { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2165,10 +2360,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebViewCli Number instanceIdArg = (Number) args.get(0); Boolean valueArg = (Boolean) args.get(1); try { - api.setSynchronousReturnValueForShouldOverrideUrlLoading((instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); + api.setSynchronousReturnValueForShouldOverrideUrlLoading( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2220,7 +2415,7 @@ public WebViewClientFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2229,60 +2424,121 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return WebViewClientFlutterApiCodec.INSTANCE; } - public void onPageStarted(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull String urlArg, @NonNull Reply callback) { + + public void onPageStarted( + @NonNull Long instanceIdArg, + @NonNull Long webViewInstanceIdArg, + @NonNull String urlArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageStarted", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageStarted", + getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg)), channelReply -> callback.reply(null)); } - public void onPageFinished(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull String urlArg, @NonNull Reply callback) { + + public void onPageFinished( + @NonNull Long instanceIdArg, + @NonNull Long webViewInstanceIdArg, + @NonNull String urlArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageFinished", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageFinished", + getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg)), channelReply -> callback.reply(null)); } - public void onReceivedRequestError(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull WebResourceRequestData requestArg, @NonNull WebResourceErrorData errorArg, @NonNull Reply callback) { + + public void onReceivedRequestError( + @NonNull Long instanceIdArg, + @NonNull Long webViewInstanceIdArg, + @NonNull WebResourceRequestData requestArg, + @NonNull WebResourceErrorData errorArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError", + getCodec()); channel.send( - new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, requestArg, errorArg)), + new ArrayList( + Arrays.asList(instanceIdArg, webViewInstanceIdArg, requestArg, errorArg)), channelReply -> callback.reply(null)); } - public void onReceivedError(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull Long errorCodeArg, @NonNull String descriptionArg, @NonNull String failingUrlArg, @NonNull Reply callback) { + + public void onReceivedError( + @NonNull Long instanceIdArg, + @NonNull Long webViewInstanceIdArg, + @NonNull Long errorCodeArg, + @NonNull String descriptionArg, + @NonNull String failingUrlArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedError", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedError", + getCodec()); channel.send( - new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, errorCodeArg, descriptionArg, failingUrlArg)), + new ArrayList( + Arrays.asList( + instanceIdArg, + webViewInstanceIdArg, + errorCodeArg, + descriptionArg, + failingUrlArg)), channelReply -> callback.reply(null)); } - public void requestLoading(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull WebResourceRequestData requestArg, @NonNull Reply callback) { + + public void requestLoading( + @NonNull Long instanceIdArg, + @NonNull Long webViewInstanceIdArg, + @NonNull WebResourceRequestData requestArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.requestLoading", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.requestLoading", + getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, requestArg)), channelReply -> callback.reply(null)); } - public void urlLoading(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull String urlArg, @NonNull Reply callback) { + + public void urlLoading( + @NonNull Long instanceIdArg, + @NonNull Long webViewInstanceIdArg, + @NonNull String urlArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.urlLoading", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.urlLoading", + getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg)), channelReply -> callback.reply(null)); } - public void doUpdateVisitedHistory(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull String urlArg, @NonNull Boolean isReloadArg, @NonNull Reply callback) { + + public void doUpdateVisitedHistory( + @NonNull Long instanceIdArg, + @NonNull Long webViewInstanceIdArg, + @NonNull String urlArg, + @NonNull Boolean isReloadArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.doUpdateVisitedHistory", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.doUpdateVisitedHistory", + getCodec()); channel.send( - new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg, isReloadArg)), + new ArrayList( + Arrays.asList(instanceIdArg, webViewInstanceIdArg, urlArg, isReloadArg)), channelReply -> callback.reply(null)); } } @@ -2295,12 +2551,18 @@ public interface DownloadListenerHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `DownloadListenerHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DownloadListenerHostApi api) { + /** + * Sets up an instance of `DownloadListenerHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable DownloadListenerHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.DownloadListenerHostApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.DownloadListenerHostApi.create", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2310,8 +2572,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable DownloadLi try { api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2331,7 +2592,7 @@ public DownloadListenerFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2340,12 +2601,29 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void onDownloadStart(@NonNull Long instanceIdArg, @NonNull String urlArg, @NonNull String userAgentArg, @NonNull String contentDispositionArg, @NonNull String mimetypeArg, @NonNull Long contentLengthArg, @NonNull Reply callback) { + + public void onDownloadStart( + @NonNull Long instanceIdArg, + @NonNull String urlArg, + @NonNull String userAgentArg, + @NonNull String contentDispositionArg, + @NonNull String mimetypeArg, + @NonNull Long contentLengthArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.DownloadListenerFlutterApi.onDownloadStart", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.DownloadListenerFlutterApi.onDownloadStart", + getCodec()); channel.send( - new ArrayList(Arrays.asList(instanceIdArg, urlArg, userAgentArg, contentDispositionArg, mimetypeArg, contentLengthArg)), + new ArrayList( + Arrays.asList( + instanceIdArg, + urlArg, + userAgentArg, + contentDispositionArg, + mimetypeArg, + contentLengthArg)), channelReply -> callback.reply(null)); } } @@ -2354,20 +2632,28 @@ public interface WebChromeClientHostApi { void create(@NonNull Long instanceId); - void setSynchronousReturnValueForOnShowFileChooser(@NonNull Long instanceId, @NonNull Boolean value); + void setSynchronousReturnValueForOnShowFileChooser( + @NonNull Long instanceId, @NonNull Boolean value); - void setSynchronousReturnValueForOnConsoleMessage(@NonNull Long instanceId, @NonNull Boolean value); + void setSynchronousReturnValueForOnConsoleMessage( + @NonNull Long instanceId, @NonNull Boolean value); /** The codec used by WebChromeClientHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `WebChromeClientHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebChromeClientHostApi api) { + /** + * Sets up an instance of `WebChromeClientHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable WebChromeClientHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.create", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2377,8 +2663,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebChromeC try { api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2391,7 +2676,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebChromeC { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2400,10 +2687,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebChromeC Number instanceIdArg = (Number) args.get(0); Boolean valueArg = (Boolean) args.get(1); try { - api.setSynchronousReturnValueForOnShowFileChooser((instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); + api.setSynchronousReturnValueForOnShowFileChooser( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2416,7 +2703,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebChromeC { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2425,10 +2714,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebChromeC Number instanceIdArg = (Number) args.get(0); Boolean valueArg = (Boolean) args.get(1); try { - api.setSynchronousReturnValueForOnConsoleMessage((instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); + api.setSynchronousReturnValueForOnConsoleMessage( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), valueArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2443,22 +2732,28 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebChromeC /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface FlutterAssetManagerHostApi { - @NonNull + @NonNull List list(@NonNull String path); - @NonNull + @NonNull String getAssetFilePathByName(@NonNull String name); /** The codec used by FlutterAssetManagerHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `FlutterAssetManagerHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FlutterAssetManagerHostApi api) { + /** + * Sets up an instance of `FlutterAssetManagerHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable FlutterAssetManagerHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.list", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.list", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2468,8 +2763,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FlutterAss try { List output = api.list(pathArg); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2482,7 +2776,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FlutterAss { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.getAssetFilePathByName", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.getAssetFilePathByName", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2492,8 +2788,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FlutterAss try { String output = api.getAssetFilePathByName(nameArg); wrapped.add(0, output); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2507,7 +2802,8 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable FlutterAss } private static class WebChromeClientFlutterApiCodec extends StandardMessageCodec { - public static final WebChromeClientFlutterApiCodec INSTANCE = new WebChromeClientFlutterApiCodec(); + public static final WebChromeClientFlutterApiCodec INSTANCE = + new WebChromeClientFlutterApiCodec(); private WebChromeClientFlutterApiCodec() {} @@ -2540,7 +2836,7 @@ public WebChromeClientFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2549,20 +2845,35 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return WebChromeClientFlutterApiCodec.INSTANCE; } - public void onProgressChanged(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull Long progressArg, @NonNull Reply callback) { + + public void onProgressChanged( + @NonNull Long instanceIdArg, + @NonNull Long webViewInstanceIdArg, + @NonNull Long progressArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onProgressChanged", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onProgressChanged", + getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, progressArg)), channelReply -> callback.reply(null)); } - public void onShowFileChooser(@NonNull Long instanceIdArg, @NonNull Long webViewInstanceIdArg, @NonNull Long paramsInstanceIdArg, @NonNull Reply> callback) { + + public void onShowFileChooser( + @NonNull Long instanceIdArg, + @NonNull Long webViewInstanceIdArg, + @NonNull Long paramsInstanceIdArg, + @NonNull Reply> callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowFileChooser", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowFileChooser", + getCodec()); channel.send( - new ArrayList(Arrays.asList(instanceIdArg, webViewInstanceIdArg, paramsInstanceIdArg)), + new ArrayList( + Arrays.asList(instanceIdArg, webViewInstanceIdArg, paramsInstanceIdArg)), channelReply -> { @SuppressWarnings("ConstantConditions") List output = (List) channelReply; @@ -2570,55 +2881,83 @@ public void onShowFileChooser(@NonNull Long instanceIdArg, @NonNull Long webView }); } /** Callback to Dart function `WebChromeClient.onPermissionRequest`. */ - public void onPermissionRequest(@NonNull Long instanceIdArg, @NonNull Long requestInstanceIdArg, @NonNull Reply callback) { + public void onPermissionRequest( + @NonNull Long instanceIdArg, + @NonNull Long requestInstanceIdArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onPermissionRequest", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onPermissionRequest", + getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, requestInstanceIdArg)), channelReply -> callback.reply(null)); } /** Callback to Dart function `WebChromeClient.onShowCustomView`. */ - public void onShowCustomView(@NonNull Long instanceIdArg, @NonNull Long viewIdentifierArg, @NonNull Long callbackIdentifierArg, @NonNull Reply callback) { + public void onShowCustomView( + @NonNull Long instanceIdArg, + @NonNull Long viewIdentifierArg, + @NonNull Long callbackIdentifierArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowCustomView", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowCustomView", + getCodec()); channel.send( - new ArrayList(Arrays.asList(instanceIdArg, viewIdentifierArg, callbackIdentifierArg)), + new ArrayList( + Arrays.asList(instanceIdArg, viewIdentifierArg, callbackIdentifierArg)), channelReply -> callback.reply(null)); } /** Callback to Dart function `WebChromeClient.onHideCustomView`. */ public void onHideCustomView(@NonNull Long instanceIdArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onHideCustomView", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onHideCustomView", + getCodec()); channel.send( new ArrayList(Collections.singletonList(instanceIdArg)), channelReply -> callback.reply(null)); } /** Callback to Dart function `WebChromeClient.onGeolocationPermissionsShowPrompt`. */ - public void onGeolocationPermissionsShowPrompt(@NonNull Long instanceIdArg, @NonNull Long paramsInstanceIdArg, @NonNull String originArg, @NonNull Reply callback) { + public void onGeolocationPermissionsShowPrompt( + @NonNull Long instanceIdArg, + @NonNull Long paramsInstanceIdArg, + @NonNull String originArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsShowPrompt", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsShowPrompt", + getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, paramsInstanceIdArg, originArg)), channelReply -> callback.reply(null)); } /** Callback to Dart function `WebChromeClient.onGeolocationPermissionsHidePrompt`. */ - public void onGeolocationPermissionsHidePrompt(@NonNull Long identifierArg, @NonNull Reply callback) { + public void onGeolocationPermissionsHidePrompt( + @NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsHidePrompt", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsHidePrompt", + getCodec()); channel.send( new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); } /** Callback to Dart function `WebChromeClient.onConsoleMessage`. */ - public void onConsoleMessage(@NonNull Long instanceIdArg, @NonNull ConsoleMessage messageArg, @NonNull Reply callback) { + public void onConsoleMessage( + @NonNull Long instanceIdArg, + @NonNull ConsoleMessage messageArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onConsoleMessage", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onConsoleMessage", + getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, messageArg)), channelReply -> callback.reply(null)); @@ -2635,12 +2974,16 @@ public interface WebStorageHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `WebStorageHostApi` to handle messages through the `binaryMessenger`. */ + /** + * Sets up an instance of `WebStorageHostApi` to handle messages through the `binaryMessenger`. + */ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebStorageHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.create", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2650,8 +2993,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebStorage try { api.create((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2664,7 +3006,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebStorage { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.deleteAllData", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.deleteAllData", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2674,8 +3018,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebStorage try { api.deleteAllData((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2690,9 +3033,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable WebStorage /** * Handles callbacks methods for the native Java FileChooserParams class. * - * See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams. + *

See + * https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams. * - * Generated class from Pigeon that represents Flutter messages that can be called from Java. + *

Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class FileChooserParamsFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -2701,7 +3045,7 @@ public FileChooserParamsFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2710,25 +3054,40 @@ public interface Reply { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - public void create(@NonNull Long instanceIdArg, @NonNull Boolean isCaptureEnabledArg, @NonNull List acceptTypesArg, @NonNull FileChooserMode modeArg, @Nullable String filenameHintArg, @NonNull Reply callback) { + + public void create( + @NonNull Long instanceIdArg, + @NonNull Boolean isCaptureEnabledArg, + @NonNull List acceptTypesArg, + @NonNull FileChooserMode modeArg, + @Nullable String filenameHintArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create", + getCodec()); channel.send( - new ArrayList(Arrays.asList(instanceIdArg, isCaptureEnabledArg, acceptTypesArg, modeArg.index, filenameHintArg)), + new ArrayList( + Arrays.asList( + instanceIdArg, + isCaptureEnabledArg, + acceptTypesArg, + modeArg.index, + filenameHintArg)), channelReply -> callback.reply(null)); } } /** * Host API for `PermissionRequest`. * - * This class may handle instantiating and adding native object instances that - * are attached to a Dart instance or handle method calls on the associated - * native class or an instance of the class. + *

This class may handle instantiating and adding native object instances that are attached to + * a Dart instance or handle method calls on the associated native class or an instance of the + * class. * - * See https://developer.android.com/reference/android/webkit/PermissionRequest. + *

See https://developer.android.com/reference/android/webkit/PermissionRequest. * - * Generated interface from Pigeon that represents a handler of messages from Flutter. + *

Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface PermissionRequestHostApi { /** Handles Dart method `PermissionRequest.grant`. */ @@ -2740,12 +3099,18 @@ public interface PermissionRequestHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `PermissionRequestHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable PermissionRequestHostApi api) { + /** + * Sets up an instance of `PermissionRequestHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable PermissionRequestHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2754,10 +3119,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable Permission Number instanceIdArg = (Number) args.get(0); List resourcesArg = (List) args.get(1); try { - api.grant((instanceIdArg == null) ? null : instanceIdArg.longValue(), resourcesArg); + api.grant( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), resourcesArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2770,7 +3135,9 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable Permission { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.deny", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.deny", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2780,8 +3147,7 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable Permission try { api.deny((instanceIdArg == null) ? null : instanceIdArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2796,13 +3162,12 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable Permission /** * Flutter API for `PermissionRequest`. * - * This class may handle instantiating and adding Dart instances that are - * attached to a native instance or receiving callback methods from an - * overridden native class. + *

This class may handle instantiating and adding Dart instances that are attached to a native + * instance or receiving callback methods from an overridden native class. * - * See https://developer.android.com/reference/android/webkit/PermissionRequest. + *

See https://developer.android.com/reference/android/webkit/PermissionRequest. * - * Generated class from Pigeon that represents Flutter messages that can be called from Java. + *

Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class PermissionRequestFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -2811,7 +3176,7 @@ public PermissionRequestFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2821,10 +3186,15 @@ public interface Reply { return new StandardMessageCodec(); } /** Create a new Dart instance and add it to the `InstanceManager`. */ - public void create(@NonNull Long instanceIdArg, @NonNull List resourcesArg, @NonNull Reply callback) { + public void create( + @NonNull Long instanceIdArg, + @NonNull List resourcesArg, + @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.PermissionRequestFlutterApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.PermissionRequestFlutterApi.create", + getCodec()); channel.send( new ArrayList(Arrays.asList(instanceIdArg, resourcesArg)), channelReply -> callback.reply(null)); @@ -2833,13 +3203,14 @@ public void create(@NonNull Long instanceIdArg, @NonNull List resourcesA /** * Host API for `CustomViewCallback`. * - * This class may handle instantiating and adding native object instances that - * are attached to a Dart instance or handle method calls on the associated - * native class or an instance of the class. + *

This class may handle instantiating and adding native object instances that are attached to + * a Dart instance or handle method calls on the associated native class or an instance of the + * class. * - * See https://developer.android.com/reference/android/webkit/WebChromeClient.CustomViewCallback. + *

See + * https://developer.android.com/reference/android/webkit/WebChromeClient.CustomViewCallback. * - * Generated interface from Pigeon that represents a handler of messages from Flutter. + *

Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface CustomViewCallbackHostApi { /** Handles Dart method `CustomViewCallback.onCustomViewHidden`. */ @@ -2849,12 +3220,18 @@ public interface CustomViewCallbackHostApi { static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `CustomViewCallbackHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CustomViewCallbackHostApi api) { + /** + * Sets up an instance of `CustomViewCallbackHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, @Nullable CustomViewCallbackHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackHostApi.onCustomViewHidden", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackHostApi.onCustomViewHidden", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2862,10 +3239,10 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CustomView ArrayList args = (ArrayList) message; Number identifierArg = (Number) args.get(0); try { - api.onCustomViewHidden((identifierArg == null) ? null : identifierArg.longValue()); + api.onCustomViewHidden( + (identifierArg == null) ? null : identifierArg.longValue()); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -2880,13 +3257,13 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable CustomView /** * Flutter API for `CustomViewCallback`. * - * This class may handle instantiating and adding Dart instances that are - * attached to a native instance or receiving callback methods from an - * overridden native class. + *

This class may handle instantiating and adding Dart instances that are attached to a native + * instance or receiving callback methods from an overridden native class. * - * See https://developer.android.com/reference/android/webkit/WebChromeClient.CustomViewCallback. + *

See + * https://developer.android.com/reference/android/webkit/WebChromeClient.CustomViewCallback. * - * Generated class from Pigeon that represents Flutter messages that can be called from Java. + *

Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class CustomViewCallbackFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -2895,7 +3272,7 @@ public CustomViewCallbackFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2908,7 +3285,9 @@ public interface Reply { public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackFlutterApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackFlutterApi.create", + getCodec()); channel.send( new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); @@ -2917,13 +3296,12 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { /** * Flutter API for `View`. * - * This class may handle instantiating and adding Dart instances that are - * attached to a native instance or receiving callback methods from an - * overridden native class. + *

This class may handle instantiating and adding Dart instances that are attached to a native + * instance or receiving callback methods from an overridden native class. * - * See https://developer.android.com/reference/android/view/View. + *

See https://developer.android.com/reference/android/view/View. * - * Generated class from Pigeon that represents Flutter messages that can be called from Java. + *

Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class ViewFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -2932,7 +3310,7 @@ public ViewFlutterApi(@NonNull BinaryMessenger argBinaryMessenger) { this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -2945,7 +3323,9 @@ public interface Reply { public void create(@NonNull Long identifierArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.ViewFlutterApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.ViewFlutterApi.create", + getCodec()); channel.send( new ArrayList(Collections.singletonList(identifierArg)), channelReply -> callback.reply(null)); @@ -2954,28 +3334,39 @@ public void create(@NonNull Long identifierArg, @NonNull Reply callback) { /** * Host API for `GeolocationPermissionsCallback`. * - * This class may handle instantiating and adding native object instances that - * are attached to a Dart instance or handle method calls on the associated - * native class or an instance of the class. + *

This class may handle instantiating and adding native object instances that are attached to + * a Dart instance or handle method calls on the associated native class or an instance of the + * class. * - * See https://developer.android.com/reference/android/webkit/GeolocationPermissions.Callback. + *

See https://developer.android.com/reference/android/webkit/GeolocationPermissions.Callback. * - * Generated interface from Pigeon that represents a handler of messages from Flutter. + *

Generated interface from Pigeon that represents a handler of messages from Flutter. */ public interface GeolocationPermissionsCallbackHostApi { /** Handles Dart method `GeolocationPermissionsCallback.invoke`. */ - void invoke(@NonNull Long instanceId, @NonNull String origin, @NonNull Boolean allow, @NonNull Boolean retain); + void invoke( + @NonNull Long instanceId, + @NonNull String origin, + @NonNull Boolean allow, + @NonNull Boolean retain); /** The codec used by GeolocationPermissionsCallbackHostApi. */ static @NonNull MessageCodec getCodec() { return new StandardMessageCodec(); } - /**Sets up an instance of `GeolocationPermissionsCallbackHostApi` to handle messages through the `binaryMessenger`. */ - static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable GeolocationPermissionsCallbackHostApi api) { + /** + * Sets up an instance of `GeolocationPermissionsCallbackHostApi` to handle messages through the + * `binaryMessenger`. + */ + static void setup( + @NonNull BinaryMessenger binaryMessenger, + @Nullable GeolocationPermissionsCallbackHostApi api) { { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackHostApi.invoke", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackHostApi.invoke", + getCodec()); if (api != null) { channel.setMessageHandler( (message, reply) -> { @@ -2986,10 +3377,13 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable Geolocatio Boolean allowArg = (Boolean) args.get(2); Boolean retainArg = (Boolean) args.get(3); try { - api.invoke((instanceIdArg == null) ? null : instanceIdArg.longValue(), originArg, allowArg, retainArg); + api.invoke( + (instanceIdArg == null) ? null : instanceIdArg.longValue(), + originArg, + allowArg, + retainArg); wrapped.add(0, null); - } - catch (Throwable exception) { + } catch (Throwable exception) { ArrayList wrappedError = wrapError(exception); wrapped = wrappedError; } @@ -3004,13 +3398,12 @@ static void setup(@NonNull BinaryMessenger binaryMessenger, @Nullable Geolocatio /** * Flutter API for `GeolocationPermissionsCallback`. * - * This class may handle instantiating and adding Dart instances that are - * attached to a native instance or receiving callback methods from an - * overridden native class. + *

This class may handle instantiating and adding Dart instances that are attached to a native + * instance or receiving callback methods from an overridden native class. * - * See https://developer.android.com/reference/android/webkit/GeolocationPermissions.Callback. + *

See https://developer.android.com/reference/android/webkit/GeolocationPermissions.Callback. * - * Generated class from Pigeon that represents Flutter messages that can be called from Java. + *

Generated class from Pigeon that represents Flutter messages that can be called from Java. */ public static class GeolocationPermissionsCallbackFlutterApi { private final @NonNull BinaryMessenger binaryMessenger; @@ -3019,7 +3412,7 @@ public GeolocationPermissionsCallbackFlutterApi(@NonNull BinaryMessenger argBina this.binaryMessenger = argBinaryMessenger; } - /** Public interface for sending reply. */ + /** Public interface for sending reply. */ @SuppressWarnings("UnknownNullness") public interface Reply { void reply(T reply); @@ -3032,7 +3425,9 @@ public interface Reply { public void create(@NonNull Long instanceIdArg, @NonNull Reply callback) { BasicMessageChannel channel = new BasicMessageChannel<>( - binaryMessenger, "dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackFlutterApi.create", getCodec()); + binaryMessenger, + "dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackFlutterApi.create", + getCodec()); channel.send( new ArrayList(Collections.singletonList(instanceIdArg)), channelReply -> callback.reply(null)); 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 0b101ba9b5a..33d9fb1d55f 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 @@ -20,10 +20,12 @@ enum FileChooserMode { /// /// See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN. open, + /// Similar to [open] but allows multiple files to be selected. /// /// See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_OPEN_MULTIPLE. openMultiple, + /// Allows picking a nonexistent file and saving it. /// /// See https://developer.android.com/reference/android/webkit/WebChromeClient.FileChooserParams#MODE_SAVE. @@ -38,22 +40,27 @@ enum ConsoleMessageLevel { /// /// See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#DEBUG. debug, + /// Indicates a message is provided as an error. /// /// See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#ERROR. error, + /// Indicates a message is provided as a basic log message. /// /// See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#LOG. log, + /// Indicates a message is provided as a tip. /// /// See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#TIP. tip, + /// Indicates a message is provided as a warning. /// /// See https://developer.android.com/reference/android/webkit/ConsoleMessage.MessageLevel#WARNING. warning, + /// Indicates a message with an unknown level. /// /// This does not represent an actual value provided by the platform and only @@ -102,7 +109,8 @@ class WebResourceRequestData { isRedirect: result[2] as bool?, hasGesture: result[3]! as bool, method: result[4]! as String, - requestHeaders: (result[5] as Map?)!.cast(), + requestHeaders: + (result[5] as Map?)!.cast(), ); } } @@ -214,10 +222,10 @@ class InstanceManagerHostApi { /// This is typically only used after a hot restart. Future clear() async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.InstanceManagerHostApi.clear', codec, + 'dev.flutter.pigeon.webview_flutter_android.InstanceManagerHostApi.clear', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send(null) as List?; + final List? replyList = await channel.send(null) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -252,7 +260,8 @@ class JavaObjectHostApi { Future dispose(int arg_identifier) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.JavaObjectHostApi.dispose', codec, + 'dev.flutter.pigeon.webview_flutter_android.JavaObjectHostApi.dispose', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_identifier]) as List?; @@ -281,17 +290,19 @@ abstract class JavaObjectFlutterApi { void dispose(int identifier); - static void setup(JavaObjectFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(JavaObjectFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.JavaObjectFlutterApi.dispose', codec, + 'dev.flutter.pigeon.webview_flutter_android.JavaObjectFlutterApi.dispose', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.JavaObjectFlutterApi.dispose was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.JavaObjectFlutterApi.dispose was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -322,7 +333,8 @@ class CookieManagerHostApi { /// Handles attaching `CookieManager.instance` to a native instance. Future attachInstance(int arg_instanceIdentifier) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.attachInstance', codec, + 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.attachInstance', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceIdentifier]) as List?; @@ -343,12 +355,14 @@ class CookieManagerHostApi { } /// Handles Dart method `CookieManager.setCookie`. - Future setCookie(int arg_identifier, String arg_url, String arg_value) async { + Future setCookie( + int arg_identifier, String arg_url, String arg_value) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setCookie', codec, + 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setCookie', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_url, arg_value]) as List?; + final List? replyList = await channel + .send([arg_identifier, arg_url, arg_value]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -368,7 +382,8 @@ class CookieManagerHostApi { /// Handles Dart method `CookieManager.removeAllCookies`. Future removeAllCookies(int arg_identifier) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.removeAllCookies', codec, + 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.removeAllCookies', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_identifier]) as List?; @@ -394,12 +409,15 @@ class CookieManagerHostApi { } /// Handles Dart method `CookieManager.setAcceptThirdPartyCookies`. - Future setAcceptThirdPartyCookies(int arg_identifier, int arg_webViewIdentifier, bool arg_accept) async { + Future setAcceptThirdPartyCookies( + int arg_identifier, int arg_webViewIdentifier, bool arg_accept) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies', codec, + 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_webViewIdentifier, arg_accept]) as List?; + final List? replyList = await channel + .send([arg_identifier, arg_webViewIdentifier, arg_accept]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -432,7 +450,7 @@ class _WebViewHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return WebViewPoint.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -452,7 +470,8 @@ class WebViewHostApi { Future create(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.create', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -472,12 +491,15 @@ class WebViewHostApi { } } - Future loadData(int arg_instanceId, String arg_data, String? arg_mimeType, String? arg_encoding) async { + Future loadData(int arg_instanceId, String arg_data, + String? arg_mimeType, String? arg_encoding) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadData', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadData', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_data, arg_mimeType, arg_encoding]) as List?; + final List? replyList = await channel.send( + [arg_instanceId, arg_data, arg_mimeType, arg_encoding]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -494,12 +516,25 @@ class WebViewHostApi { } } - Future loadDataWithBaseUrl(int arg_instanceId, String? arg_baseUrl, String arg_data, String? arg_mimeType, String? arg_encoding, String? arg_historyUrl) async { + Future loadDataWithBaseUrl( + int arg_instanceId, + String? arg_baseUrl, + String arg_data, + String? arg_mimeType, + String? arg_encoding, + String? arg_historyUrl) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadDataWithBaseUrl', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadDataWithBaseUrl', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_baseUrl, arg_data, arg_mimeType, arg_encoding, arg_historyUrl]) as List?; + final List? replyList = await channel.send([ + arg_instanceId, + arg_baseUrl, + arg_data, + arg_mimeType, + arg_encoding, + arg_historyUrl + ]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -516,12 +551,15 @@ class WebViewHostApi { } } - Future loadUrl(int arg_instanceId, String arg_url, Map arg_headers) async { + Future loadUrl(int arg_instanceId, String arg_url, + Map arg_headers) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl', + codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_url, arg_headers]) as List?; + await channel.send([arg_instanceId, arg_url, arg_headers]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -538,12 +576,14 @@ class WebViewHostApi { } } - Future postUrl(int arg_instanceId, String arg_url, Uint8List arg_data) async { + Future postUrl( + int arg_instanceId, String arg_url, Uint8List arg_data) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.postUrl', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.postUrl', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_url, arg_data]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_url, arg_data]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -562,7 +602,8 @@ class WebViewHostApi { Future getUrl(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getUrl', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getUrl', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -584,7 +625,8 @@ class WebViewHostApi { Future canGoBack(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoBack', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoBack', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -611,7 +653,8 @@ class WebViewHostApi { Future canGoForward(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoForward', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoForward', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -638,7 +681,8 @@ class WebViewHostApi { Future goBack(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goBack', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goBack', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -660,7 +704,8 @@ class WebViewHostApi { Future goForward(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goForward', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goForward', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -682,7 +727,8 @@ class WebViewHostApi { Future reload(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.reload', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.reload', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -704,10 +750,12 @@ class WebViewHostApi { Future clearCache(int arg_instanceId, bool arg_includeDiskFiles) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.clearCache', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.clearCache', + codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_includeDiskFiles]) as List?; + await channel.send([arg_instanceId, arg_includeDiskFiles]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -724,12 +772,15 @@ class WebViewHostApi { } } - Future evaluateJavascript(int arg_instanceId, String arg_javascriptString) async { + Future evaluateJavascript( + int arg_instanceId, String arg_javascriptString) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript', + codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_javascriptString]) as List?; + await channel.send([arg_instanceId, arg_javascriptString]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -748,7 +799,8 @@ class WebViewHostApi { Future getTitle(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getTitle', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getTitle', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -770,10 +822,11 @@ class WebViewHostApi { Future scrollTo(int arg_instanceId, int arg_x, int arg_y) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollTo', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollTo', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_x, arg_y]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_x, arg_y]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -792,10 +845,11 @@ class WebViewHostApi { Future scrollBy(int arg_instanceId, int arg_x, int arg_y) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollBy', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollBy', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_x, arg_y]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_x, arg_y]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -814,7 +868,8 @@ class WebViewHostApi { Future getScrollX(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollX', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollX', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -841,7 +896,8 @@ class WebViewHostApi { Future getScrollY(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollY', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollY', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -868,7 +924,8 @@ class WebViewHostApi { Future getScrollPosition(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollPosition', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollPosition', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -895,7 +952,8 @@ class WebViewHostApi { Future setWebContentsDebuggingEnabled(bool arg_enabled) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_enabled]) as List?; @@ -915,12 +973,15 @@ class WebViewHostApi { } } - Future setWebViewClient(int arg_instanceId, int arg_webViewClientInstanceId) async { + Future setWebViewClient( + int arg_instanceId, int arg_webViewClientInstanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebViewClient', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebViewClient', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_webViewClientInstanceId]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_webViewClientInstanceId]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -937,12 +998,15 @@ class WebViewHostApi { } } - Future addJavaScriptChannel(int arg_instanceId, int arg_javaScriptChannelInstanceId) async { + Future addJavaScriptChannel( + int arg_instanceId, int arg_javaScriptChannelInstanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_javaScriptChannelInstanceId]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_javaScriptChannelInstanceId]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -959,12 +1023,15 @@ class WebViewHostApi { } } - Future removeJavaScriptChannel(int arg_instanceId, int arg_javaScriptChannelInstanceId) async { + Future removeJavaScriptChannel( + int arg_instanceId, int arg_javaScriptChannelInstanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_javaScriptChannelInstanceId]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_javaScriptChannelInstanceId]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -981,12 +1048,15 @@ class WebViewHostApi { } } - Future setDownloadListener(int arg_instanceId, int? arg_listenerInstanceId) async { + Future setDownloadListener( + int arg_instanceId, int? arg_listenerInstanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setDownloadListener', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setDownloadListener', + codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_listenerInstanceId]) as List?; + await channel.send([arg_instanceId, arg_listenerInstanceId]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1003,12 +1073,15 @@ class WebViewHostApi { } } - Future setWebChromeClient(int arg_instanceId, int? arg_clientInstanceId) async { + Future setWebChromeClient( + int arg_instanceId, int? arg_clientInstanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebChromeClient', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebChromeClient', + codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_clientInstanceId]) as List?; + await channel.send([arg_instanceId, arg_clientInstanceId]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1027,10 +1100,11 @@ class WebViewHostApi { Future setBackgroundColor(int arg_instanceId, int arg_color) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setBackgroundColor', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setBackgroundColor', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_color]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_color]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1061,19 +1135,22 @@ abstract class WebViewFlutterApi { /// Create a new Dart instance and add it to the `InstanceManager`. void create(int identifier); - void onScrollChanged(int webViewInstanceId, int left, int top, int oldLeft, int oldTop); + void onScrollChanged( + int webViewInstanceId, int left, int top, int oldLeft, int oldTop); - static void setup(WebViewFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(WebViewFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.create', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1085,14 +1162,15 @@ abstract class WebViewFlutterApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged was null.'); final List args = (message as List?)!; final int? arg_webViewInstanceId = (args[0] as int?); assert(arg_webViewInstanceId != null, @@ -1109,7 +1187,8 @@ abstract class WebViewFlutterApi { final int? arg_oldTop = (args[4] as int?); assert(arg_oldTop != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewFlutterApi.onScrollChanged was null, expected non-null int.'); - api.onScrollChanged(arg_webViewInstanceId!, arg_left!, arg_top!, arg_oldLeft!, arg_oldTop!); + api.onScrollChanged(arg_webViewInstanceId!, arg_left!, arg_top!, + arg_oldLeft!, arg_oldTop!); return; }); } @@ -1129,10 +1208,12 @@ class WebSettingsHostApi { Future create(int arg_instanceId, int arg_webViewInstanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.create', + codec, binaryMessenger: _binaryMessenger); final List? replyList = - await channel.send([arg_instanceId, arg_webViewInstanceId]) as List?; + await channel.send([arg_instanceId, arg_webViewInstanceId]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1151,10 +1232,11 @@ class WebSettingsHostApi { Future setDomStorageEnabled(int arg_instanceId, bool arg_flag) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDomStorageEnabled', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDomStorageEnabled', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_flag]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_flag]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1171,12 +1253,14 @@ class WebSettingsHostApi { } } - Future setJavaScriptCanOpenWindowsAutomatically(int arg_instanceId, bool arg_flag) async { + Future setJavaScriptCanOpenWindowsAutomatically( + int arg_instanceId, bool arg_flag) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_flag]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_flag]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1193,12 +1277,14 @@ class WebSettingsHostApi { } } - Future setSupportMultipleWindows(int arg_instanceId, bool arg_support) async { + Future setSupportMultipleWindows( + int arg_instanceId, bool arg_support) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportMultipleWindows', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportMultipleWindows', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_support]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_support]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1217,10 +1303,11 @@ class WebSettingsHostApi { Future setJavaScriptEnabled(int arg_instanceId, bool arg_flag) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptEnabled', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptEnabled', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_flag]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_flag]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1237,12 +1324,14 @@ class WebSettingsHostApi { } } - Future setUserAgentString(int arg_instanceId, String? arg_userAgentString) async { + Future setUserAgentString( + int arg_instanceId, String? arg_userAgentString) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUserAgentString', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUserAgentString', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_userAgentString]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_userAgentString]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1259,12 +1348,14 @@ class WebSettingsHostApi { } } - Future setMediaPlaybackRequiresUserGesture(int arg_instanceId, bool arg_require) async { + Future setMediaPlaybackRequiresUserGesture( + int arg_instanceId, bool arg_require) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_require]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_require]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1283,10 +1374,11 @@ class WebSettingsHostApi { Future setSupportZoom(int arg_instanceId, bool arg_support) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportZoom', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportZoom', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_support]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_support]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1303,12 +1395,14 @@ class WebSettingsHostApi { } } - Future setLoadWithOverviewMode(int arg_instanceId, bool arg_overview) async { + Future setLoadWithOverviewMode( + int arg_instanceId, bool arg_overview) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setLoadWithOverviewMode', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setLoadWithOverviewMode', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_overview]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_overview]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1327,10 +1421,11 @@ class WebSettingsHostApi { Future setUseWideViewPort(int arg_instanceId, bool arg_use) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUseWideViewPort', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUseWideViewPort', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_use]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_use]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1347,12 +1442,14 @@ class WebSettingsHostApi { } } - Future setDisplayZoomControls(int arg_instanceId, bool arg_enabled) async { + Future setDisplayZoomControls( + int arg_instanceId, bool arg_enabled) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDisplayZoomControls', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDisplayZoomControls', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_enabled]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_enabled]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1369,12 +1466,14 @@ class WebSettingsHostApi { } } - Future setBuiltInZoomControls(int arg_instanceId, bool arg_enabled) async { + Future setBuiltInZoomControls( + int arg_instanceId, bool arg_enabled) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setBuiltInZoomControls', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setBuiltInZoomControls', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_enabled]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_enabled]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1393,10 +1492,11 @@ class WebSettingsHostApi { Future setAllowFileAccess(int arg_instanceId, bool arg_enabled) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setAllowFileAccess', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setAllowFileAccess', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_enabled]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_enabled]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1415,10 +1515,11 @@ class WebSettingsHostApi { Future setTextZoom(int arg_instanceId, int arg_textZoom) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setTextZoom', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setTextZoom', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_textZoom]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_textZoom]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1437,7 +1538,8 @@ class WebSettingsHostApi { Future getUserAgentString(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.getUserAgentString', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.getUserAgentString', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -1475,10 +1577,11 @@ class JavaScriptChannelHostApi { Future create(int arg_instanceId, String arg_channelName) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelHostApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelHostApi.create', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_channelName]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_channelName]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1501,17 +1604,19 @@ abstract class JavaScriptChannelFlutterApi { void postMessage(int instanceId, String message); - static void setup(JavaScriptChannelFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(JavaScriptChannelFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelFlutterApi.postMessage', codec, + 'dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelFlutterApi.postMessage', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelFlutterApi.postMessage was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelFlutterApi.postMessage was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1539,7 +1644,8 @@ class WebViewClientHostApi { Future create(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.create', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -1559,12 +1665,14 @@ class WebViewClientHostApi { } } - Future setSynchronousReturnValueForShouldOverrideUrlLoading(int arg_instanceId, bool arg_value) async { + Future setSynchronousReturnValueForShouldOverrideUrlLoading( + int arg_instanceId, bool arg_value) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_value]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_value]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1600,9 +1708,9 @@ class _WebViewClientFlutterApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return WebResourceErrorData.decode(readValue(buffer)!); - case 129: + case 129: return WebResourceRequestData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -1617,27 +1725,33 @@ abstract class WebViewClientFlutterApi { void onPageFinished(int instanceId, int webViewInstanceId, String url); - void onReceivedRequestError(int instanceId, int webViewInstanceId, WebResourceRequestData request, WebResourceErrorData error); + void onReceivedRequestError(int instanceId, int webViewInstanceId, + WebResourceRequestData request, WebResourceErrorData error); - void onReceivedError(int instanceId, int webViewInstanceId, int errorCode, String description, String failingUrl); + void onReceivedError(int instanceId, int webViewInstanceId, int errorCode, + String description, String failingUrl); - void requestLoading(int instanceId, int webViewInstanceId, WebResourceRequestData request); + void requestLoading( + int instanceId, int webViewInstanceId, WebResourceRequestData request); void urlLoading(int instanceId, int webViewInstanceId, String url); - void doUpdateVisitedHistory(int instanceId, int webViewInstanceId, String url, bool isReload); + void doUpdateVisitedHistory( + int instanceId, int webViewInstanceId, String url, bool isReload); - static void setup(WebViewClientFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(WebViewClientFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageStarted', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageStarted', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageStarted was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageStarted was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1655,14 +1769,15 @@ abstract class WebViewClientFlutterApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageFinished', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageFinished', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageFinished was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onPageFinished was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1680,14 +1795,15 @@ abstract class WebViewClientFlutterApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1695,27 +1811,31 @@ abstract class WebViewClientFlutterApi { final int? arg_webViewInstanceId = (args[1] as int?); assert(arg_webViewInstanceId != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError was null, expected non-null int.'); - final WebResourceRequestData? arg_request = (args[2] as WebResourceRequestData?); + final WebResourceRequestData? arg_request = + (args[2] as WebResourceRequestData?); assert(arg_request != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError was null, expected non-null WebResourceRequestData.'); - final WebResourceErrorData? arg_error = (args[3] as WebResourceErrorData?); + final WebResourceErrorData? arg_error = + (args[3] as WebResourceErrorData?); assert(arg_error != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedRequestError was null, expected non-null WebResourceErrorData.'); - api.onReceivedRequestError(arg_instanceId!, arg_webViewInstanceId!, arg_request!, arg_error!); + api.onReceivedRequestError(arg_instanceId!, arg_webViewInstanceId!, + arg_request!, arg_error!); return; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedError', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedError', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedError was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedError was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1732,21 +1852,23 @@ abstract class WebViewClientFlutterApi { final String? arg_failingUrl = (args[4] as String?); assert(arg_failingUrl != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.onReceivedError was null, expected non-null String.'); - api.onReceivedError(arg_instanceId!, arg_webViewInstanceId!, arg_errorCode!, arg_description!, arg_failingUrl!); + api.onReceivedError(arg_instanceId!, arg_webViewInstanceId!, + arg_errorCode!, arg_description!, arg_failingUrl!); return; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.requestLoading', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.requestLoading', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.requestLoading was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.requestLoading was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1754,24 +1876,27 @@ abstract class WebViewClientFlutterApi { final int? arg_webViewInstanceId = (args[1] as int?); assert(arg_webViewInstanceId != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.requestLoading was null, expected non-null int.'); - final WebResourceRequestData? arg_request = (args[2] as WebResourceRequestData?); + final WebResourceRequestData? arg_request = + (args[2] as WebResourceRequestData?); assert(arg_request != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.requestLoading was null, expected non-null WebResourceRequestData.'); - api.requestLoading(arg_instanceId!, arg_webViewInstanceId!, arg_request!); + api.requestLoading( + arg_instanceId!, arg_webViewInstanceId!, arg_request!); return; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.urlLoading', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.urlLoading', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.urlLoading was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.urlLoading was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1789,14 +1914,15 @@ abstract class WebViewClientFlutterApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.doUpdateVisitedHistory', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.doUpdateVisitedHistory', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.doUpdateVisitedHistory was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.doUpdateVisitedHistory was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1810,7 +1936,8 @@ abstract class WebViewClientFlutterApi { final bool? arg_isReload = (args[3] as bool?); assert(arg_isReload != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientFlutterApi.doUpdateVisitedHistory was null, expected non-null bool.'); - api.doUpdateVisitedHistory(arg_instanceId!, arg_webViewInstanceId!, arg_url!, arg_isReload!); + api.doUpdateVisitedHistory( + arg_instanceId!, arg_webViewInstanceId!, arg_url!, arg_isReload!); return; }); } @@ -1830,7 +1957,8 @@ class DownloadListenerHostApi { Future create(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.DownloadListenerHostApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.DownloadListenerHostApi.create', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -1854,19 +1982,22 @@ class DownloadListenerHostApi { abstract class DownloadListenerFlutterApi { static const MessageCodec codec = StandardMessageCodec(); - void onDownloadStart(int instanceId, String url, String userAgent, String contentDisposition, String mimetype, int contentLength); + void onDownloadStart(int instanceId, String url, String userAgent, + String contentDisposition, String mimetype, int contentLength); - static void setup(DownloadListenerFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(DownloadListenerFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.DownloadListenerFlutterApi.onDownloadStart', codec, + 'dev.flutter.pigeon.webview_flutter_android.DownloadListenerFlutterApi.onDownloadStart', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.DownloadListenerFlutterApi.onDownloadStart was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.DownloadListenerFlutterApi.onDownloadStart was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1886,7 +2017,8 @@ abstract class DownloadListenerFlutterApi { final int? arg_contentLength = (args[5] as int?); assert(arg_contentLength != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.DownloadListenerFlutterApi.onDownloadStart was null, expected non-null int.'); - api.onDownloadStart(arg_instanceId!, arg_url!, arg_userAgent!, arg_contentDisposition!, arg_mimetype!, arg_contentLength!); + api.onDownloadStart(arg_instanceId!, arg_url!, arg_userAgent!, + arg_contentDisposition!, arg_mimetype!, arg_contentLength!); return; }); } @@ -1906,7 +2038,8 @@ class WebChromeClientHostApi { Future create(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.create', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -1926,12 +2059,14 @@ class WebChromeClientHostApi { } } - Future setSynchronousReturnValueForOnShowFileChooser(int arg_instanceId, bool arg_value) async { + Future setSynchronousReturnValueForOnShowFileChooser( + int arg_instanceId, bool arg_value) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_value]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_value]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1948,12 +2083,14 @@ class WebChromeClientHostApi { } } - Future setSynchronousReturnValueForOnConsoleMessage(int arg_instanceId, bool arg_value) async { + Future setSynchronousReturnValueForOnConsoleMessage( + int arg_instanceId, bool arg_value) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_value]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_value]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -1983,7 +2120,8 @@ class FlutterAssetManagerHostApi { Future> list(String arg_path) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.list', codec, + 'dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.list', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_path]) as List?; @@ -2010,7 +2148,8 @@ class FlutterAssetManagerHostApi { Future getAssetFilePathByName(String arg_name) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.getAssetFilePathByName', codec, + 'dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.getAssetFilePathByName', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_name]) as List?; @@ -2051,7 +2190,7 @@ class _WebChromeClientFlutterApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return ConsoleMessage.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -2064,19 +2203,22 @@ abstract class WebChromeClientFlutterApi { void onProgressChanged(int instanceId, int webViewInstanceId, int progress); - Future> onShowFileChooser(int instanceId, int webViewInstanceId, int paramsInstanceId); + Future> onShowFileChooser( + int instanceId, int webViewInstanceId, int paramsInstanceId); /// Callback to Dart function `WebChromeClient.onPermissionRequest`. void onPermissionRequest(int instanceId, int requestInstanceId); /// Callback to Dart function `WebChromeClient.onShowCustomView`. - void onShowCustomView(int instanceId, int viewIdentifier, int callbackIdentifier); + void onShowCustomView( + int instanceId, int viewIdentifier, int callbackIdentifier); /// Callback to Dart function `WebChromeClient.onHideCustomView`. void onHideCustomView(int instanceId); /// Callback to Dart function `WebChromeClient.onGeolocationPermissionsShowPrompt`. - void onGeolocationPermissionsShowPrompt(int instanceId, int paramsInstanceId, String origin); + void onGeolocationPermissionsShowPrompt( + int instanceId, int paramsInstanceId, String origin); /// Callback to Dart function `WebChromeClient.onGeolocationPermissionsHidePrompt`. void onGeolocationPermissionsHidePrompt(int identifier); @@ -2084,17 +2226,19 @@ abstract class WebChromeClientFlutterApi { /// Callback to Dart function `WebChromeClient.onConsoleMessage`. void onConsoleMessage(int instanceId, ConsoleMessage message); - static void setup(WebChromeClientFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(WebChromeClientFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onProgressChanged', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onProgressChanged', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onProgressChanged was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onProgressChanged was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2105,21 +2249,23 @@ abstract class WebChromeClientFlutterApi { final int? arg_progress = (args[2] as int?); assert(arg_progress != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onProgressChanged was null, expected non-null int.'); - api.onProgressChanged(arg_instanceId!, arg_webViewInstanceId!, arg_progress!); + api.onProgressChanged( + arg_instanceId!, arg_webViewInstanceId!, arg_progress!); return; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowFileChooser', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowFileChooser', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowFileChooser was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowFileChooser was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2130,21 +2276,23 @@ abstract class WebChromeClientFlutterApi { final int? arg_paramsInstanceId = (args[2] as int?); assert(arg_paramsInstanceId != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowFileChooser was null, expected non-null int.'); - final List output = await api.onShowFileChooser(arg_instanceId!, arg_webViewInstanceId!, arg_paramsInstanceId!); + final List output = await api.onShowFileChooser( + arg_instanceId!, arg_webViewInstanceId!, arg_paramsInstanceId!); return output; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onPermissionRequest', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onPermissionRequest', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onPermissionRequest was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onPermissionRequest was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2159,14 +2307,15 @@ abstract class WebChromeClientFlutterApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowCustomView', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowCustomView', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowCustomView was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowCustomView was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2177,21 +2326,23 @@ abstract class WebChromeClientFlutterApi { final int? arg_callbackIdentifier = (args[2] as int?); assert(arg_callbackIdentifier != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onShowCustomView was null, expected non-null int.'); - api.onShowCustomView(arg_instanceId!, arg_viewIdentifier!, arg_callbackIdentifier!); + api.onShowCustomView( + arg_instanceId!, arg_viewIdentifier!, arg_callbackIdentifier!); return; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onHideCustomView', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onHideCustomView', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onHideCustomView was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onHideCustomView was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2203,14 +2354,15 @@ abstract class WebChromeClientFlutterApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsShowPrompt', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsShowPrompt', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsShowPrompt was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsShowPrompt was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2221,21 +2373,23 @@ abstract class WebChromeClientFlutterApi { final String? arg_origin = (args[2] as String?); assert(arg_origin != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsShowPrompt was null, expected non-null String.'); - api.onGeolocationPermissionsShowPrompt(arg_instanceId!, arg_paramsInstanceId!, arg_origin!); + api.onGeolocationPermissionsShowPrompt( + arg_instanceId!, arg_paramsInstanceId!, arg_origin!); return; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsHidePrompt', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsHidePrompt', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsHidePrompt was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onGeolocationPermissionsHidePrompt was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2247,14 +2401,15 @@ abstract class WebChromeClientFlutterApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onConsoleMessage', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onConsoleMessage', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onConsoleMessage was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientFlutterApi.onConsoleMessage was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2282,7 +2437,8 @@ class WebStorageHostApi { Future create(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.create', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -2304,7 +2460,8 @@ class WebStorageHostApi { Future deleteAllData(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.deleteAllData', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.deleteAllData', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -2331,19 +2488,22 @@ class WebStorageHostApi { abstract class FileChooserParamsFlutterApi { static const MessageCodec codec = StandardMessageCodec(); - void create(int instanceId, bool isCaptureEnabled, List acceptTypes, FileChooserMode mode, String? filenameHint); + void create(int instanceId, bool isCaptureEnabled, List acceptTypes, + FileChooserMode mode, String? filenameHint); - static void setup(FileChooserParamsFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(FileChooserParamsFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -2351,14 +2511,17 @@ abstract class FileChooserParamsFlutterApi { final bool? arg_isCaptureEnabled = (args[1] as bool?); assert(arg_isCaptureEnabled != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create was null, expected non-null bool.'); - final List? arg_acceptTypes = (args[2] as List?)?.cast(); + final List? arg_acceptTypes = + (args[2] as List?)?.cast(); assert(arg_acceptTypes != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create was null, expected non-null List.'); - final FileChooserMode? arg_mode = args[3] == null ? null : FileChooserMode.values[args[3]! as int]; + final FileChooserMode? arg_mode = + args[3] == null ? null : FileChooserMode.values[args[3]! as int]; assert(arg_mode != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.FileChooserParamsFlutterApi.create was null, expected non-null FileChooserMode.'); final String? arg_filenameHint = (args[4] as String?); - api.create(arg_instanceId!, arg_isCaptureEnabled!, arg_acceptTypes!, arg_mode!, arg_filenameHint); + api.create(arg_instanceId!, arg_isCaptureEnabled!, arg_acceptTypes!, + arg_mode!, arg_filenameHint); return; }); } @@ -2386,10 +2549,11 @@ class PermissionRequestHostApi { /// Handles Dart method `PermissionRequest.grant`. Future grant(int arg_instanceId, List arg_resources) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant', codec, + 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_resources]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_resources]) as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2409,7 +2573,8 @@ class PermissionRequestHostApi { /// Handles Dart method `PermissionRequest.deny`. Future deny(int arg_instanceId) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.deny', codec, + 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.deny', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_instanceId]) as List?; @@ -2443,22 +2608,25 @@ abstract class PermissionRequestFlutterApi { /// Create a new Dart instance and add it to the `InstanceManager`. void create(int instanceId, List resources); - static void setup(PermissionRequestFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(PermissionRequestFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestFlutterApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestFlutterApi.create', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestFlutterApi.create was null, expected non-null int.'); - final List? arg_resources = (args[1] as List?)?.cast(); + final List? arg_resources = + (args[1] as List?)?.cast(); assert(arg_resources != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestFlutterApi.create was null, expected non-null List.'); api.create(arg_instanceId!, arg_resources!); @@ -2489,7 +2657,8 @@ class CustomViewCallbackHostApi { /// Handles Dart method `CustomViewCallback.onCustomViewHidden`. Future onCustomViewHidden(int arg_identifier) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackHostApi.onCustomViewHidden', codec, + 'dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackHostApi.onCustomViewHidden', + codec, binaryMessenger: _binaryMessenger); final List? replyList = await channel.send([arg_identifier]) as List?; @@ -2523,17 +2692,19 @@ abstract class CustomViewCallbackFlutterApi { /// Create a new Dart instance and add it to the `InstanceManager`. void create(int identifier); - static void setup(CustomViewCallbackFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(CustomViewCallbackFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackFlutterApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackFlutterApi.create', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2562,14 +2733,15 @@ abstract class ViewFlutterApi { static void setup(ViewFlutterApi? api, {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.ViewFlutterApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.ViewFlutterApi.create', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.ViewFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.ViewFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -2600,12 +2772,15 @@ class GeolocationPermissionsCallbackHostApi { static const MessageCodec codec = StandardMessageCodec(); /// Handles Dart method `GeolocationPermissionsCallback.invoke`. - Future invoke(int arg_instanceId, String arg_origin, bool arg_allow, bool arg_retain) async { + Future invoke(int arg_instanceId, String arg_origin, bool arg_allow, + bool arg_retain) async { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackHostApi.invoke', codec, + 'dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackHostApi.invoke', + codec, binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_instanceId, arg_origin, arg_allow, arg_retain]) as List?; + final List? replyList = await channel + .send([arg_instanceId, arg_origin, arg_allow, arg_retain]) + as List?; if (replyList == null) { throw PlatformException( code: 'channel-error', @@ -2636,17 +2811,19 @@ abstract class GeolocationPermissionsCallbackFlutterApi { /// Create a new Dart instance and add it to the `InstanceManager`. void create(int instanceId); - static void setup(GeolocationPermissionsCallbackFlutterApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(GeolocationPermissionsCallbackFlutterApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackFlutterApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackFlutterApi.create', + codec, binaryMessenger: binaryMessenger); if (api == null) { channel.setMessageHandler(null); } else { channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackFlutterApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackFlutterApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, 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 38802ec3ddd..9644887711d 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 @@ -15,7 +15,8 @@ import 'package:webview_flutter_android/src/android_webview.g.dart'; /// Host API for managing the native `InstanceManager`. abstract class TestInstanceManagerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); /// Clear the native `InstanceManager`. @@ -23,15 +24,20 @@ abstract class TestInstanceManagerHostApi { /// This is typically only used after a hot restart. void clear(); - static void setup(TestInstanceManagerHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestInstanceManagerHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.InstanceManagerHostApi.clear', codec, + 'dev.flutter.pigeon.webview_flutter_android.InstanceManagerHostApi.clear', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { // ignore message api.clear(); return []; @@ -47,22 +53,28 @@ abstract class TestInstanceManagerHostApi { /// /// See https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html. abstract class TestJavaObjectHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void dispose(int identifier); - static void setup(TestJavaObjectHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestJavaObjectHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.JavaObjectHostApi.dispose', codec, + 'dev.flutter.pigeon.webview_flutter_android.JavaObjectHostApi.dispose', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.JavaObjectHostApi.dispose was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.JavaObjectHostApi.dispose was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -81,7 +93,8 @@ abstract class TestJavaObjectHostApi { /// are attached to a Dart instance or handle method calls on the associated /// native class or an instance of the class. abstract class TestCookieManagerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); /// Handles attaching `CookieManager.instance` to a native instance. @@ -94,19 +107,25 @@ abstract class TestCookieManagerHostApi { Future removeAllCookies(int identifier); /// Handles Dart method `CookieManager.setAcceptThirdPartyCookies`. - void setAcceptThirdPartyCookies(int identifier, int webViewIdentifier, bool accept); + void setAcceptThirdPartyCookies( + int identifier, int webViewIdentifier, bool accept); - static void setup(TestCookieManagerHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestCookieManagerHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.attachInstance', codec, + 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.attachInstance', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.attachInstance was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.attachInstance was null.'); final List args = (message as List?)!; final int? arg_instanceIdentifier = (args[0] as int?); assert(arg_instanceIdentifier != null, @@ -118,14 +137,18 @@ abstract class TestCookieManagerHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setCookie', codec, + 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setCookie', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setCookie was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setCookie was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -143,14 +166,18 @@ abstract class TestCookieManagerHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.removeAllCookies', codec, + 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.removeAllCookies', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.removeAllCookies was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.removeAllCookies was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -162,14 +189,18 @@ abstract class TestCookieManagerHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies', codec, + 'dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -180,7 +211,8 @@ abstract class TestCookieManagerHostApi { final bool? arg_accept = (args[2] as bool?); assert(arg_accept != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.CookieManagerHostApi.setAcceptThirdPartyCookies was null, expected non-null bool.'); - api.setAcceptThirdPartyCookies(arg_identifier!, arg_webViewIdentifier!, arg_accept!); + api.setAcceptThirdPartyCookies( + arg_identifier!, arg_webViewIdentifier!, arg_accept!); return []; }); } @@ -203,7 +235,7 @@ class _TestWebViewHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 128: return WebViewPoint.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -212,14 +244,17 @@ class _TestWebViewHostApiCodec extends StandardMessageCodec { } abstract class TestWebViewHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = _TestWebViewHostApiCodec(); void create(int instanceId); - void loadData(int instanceId, String data, String? mimeType, String? encoding); + void loadData( + int instanceId, String data, String? mimeType, String? encoding); - void loadDataWithBaseUrl(int instanceId, String? baseUrl, String data, String? mimeType, String? encoding, String? historyUrl); + void loadDataWithBaseUrl(int instanceId, String? baseUrl, String data, + String? mimeType, String? encoding, String? historyUrl); void loadUrl(int instanceId, String url, Map headers); @@ -267,17 +302,22 @@ abstract class TestWebViewHostApi { void setBackgroundColor(int instanceId, int color); - static void setup(TestWebViewHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebViewHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.create', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -289,14 +329,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadData', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadData', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadData was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadData was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -313,14 +357,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadDataWithBaseUrl', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadDataWithBaseUrl', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadDataWithBaseUrl was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadDataWithBaseUrl was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -332,21 +380,26 @@ abstract class TestWebViewHostApi { final String? arg_mimeType = (args[3] as String?); final String? arg_encoding = (args[4] as String?); final String? arg_historyUrl = (args[5] as String?); - api.loadDataWithBaseUrl(arg_instanceId!, arg_baseUrl, arg_data!, arg_mimeType, arg_encoding, arg_historyUrl); + api.loadDataWithBaseUrl(arg_instanceId!, arg_baseUrl, arg_data!, + arg_mimeType, arg_encoding, arg_historyUrl); return []; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -354,7 +407,8 @@ abstract class TestWebViewHostApi { final String? arg_url = (args[1] as String?); assert(arg_url != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl was null, expected non-null String.'); - final Map? arg_headers = (args[2] as Map?)?.cast(); + final Map? arg_headers = + (args[2] as Map?)?.cast(); assert(arg_headers != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.loadUrl was null, expected non-null Map.'); api.loadUrl(arg_instanceId!, arg_url!, arg_headers!); @@ -364,14 +418,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.postUrl', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.postUrl', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.postUrl was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.postUrl was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -389,14 +447,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getUrl', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getUrl', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getUrl was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getUrl was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -408,14 +470,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoBack', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoBack', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoBack was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoBack was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -427,14 +493,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoForward', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoForward', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoForward was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.canGoForward was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -446,14 +516,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goBack', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goBack', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goBack was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goBack was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -465,14 +539,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goForward', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goForward', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goForward was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.goForward was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -484,14 +562,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.reload', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.reload', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.reload was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.reload was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -503,14 +585,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.clearCache', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.clearCache', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.clearCache was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.clearCache was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -525,14 +611,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -540,21 +630,26 @@ abstract class TestWebViewHostApi { final String? arg_javascriptString = (args[1] as String?); assert(arg_javascriptString != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.evaluateJavascript was null, expected non-null String.'); - final String? output = await api.evaluateJavascript(arg_instanceId!, arg_javascriptString!); + final String? output = await api.evaluateJavascript( + arg_instanceId!, arg_javascriptString!); return [output]; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getTitle', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getTitle', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getTitle was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getTitle was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -566,14 +661,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollTo', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollTo', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollTo was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollTo was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -591,14 +690,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollBy', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollBy', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollBy was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.scrollBy was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -616,14 +719,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollX', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollX', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollX was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollX was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -635,14 +742,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollY', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollY', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollY was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollY was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -654,14 +765,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollPosition', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollPosition', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollPosition was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.getScrollPosition was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -673,14 +788,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebContentsDebuggingEnabled was null.'); final List args = (message as List?)!; final bool? arg_enabled = (args[0] as bool?); assert(arg_enabled != null, @@ -692,14 +811,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebViewClient', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebViewClient', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebViewClient was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebViewClient was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -714,14 +837,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -729,21 +856,26 @@ abstract class TestWebViewHostApi { final int? arg_javaScriptChannelInstanceId = (args[1] as int?); assert(arg_javaScriptChannelInstanceId != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.addJavaScriptChannel was null, expected non-null int.'); - api.addJavaScriptChannel(arg_instanceId!, arg_javaScriptChannelInstanceId!); + api.addJavaScriptChannel( + arg_instanceId!, arg_javaScriptChannelInstanceId!); return []; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -751,21 +883,26 @@ abstract class TestWebViewHostApi { final int? arg_javaScriptChannelInstanceId = (args[1] as int?); assert(arg_javaScriptChannelInstanceId != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.removeJavaScriptChannel was null, expected non-null int.'); - api.removeJavaScriptChannel(arg_instanceId!, arg_javaScriptChannelInstanceId!); + api.removeJavaScriptChannel( + arg_instanceId!, arg_javaScriptChannelInstanceId!); return []; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setDownloadListener', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setDownloadListener', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setDownloadListener was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setDownloadListener was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -778,14 +915,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebChromeClient', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebChromeClient', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebChromeClient was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setWebChromeClient was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -798,14 +939,18 @@ abstract class TestWebViewHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setBackgroundColor', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setBackgroundColor', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setBackgroundColor was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewHostApi.setBackgroundColor was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -822,7 +967,8 @@ abstract class TestWebViewHostApi { } abstract class TestWebSettingsHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId, int webViewInstanceId); @@ -855,17 +1001,22 @@ abstract class TestWebSettingsHostApi { String getUserAgentString(int instanceId); - static void setup(TestWebSettingsHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebSettingsHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.create', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -880,14 +1031,18 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDomStorageEnabled', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDomStorageEnabled', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDomStorageEnabled was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDomStorageEnabled was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -902,14 +1057,18 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -917,21 +1076,26 @@ abstract class TestWebSettingsHostApi { final bool? arg_flag = (args[1] as bool?); assert(arg_flag != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptCanOpenWindowsAutomatically was null, expected non-null bool.'); - api.setJavaScriptCanOpenWindowsAutomatically(arg_instanceId!, arg_flag!); + api.setJavaScriptCanOpenWindowsAutomatically( + arg_instanceId!, arg_flag!); return []; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportMultipleWindows', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportMultipleWindows', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportMultipleWindows was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportMultipleWindows was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -946,14 +1110,18 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptEnabled', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptEnabled', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptEnabled was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setJavaScriptEnabled was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -968,14 +1136,18 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUserAgentString', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUserAgentString', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUserAgentString was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUserAgentString was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -988,14 +1160,18 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1003,21 +1179,26 @@ abstract class TestWebSettingsHostApi { final bool? arg_require = (args[1] as bool?); assert(arg_require != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setMediaPlaybackRequiresUserGesture was null, expected non-null bool.'); - api.setMediaPlaybackRequiresUserGesture(arg_instanceId!, arg_require!); + api.setMediaPlaybackRequiresUserGesture( + arg_instanceId!, arg_require!); return []; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportZoom', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportZoom', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportZoom was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setSupportZoom was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1032,14 +1213,18 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setLoadWithOverviewMode', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setLoadWithOverviewMode', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setLoadWithOverviewMode was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setLoadWithOverviewMode was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1054,14 +1239,18 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUseWideViewPort', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUseWideViewPort', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUseWideViewPort was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setUseWideViewPort was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1076,14 +1265,18 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDisplayZoomControls', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDisplayZoomControls', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDisplayZoomControls was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setDisplayZoomControls was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1098,14 +1291,18 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setBuiltInZoomControls', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setBuiltInZoomControls', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setBuiltInZoomControls was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setBuiltInZoomControls was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1120,14 +1317,18 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setAllowFileAccess', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setAllowFileAccess', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setAllowFileAccess was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setAllowFileAccess was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1142,14 +1343,18 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setTextZoom', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setTextZoom', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setTextZoom was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.setTextZoom was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1164,14 +1369,18 @@ abstract class TestWebSettingsHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.getUserAgentString', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.getUserAgentString', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.getUserAgentString was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebSettingsHostApi.getUserAgentString was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1185,22 +1394,28 @@ abstract class TestWebSettingsHostApi { } abstract class TestJavaScriptChannelHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId, String channelName); - static void setup(TestJavaScriptChannelHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestJavaScriptChannelHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelHostApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelHostApi.create', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.JavaScriptChannelHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1217,24 +1432,31 @@ abstract class TestJavaScriptChannelHostApi { } abstract class TestWebViewClientHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); - void setSynchronousReturnValueForShouldOverrideUrlLoading(int instanceId, bool value); + void setSynchronousReturnValueForShouldOverrideUrlLoading( + int instanceId, bool value); - static void setup(TestWebViewClientHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebViewClientHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.create', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1246,14 +1468,18 @@ abstract class TestWebViewClientHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1261,7 +1487,8 @@ abstract class TestWebViewClientHostApi { final bool? arg_value = (args[1] as bool?); assert(arg_value != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebViewClientHostApi.setSynchronousReturnValueForShouldOverrideUrlLoading was null, expected non-null bool.'); - api.setSynchronousReturnValueForShouldOverrideUrlLoading(arg_instanceId!, arg_value!); + api.setSynchronousReturnValueForShouldOverrideUrlLoading( + arg_instanceId!, arg_value!); return []; }); } @@ -1270,22 +1497,28 @@ abstract class TestWebViewClientHostApi { } abstract class TestDownloadListenerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); - static void setup(TestDownloadListenerHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestDownloadListenerHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.DownloadListenerHostApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.DownloadListenerHostApi.create', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.DownloadListenerHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.DownloadListenerHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1299,26 +1532,33 @@ abstract class TestDownloadListenerHostApi { } abstract class TestWebChromeClientHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); - void setSynchronousReturnValueForOnShowFileChooser(int instanceId, bool value); + void setSynchronousReturnValueForOnShowFileChooser( + int instanceId, bool value); void setSynchronousReturnValueForOnConsoleMessage(int instanceId, bool value); - static void setup(TestWebChromeClientHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebChromeClientHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.create', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1330,14 +1570,18 @@ abstract class TestWebChromeClientHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1345,21 +1589,26 @@ abstract class TestWebChromeClientHostApi { final bool? arg_value = (args[1] as bool?); assert(arg_value != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnShowFileChooser was null, expected non-null bool.'); - api.setSynchronousReturnValueForOnShowFileChooser(arg_instanceId!, arg_value!); + api.setSynchronousReturnValueForOnShowFileChooser( + arg_instanceId!, arg_value!); return []; }); } } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1367,7 +1616,8 @@ abstract class TestWebChromeClientHostApi { final bool? arg_value = (args[1] as bool?); assert(arg_value != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.WebChromeClientHostApi.setSynchronousReturnValueForOnConsoleMessage was null, expected non-null bool.'); - api.setSynchronousReturnValueForOnConsoleMessage(arg_instanceId!, arg_value!); + api.setSynchronousReturnValueForOnConsoleMessage( + arg_instanceId!, arg_value!); return []; }); } @@ -1376,24 +1626,30 @@ abstract class TestWebChromeClientHostApi { } abstract class TestAssetManagerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); List list(String path); String getAssetFilePathByName(String name); - static void setup(TestAssetManagerHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestAssetManagerHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.list', codec, + 'dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.list', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.list was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.list was null.'); final List args = (message as List?)!; final String? arg_path = (args[0] as String?); assert(arg_path != null, @@ -1405,14 +1661,18 @@ abstract class TestAssetManagerHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.getAssetFilePathByName', codec, + 'dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.getAssetFilePathByName', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.getAssetFilePathByName was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.FlutterAssetManagerHostApi.getAssetFilePathByName was null.'); final List args = (message as List?)!; final String? arg_name = (args[0] as String?); assert(arg_name != null, @@ -1426,24 +1686,30 @@ abstract class TestAssetManagerHostApi { } abstract class TestWebStorageHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); void create(int instanceId); void deleteAllData(int instanceId); - static void setup(TestWebStorageHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestWebStorageHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.create', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.create', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.create was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.create was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1455,14 +1721,18 @@ abstract class TestWebStorageHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.deleteAllData', codec, + 'dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.deleteAllData', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.deleteAllData was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.WebStorageHostApi.deleteAllData was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1483,7 +1753,8 @@ abstract class TestWebStorageHostApi { /// /// See https://developer.android.com/reference/android/webkit/PermissionRequest. abstract class TestPermissionRequestHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); /// Handles Dart method `PermissionRequest.grant`. @@ -1492,22 +1763,28 @@ abstract class TestPermissionRequestHostApi { /// Handles Dart method `PermissionRequest.deny`. void deny(int instanceId); - static void setup(TestPermissionRequestHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestPermissionRequestHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant', codec, + 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant was null, expected non-null int.'); - final List? arg_resources = (args[1] as List?)?.cast(); + final List? arg_resources = + (args[1] as List?)?.cast(); assert(arg_resources != null, 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.grant was null, expected non-null List.'); api.grant(arg_instanceId!, arg_resources!); @@ -1517,14 +1794,18 @@ abstract class TestPermissionRequestHostApi { } { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.deny', codec, + 'dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.deny', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.deny was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.PermissionRequestHostApi.deny was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, @@ -1545,23 +1826,29 @@ abstract class TestPermissionRequestHostApi { /// /// See https://developer.android.com/reference/android/webkit/WebChromeClient.CustomViewCallback. abstract class TestCustomViewCallbackHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); /// Handles Dart method `CustomViewCallback.onCustomViewHidden`. void onCustomViewHidden(int identifier); - static void setup(TestCustomViewCallbackHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestCustomViewCallbackHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackHostApi.onCustomViewHidden', codec, + 'dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackHostApi.onCustomViewHidden', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackHostApi.onCustomViewHidden was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.CustomViewCallbackHostApi.onCustomViewHidden was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); assert(arg_identifier != null, @@ -1582,23 +1869,29 @@ abstract class TestCustomViewCallbackHostApi { /// /// See https://developer.android.com/reference/android/webkit/GeolocationPermissions.Callback. abstract class TestGeolocationPermissionsCallbackHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => + TestDefaultBinaryMessengerBinding.instance; static const MessageCodec codec = StandardMessageCodec(); /// Handles Dart method `GeolocationPermissionsCallback.invoke`. void invoke(int instanceId, String origin, bool allow, bool retain); - static void setup(TestGeolocationPermissionsCallbackHostApi? api, {BinaryMessenger? binaryMessenger}) { + static void setup(TestGeolocationPermissionsCallbackHostApi? api, + {BinaryMessenger? binaryMessenger}) { { final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackHostApi.invoke', codec, + 'dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackHostApi.invoke', + codec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(channel, (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger + .setMockDecodedMessageHandler(channel, + (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackHostApi.invoke was null.'); + 'Argument for dev.flutter.pigeon.webview_flutter_android.GeolocationPermissionsCallbackHostApi.invoke was null.'); final List args = (message as List?)!; final int? arg_instanceId = (args[0] as int?); assert(arg_instanceId != null, diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart index 72794e145d6..59e26795c8a 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart @@ -780,8 +780,7 @@ Future main() async { expect(scrollPos.dy, Y_SCROLL); await expectLater( offsetsCompleter.future.then( - (ScrollPositionChange change) => - [change.x, change.y]), + (ScrollPositionChange change) => [change.x, change.y]), completion([X_SCROLL.toDouble(), Y_SCROLL.toDouble()])); // Check scrollBy() (on top of scrollTo()) @@ -792,8 +791,7 @@ Future main() async { expect(scrollPos.dy, Y_SCROLL * 2); await expectLater( offsetsCompleter.future.then( - (ScrollPositionChange change) => - [change.x, change.y]), + (ScrollPositionChange change) => [change.x, change.y]), completion([X_SCROLL * 2, Y_SCROLL * 2])); }); }); diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m index e9298ce1889..c0ba42f2928 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewHostApi.m @@ -66,7 +66,9 @@ - (void)setDelegateForScrollViewWithIdentifier:(nonnull NSNumber *)identifier uiScrollViewDelegateIdentifier:(nullable NSNumber *)uiScrollViewDelegateIdentifier error:(FlutterError *_Nullable *_Nonnull)error { [[self scrollViewForIdentifier:identifier] - setDelegate:uiScrollViewDelegateIdentifier ? (FWFScrollViewDelegate *)[self.instanceManager - instanceForIdentifier:uiScrollViewDelegateIdentifier.longValue] : nil]; + setDelegate:uiScrollViewDelegateIdentifier + ? (FWFScrollViewDelegate *)[self.instanceManager + instanceForIdentifier:uiScrollViewDelegateIdentifier.longValue] + : nil]; } @end diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.dart index 6ccf1b3c6be..a9f601afedd 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.dart @@ -130,9 +130,9 @@ void main() { List? args; final UIScrollViewDelegate scrollViewDelegate = UIScrollViewDelegate.detached( - scrollViewDidScroll: (UIScrollView scrollView) { - args = [scrollView]; - }, + scrollViewDidScroll: (UIScrollView scrollView) { + args = [scrollView]; + }, instanceManager: instanceManager, ); instanceManager.addHostCreatedInstance(scrollViewDelegate, 1); From 4348c1b550efad93bb2f766404def04ded5f0fb1 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 5 Oct 2023 13:20:17 -0400 Subject: [PATCH 16/20] pubspec ordering and doc --- packages/webview_flutter/webview_flutter/example/pubspec.yaml | 4 ++-- .../lib/src/platform_webview_controller.dart | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/webview_flutter/webview_flutter/example/pubspec.yaml b/packages/webview_flutter/webview_flutter/example/pubspec.yaml index 04f682a3bf9..7fc7c09a111 100644 --- a/packages/webview_flutter/webview_flutter/example/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter/example/pubspec.yaml @@ -41,7 +41,7 @@ flutter: dependency_overrides: webview_flutter_android: path: ../../webview_flutter_android - webview_flutter_wkwebview: - path: ../../webview_flutter_wkwebview webview_flutter_platform_interface: path: ../../webview_flutter_platform_interface + webview_flutter_wkwebview: + path: ../../webview_flutter_wkwebview diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart index dcd5ca157e6..582115841f5 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart @@ -287,7 +287,7 @@ abstract class PlatformWebViewController extends PlatformInterface { ); } - /// Set the listener for content offset changes. + /// Sets the listener for content offset changes. Future setOnScrollPositionChange( void Function(ScrollPositionChange scrollPositionChange)? onScrollPositionChange) { From 02a475802dee0f2361756057f9383f1fa95b41ac Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 10 Oct 2023 23:33:52 -0400 Subject: [PATCH 17/20] PR feedback --- .../lib/src/webview_controller.dart | 2 +- .../FWFScrollViewDelegateHostApiTests.m | 3 + .../ios/Classes/FWFGeneratedWebKitApis.h | 4 +- .../ios/Classes/FWFGeneratedWebKitApis.m | 16 ++- .../Classes/FWFScrollViewDelegateHostApi.m | 2 + .../lib/src/common/web_kit.g.dart | 14 ++- .../lib/src/ui_kit/ui_kit.dart | 6 +- .../lib/src/ui_kit/ui_kit_api_impls.dart | 11 +- .../lib/src/webkit_proxy.dart | 23 ++-- .../lib/src/webkit_webview_controller.dart | 8 +- .../pigeons/web_kit.dart | 9 +- .../test/src/common/test_web_kit.g.dart | 2 +- .../test/src/ui_kit/ui_kit_test.dart | 8 +- .../test/webkit_webview_controller_test.dart | 108 +++++++++--------- .../test/webkit_webview_widget_test.dart | 5 +- 15 files changed, 129 insertions(+), 92 deletions(-) diff --git a/packages/webview_flutter/webview_flutter/lib/src/webview_controller.dart b/packages/webview_flutter/webview_flutter/lib/src/webview_controller.dart index d317b8c47d6..bda65a7ac03 100644 --- a/packages/webview_flutter/webview_flutter/lib/src/webview_controller.dart +++ b/packages/webview_flutter/webview_flutter/lib/src/webview_controller.dart @@ -377,7 +377,7 @@ class WebViewController { /// Sets a listener for scroll position changes. Future setOnScrollPositionChange( - void Function(ScrollPositionChange change) onScrollPositionChange, + void Function(ScrollPositionChange change)? onScrollPositionChange, ) { return platform.setOnScrollPositionChange(onScrollPositionChange); } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m index 8014063946b..5dd6c1a1a0d 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FWFScrollViewDelegateHostApiTests.m @@ -68,12 +68,15 @@ - (void)testOnScrollViewDidScrollForDelegateWithIdentifier { OCMStub([mockDelegate scrollViewDelegateAPI]).andReturn(mockFlutterAPI); UIScrollView *scrollView = [[UIScrollView alloc] init]; + scrollView.contentOffset = CGPointMake(1.0, 2.0); [instanceManager addDartCreatedInstance:scrollView withIdentifier:1]; [mockDelegate scrollViewDidScroll:scrollView]; OCMVerify([mockFlutterAPI scrollViewDidScrollWithIdentifier:@0 uiScrollViewIdentifier:@1 + x:@(1.0) + y:@(2.0) completion:OCMOCK_ANY]); } @end diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.h b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.h index e2d8e31d932..01bd58862d2 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.h +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.h @@ -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 (v10.1.4), do not edit directly. +// Autogenerated from Pigeon (v10.1.6), do not edit directly. // See also: https://pub.dev/packages/pigeon #import @@ -888,6 +888,8 @@ NSObject *FWFUIScrollViewDelegateFlutterApiGetCodec(void); - (instancetype)initWithBinaryMessenger:(id)binaryMessenger; - (void)scrollViewDidScrollWithIdentifier:(NSNumber *)identifier uiScrollViewIdentifier:(NSNumber *)uiScrollViewIdentifier + x:(NSNumber *)x + y:(NSNumber *)y completion:(void (^)(FlutterError *_Nullable))completion; @end diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.m index bc869b06fe9..650619c5264 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFGeneratedWebKitApis.m @@ -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 (v10.1.4), do not edit directly. +// Autogenerated from Pigeon (v10.1.6), do not edit directly. // See also: https://pub.dev/packages/pigeon #import "FWFGeneratedWebKitApis.h" @@ -2972,16 +2972,20 @@ - (instancetype)initWithBinaryMessenger:(NSObject *)bina } - (void)scrollViewDidScrollWithIdentifier:(NSNumber *)arg_identifier uiScrollViewIdentifier:(NSNumber *)arg_uiScrollViewIdentifier + x:(NSNumber *)arg_x + y:(NSNumber *)arg_y completion:(void (^)(FlutterError *_Nullable))completion { FlutterBasicMessageChannel *channel = [FlutterBasicMessageChannel messageChannelWithName:@"dev.flutter.pigeon.webview_flutter_wkwebview." @"UIScrollViewDelegateFlutterApi.scrollViewDidScroll" binaryMessenger:self.binaryMessenger codec:FWFUIScrollViewDelegateFlutterApiGetCodec()]; - [channel - sendMessage:@[ arg_identifier ?: [NSNull null], arg_uiScrollViewIdentifier ?: [NSNull null] ] - reply:^(id reply) { - completion(nil); - }]; + [channel sendMessage:@[ + arg_identifier ?: [NSNull null], arg_uiScrollViewIdentifier ?: [NSNull null], + arg_x ?: [NSNull null], arg_y ?: [NSNull null] + ] + reply:^(id reply) { + completion(nil); + }]; } @end diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.m index 21e28b3d3f7..36f6c4457a0 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FWFScrollViewDelegateHostApi.m @@ -34,6 +34,8 @@ - (void)scrollViewDidScrollForDelegate:(FWFScrollViewDelegate *)instance [self scrollViewDidScrollWithIdentifier:@([self identifierForDelegate:instance]) uiScrollViewIdentifier:@([self.instanceManager identifierWithStrongReferenceForInstance:scrollView]) + x:@(scrollView.contentOffset.x) + y:@(scrollView.contentOffset.y) completion:completion]; } @end diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/common/web_kit.g.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/common/web_kit.g.dart index bf1c8d9e6ba..963cfc3914a 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/common/web_kit.g.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/common/web_kit.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 (v10.1.4), do not edit directly. +// Autogenerated from Pigeon (v10.1.6), 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 @@ -3027,7 +3027,8 @@ class UIScrollViewDelegateHostApi { abstract class UIScrollViewDelegateFlutterApi { static const MessageCodec codec = StandardMessageCodec(); - void scrollViewDidScroll(int identifier, int uiScrollViewIdentifier); + void scrollViewDidScroll( + int identifier, int uiScrollViewIdentifier, double x, double y); static void setup(UIScrollViewDelegateFlutterApi? api, {BinaryMessenger? binaryMessenger}) { @@ -3049,7 +3050,14 @@ abstract class UIScrollViewDelegateFlutterApi { final int? arg_uiScrollViewIdentifier = (args[1] as int?); assert(arg_uiScrollViewIdentifier != null, 'Argument for dev.flutter.pigeon.webview_flutter_wkwebview.UIScrollViewDelegateFlutterApi.scrollViewDidScroll was null, expected non-null int.'); - api.scrollViewDidScroll(arg_identifier!, arg_uiScrollViewIdentifier!); + final double? arg_x = (args[2] as double?); + assert(arg_x != null, + 'Argument for dev.flutter.pigeon.webview_flutter_wkwebview.UIScrollViewDelegateFlutterApi.scrollViewDidScroll was null, expected non-null double.'); + final double? arg_y = (args[3] as double?); + assert(arg_y != null, + 'Argument for dev.flutter.pigeon.webview_flutter_wkwebview.UIScrollViewDelegateFlutterApi.scrollViewDidScroll was null, expected non-null double.'); + api.scrollViewDidScroll( + arg_identifier!, arg_uiScrollViewIdentifier!, arg_x!, arg_y!); return; }); } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart index 9dbbc7e0142..b3f5ebe79f6 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit.dart @@ -182,7 +182,11 @@ class UIScrollViewDelegate extends NSObject { /// Called when scroll view did scroll. /// /// {@macro webview_flutter_wkwebview.foundation.callbacks} - final void Function(UIScrollView scrollView)? scrollViewDidScroll; + final void Function( + UIScrollView scrollView, + double x, + double y, + )? scrollViewDidScroll; @override UIScrollViewDelegate copy() { diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart index ad36290fcd8..6f15f7d6a9a 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/ui_kit/ui_kit_api_impls.dart @@ -141,13 +141,18 @@ class UIScrollViewDelegateFlutterApiImpl } @override - void scrollViewDidScroll(int identifier, int uiScrollViewIdentifier) { - final void Function(UIScrollView)? callback = + void scrollViewDidScroll( + int identifier, + int uiScrollViewIdentifier, + double x, + double y, + ) { + final void Function(UIScrollView, double, double)? callback = _getDelegate(identifier).scrollViewDidScroll; final UIScrollView? uiScrollView = instanceManager .getInstanceWithWeakReference(uiScrollViewIdentifier) as UIScrollView?; assert(uiScrollView != null); - callback?.call(uiScrollView!); + callback?.call(uiScrollView!, x, y); } } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_proxy.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_proxy.dart index 00772e9c4cc..be828ddd930 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_proxy.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_proxy.dart @@ -23,14 +23,15 @@ WKWebsiteDataStore _defaultWebsiteDataStore() => /// it intends to return. class WebKitProxy { /// Constructs a [WebKitProxy]. - const WebKitProxy( - {this.createWebView = WKWebView.new, - this.createWebViewConfiguration = WKWebViewConfiguration.new, - this.createScriptMessageHandler = WKScriptMessageHandler.new, - this.defaultWebsiteDataStore = _defaultWebsiteDataStore, - this.createNavigationDelegate = WKNavigationDelegate.new, - this.createUIDelegate = WKUIDelegate.new, - this.createUIScrollViewDelegate = UIScrollViewDelegate.new}); + const WebKitProxy({ + this.createWebView = WKWebView.new, + this.createWebViewConfiguration = WKWebViewConfiguration.new, + this.createScriptMessageHandler = WKScriptMessageHandler.new, + this.defaultWebsiteDataStore = _defaultWebsiteDataStore, + this.createNavigationDelegate = WKNavigationDelegate.new, + this.createUIDelegate = WKUIDelegate.new, + this.createUIScrollViewDelegate = UIScrollViewDelegate.new, + }); /// Constructs a [WKWebView]. final WKWebView Function( @@ -93,6 +94,10 @@ class WebKitProxy { /// Constructs a [UIScrollViewDelegate]. final UIScrollViewDelegate Function({ - void Function(UIScrollView scrollView)? scrollViewDidScroll, + void Function( + UIScrollView scrollView, + double x, + double y, + )? scrollViewDidScroll, }) createUIScrollViewDelegate; } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart index 3610c84c7aa..54219b05b87 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/lib/src/webkit_webview_controller.dart @@ -668,10 +668,10 @@ window.addEventListener("error", function(e) { WeakReference(this); _uiScrollViewDelegate = _webKitParams.webKitProxy.createUIScrollViewDelegate( - scrollViewDidScroll: (UIScrollView uiScrollView) async { - final Point offset = await uiScrollView.getContentOffset(); - weakThis.target?._onScrollPositionChangeCallback - ?.call(ScrollPositionChange(offset.x, offset.y)); + scrollViewDidScroll: (UIScrollView uiScrollView, double x, double y) { + weakThis.target?._onScrollPositionChangeCallback?.call( + ScrollPositionChange(x, y), + ); }, ); return _webView.scrollView.setDelegate(_uiScrollViewDelegate); diff --git a/packages/webview_flutter/webview_flutter_wkwebview/pigeons/web_kit.dart b/packages/webview_flutter/webview_flutter_wkwebview/pigeons/web_kit.dart index 39fd21985c9..d234632db2b 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/pigeons/web_kit.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/pigeons/web_kit.dart @@ -809,7 +809,12 @@ abstract class UIScrollViewDelegateHostApi { @FlutterApi() abstract class UIScrollViewDelegateFlutterApi { @ObjCSelector( - 'scrollViewDidScrollWithIdentifier:uiScrollViewIdentifier:', + 'scrollViewDidScrollWithIdentifier:uiScrollViewIdentifier:x:y:', ) - void scrollViewDidScroll(int identifier, int uiScrollViewIdentifier); + void scrollViewDidScroll( + int identifier, + int uiScrollViewIdentifier, + double x, + double y, + ); } diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/src/common/test_web_kit.g.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/src/common/test_web_kit.g.dart index 79fad0de688..378101dd0cf 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/src/common/test_web_kit.g.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/src/common/test_web_kit.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 (v10.1.4), do not edit directly. +// Autogenerated from Pigeon (v10.1.6), 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 diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.dart index a9f601afedd..576d0404693 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/src/ui_kit/ui_kit_test.dart @@ -130,15 +130,15 @@ void main() { List? args; final UIScrollViewDelegate scrollViewDelegate = UIScrollViewDelegate.detached( - scrollViewDidScroll: (UIScrollView scrollView) { - args = [scrollView]; + scrollViewDidScroll: (UIScrollView scrollView, double x, double y) { + args = [scrollView, x, y]; }, instanceManager: instanceManager, ); instanceManager.addHostCreatedInstance(scrollViewDelegate, 1); - flutterApi.scrollViewDidScroll(1, 0); - expect(args, [scrollView]); + flutterApi.scrollViewDidScroll(1, 0, 5, 6); + expect(args, [scrollView, 5, 6]); }); }); diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.dart index d31732391d2..ac2425d8d0b 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_controller_test.dart @@ -60,56 +60,57 @@ void main() { final PlatformWebViewControllerCreationParams controllerCreationParams = WebKitWebViewControllerCreationParams( webKitProxy: WebKitProxy( - createWebViewConfiguration: ({InstanceManager? instanceManager}) { - return nonNullMockWebViewConfiguration; - }, - createWebView: ( - _, { - void Function( - String keyPath, - NSObject object, - Map change, - )? observeValue, - InstanceManager? instanceManager, - }) { - nonNullMockWebView = createMockWebView == null - ? MockWKWebView() - : createMockWebView( - nonNullMockWebViewConfiguration, - observeValue: observeValue, - ); - return nonNullMockWebView; - }, - createUIDelegate: ({ - void Function( - WKWebView webView, - WKWebViewConfiguration configuration, - WKNavigationAction navigationAction, - )? onCreateWebView, - Future Function( - WKUIDelegate instance, - WKWebView webView, - WKSecurityOrigin origin, - WKFrameInfo frame, - WKMediaCaptureType type, - )? requestMediaCapturePermission, - InstanceManager? instanceManager, - }) { - return uiDelegate ?? - CapturingUIDelegate( - onCreateWebView: onCreateWebView, - requestMediaCapturePermission: - requestMediaCapturePermission, - ); - }, - createScriptMessageHandler: WKScriptMessageHandler.detached, - createUIScrollViewDelegate: ( - {void Function(UIScrollView scrollView)? scrollViewDidScroll}) { - return scrollViewDelegate ?? - CapturingUIScrollViewDelegate( - scrollViewDidScroll: scrollViewDidScroll, + createWebViewConfiguration: ({InstanceManager? instanceManager}) { + return nonNullMockWebViewConfiguration; + }, + createWebView: ( + _, { + void Function( + String keyPath, + NSObject object, + Map change, + )? observeValue, + InstanceManager? instanceManager, + }) { + nonNullMockWebView = createMockWebView == null + ? MockWKWebView() + : createMockWebView( + nonNullMockWebViewConfiguration, + observeValue: observeValue, ); - }), + return nonNullMockWebView; + }, + createUIDelegate: ({ + void Function( + WKWebView webView, + WKWebViewConfiguration configuration, + WKNavigationAction navigationAction, + )? onCreateWebView, + Future Function( + WKUIDelegate instance, + WKWebView webView, + WKSecurityOrigin origin, + WKFrameInfo frame, + WKMediaCaptureType type, + )? requestMediaCapturePermission, + InstanceManager? instanceManager, + }) { + return uiDelegate ?? + CapturingUIDelegate( + onCreateWebView: onCreateWebView, + requestMediaCapturePermission: requestMediaCapturePermission, + ); + }, + createScriptMessageHandler: WKScriptMessageHandler.detached, + createUIScrollViewDelegate: ({ + void Function(UIScrollView, double, double)? scrollViewDidScroll, + }) { + return scrollViewDelegate ?? + CapturingUIScrollViewDelegate( + scrollViewDidScroll: scrollViewDidScroll, + ); + }, + ), instanceManager: instanceManager, ); @@ -1322,16 +1323,13 @@ window.addEventListener("error", function(e) { final void Function( UIScrollView scrollView, + double, + double, ) onScrollViewDidScroll = CapturingUIScrollViewDelegate .lastCreatedDelegate.scrollViewDidScroll!; final MockUIScrollView mockUIScrollView = MockUIScrollView(); - when(mockUIScrollView.getContentOffset()).thenAnswer( - (_) => Future>.value( - const Point(1.0, 2.0), - ), - ); - onScrollViewDidScroll(mockUIScrollView); + onScrollViewDidScroll(mockUIScrollView, 1.0, 2.0); final ScrollPositionChange change = await changeCompleter.future; expect(change.x, 1.0); diff --git a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_widget_test.dart b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_widget_test.dart index 2f7edd33ce5..c5c647e084a 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_widget_test.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/test/webkit_webview_widget_test.dart @@ -204,8 +204,9 @@ WebKitWebViewController createTestWebViewController( testInstanceManager.addDartCreatedInstance(mockWKUIDelegate); return mockWKUIDelegate; - }, createUIScrollViewDelegate: ( - {void Function(UIScrollView scrollView)? scrollViewDidScroll}) { + }, createUIScrollViewDelegate: ({ + void Function(UIScrollView, double, double)? scrollViewDidScroll, + }) { final MockUIScrollViewDelegate mockScrollViewDelegate = MockUIScrollViewDelegate(); when(mockScrollViewDelegate.copy()) From 12332357a1e0fd97c1740ed5bdcd01bc916b794c Mon Sep 17 00:00:00 2001 From: TheVinhLuong Date: Sat, 14 Oct 2023 16:44:39 +0700 Subject: [PATCH 18/20] Fix integration test --- .../webview_flutter_test.dart | 20 +++++++----------- .../webview_flutter_test.dart | 19 +++++++---------- .../webview_flutter_test.dart | 21 +++++++------------ 3 files changed, 21 insertions(+), 39 deletions(-) diff --git a/packages/webview_flutter/webview_flutter/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter/example/integration_test/webview_flutter_test.dart index 247232869c4..a3ac48ec44d 100644 --- a/packages/webview_flutter/webview_flutter/example/integration_test/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter/example/integration_test/webview_flutter_test.dart @@ -530,15 +530,14 @@ Future main() async { final Completer pageLoaded = Completer(); final WebViewController controller = WebViewController(); - Completer offsetsCompleter = - Completer(); + ScrollPositionChange? recordedPosition; unawaited(controller.setJavaScriptMode(JavaScriptMode.unrestricted)); unawaited(controller.setNavigationDelegate(NavigationDelegate( onPageFinished: (_) => pageLoaded.complete(), ))); unawaited(controller.setOnScrollPositionChange( (ScrollPositionChange contentOffsetChange) { - offsetsCompleter.complete(contentOffsetChange); + recordedPosition = contentOffsetChange; })); unawaited(controller.loadRequest(Uri.parse( @@ -561,26 +560,21 @@ Future main() async { // time to settle. expect(scrollPos.dx, isNot(X_SCROLL)); expect(scrollPos.dy, isNot(Y_SCROLL)); - + expect(recordedPosition, null); await controller.scrollTo(X_SCROLL, Y_SCROLL); scrollPos = await controller.getScrollPosition(); expect(scrollPos.dx, X_SCROLL); expect(scrollPos.dy, Y_SCROLL); - await expectLater( - offsetsCompleter.future.then( - (ScrollPositionChange change) => [change.x, change.y]), - completion([X_SCROLL.toDouble(), Y_SCROLL.toDouble()])); + expect(recordedPosition?.x, X_SCROLL); + expect(recordedPosition?.y, Y_SCROLL); // Check scrollBy() (on top of scrollTo()) - offsetsCompleter = Completer(); await controller.scrollBy(X_SCROLL, Y_SCROLL); scrollPos = await controller.getScrollPosition(); expect(scrollPos.dx, X_SCROLL * 2); expect(scrollPos.dy, Y_SCROLL * 2); - await expectLater( - offsetsCompleter.future.then( - (ScrollPositionChange change) => [change.x, change.y]), - completion([X_SCROLL * 2, Y_SCROLL * 2])); + expect(recordedPosition?.x, X_SCROLL * 2); + expect(recordedPosition?.y, Y_SCROLL * 2); }); }); diff --git a/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart index c2fae4b157c..c4b36f49f50 100644 --- a/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter_android/example/integration_test/webview_flutter_test.dart @@ -775,8 +775,7 @@ Future main() async { base64Encode(const Utf8Encoder().convert(scrollTestPage)); final Completer pageLoaded = Completer(); - Completer offsetsCompleter = - Completer(); + ScrollPositionChange? recordedPosition; final PlatformWebViewController controller = PlatformWebViewController( const PlatformWebViewControllerCreationParams(), ); @@ -788,7 +787,7 @@ Future main() async { unawaited(controller.setPlatformNavigationDelegate(delegate)); unawaited(controller.setOnScrollPositionChange( (ScrollPositionChange contentOffsetChange) { - offsetsCompleter.complete(contentOffsetChange); + recordedPosition = contentOffsetChange; })); await controller.loadRequest( @@ -821,26 +820,22 @@ Future main() async { // time to settle. expect(scrollPos.dx, isNot(X_SCROLL)); expect(scrollPos.dy, isNot(Y_SCROLL)); + expect(recordedPosition, null); await controller.scrollTo(X_SCROLL, Y_SCROLL); scrollPos = await controller.getScrollPosition(); expect(scrollPos.dx, X_SCROLL); expect(scrollPos.dy, Y_SCROLL); - await expectLater( - offsetsCompleter.future.then( - (ScrollPositionChange change) => [change.x, change.y]), - completion([X_SCROLL.toDouble(), Y_SCROLL.toDouble()])); + expect(recordedPosition?.x, X_SCROLL); + expect(recordedPosition?.y, Y_SCROLL); // Check scrollBy() (on top of scrollTo()) - offsetsCompleter = Completer(); await controller.scrollBy(X_SCROLL, Y_SCROLL); scrollPos = await controller.getScrollPosition(); expect(scrollPos.dx, X_SCROLL * 2); expect(scrollPos.dy, Y_SCROLL * 2); - await expectLater( - offsetsCompleter.future.then( - (ScrollPositionChange change) => [change.x, change.y]), - completion([X_SCROLL * 2, Y_SCROLL * 2])); + expect(recordedPosition?.x, X_SCROLL * 2); + expect(recordedPosition?.y, Y_SCROLL * 2); }); }); diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart index 59e26795c8a..82da1962fb3 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart @@ -725,8 +725,7 @@ Future main() async { base64Encode(const Utf8Encoder().convert(scrollTestPage)); final Completer pageLoaded = Completer(); - Completer offsetsCompleter = - Completer(); + ScrollPositionChange? recordedPosition; final PlatformWebViewController controller = PlatformWebViewController( const PlatformWebViewControllerCreationParams(), ); @@ -738,9 +737,7 @@ Future main() async { unawaited(controller.setPlatformNavigationDelegate(delegate)); unawaited(controller.setOnScrollPositionChange( (ScrollPositionChange scrollPositionChange) { - if (!offsetsCompleter.isCompleted) { - offsetsCompleter.complete(scrollPositionChange); - } + recordedPosition = scrollPositionChange; })); await controller.loadRequest( @@ -773,26 +770,22 @@ Future main() async { // time to settle. expect(scrollPos.dx, isNot(X_SCROLL)); expect(scrollPos.dy, isNot(Y_SCROLL)); + expect(recordedPosition, null); await controller.scrollTo(X_SCROLL, Y_SCROLL); scrollPos = await controller.getScrollPosition(); expect(scrollPos.dx, X_SCROLL); expect(scrollPos.dy, Y_SCROLL); - await expectLater( - offsetsCompleter.future.then( - (ScrollPositionChange change) => [change.x, change.y]), - completion([X_SCROLL.toDouble(), Y_SCROLL.toDouble()])); + expect(recordedPosition?.x, X_SCROLL); + expect(recordedPosition?.y, Y_SCROLL); // Check scrollBy() (on top of scrollTo()) - offsetsCompleter = Completer(); await controller.scrollBy(X_SCROLL, Y_SCROLL); scrollPos = await controller.getScrollPosition(); expect(scrollPos.dx, X_SCROLL * 2); expect(scrollPos.dy, Y_SCROLL * 2); - await expectLater( - offsetsCompleter.future.then( - (ScrollPositionChange change) => [change.x, change.y]), - completion([X_SCROLL * 2, Y_SCROLL * 2])); + expect(recordedPosition?.x, X_SCROLL * 2); + expect(recordedPosition?.y, Y_SCROLL * 2); }); }); From a2400d29cf460567266bb4c3fd0ce85914ccbb52 Mon Sep 17 00:00:00 2001 From: TheVinhLuong Date: Fri, 9 Feb 2024 17:49:45 +0700 Subject: [PATCH 19/20] Updates minimum supported SDK version to Flutter 3.16.6/Dart 3.2.3. Update app-facing package's CHANGELOG --- packages/webview_flutter/webview_flutter/CHANGELOG.md | 5 +++++ packages/webview_flutter/webview_flutter/pubspec.yaml | 6 +++--- .../test/legacy/webview_flutter_test.dart | 10 +++++----- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/packages/webview_flutter/webview_flutter/CHANGELOG.md b/packages/webview_flutter/webview_flutter/CHANGELOG.md index 2b10fb2efb1..153539fa075 100644 --- a/packages/webview_flutter/webview_flutter/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter/CHANGELOG.md @@ -1,3 +1,8 @@ +## 4.5.1 + +* Adds support to track scroll position changes +* Updates minimum supported SDK version to Flutter 3.16.6/Dart 3.2.3. + ## 4.5.0 * Adds support for HTTP basic authentication. See `NavigationDelegate(onReceivedHttpAuthRequest)`. diff --git a/packages/webview_flutter/webview_flutter/pubspec.yaml b/packages/webview_flutter/webview_flutter/pubspec.yaml index 6e3691aabb6..5de47e14ccd 100644 --- a/packages/webview_flutter/webview_flutter/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter/pubspec.yaml @@ -2,11 +2,11 @@ name: webview_flutter description: A Flutter plugin that provides a WebView widget on Android and iOS. repository: https://github.com/flutter/packages/tree/main/packages/webview_flutter/webview_flutter issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22 -version: 4.5.0 +version: 4.5.1 environment: - sdk: ">=3.0.0 <4.0.0" - flutter: ">=3.10.0" + sdk: ^3.2.3 + flutter: ">=3.16.6" flutter: plugin: diff --git a/packages/webview_flutter/webview_flutter/test/legacy/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter/test/legacy/webview_flutter_test.dart index 008e91a8bb2..6abd2648377 100644 --- a/packages/webview_flutter/webview_flutter/test/legacy/webview_flutter_test.dart +++ b/packages/webview_flutter/webview_flutter/test/legacy/webview_flutter_test.dart @@ -1319,13 +1319,13 @@ class MatchesWebSettings extends Matcher { bool matches( covariant WebSettings webSettings, Map matchState) { return _webSettings!.javascriptMode == webSettings.javascriptMode && - _webSettings!.hasNavigationDelegate == + _webSettings.hasNavigationDelegate == webSettings.hasNavigationDelegate && - _webSettings!.debuggingEnabled == webSettings.debuggingEnabled && - _webSettings!.gestureNavigationEnabled == + _webSettings.debuggingEnabled == webSettings.debuggingEnabled && + _webSettings.gestureNavigationEnabled == webSettings.gestureNavigationEnabled && - _webSettings!.userAgent == webSettings.userAgent && - _webSettings!.zoomEnabled == webSettings.zoomEnabled; + _webSettings.userAgent == webSettings.userAgent && + _webSettings.zoomEnabled == webSettings.zoomEnabled; } } From 7f8d4c69bab2f1e06866fcd1b924c28fd0412058 Mon Sep 17 00:00:00 2001 From: TheVinhLuong Date: Fri, 9 Feb 2024 23:32:38 +0700 Subject: [PATCH 20/20] Fixup based on code review --- packages/webview_flutter/webview_flutter/CHANGELOG.md | 4 ++-- .../example/ios/Runner.xcodeproj/project.pbxproj | 4 +++- .../Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme | 2 +- packages/webview_flutter/webview_flutter/example/pubspec.yaml | 4 ++-- packages/webview_flutter/webview_flutter/pubspec.yaml | 2 +- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/webview_flutter/webview_flutter/CHANGELOG.md b/packages/webview_flutter/webview_flutter/CHANGELOG.md index 153539fa075..3e53d2230d8 100644 --- a/packages/webview_flutter/webview_flutter/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter/CHANGELOG.md @@ -1,6 +1,6 @@ -## 4.5.1 +## 4.6.0 -* Adds support to track scroll position changes +* Adds support to track scroll position changes. * Updates minimum supported SDK version to Flutter 3.16.6/Dart 3.2.3. ## 4.5.0 diff --git a/packages/webview_flutter/webview_flutter/example/ios/Runner.xcodeproj/project.pbxproj b/packages/webview_flutter/webview_flutter/example/ios/Runner.xcodeproj/project.pbxproj index da117d59154..cfe509c8874 100644 --- a/packages/webview_flutter/webview_flutter/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/webview_flutter/webview_flutter/example/ios/Runner.xcodeproj/project.pbxproj @@ -275,7 +275,7 @@ isa = PBXProject; attributes = { DefaultBuildSystemTypeForWorkspace = Original; - LastUpgradeCheck = 1510; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = "The Flutter Authors"; TargetAttributes = { 68BDCAE823C3F7CB00D9C032 = { @@ -385,10 +385,12 @@ ); inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/path_provider_foundation/path_provider_foundation_privacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/webview_flutter_wkwebview/webview_flutter_wkwebview_privacy.bundle", ); name = "[CP] Copy Pods Resources"; outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/path_provider_foundation_privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/webview_flutter_wkwebview_privacy.bundle", ); runOnlyForDeploymentPostprocessing = 0; diff --git a/packages/webview_flutter/webview_flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/webview_flutter/webview_flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index eb87ae849c4..cf07c46df2e 100644 --- a/packages/webview_flutter/webview_flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/webview_flutter/webview_flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ =3.0.0 <4.0.0" - flutter: ">=3.10.0" + sdk: ^3.2.3 + flutter: ">=3.16.6" dependencies: flutter: diff --git a/packages/webview_flutter/webview_flutter/pubspec.yaml b/packages/webview_flutter/webview_flutter/pubspec.yaml index 5de47e14ccd..f0a654db54a 100644 --- a/packages/webview_flutter/webview_flutter/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter/pubspec.yaml @@ -2,7 +2,7 @@ name: webview_flutter description: A Flutter plugin that provides a WebView widget on Android and iOS. repository: https://github.com/flutter/packages/tree/main/packages/webview_flutter/webview_flutter issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22 -version: 4.5.1 +version: 4.6.0 environment: sdk: ^3.2.3