diff --git a/framework/src/org/apache/cordova/CordovaChromeClient.java b/framework/src/org/apache/cordova/CordovaChromeClient.java index 737d0b84..ff0c0f2f 100755 --- a/framework/src/org/apache/cordova/CordovaChromeClient.java +++ b/framework/src/org/apache/cordova/CordovaChromeClient.java @@ -65,6 +65,9 @@ public class CordovaChromeClient extends WebChromeClient { // the video progress view private View mVideoProgressView; + //Keep track of last AlertDialog showed + private AlertDialog lastHandledDialog; + // File Chooser public ValueCallback mUploadMessage; @@ -123,7 +126,7 @@ public class CordovaChromeClient extends WebChromeClient { return true; } }); - dlg.show(); + lastHandledDialog = dlg.show(); return true; } @@ -172,7 +175,7 @@ public class CordovaChromeClient extends WebChromeClient { return true; } }); - dlg.show(); + lastHandledDialog = dlg.show(); return true; } @@ -216,7 +219,7 @@ public class CordovaChromeClient extends WebChromeClient { res.cancel(); } }); - dlg.show(); + lastHandledDialog = dlg.show(); } return true; } @@ -328,4 +331,11 @@ public class CordovaChromeClient extends WebChromeClient { public ValueCallback getValueCallback() { return this.mUploadMessage; } + + public void destroyLastDialog(){ + if(lastHandledDialog != null){ + lastHandledDialog.cancel(); + } + } + } diff --git a/framework/src/org/apache/cordova/CordovaWebView.java b/framework/src/org/apache/cordova/CordovaWebView.java index f7a94ae2..862f2ded 100755 --- a/framework/src/org/apache/cordova/CordovaWebView.java +++ b/framework/src/org/apache/cordova/CordovaWebView.java @@ -788,6 +788,9 @@ public class CordovaWebView extends WebView { // Load blank page so that JavaScript onunload is called this.loadUrl("about:blank"); + + //Remove last AlertDialog + this.chromeClient.destroyLastDialog(); // Forward to plugins if (this.pluginManager != null) {