From bf5c04e16be239bc72d473e61a9c8dfa97156d7f Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Thu, 17 Oct 2024 15:24:08 +0800 Subject: [PATCH] Remove TelephonyManagerConstants - Must migrated to TelephonyManager directly - Except NETWORK_MODE_UNKNOWN not in TelephonyManager, moved to newly created NetworkModes - Move addNrToLteNetworkMode() and reduceNrToLteNetworkMode() to NetworkModes and adding tests Bug: 373771849 Flag: EXEMPT refactor Test: manual - on sims settings Test: unit tests Change-Id: I0781a59905415aa7896510ad086d19da48e8ba37 --- ...nabledNetworkModePreferenceController.java | 216 ++++++------------ .../network/telephony/MobileNetworkUtils.java | 38 ++- ...ferredNetworkModePreferenceController.java | 76 +++--- .../network/telephony/TelephonyConstants.java | 182 --------------- .../CdmaSystemSelectPreferenceController.java | 7 +- .../network/telephony/mode/NetworkModes.kt | 86 +++++++ .../telephony/mode/NetworkModesTest.kt | 59 +++++ ...edNetworkModePreferenceControllerTest.java | 62 +++-- ...edNetworkModePreferenceControllerTest.java | 8 +- 9 files changed, 304 insertions(+), 430 deletions(-) create mode 100644 src/com/android/settings/network/telephony/mode/NetworkModes.kt create mode 100644 tests/spa_unit/src/com/android/settings/network/telephony/mode/NetworkModesTest.kt diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java index c428f98c312..1b1eb9e7e9f 100644 --- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java @@ -21,6 +21,8 @@ import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import static com.android.settings.network.telephony.EnabledNetworkModePreferenceControllerHelperKt.getNetworkModePreferenceType; import static com.android.settings.network.telephony.EnabledNetworkModePreferenceControllerHelperKt.setAllowedNetworkTypes; +import static com.android.settings.network.telephony.mode.NetworkModes.addNrToLteNetworkMode; +import static com.android.settings.network.telephony.mode.NetworkModes.reduceNrToLteNetworkMode; import android.content.Context; import android.content.res.Resources; @@ -53,7 +55,6 @@ import com.android.settings.network.CarrierConfigCache; import com.android.settings.network.SubscriptionsChangeListener; import com.android.settings.network.telephony.NetworkModeChoicesProto.EnabledNetworks; import com.android.settings.network.telephony.NetworkModeChoicesProto.UiOptions; -import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants; import java.util.ArrayList; import java.util.Arrays; @@ -429,14 +430,14 @@ public class EnabledNetworkModePreferenceController extends addLteEntry(entryValuesInt[entryIndex]); break; case add5gEntry: - add5gEntry(addNrToLteNetworkType(entryValuesInt[entryIndex])); + add5gEntry(addNrToLteNetworkMode(entryValuesInt[entryIndex])); break; case add5gAnd4gEntry: - add5gEntry(addNrToLteNetworkType(entryValuesInt[entryIndex])); + add5gEntry(addNrToLteNetworkMode(entryValuesInt[entryIndex])); add4gEntry(entryValuesInt[entryIndex]); break; case add5gAndLteEntry: - add5gEntry(addNrToLteNetworkType(entryValuesInt[entryIndex])); + add5gEntry(addNrToLteNetworkMode(entryValuesInt[entryIndex])); addLteEntry(entryValuesInt[entryIndex]); break; default: @@ -451,7 +452,7 @@ public class EnabledNetworkModePreferenceController extends TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)); if (!showNrList()) { Log.d(LOG_TAG, "Network mode :" + networkMode + " reduce NR"); - networkMode = reduceNrToLteNetworkType(networkMode); + networkMode = reduceNrToLteNetworkMode(networkMode); } Log.d(LOG_TAG, "getPreferredNetworkMode: " + networkMode); return networkMode; @@ -472,16 +473,16 @@ public class EnabledNetworkModePreferenceController extends enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_CDMA_CHOICES; } else { switch (settingsNetworkMode) { - case TelephonyManagerConstants.NETWORK_MODE_CDMA_EVDO: - case TelephonyManagerConstants.NETWORK_MODE_CDMA_NO_EVDO: - case TelephonyManagerConstants.NETWORK_MODE_EVDO_NO_CDMA: + case TelephonyManager.NETWORK_MODE_CDMA_EVDO: + case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO: + case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA: enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_CDMA_NO_LTE_CHOICES; break; - case TelephonyManagerConstants.NETWORK_MODE_GLOBAL: - case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO: - case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA: - case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY: + case TelephonyManager.NETWORK_MODE_GLOBAL: + case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO: + case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA: + case TelephonyManager.NETWORK_MODE_LTE_ONLY: enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_CDMA_ONLY_LTE_CHOICES; break; @@ -539,46 +540,42 @@ public class EnabledNetworkModePreferenceController extends void setPreferenceValueAndSummary(int networkMode) { setSelectedEntry(networkMode); switch (networkMode) { - case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_WCDMA: - case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA: - case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM: - setSelectedEntry( - TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA); + case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA: + case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA: + case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM: + setSelectedEntry(TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA); setSummary(R.string.network_3G); break; - case TelephonyManagerConstants.NETWORK_MODE_WCDMA_ONLY: - case TelephonyManagerConstants.NETWORK_MODE_GSM_UMTS: - case TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF: + case TelephonyManager.NETWORK_MODE_WCDMA_ONLY: + case TelephonyManager.NETWORK_MODE_GSM_UMTS: + case TelephonyManager.NETWORK_MODE_WCDMA_PREF: if (!mIsGlobalCdma) { - setSelectedEntry(TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF); + setSelectedEntry(TelephonyManager.NETWORK_MODE_WCDMA_PREF); setSummary(R.string.network_3G); } else { - setSelectedEntry( - TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA); + setSelectedEntry(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA); setSummary(R.string.network_global); } break; - case TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY: + case TelephonyManager.NETWORK_MODE_GSM_ONLY: if (!mIsGlobalCdma) { - setSelectedEntry(TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY); + setSelectedEntry(TelephonyManager.NETWORK_MODE_GSM_ONLY); setSummary(R.string.network_2G); } else { - setSelectedEntry( - TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA); + setSelectedEntry(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA); setSummary(R.string.network_global); } break; - case TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA: + case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA: if (MobileNetworkUtils.isWorldMode(mContext, mSubId)) { setSummary( R.string.preferred_network_mode_lte_gsm_umts_summary); break; } - case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY: - case TelephonyManagerConstants.NETWORK_MODE_LTE_WCDMA: + case TelephonyManager.NETWORK_MODE_LTE_ONLY: + case TelephonyManager.NETWORK_MODE_LTE_WCDMA: if (!mIsGlobalCdma) { - setSelectedEntry( - TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA); + setSelectedEntry(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA); if (is5gEntryDisplayed()) { setSummary(mShow4gForLTE ? R.string.network_4G_pure : R.string.network_lte_pure); @@ -587,55 +584,52 @@ public class EnabledNetworkModePreferenceController extends ? R.string.network_4G : R.string.network_lte); } } else { - setSelectedEntry( - TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA); + setSelectedEntry(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA); setSummary(R.string.network_global); } break; - case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO: + case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO: if (MobileNetworkUtils.isWorldMode(mContext, mSubId)) { setSummary( R.string.preferred_network_mode_lte_cdma_summary); } else { - setSelectedEntry( - TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO); + setSelectedEntry(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO); setSummary(is5gEntryDisplayed() ? R.string.network_lte_pure : R.string.network_lte); } break; - case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: - setSelectedEntry( - TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA); + case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: + setSelectedEntry(TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA); setSummary(R.string.network_3G); break; - case TelephonyManagerConstants.NETWORK_MODE_CDMA_EVDO: - case TelephonyManagerConstants.NETWORK_MODE_EVDO_NO_CDMA: - case TelephonyManagerConstants.NETWORK_MODE_GLOBAL: - setSelectedEntry(TelephonyManagerConstants.NETWORK_MODE_CDMA_EVDO); + case TelephonyManager.NETWORK_MODE_CDMA_EVDO: + case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA: + case TelephonyManager.NETWORK_MODE_GLOBAL: + setSelectedEntry(TelephonyManager.NETWORK_MODE_CDMA_EVDO); setSummary(R.string.network_3G); break; - case TelephonyManagerConstants.NETWORK_MODE_CDMA_NO_EVDO: - setSelectedEntry(TelephonyManagerConstants.NETWORK_MODE_CDMA_NO_EVDO); + case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO: + setSelectedEntry(TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO); setSummary(R.string.network_1x); break; - case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_ONLY: - setSelectedEntry(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_ONLY); + case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY: + setSelectedEntry(TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY); setSummary(R.string.network_3G); break; - case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM: - case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA: - case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA: - case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA: - case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: - case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA: + case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM: + case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA: + case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA: + case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA: + case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: + case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA: if (MobileNetworkUtils.isTdscdmaSupported(mContext, mSubId)) { - setSelectedEntry(TelephonyManagerConstants - .NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA); + setSelectedEntry( + TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA); setSummary(is5gEntryDisplayed() ? R.string.network_lte_pure : R.string.network_lte); } else { setSelectedEntry( - TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA); + TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA); if (mTelephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA || mIsGlobalCdma || MobileNetworkUtils.isWorldMode(mContext, mSubId)) { @@ -652,30 +646,28 @@ public class EnabledNetworkModePreferenceController extends } break; - case TelephonyManagerConstants.NETWORK_MODE_NR_ONLY: - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE: - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA: - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_WCDMA: + case TelephonyManager.NETWORK_MODE_NR_ONLY: + case TelephonyManager.NETWORK_MODE_NR_LTE: + case TelephonyManager.NETWORK_MODE_NR_LTE_GSM_WCDMA: + case TelephonyManager.NETWORK_MODE_NR_LTE_WCDMA: + setSelectedEntry(TelephonyManager.NETWORK_MODE_NR_LTE_GSM_WCDMA); + setSummary(getResourcesForSubId().getString(R.string.network_5G_recommended)); + break; + case TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA: + case TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM: + case TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA: + case TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA: + case TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: setSelectedEntry( - TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA); + TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA); setSummary(getResourcesForSubId().getString(R.string.network_5G_recommended)); break; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA: - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM: - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA: - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA: - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: - setSelectedEntry(TelephonyManagerConstants - .NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA); + case TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO: + setSelectedEntry(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO); setSummary(getResourcesForSubId().getString(R.string.network_5G_recommended)); break; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO: - setSelectedEntry(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO); - setSummary(getResourcesForSubId().getString(R.string.network_5G_recommended)); - break; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA: - setSelectedEntry( - TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA); + case TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA: + setSelectedEntry(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA); if (mTelephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA || mIsGlobalCdma || MobileNetworkUtils.isWorldMode(mContext, mSubId)) { @@ -692,74 +684,6 @@ public class EnabledNetworkModePreferenceController extends } } - /** - * Transform LTE network mode to 5G network mode. - * - * @param networkType an LTE network mode without 5G. - * @return the corresponding network mode with 5G. - */ - private int addNrToLteNetworkType(int networkType) { - switch (networkType) { - case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY: - return TelephonyManagerConstants.NETWORK_MODE_NR_LTE; - case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO: - return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO; - case TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA: - return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA; - case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA: - return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA; - case TelephonyManagerConstants.NETWORK_MODE_LTE_WCDMA: - return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_WCDMA; - case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA: - return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA; - case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM: - return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM; - case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA: - return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA; - case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA: - return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA; - case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: - return TelephonyManagerConstants - .NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA; - default: - return networkType; // not LTE - } - } - - /** - * Transform NR5G network mode to LTE network mode. - * - * @param networkType an 5G network mode. - * @return the corresponding network mode without 5G. - */ - private int reduceNrToLteNetworkType(int networkType) { - switch (networkType) { - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE: - return TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO: - return TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA: - return TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA: - return TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_WCDMA: - return TelephonyManagerConstants.NETWORK_MODE_LTE_WCDMA; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA: - return TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM: - return TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA: - return TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA: - return TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: - return TelephonyManagerConstants - .NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA; - default: - return networkType; // do nothing - } - } - private void setPreferenceValueAndSummary() { setPreferenceValueAndSummary(getPreferredNetworkMode()); } @@ -772,7 +696,7 @@ public class EnabledNetworkModePreferenceController extends * Add 5G option. Only show the UI when device supported 5G and allowed 5G. */ private void add5gEntry(int value) { - boolean isNRValue = value >= TelephonyManagerConstants.NETWORK_MODE_NR_ONLY; + boolean isNRValue = value >= TelephonyManager.NETWORK_MODE_NR_ONLY; if (showNrList() && isNRValue) { mEntries.add(getResourcesForSubId().getString(R.string.network_5G_recommended)); mEntriesValue.add(value); @@ -792,7 +716,7 @@ public class EnabledNetworkModePreferenceController extends + " allowed5GNetworkType: " + mAllowed5gNetworkType); mEntries.add(getResourcesForSubId().getString(R.string.network_global)); if (showNrList()) { - value = addNrToLteNetworkType(value); + value = addNrToLteNetworkMode(value); } mEntriesValue.add(value); } diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java index 341f7a1b68e..2e812b4ef3a 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java +++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java @@ -18,11 +18,6 @@ package com.android.settings.network.telephony; import static android.provider.Telephony.Carriers.ENFORCE_MANAGED_URI; -import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO; -import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA; -import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO; -import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA; - import android.app.KeyguardManager; import android.content.Context; import android.content.Intent; @@ -75,7 +70,6 @@ import com.android.settings.core.SubSettingLauncher; import com.android.settings.network.CarrierConfigCache; import com.android.settings.network.SubscriptionUtil; import com.android.settings.network.ims.WifiCallingQueryImsState; -import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants; import com.android.settings.network.telephony.wificalling.WifiCallingRepository; import com.android.settingslib.core.instrumentation.Instrumentable; import com.android.settingslib.graph.SignalDrawable; @@ -328,10 +322,10 @@ public class MobileNetworkUtils { (int) telephonyManager.getAllowedNetworkTypesForReason( TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)); - if (settingsNetworkMode == NETWORK_MODE_LTE_GSM_WCDMA - || settingsNetworkMode == NETWORK_MODE_LTE_CDMA_EVDO - || settingsNetworkMode == NETWORK_MODE_NR_LTE_GSM_WCDMA - || settingsNetworkMode == NETWORK_MODE_NR_LTE_CDMA_EVDO) { + if (settingsNetworkMode == TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA + || settingsNetworkMode == TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO + || settingsNetworkMode == TelephonyManager.NETWORK_MODE_NR_LTE_GSM_WCDMA + || settingsNetworkMode == TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO) { return true; } @@ -359,10 +353,10 @@ public class MobileNetworkUtils { (int) telephonyManager.getAllowedNetworkTypesForReason( TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)); if (isWorldMode(context, subId)) { - if (networkMode == NETWORK_MODE_LTE_CDMA_EVDO - || networkMode == NETWORK_MODE_LTE_GSM_WCDMA - || networkMode == NETWORK_MODE_NR_LTE_CDMA_EVDO - || networkMode == NETWORK_MODE_NR_LTE_GSM_WCDMA) { + if (networkMode == TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO + || networkMode == TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA + || networkMode == TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO + || networkMode == TelephonyManager.NETWORK_MODE_NR_LTE_GSM_WCDMA) { return true; } else if (shouldSpeciallyUpdateGsmCdma(context, subId)) { return true; @@ -426,14 +420,14 @@ public class MobileNetworkUtils { final int networkMode = RadioAccessFamily.getNetworkTypeFromRaf( (int) telephonyManager.getAllowedNetworkTypesForReason( TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)); - if (networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO) { + if (networkMode == TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO) { return false; } if (shouldSpeciallyUpdateGsmCdma(context, subId)) { return false; } - if (networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA) { + if (networkMode == TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA) { return true; } } @@ -541,13 +535,13 @@ public class MobileNetworkUtils { final int networkMode = RadioAccessFamily.getNetworkTypeFromRaf( (int) telephonyManager.getAllowedNetworkTypesForReason( TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)); - if (networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM - || networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA - || networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA - || networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA + if (networkMode == TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM + || networkMode == TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA + || networkMode == TelephonyManager.NETWORK_MODE_LTE_TDSCDMA + || networkMode == TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA || networkMode - == TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA - || networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA) { + == TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA + || networkMode == TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA) { if (!isTdscdmaSupported(context, subId)) { return true; } diff --git a/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java index 2d567afb5d7..d855069c26f 100644 --- a/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java +++ b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java @@ -32,7 +32,7 @@ import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settings.network.CarrierConfigCache; -import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants; +import com.android.settings.network.telephony.mode.NetworkModes; /** * Preference controller for "Preferred network mode" @@ -93,54 +93,54 @@ public class PreferredNetworkModePreferenceController extends BasePreferenceCont private int getPreferredNetworkMode() { if (mTelephonyManager == null) { Log.w(TAG, "TelephonyManager is null"); - return TelephonyManagerConstants.NETWORK_MODE_UNKNOWN; + return NetworkModes.NETWORK_MODE_UNKNOWN; } return RadioAccessFamily.getNetworkTypeFromRaf( (int) mTelephonyManager.getAllowedNetworkTypesForReason( TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)); } - private int getPreferredNetworkModeSummaryResId(int NetworkMode) { - switch (NetworkMode) { - case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA: + private int getPreferredNetworkModeSummaryResId(int networkMode) { + switch (networkMode) { + case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA: return R.string.preferred_network_mode_tdscdma_gsm_wcdma_summary; - case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM: + case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM: return R.string.preferred_network_mode_tdscdma_gsm_summary; - case TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF: + case TelephonyManager.NETWORK_MODE_WCDMA_PREF: return R.string.preferred_network_mode_wcdma_perf_summary; - case TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY: + case TelephonyManager.NETWORK_MODE_GSM_ONLY: return R.string.preferred_network_mode_gsm_only_summary; - case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_WCDMA: + case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA: return R.string.preferred_network_mode_tdscdma_wcdma_summary; - case TelephonyManagerConstants.NETWORK_MODE_WCDMA_ONLY: + case TelephonyManager.NETWORK_MODE_WCDMA_ONLY: return R.string.preferred_network_mode_wcdma_only_summary; - case TelephonyManagerConstants.NETWORK_MODE_GSM_UMTS: + case TelephonyManager.NETWORK_MODE_GSM_UMTS: return R.string.preferred_network_mode_gsm_wcdma_summary; - case TelephonyManagerConstants.NETWORK_MODE_CDMA_EVDO: + case TelephonyManager.NETWORK_MODE_CDMA_EVDO: return mTelephonyManager.isLteCdmaEvdoGsmWcdmaEnabled() ? R.string.preferred_network_mode_cdma_summary : R.string.preferred_network_mode_cdma_evdo_summary; - case TelephonyManagerConstants.NETWORK_MODE_CDMA_NO_EVDO: + case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO: return R.string.preferred_network_mode_cdma_only_summary; - case TelephonyManagerConstants.NETWORK_MODE_EVDO_NO_CDMA: + case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA: return R.string.preferred_network_mode_evdo_only_summary; - case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA: + case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA: return R.string.preferred_network_mode_lte_tdscdma_summary; - case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY: + case TelephonyManager.NETWORK_MODE_LTE_ONLY: return R.string.preferred_network_mode_lte_summary; - case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM: + case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM: return R.string.preferred_network_mode_lte_tdscdma_gsm_summary; - case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA: + case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA: return R.string.preferred_network_mode_lte_tdscdma_gsm_wcdma_summary; - case TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA: + case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA: return R.string.preferred_network_mode_lte_gsm_wcdma_summary; - case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO: + case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO: return R.string.preferred_network_mode_lte_cdma_evdo_summary; - case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_ONLY: + case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY: return R.string.preferred_network_mode_tdscdma_summary; - case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: + case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: return R.string.preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary; - case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA: + case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA: if (mTelephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA || mIsGlobalCdma || MobileNetworkUtils.isWorldMode(mContext, mSubId)) { @@ -148,35 +148,35 @@ public class PreferredNetworkModePreferenceController extends BasePreferenceCont } else { return R.string.preferred_network_mode_lte_summary; } - case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: + case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: return R.string.preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary; - case TelephonyManagerConstants.NETWORK_MODE_GLOBAL: + case TelephonyManager.NETWORK_MODE_GLOBAL: return R.string.preferred_network_mode_cdma_evdo_gsm_wcdma_summary; - case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA: + case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA: return R.string.preferred_network_mode_lte_tdscdma_wcdma_summary; - case TelephonyManagerConstants.NETWORK_MODE_LTE_WCDMA: + case TelephonyManager.NETWORK_MODE_LTE_WCDMA: return R.string.preferred_network_mode_lte_wcdma_summary; - case TelephonyManagerConstants.NETWORK_MODE_NR_ONLY: + case TelephonyManager.NETWORK_MODE_NR_ONLY: return R.string.preferred_network_mode_nr_only_summary; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE: + case TelephonyManager.NETWORK_MODE_NR_LTE: return R.string.preferred_network_mode_nr_lte_summary; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO: + case TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO: return R.string.preferred_network_mode_nr_lte_cdma_evdo_summary; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA: + case TelephonyManager.NETWORK_MODE_NR_LTE_GSM_WCDMA: return R.string.preferred_network_mode_nr_lte_gsm_wcdma_summary; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA: + case TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA: return R.string.preferred_network_mode_global_summary; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_WCDMA: + case TelephonyManager.NETWORK_MODE_NR_LTE_WCDMA: return R.string.preferred_network_mode_nr_lte_wcdma_summary; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA: + case TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA: return R.string.preferred_network_mode_nr_lte_tdscdma_summary; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM: + case TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM: return R.string.preferred_network_mode_nr_lte_tdscdma_gsm_summary; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA: + case TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA: return R.string.preferred_network_mode_nr_lte_tdscdma_wcdma_summary; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA: + case TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA: return R.string.preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary; - case TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: + case TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: return R.string.preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary; default: return R.string.preferred_network_mode_global_summary; diff --git a/src/com/android/settings/network/telephony/TelephonyConstants.java b/src/com/android/settings/network/telephony/TelephonyConstants.java index 78a177edccc..4331a4619dc 100644 --- a/src/com/android/settings/network/telephony/TelephonyConstants.java +++ b/src/com/android/settings/network/telephony/TelephonyConstants.java @@ -23,188 +23,6 @@ import android.telephony.TelephonyManager; */ public class TelephonyConstants { - /** - * Copied from {@link android.telephony.TelephonyManager} - */ - public static class TelephonyManagerConstants { - - // Network modes are in turn copied from RILConstants - // with one difference: NETWORK_MODE_CDMA is named NETWORK_MODE_CDMA_EVDO - - public static final int NETWORK_MODE_UNKNOWN = -1; - - /** - * GSM, WCDMA (WCDMA preferred) - */ - public static final int NETWORK_MODE_WCDMA_PREF = 0; - - /** - * GSM only - */ - public static final int NETWORK_MODE_GSM_ONLY = 1; - - /** - * WCDMA only - */ - public static final int NETWORK_MODE_WCDMA_ONLY = 2; - - /** - * GSM, WCDMA (auto mode, according to PRL) - */ - public static final int NETWORK_MODE_GSM_UMTS = 3; - - /** - * CDMA and EvDo (auto mode, according to PRL) - * this is NETWORK_MODE_CDMA in RILConstants.java - */ - public static final int NETWORK_MODE_CDMA_EVDO = 4; - - /** - * CDMA only - */ - public static final int NETWORK_MODE_CDMA_NO_EVDO = 5; - - /** - * EvDo only - */ - public static final int NETWORK_MODE_EVDO_NO_CDMA = 6; - - /** - * GSM, WCDMA, CDMA, and EvDo (auto mode, according to PRL) - */ - public static final int NETWORK_MODE_GLOBAL = 7; - - /** - * LTE, CDMA and EvDo - */ - public static final int NETWORK_MODE_LTE_CDMA_EVDO = 8; - - /** - * LTE, GSM and WCDMA - */ - public static final int NETWORK_MODE_LTE_GSM_WCDMA = 9; - - /** - * LTE, CDMA, EvDo, GSM, and WCDMA - */ - public static final int NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = 10; - - /** - * LTE only mode. - */ - public static final int NETWORK_MODE_LTE_ONLY = 11; - - /** - * LTE and WCDMA - */ - public static final int NETWORK_MODE_LTE_WCDMA = 12; - - /** - * TD-SCDMA only - */ - public static final int NETWORK_MODE_TDSCDMA_ONLY = 13; - - /** - * TD-SCDMA and WCDMA - */ - public static final int NETWORK_MODE_TDSCDMA_WCDMA = 14; - - /** - * LTE and TD-SCDMA - */ - public static final int NETWORK_MODE_LTE_TDSCDMA = 15; - - /** - * TD-SCDMA and GSM - */ - public static final int NETWORK_MODE_TDSCDMA_GSM = 16; - - /** - * TD-SCDMA, GSM and LTE - */ - public static final int NETWORK_MODE_LTE_TDSCDMA_GSM = 17; - - /** - * TD-SCDMA, GSM and WCDMA - */ - public static final int NETWORK_MODE_TDSCDMA_GSM_WCDMA = 18; - - /** - * LTE, TD-SCDMA and WCDMA - */ - public static final int NETWORK_MODE_LTE_TDSCDMA_WCDMA = 19; - - /** - * LTE, TD-SCDMA, GSM, and WCDMA - */ - public static final int NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA = 20; - - /** - * TD-SCDMA, CDMA, EVDO, GSM and WCDMA - */ - public static final int NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 21; - - /** - * LTE, TDCSDMA, CDMA, EVDO, GSM and WCDMA - */ - public static final int NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 22; - - /** - * NR 5G only mode - */ - public static final int NETWORK_MODE_NR_ONLY = 23; - - /** - * NR 5G, LTE - */ - public static final int NETWORK_MODE_NR_LTE = 24; - - /** - * NR 5G, LTE, CDMA and EvDo - */ - public static final int NETWORK_MODE_NR_LTE_CDMA_EVDO = 25; - - /** - * NR 5G, LTE, GSM and WCDMA - */ - public static final int NETWORK_MODE_NR_LTE_GSM_WCDMA = 26; - - /** - * NR 5G, LTE, CDMA, EvDo, GSM and WCDMA - */ - public static final int NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA = 27; - - /** - * NR 5G, LTE and WCDMA - */ - public static final int NETWORK_MODE_NR_LTE_WCDMA = 28; - - /** - * NR 5G, LTE and TDSCDMA - */ - public static final int NETWORK_MODE_NR_LTE_TDSCDMA = 29; - - /** - * NR 5G, LTE, TD-SCDMA and GSM - */ - public static final int NETWORK_MODE_NR_LTE_TDSCDMA_GSM = 30; - - /** - * NR 5G, LTE, TD-SCDMA, WCDMA - */ - public static final int NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA = 31; - - /** - * NR 5G, LTE, TD-SCDMA, GSM and WCDMA - */ - public static final int NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA = 32; - - /** - * NR 5G, LTE, TD-SCDMA, CDMA, EVDO, GSM and WCDMA - */ - public static final int NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 33; - } - /** * Copied from {@link android.telephony.RadioAccessFamily} */ diff --git a/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceController.java b/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceController.java index fe702e4142a..011a8797b13 100644 --- a/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceController.java +++ b/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceController.java @@ -16,9 +16,10 @@ package com.android.settings.network.telephony.cdma; -import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA; -import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA; -import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_UNKNOWN; +import static android.telephony.TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA; +import static android.telephony.TelephonyManager.NETWORK_MODE_NR_LTE_GSM_WCDMA; + +import static com.android.settings.network.telephony.mode.NetworkModes.NETWORK_MODE_UNKNOWN; import android.content.Context; import android.provider.Settings; diff --git a/src/com/android/settings/network/telephony/mode/NetworkModes.kt b/src/com/android/settings/network/telephony/mode/NetworkModes.kt new file mode 100644 index 00000000000..11c4c41ca38 --- /dev/null +++ b/src/com/android/settings/network/telephony/mode/NetworkModes.kt @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.network.telephony.mode + +import android.telephony.TelephonyManager +import com.google.common.collect.ImmutableBiMap + +/** Network mode related utilities. */ +object NetworkModes { + const val NETWORK_MODE_UNKNOWN = -1 + + private val LteToNrNetworkModeMap = + ImmutableBiMap.builder() + .put(TelephonyManager.NETWORK_MODE_LTE_ONLY, TelephonyManager.NETWORK_MODE_NR_LTE) + .put( + TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO, + TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO, + ) + .put( + TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA, + TelephonyManager.NETWORK_MODE_NR_LTE_GSM_WCDMA, + ) + .put( + TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA, + TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA, + ) + .put( + TelephonyManager.NETWORK_MODE_LTE_WCDMA, + TelephonyManager.NETWORK_MODE_NR_LTE_WCDMA, + ) + .put( + TelephonyManager.NETWORK_MODE_LTE_TDSCDMA, + TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA, + ) + .put( + TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM, + TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM, + ) + .put( + TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA, + TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA, + ) + .put( + TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA, + TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA, + ) + .put( + TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA, + TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA, + ) + .build() + + /** + * Transforms LTE network mode to 5G network mode. + * + * @param networkMode an LTE network mode without 5G. + * @return the corresponding network mode with 5G. + */ + @JvmStatic + fun addNrToLteNetworkMode(networkMode: Int): Int = + LteToNrNetworkModeMap.getOrElse(networkMode) { networkMode } + + /** + * Transforms NR5G network mode to LTE network mode. + * + * @param networkMode an 5G network mode. + * @return the corresponding network mode without 5G. + */ + @JvmStatic + fun reduceNrToLteNetworkMode(networkMode: Int): Int = + LteToNrNetworkModeMap.inverse().getOrElse(networkMode) { networkMode } +} diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/mode/NetworkModesTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/mode/NetworkModesTest.kt new file mode 100644 index 00000000000..799ac0f437a --- /dev/null +++ b/tests/spa_unit/src/com/android/settings/network/telephony/mode/NetworkModesTest.kt @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.network.telephony.mode + +import android.telephony.TelephonyManager +import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.google.common.truth.Truth.assertThat +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class NetworkModesTest { + + @Test + fun addNrToLteNetworkMode_lteOnly() { + val nrNetworkMode = + NetworkModes.addNrToLteNetworkMode(TelephonyManager.NETWORK_MODE_LTE_ONLY) + + assertThat(nrNetworkMode).isEqualTo(TelephonyManager.NETWORK_MODE_NR_LTE) + } + + @Test + fun addNrToLteNetworkMode_lteCdmaEvdo() { + val nrNetworkMode = + NetworkModes.addNrToLteNetworkMode(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO) + + assertThat(nrNetworkMode).isEqualTo(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO) + } + + @Test + fun reduceNrToLteNetworkMode_nrLte() { + val lteNetworkMode = + NetworkModes.reduceNrToLteNetworkMode(TelephonyManager.NETWORK_MODE_NR_LTE) + + assertThat(lteNetworkMode).isEqualTo(TelephonyManager.NETWORK_MODE_LTE_ONLY) + } + + @Test + fun reduceNrToLteNetworkMode_nrLteCdmaEvdo() { + val lteNetworkMode = + NetworkModes.reduceNrToLteNetworkMode(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO) + + assertThat(lteNetworkMode).isEqualTo(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO) + } +} diff --git a/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java index ab57f4b1525..54b78c7a5d8 100644 --- a/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java @@ -52,7 +52,6 @@ import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.android.settings.network.CarrierConfigCache; -import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants; import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.Before; @@ -149,7 +148,7 @@ public class EnabledNetworkModePreferenceControllerTest { @Test public void updateState_selectedOn5gItem() { mockAllowedNetworkTypes(ALLOWED_ALL_NETWORK_TYPE); - mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA); + mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA); mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA); mController.init(SUB_ID, mFragmentManager); @@ -161,14 +160,13 @@ public class EnabledNetworkModePreferenceControllerTest { mController.updateState(mPreference); assertThat(mPreference.getValue()).isEqualTo( - String.valueOf( - TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA)); + String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA)); } @UiThreadTest @Test public void updateState_disAllowed5g_5gOptionHidden() { - mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA); + mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA); mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA); mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE); mController.init(SUB_ID, mFragmentManager); @@ -188,7 +186,7 @@ public class EnabledNetworkModePreferenceControllerTest { @UiThreadTest @Test public void updateState_disAllowed5g_selectOn4gOption() { - mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA); + mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA); mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA); mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE); mController.init(SUB_ID, mFragmentManager); @@ -200,14 +198,13 @@ public class EnabledNetworkModePreferenceControllerTest { mController.updateState(mPreference); assertThat(mPreference.getValue()).isEqualTo( - String.valueOf( - TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA)); + String.valueOf(TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA)); } @UiThreadTest @Test public void updateState_NrEnableBoolFalse_5gOptionHidden() { - mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA); + mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_NR_LTE_GSM_WCDMA); mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA); mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE); @@ -221,8 +218,7 @@ public class EnabledNetworkModePreferenceControllerTest { mController.updateState(mPreference); assertThat(mPreference.getValue()).isEqualTo( - String.valueOf( - TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA)); + String.valueOf(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA)); assertThat(mPreference.getEntryValues()) .asList() .doesNotContain( @@ -264,14 +260,13 @@ public class EnabledNetworkModePreferenceControllerTest { mController.updateState(mPreference); assertThat(mPreference.getValue()).isEqualTo( - String.valueOf( - TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA)); + String.valueOf(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA)); } @UiThreadTest @Test public void updateState_updateByNetworkMode() { - mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA); + mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA); // NETWORK_MODE_TDSCDMA_GSM_WCDMA = RAF_TD_SCDMA | GSM | WCDMA when(mTelephonyManager.getAllowedNetworkTypesForReason( @@ -280,14 +275,14 @@ public class EnabledNetworkModePreferenceControllerTest { mController.updateState(mPreference); assertThat(mPreference.getValue()).isEqualTo( - String.valueOf(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA)); + String.valueOf(TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA)); assertThat(mPreference.getSummary()).isEqualTo("3G"); } @UiThreadTest @Test public void updateState_updateByNetworkMode_useDefaultValue() { - mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA); + mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA); // NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = LTE | CDMA | EVDO | GSM | WCDMA when(mTelephonyManager.getAllowedNetworkTypesForReason( @@ -296,41 +291,41 @@ public class EnabledNetworkModePreferenceControllerTest { mController.updateState(mPreference); assertThat(mPreference.getValue()).isEqualTo( - String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA)); + String.valueOf(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA)); } @UiThreadTest @Test public void onPreferenceChange_updateSuccess() { - mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA); + mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA); doReturn(true).when(mTelephonyManager).setPreferredNetworkTypeBitmask( RadioAccessFamily.getRafFromNetworkType( - TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA)); + TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA)); mController.updateState(mPreference); mController.onViewCreated(new TestLifecycleOwner()); mController.onPreferenceChange(mPreference, - String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA)); + String.valueOf(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA)); assertThat(mPreference.getValue()).isEqualTo( - String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA)); + String.valueOf(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA)); } @UiThreadTest @Test public void onPreferenceChange_updateFail() { - mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA); + mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA); doReturn(false).when(mTelephonyManager).setPreferredNetworkTypeBitmask( RadioAccessFamily.getRafFromNetworkType( - TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA)); + TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA)); mController.updateState(mPreference); mController.onViewCreated(new TestLifecycleOwner()); mController.onPreferenceChange(mPreference, - String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA)); + String.valueOf(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA)); assertThat(mPreference.getValue()).isNotEqualTo( - String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA)); + String.valueOf(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA)); } @UiThreadTest @@ -341,7 +336,7 @@ public class EnabledNetworkModePreferenceControllerTest { PreferenceScreen screen = preferenceManager.createPreferenceScreen(mContext); mPreference.setKey(KEY); screen.addPreference(mPreference); - mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA); + mockEnabledNetworkMode(TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA); // NETWORK_MODE_TDSCDMA_GSM_WCDMA = RAF_TD_SCDMA | GSM | WCDMA when(mTelephonyManager.getAllowedNetworkTypesForReason( @@ -353,7 +348,7 @@ public class EnabledNetworkModePreferenceControllerTest { mLifecycle.handleLifecycleEvent(ON_START); assertThat(Integer.parseInt(mPreference.getValue())).isEqualTo( - TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA); + TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA); assertThat(mPreference.getSummary()).isEqualTo("3G"); } @@ -412,20 +407,19 @@ public class EnabledNetworkModePreferenceControllerTest { } private void mockEnabledNetworkMode(int networkMode) { - if (networkMode == TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA) { + if (networkMode == TelephonyManager.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 - || networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA) { + } else if (networkMode == TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA + || networkMode == TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_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) { + } else if (networkMode == TelephonyManager.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA) { mockPhoneType(TelephonyManager.PHONE_TYPE_GSM); mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, true); - } else if (networkMode == TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA - || networkMode - == TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA) { + } else if (networkMode == TelephonyManager.NETWORK_MODE_NR_LTE_GSM_WCDMA + || networkMode == TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA) { mockPhoneType(TelephonyManager.PHONE_TYPE_GSM); mPersistableBundle.putBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL, true); mPersistableBundle.putBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL, true); diff --git a/tests/unit/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java index 663945d540a..d3972919009 100644 --- a/tests/unit/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java @@ -40,7 +40,6 @@ import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.android.settings.network.CarrierConfigCache; -import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants; import com.android.settings.testutils.ResourcesUtils; import org.junit.Before; @@ -99,7 +98,7 @@ public class PreferredNetworkModePreferenceControllerTest { mController.updateState(mPreference); assertThat(mPreference.getValue()).isEqualTo( - String.valueOf(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA)); + String.valueOf(TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA)); assertThat(mPreference.getSummary()).isEqualTo( ResourcesUtils.getResourcesString(mContext, "preferred_network_mode_tdscdma_gsm_wcdma_summary")); @@ -108,11 +107,10 @@ public class PreferredNetworkModePreferenceControllerTest { @Test public void onPreferenceChange_updateNetworkMode() { mController.onPreferenceChange(mPreference, - String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA)); + String.valueOf(TelephonyManager.NETWORK_MODE_LTE_TDSCDMA)); verify(mTelephonyManager, times(1)).setAllowedNetworkTypesForReason( TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER, - RadioAccessFamily.getRafFromNetworkType( - TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA)); + RadioAccessFamily.getRafFromNetworkType(TelephonyManager.NETWORK_MODE_LTE_TDSCDMA)); } }