diff options
| -rw-r--r-- | api/system-current.txt | 45 | ||||
| -rw-r--r-- | telephony/java/android/telephony/RadioAccessFamily.java | 107 | ||||
| -rw-r--r-- | telephony/java/android/telephony/TelephonyManager.java | 65 | 
3 files changed, 117 insertions, 100 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index d3d9c220f12a..31367242dc12 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -7884,12 +7884,12 @@ package android.telephony {      method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean getEmergencyCallbackMode();      method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getIsimDomain();      method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getIsimIst(); -    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getPreferredNetworkTypeBitmap(); +    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public long getPreferredNetworkTypeBitmap();      method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public int getRadioPowerState();      method public int getSimApplicationState();      method public int getSimCardState();      method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getSimLocale(); -    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getSupportedRadioAccessFamily(); +    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public long getSupportedRadioAccessFamily();      method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public java.util.List<android.telephony.TelephonyHistogram> getTelephonyHistograms();      method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public android.telephony.UiccSlotInfo[] getUiccSlotsInfo();      method @Nullable public android.os.Bundle getVisualVoicemailSettings(); @@ -7917,7 +7917,7 @@ package android.telephony {      method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataEnabled(int, boolean);      method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataRoamingEnabled(boolean);      method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setMultisimCarrierRestriction(boolean); -    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setPreferredNetworkTypeBitmap(int); +    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setPreferredNetworkTypeBitmap(long);      method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setRadio(boolean);      method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setRadioPower(boolean);      method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSimPowerState(int); @@ -7942,25 +7942,26 @@ package android.telephony {      field public static final String EXTRA_VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL = "android.telephony.extra.VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL";      field public static final String EXTRA_VOICEMAIL_SCRAMBLED_PIN_STRING = "android.telephony.extra.VOICEMAIL_SCRAMBLED_PIN_STRING";      field public static final long MAX_NUMBER_VERIFICATION_TIMEOUT_MILLIS = 60000L; // 0xea60L -    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_EDGE = 4; // 0x4 -    field public static final int NETWORK_TYPE_BITMASK_EHRPD = 16384; // 0x4000 -    field public static final int NETWORK_TYPE_BITMASK_EVDO_0 = 32; // 0x20 -    field public static final int NETWORK_TYPE_BITMASK_EVDO_A = 64; // 0x40 -    field public static final int NETWORK_TYPE_BITMASK_EVDO_B = 4096; // 0x1000 -    field public static final int NETWORK_TYPE_BITMASK_GPRS = 2; // 0x2 -    field public static final int NETWORK_TYPE_BITMASK_GSM = 65536; // 0x10000 -    field public static final int NETWORK_TYPE_BITMASK_HSDPA = 256; // 0x100 -    field public static final int NETWORK_TYPE_BITMASK_HSPA = 1024; // 0x400 -    field public static final int NETWORK_TYPE_BITMASK_HSPAP = 32768; // 0x8000 -    field public static final int NETWORK_TYPE_BITMASK_HSUPA = 512; // 0x200 -    field public static final int NETWORK_TYPE_BITMASK_LTE = 8192; // 0x2000 -    field public static final int NETWORK_TYPE_BITMASK_LTE_CA = 524288; // 0x80000 -    field public static final int NETWORK_TYPE_BITMASK_NR = 1048576; // 0x100000 -    field public static final int NETWORK_TYPE_BITMASK_TD_SCDMA = 131072; // 0x20000 -    field public static final int NETWORK_TYPE_BITMASK_UMTS = 8; // 0x8 -    field public static final int NETWORK_TYPE_BITMASK_UNKNOWN = 1; // 0x1 +    field public static final long NETWORK_TYPE_BITMASK_1xRTT = 64L; // 0x40L +    field public static final long NETWORK_TYPE_BITMASK_CDMA = 8L; // 0x8L +    field public static final long NETWORK_TYPE_BITMASK_EDGE = 2L; // 0x2L +    field public static final long NETWORK_TYPE_BITMASK_EHRPD = 8192L; // 0x2000L +    field public static final long NETWORK_TYPE_BITMASK_EVDO_0 = 16L; // 0x10L +    field public static final long NETWORK_TYPE_BITMASK_EVDO_A = 32L; // 0x20L +    field public static final long NETWORK_TYPE_BITMASK_EVDO_B = 2048L; // 0x800L +    field public static final long NETWORK_TYPE_BITMASK_GPRS = 1L; // 0x1L +    field public static final long NETWORK_TYPE_BITMASK_GSM = 32768L; // 0x8000L +    field public static final long NETWORK_TYPE_BITMASK_HSDPA = 128L; // 0x80L +    field public static final long NETWORK_TYPE_BITMASK_HSPA = 512L; // 0x200L +    field public static final long NETWORK_TYPE_BITMASK_HSPAP = 16384L; // 0x4000L +    field public static final long NETWORK_TYPE_BITMASK_HSUPA = 256L; // 0x100L +    field public static final long NETWORK_TYPE_BITMASK_IWLAN = 131072L; // 0x20000L +    field public static final long NETWORK_TYPE_BITMASK_LTE = 4096L; // 0x1000L +    field public static final long NETWORK_TYPE_BITMASK_LTE_CA = 262144L; // 0x40000L +    field public static final long NETWORK_TYPE_BITMASK_NR = 524288L; // 0x80000L +    field public static final long NETWORK_TYPE_BITMASK_TD_SCDMA = 65536L; // 0x10000L +    field public static final long NETWORK_TYPE_BITMASK_UMTS = 4L; // 0x4L +    field public static final long NETWORK_TYPE_BITMASK_UNKNOWN = 0L; // 0x0L      field public static final int RADIO_POWER_OFF = 0; // 0x0      field public static final int RADIO_POWER_ON = 1; // 0x1      field public static final int RADIO_POWER_UNAVAILABLE = 2; // 0x2 diff --git a/telephony/java/android/telephony/RadioAccessFamily.java b/telephony/java/android/telephony/RadioAccessFamily.java index 0d94c4dd3686..c1786befb096 100644 --- a/telephony/java/android/telephony/RadioAccessFamily.java +++ b/telephony/java/android/telephony/RadioAccessFamily.java @@ -17,12 +17,15 @@  package android.telephony;  import android.annotation.UnsupportedAppUsage; +import android.hardware.radio.V1_0.RadioTechnology; +import android.hardware.radio.V1_4.CellInfo.Info;  import android.os.Build;  import android.os.Parcel;  import android.os.Parcelable;  import com.android.internal.telephony.RILConstants; +  /**   * Object to indicate the phone radio type and access technology.   * @@ -33,32 +36,34 @@ public class RadioAccessFamily implements Parcelable {      /**       * TODO: get rid of RAF definition in RadioAccessFamily and       * use {@link TelephonyManager.NetworkTypeBitMask} +     * TODO: public definition {@link TelephonyManager.NetworkTypeBitMask} is long. +     * TODO: Convert from int to long everywhere including HAL definitions.       */      // 2G -    public static final int RAF_UNKNOWN = TelephonyManager.NETWORK_TYPE_BITMASK_UNKNOWN; -    public static final int RAF_GSM = TelephonyManager.NETWORK_TYPE_BITMASK_GSM; -    public static final int RAF_GPRS = TelephonyManager.NETWORK_TYPE_BITMASK_GPRS; -    public static final int RAF_EDGE = TelephonyManager.NETWORK_TYPE_BITMASK_EDGE; -    public static final int RAF_IS95A = TelephonyManager.NETWORK_TYPE_BITMASK_CDMA; -    public static final int RAF_IS95B = TelephonyManager.NETWORK_TYPE_BITMASK_CDMA; -    public static final int RAF_1xRTT = TelephonyManager.NETWORK_TYPE_BITMASK_1xRTT; +    public static final int RAF_UNKNOWN = (int) TelephonyManager.NETWORK_TYPE_BITMASK_UNKNOWN; +    public static final int RAF_GSM = (int) TelephonyManager.NETWORK_TYPE_BITMASK_GSM; +    public static final int RAF_GPRS = (int) TelephonyManager.NETWORK_TYPE_BITMASK_GPRS; +    public static final int RAF_EDGE = (int) TelephonyManager.NETWORK_TYPE_BITMASK_EDGE; +    public static final int RAF_IS95A = (int) TelephonyManager.NETWORK_TYPE_BITMASK_CDMA; +    public static final int RAF_IS95B = (int) TelephonyManager.NETWORK_TYPE_BITMASK_CDMA; +    public static final int RAF_1xRTT = (int) TelephonyManager.NETWORK_TYPE_BITMASK_1xRTT;      // 3G -    public static final int RAF_EVDO_0 = TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_0; -    public static final int RAF_EVDO_A = TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_A; -    public static final int RAF_EVDO_B = TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_B; -    public static final int RAF_EHRPD = TelephonyManager.NETWORK_TYPE_BITMASK_EHRPD; -    public static final int RAF_HSUPA = TelephonyManager.NETWORK_TYPE_BITMASK_HSUPA; -    public static final int RAF_HSDPA = TelephonyManager.NETWORK_TYPE_BITMASK_HSDPA; -    public static final int RAF_HSPA = TelephonyManager.NETWORK_TYPE_BITMASK_HSPA; -    public static final int RAF_HSPAP = TelephonyManager.NETWORK_TYPE_BITMASK_HSPAP; -    public static final int RAF_UMTS = TelephonyManager.NETWORK_TYPE_BITMASK_UMTS; -    public static final int RAF_TD_SCDMA = TelephonyManager.NETWORK_TYPE_BITMASK_TD_SCDMA; +    public static final int RAF_EVDO_0 = (int) TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_0; +    public static final int RAF_EVDO_A = (int) TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_A; +    public static final int RAF_EVDO_B = (int) TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_B; +    public static final int RAF_EHRPD = (int) TelephonyManager.NETWORK_TYPE_BITMASK_EHRPD; +    public static final int RAF_HSUPA = (int) TelephonyManager.NETWORK_TYPE_BITMASK_HSUPA; +    public static final int RAF_HSDPA = (int) TelephonyManager.NETWORK_TYPE_BITMASK_HSDPA; +    public static final int RAF_HSPA = (int) TelephonyManager.NETWORK_TYPE_BITMASK_HSPA; +    public static final int RAF_HSPAP = (int) TelephonyManager.NETWORK_TYPE_BITMASK_HSPAP; +    public static final int RAF_UMTS = (int) TelephonyManager.NETWORK_TYPE_BITMASK_UMTS; +    public static final int RAF_TD_SCDMA = (int) TelephonyManager.NETWORK_TYPE_BITMASK_TD_SCDMA;      // 4G -    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 = (int) TelephonyManager.NETWORK_TYPE_BITMASK_LTE; +    public static final int RAF_LTE_CA = (int) TelephonyManager.NETWORK_TYPE_BITMASK_LTE_CA;      // 5G -    public static final int RAF_NR = TelephonyManager.NETWORK_TYPE_BITMASK_NR; +    public static final int RAF_NR = (int) TelephonyManager.NETWORK_TYPE_BITMASK_NR;      // Grouping of RAFs      // 2G @@ -147,20 +152,20 @@ public class RadioAccessFamily implements Parcelable {      /**       * Implement the Parcelable interface.       */ -    public static final Creator<RadioAccessFamily> CREATOR = -            new Creator<RadioAccessFamily>() { +    public static final Creator<android.telephony.RadioAccessFamily> CREATOR = +            new Creator<android.telephony.RadioAccessFamily>() {          @Override -        public RadioAccessFamily createFromParcel(Parcel in) { +        public android.telephony.RadioAccessFamily createFromParcel(Parcel in) {              int phoneId = in.readInt();              int radioAccessFamily = in.readInt(); -            return new RadioAccessFamily(phoneId, radioAccessFamily); +            return new android.telephony.RadioAccessFamily(phoneId, radioAccessFamily);          }          @Override -        public RadioAccessFamily[] newArray(int size) { -            return new RadioAccessFamily[size]; +        public android.telephony.RadioAccessFamily[] newArray(int size) { +            return new android.telephony.RadioAccessFamily[size];          }      }; @@ -391,76 +396,78 @@ public class RadioAccessFamily implements Parcelable {      }      /** -     * convert RAF from {@link ServiceState.RilRadioTechnology} bitmask to +     * convert RAF from {@link android.hardware.radio.V1_0.RadioAccessFamily} to       * {@link TelephonyManager.NetworkTypeBitMask}, the bitmask represented by -     * {@link TelephonyManager.NetworkType}. Reasons are {@link TelephonyManager.NetworkType} are -     * public while {@link ServiceState.RilRadioTechnology} are hidden. We -     * don't want to expose two sets of definition to public. +     * {@link TelephonyManager.NetworkType}.       * -     * @param raf bitmask represented by {@link ServiceState.RilRadioTechnology} +     * @param raf {@link android.hardware.radio.V1_0.RadioAccessFamily}       * @return {@link TelephonyManager.NetworkTypeBitMask}       */      public static int convertToNetworkTypeBitMask(int raf) {          int networkTypeRaf = 0; -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_GSM)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.GSM) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_GSM;          } -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_GPRS)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.GPRS) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_GPRS;          } -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_EDGE)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.EDGE) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EDGE;          }          // convert both IS95A/IS95B to CDMA as network mode doesn't support CDMA -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_IS95A)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.IS95A) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_CDMA;          } -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_IS95B)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.IS95B) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_CDMA;          } -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_1xRTT)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.ONE_X_RTT) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_1xRTT;          } -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_0)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.EVDO_0) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_0;          } -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_A)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.EVDO_A) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_A;          } -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_B)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.EVDO_B) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_B;          } -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_EHRPD)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.EHRPD) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EHRPD;          } -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_HSUPA)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.HSUPA) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_HSUPA;          } -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_HSDPA)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.HSDPA) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_HSDPA;          } -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_HSPA)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.HSPA) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_HSPA;          } -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_HSPAP)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.HSPAP) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_HSPAP;          } -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_UMTS)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.UMTS) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_UMTS;          } -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_TD_SCDMA)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.TD_SCDMA) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_TD_SCDMA;          } -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_LTE)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.LTE) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_LTE;          } -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_LTE_CA)) != 0) { +        if ((raf & android.hardware.radio.V1_0.RadioAccessFamily.LTE_CA) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_LTE_CA;          } -        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_NR)) != 0) { +        if ((raf & android.hardware.radio.V1_4.RadioAccessFamily.NR) != 0) {              networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_NR;          } +        // TODO: need hal definition +        if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_IWLAN)) != 0) { +            networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_IWLAN; +        }          return (networkTypeRaf == 0) ? TelephonyManager.NETWORK_TYPE_UNKNOWN : networkTypeRaf;      } diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 36450579c57b..aaf092c492e0 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -23,6 +23,7 @@ import static com.android.internal.util.Preconditions.checkNotNull;  import android.Manifest;  import android.annotation.CallbackExecutor;  import android.annotation.IntDef; +import android.annotation.LongDef;  import android.annotation.NonNull;  import android.annotation.Nullable;  import android.annotation.RequiresPermission; @@ -6539,17 +6540,17 @@ public class TelephonyManager {       * {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE READ_PRIVILEGED_PHONE_STATE}       * or that the calling app has carrier privileges (see {@link #hasCarrierPrivileges}).       * -     * @return a 32-bit bitmap. +     * @return The bitmap of preferred network types.       *       * @hide       */      @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)      @SystemApi -    public @NetworkTypeBitMask int getPreferredNetworkTypeBitmap() { +    public @NetworkTypeBitMask long getPreferredNetworkTypeBitmap() {          try {              ITelephony telephony = getITelephony();              if (telephony != null) { -                return RadioAccessFamily.getRafFromNetworkType( +                return (long) RadioAccessFamily.getRafFromNetworkType(                          telephony.getPreferredNetworkType(getSubId()));              }          } catch (RemoteException ex) { @@ -6784,18 +6785,19 @@ public class TelephonyManager {       * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} or that the calling       * app has carrier privileges (see {@link #hasCarrierPrivileges}).       * -     * @param networkTypeBitmap a 32-bit bitmap. +     * @param networkTypeBitmap The bitmap of preferred network types.       * @return true on success; false on any failure.       * @hide       */      @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)      @SystemApi -    public boolean setPreferredNetworkTypeBitmap(@NetworkTypeBitMask int networkTypeBitmap) { +    public boolean setPreferredNetworkTypeBitmap(@NetworkTypeBitMask long networkTypeBitmap) {          try {              ITelephony telephony = getITelephony();              if (telephony != null) {                  return telephony.setPreferredNetworkType( -                        getSubId(), RadioAccessFamily.getNetworkTypeFromRaf(networkTypeBitmap)); +                        getSubId(), RadioAccessFamily.getNetworkTypeFromRaf( +                                (int) networkTypeBitmap));              }          } catch (RemoteException ex) {              Rlog.e(TAG, "setPreferredNetworkType RemoteException", ex); @@ -9704,7 +9706,7 @@ public class TelephonyManager {      /** @hide */      @Retention(RetentionPolicy.SOURCE) -    @IntDef(flag = true, prefix = {"NETWORK_TYPE_BITMASK_"}, +    @LongDef(flag = true, prefix = {"NETWORK_TYPE_BITMASK_"},              value = {NETWORK_TYPE_BITMASK_UNKNOWN,                      NETWORK_TYPE_BITMASK_GSM,                      NETWORK_TYPE_BITMASK_GPRS, @@ -9733,118 +9735,125 @@ public class TelephonyManager {       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_UNKNOWN = (1 << NETWORK_TYPE_UNKNOWN); +    public static final long NETWORK_TYPE_BITMASK_UNKNOWN = 0L;      /**       * network type bitmask indicating the support of radio tech GSM.       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_GSM = (1 << NETWORK_TYPE_GSM); +    public static final long NETWORK_TYPE_BITMASK_GSM = (1 << (NETWORK_TYPE_GSM -1));      /**       * network type bitmask indicating the support of radio tech GPRS.       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_GPRS = (1 << NETWORK_TYPE_GPRS); +    public static final long NETWORK_TYPE_BITMASK_GPRS = (1 << (NETWORK_TYPE_GPRS -1));      /**       * network type bitmask indicating the support of radio tech EDGE.       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_EDGE = (1 << NETWORK_TYPE_EDGE); +    public static final long NETWORK_TYPE_BITMASK_EDGE = (1 << (NETWORK_TYPE_EDGE -1));      /**       * network type bitmask indicating the support of radio tech CDMA(IS95A/IS95B).       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_CDMA = (1 << NETWORK_TYPE_CDMA); +    public static final long NETWORK_TYPE_BITMASK_CDMA = (1 << (NETWORK_TYPE_CDMA -1));      /**       * network type bitmask indicating the support of radio tech 1xRTT.       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_1xRTT = (1 << NETWORK_TYPE_1xRTT); +    public static final long NETWORK_TYPE_BITMASK_1xRTT = (1 << (NETWORK_TYPE_1xRTT - 1));      // 3G      /**       * network type bitmask indicating the support of radio tech EVDO 0.       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_EVDO_0 = (1 << NETWORK_TYPE_EVDO_0); +    public static final long NETWORK_TYPE_BITMASK_EVDO_0 = (1 << (NETWORK_TYPE_EVDO_0 -1));      /**       * network type bitmask indicating the support of radio tech EVDO A.       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_EVDO_A = (1 << NETWORK_TYPE_EVDO_A); +    public static final long NETWORK_TYPE_BITMASK_EVDO_A = (1 << (NETWORK_TYPE_EVDO_A - 1));      /**       * network type bitmask indicating the support of radio tech EVDO B.       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_EVDO_B = (1 << NETWORK_TYPE_EVDO_B); +    public static final long NETWORK_TYPE_BITMASK_EVDO_B = (1 << (NETWORK_TYPE_EVDO_B -1));      /**       * network type bitmask indicating the support of radio tech EHRPD.       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_EHRPD = (1 << NETWORK_TYPE_EHRPD); +    public static final long NETWORK_TYPE_BITMASK_EHRPD = (1 << (NETWORK_TYPE_EHRPD -1));      /**       * network type bitmask indicating the support of radio tech HSUPA.       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_HSUPA = (1 << NETWORK_TYPE_HSUPA); +    public static final long NETWORK_TYPE_BITMASK_HSUPA = (1 << (NETWORK_TYPE_HSUPA -1));      /**       * network type bitmask indicating the support of radio tech HSDPA.       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_HSDPA = (1 << NETWORK_TYPE_HSDPA); +    public static final long NETWORK_TYPE_BITMASK_HSDPA = (1 << (NETWORK_TYPE_HSDPA -1));      /**       * network type bitmask indicating the support of radio tech HSPA.       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_HSPA = (1 << NETWORK_TYPE_HSPA); +    public static final long NETWORK_TYPE_BITMASK_HSPA = (1 << (NETWORK_TYPE_HSPA -1));      /**       * network type bitmask indicating the support of radio tech HSPAP.       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_HSPAP = (1 << NETWORK_TYPE_HSPAP); +    public static final long NETWORK_TYPE_BITMASK_HSPAP = (1 << (NETWORK_TYPE_HSPAP -1));      /**       * network type bitmask indicating the support of radio tech UMTS.       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_UMTS = (1 << NETWORK_TYPE_UMTS); +    public static final long NETWORK_TYPE_BITMASK_UMTS = (1 << (NETWORK_TYPE_UMTS -1));      /**       * network type bitmask indicating the support of radio tech TD_SCDMA.       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_TD_SCDMA = (1 << NETWORK_TYPE_TD_SCDMA); +    public static final long NETWORK_TYPE_BITMASK_TD_SCDMA = (1 << (NETWORK_TYPE_TD_SCDMA -1));      // 4G      /**       * network type bitmask indicating the support of radio tech LTE.       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_LTE = (1 << NETWORK_TYPE_LTE); +    public static final long NETWORK_TYPE_BITMASK_LTE = (1 << (NETWORK_TYPE_LTE -1));      /**       * network type bitmask indicating the support of radio tech LTE CA (carrier aggregation).       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_LTE_CA = (1 << NETWORK_TYPE_LTE_CA); +    public static final long NETWORK_TYPE_BITMASK_LTE_CA = (1 << (NETWORK_TYPE_LTE_CA -1));      /**       * network type bitmask indicating the support of radio tech NR(New Radio) 5G.       * @hide       */      @SystemApi -    public static final int NETWORK_TYPE_BITMASK_NR = (1 << NETWORK_TYPE_NR); +    public static final long NETWORK_TYPE_BITMASK_NR = (1 << (NETWORK_TYPE_NR -1)); + +    /** +     * network type bitmask indicating the support of radio tech IWLAN. +     * @hide +     */ +    @SystemApi +    public static final long NETWORK_TYPE_BITMASK_IWLAN = (1 << (NETWORK_TYPE_IWLAN -1));      /**       * @return Modem supported radio access family bitmask @@ -9855,11 +9864,11 @@ public class TelephonyManager {       */      @SystemApi      @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) -    public @NetworkTypeBitMask int getSupportedRadioAccessFamily() { +    public @NetworkTypeBitMask long getSupportedRadioAccessFamily() {          try {              ITelephony telephony = getITelephony();              if (telephony != null) { -                return telephony.getRadioAccessFamily(getSlotIndex(), getOpPackageName()); +                return (long) telephony.getRadioAccessFamily(getSlotIndex(), getOpPackageName());              } else {                  // This can happen when the ITelephony interface is not up yet.                  return NETWORK_TYPE_BITMASK_UNKNOWN;  |