Merge "Fix monkey NullPointerException"
diff --git a/core/java/android/webkit/WebTextView.java b/core/java/android/webkit/WebTextView.java
index 092e2b5..33f84a5 100644
--- a/core/java/android/webkit/WebTextView.java
+++ b/core/java/android/webkit/WebTextView.java
@@ -768,9 +768,13 @@
imm.hideSoftInputFromWindow(getWindowToken(), 0);
}
mInsideRemove = true;
+ boolean isFocused = hasFocus();
mWebView.removeView(this);
- mWebView.requestFocus();
+ if (isFocused) {
+ mWebView.requestFocus();
+ }
mInsideRemove = false;
+ mHandler.removeCallbacksAndMessages(null);
}
@Override
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index eaed9fe..89f21d7 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -1581,6 +1581,11 @@
mListBoxDialog.dismiss();
mListBoxDialog = null;
}
+ // remove so that it doesn't cause events
+ if (mWebTextView != null) {
+ mWebTextView.remove();
+ mWebTextView = null;
+ }
if (mNativeClass != 0) nativeStopGL();
if (mWebViewCore != null) {
// Set the handlers to null before destroying WebViewCore so no
@@ -7636,6 +7641,10 @@
}
/* package */ void passToJavaScript(String currentText, KeyEvent event) {
+ // check if mWebViewCore has been destroyed
+ if (mWebViewCore == null) {
+ return;
+ }
WebViewCore.JSKeyData arg = new WebViewCore.JSKeyData();
arg.mEvent = event;
arg.mCurrentText = currentText;