diff options
| -rw-r--r-- | policy/src/com/android/internal/policy/impl/PhoneWindow.java | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java index 6dd49488afb2..3dcc297dde25 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java @@ -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; } |