Skip to content
This repository has been archived by the owner on Nov 8, 2023. It is now read-only.

Commit

Permalink
am fd12d3a: Merge "Fix to prevent unnecessary mode changes in LTE net…
Browse files Browse the repository at this point in the history
…work modes."

* commit 'fd12d3a6c72d56cdafc639402bf7e0ff9048c1b7':
  Fix to prevent unnecessary mode changes in LTE network modes.
  • Loading branch information
Wink Saville authored and Android Git Automerger committed Jan 17, 2013
2 parents fa5d3d0 + fd12d3a commit 96b9307
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 53 deletions.
36 changes: 24 additions & 12 deletions res/values/strings.xml
Expand Up @@ -362,11 +362,27 @@
<string name="preferred_network_mode_cdma_only_summary">Preferred network mode: CDMA only</string>
<!-- Mobile network settings, summary for preferred network mode EvDo only [CHAR LIMIT=100] -->
<string name="preferred_network_mode_evdo_only_summary">Preferred network mode: EvDo only</string>
<!-- Mobile network settings, summary for preferred network mode LTE / CDMA[CHAR LIMIT=100] -->
<string name="preferred_network_mode_lte_cdma_summary">Preferred network mode: LTE / CDMA</string>
<!-- Mobile network settings, summary for preferred network mode CDMA/EvDo/GSM/WCDMA[CHAR LIMIT=100] -->
<string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary">Preferred network mode: CDMA/EvDo/GSM/WCDMA</string>
<!-- Mobile network settings, summary for preferred network mode LTE [CHAR LIMIT=100] -->
<string name="preferred_network_mode_lte_summary">Preferred network mode: LTE </string>
<!-- Mobile network settings, summary for preferred network mode GSM/WCDMA/LTE [CHAR LIMIT=100] -->
<string name="preferred_network_mode_lte_gsm_wcdma_summary">Preferred network mode: GSM/WCDMA/LTE</string>
<!-- Mobile network settings, summary for preferred network mode CDMA+LTE/EVDO[CHAR LIMIT=100] -->
<string name="preferred_network_mode_lte_cdma_evdo_summary">Preferred network mode: CDMA+LTE/EVDO</string>
<!-- Mobile network settings, summary for preferred network mode Global[CHAR LIMIT=100] -->
<string name="preferred_network_mode_global_summary">Preferred network mode: Global</string>
<!-- Mobile network settings, summary for preferred network mode LTE / WCDMA[CHAR LIMIT=100] -->
<string name="preferred_network_mode_lte_wcdma_summary">Preferred network mode: LTE / WCDMA</string>


<string-array name="preferred_network_mode_choices">
<item>LTE/CDMA</item>
<item>LTE / WCDMA</item>
<item>LTE</item>
<item>Global</item>
<item>GSM/WCDMA/LTE</item>
<item>CDMA + LTE/EvDo</item>
<item>CDMA/EvDo/GSM/WCDMA</item>
<item>EvDo only</item>
<item>CDMA w/o EvDo</item>
<item>CDMA/EvDo auto</item>
Expand All @@ -376,6 +392,11 @@
<item>GSM/WCDMA preferred</item>
</string-array>
<string-array name="preferred_network_mode_values" translatable="false">
<item>"12"</item>
<item>"11"</item>
<item>"10"</item>
<item>"9"</item>
<item>"8"</item>
<item>"7"</item>
<item>"6"</item>
<item>"5"</item>
Expand All @@ -385,15 +406,6 @@
<item>"1"</item>
<item>"0"</item>
</string-array>
<!-- Mobile network settings, network mode choices for a device supporting CDMA and LTE [CHAR LIMIT=25] -->
<string-array name="preferred_network_mode_choices_lte">
<item>LTE/CDMA</item>
<item>CDMA</item>
</string-array>
<string-array name="preferred_network_mode_values_lte" translatable="false">
<item>"7"</item>
<item>"4"</item>
</string-array>
<!-- Mobile network settings screen, data enabling checkbox name -->
<string name="data_enabled">Data enabled</string>
<!-- Mobile network settings screen, setting summary text when check box is not selected (explains what selecting it would do) -->
Expand Down
93 changes: 52 additions & 41 deletions src/com/android/phone/MobileNetworkSettings.java
Expand Up @@ -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,
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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();
Expand Down Expand Up @@ -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);
}
}

Expand All @@ -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();
Expand Down

0 comments on commit 96b9307

Please sign in to comment.