Merge "Make metered wifi controller resilient to null config" into pi-dev

am: 861bf93502

Change-Id: I58a91c9761867fba26dab51f24454b4619eb094c
This commit is contained in:
Salvador Martinez
2018-03-31 01:55:35 +00:00
committed by android-build-merger
2 changed files with 16 additions and 3 deletions

View File

@@ -63,7 +63,9 @@ public class WifiMeteredPreferenceController extends BasePreferenceController im
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (mWifiConfiguration != null) {
mWifiConfiguration.meteredOverride = Integer.parseInt((String) newValue);
}
mWifiManager.updateNetwork(mWifiConfiguration);
// Stage the backup of the SettingsProvider package which backs this up
BackupManager.dataChanged("com.android.providers.settings");
@@ -73,9 +75,12 @@ public class WifiMeteredPreferenceController extends BasePreferenceController im
@VisibleForTesting
int getMeteredOverride() {
if (mWifiConfiguration != null) {
// Wrap the meteredOverride since robolectric cannot recognize it
return mWifiConfiguration.meteredOverride;
}
return WifiConfiguration.METERED_OVERRIDE_NONE;
}
private void updateSummary(DropDownPreference preference, int meteredOverride) {
preference.setSummary(preference.getEntries()[meteredOverride]);

View File

@@ -83,4 +83,12 @@ public class WifiMeteredPreferenceControllerTest {
assertThat(mDropDownPreference.getEntry()).isEqualTo("Detect automatically");
}
@Test
public void testController_resilientToNullConfig() {
mPreferenceController = spy(new WifiMeteredPreferenceController(mContext, null));
mPreferenceController.getMeteredOverride();
mPreferenceController.onPreferenceChange(mDropDownPreference, new Integer(1));
}
}