Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cfe9aee7 authored by Adam Powell's avatar Adam Powell
Browse files

Fix bug 5528574 - "View not attached to window manager" upon

orientation change when there is a dialog with ActionMode on

Fix a bug closing down active action modes as dialogs are closing.

Change-Id: I0d28e3b3845d5ed50fbb55b180dafa1b11957b81
parent a0d5bece
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -110,6 +110,8 @@ public class Dialog implements DialogInterface, Window.Callback,

    private Handler mListenersHandler;

    private ActionMode mActionMode;

    private final Runnable mDismissAction = new Runnable() {
        public void run() {
            dismissDialog();
@@ -310,6 +312,9 @@ public class Dialog implements DialogInterface, Window.Callback,
        try {
            mWindowManager.removeView(mDecor);
        } finally {
            if (mActionMode != null) {
                mActionMode.finish();
            }
            mDecor = null;
            mWindow.closeAllPanels();
            onStop();
@@ -952,10 +957,26 @@ public class Dialog implements DialogInterface, Window.Callback,
        return null;
    }

    /**
     * {@inheritDoc}
     *
     * Note that if you override this method you should always call through
     * to the superclass implementation by calling super.onActionModeStarted(mode).
     */
    public void onActionModeStarted(ActionMode mode) {
        mActionMode = mode;
    }

    /**
     * {@inheritDoc}
     *
     * Note that if you override this method you should always call through
     * to the superclass implementation by calling super.onActionModeFinished(mode).
     */
    public void onActionModeFinished(ActionMode mode) {
        if (mode == mActionMode) {
            mActionMode = null;
        }
    }

    /**