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

Change-Id: Icf7e26ed27bbc483af2fdd9d692e2691f913899d
This commit is contained in:
Collin Fijalkovich
2020-04-28 16:26:34 +00:00
committed by Automerger Merge Worker

View File

@@ -135,29 +135,28 @@ public class SubscriptionManager {
public static final String CACHE_KEY_DEFAULT_SUB_ID_PROPERTY = public static final String CACHE_KEY_DEFAULT_SUB_ID_PROPERTY =
"cache_key.telephony.get_default_sub_id"; "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 = private static PropertyInvalidatedCache<Void, Integer> sDefaultSubIdCache =
new PropertyInvalidatedCache<Void, Integer>( new PropertyInvalidatedCache<Void, Integer>(
DEFAULT_SUB_ID_CACHE_SIZE, MAX_CACHE_SIZE, CACHE_KEY_DEFAULT_SUB_ID_PROPERTY) {
CACHE_KEY_DEFAULT_SUB_ID_PROPERTY) { @Override
@Override protected Integer recompute(Void query) {
protected Integer recompute(Void query) { return getDefaultSubscriptionIdInternal();
int subId = INVALID_SUBSCRIPTION_ID; }};
try { private static PropertyInvalidatedCache<Void, Integer> sDefaultDataSubIdCache =
ISub iSub = TelephonyManager.getSubscriptionService(); new PropertyInvalidatedCache<Void, Integer>(
if (iSub != null) { MAX_CACHE_SIZE, CACHE_KEY_DEFAULT_DATA_SUB_ID_PROPERTY) {
subId = iSub.getDefaultSubId(); @Override
} protected Integer recompute(Void query) {
} catch (RemoteException ex) { return getDefaultDataSubscriptionIdInternal();
// ignore it }};
}
if (VDBG) logd("getDefaultSubId=" + subId);
return subId;
}
};
/** /**
* Generates a content {@link Uri} used to receive updates on simInfo change * Generates a content {@link Uri} used to receive updates on simInfo change
* on the given subscriptionId * on the given subscriptionId
@@ -1871,6 +1870,22 @@ public class SubscriptionManager {
return sDefaultSubIdCache.query(null); 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. * Returns the system's default voice subscription id.
* *
@@ -2021,6 +2036,10 @@ public class SubscriptionManager {
* @return the default data subscription Id. * @return the default data subscription Id.
*/ */
public static int getDefaultDataSubscriptionId() { public static int getDefaultDataSubscriptionId() {
return sDefaultDataSubIdCache.query(null);
}
private static int getDefaultDataSubscriptionIdInternal() {
int subId = INVALID_SUBSCRIPTION_ID; int subId = INVALID_SUBSCRIPTION_ID;
try { try {
@@ -3296,6 +3315,11 @@ public class SubscriptionManager {
PropertyInvalidatedCache.invalidateCache(CACHE_KEY_DEFAULT_SUB_ID_PROPERTY); 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. * Clears all process-local binder caches.
* *
@@ -3303,5 +3327,6 @@ public class SubscriptionManager {
*/ */
public static void clearCaches() { public static void clearCaches() {
sDefaultSubIdCache.clear(); sDefaultSubIdCache.clear();
sDefaultDataSubIdCache.clear();
} }
} }