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

Commit e0215a70 authored by Nazanin Bakhshi's avatar Nazanin Bakhshi
Browse files

add getPreferredDataSubId to SubscriptionManager

and rename setPreferredData -> serPreferredDataSubId

Bug: 117833883
Test: sanity
Change-Id: I67b18f1ef450c3d9e5615b3d2ec8a53a0691d7af
Merged-In: I67b18f1ef450c3d9e5615b3d2ec8a53a0691d7af
parent c83e3731
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -296,7 +296,7 @@ public class PhoneStateListener {

    /**
     *  Listen for changes to preferred data subId.
     *  See {@link SubscriptionManager#setPreferredData(int)}
     *  See {@link SubscriptionManager#setPreferredDataSubId(int)}
     *  for more details.
     *
     *  @see #onPreferredDataSubIdChanged
+33 −4
Original line number Diff line number Diff line
@@ -2405,10 +2405,39 @@ public class SubscriptionManager {
     *
     */
    @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
    public void setPreferredData(int subId) {
        if (VDBG) logd("[setPreferredData]+ subId:" + subId);
        setSubscriptionPropertyHelper(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID,
                "setPreferredData", (iSub)-> iSub.setPreferredData(subId));
    public void setPreferredDataSubscriptionId(int subId) {
        if (VDBG) logd("[setPreferredDataSubscriptionId]+ subId:" + subId);
        setSubscriptionPropertyHelper(DEFAULT_SUBSCRIPTION_ID, "setPreferredDataSubscriptionId",
                (iSub)-> iSub.setPreferredDataSubscriptionId(subId));
    }

    /**
     * Get which subscription is preferred for cellular data.
     * It's also usually the subscription we set up internet connection on.
     *
     * PreferredData overwrites user setting of default data subscription. And it's used
     * by AlternativeNetworkService or carrier apps to switch primary and CBRS
     * subscription dynamically in multi-SIM devices.
     *
     * @return preferred subscription id for cellular data. {@link DEFAULT_SUBSCRIPTION_ID} if
     * there's no prefered subscription.
     *
     * @hide
     *
     */
    @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
    public int getPreferredDataSubscriptionId() {
        int preferredSubId = SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;
        try {
            ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub"));
            if (iSub != null) {
                preferredSubId = iSub.getPreferredDataSubscriptionId();
            }
        } catch (RemoteException ex) {
            // ignore it
        }

        return preferredSubId;
    }

    /**
+5 −4
Original line number Diff line number Diff line
@@ -9738,10 +9738,11 @@ public class TelephonyManager {
        try {
            IOns iOpportunisticNetworkService = getIOns();
            if (iOpportunisticNetworkService != null) {
                return iOpportunisticNetworkService.setPreferredData(subId, pkgForDebug);
                return iOpportunisticNetworkService
                        .setPreferredDataSubscriptionId(subId, pkgForDebug);
            }
        } catch (RemoteException ex) {
            Rlog.e(TAG, "setPreferredData RemoteException", ex);
            Rlog.e(TAG, "setPreferredDataSubscriptionId RemoteException", ex);
        }
        return false;
    }
@@ -9762,10 +9763,10 @@ public class TelephonyManager {
        try {
            IOns iOpportunisticNetworkService = getIOns();
            if (iOpportunisticNetworkService != null) {
                subId = iOpportunisticNetworkService.getPreferredData(pkgForDebug);
                subId = iOpportunisticNetworkService.getPreferredDataSubscriptionId(pkgForDebug);
            }
        } catch (RemoteException ex) {
            Rlog.e(TAG, "getPreferredData RemoteException", ex);
            Rlog.e(TAG, "getPreferredDataSubscriptionId RemoteException", ex);
        }
        return subId;
    }
+2 −2
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@ interface IOns {
     * @return true if request is accepted, else false.
     *
     */
    boolean setPreferredData(int subId, String callingPackage);
    boolean setPreferredDataSubscriptionId(int subId, String callingPackage);

    /**
     * Get preferred opportunistic data subscription Id
@@ -78,7 +78,7 @@ interface IOns {
     * subscription id
     *
     */
    int getPreferredData(String callingPackage);
    int getPreferredDataSubscriptionId(String callingPackage);

    /**
     * Update availability of a list of networks in the current location.
+9 −1
Original line number Diff line number Diff line
@@ -200,7 +200,15 @@ interface ISub {
     * @hide
     *
     */
    int setPreferredData(int subId);
    int setPreferredDataSubscriptionId(int subId);

    /**
     * Get which subscription is preferred for cellular data.
     *
     * @hide
     *
     */
    int getPreferredDataSubscriptionId();

    /**
     * Get User downloaded Profiles.