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

This commit is contained in:
TreeHugger Robot
2018-03-30 20:50:25 +00:00
committed by Android (Google) Code Review
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) {
mWifiConfiguration.meteredOverride = Integer.parseInt((String) 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,8 +75,11 @@ public class WifiMeteredPreferenceController extends BasePreferenceController im
@VisibleForTesting
int getMeteredOverride() {
// Wrap the meteredOverride since robolectric cannot recognize it
return mWifiConfiguration.meteredOverride;
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) {

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