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

Commit b46a2f52 authored by Collin Fijalkovich's avatar Collin Fijalkovich Committed by Android (Google) Code Review
Browse files

Merge "Cache getDefaultSmsSubscriptionId Binder calls"

parents a5167b99 b2f0659c
Loading
Loading
Loading
Loading
+19 −30
Original line number Diff line number Diff line
@@ -140,6 +140,10 @@ public class SubscriptionManager {
    public static final String CACHE_KEY_DEFAULT_DATA_SUB_ID_PROPERTY =
            "cache_key.telephony.get_default_data_sub_id";

    /** @hide */
    public static final String CACHE_KEY_DEFAULT_SMS_SUB_ID_PROPERTY =
            "cache_key.telephony.get_default_sms_sub_id";

    /** @hide */
    public static final String CACHE_KEY_ACTIVE_DATA_SUB_ID_PROPERTY =
            "cache_key.telephony.get_active_data_sub_id";
@@ -190,13 +194,15 @@ public class SubscriptionManager {
                    CACHE_KEY_DEFAULT_DATA_SUB_ID_PROPERTY,
                    INVALID_SUBSCRIPTION_ID);

    private static PropertyInvalidatedCache<Void, Integer> sDefaultSmsSubIdCache =
            new SubscriptionPropertyInvalidatedCache<>(ISub::getDefaultSmsSubId,
                    CACHE_KEY_DEFAULT_SMS_SUB_ID_PROPERTY,
                    INVALID_SUBSCRIPTION_ID);

    private static PropertyInvalidatedCache<Void, Integer> sActiveDataSubIdCache =
            new PropertyInvalidatedCache<Void, Integer>(
                    MAX_CACHE_SIZE, CACHE_KEY_ACTIVE_DATA_SUB_ID_PROPERTY) {
            @Override
            protected Integer recompute(Void query) {
                return getActiveDataSubscriptionIdInternal();
            }};
            new SubscriptionPropertyInvalidatedCache<>(ISub::getActiveDataSubscriptionId,
                    CACHE_KEY_ACTIVE_DATA_SUB_ID_PROPERTY,
                    INVALID_SUBSCRIPTION_ID);

    /**
     * Generates a content {@link Uri} used to receive updates on simInfo change
@@ -2001,19 +2007,7 @@ public class SubscriptionManager {
     * @return the default SMS subscription Id.
     */
    public static int getDefaultSmsSubscriptionId() {
        int subId = INVALID_SUBSCRIPTION_ID;

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

        if (VDBG) logd("getDefaultSmsSubscriptionId, sub id = " + subId);
        return subId;
        return sDefaultSmsSubIdCache.query(null);
    }

    /**
@@ -3301,17 +3295,6 @@ public class SubscriptionManager {
        return sActiveDataSubIdCache.query(null);
    }

    private static int getActiveDataSubscriptionIdInternal() {
        try {
            ISub iSub = TelephonyManager.getSubscriptionService();
            if (iSub != null) {
                return iSub.getActiveDataSubscriptionId();
            }
        } catch (RemoteException ex) {
        }
        return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
    }

    /**
     * Helper method that puts a subscription id on an intent with the constants:
     * PhoneConstant.SUBSCRIPTION_KEY and SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX.
@@ -3337,6 +3320,11 @@ public class SubscriptionManager {
        PropertyInvalidatedCache.invalidateCache(CACHE_KEY_DEFAULT_DATA_SUB_ID_PROPERTY);
    }

    /** @hide */
    public static void invalidateDefaultSmsSubIdCaches() {
        PropertyInvalidatedCache.invalidateCache(CACHE_KEY_DEFAULT_SMS_SUB_ID_PROPERTY);
    }

    /** @hide */
    public static void invalidateActiveDataSubIdCaches() {
        PropertyInvalidatedCache.invalidateCache(CACHE_KEY_ACTIVE_DATA_SUB_ID_PROPERTY);
@@ -3351,5 +3339,6 @@ public class SubscriptionManager {
        sDefaultSubIdCache.disableLocal();
        sDefaultDataSubIdCache.disableLocal();
        sActiveDataSubIdCache.disableLocal();
        sDefaultSmsSubIdCache.disableLocal();
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -13104,6 +13104,7 @@ public class TelephonyManager {
                SubscriptionManager.invalidateDefaultSubIdCaches();
                SubscriptionManager.invalidateDefaultDataSubIdCaches();
                SubscriptionManager.invalidateActiveDataSubIdCaches();
                SubscriptionManager.invalidateDefaultSmsSubIdCaches();
            }
            if (sISms != null) {
                sISms.asBinder().unlinkToDeath(sServiceDeath, 0);