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

Commit 97a30017 authored by Adam Powell's avatar Adam Powell
Browse files

Fix bug 5080988 - State change to action views made in

onPrepareOptionsMenu will be lost

Change the ordering of restoring action views. Restoration now comes
after onCreate but before onPrepare in the menu setup rather than
after both. This allows apps to mutate the restored state in
onPrepare.

Change-Id: I822a716415d01112eb517ac093eaf6929f041aad
parent 95b0292f
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -392,6 +392,14 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
            // Preparing the panel menu can involve a lot of manipulation;
            // don't dispatch change events to presenters until we're done.
            st.menu.stopDispatchingItemsChanged();

            // Restore action view state before we prepare. This gives apps
            // an opportunity to override frozen/restored state in onPrepare.
            if (st.frozenActionViewState != null) {
                st.menu.restoreActionViewStates(st.frozenActionViewState);
                st.frozenActionViewState = null;
            }

            if (!cb.onPreparePanel(st.featureId, st.createdPanelView, st.menu)) {
                st.menu.startDispatchingItemsChanged();
                return false;
@@ -410,11 +418,6 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
        st.isHandled = false;
        mPreparedPanel = st;

        if (st.frozenActionViewState != null) {
            st.menu.restoreActionViewStates(st.frozenActionViewState);
            st.frozenActionViewState = null;
        }

        return true;
    }