tree 4c53ba50d95826e619938e3d03a16d6763af5204
parent e314c7a8fdcd2e60934fcf7b44402d6f131f012a
author Maurits van Beusekom <maurits@baseflow.com> 1632206400 +0200
committer GitHub <noreply@github.com> 1632206400 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJhSX5ACRBK7hj4Ov3rIwAAX88IAEBr9WPourRr42KYRfcyEl1p
 +xNxnJfxHDfAUyPHrW+QLH8pB2cAejp8wjdVvnIi3rLuJkrMuMm+2M/wbblE/Olb
 o6mQ56Ej+Prqj5YJZLusqQhFQntaZGowv+WyDcgNDKcifTquRsnkkQRu7ygq11dg
 O9HJvoZ81L+VVkJ/+vfwtvWTa5zq7ZsX3Gl2niN2et+KdFbC3Jxh7ZUx8lmlqwXM
 nyTbpTYr4xUXDgI2T2jwAfZ8Beh/TyxI80lXjbtS9ucTMHK4R8EHsPqR+BkyfXNx
 2xFpGKpP9udE4VlCcgxb1a+deJpMH/wIfGhfJfgSZcnoQuFZzSlqWWrfnQUfMRA=
 =gqi/
 -----END PGP SIGNATURE-----
 

[webview_flutter] Extract Android implementation into a separate package (#4343)

* Setup webview_flutter_android package.

Creates a new `webview_flutter_android` directory and adds
the following meta-data files:
- `AUTHORS`: copied from the `webview_flutter` package and added my name;
- `CHANGELOG.md`: new file adding description for release 0.0.1;
- `LICENSE`: copied from the `webview_flutter` package;
- `README.md`: new file adding the standard platform implementation
  description;
- `pubspec.yaml`: new file adding package meta-data for the
  `webview_flutter_android` package.

* Direct copy of "android" folder.

A one to one copy of the `webview_flutter/android` folder to
`webview_flutter_android/` using the following command:
```
cp -R ./webview_flutter/android ./webview_flutter_android/
```

* Direct copy of Android specific .dart files.

Copied the Android specific .dart files over from the
`./webview_flutter` package. Note that the `SurfaceAndroidWebView` class
in the `./webview_flutter_android/lib/webview_surface_android.dart` file
is copied directly (without modifactions) from the
`./webview_flutter/lib/webview_flutter.dart` file.

* Modify .dart code to work with platform_interface.

Make sure the `AndroidWebView` and `SurfaceAndroidWebView` widgets
extend the `WebViewPlatform` class from the
`webview_flutter_platform_interface` package correctly by accepting an
instance of the `JavascriptChannelRegistry` class.

* Direct copy of the `webview_flutter/example` app.

This commit makes a direct copy of the `webview_flutter/example` app to
the  `webview_flutter_android` package. After the copy the `example/ios`
folder is removed as it doesn't serve a purpose in the Android specific
package. Commands run where:
```
cp -R ./webview_flutter/example ./webview_flutter_android/
rm -rf ./webview_flutter_android/example/ios
```

* Update example to Android specific implementation.

This commit updates the example App so it directly implements an Android
specific implementation of the webview_flutter_platform_interface.

* Update integration tests.

Updated the existing integration tests (copied from webview_flutter
package) so they work correctly with the implementation of the
webview_flutter_android package.

* Update webview_flutter_platform_interface dependency

Updated the pubspec.yaml to depend on version 1.0.0 of the
webview_flutter_platform_interface package instead of using a path
reference (which is now possible since the platform interface package
has now been published).

Co-authored-by: BeMacized <bodhimulders@bemacized.net>

* Use different bundle ID for Android example app.

Make sure the `webview_flutter` and `webview_flutter_android` example
apps use different application identifiers so that the CI doesn't run
into problems.

* Skip flaky integration_tests (issue 86757).

* Exlude platform implementations from build all step.

Make sure the webview_flutter_android and webview_flutter_wkwebview
packages are excluded from the Build All plugins step as they will cause
conflicts with the current implementation which is still part of the
webview_flutter package.

* Split helper classes from main example widget.

Move the `WebView` and related `WebViewController` classes from the
main.dart into a separate web_view.dart file.

Co-authored-by: BeMacized <bodhimulders@bemacized.net>