Merge "Fix bug 5080988 - State change to action views made in onPrepareOptionsMenu will be lost"

This commit is contained in:
Adam Powell
2011-08-09 18:18:44 -07:00
committed by Android (Google) Code Review

View File

@@ -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;
}