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