Merge "Check if boxes still available when restoring state" into pi-dev

This commit is contained in:
TreeHugger Robot
2018-04-25 02:00:48 +00:00
committed by Android (Google) Code Review
2 changed files with 17 additions and 2 deletions

View File

@@ -118,8 +118,8 @@ public class HotspotApBandSelectionPreference extends CustomDialogPreference imp
SavedState myState = new SavedState(superState);
myState.shouldRestore = getDialog() != null;
myState.enabled2G = mBox2G.isChecked();
myState.enabled5G = mBox5G.isChecked();
myState.enabled2G = mBox2G != null && mBox2G.isChecked();
myState.enabled5G = mBox5G != null && mBox5G.isChecked();
return myState;
}

View File

@@ -115,6 +115,21 @@ public class HotspotApBandSelectionPreferenceTest {
assertThat(mPreference.mShouldRestore).isFalse();
}
@Test
public void onSaveInstanceState_doesNotCrashWhenViewGone() {
mPreference.setExistingConfigValue(WifiConfiguration.AP_BAND_2GHZ);
mPreference.onBindDialogView(mLayout);
// When the device dozes the view and dialog can become null
mPreference.mBox5G = null;
mPreference.mBox2G = null;
ReflectionHelpers.setField(mPreference, "mFragment", null);
// make sure it does not crash and state is not restored
Parcelable parcelable = mPreference.onSaveInstanceState();
mPreference.onRestoreInstanceState(parcelable);
assertThat(mPreference.mShouldRestore).isFalse();
}
@Test
public void onSaveInstanceState_presentWhenDialogPresent() {
mPreference.setExistingConfigValue(WifiConfiguration.AP_BAND_2GHZ);