Merge "Cache getDefaultDataSubscriptionId Binder calls" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f2f45653b4
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user