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

Commit bdc04234 authored by Collin Fijalkovich's avatar Collin Fijalkovich Committed by Automerger Merge Worker
Browse files

Merge "Cache getDefaultDataSubscriptionId Binder calls" into rvc-dev am: f2f45653

Change-Id: Icf7e26ed27bbc483af2fdd9d692e2691f913899d
parents 11c54a7a f2f45653
Loading
Loading
Loading
Loading
+43 −18
Original line number Diff line number Diff line
@@ -135,29 +135,28 @@ public class SubscriptionManager {
    public static final String CACHE_KEY_DEFAULT_SUB_ID_PROPERTY =
            "cache_key.telephony.get_default_sub_id";

    private static final int DEFAULT_SUB_ID_CACHE_SIZE = 1;
    /** @hide */
    public static final String CACHE_KEY_DEFAULT_DATA_SUB_ID_PROPERTY =
            "cache_key.telephony.get_default_data_sub_id";

    private static final int MAX_CACHE_SIZE = 4;

    private static PropertyInvalidatedCache<Void, Integer> sDefaultSubIdCache =
            new PropertyInvalidatedCache<Void, Integer>(
                    DEFAULT_SUB_ID_CACHE_SIZE,
                    CACHE_KEY_DEFAULT_SUB_ID_PROPERTY) {
                    MAX_CACHE_SIZE, CACHE_KEY_DEFAULT_SUB_ID_PROPERTY) {
            @Override
            protected Integer recompute(Void query) {
                    int subId = INVALID_SUBSCRIPTION_ID;
                return getDefaultSubscriptionIdInternal();
            }};

                    try {
                        ISub iSub = TelephonyManager.getSubscriptionService();
                        if (iSub != null) {
                            subId = iSub.getDefaultSubId();
                        }
                    } catch (RemoteException ex) {
                        // ignore it
                    }
    private static PropertyInvalidatedCache<Void, Integer> sDefaultDataSubIdCache =
            new PropertyInvalidatedCache<Void, Integer>(
                    MAX_CACHE_SIZE, CACHE_KEY_DEFAULT_DATA_SUB_ID_PROPERTY) {
            @Override
            protected Integer recompute(Void query) {
                return getDefaultDataSubscriptionIdInternal();
            }};

                    if (VDBG) logd("getDefaultSubId=" + subId);
                    return subId;
                }
            };
    /**
     * Generates a content {@link Uri} used to receive updates on simInfo change
     * on the given subscriptionId
@@ -1871,6 +1870,22 @@ public class SubscriptionManager {
        return sDefaultSubIdCache.query(null);
    }

    private static int getDefaultSubscriptionIdInternal() {
        int subId = INVALID_SUBSCRIPTION_ID;

        try {
            ISub iSub = TelephonyManager.getSubscriptionService();
            if (iSub != null) {
                subId = iSub.getDefaultSubId();
            }
        } catch (RemoteException ex) {
            // ignore it
        }

        if (VDBG) logd("getDefaultSubId=" + subId);
        return subId;
    }

    /**
     * Returns the system's default voice subscription id.
     *
@@ -2021,6 +2036,10 @@ public class SubscriptionManager {
     * @return the default data subscription Id.
     */
    public static int getDefaultDataSubscriptionId() {
        return sDefaultDataSubIdCache.query(null);
    }

    private static int getDefaultDataSubscriptionIdInternal() {
        int subId = INVALID_SUBSCRIPTION_ID;

        try {
@@ -3296,6 +3315,11 @@ public class SubscriptionManager {
        PropertyInvalidatedCache.invalidateCache(CACHE_KEY_DEFAULT_SUB_ID_PROPERTY);
    }

    /** @hide */
    public static void invalidateDefaultDataSubIdCaches() {
        PropertyInvalidatedCache.invalidateCache(CACHE_KEY_DEFAULT_DATA_SUB_ID_PROPERTY);
    }

    /**
     * Clears all process-local binder caches.
     *
@@ -3303,5 +3327,6 @@ public class SubscriptionManager {
     */
    public static void clearCaches() {
        sDefaultSubIdCache.clear();
        sDefaultDataSubIdCache.clear();
    }
}