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

Commit 7c8b1684 authored by Nazanin's avatar Nazanin
Browse files

Use cached SubscriptionInfo from active subInfos, so that for each carrierPrivilege

permission check we are not making a db query, therefore reducing race
condition

Bug: 151513073
Test: checked phone logs,and atest FrameworksTelephonyTests
Change-Id: I476cff11c216f4177d208e9c91d06f351dcd5ec6
Merged-In: I476cff11c216f4177d208e9c91d06f351dcd5ec6
parent 00754008
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -572,6 +572,19 @@ public class SubscriptionController extends ISub.Stub {
     * @hide
     */
    public SubscriptionInfo getSubscriptionInfo(int subId) {
        // check cache for active subscriptions first, before querying db
        for (SubscriptionInfo subInfo : mCacheActiveSubInfoList) {
            if (subInfo.getSubscriptionId() == subId) {
                return subInfo;
            }
        }
        // check cache for opportunistic subscriptions too, before querying db
        for (SubscriptionInfo subInfo : mCacheOpportunisticSubInfoList) {
            if (subInfo.getSubscriptionId() == subId) {
                return subInfo;
            }
        }

        List<SubscriptionInfo> subInfoList = getSubInfo(
                SubscriptionManager.UNIQUE_KEY_SUBSCRIPTION_ID + "=" + subId, null);
        if (subInfoList == null || subInfoList.isEmpty()) return null;