Preferred network list add 5G item
am: 76422cab68
Change-Id: I05771619c27d7ce0dd40fd83a9b3560758d29621
This commit is contained in:
@@ -26,9 +26,12 @@ import android.os.Looper;
|
|||||||
import android.os.PersistableBundle;
|
import android.os.PersistableBundle;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.telephony.CarrierConfigManager;
|
import android.telephony.CarrierConfigManager;
|
||||||
|
import android.telephony.RadioAccessFamily;
|
||||||
import android.telephony.ServiceState;
|
import android.telephony.ServiceState;
|
||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
|
import android.text.TextUtils;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.lifecycle.Lifecycle;
|
import androidx.lifecycle.Lifecycle;
|
||||||
@@ -42,6 +45,9 @@ import com.android.internal.telephony.Phone;
|
|||||||
import com.android.internal.telephony.PhoneConstants;
|
import com.android.internal.telephony.PhoneConstants;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Preference controller for "Enabled network mode"
|
* Preference controller for "Enabled network mode"
|
||||||
*/
|
*/
|
||||||
@@ -49,6 +55,7 @@ public class EnabledNetworkModePreferenceController extends
|
|||||||
TelephonyBasePreferenceController implements
|
TelephonyBasePreferenceController implements
|
||||||
ListPreference.OnPreferenceChangeListener, LifecycleObserver {
|
ListPreference.OnPreferenceChangeListener, LifecycleObserver {
|
||||||
|
|
||||||
|
private static final String LOG_TAG = "EnabledNetworkMode";
|
||||||
private CarrierConfigManager mCarrierConfigManager;
|
private CarrierConfigManager mCarrierConfigManager;
|
||||||
private ContentObserver mPreferredNetworkModeObserver;
|
private ContentObserver mPreferredNetworkModeObserver;
|
||||||
private TelephonyManager mTelephonyManager;
|
private TelephonyManager mTelephonyManager;
|
||||||
@@ -56,6 +63,8 @@ public class EnabledNetworkModePreferenceController extends
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
boolean mShow4GForLTE;
|
boolean mShow4GForLTE;
|
||||||
private Preference mPreference;
|
private Preference mPreference;
|
||||||
|
@VisibleForTesting
|
||||||
|
boolean mDisplay5gList = false;
|
||||||
|
|
||||||
public EnabledNetworkModePreferenceController(Context context, String key) {
|
public EnabledNetworkModePreferenceController(Context context, String key) {
|
||||||
super(context, key);
|
super(context, key);
|
||||||
@@ -149,6 +158,11 @@ public class EnabledNetworkModePreferenceController extends
|
|||||||
? carrierConfig.getBoolean(
|
? carrierConfig.getBoolean(
|
||||||
CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL)
|
CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL)
|
||||||
: false;
|
: false;
|
||||||
|
|
||||||
|
final long supportedRadioBitmask = mTelephonyManager.getSupportedRadioAccessFamily();
|
||||||
|
mDisplay5gList = checkSupportedRadioBitmask(
|
||||||
|
supportedRadioBitmask, mTelephonyManager.NETWORK_TYPE_BITMASK_NR);
|
||||||
|
|
||||||
lifecycle.addObserver(this);
|
lifecycle.addObserver(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -249,6 +263,139 @@ public class EnabledNetworkModePreferenceController extends
|
|||||||
preference.setEntryValues(
|
preference.setEntryValues(
|
||||||
R.array.preferred_network_mode_values_world_mode);
|
R.array.preferred_network_mode_values_world_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mDisplay5gList) {
|
||||||
|
add5gListItem(preference);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
boolean checkSupportedRadioBitmask(long supportedRadioBitmask, long targetBitmask) {
|
||||||
|
Log.d(LOG_TAG, "supportedRadioBitmask: " + supportedRadioBitmask);
|
||||||
|
if ((targetBitmask & supportedRadioBitmask) > 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/***
|
||||||
|
* Preferred network list add 5G item.
|
||||||
|
*
|
||||||
|
* @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
|
||||||
|
*
|
||||||
|
* @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
|
||||||
|
*
|
||||||
|
* @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
|
||||||
|
*
|
||||||
|
* @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
|
||||||
|
*/
|
||||||
|
@VisibleForTesting
|
||||||
|
void add5gListItem(ListPreference preference) {
|
||||||
|
final CharSequence[] oldEntries = preference.getEntries();
|
||||||
|
final CharSequence[] oldEntryValues = preference.getEntryValues();
|
||||||
|
List<CharSequence> newEntries = new ArrayList<>();
|
||||||
|
List<CharSequence> newEntryValues = new ArrayList<>();
|
||||||
|
|
||||||
|
CharSequence oldEntry;
|
||||||
|
CharSequence oldEntryValue;
|
||||||
|
CharSequence new5gEntry;
|
||||||
|
CharSequence new5gEntryValue;
|
||||||
|
|
||||||
|
for (int i = 0; i < oldEntries.length; i++) {
|
||||||
|
oldEntry = oldEntries[i];
|
||||||
|
oldEntryValue = oldEntryValues[i];
|
||||||
|
new5gEntry = "";
|
||||||
|
new5gEntryValue = "";
|
||||||
|
|
||||||
|
if (mContext.getString(R.string.network_lte).equals(oldEntry)) {
|
||||||
|
oldEntry = mContext.getString(R.string.network_lte_pure);
|
||||||
|
new5gEntry = mContext.getString(R.string.network_5G)
|
||||||
|
+ mContext.getString(R.string.network_recommended);
|
||||||
|
new5gEntryValue = transformLteEntryValueTo5gEntryValue(oldEntryValue);
|
||||||
|
} else if (mContext.getString(R.string.network_4G).equals(oldEntry)) {
|
||||||
|
oldEntry = mContext.getString(R.string.network_4G_pure);
|
||||||
|
new5gEntry = mContext.getString(R.string.network_5G)
|
||||||
|
+ mContext.getString(R.string.network_recommended);
|
||||||
|
new5gEntryValue = transformLteEntryValueTo5gEntryValue(oldEntryValue);
|
||||||
|
} else if (mContext.getString(R.string.network_global).equals(oldEntry)) {
|
||||||
|
//oldEntry: network_global
|
||||||
|
//oldEntryValue: TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA
|
||||||
|
oldEntryValue = Integer.toString(
|
||||||
|
TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!TextUtils.isEmpty(new5gEntry)) {
|
||||||
|
newEntries.add(new5gEntry);
|
||||||
|
newEntryValues.add(new5gEntryValue);
|
||||||
|
}
|
||||||
|
newEntries.add(oldEntry);
|
||||||
|
newEntryValues.add(oldEntryValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
preference.setEntries(newEntries.toArray(new CharSequence[newEntries.size()]));
|
||||||
|
preference.setEntryValues(newEntryValues.toArray(new CharSequence[newEntryValues.size()]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* LTE network mode transform to 5G network mode.
|
||||||
|
*
|
||||||
|
* @param networkMode this is LTE network mode.
|
||||||
|
* @return 5G network mode.
|
||||||
|
*/
|
||||||
|
private CharSequence transformLteEntryValueTo5gEntryValue(CharSequence networkMode) {
|
||||||
|
int networkModeInt = Integer.valueOf(networkMode.toString());
|
||||||
|
return Integer.toString(addNrToNetworkType(networkModeInt));
|
||||||
|
}
|
||||||
|
|
||||||
|
private int addNrToNetworkType(int networkType) {
|
||||||
|
long networkTypeBitmasks = RadioAccessFamily.getRafFromNetworkType(networkType);
|
||||||
|
networkTypeBitmasks |= mTelephonyManager.NETWORK_TYPE_BITMASK_NR;
|
||||||
|
return RadioAccessFamily.getNetworkTypeFromRaf((int) networkTypeBitmasks);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updatePreferenceValueAndSummary(ListPreference preference, int networkMode) {
|
private void updatePreferenceValueAndSummary(ListPreference preference, int networkMode) {
|
||||||
@@ -312,7 +459,8 @@ public class EnabledNetworkModePreferenceController extends
|
|||||||
} else {
|
} else {
|
||||||
preference.setValue(
|
preference.setValue(
|
||||||
Integer.toString(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO));
|
Integer.toString(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO));
|
||||||
preference.setSummary(R.string.network_lte);
|
preference.setSummary(
|
||||||
|
mDisplay5gList ? R.string.network_lte_pure : R.string.network_lte);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
|
case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
|
||||||
@@ -347,7 +495,8 @@ public class EnabledNetworkModePreferenceController extends
|
|||||||
preference.setValue(
|
preference.setValue(
|
||||||
Integer.toString(TelephonyManager
|
Integer.toString(TelephonyManager
|
||||||
.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
|
.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
|
||||||
preference.setSummary(R.string.network_lte);
|
preference.setSummary(
|
||||||
|
mDisplay5gList ? R.string.network_lte_pure : R.string.network_lte);
|
||||||
} else {
|
} else {
|
||||||
preference.setValue(
|
preference.setValue(
|
||||||
Integer.toString(TelephonyManager
|
Integer.toString(TelephonyManager
|
||||||
@@ -357,11 +506,34 @@ public class EnabledNetworkModePreferenceController extends
|
|||||||
|| MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
|
|| MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
|
||||||
preference.setSummary(R.string.network_global);
|
preference.setSummary(R.string.network_global);
|
||||||
} else {
|
} else {
|
||||||
preference.setSummary(mShow4GForLTE
|
if (mDisplay5gList) {
|
||||||
? R.string.network_4G : R.string.network_lte);
|
preference.setSummary(mShow4GForLTE
|
||||||
|
? R.string.network_4G_pure : R.string.network_lte_pure);
|
||||||
|
} else {
|
||||||
|
preference.setSummary(mShow4GForLTE
|
||||||
|
? R.string.network_4G : R.string.network_lte);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO:
|
||||||
|
case TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
|
||||||
|
preference.setValue(Integer.toString(networkMode));
|
||||||
|
preference.setSummary(mContext.getString(R.string.network_5G)
|
||||||
|
+ mContext.getString(R.string.network_recommended));
|
||||||
|
break;
|
||||||
|
case TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA:
|
||||||
|
preference.setValue(
|
||||||
|
Integer.toString(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA));
|
||||||
|
if (mTelephonyManager.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA
|
||||||
|
|| mIsGlobalCdma
|
||||||
|
|| MobileNetworkUtils.isWorldMode(mContext, mSubId)) {
|
||||||
|
preference.setSummary(R.string.network_global);
|
||||||
|
} else {
|
||||||
|
preference.setSummary(mContext.getString(R.string.network_5G)
|
||||||
|
+ mContext.getString(R.string.network_recommended));
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
preference.setSummary(
|
preference.setSummary(
|
||||||
mContext.getString(R.string.mobile_network_mode_error, networkMode));
|
mContext.getString(R.string.mobile_network_mode_error, networkMode));
|
||||||
|
@@ -147,6 +147,26 @@ public class EnabledNetworkModePreferenceControllerTest {
|
|||||||
assertThat(mController.mShow4GForLTE).isTrue();
|
assertThat(mController.mShow4GForLTE).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void init_initDisplay5gList_returnTrue() {
|
||||||
|
long testBitmask = TelephonyManager.NETWORK_TYPE_BITMASK_NR
|
||||||
|
| TelephonyManager.NETWORK_TYPE_BITMASK_LTE;
|
||||||
|
doReturn(testBitmask).when(mTelephonyManager).getSupportedRadioAccessFamily();
|
||||||
|
|
||||||
|
mController.init(mLifecycle, SUB_ID);
|
||||||
|
|
||||||
|
assertThat(mController.mDisplay5gList).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void checkSupportedRadioBitmask_nrBitmask_returnTrue() {
|
||||||
|
long testBitmask = TelephonyManager.NETWORK_TYPE_BITMASK_NR
|
||||||
|
| TelephonyManager.NETWORK_TYPE_BITMASK_LTE;
|
||||||
|
|
||||||
|
assertThat(mController.checkSupportedRadioBitmask(testBitmask,
|
||||||
|
TelephonyManager.NETWORK_TYPE_BITMASK_NR)).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateState_updateByNetworkMode() {
|
public void updateState_updateByNetworkMode() {
|
||||||
Settings.Global.putInt(mContext.getContentResolver(),
|
Settings.Global.putInt(mContext.getContentResolver(),
|
||||||
@@ -172,6 +192,203 @@ public class EnabledNetworkModePreferenceControllerTest {
|
|||||||
String.valueOf(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA));
|
String.valueOf(TelephonyManager.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
|
@Test
|
||||||
public void onPreferenceChange_updateSuccess() {
|
public void onPreferenceChange_updateSuccess() {
|
||||||
doReturn(true).when(mTelephonyManager).setPreferredNetworkType(SUB_ID,
|
doReturn(true).when(mTelephonyManager).setPreferredNetworkType(SUB_ID,
|
||||||
|
Reference in New Issue
Block a user