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

Commit 8bcdc4cf authored by Pengquan Meng's avatar Pengquan Meng
Browse files

Add NR to preferred network type combination

This add NR 5G to preferred network type and move preferredNetworkMode
from SystemApi to hidden api as we are not going to support
preferredNetworMode enum in the future.

Bug: 111453000
Test: build
Change-Id: I08a8f7bf44a62ef109583b82b22f65fd6f89c71d
parent f445d59c
Loading
Loading
Loading
Loading
+0 −24
Original line number Original line Diff line number Diff line
@@ -6261,7 +6261,6 @@ package android.telephony {
    method public deprecated boolean getDataEnabled(int);
    method public deprecated boolean getDataEnabled(int);
    method public boolean getEmergencyCallbackMode();
    method public boolean getEmergencyCallbackMode();
    method public java.lang.String getIsimDomain();
    method public java.lang.String getIsimDomain();
    method public int getPreferredNetworkType(int);
    method public int getPreferredNetworkTypeBitmap();
    method public int getPreferredNetworkTypeBitmap();
    method public int getRadioPowerState();
    method public int getRadioPowerState();
    method public int getSimApplicationState();
    method public int getSimApplicationState();
@@ -6317,29 +6316,6 @@ package android.telephony {
    field public static final java.lang.String EXTRA_VOICEMAIL_SCRAMBLED_PIN_STRING = "android.telephony.extra.VOICEMAIL_SCRAMBLED_PIN_STRING";
    field public static final java.lang.String EXTRA_VOICEMAIL_SCRAMBLED_PIN_STRING = "android.telephony.extra.VOICEMAIL_SCRAMBLED_PIN_STRING";
    field public static final int INVALID_CARD_ID = -1; // 0xffffffff
    field public static final int INVALID_CARD_ID = -1; // 0xffffffff
    field public static final long MAX_NUMBER_VERIFICATION_TIMEOUT_MILLIS = 60000L; // 0xea60L
    field public static final long MAX_NUMBER_VERIFICATION_TIMEOUT_MILLIS = 60000L; // 0xea60L
    field public static final int NETWORK_MODE_CDMA_EVDO = 4; // 0x4
    field public static final int NETWORK_MODE_CDMA_NO_EVDO = 5; // 0x5
    field public static final int NETWORK_MODE_EVDO_NO_CDMA = 6; // 0x6
    field public static final int NETWORK_MODE_GLOBAL = 7; // 0x7
    field public static final int NETWORK_MODE_GSM_ONLY = 1; // 0x1
    field public static final int NETWORK_MODE_GSM_UMTS = 3; // 0x3
    field public static final int NETWORK_MODE_LTE_CDMA_EVDO = 8; // 0x8
    field public static final int NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = 10; // 0xa
    field public static final int NETWORK_MODE_LTE_GSM_WCDMA = 9; // 0x9
    field public static final int NETWORK_MODE_LTE_ONLY = 11; // 0xb
    field public static final int NETWORK_MODE_LTE_TDSCDMA = 15; // 0xf
    field public static final int NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 22; // 0x16
    field public static final int NETWORK_MODE_LTE_TDSCDMA_GSM = 17; // 0x11
    field public static final int NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA = 20; // 0x14
    field public static final int NETWORK_MODE_LTE_TDSCDMA_WCDMA = 19; // 0x13
    field public static final int NETWORK_MODE_LTE_WCDMA = 12; // 0xc
    field public static final int NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 21; // 0x15
    field public static final int NETWORK_MODE_TDSCDMA_GSM = 16; // 0x10
    field public static final int NETWORK_MODE_TDSCDMA_GSM_WCDMA = 18; // 0x12
    field public static final int NETWORK_MODE_TDSCDMA_ONLY = 13; // 0xd
    field public static final int NETWORK_MODE_TDSCDMA_WCDMA = 14; // 0xe
    field public static final int NETWORK_MODE_WCDMA_ONLY = 2; // 0x2
    field public static final int NETWORK_MODE_WCDMA_PREF = 0; // 0x0
    field public static final int NETWORK_TYPE_BITMASK_1xRTT = 128; // 0x80
    field public static final int NETWORK_TYPE_BITMASK_1xRTT = 128; // 0x80
    field public static final int NETWORK_TYPE_BITMASK_CDMA = 16; // 0x10
    field public static final int NETWORK_TYPE_BITMASK_CDMA = 16; // 0x10
    field public static final int NETWORK_TYPE_BITMASK_EDGE = 4; // 0x4
    field public static final int NETWORK_TYPE_BITMASK_EDGE = 4; // 0x4
+99 −102
Original line number Original line Diff line number Diff line
@@ -56,6 +56,9 @@ public class RadioAccessFamily implements Parcelable {
    public static final int RAF_LTE = TelephonyManager.NETWORK_TYPE_BITMASK_LTE;
    public static final int RAF_LTE = TelephonyManager.NETWORK_TYPE_BITMASK_LTE;
    public static final int RAF_LTE_CA = TelephonyManager.NETWORK_TYPE_BITMASK_LTE_CA;
    public static final int RAF_LTE_CA = TelephonyManager.NETWORK_TYPE_BITMASK_LTE_CA;


    // 5G
    public static final int RAF_NR = TelephonyManager.NETWORK_TYPE_BITMASK_NR;

    // Grouping of RAFs
    // Grouping of RAFs
    // 2G
    // 2G
    private static final int GSM = RAF_GSM | RAF_GPRS | RAF_EDGE;
    private static final int GSM = RAF_GSM | RAF_GPRS | RAF_EDGE;
@@ -67,6 +70,9 @@ public class RadioAccessFamily implements Parcelable {
    // 4G
    // 4G
    private static final int LTE = RAF_LTE | RAF_LTE_CA;
    private static final int LTE = RAF_LTE | RAF_LTE_CA;


    // 5G
    private static final int NR = RAF_NR;

    /* Phone ID of phone */
    /* Phone ID of phone */
    private int mPhoneId;
    private int mPhoneId;


@@ -159,84 +165,78 @@ public class RadioAccessFamily implements Parcelable {


    @UnsupportedAppUsage
    @UnsupportedAppUsage
    public static int getRafFromNetworkType(int type) {
    public static int getRafFromNetworkType(int type) {
        int raf;

        switch (type) {
        switch (type) {
            case RILConstants.NETWORK_MODE_WCDMA_PREF:
            case RILConstants.NETWORK_MODE_WCDMA_PREF:
                raf = GSM | WCDMA;
                return GSM | WCDMA;
                break;
            case RILConstants.NETWORK_MODE_GSM_ONLY:
            case RILConstants.NETWORK_MODE_GSM_ONLY:
                raf = GSM;
                return GSM;
                break;
            case RILConstants.NETWORK_MODE_WCDMA_ONLY:
            case RILConstants.NETWORK_MODE_WCDMA_ONLY:
                raf = WCDMA;
                return WCDMA;
                break;
            case RILConstants.NETWORK_MODE_GSM_UMTS:
            case RILConstants.NETWORK_MODE_GSM_UMTS:
                raf = GSM | WCDMA;
                return GSM | WCDMA;
                break;
            case RILConstants.NETWORK_MODE_CDMA:
            case RILConstants.NETWORK_MODE_CDMA:
                raf = CDMA | EVDO;
                return CDMA | EVDO;
                break;
            case RILConstants.NETWORK_MODE_LTE_CDMA_EVDO:
            case RILConstants.NETWORK_MODE_LTE_CDMA_EVDO:
                raf = LTE | CDMA | EVDO;
                return LTE | CDMA | EVDO;
                break;
            case RILConstants.NETWORK_MODE_LTE_GSM_WCDMA:
            case RILConstants.NETWORK_MODE_LTE_GSM_WCDMA:
                raf = LTE | GSM | WCDMA;
                return LTE | GSM | WCDMA;
                break;
            case RILConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
            case RILConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
                raf = LTE | CDMA | EVDO | GSM | WCDMA;
                return LTE | CDMA | EVDO | GSM | WCDMA;
                break;
            case RILConstants.NETWORK_MODE_LTE_ONLY:
            case RILConstants.NETWORK_MODE_LTE_ONLY:
                raf = LTE;
                return LTE;
                break;
            case RILConstants.NETWORK_MODE_LTE_WCDMA:
            case RILConstants.NETWORK_MODE_LTE_WCDMA:
                raf = LTE | WCDMA;
                return LTE | WCDMA;
                break;
            case RILConstants.NETWORK_MODE_CDMA_NO_EVDO:
            case RILConstants.NETWORK_MODE_CDMA_NO_EVDO:
                raf = CDMA;
                return CDMA;
                break;
            case RILConstants.NETWORK_MODE_EVDO_NO_CDMA:
            case RILConstants.NETWORK_MODE_EVDO_NO_CDMA:
                raf = EVDO;
                return EVDO;
                break;
            case RILConstants.NETWORK_MODE_GLOBAL:
            case RILConstants.NETWORK_MODE_GLOBAL:
                raf = GSM | WCDMA | CDMA | EVDO;
                return GSM | WCDMA | CDMA | EVDO;
                break;
            case RILConstants.NETWORK_MODE_TDSCDMA_ONLY:
            case RILConstants.NETWORK_MODE_TDSCDMA_ONLY:
                raf = RAF_TD_SCDMA;
                return RAF_TD_SCDMA;
                break;
            case RILConstants.NETWORK_MODE_TDSCDMA_WCDMA:
            case RILConstants.NETWORK_MODE_TDSCDMA_WCDMA:
                raf = RAF_TD_SCDMA | WCDMA;
                return RAF_TD_SCDMA | WCDMA;
                break;
            case RILConstants.NETWORK_MODE_LTE_TDSCDMA:
            case RILConstants.NETWORK_MODE_LTE_TDSCDMA:
                raf = LTE | RAF_TD_SCDMA;
                return LTE | RAF_TD_SCDMA;
                break;
            case RILConstants.NETWORK_MODE_TDSCDMA_GSM:
            case RILConstants.NETWORK_MODE_TDSCDMA_GSM:
                raf = RAF_TD_SCDMA | GSM;
                return RAF_TD_SCDMA | GSM;
                break;
            case RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM:
            case RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM:
                raf = LTE | RAF_TD_SCDMA | GSM;
                return LTE | RAF_TD_SCDMA | GSM;
                break;
            case RILConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
            case RILConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
                raf = RAF_TD_SCDMA | GSM | WCDMA;
                return RAF_TD_SCDMA | GSM | WCDMA;
                break;
            case RILConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
            case RILConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
                raf = LTE | RAF_TD_SCDMA | WCDMA;
                return LTE | RAF_TD_SCDMA | WCDMA;
                break;
            case RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
            case RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
                raf = LTE | RAF_TD_SCDMA | GSM | WCDMA;
                return LTE | RAF_TD_SCDMA | GSM | WCDMA;
                break;
            case RILConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
            case RILConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
                raf = RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA;
                return RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA;
                break;
            case RILConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
            case RILConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
                raf = LTE | RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA;
                return LTE | RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA;
                break;
            case (RILConstants.NETWORK_MODE_NR_ONLY):
                return NR;
            case (RILConstants.NETWORK_MODE_NR_LTE):
                return NR | LTE;
            case (RILConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO):
                return NR | LTE | CDMA | EVDO;
            case (RILConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA):
                return NR | LTE | GSM | WCDMA;
            case (RILConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA):
                return NR | LTE | CDMA | EVDO | GSM | WCDMA;
            case (RILConstants.NETWORK_MODE_NR_LTE_WCDMA):
                return NR | LTE | WCDMA;
            case (RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA):
                return NR | LTE | RAF_TD_SCDMA;
            case (RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM):
                return NR | LTE | RAF_TD_SCDMA | GSM;
            case (RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA):
                return NR | LTE | RAF_TD_SCDMA | WCDMA;
            case (RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA):
                return NR | LTE | RAF_TD_SCDMA | GSM | WCDMA;
            case (RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA):
                return NR | LTE | RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA;
            default:
            default:
                raf = RAF_UNKNOWN;
                return RAF_UNKNOWN;
                break;
        }
        }

        return raf;
    }
    }


    /**
    /**
@@ -249,6 +249,7 @@ public class RadioAccessFamily implements Parcelable {
        raf = ((CDMA & raf) > 0) ? (CDMA | raf) : raf;
        raf = ((CDMA & raf) > 0) ? (CDMA | raf) : raf;
        raf = ((EVDO & raf) > 0) ? (EVDO | raf) : raf;
        raf = ((EVDO & raf) > 0) ? (EVDO | raf) : raf;
        raf = ((LTE & raf) > 0) ? (LTE | raf) : raf;
        raf = ((LTE & raf) > 0) ? (LTE | raf) : raf;
        raf = ((NR & raf) > 0) ? (NR | raf) : raf;


        return raf;
        return raf;
    }
    }
@@ -273,83 +274,78 @@ public class RadioAccessFamily implements Parcelable {


    @UnsupportedAppUsage
    @UnsupportedAppUsage
    public static int getNetworkTypeFromRaf(int raf) {
    public static int getNetworkTypeFromRaf(int raf) {
        int type;

        raf = getAdjustedRaf(raf);
        raf = getAdjustedRaf(raf);


        switch (raf) {
        switch (raf) {
            case (GSM | WCDMA):
            case (GSM | WCDMA):
                type = RILConstants.NETWORK_MODE_WCDMA_PREF;
                return RILConstants.NETWORK_MODE_WCDMA_PREF;
                break;
            case GSM:
            case GSM:
                type = RILConstants.NETWORK_MODE_GSM_ONLY;
                return RILConstants.NETWORK_MODE_GSM_ONLY;
                break;
            case WCDMA:
            case WCDMA:
                type = RILConstants.NETWORK_MODE_WCDMA_ONLY;
                return RILConstants.NETWORK_MODE_WCDMA_ONLY;
                break;
            case (CDMA | EVDO):
            case (CDMA | EVDO):
                type = RILConstants.NETWORK_MODE_CDMA;
                return RILConstants.NETWORK_MODE_CDMA;
                break;
            case (LTE | CDMA | EVDO):
            case (LTE | CDMA | EVDO):
                type = RILConstants.NETWORK_MODE_LTE_CDMA_EVDO;
                return RILConstants.NETWORK_MODE_LTE_CDMA_EVDO;
                break;
            case (LTE | GSM | WCDMA):
            case (LTE | GSM | WCDMA):
                type = RILConstants.NETWORK_MODE_LTE_GSM_WCDMA;
                return RILConstants.NETWORK_MODE_LTE_GSM_WCDMA;
                break;
            case (LTE | CDMA | EVDO | GSM | WCDMA):
            case (LTE | CDMA | EVDO | GSM | WCDMA):
                type = RILConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA;
                return RILConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA;
                break;
            case LTE:
            case LTE:
                type = RILConstants.NETWORK_MODE_LTE_ONLY;
                return RILConstants.NETWORK_MODE_LTE_ONLY;
                break;
            case (LTE | WCDMA):
            case (LTE | WCDMA):
                type = RILConstants.NETWORK_MODE_LTE_WCDMA;
                return RILConstants.NETWORK_MODE_LTE_WCDMA;
                break;
            case CDMA:
            case CDMA:
                type = RILConstants.NETWORK_MODE_CDMA_NO_EVDO;
                return RILConstants.NETWORK_MODE_CDMA_NO_EVDO;
                break;
            case EVDO:
            case EVDO:
                type = RILConstants.NETWORK_MODE_EVDO_NO_CDMA;
                return RILConstants.NETWORK_MODE_EVDO_NO_CDMA;
                break;
            case (GSM | WCDMA | CDMA | EVDO):
            case (GSM | WCDMA | CDMA | EVDO):
                type = RILConstants.NETWORK_MODE_GLOBAL;
                return RILConstants.NETWORK_MODE_GLOBAL;
                break;
            case RAF_TD_SCDMA:
            case RAF_TD_SCDMA:
                type = RILConstants.NETWORK_MODE_TDSCDMA_ONLY;
                return RILConstants.NETWORK_MODE_TDSCDMA_ONLY;
                break;
            case (RAF_TD_SCDMA | WCDMA):
            case (RAF_TD_SCDMA | WCDMA):
                type = RILConstants.NETWORK_MODE_TDSCDMA_WCDMA;
                return RILConstants.NETWORK_MODE_TDSCDMA_WCDMA;
                break;
            case (LTE | RAF_TD_SCDMA):
            case (LTE | RAF_TD_SCDMA):
                type = RILConstants.NETWORK_MODE_LTE_TDSCDMA;
                return RILConstants.NETWORK_MODE_LTE_TDSCDMA;
                break;
            case (RAF_TD_SCDMA | GSM):
            case (RAF_TD_SCDMA | GSM):
                type = RILConstants.NETWORK_MODE_TDSCDMA_GSM;
                return RILConstants.NETWORK_MODE_TDSCDMA_GSM;
                break;
            case (LTE | RAF_TD_SCDMA | GSM):
            case (LTE | RAF_TD_SCDMA | GSM):
                type = RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM;
                return RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM;
                break;
            case (RAF_TD_SCDMA | GSM | WCDMA):
            case (RAF_TD_SCDMA | GSM | WCDMA):
                type = RILConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA;
                return RILConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA;
                break;
            case (LTE | RAF_TD_SCDMA | WCDMA):
            case (LTE | RAF_TD_SCDMA | WCDMA):
                type = RILConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA;
                return RILConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA;
                break;
            case (LTE | RAF_TD_SCDMA | GSM | WCDMA):
            case (LTE | RAF_TD_SCDMA | GSM | WCDMA):
                type = RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA;
                return RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA;
                break;
            case (RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA):
            case (RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA):
                type = RILConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA;
                return RILConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA;
                break;
            case (LTE | RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA):
            case (LTE | RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA):
                type = RILConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA;
                return RILConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA;
                break;
            case (NR):
                return RILConstants.NETWORK_MODE_NR_ONLY;
            case (NR | LTE):
                return RILConstants.NETWORK_MODE_NR_LTE;
            case (NR | LTE | CDMA | EVDO):
                return RILConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO;
            case (NR | LTE | GSM | WCDMA):
                return RILConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA;
            case (NR | LTE | CDMA | EVDO | GSM | WCDMA):
                return RILConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA;
            case (NR | LTE | WCDMA):
                return RILConstants.NETWORK_MODE_NR_LTE_WCDMA;
            case (NR | LTE | RAF_TD_SCDMA):
                return RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA;
            case (NR | LTE | RAF_TD_SCDMA | GSM):
                return RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM;
            case (NR | LTE | RAF_TD_SCDMA | WCDMA):
                return RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA;
            case (NR | LTE | RAF_TD_SCDMA | GSM | WCDMA):
                return RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA;
            case (NR | LTE | RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA):
                return RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA;
            default:
            default:
                type = RILConstants.PREFERRED_NETWORK_MODE ;
                return RILConstants.PREFERRED_NETWORK_MODE;
                break;
        }
        }

        return type;
    }
    }


    public static int singleRafTypeFromString(String rafString) {
    public static int singleRafTypeFromString(String rafString) {
@@ -376,6 +372,7 @@ public class RadioAccessFamily implements Parcelable {
            case "EVDO":    return EVDO;
            case "EVDO":    return EVDO;
            case "WCDMA":   return WCDMA;
            case "WCDMA":   return WCDMA;
            case "LTE_CA":  return RAF_LTE_CA;
            case "LTE_CA":  return RAF_LTE_CA;
            case "NR":      return RAF_NR;
            default:        return RAF_UNKNOWN;
            default:        return RAF_UNKNOWN;
        }
        }
    }
    }
+111 −50
Original line number Original line Diff line number Diff line
@@ -6194,191 +6194,252 @@ public class TelephonyManager {
            NETWORK_MODE_LTE_TDSCDMA_WCDMA,
            NETWORK_MODE_LTE_TDSCDMA_WCDMA,
            NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA,
            NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA,
            NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA,
            NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA,
            NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA
            NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA,
            NETWORK_MODE_NR_ONLY,
            NETWORK_MODE_NR_LTE,
            NETWORK_MODE_NR_LTE_CDMA_EVDO,
            NETWORK_MODE_NR_LTE_GSM_WCDMA,
            NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA,
            NETWORK_MODE_NR_LTE_WCDMA,
            NETWORK_MODE_NR_LTE_TDSCDMA,
            NETWORK_MODE_NR_LTE_TDSCDMA_GSM,
            NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA,
            NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA,
            NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA
    })
    })
    @Retention(RetentionPolicy.SOURCE)
    @Retention(RetentionPolicy.SOURCE)
    public @interface PrefNetworkMode{}
    public @interface PrefNetworkMode{}


    /**
    /**
     * preferred network mode is GSM/WCDMA (WCDMA preferred).
     * Preferred network mode is GSM/WCDMA (WCDMA preferred).
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_WCDMA_PREF = RILConstants.NETWORK_MODE_WCDMA_PREF;
    public static final int NETWORK_MODE_WCDMA_PREF = RILConstants.NETWORK_MODE_WCDMA_PREF;


    /**
    /**
     * preferred network mode is GSM only.
     * Preferred network mode is GSM only.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_GSM_ONLY = RILConstants.NETWORK_MODE_GSM_ONLY;
    public static final int NETWORK_MODE_GSM_ONLY = RILConstants.NETWORK_MODE_GSM_ONLY;


    /**
    /**
     * preferred network mode is WCDMA only.
     * Preferred network mode is WCDMA only.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_WCDMA_ONLY = RILConstants.NETWORK_MODE_WCDMA_ONLY;
    public static final int NETWORK_MODE_WCDMA_ONLY = RILConstants.NETWORK_MODE_WCDMA_ONLY;


    /**
    /**
     * preferred network mode is GSM/WCDMA (auto mode, according to PRL).
     * Preferred network mode is GSM/WCDMA (auto mode, according to PRL).
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_GSM_UMTS = RILConstants.NETWORK_MODE_GSM_UMTS;
    public static final int NETWORK_MODE_GSM_UMTS = RILConstants.NETWORK_MODE_GSM_UMTS;


    /**
    /**
     * preferred network mode is CDMA and EvDo (auto mode, according to PRL).
     * Preferred network mode is CDMA and EvDo (auto mode, according to PRL).
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_CDMA_EVDO = RILConstants.NETWORK_MODE_CDMA;
    public static final int NETWORK_MODE_CDMA_EVDO = RILConstants.NETWORK_MODE_CDMA;


    /**
    /**
     * preferred network mode is CDMA only.
     * Preferred network mode is CDMA only.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_CDMA_NO_EVDO = RILConstants.NETWORK_MODE_CDMA_NO_EVDO;
    public static final int NETWORK_MODE_CDMA_NO_EVDO = RILConstants.NETWORK_MODE_CDMA_NO_EVDO;


    /**
    /**
     * preferred network mode is EvDo only.
     * Preferred network mode is EvDo only.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_EVDO_NO_CDMA = RILConstants.NETWORK_MODE_EVDO_NO_CDMA;
    public static final int NETWORK_MODE_EVDO_NO_CDMA = RILConstants.NETWORK_MODE_EVDO_NO_CDMA;


    /**
    /**
     * preferred network mode is GSM/WCDMA, CDMA, and EvDo (auto mode, according to PRL).
     * Preferred network mode is GSM/WCDMA, CDMA, and EvDo (auto mode, according to PRL).
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_GLOBAL = RILConstants.NETWORK_MODE_GLOBAL;
    public static final int NETWORK_MODE_GLOBAL = RILConstants.NETWORK_MODE_GLOBAL;


    /**
    /**
     * preferred network mode is LTE, CDMA and EvDo.
     * Preferred network mode is LTE, CDMA and EvDo.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_LTE_CDMA_EVDO = RILConstants.NETWORK_MODE_LTE_CDMA_EVDO;
    public static final int NETWORK_MODE_LTE_CDMA_EVDO = RILConstants.NETWORK_MODE_LTE_CDMA_EVDO;


    /**
    /**
     * preferred network mode is LTE, GSM/WCDMA.
     * Preferred network mode is LTE, GSM/WCDMA.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_LTE_GSM_WCDMA = RILConstants.NETWORK_MODE_LTE_GSM_WCDMA;
    public static final int NETWORK_MODE_LTE_GSM_WCDMA = RILConstants.NETWORK_MODE_LTE_GSM_WCDMA;


    /**
    /**
     * preferred network mode is LTE, CDMA, EvDo, GSM/WCDMA.
     * Preferred network mode is LTE, CDMA, EvDo, GSM/WCDMA.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA =
    public static final int NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA =
            RILConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA;
            RILConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA;


    /**
    /**
     * preferred network mode is LTE Only.
     * Preferred network mode is LTE Only.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_LTE_ONLY = RILConstants.NETWORK_MODE_LTE_ONLY;
    public static final int NETWORK_MODE_LTE_ONLY = RILConstants.NETWORK_MODE_LTE_ONLY;


    /**
    /**
     * preferred network mode is LTE/WCDMA.
     * Preferred network mode is LTE/WCDMA.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_LTE_WCDMA = RILConstants.NETWORK_MODE_LTE_WCDMA;
    public static final int NETWORK_MODE_LTE_WCDMA = RILConstants.NETWORK_MODE_LTE_WCDMA;


    /**
    /**
     * preferred network mode is TD-SCDMA only.
     * Preferred network mode is TD-SCDMA only.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_TDSCDMA_ONLY = RILConstants.NETWORK_MODE_TDSCDMA_ONLY;
    public static final int NETWORK_MODE_TDSCDMA_ONLY = RILConstants.NETWORK_MODE_TDSCDMA_ONLY;


    /**
    /**
     * preferred network mode is TD-SCDMA and WCDMA.
     * Preferred network mode is TD-SCDMA and WCDMA.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_TDSCDMA_WCDMA = RILConstants.NETWORK_MODE_TDSCDMA_WCDMA;
    public static final int NETWORK_MODE_TDSCDMA_WCDMA = RILConstants.NETWORK_MODE_TDSCDMA_WCDMA;


    /**
    /**
     * preferred network mode is TD-SCDMA and LTE.
     * Preferred network mode is TD-SCDMA and LTE.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_LTE_TDSCDMA = RILConstants.NETWORK_MODE_LTE_TDSCDMA;
    public static final int NETWORK_MODE_LTE_TDSCDMA = RILConstants.NETWORK_MODE_LTE_TDSCDMA;


    /**
    /**
     * preferred network mode is TD-SCDMA and GSM.
     * Preferred network mode is TD-SCDMA and GSM.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_TDSCDMA_GSM = RILConstants.NETWORK_MODE_TDSCDMA_GSM;
    public static final int NETWORK_MODE_TDSCDMA_GSM = RILConstants.NETWORK_MODE_TDSCDMA_GSM;


    /**
    /**
     * preferred network mode is TD-SCDMA,GSM and LTE.
     * Preferred network mode is TD-SCDMA,GSM and LTE.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_LTE_TDSCDMA_GSM =
    public static final int NETWORK_MODE_LTE_TDSCDMA_GSM =
            RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM;
            RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM;


    /**
    /**
     * preferred network mode is TD-SCDMA, GSM/WCDMA.
     * Preferred network mode is TD-SCDMA, GSM/WCDMA.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_TDSCDMA_GSM_WCDMA =
    public static final int NETWORK_MODE_TDSCDMA_GSM_WCDMA =
            RILConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA;
            RILConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA;


    /**
    /**
     * preferred network mode is TD-SCDMA, WCDMA and LTE.
     * Preferred network mode is TD-SCDMA, WCDMA and LTE.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_LTE_TDSCDMA_WCDMA =
    public static final int NETWORK_MODE_LTE_TDSCDMA_WCDMA =
            RILConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA;
            RILConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA;


    /**
    /**
     * preferred network mode is TD-SCDMA, GSM/WCDMA and LTE.
     * Preferred network mode is TD-SCDMA, GSM/WCDMA and LTE.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA =
    public static final int NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA =
            RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA;
            RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA;


    /**
    /**
     * preferred network mode is TD-SCDMA,EvDo,CDMA,GSM/WCDMA.
     * Preferred network mode is TD-SCDMA,EvDo,CDMA,GSM/WCDMA.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA =
    public static final int NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA =
            RILConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA;
            RILConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA;
    /**
    /**
     * preferred network mode is TD-SCDMA/LTE/GSM/WCDMA, CDMA, and EvDo.
     * Preferred network mode is TD-SCDMA/LTE/GSM/WCDMA, CDMA, and EvDo.
     * @hide
     * @hide
     */
     */
    @SystemApi
    public static final int NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA =
    public static final int NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA =
            RILConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA;
            RILConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA;


    /**
     * Preferred network mode is NR 5G only.
     * @hide
     */
    public static final int NETWORK_MODE_NR_ONLY = RILConstants.NETWORK_MODE_NR_ONLY;

    /**
     * Preferred network mode is NR 5G, LTE.
     * @hide
     */
    public static final int NETWORK_MODE_NR_LTE = RILConstants.NETWORK_MODE_NR_LTE;

    /**
     * Preferred network mode is NR 5G, LTE, CDMA and EvDo.
     * @hide
     */
    public static final int NETWORK_MODE_NR_LTE_CDMA_EVDO =
            RILConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO;

    /**
     * Preferred network mode is NR 5G, LTE, GSM and WCDMA.
     * @hide
     */
    public static final int NETWORK_MODE_NR_LTE_GSM_WCDMA =
            RILConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA;

    /**
     * Preferred network mode is NR 5G, LTE, CDMA, EvDo, GSM and WCDMA.
     * @hide
     */
    public static final int NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA =
            RILConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA;

    /**
     * Preferred network mode is NR 5G, LTE and WCDMA.
     * @hide
     */
    public static final int NETWORK_MODE_NR_LTE_WCDMA = RILConstants.NETWORK_MODE_NR_LTE_WCDMA;

    /**
     * Preferred network mode is NR 5G, LTE and TDSCDMA.
     * @hide
     */
    public static final int NETWORK_MODE_NR_LTE_TDSCDMA = RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA;

    /**
     * Preferred network mode is NR 5G, LTE, TD-SCDMA and GSM.
     * @hide
     */
    public static final int NETWORK_MODE_NR_LTE_TDSCDMA_GSM =
            RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM;

    /**
     * Preferred network mode is NR 5G, LTE, TD-SCDMA, WCDMA.
     * @hide
     */
    public static final int NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA =
            RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA;

    /**
     * Preferred network mode is NR 5G, LTE, TD-SCDMA, GSM and WCDMA.
     * @hide
     */
    public static final int NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA =
            RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA;

    /**
     * Preferred network mode is NR 5G, LTE, TD-SCDMA, CDMA, EVDO, GSM and WCDMA.
     * @hide
     */
    public static final int NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA =
            RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA;

    /**
    /**
     * Get the preferred network type.
     * Get the preferred network type.
     * Used for device configuration by some CDMA operators.
     * Used for device configuration by some CDMA operators.
     *
     *
     * <p>Requires Permission:
     * <p>Requires Permission:
     * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} or that the calling
     * {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE READ_PRIVILEGED_PHONE_STATE}
     * app has carrier privileges (see {@link #hasCarrierPrivileges}).
     * app has carrier privileges (see {@link #hasCarrierPrivileges}).
     *
     *
     * @return the preferred network type.
     * @return the preferred network type.
     * @hide
     * @hide
     */
     */
    @RequiresPermission((android.Manifest.permission.MODIFY_PHONE_STATE))
    @RequiresPermission((android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE))
    @SystemApi
    @UnsupportedAppUsage
    public @PrefNetworkMode int getPreferredNetworkType(int subId) {
    public @PrefNetworkMode int getPreferredNetworkType(int subId) {
        try {
        try {
            ITelephony telephony = getITelephony();
            ITelephony telephony = getITelephony();
+102 −26

File changed.

Preview size limit exceeded, changes collapsed.