Hide the 5G opiton when 5G has been disallowed
1. Create PreferenceEntriesBuilder for 5G entry. In the past, the preferred network type entries was based on CarrierConfigManger value but 5G option is based on allowed netowork type and device access family, so include 4G and 5G logic in PreferenceEntriesBuilder. 2. If user selected item not in preferred network option, settings will auto selected on the first item. For example, if user selected on 5G and device disallowed 5G(5G option will be hide), so settings will selected on first item(4G). Bug: 149721842 Test: EnabledNetworkModePreferenceControllerTest Change-Id: Ic447a137f9db4cf1a0048a8e58487c29b402bb48
This commit is contained in:
@@ -44,7 +44,6 @@ 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;
|
||||
|
||||
@@ -61,6 +60,9 @@ public class EnabledNetworkModePreferenceControllerTest {
|
||||
private static final int SUB_ID = 2;
|
||||
public static final String KEY = "enabled_network";
|
||||
|
||||
private static final long ALLOWED_ALL_NETWORK_TYPE = -1;
|
||||
private static final long DISABLED_5G_NETWORK_TYPE = ~TelephonyManager.NETWORK_TYPE_BITMASK_NR;
|
||||
|
||||
@Mock
|
||||
private TelephonyManager mTelephonyManager;
|
||||
@Mock
|
||||
@@ -92,19 +94,20 @@ public class EnabledNetworkModePreferenceControllerTest {
|
||||
doReturn(mContext).when(mContext).createPackageContext(anyString(), anyInt());
|
||||
doReturn(mServiceState).when(mTelephonyManager).getServiceState();
|
||||
mPersistableBundle = new PersistableBundle();
|
||||
doReturn(mPersistableBundle).when(mCarrierConfigManager).getConfig();
|
||||
doReturn(mPersistableBundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
|
||||
|
||||
mPreference = new ListPreference(mContext);
|
||||
mPreference.setEntries(R.array.enabled_networks_choices);
|
||||
mPreference.setEntryValues(R.array.enabled_networks_values);
|
||||
mController = new EnabledNetworkModePreferenceController(mContext, KEY);
|
||||
mockAllowedNetworkTypes(ALLOWED_ALL_NETWORK_TYPE);
|
||||
mockAccessFamily(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA);
|
||||
mController.init(mLifecycle, SUB_ID);
|
||||
mPreference.setKey(mController.getPreferenceKey());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAvailabilityStatus_hideCarrierNetworkSettings_returnUnavailable() {
|
||||
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
|
||||
mPersistableBundle.putBoolean(
|
||||
CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
|
||||
true);
|
||||
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
|
||||
@@ -140,40 +143,118 @@ public class EnabledNetworkModePreferenceControllerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void init_initShow4GForLTE() {
|
||||
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL,
|
||||
true);
|
||||
public void updateState_LteWorldPhone_GlobalHasLte() {
|
||||
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
|
||||
|
||||
mController.init(mLifecycle, SUB_ID);
|
||||
mController.updateState(mPreference);
|
||||
|
||||
assertThat(mController.mShow4GForLTE).isTrue();
|
||||
assertThat(mPreference.getEntryValues())
|
||||
.asList()
|
||||
.contains(String.valueOf(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void init_initDisplay5gList_returnTrue() {
|
||||
long testBitmask = TelephonyManager.NETWORK_TYPE_BITMASK_NR
|
||||
| TelephonyManager.NETWORK_TYPE_BITMASK_LTE;
|
||||
long allowedNetworkTypes = -1;
|
||||
doReturn(testBitmask).when(mTelephonyManager).getSupportedRadioAccessFamily();
|
||||
doReturn(allowedNetworkTypes).when(mTelephonyManager).getAllowedNetworkTypes();
|
||||
public void updateState_5gWorldPhone_GlobalHasNr() {
|
||||
mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
|
||||
mController.init(mLifecycle, SUB_ID);
|
||||
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
|
||||
|
||||
assertThat(mController.mDisplay5gList).isTrue();
|
||||
mController.updateState(mPreference);
|
||||
|
||||
assertThat(mPreference.getEntryValues())
|
||||
.asList()
|
||||
.contains(String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void checkSupportedRadioBitmask_nrBitmask_returnTrue() {
|
||||
long testBitmask = TelephonyManager.NETWORK_TYPE_BITMASK_NR
|
||||
| TelephonyManager.NETWORK_TYPE_BITMASK_LTE;
|
||||
public void updateState_selectedOn5gItem() {
|
||||
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
|
||||
mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
|
||||
mController.init(mLifecycle, SUB_ID);
|
||||
Settings.Global.putInt(mContext.getContentResolver(),
|
||||
Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
|
||||
TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
|
||||
|
||||
assertThat(mController.checkSupportedRadioBitmask(testBitmask,
|
||||
TelephonyManager.NETWORK_TYPE_BITMASK_NR)).isTrue();
|
||||
mController.updateState(mPreference);
|
||||
|
||||
assertThat(mPreference.getValue()).isEqualTo(
|
||||
String.valueOf(
|
||||
TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_disAllowed5g_5gOptionHidden() {
|
||||
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
|
||||
mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
|
||||
mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
|
||||
mController.init(mLifecycle, SUB_ID);
|
||||
Settings.Global.putInt(mContext.getContentResolver(),
|
||||
Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
|
||||
TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
|
||||
|
||||
mController.updateState(mPreference);
|
||||
|
||||
assertThat(mPreference.getEntryValues())
|
||||
.asList()
|
||||
.doesNotContain(
|
||||
String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_disAllowed5g_selectOn4gOption() {
|
||||
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
|
||||
mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
|
||||
mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
|
||||
mController.init(mLifecycle, SUB_ID);
|
||||
Settings.Global.putInt(mContext.getContentResolver(),
|
||||
Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
|
||||
TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA);
|
||||
|
||||
mController.updateState(mPreference);
|
||||
|
||||
assertThat(mPreference.getValue()).isEqualTo(
|
||||
String.valueOf(
|
||||
TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_GlobalDisAllowed5g_GlobalWithoutNR() {
|
||||
mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
|
||||
mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
|
||||
mController.init(mLifecycle, SUB_ID);
|
||||
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
|
||||
Settings.Global.putInt(mContext.getContentResolver(),
|
||||
Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
|
||||
TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
|
||||
|
||||
mController.updateState(mPreference);
|
||||
|
||||
assertThat(mPreference.getEntryValues())
|
||||
.asList()
|
||||
.doesNotContain(
|
||||
String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_GlobalDisAllowed5g_SelectOnGlobal() {
|
||||
mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
|
||||
mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
|
||||
mController.init(mLifecycle, SUB_ID);
|
||||
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
|
||||
Settings.Global.putInt(mContext.getContentResolver(),
|
||||
Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
|
||||
TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
|
||||
|
||||
mController.updateState(mPreference);
|
||||
|
||||
assertThat(mPreference.getValue()).isEqualTo(
|
||||
String.valueOf(
|
||||
TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_updateByNetworkMode() {
|
||||
long allowedNetworkTypes = -1;
|
||||
doReturn(allowedNetworkTypes).when(mTelephonyManager).getAllowedNetworkTypes();
|
||||
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
|
||||
Settings.Global.putInt(mContext.getContentResolver(),
|
||||
Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
|
||||
TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
|
||||
@@ -187,8 +268,7 @@ public class EnabledNetworkModePreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void updateState_updateByNetworkMode_useDefaultValue() {
|
||||
long allowedNetworkTypes = -1;
|
||||
doReturn(allowedNetworkTypes).when(mTelephonyManager).getAllowedNetworkTypes();
|
||||
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
|
||||
Settings.Global.putInt(mContext.getContentResolver(),
|
||||
Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
|
||||
TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
|
||||
@@ -199,208 +279,13 @@ public class EnabledNetworkModePreferenceControllerTest {
|
||||
String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
|
||||
}
|
||||
|
||||
/**
|
||||
* @string/enabled_networks_cdma_choices
|
||||
* Before | After
|
||||
* @string/network_lte , 8 |@string/network_5G + @string/network_recommended , 25
|
||||
* @string/network_3G , 4 |@string/network_lte_pure, 8
|
||||
* @string/network_1x , 5 |@string/network_3G , 4
|
||||
* @string/network_global, 10|@string/network_1x , 5
|
||||
* |@string/network_global , 27
|
||||
*
|
||||
* @string/enabled_networks_cdma_only_lte_choices
|
||||
* Before | After
|
||||
* @string/network_lte , 8 |@string/network_5G + @string/network_recommended , 25
|
||||
* @string/network_global, 10|@string/network_lte_pure, 8
|
||||
* |@string/network_global , 27
|
||||
*/
|
||||
@Test
|
||||
public void add5gListItem_lteCdma_5gLteCdma() {
|
||||
//case#1
|
||||
mPreference.setEntries(R.array.enabled_networks_cdma_choices);
|
||||
mPreference.setEntryValues(R.array.enabled_networks_cdma_values);
|
||||
CharSequence[] testEntries = {mContext.getString(R.string.network_5G)
|
||||
+ mContext.getString(R.string.network_recommended)
|
||||
, mContext.getString(R.string.network_lte_pure)
|
||||
, mContext.getString(R.string.network_3G)
|
||||
, mContext.getString(R.string.network_1x)
|
||||
, mContext.getString(R.string.network_global)};
|
||||
CharSequence[] testEntryValues = {"25", "8", "4", "5", "27"};
|
||||
|
||||
mController.add5gListItem(mPreference);
|
||||
|
||||
assertThat(mPreference.getEntries()).isEqualTo(testEntries);
|
||||
assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues);
|
||||
|
||||
//case#2
|
||||
mPreference.setEntries(R.array.enabled_networks_cdma_only_lte_choices);
|
||||
mPreference.setEntryValues(R.array.enabled_networks_cdma_only_lte_values);
|
||||
CharSequence[] testEntries1 = {mContext.getString(R.string.network_5G)
|
||||
+ mContext.getString(R.string.network_recommended)
|
||||
, mContext.getString(R.string.network_lte_pure)
|
||||
, mContext.getString(R.string.network_global)};
|
||||
CharSequence[] testEntryValues1 = {"25", "8", "27"};
|
||||
|
||||
mController.add5gListItem(mPreference);
|
||||
|
||||
assertThat(mPreference.getEntries()).isEqualTo(testEntries1);
|
||||
assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @string/enabled_networks_except_gsm_4g_choices
|
||||
* Before | After
|
||||
* @string/network_4G , 9 |@string/network_5G + @string/network_recommended , 26
|
||||
* @string/network_3G , 0 |@string/network_4G_pure , 9
|
||||
* |@string/network_3G , 0
|
||||
*
|
||||
* @string/enabled_networks_except_gsm_choices
|
||||
* Before | After
|
||||
* @string/network_lte, 9 |@string/network_5G + @string/network_recommended , 26
|
||||
* @string/network_3G , 0 |@string/network_lte_pure, 9
|
||||
* |@string/network_3G , 0
|
||||
*
|
||||
* @string/enabled_networks_4g_choices
|
||||
* Before | After
|
||||
* @string/network_4G , 9 |@string/network_5G + @string/network_recommended , 26
|
||||
* @string/network_3G , 0 |@string/network_4G_pure , 9
|
||||
* @string/network_2G , 1 |@string/network_3G , 0
|
||||
* |@string/network_2G , 1
|
||||
*
|
||||
* @string/enabled_networks_choices
|
||||
* Before | After
|
||||
* @string/network_lte, 9 |@string/network_5G + @string/network_recommended , 26
|
||||
* @string/network_3G , 0 |@string/network_lte_pure, 9
|
||||
* @string/network_2G , 1 |@string/network_3G , 0
|
||||
* |@string/network_2G , 1
|
||||
*/
|
||||
@Test
|
||||
public void add5gListItem_lteGsm_5gLteGsm() {
|
||||
//csae#1
|
||||
mPreference.setEntries(R.array.enabled_networks_except_gsm_4g_choices);
|
||||
mPreference.setEntryValues(R.array.enabled_networks_except_gsm_values);
|
||||
CharSequence[] testEntries = {mContext.getString(R.string.network_5G)
|
||||
+ mContext.getString(R.string.network_recommended)
|
||||
, mContext.getString(R.string.network_4G_pure)
|
||||
, mContext.getString(R.string.network_3G)};
|
||||
CharSequence[] testEntryValues = {"26", "9", "0"};
|
||||
|
||||
mController.add5gListItem(mPreference);
|
||||
|
||||
assertThat(mPreference.getEntries()).isEqualTo(testEntries);
|
||||
assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues);
|
||||
|
||||
//case#2
|
||||
mPreference.setEntries(R.array.enabled_networks_except_gsm_choices);
|
||||
mPreference.setEntryValues(R.array.enabled_networks_except_gsm_values);
|
||||
CharSequence[] testEntries1 = {mContext.getString(R.string.network_5G)
|
||||
+ mContext.getString(R.string.network_recommended)
|
||||
, mContext.getString(R.string.network_lte_pure)
|
||||
, mContext.getString(R.string.network_3G)};
|
||||
CharSequence[] testEntryValues1 = {"26", "9", "0"};
|
||||
|
||||
mController.add5gListItem(mPreference);
|
||||
|
||||
assertThat(mPreference.getEntries()).isEqualTo(testEntries1);
|
||||
assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues1);
|
||||
|
||||
//case#3
|
||||
mPreference.setEntries(R.array.enabled_networks_4g_choices);
|
||||
mPreference.setEntryValues(R.array.enabled_networks_values);
|
||||
CharSequence[] testEntries2 = {mContext.getString(R.string.network_5G)
|
||||
+ mContext.getString(R.string.network_recommended)
|
||||
, mContext.getString(R.string.network_4G_pure)
|
||||
, mContext.getString(R.string.network_3G)
|
||||
, mContext.getString(R.string.network_2G)};
|
||||
CharSequence[] testEntryValues2 = {"26", "9", "0", "1"};
|
||||
|
||||
mController.add5gListItem(mPreference);
|
||||
|
||||
assertThat(mPreference.getEntries()).isEqualTo(testEntries2);
|
||||
assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues2);
|
||||
|
||||
//case#4
|
||||
mPreference.setEntries(R.array.enabled_networks_choices);
|
||||
mPreference.setEntryValues(R.array.enabled_networks_values);
|
||||
CharSequence[] testEntries3 = {mContext.getString(R.string.network_5G)
|
||||
+ mContext.getString(R.string.network_recommended)
|
||||
, mContext.getString(R.string.network_lte_pure)
|
||||
, mContext.getString(R.string.network_3G)
|
||||
, mContext.getString(R.string.network_2G)};
|
||||
CharSequence[] testEntryValues3 = {"26", "9", "0", "1"};
|
||||
|
||||
mController.add5gListItem(mPreference);
|
||||
|
||||
assertThat(mPreference.getEntries()).isEqualTo(testEntries3);
|
||||
assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues3);
|
||||
}
|
||||
|
||||
/**
|
||||
* @string/preferred_network_mode_choices_world_mode
|
||||
* Before | After
|
||||
* "Global" , 10|@string/network_global , 27
|
||||
* "LTE / CDMA" , 8 |"LTE / CDMA" , 8
|
||||
* "LTE / GSM / UMTS" , 9 |"LTE / GSM / UMTS" , 9
|
||||
*/
|
||||
@Test
|
||||
public void add5gListItem_worldPhone_Global() {
|
||||
mPreference.setEntries(R.array.preferred_network_mode_choices_world_mode);
|
||||
mPreference.setEntryValues(R.array.preferred_network_mode_values_world_mode);
|
||||
CharSequence[] testEntries = {mContext.getString(R.string.network_global)
|
||||
, "LTE / CDMA"
|
||||
, "LTE / GSM / UMTS"};
|
||||
CharSequence[] testEntryValues = {"27", "8", "9"};
|
||||
|
||||
mController.add5gListItem(mPreference);
|
||||
|
||||
assertThat(mPreference.getEntries()).isEqualTo(testEntries);
|
||||
assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues);
|
||||
}
|
||||
|
||||
/**
|
||||
* @string/enabled_networks_tdscdma_choices
|
||||
* Before | After
|
||||
* @string/network_lte, 22|@string/network_5G + @string/network_recommended , 33
|
||||
* @string/network_3G , 18|@string/network_lte_pure, 22
|
||||
* @string/network_2G , 1 |@string/network_3G , 18
|
||||
* |@string/network_2G , 1
|
||||
*/
|
||||
@Test
|
||||
public void add5gListItem_td_5gTd() {
|
||||
mPreference.setEntries(R.array.enabled_networks_tdscdma_choices);
|
||||
mPreference.setEntryValues(R.array.enabled_networks_tdscdma_values);
|
||||
CharSequence[] testEntries = {mContext.getString(R.string.network_5G)
|
||||
+ mContext.getString(R.string.network_recommended)
|
||||
, mContext.getString(R.string.network_lte_pure)
|
||||
, mContext.getString(R.string.network_3G)
|
||||
, mContext.getString(R.string.network_2G)};
|
||||
CharSequence[] testEntryValues = {"33", "22", "18", "1"};
|
||||
|
||||
mController.add5gListItem(mPreference);
|
||||
|
||||
assertThat(mPreference.getEntries()).isEqualTo(testEntries);
|
||||
assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void add5gListItem_noLte_no5g() {
|
||||
mPreference.setEntries(R.array.enabled_networks_except_lte_choices);
|
||||
mPreference.setEntryValues(R.array.enabled_networks_except_lte_values);
|
||||
CharSequence[] testEntries = {mContext.getString(R.string.network_3G)
|
||||
, mContext.getString(R.string.network_2G)};
|
||||
CharSequence[] testEntryValues = {"0", "1"};
|
||||
|
||||
mController.add5gListItem(mPreference);
|
||||
|
||||
assertThat(mPreference.getEntries()).isEqualTo(testEntries);
|
||||
assertThat(mPreference.getEntryValues()).isEqualTo(testEntryValues);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onPreferenceChange_updateSuccess() {
|
||||
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
|
||||
doReturn(true).when(mTelephonyManager).setPreferredNetworkTypeBitmask(
|
||||
getRafFromNetworkType(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
|
||||
|
||||
mController.updateState(mPreference);
|
||||
mController.onPreferenceChange(mPreference,
|
||||
String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
|
||||
|
||||
@@ -410,9 +295,11 @@ public class EnabledNetworkModePreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void onPreferenceChange_updateFail() {
|
||||
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
|
||||
doReturn(false).when(mTelephonyManager).setPreferredNetworkTypeBitmask(
|
||||
getRafFromNetworkType(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
|
||||
|
||||
mController.updateState(mPreference);
|
||||
mController.onPreferenceChange(mPreference,
|
||||
String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
|
||||
|
||||
@@ -423,8 +310,7 @@ public class EnabledNetworkModePreferenceControllerTest {
|
||||
@Test
|
||||
public void preferredNetworkModeNotification_preferenceUpdates() {
|
||||
PreferenceScreen screen = mock(PreferenceScreen.class);
|
||||
long allowedNetworkTypes = -1;
|
||||
doReturn(allowedNetworkTypes).when(mTelephonyManager).getAllowedNetworkTypes();
|
||||
mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
|
||||
doReturn(mPreference).when(screen).findPreference(KEY);
|
||||
Settings.Global.putInt(mContext.getContentResolver(),
|
||||
Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
|
||||
@@ -448,4 +334,32 @@ public class EnabledNetworkModePreferenceControllerTest {
|
||||
TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY);
|
||||
assertThat(mPreference.getSummary()).isEqualTo("2G");
|
||||
}
|
||||
|
||||
private void mockEnabledNetworkMode(int networkMode) {
|
||||
if (networkMode == TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA) {
|
||||
mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
|
||||
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, true);
|
||||
} else if (networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA) {
|
||||
mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
|
||||
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL, true);
|
||||
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL, true);
|
||||
} else if (networkMode == TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA) {
|
||||
mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
|
||||
mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, true);
|
||||
}
|
||||
}
|
||||
|
||||
private void mockAllowedNetworkTypes(long allowedNetworkType) {
|
||||
doReturn(allowedNetworkType).when(mTelephonyManager).getAllowedNetworkTypes();
|
||||
}
|
||||
|
||||
private void mockAccessFamily(int networkMode) {
|
||||
doReturn(MobileNetworkUtils.getRafFromNetworkType(networkMode))
|
||||
.when(mTelephonyManager)
|
||||
.getSupportedRadioAccessFamily();
|
||||
}
|
||||
|
||||
private void mockPhoneType(int phoneType) {
|
||||
doReturn(TelephonyManager.PHONE_TYPE_GSM).when(mTelephonyManager).getPhoneType();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user