Cache getActiveDataSubscriptionId Binder calls am: 7d7ce5135c
Change-Id: I6e67e5840afa5e60fa6409e1c9013ee4cad80f99
This commit is contained in:
committed by
Automerger Merge Worker
commit
a23075f363
@@ -139,6 +139,10 @@ public class SubscriptionManager {
|
||||
public static final String CACHE_KEY_DEFAULT_DATA_SUB_ID_PROPERTY =
|
||||
"cache_key.telephony.get_default_data_sub_id";
|
||||
|
||||
/** @hide */
|
||||
public static final String CACHE_KEY_ACTIVE_DATA_SUB_ID_PROPERTY =
|
||||
"cache_key.telephony.get_active_data_sub_id";
|
||||
|
||||
private static final int MAX_CACHE_SIZE = 4;
|
||||
|
||||
private static PropertyInvalidatedCache<Void, Integer> sDefaultSubIdCache =
|
||||
@@ -157,6 +161,14 @@ public class SubscriptionManager {
|
||||
return getDefaultDataSubscriptionIdInternal();
|
||||
}};
|
||||
|
||||
private static PropertyInvalidatedCache<Void, Integer> sActiveDataSubIdCache =
|
||||
new PropertyInvalidatedCache<Void, Integer>(
|
||||
MAX_CACHE_SIZE, CACHE_KEY_ACTIVE_DATA_SUB_ID_PROPERTY) {
|
||||
@Override
|
||||
protected Integer recompute(Void query) {
|
||||
return getActiveDataSubscriptionIdInternal();
|
||||
}};
|
||||
|
||||
/**
|
||||
* Generates a content {@link Uri} used to receive updates on simInfo change
|
||||
* on the given subscriptionId
|
||||
@@ -3285,6 +3297,10 @@ public class SubscriptionManager {
|
||||
* SubscriptionManager.INVALID_SUBSCRIPTION_ID if not.
|
||||
*/
|
||||
public static int getActiveDataSubscriptionId() {
|
||||
return sActiveDataSubIdCache.query(null);
|
||||
}
|
||||
|
||||
private static int getActiveDataSubscriptionIdInternal() {
|
||||
try {
|
||||
ISub iSub = TelephonyManager.getSubscriptionService();
|
||||
if (iSub != null) {
|
||||
@@ -3320,6 +3336,11 @@ public class SubscriptionManager {
|
||||
PropertyInvalidatedCache.invalidateCache(CACHE_KEY_DEFAULT_DATA_SUB_ID_PROPERTY);
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
public static void invalidateActiveDataSubIdCaches() {
|
||||
PropertyInvalidatedCache.invalidateCache(CACHE_KEY_ACTIVE_DATA_SUB_ID_PROPERTY);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears all process-local binder caches.
|
||||
*
|
||||
@@ -3328,5 +3349,17 @@ public class SubscriptionManager {
|
||||
public static void clearCaches() {
|
||||
sDefaultSubIdCache.clear();
|
||||
sDefaultDataSubIdCache.clear();
|
||||
sActiveDataSubIdCache.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* Allows a test process to disable client-side caching operations.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public static void disableCaching() {
|
||||
sDefaultSubIdCache.disableLocal();
|
||||
sDefaultDataSubIdCache.disableLocal();
|
||||
sActiveDataSubIdCache.disableLocal();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user