Merge "Cache getDefaultDataSubscriptionId Binder calls" into rvc-dev

This commit is contained in:
Collin Fijalkovich
2020-04-28 16:23:41 +00:00
committed by Android (Google) Code Review

View File

@@ -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) {
@Override
protected Integer recompute(Void query) {
int subId = INVALID_SUBSCRIPTION_ID;
MAX_CACHE_SIZE, CACHE_KEY_DEFAULT_SUB_ID_PROPERTY) {
@Override
protected Integer recompute(Void query) {
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();
}
}