From a9717482a7e77e766fbb7079fc53ac51c6661335 Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Thu, 23 Feb 2023 04:53:05 +0000 Subject: [PATCH] [Settings] Customizable resource for hiding 3G preferred network type Add a customiazble resource for specifying the carriers that avoiding from showing 3G option within the preferred network type. Bug: 261615630 Bug: 247995343 Bug: 268564499 Bug: 265147144 Bug: 267433657 Bug: 240176276 Bug: 266724047 Bug: 265147263 Bug: 242017692 Bug: 220998105 Bug: 209835551 Bug: 237837196 Bug: 239318933 Bug: 247996564 Test: local Change-Id: I8092372372cb334b5ac1956b869d194b9fcd0523 --- res/values/arrays.xml | 5 +++++ ...nabledNetworkModePreferenceController.java | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 54dea11b08d..71e16f0a183 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -1418,4 +1418,9 @@ @color/screen_flash_preset_opacity_color_11 @color/screen_flash_preset_opacity_color_12 + + + + + diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java index 7f94f73a068..9fb80a5d412 100644 --- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java +++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java @@ -22,6 +22,7 @@ import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import android.content.Context; import android.os.PersistableBundle; import android.telephony.CarrierConfigManager; +import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyCallback; import android.telephony.TelephonyManager; @@ -244,6 +245,24 @@ public class EnabledNetworkModePreferenceController extends // TODO: Using the carrier config. mDisplay3gOptions = getResourcesForSubId().getBoolean( R.bool.config_display_network_mode_3g_option); + + int[] carriersWithout3gMenu = getResourcesForSubId().getIntArray( + R.array.network_mode_3g_deprecated_carrier_id); + if ((carriersWithout3gMenu != null) && (carriersWithout3gMenu.length > 0)) { + SubscriptionManager sm = mContext.getSystemService(SubscriptionManager.class); + SubscriptionInfo subInfo = sm.getActiveSubscriptionInfo(mSubId); + if (subInfo != null) { + int carrierId = subInfo.getCarrierId(); + + for (int idx = 0; idx < carriersWithout3gMenu.length; idx++) { + if (carrierId == carriersWithout3gMenu[idx]) { + mDisplay3gOptions = false; + break; + } + } + } + } + mLteEnabled = carrierConfig.getBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL); } Log.d(LOG_TAG, "PreferenceEntriesBuilder: subId" + mSubId