Merge "Cache getDefaultDataSubscriptionId Binder calls" into rvc-dev am: f2f45653b4 am: b5ee33d74c
Change-Id: I5594137dc5b05c452b2286f378f52b9b111cb7e5
This commit is contained in:
committed by
Automerger Merge Worker
commit
6e07a5e269
@@ -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
|
||||
@@ -1875,6 +1874,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.
|
||||
*
|
||||
@@ -2025,6 +2040,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 {
|
||||
@@ -3300,6 +3319,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.
|
||||
*
|
||||
@@ -3307,5 +3331,6 @@ public class SubscriptionManager {
|
||||
*/
|
||||
public static void clearCaches() {
|
||||
sDefaultSubIdCache.clear();
|
||||
sDefaultDataSubIdCache.clear();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user