diff --git a/res/values/strings.xml b/res/values/strings.xml
index b360c4b11..6a9de6529 100755
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -362,11 +362,27 @@
Preferred network mode: CDMA only
Preferred network mode: EvDo only
-
- Preferred network mode: LTE / CDMA
+
+ Preferred network mode: CDMA/EvDo/GSM/WCDMA
+
+ Preferred network mode: LTE
+
+ Preferred network mode: GSM/WCDMA/LTE
+
+ Preferred network mode: CDMA+LTE/EVDO
+
+ Preferred network mode: Global
+
+ Preferred network mode: LTE / WCDMA
+
- - LTE/CDMA
+ - LTE / WCDMA
+ - LTE
+ - Global
+ - GSM/WCDMA/LTE
+ - CDMA + LTE/EvDo
+ - CDMA/EvDo/GSM/WCDMA
- EvDo only
- CDMA w/o EvDo
- CDMA/EvDo auto
@@ -376,6 +392,11 @@
- GSM/WCDMA preferred
+ - "12"
+ - "11"
+ - "10"
+ - "9"
+ - "8"
- "7"
- "6"
- "5"
@@ -385,15 +406,6 @@
- "1"
- "0"
-
-
- - LTE/CDMA
- - CDMA
-
-
- - "7"
- - "4"
-
Data enabled
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
index a81d7c2c9..d11ca0e46 100644
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -244,10 +244,6 @@ protected void onCreate(Bundle icicle) {
mCdmaOptions = new CdmaOptions(this, prefSet, mPhone);
if (isLteOnCdma) {
mButtonPreferredNetworkMode.setOnPreferenceChangeListener(this);
- mButtonPreferredNetworkMode.setEntries(
- R.array.preferred_network_mode_choices_lte);
- mButtonPreferredNetworkMode.setEntryValues(
- R.array.preferred_network_mode_values_lte);
int settingsNetworkMode = android.provider.Settings.Global.getInt(
mPhone.getContext().getContentResolver(),
android.provider.Settings.Global.PREFERRED_NETWORK_MODE,
@@ -332,41 +328,27 @@ public boolean onPreferenceChange(Preference preference, Object objValue) {
android.provider.Settings.Global.PREFERRED_NETWORK_MODE, preferredNetworkMode);
if (buttonNetworkMode != settingsNetworkMode) {
int modemNetworkMode;
- switch(buttonNetworkMode) {
- case Phone.NT_MODE_GLOBAL:
- modemNetworkMode = Phone.NT_MODE_GLOBAL;
- break;
- case Phone.NT_MODE_EVDO_NO_CDMA:
- modemNetworkMode = Phone.NT_MODE_EVDO_NO_CDMA;
- break;
- case Phone.NT_MODE_CDMA_NO_EVDO:
- modemNetworkMode = Phone.NT_MODE_CDMA_NO_EVDO;
- break;
- case Phone.NT_MODE_CDMA:
- modemNetworkMode = Phone.NT_MODE_CDMA;
- break;
- case Phone.NT_MODE_GSM_UMTS:
- modemNetworkMode = Phone.NT_MODE_GSM_UMTS;
- break;
- case Phone.NT_MODE_WCDMA_ONLY:
- modemNetworkMode = Phone.NT_MODE_WCDMA_ONLY;
- break;
- case Phone.NT_MODE_GSM_ONLY:
- modemNetworkMode = Phone.NT_MODE_GSM_ONLY;
- break;
+ // if new mode is invalid ignore it
+ switch (buttonNetworkMode) {
case Phone.NT_MODE_WCDMA_PREF:
- modemNetworkMode = Phone.NT_MODE_WCDMA_PREF;
+ case Phone.NT_MODE_GSM_ONLY:
+ case Phone.NT_MODE_WCDMA_ONLY:
+ case Phone.NT_MODE_GSM_UMTS:
+ case Phone.NT_MODE_CDMA:
+ case Phone.NT_MODE_CDMA_NO_EVDO:
+ case Phone.NT_MODE_EVDO_NO_CDMA:
+ case Phone.NT_MODE_GLOBAL:
+ case Phone.NT_MODE_LTE_CDMA_AND_EVDO:
+ case Phone.NT_MODE_LTE_GSM_WCDMA:
+ case Phone.NT_MODE_LTE_CMDA_EVDO_GSM_WCDMA:
+ case Phone.NT_MODE_LTE_ONLY:
+ case Phone.NT_MODE_LTE_WCDMA:
+ // This is one of the modes we recognize
+ modemNetworkMode = buttonNetworkMode;
break;
default:
- modemNetworkMode = Phone.PREFERRED_NT_MODE;
- }
-
- // If button has no valid selection && setting is LTE ONLY
- // mode, let the setting stay in LTE ONLY mode. UI is not
- // supported but LTE ONLY mode could be used in testing.
- if ((modemNetworkMode == Phone.PREFERRED_NT_MODE) &&
- (settingsNetworkMode == Phone.NT_MODE_LTE_ONLY)) {
- return true;
+ loge("Invalid Network Mode (" + buttonNetworkMode + ") chosen. Ignore.");
+ return true;
}
UpdatePreferredNetworkModeSummary(buttonNetworkMode);
@@ -431,7 +413,12 @@ private void handleGetPreferredNetworkTypeResponse(Message msg) {
modemNetworkMode == Phone.NT_MODE_CDMA ||
modemNetworkMode == Phone.NT_MODE_CDMA_NO_EVDO ||
modemNetworkMode == Phone.NT_MODE_EVDO_NO_CDMA ||
- modemNetworkMode == Phone.NT_MODE_GLOBAL ) {
+ modemNetworkMode == Phone.NT_MODE_GLOBAL ||
+ modemNetworkMode == Phone.NT_MODE_LTE_CDMA_AND_EVDO ||
+ modemNetworkMode == Phone.NT_MODE_LTE_GSM_WCDMA ||
+ modemNetworkMode == Phone.NT_MODE_LTE_CMDA_EVDO_GSM_WCDMA ||
+ modemNetworkMode == Phone.NT_MODE_LTE_ONLY ||
+ modemNetworkMode == Phone.NT_MODE_LTE_WCDMA) {
if (DBG) {
log("handleGetPreferredNetworkTypeResponse: if 1: modemNetworkMode = " +
modemNetworkMode);
@@ -460,9 +447,6 @@ private void handleGetPreferredNetworkTypeResponse(Message msg) {
UpdatePreferredNetworkModeSummary(modemNetworkMode);
// changes the mButtonPreferredNetworkMode accordingly to modemNetworkMode
mButtonPreferredNetworkMode.setValue(Integer.toString(modemNetworkMode));
- } else if (modemNetworkMode == Phone.NT_MODE_LTE_ONLY) {
- // LTE Only mode not yet supported on UI, but could be used for testing
- if (DBG) log("handleGetPreferredNetworkTypeResponse: lte only: no action");
} else {
if (DBG) log("handleGetPreferredNetworkTypeResponse: else: reset to default");
resetNetworkModeToDefault();
@@ -536,10 +520,33 @@ private void UpdatePreferredNetworkModeSummary(int NetworkMode) {
mButtonPreferredNetworkMode.setSummary(
R.string.preferred_network_mode_evdo_only_summary);
break;
+ case Phone.NT_MODE_LTE_ONLY:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_lte_summary);
+ break;
+ case Phone.NT_MODE_LTE_GSM_WCDMA:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_lte_gsm_wcdma_summary);
+ break;
+ case Phone.NT_MODE_LTE_CDMA_AND_EVDO:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_lte_cdma_evdo_summary);
+ break;
+ case Phone.NT_MODE_LTE_CMDA_EVDO_GSM_WCDMA:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_global_summary);
+ break;
case Phone.NT_MODE_GLOBAL:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_cdma_evdo_gsm_wcdma_summary);
+ break;
+ case Phone.NT_MODE_LTE_WCDMA:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_lte_wcdma_summary);
+ break;
default:
mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_cdma_summary);
+ R.string.preferred_network_mode_global_summary);
}
}
@@ -566,6 +573,10 @@ private static void log(String msg) {
Log.d(LOG_TAG, msg);
}
+ private static void loge(String msg) {
+ Log.e(LOG_TAG, msg);
+ }
+
@Override
public boolean onOptionsItemSelected(MenuItem item) {
final int itemId = item.getItemId();