diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a351706..63748cef 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,17 +11,21 @@ - On Android, the `InAppWebView` widget uses hybrid composition by default (`useHybridComposition: true`). -## 5.4.3+1 +## 5.4.3+2 - Fixed "Latest version 5.4.3 crashes on Android" [#1159](https://github.com/pichillilorenzo/flutter_inappwebview/issues/1159) +## 5.4.3+1 + +- Try to fix "Latest version 5.4.3 crashes on Android" [#1159](https://github.com/pichillilorenzo/flutter_inappwebview/issues/1159) + ## 5.4.3 - Added Bitwise OR operator support for `AndroidActionModeMenuItem` class ## 5.4.2+1 -- Fixed "Latest version 5.4.2 crashes on Android - HeadlessInAppWebView.dispose" [#1155](https://github.com/pichillilorenzo/flutter_inappwebview/issues/1155) +- Try to fix "Latest version 5.4.2 crashes on Android - HeadlessInAppWebView.dispose" [#1155](https://github.com/pichillilorenzo/flutter_inappwebview/issues/1155) ## 5.4.2 diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/headless_in_app_webview/HeadlessInAppWebViewManager.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/headless_in_app_webview/HeadlessInAppWebViewManager.java index 787b5c36..ea796641 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/headless_in_app_webview/HeadlessInAppWebViewManager.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/headless_in_app_webview/HeadlessInAppWebViewManager.java @@ -83,7 +83,9 @@ public class HeadlessInAppWebViewManager implements MethodChannel.MethodCallHand channel.setMethodCallHandler(null); Collection headlessInAppWebViews = webViews.values(); for (HeadlessInAppWebView headlessInAppWebView : headlessInAppWebViews) { - headlessInAppWebView.dispose(); + if (headlessInAppWebView != null) { + headlessInAppWebView.dispose(); + } } webViews.clear(); } diff --git a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_browser/InAppBrowserActivity.java b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_browser/InAppBrowserActivity.java index bf18de80..93ac8388 100755 --- a/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_browser/InAppBrowserActivity.java +++ b/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_browser/InAppBrowserActivity.java @@ -55,7 +55,7 @@ public class InAppBrowserActivity extends AppCompatActivity implements InAppBrow public ActionBar actionBar; public Menu menu; public SearchView searchView; - public InAppBrowserSettings customSettings; + public InAppBrowserSettings customSettings = new InAppBrowserSettings(); public ProgressBar progressBar; public boolean isHidden = false; public String fromActivity; @@ -75,7 +75,10 @@ public class InAppBrowserActivity extends AppCompatActivity implements InAppBrow String managerId = b.getString("managerId"); manager = InAppBrowserManager.shared.get(managerId); if (manager == null || manager.plugin == null|| manager.plugin.messenger == null) return; - + + Map settingsMap = (Map) b.getSerializable("settings"); + customSettings.parse(settingsMap); + windowId = b.getInt("windowId"); channel = new MethodChannel(manager.plugin.messenger, "com.pichillilorenzo/flutter_inappbrowser_" + id); @@ -102,13 +105,9 @@ public class InAppBrowserActivity extends AppCompatActivity implements InAppBrow fromActivity = b.getString("fromActivity"); - Map settingsMap = (Map) b.getSerializable("settings"); Map contextMenu = (Map) b.getSerializable("contextMenu"); List> initialUserScripts = (List>) b.getSerializable("initialUserScripts"); - customSettings = new InAppBrowserSettings(); - customSettings.parse(settingsMap); - InAppWebViewSettings webViewSettings = new InAppWebViewSettings(); webViewSettings.parse(settingsMap); webView.customSettings = webViewSettings;