Merge "Make metered wifi controller resilient to null config" into pi-dev
am: 861bf93502
Change-Id: I58a91c9761867fba26dab51f24454b4619eb094c
This commit is contained in:
@@ -63,7 +63,9 @@ public class WifiMeteredPreferenceController extends BasePreferenceController im
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
if (mWifiConfiguration != null) {
|
||||||
mWifiConfiguration.meteredOverride = Integer.parseInt((String) newValue);
|
mWifiConfiguration.meteredOverride = Integer.parseInt((String) newValue);
|
||||||
|
}
|
||||||
mWifiManager.updateNetwork(mWifiConfiguration);
|
mWifiManager.updateNetwork(mWifiConfiguration);
|
||||||
// Stage the backup of the SettingsProvider package which backs this up
|
// Stage the backup of the SettingsProvider package which backs this up
|
||||||
BackupManager.dataChanged("com.android.providers.settings");
|
BackupManager.dataChanged("com.android.providers.settings");
|
||||||
@@ -73,9 +75,12 @@ public class WifiMeteredPreferenceController extends BasePreferenceController im
|
|||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
int getMeteredOverride() {
|
int getMeteredOverride() {
|
||||||
|
if (mWifiConfiguration != null) {
|
||||||
// Wrap the meteredOverride since robolectric cannot recognize it
|
// Wrap the meteredOverride since robolectric cannot recognize it
|
||||||
return mWifiConfiguration.meteredOverride;
|
return mWifiConfiguration.meteredOverride;
|
||||||
}
|
}
|
||||||
|
return WifiConfiguration.METERED_OVERRIDE_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
private void updateSummary(DropDownPreference preference, int meteredOverride) {
|
private void updateSummary(DropDownPreference preference, int meteredOverride) {
|
||||||
preference.setSummary(preference.getEntries()[meteredOverride]);
|
preference.setSummary(preference.getEntries()[meteredOverride]);
|
||||||
|
@@ -83,4 +83,12 @@ public class WifiMeteredPreferenceControllerTest {
|
|||||||
|
|
||||||
assertThat(mDropDownPreference.getEntry()).isEqualTo("Detect automatically");
|
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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user