[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
This commit is contained in:
Bonian Chen
2023-02-23 04:53:05 +00:00
parent 410fa6cfc5
commit a9717482a7
2 changed files with 24 additions and 0 deletions

View File

@@ -1418,4 +1418,9 @@
<item>@color/screen_flash_preset_opacity_color_11</item> <item>@color/screen_flash_preset_opacity_color_11</item>
<item>@color/screen_flash_preset_opacity_color_12</item> <item>@color/screen_flash_preset_opacity_color_12</item>
</array> </array>
<!-- hide 3G option from preferred network type UI -->
<integer-array name="network_mode_3g_deprecated_carrier_id" translatable="false">
</integer-array>
</resources> </resources>

View File

@@ -22,6 +22,7 @@ import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
import android.content.Context; import android.content.Context;
import android.os.PersistableBundle; import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager; import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.telephony.TelephonyCallback; import android.telephony.TelephonyCallback;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
@@ -244,6 +245,24 @@ public class EnabledNetworkModePreferenceController extends
// TODO: Using the carrier config. // TODO: Using the carrier config.
mDisplay3gOptions = getResourcesForSubId().getBoolean( mDisplay3gOptions = getResourcesForSubId().getBoolean(
R.bool.config_display_network_mode_3g_option); 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); mLteEnabled = carrierConfig.getBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL);
} }
Log.d(LOG_TAG, "PreferenceEntriesBuilder: subId" + mSubId Log.d(LOG_TAG, "PreferenceEntriesBuilder: subId" + mSubId