Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 28367dae authored by Bonian Chen's avatar Bonian Chen Committed by SongFerng Wang
Browse files

[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

Merged-In: I8092372372cb334b5ac1956b869d194b9fcd0523
Merged-In: I5c12ad23a240fbe70630855e5f98b5be83912674
Change-Id: I8092372372cb334b5ac1956b869d194b9fcd0523
parent 64fd489c
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1654,4 +1654,9 @@
         [CHAR LIMIT=NONE] -->
    <string-array name="allowlist_hide_summary_in_battery_usage" translatable="false">
    </string-array>

    <!-- hide 3G option from preferred network type UI -->
    <integer-array name="network_mode_3g_deprecated_carrier_id" translatable="false">
    </integer-array>

</resources>
+19 −0
Original line number Diff line number Diff line
@@ -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;
@@ -239,6 +240,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