Temporary revert "Clean up phone window save/restore"

This reverts commit 0578a725bf.

Change-Id: Ic460a0a7785a6829aab9963191714120859d36b0
This commit is contained in:
Alan Viverette
2015-08-13 20:05:35 +00:00
parent 0578a725bf
commit eae66cd2c9

View File

@@ -2004,35 +2004,40 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
static private final String PANELS_TAG = "android:Panels";
static private final String ACTION_BAR_TAG = "android:ActionBar";
/** {@inheritDoc} */
@Override
public Bundle saveHierarchyState() {
final Bundle outState = new Bundle();
Bundle outState = new Bundle();
if (mContentParent == null) {
return outState;
}
final SparseArray<Parcelable> states = new SparseArray<>();
SparseArray<Parcelable> states = new SparseArray<Parcelable>();
mContentParent.saveHierarchyState(states);
outState.putSparseParcelableArray(VIEWS_TAG, states);
// Save the focused view ID.
final View focusedView = mContentParent.findFocus();
if (focusedView != null && focusedView.getId() != View.NO_ID) {
outState.putInt(FOCUSED_ID_TAG, focusedView.getId());
}
// save the focused view id
View focusedView = mContentParent.findFocus();
if (focusedView != null) {
if (focusedView.getId() != View.NO_ID) {
outState.putInt(FOCUSED_ID_TAG, focusedView.getId());
} else {
if (false) {
Log.d(TAG, "couldn't save which view has focus because the focused view "
+ focusedView + " has no id.");
}
}
}
// Save the panel states, if any.
final SparseArray<Parcelable> panelStates = new SparseArray<>();
// save the panels
SparseArray<Parcelable> panelStates = new SparseArray<Parcelable>();
savePanelState(panelStates);
if (panelStates.size() > 0) {
outState.putSparseParcelableArray(PANELS_TAG, panelStates);
}
// Save the action bar states, if any.
if (mDecorContentParent != null) {
final SparseArray<Parcelable> actionBarStates = new SparseArray<>();
SparseArray<Parcelable> actionBarStates = new SparseArray<Parcelable>();
mDecorContentParent.saveToolbarHierarchyState(actionBarStates);
outState.putSparseParcelableArray(ACTION_BAR_TAG, actionBarStates);
}
@@ -2040,31 +2045,33 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
return outState;
}
/** {@inheritDoc} */
@Override
public void restoreHierarchyState(Bundle savedInstanceState) {
if (mContentParent == null) {
return;
}
final SparseArray<Parcelable> savedStates =
savedInstanceState.getSparseParcelableArray(VIEWS_TAG);
SparseArray<Parcelable> savedStates
= savedInstanceState.getSparseParcelableArray(VIEWS_TAG);
if (savedStates != null) {
mContentParent.restoreHierarchyState(savedStates);
}
// Restore the focused view.
final int focusedViewId = savedInstanceState.getInt(FOCUSED_ID_TAG, View.NO_ID);
// restore the focused view
int focusedViewId = savedInstanceState.getInt(FOCUSED_ID_TAG, View.NO_ID);
if (focusedViewId != View.NO_ID) {
final View needsFocus = mContentParent.findViewById(focusedViewId);
View needsFocus = mContentParent.findViewById(focusedViewId);
if (needsFocus != null) {
needsFocus.requestFocus();
} else {
Log.w(TAG, "Previously focused view reported id " + focusedViewId
+ " during save, but can't be found during restore.");
Log.w(TAG,
"Previously focused view reported id " + focusedViewId
+ " during save, but can't be found during restore.");
}
}
// Restore the panels.
// restore the panels
SparseArray<Parcelable> panelStates = savedInstanceState.getSparseParcelableArray(PANELS_TAG);
if (panelStates != null) {
restorePanelState(panelStates);