NetworkModePreference's list needs to allow values set from overlay.

Root cause: ag/10614943 removed the resources, so each of item
values is hard coded. This broke the overlay. This CL adds the
resource back so the overlay can work.

Bug: 159301925
Test: make RunSettingsRoboTests ROBOTEST_FILTER=\
EnabledNetworkModePreferenceControllerTest (PASS)

Change-Id: Id5ad2fdd0a87586136e4a26d2e44cf5278df5d9d
This commit is contained in:
SongFerngWang
2020-06-18 23:03:57 +08:00
parent ea45695190
commit 36796a1616
3 changed files with 203 additions and 46 deletions

View File

@@ -24,6 +24,7 @@ import static com.android.settings.network.telephony.MobileNetworkUtils.getRafFr
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doReturn;
@@ -44,6 +45,7 @@ import androidx.lifecycle.LifecycleOwner;
import androidx.preference.ListPreference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -337,6 +339,49 @@ public class EnabledNetworkModePreferenceControllerTest {
assertThat(mPreference.getSummary()).isEqualTo("2G");
}
@Test
public void checkResource_stringArrayLength() {
String[] entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_cdma_values);
assertEquals(4, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_cdma_no_lte_values);
assertEquals(2, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_cdma_only_lte_values);
assertEquals(2, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_tdscdma_values);
assertEquals(3, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_except_gsm_lte_values);
assertEquals(1, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_except_gsm_values);
assertEquals(2, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_except_lte_values);
assertEquals(2, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_values);
assertEquals(3, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.enabled_networks_values);
assertEquals(3, entryValues.length);
entryValues = mContext.getResources().getStringArray(
R.array.preferred_network_mode_values_world_mode);
assertEquals(3, entryValues.length);
}
private void mockEnabledNetworkMode(int networkMode) {
if (networkMode == TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA) {
mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);