Set default value for mobile listPreference

In some cases we don't set value for listPreference, so we need to set
a default one. This is a bug from code migration.

Change-Id: I8072b2a288a6a1254dceabea963f19459b0a9011
Fixes: 119770064
Test: RunSettingsRoboTests
This commit is contained in:
jackqdyulei
2018-12-21 15:32:58 -08:00
parent 18873b9278
commit 6d70582054
2 changed files with 13 additions and 1 deletions

View File

@@ -126,7 +126,6 @@ public class EnabledNetworkModePreferenceController extends BasePreferenceContro
private void updatePreferenceEntries(ListPreference preference) {
final int phoneType = mTelephonyManager.getPhoneType();
final Resources resources = mContext.getResources();
final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
final int lteForced = android.provider.Settings.Global.getInt(
@@ -216,6 +215,7 @@ public class EnabledNetworkModePreferenceController extends BasePreferenceContro
}
private void updatePreferenceValueAndSummary(ListPreference preference, int networkMode) {
preference.setValue(Integer.toString(networkMode));
switch (networkMode) {
case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:

View File

@@ -124,6 +124,18 @@ public class EnabledNetworkModePreferenceControllerTest {
assertThat(mPreference.getSummary()).isEqualTo("3G");
}
@Test
public void updateState_updateByNetworkMode_useDefaultValue() {
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA);
mController.updateState(mPreference);
assertThat(mPreference.getValue()).isEqualTo(
String.valueOf(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA));
}
@Test
public void onPreferenceChange_updateSuccess() {
doReturn(true).when(mTelephonyManager).setPreferredNetworkType(SUB_ID,