summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Adam Powell <adamp@google.com> 2011-11-02 10:33:52 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2011-11-02 10:33:52 -0700
commit7a5a50c12f6a6e094d1e8aa7514df37f1176354a (patch)
tree09341206f82e3109a2b13e5a1b2ffa0d2adbc03d
parente5d0f19953189fdd0e2661ebb7f0ea925f14ea13 (diff)
parent89fc3acd4bfb61c7b578f0c9e713d9ea819604e4 (diff)
Merge "Bug 5513073 - IllegalArgumentException: View not attached to window manager" into ics-mr1
-rw-r--r--core/java/android/app/Dialog.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/core/java/android/app/Dialog.java b/core/java/android/app/Dialog.java
index 72e63836447e..f1ce2bb4adf9 100644
--- a/core/java/android/app/Dialog.java
+++ b/core/java/android/app/Dialog.java
@@ -28,6 +28,7 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
+import android.util.Log;
import android.util.TypedValue;
import android.view.ActionMode;
import android.view.ContextMenu;
@@ -77,6 +78,7 @@ import java.lang.ref.WeakReference;
*/
public class Dialog implements DialogInterface, Window.Callback,
KeyEvent.Callback, OnCreateContextMenuListener {
+ private static final String TAG = "Dialog";
private Activity mOwnerActivity;
final Context mContext;
@@ -300,15 +302,21 @@ public class Dialog implements DialogInterface, Window.Callback,
if (Thread.currentThread() != mUiThread) {
mHandler.post(mDismissAction);
} else {
+ mHandler.removeCallbacks(mDismissAction);
mDismissAction.run();
}
}
- private void dismissDialog() {
+ void dismissDialog() {
if (mDecor == null || !mShowing) {
return;
}
+ if (mWindow.isDestroyed()) {
+ Log.e(TAG, "Tried to dismissDialog() but the Dialog's window was already destroyed!");
+ return;
+ }
+
try {
mWindowManager.removeView(mDecor);
} finally {