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

Commit e1ae6540 authored by Ta-wei Yen's avatar Ta-wei Yen Committed by android-build-merger
Browse files

Merge "Add createForPhoneAccountHandle() and getServicetate() Respect...

Merge "Add createForPhoneAccountHandle() and getServicetate() Respect TelephonyManager's subId when listening to phone state" am: 0a3b6b70 am: 969a6eb2
am: c9698a5c

Change-Id: I35bbcf29868c1ecddcdbb0e536c6d2a92e4d90ca
parents e0ebb9ce c9698a5c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -37369,6 +37369,7 @@ package android.telephony {
  public class TelephonyManager {
    method public boolean canChangeDtmfToneLength();
    method public android.telephony.TelephonyManager createForPhoneAccountHandle(android.telecom.PhoneAccountHandle);
    method public android.telephony.TelephonyManager createForSubscriptionId(int);
    method public java.util.List<android.telephony.CellInfo> getAllCellInfo();
    method public int getCallState();
@@ -37391,6 +37392,7 @@ package android.telephony {
    method public int getNetworkType();
    method public int getPhoneCount();
    method public int getPhoneType();
    method public android.telephony.ServiceState getServiceState();
    method public java.lang.String getSimCountryIso();
    method public java.lang.String getSimOperator();
    method public java.lang.String getSimOperatorName();
+2 −0
Original line number Diff line number Diff line
@@ -40482,6 +40482,7 @@ package android.telephony {
    method public boolean canChangeDtmfToneLength();
    method public int checkCarrierPrivilegesForPackage(java.lang.String);
    method public int checkCarrierPrivilegesForPackageAnyPhone(java.lang.String);
    method public android.telephony.TelephonyManager createForPhoneAccountHandle(android.telecom.PhoneAccountHandle);
    method public android.telephony.TelephonyManager createForSubscriptionId(int);
    method public void dial(java.lang.String);
    method public boolean disableDataConnectivity();
@@ -40519,6 +40520,7 @@ package android.telephony {
    method public int getNetworkType();
    method public int getPhoneCount();
    method public int getPhoneType();
    method public android.telephony.ServiceState getServiceState();
    method public java.lang.String getSimCountryIso();
    method public java.lang.String getSimOperator();
    method public java.lang.String getSimOperatorName();
+2 −0
Original line number Diff line number Diff line
@@ -37451,6 +37451,7 @@ package android.telephony {
  public class TelephonyManager {
    method public boolean canChangeDtmfToneLength();
    method public android.telephony.TelephonyManager createForPhoneAccountHandle(android.telecom.PhoneAccountHandle);
    method public android.telephony.TelephonyManager createForSubscriptionId(int);
    method public java.util.List<android.telephony.CellInfo> getAllCellInfo();
    method public int getCallState();
@@ -37473,6 +37474,7 @@ package android.telephony {
    method public int getNetworkType();
    method public int getPhoneCount();
    method public int getPhoneType();
    method public android.telephony.ServiceState getServiceState();
    method public java.lang.String getSimCountryIso();
    method public java.lang.String getSimOperator();
    method public java.lang.String getSimOperatorName();
+5 −5
Original line number Diff line number Diff line
@@ -233,7 +233,7 @@ public class PhoneStateListener {
     * @hide
     */
    /** @hide */
    protected int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
    protected Integer mSubId;

    private final Handler mHandler;

@@ -242,7 +242,7 @@ public class PhoneStateListener {
     * This class requires Looper.myLooper() not return null.
     */
    public PhoneStateListener() {
        this(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID, Looper.myLooper());
        this(null, Looper.myLooper());
    }

    /**
@@ -251,7 +251,7 @@ public class PhoneStateListener {
     * @hide
     */
    public PhoneStateListener(Looper looper) {
        this(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID, looper);
        this(null, looper);
    }

    /**
@@ -260,7 +260,7 @@ public class PhoneStateListener {
     * own non-null Looper use PhoneStateListener(int subId, Looper looper) below.
     * @hide
     */
    public PhoneStateListener(int subId) {
    public PhoneStateListener(Integer subId) {
        this(subId, Looper.myLooper());
    }

@@ -269,7 +269,7 @@ public class PhoneStateListener {
     * and non-null Looper.
     * @hide
     */
    public PhoneStateListener(int subId, Looper looper) {
    public PhoneStateListener(Integer subId, Looper looper) {
        if (DBG) log("ctor: subId=" + subId + " looper=" + looper);
        mSubId = subId;
        mHandler = new Handler(looper) {
+45 −0
Original line number Diff line number Diff line
@@ -258,6 +258,22 @@ public class TelephonyManager {
      return new TelephonyManager(mContext, subId);
    }

    /**
     * Create a new TelephonyManager object pinned to the subscription ID associated with the given
     * phone account.
     *
     * @return a TelephonyManager that uses the given phone account for all calls, or {@code null}
     * if the phone account does not correspond to a valid subscription ID.
     */
    @Nullable
    public TelephonyManager createForPhoneAccountHandle(PhoneAccountHandle phoneAccountHandle) {
        int subId = getSubIdForPhoneAccountHandle(phoneAccountHandle);
        if (!SubscriptionManager.isValidSubscriptionId(subId)) {
            return null;
        }
        return new TelephonyManager(mContext, subId);
    }

    /** {@hide} */
    public boolean isMultiSimEnabled() {
        return (multiSimConfig.equals("dsds") || multiSimConfig.equals("dsda") ||
@@ -2991,6 +3007,12 @@ public class TelephonyManager {
        if (mContext == null) return;
        try {
            Boolean notifyNow = (getITelephony() != null);
            // If the listener has not explicitly set the subId (for example, created with the
            // default constructor), replace the subId so it will listen to the account the
            // telephony manager is created with.
            if (listener.mSubId == null) {
                listener.mSubId = mSubId;
            }
            sRegistry.listenForSubscriber(listener.mSubId, getOpPackageName(),
                    listener.callback, events, notifyNow);
        } catch (RemoteException ex) {
@@ -5354,6 +5376,19 @@ public class TelephonyManager {
        return retval;
    }

    private int getSubIdForPhoneAccountHandle(PhoneAccountHandle phoneAccountHandle) {
        int retval = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
        try {
            ITelecomService service = getTelecomService();
            if (service != null) {
                retval = getSubIdForPhoneAccount(service.getPhoneAccount(phoneAccountHandle));
            }
        } catch (RemoteException e) {
        }

        return retval;
    }

    /**
     * Resets telephony manager settings back to factory defaults.
     *
@@ -5402,6 +5437,16 @@ public class TelephonyManager {
        result.send(0, null);
    }

    /**
     * Returns the current {@link ServiceState} information.
     *
     * <p>Requires Permission:
     *   {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
     */
    public ServiceState getServiceState() {
        return getServiceStateForSubscriber(getSubId());
    }

    /**
     * Returns the service state information on specified subscription. Callers require
     * either READ_PRIVILEGED_PHONE_STATE or READ_PHONE_STATE to retrieve the information.