Loading core/res/res/values/config_telephony.xml +0 −4 Original line number Diff line number Diff line Loading @@ -146,10 +146,6 @@ <bool name="config_enhanced_iwlan_handover_check">true</bool> <java-symbol type="bool" name="config_enhanced_iwlan_handover_check" /> <!-- Whether using the new SubscriptionManagerService or the old SubscriptionController --> <bool name="config_using_subscription_manager_service">true</bool> <java-symbol type="bool" name="config_using_subscription_manager_service" /> <!-- Whether asynchronously update the subscription database or not. Async mode increases the performance, but sync mode reduces the chance of database/cache out-of-sync. --> <bool name="config_subscription_database_async_update">true</bool> Loading telephony/OWNERS +0 −6 Original line number Diff line number Diff line Loading @@ -11,12 +11,6 @@ chinmayd@google.com amruthr@google.com sasindran@google.com # Temporarily reduced the owner during refactoring per-file SubscriptionManager.java=set noparent per-file SubscriptionManager.java=jackyu@google.com,amruthr@google.com per-file SubscriptionInfo.java=set noparent per-file SubscriptionInfo.java=jackyu@google.com,amruthr@google.com # Requiring TL ownership for new carrier config keys. per-file CarrierConfigManager.java=set noparent per-file CarrierConfigManager.java=amruthr@google.com,tgunn@google.com,rgreenwalt@google.com,satk@google.com telephony/common/com/android/internal/telephony/TelephonyPermissions.java +2 −2 Original line number Diff line number Diff line Loading @@ -331,8 +331,8 @@ public final class TelephonyPermissions { * Same as {@link #checkCallingOrSelfReadSubscriberIdentifiers(Context, int, String, String, * String)} except this allows an additional parameter reportFailure. Caller may not want to * report a failure when this is an internal/intermediate check, for example, * SubscriptionController calls this with an INVALID_SUBID to check if caller has the required * permissions to bypass carrier privilege checks. * SubscriptionManagerService calls this with an INVALID_SUBID to check if caller has the * required permissions to bypass carrier privilege checks. * @param reportFailure Indicates if failure should be reported. */ public static boolean checkCallingOrSelfReadSubscriberIdentifiers(Context context, int subId, Loading telephony/java/android/telephony/SubscriptionManager.java +16 −156 Original line number Diff line number Diff line Loading @@ -91,8 +91,7 @@ import java.util.function.Consumer; import java.util.stream.Collectors; /** * SubscriptionManager is the application interface to SubscriptionController * and provides information about the current Telephony Subscriptions. * Subscription manager provides the mobile subscription information. */ @SystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE) @RequiresFeature(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION) Loading @@ -119,13 +118,12 @@ public class SubscriptionManager { public static final int DEFAULT_SUBSCRIPTION_ID = Integer.MAX_VALUE; /** * Indicates the caller wants the default phone id. * Used in SubscriptionController and Phone but do we really need it??? * Indicates the default phone id. * @hide */ public static final int DEFAULT_PHONE_INDEX = Integer.MAX_VALUE; /** Indicates the caller wants the default slot id. NOT used remove? */ /** Indicates the default slot index. */ /** @hide */ public static final int DEFAULT_SIM_SLOT_INDEX = Integer.MAX_VALUE; Loading @@ -141,29 +139,10 @@ public class SubscriptionManager { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final Uri CONTENT_URI = SimInfo.CONTENT_URI; private static final String CACHE_KEY_DEFAULT_SUB_ID_PROPERTY = "cache_key.telephony.get_default_sub_id"; private static final String CACHE_KEY_DEFAULT_DATA_SUB_ID_PROPERTY = "cache_key.telephony.get_default_data_sub_id"; private static final String CACHE_KEY_DEFAULT_SMS_SUB_ID_PROPERTY = "cache_key.telephony.get_default_sms_sub_id"; private static final String CACHE_KEY_ACTIVE_DATA_SUB_ID_PROPERTY = "cache_key.telephony.get_active_data_sub_id"; private static final String CACHE_KEY_SLOT_INDEX_PROPERTY = "cache_key.telephony.get_slot_index"; /** The IPC cache key shared by all subscription manager service cacheable properties. */ private static final String CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY = "cache_key.telephony.subscription_manager_service"; /** The temporarily cache key to indicate whether subscription manager service is enabled. */ private static final String CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_ENABLED_PROPERTY = "cache_key.telephony.subscription_manager_service_enabled"; /** @hide */ public static final String GET_SIM_SPECIFIC_SETTINGS_METHOD_NAME = "getSimSpecificSettings"; Loading Loading @@ -273,83 +252,41 @@ public class SubscriptionManager { } } private static VoidPropertyInvalidatedCache<Integer> sDefaultSubIdCache = new VoidPropertyInvalidatedCache<>(ISub::getDefaultSubId, CACHE_KEY_DEFAULT_SUB_ID_PROPERTY, INVALID_SUBSCRIPTION_ID); private static VoidPropertyInvalidatedCache<Integer> sGetDefaultSubIdCache = new VoidPropertyInvalidatedCache<>(ISub::getDefaultSubId, CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY, INVALID_SUBSCRIPTION_ID); private static VoidPropertyInvalidatedCache<Integer> sDefaultDataSubIdCache = new VoidPropertyInvalidatedCache<>(ISub::getDefaultDataSubId, CACHE_KEY_DEFAULT_DATA_SUB_ID_PROPERTY, INVALID_SUBSCRIPTION_ID); private static VoidPropertyInvalidatedCache<Integer> sGetDefaultDataSubIdCache = new VoidPropertyInvalidatedCache<>(ISub::getDefaultDataSubId, CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY, INVALID_SUBSCRIPTION_ID); private static VoidPropertyInvalidatedCache<Integer> sDefaultSmsSubIdCache = new VoidPropertyInvalidatedCache<>(ISub::getDefaultSmsSubId, CACHE_KEY_DEFAULT_SMS_SUB_ID_PROPERTY, INVALID_SUBSCRIPTION_ID); private static VoidPropertyInvalidatedCache<Integer> sGetDefaultSmsSubIdCache = new VoidPropertyInvalidatedCache<>(ISub::getDefaultSmsSubId, CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY, INVALID_SUBSCRIPTION_ID); private static VoidPropertyInvalidatedCache<Integer> sActiveDataSubIdCache = new VoidPropertyInvalidatedCache<>(ISub::getActiveDataSubscriptionId, CACHE_KEY_ACTIVE_DATA_SUB_ID_PROPERTY, INVALID_SUBSCRIPTION_ID); private static VoidPropertyInvalidatedCache<Integer> sGetActiveDataSubscriptionIdCache = new VoidPropertyInvalidatedCache<>(ISub::getActiveDataSubscriptionId, CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY, INVALID_SUBSCRIPTION_ID); private static IntegerPropertyInvalidatedCache<Integer> sSlotIndexCache = new IntegerPropertyInvalidatedCache<>(ISub::getSlotIndex, CACHE_KEY_SLOT_INDEX_PROPERTY, INVALID_SIM_SLOT_INDEX); private static IntegerPropertyInvalidatedCache<Integer> sGetSlotIndexCache = new IntegerPropertyInvalidatedCache<>(ISub::getSlotIndex, CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY, INVALID_SIM_SLOT_INDEX); private static IntegerPropertyInvalidatedCache<Integer> sSubIdCache = new IntegerPropertyInvalidatedCache<>(ISub::getSubId, CACHE_KEY_SLOT_INDEX_PROPERTY, INVALID_SUBSCRIPTION_ID); private static IntegerPropertyInvalidatedCache<Integer> sGetSubIdCache = new IntegerPropertyInvalidatedCache<>(ISub::getSubId, CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY, INVALID_SUBSCRIPTION_ID); /** Cache depends on getDefaultSubId, so we use the defaultSubId cache key */ private static IntegerPropertyInvalidatedCache<Integer> sPhoneIdCache = new IntegerPropertyInvalidatedCache<>(ISub::getPhoneId, CACHE_KEY_DEFAULT_SUB_ID_PROPERTY, INVALID_PHONE_INDEX); private static IntegerPropertyInvalidatedCache<Integer> sGetPhoneIdCache = new IntegerPropertyInvalidatedCache<>(ISub::getPhoneId, CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY, INVALID_PHONE_INDEX); //TODO: Removed before U AOSP public release. private static VoidPropertyInvalidatedCache<Boolean> sIsSubscriptionManagerServiceEnabled = new VoidPropertyInvalidatedCache<>(ISub::isSubscriptionManagerServiceEnabled, CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_ENABLED_PROPERTY, false); /** * Generates a content {@link Uri} used to receive updates on simInfo change * on the given subscriptionId Loading Loading @@ -1455,17 +1392,6 @@ public class SubscriptionManager { mContext = context; } /** * @return {@code true} if the new subscription manager service is used. This is temporary and * will be removed before Android 14 release. * * @hide */ //TODO: Removed before U AOSP public release. public static boolean isSubscriptionManagerServiceEnabled() { return sIsSubscriptionManagerServiceEnabled.query(null); } private NetworkPolicyManager getNetworkPolicyManager() { return (NetworkPolicyManager) mContext .getSystemService(Context.NETWORK_POLICY_SERVICE); Loading Loading @@ -1520,7 +1446,7 @@ public class SubscriptionManager { + " listener=" + listener); } // We use the TelephonyRegistry as it runs in the system and thus is always // available. Where as SubscriptionController could crash and not be available // available. TelephonyRegistryManager telephonyRegistryManager = (TelephonyRegistryManager) mContext.getSystemService(Context.TELEPHONY_REGISTRY_SERVICE); if (telephonyRegistryManager != null) { Loading Loading @@ -1550,7 +1476,7 @@ public class SubscriptionManager { + " listener=" + listener); } // We use the TelephonyRegistry as it runs in the system and thus is always // available where as SubscriptionController could crash and not be available // available. TelephonyRegistryManager telephonyRegistryManager = (TelephonyRegistryManager) mContext.getSystemService(Context.TELEPHONY_REGISTRY_SERVICE); if (telephonyRegistryManager != null) { Loading Loading @@ -1608,7 +1534,7 @@ public class SubscriptionManager { } // We use the TelephonyRegistry as it runs in the system and thus is always // available where as SubscriptionController could crash and not be available // available. TelephonyRegistryManager telephonyRegistryManager = (TelephonyRegistryManager) mContext.getSystemService(Context.TELEPHONY_REGISTRY_SERVICE); if (telephonyRegistryManager != null) { Loading Loading @@ -2149,9 +2075,9 @@ public class SubscriptionManager { Log.e(LOG_TAG, "[removeSubscriptionInfoRecord]- ISub service is null"); return; } int result = iSub.removeSubInfo(uniqueId, subscriptionType); if (result < 0) { Log.e(LOG_TAG, "Removal of subscription didn't succeed: error = " + result); boolean result = iSub.removeSubInfo(uniqueId, subscriptionType); if (!result) { Log.e(LOG_TAG, "Removal of subscription didn't succeed"); } else { logd("successfully removed subscription"); } Loading Loading @@ -2236,8 +2162,7 @@ public class SubscriptionManager { * subscriptionId doesn't have an associated slot index. */ public static int getSlotIndex(int subscriptionId) { if (isSubscriptionManagerServiceEnabled()) return sGetSlotIndexCache.query(subscriptionId); return sSlotIndexCache.query(subscriptionId); return sGetSlotIndexCache.query(subscriptionId); } /** Loading Loading @@ -2294,15 +2219,13 @@ public class SubscriptionManager { return SubscriptionManager.INVALID_SUBSCRIPTION_ID; } if (isSubscriptionManagerServiceEnabled()) return sGetSubIdCache.query(slotIndex); return sSubIdCache.query(slotIndex); return sGetSubIdCache.query(slotIndex); } /** @hide */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) public static int getPhoneId(int subId) { if (isSubscriptionManagerServiceEnabled()) return sGetPhoneIdCache.query(subId); return sPhoneIdCache.query(subId); return sGetPhoneIdCache.query(subId); } private static void logd(String msg) { Loading @@ -2323,8 +2246,7 @@ public class SubscriptionManager { * @return the "system" default subscription id. */ public static int getDefaultSubscriptionId() { if (isSubscriptionManagerServiceEnabled()) return sGetDefaultSubIdCache.query(null); return sDefaultSubIdCache.query(null); return sGetDefaultSubIdCache.query(null); } /** Loading Loading @@ -2412,8 +2334,7 @@ public class SubscriptionManager { * @return the default SMS subscription Id. */ public static int getDefaultSmsSubscriptionId() { if (isSubscriptionManagerServiceEnabled()) return sGetDefaultSmsSubIdCache.query(null); return sDefaultSmsSubIdCache.query(null); return sGetDefaultSmsSubIdCache.query(null); } /** Loading Loading @@ -2447,8 +2368,7 @@ public class SubscriptionManager { * @return the default data subscription Id. */ public static int getDefaultDataSubscriptionId() { if (isSubscriptionManagerServiceEnabled()) return sGetDefaultDataSubIdCache.query(null); return sDefaultDataSubIdCache.query(null); return sGetDefaultDataSubIdCache.query(null); } /** Loading Loading @@ -3912,11 +3832,8 @@ public class SubscriptionManager { * @see TelephonyCallback.ActiveDataSubscriptionIdListener */ public static int getActiveDataSubscriptionId() { if (isSubscriptionManagerServiceEnabled()) { return sGetActiveDataSubscriptionIdCache.query(null); } return sActiveDataSubIdCache.query(null); } /** * Helper method that puts a subscription id on an intent with the constants: Loading @@ -3933,62 +3850,17 @@ public class SubscriptionManager { intent.putExtra(PhoneConstants.SUBSCRIPTION_KEY, subId); } /** @hide */ public static void invalidateDefaultSubIdCaches() { PropertyInvalidatedCache.invalidateCache(CACHE_KEY_DEFAULT_SUB_ID_PROPERTY); } /** @hide */ public static void invalidateDefaultDataSubIdCaches() { PropertyInvalidatedCache.invalidateCache(CACHE_KEY_DEFAULT_DATA_SUB_ID_PROPERTY); } /** @hide */ public static void invalidateDefaultSmsSubIdCaches() { PropertyInvalidatedCache.invalidateCache(CACHE_KEY_DEFAULT_SMS_SUB_ID_PROPERTY); } /** @hide */ public static void invalidateActiveDataSubIdCaches() { if (isSubscriptionManagerServiceEnabled()) { PropertyInvalidatedCache.invalidateCache( CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY); } else { PropertyInvalidatedCache.invalidateCache(CACHE_KEY_ACTIVE_DATA_SUB_ID_PROPERTY); } } /** @hide */ public static void invalidateSlotIndexCaches() { PropertyInvalidatedCache.invalidateCache(CACHE_KEY_SLOT_INDEX_PROPERTY); } /** @hide */ public static void invalidateSubscriptionManagerServiceCaches() { PropertyInvalidatedCache.invalidateCache(CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY); } /** @hide */ //TODO: Removed before U AOSP public release. public static void invalidateSubscriptionManagerServiceEnabledCaches() { PropertyInvalidatedCache.invalidateCache( CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_ENABLED_PROPERTY); } /** * Allows a test process to disable client-side caching operations. * * @hide */ public static void disableCaching() { sDefaultSubIdCache.disableLocal(); sDefaultDataSubIdCache.disableLocal(); sActiveDataSubIdCache.disableLocal(); sDefaultSmsSubIdCache.disableLocal(); sSlotIndexCache.disableLocal(); sSubIdCache.disableLocal(); sPhoneIdCache.disableLocal(); sGetDefaultSubIdCache.disableLocal(); sGetDefaultDataSubIdCache.disableLocal(); sGetActiveDataSubscriptionIdCache.disableLocal(); Loading @@ -3996,8 +3868,6 @@ public class SubscriptionManager { sGetSlotIndexCache.disableLocal(); sGetSubIdCache.disableLocal(); sGetPhoneIdCache.disableLocal(); sIsSubscriptionManagerServiceEnabled.disableLocal(); } /** Loading @@ -4005,14 +3875,6 @@ public class SubscriptionManager { * * @hide */ public static void clearCaches() { sDefaultSubIdCache.clear(); sDefaultDataSubIdCache.clear(); sActiveDataSubIdCache.clear(); sDefaultSmsSubIdCache.clear(); sSlotIndexCache.clear(); sSubIdCache.clear(); sPhoneIdCache.clear(); sGetDefaultSubIdCache.clear(); sGetDefaultDataSubIdCache.clear(); sGetActiveDataSubscriptionIdCache.clear(); Loading @@ -4020,8 +3882,6 @@ public class SubscriptionManager { sGetSlotIndexCache.clear(); sGetSubIdCache.clear(); sGetPhoneIdCache.clear(); sIsSubscriptionManagerServiceEnabled.clear(); } /** Loading telephony/java/com/android/internal/telephony/ISub.aidl +3 −10 Original line number Diff line number Diff line Loading @@ -129,9 +129,9 @@ interface ISub { * @param uniqueId This is the unique identifier for the subscription within the specific * subscription type. * @param subscriptionType the type of subscription to be removed * @return 0 if success, < 0 on error. * @return true if success, false on error. */ int removeSubInfo(String uniqueId, int subscriptionType); boolean removeSubInfo(String uniqueId, int subscriptionType); /** * Set SIM icon tint color by simInfo index Loading Loading @@ -260,7 +260,7 @@ interface ISub { int[] getActiveSubIdList(boolean visibleOnly); int setSubscriptionProperty(int subId, String propKey, String propValue); void setSubscriptionProperty(int subId, String propKey, String propValue); String getSubscriptionProperty(int subId, String propKey, String callingPackage, String callingFeatureId); Loading Loading @@ -353,13 +353,6 @@ interface ISub { */ List<SubscriptionInfo> getSubscriptionInfoListAssociatedWithUser(in UserHandle userHandle); /** * @return {@code true} if using SubscriptionManagerService instead of * SubscriptionController. */ //TODO: Removed before U AOSP public release. boolean isSubscriptionManagerServiceEnabled(); /** * Called during setup wizard restore flow to attempt to restore the backed up sim-specific * configs to device for all existing SIMs in the subscription database Loading Loading
core/res/res/values/config_telephony.xml +0 −4 Original line number Diff line number Diff line Loading @@ -146,10 +146,6 @@ <bool name="config_enhanced_iwlan_handover_check">true</bool> <java-symbol type="bool" name="config_enhanced_iwlan_handover_check" /> <!-- Whether using the new SubscriptionManagerService or the old SubscriptionController --> <bool name="config_using_subscription_manager_service">true</bool> <java-symbol type="bool" name="config_using_subscription_manager_service" /> <!-- Whether asynchronously update the subscription database or not. Async mode increases the performance, but sync mode reduces the chance of database/cache out-of-sync. --> <bool name="config_subscription_database_async_update">true</bool> Loading
telephony/OWNERS +0 −6 Original line number Diff line number Diff line Loading @@ -11,12 +11,6 @@ chinmayd@google.com amruthr@google.com sasindran@google.com # Temporarily reduced the owner during refactoring per-file SubscriptionManager.java=set noparent per-file SubscriptionManager.java=jackyu@google.com,amruthr@google.com per-file SubscriptionInfo.java=set noparent per-file SubscriptionInfo.java=jackyu@google.com,amruthr@google.com # Requiring TL ownership for new carrier config keys. per-file CarrierConfigManager.java=set noparent per-file CarrierConfigManager.java=amruthr@google.com,tgunn@google.com,rgreenwalt@google.com,satk@google.com
telephony/common/com/android/internal/telephony/TelephonyPermissions.java +2 −2 Original line number Diff line number Diff line Loading @@ -331,8 +331,8 @@ public final class TelephonyPermissions { * Same as {@link #checkCallingOrSelfReadSubscriberIdentifiers(Context, int, String, String, * String)} except this allows an additional parameter reportFailure. Caller may not want to * report a failure when this is an internal/intermediate check, for example, * SubscriptionController calls this with an INVALID_SUBID to check if caller has the required * permissions to bypass carrier privilege checks. * SubscriptionManagerService calls this with an INVALID_SUBID to check if caller has the * required permissions to bypass carrier privilege checks. * @param reportFailure Indicates if failure should be reported. */ public static boolean checkCallingOrSelfReadSubscriberIdentifiers(Context context, int subId, Loading
telephony/java/android/telephony/SubscriptionManager.java +16 −156 Original line number Diff line number Diff line Loading @@ -91,8 +91,7 @@ import java.util.function.Consumer; import java.util.stream.Collectors; /** * SubscriptionManager is the application interface to SubscriptionController * and provides information about the current Telephony Subscriptions. * Subscription manager provides the mobile subscription information. */ @SystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE) @RequiresFeature(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION) Loading @@ -119,13 +118,12 @@ public class SubscriptionManager { public static final int DEFAULT_SUBSCRIPTION_ID = Integer.MAX_VALUE; /** * Indicates the caller wants the default phone id. * Used in SubscriptionController and Phone but do we really need it??? * Indicates the default phone id. * @hide */ public static final int DEFAULT_PHONE_INDEX = Integer.MAX_VALUE; /** Indicates the caller wants the default slot id. NOT used remove? */ /** Indicates the default slot index. */ /** @hide */ public static final int DEFAULT_SIM_SLOT_INDEX = Integer.MAX_VALUE; Loading @@ -141,29 +139,10 @@ public class SubscriptionManager { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) public static final Uri CONTENT_URI = SimInfo.CONTENT_URI; private static final String CACHE_KEY_DEFAULT_SUB_ID_PROPERTY = "cache_key.telephony.get_default_sub_id"; private static final String CACHE_KEY_DEFAULT_DATA_SUB_ID_PROPERTY = "cache_key.telephony.get_default_data_sub_id"; private static final String CACHE_KEY_DEFAULT_SMS_SUB_ID_PROPERTY = "cache_key.telephony.get_default_sms_sub_id"; private static final String CACHE_KEY_ACTIVE_DATA_SUB_ID_PROPERTY = "cache_key.telephony.get_active_data_sub_id"; private static final String CACHE_KEY_SLOT_INDEX_PROPERTY = "cache_key.telephony.get_slot_index"; /** The IPC cache key shared by all subscription manager service cacheable properties. */ private static final String CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY = "cache_key.telephony.subscription_manager_service"; /** The temporarily cache key to indicate whether subscription manager service is enabled. */ private static final String CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_ENABLED_PROPERTY = "cache_key.telephony.subscription_manager_service_enabled"; /** @hide */ public static final String GET_SIM_SPECIFIC_SETTINGS_METHOD_NAME = "getSimSpecificSettings"; Loading Loading @@ -273,83 +252,41 @@ public class SubscriptionManager { } } private static VoidPropertyInvalidatedCache<Integer> sDefaultSubIdCache = new VoidPropertyInvalidatedCache<>(ISub::getDefaultSubId, CACHE_KEY_DEFAULT_SUB_ID_PROPERTY, INVALID_SUBSCRIPTION_ID); private static VoidPropertyInvalidatedCache<Integer> sGetDefaultSubIdCache = new VoidPropertyInvalidatedCache<>(ISub::getDefaultSubId, CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY, INVALID_SUBSCRIPTION_ID); private static VoidPropertyInvalidatedCache<Integer> sDefaultDataSubIdCache = new VoidPropertyInvalidatedCache<>(ISub::getDefaultDataSubId, CACHE_KEY_DEFAULT_DATA_SUB_ID_PROPERTY, INVALID_SUBSCRIPTION_ID); private static VoidPropertyInvalidatedCache<Integer> sGetDefaultDataSubIdCache = new VoidPropertyInvalidatedCache<>(ISub::getDefaultDataSubId, CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY, INVALID_SUBSCRIPTION_ID); private static VoidPropertyInvalidatedCache<Integer> sDefaultSmsSubIdCache = new VoidPropertyInvalidatedCache<>(ISub::getDefaultSmsSubId, CACHE_KEY_DEFAULT_SMS_SUB_ID_PROPERTY, INVALID_SUBSCRIPTION_ID); private static VoidPropertyInvalidatedCache<Integer> sGetDefaultSmsSubIdCache = new VoidPropertyInvalidatedCache<>(ISub::getDefaultSmsSubId, CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY, INVALID_SUBSCRIPTION_ID); private static VoidPropertyInvalidatedCache<Integer> sActiveDataSubIdCache = new VoidPropertyInvalidatedCache<>(ISub::getActiveDataSubscriptionId, CACHE_KEY_ACTIVE_DATA_SUB_ID_PROPERTY, INVALID_SUBSCRIPTION_ID); private static VoidPropertyInvalidatedCache<Integer> sGetActiveDataSubscriptionIdCache = new VoidPropertyInvalidatedCache<>(ISub::getActiveDataSubscriptionId, CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY, INVALID_SUBSCRIPTION_ID); private static IntegerPropertyInvalidatedCache<Integer> sSlotIndexCache = new IntegerPropertyInvalidatedCache<>(ISub::getSlotIndex, CACHE_KEY_SLOT_INDEX_PROPERTY, INVALID_SIM_SLOT_INDEX); private static IntegerPropertyInvalidatedCache<Integer> sGetSlotIndexCache = new IntegerPropertyInvalidatedCache<>(ISub::getSlotIndex, CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY, INVALID_SIM_SLOT_INDEX); private static IntegerPropertyInvalidatedCache<Integer> sSubIdCache = new IntegerPropertyInvalidatedCache<>(ISub::getSubId, CACHE_KEY_SLOT_INDEX_PROPERTY, INVALID_SUBSCRIPTION_ID); private static IntegerPropertyInvalidatedCache<Integer> sGetSubIdCache = new IntegerPropertyInvalidatedCache<>(ISub::getSubId, CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY, INVALID_SUBSCRIPTION_ID); /** Cache depends on getDefaultSubId, so we use the defaultSubId cache key */ private static IntegerPropertyInvalidatedCache<Integer> sPhoneIdCache = new IntegerPropertyInvalidatedCache<>(ISub::getPhoneId, CACHE_KEY_DEFAULT_SUB_ID_PROPERTY, INVALID_PHONE_INDEX); private static IntegerPropertyInvalidatedCache<Integer> sGetPhoneIdCache = new IntegerPropertyInvalidatedCache<>(ISub::getPhoneId, CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY, INVALID_PHONE_INDEX); //TODO: Removed before U AOSP public release. private static VoidPropertyInvalidatedCache<Boolean> sIsSubscriptionManagerServiceEnabled = new VoidPropertyInvalidatedCache<>(ISub::isSubscriptionManagerServiceEnabled, CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_ENABLED_PROPERTY, false); /** * Generates a content {@link Uri} used to receive updates on simInfo change * on the given subscriptionId Loading Loading @@ -1455,17 +1392,6 @@ public class SubscriptionManager { mContext = context; } /** * @return {@code true} if the new subscription manager service is used. This is temporary and * will be removed before Android 14 release. * * @hide */ //TODO: Removed before U AOSP public release. public static boolean isSubscriptionManagerServiceEnabled() { return sIsSubscriptionManagerServiceEnabled.query(null); } private NetworkPolicyManager getNetworkPolicyManager() { return (NetworkPolicyManager) mContext .getSystemService(Context.NETWORK_POLICY_SERVICE); Loading Loading @@ -1520,7 +1446,7 @@ public class SubscriptionManager { + " listener=" + listener); } // We use the TelephonyRegistry as it runs in the system and thus is always // available. Where as SubscriptionController could crash and not be available // available. TelephonyRegistryManager telephonyRegistryManager = (TelephonyRegistryManager) mContext.getSystemService(Context.TELEPHONY_REGISTRY_SERVICE); if (telephonyRegistryManager != null) { Loading Loading @@ -1550,7 +1476,7 @@ public class SubscriptionManager { + " listener=" + listener); } // We use the TelephonyRegistry as it runs in the system and thus is always // available where as SubscriptionController could crash and not be available // available. TelephonyRegistryManager telephonyRegistryManager = (TelephonyRegistryManager) mContext.getSystemService(Context.TELEPHONY_REGISTRY_SERVICE); if (telephonyRegistryManager != null) { Loading Loading @@ -1608,7 +1534,7 @@ public class SubscriptionManager { } // We use the TelephonyRegistry as it runs in the system and thus is always // available where as SubscriptionController could crash and not be available // available. TelephonyRegistryManager telephonyRegistryManager = (TelephonyRegistryManager) mContext.getSystemService(Context.TELEPHONY_REGISTRY_SERVICE); if (telephonyRegistryManager != null) { Loading Loading @@ -2149,9 +2075,9 @@ public class SubscriptionManager { Log.e(LOG_TAG, "[removeSubscriptionInfoRecord]- ISub service is null"); return; } int result = iSub.removeSubInfo(uniqueId, subscriptionType); if (result < 0) { Log.e(LOG_TAG, "Removal of subscription didn't succeed: error = " + result); boolean result = iSub.removeSubInfo(uniqueId, subscriptionType); if (!result) { Log.e(LOG_TAG, "Removal of subscription didn't succeed"); } else { logd("successfully removed subscription"); } Loading Loading @@ -2236,8 +2162,7 @@ public class SubscriptionManager { * subscriptionId doesn't have an associated slot index. */ public static int getSlotIndex(int subscriptionId) { if (isSubscriptionManagerServiceEnabled()) return sGetSlotIndexCache.query(subscriptionId); return sSlotIndexCache.query(subscriptionId); return sGetSlotIndexCache.query(subscriptionId); } /** Loading Loading @@ -2294,15 +2219,13 @@ public class SubscriptionManager { return SubscriptionManager.INVALID_SUBSCRIPTION_ID; } if (isSubscriptionManagerServiceEnabled()) return sGetSubIdCache.query(slotIndex); return sSubIdCache.query(slotIndex); return sGetSubIdCache.query(slotIndex); } /** @hide */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) public static int getPhoneId(int subId) { if (isSubscriptionManagerServiceEnabled()) return sGetPhoneIdCache.query(subId); return sPhoneIdCache.query(subId); return sGetPhoneIdCache.query(subId); } private static void logd(String msg) { Loading @@ -2323,8 +2246,7 @@ public class SubscriptionManager { * @return the "system" default subscription id. */ public static int getDefaultSubscriptionId() { if (isSubscriptionManagerServiceEnabled()) return sGetDefaultSubIdCache.query(null); return sDefaultSubIdCache.query(null); return sGetDefaultSubIdCache.query(null); } /** Loading Loading @@ -2412,8 +2334,7 @@ public class SubscriptionManager { * @return the default SMS subscription Id. */ public static int getDefaultSmsSubscriptionId() { if (isSubscriptionManagerServiceEnabled()) return sGetDefaultSmsSubIdCache.query(null); return sDefaultSmsSubIdCache.query(null); return sGetDefaultSmsSubIdCache.query(null); } /** Loading Loading @@ -2447,8 +2368,7 @@ public class SubscriptionManager { * @return the default data subscription Id. */ public static int getDefaultDataSubscriptionId() { if (isSubscriptionManagerServiceEnabled()) return sGetDefaultDataSubIdCache.query(null); return sDefaultDataSubIdCache.query(null); return sGetDefaultDataSubIdCache.query(null); } /** Loading Loading @@ -3912,11 +3832,8 @@ public class SubscriptionManager { * @see TelephonyCallback.ActiveDataSubscriptionIdListener */ public static int getActiveDataSubscriptionId() { if (isSubscriptionManagerServiceEnabled()) { return sGetActiveDataSubscriptionIdCache.query(null); } return sActiveDataSubIdCache.query(null); } /** * Helper method that puts a subscription id on an intent with the constants: Loading @@ -3933,62 +3850,17 @@ public class SubscriptionManager { intent.putExtra(PhoneConstants.SUBSCRIPTION_KEY, subId); } /** @hide */ public static void invalidateDefaultSubIdCaches() { PropertyInvalidatedCache.invalidateCache(CACHE_KEY_DEFAULT_SUB_ID_PROPERTY); } /** @hide */ public static void invalidateDefaultDataSubIdCaches() { PropertyInvalidatedCache.invalidateCache(CACHE_KEY_DEFAULT_DATA_SUB_ID_PROPERTY); } /** @hide */ public static void invalidateDefaultSmsSubIdCaches() { PropertyInvalidatedCache.invalidateCache(CACHE_KEY_DEFAULT_SMS_SUB_ID_PROPERTY); } /** @hide */ public static void invalidateActiveDataSubIdCaches() { if (isSubscriptionManagerServiceEnabled()) { PropertyInvalidatedCache.invalidateCache( CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY); } else { PropertyInvalidatedCache.invalidateCache(CACHE_KEY_ACTIVE_DATA_SUB_ID_PROPERTY); } } /** @hide */ public static void invalidateSlotIndexCaches() { PropertyInvalidatedCache.invalidateCache(CACHE_KEY_SLOT_INDEX_PROPERTY); } /** @hide */ public static void invalidateSubscriptionManagerServiceCaches() { PropertyInvalidatedCache.invalidateCache(CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_PROPERTY); } /** @hide */ //TODO: Removed before U AOSP public release. public static void invalidateSubscriptionManagerServiceEnabledCaches() { PropertyInvalidatedCache.invalidateCache( CACHE_KEY_SUBSCRIPTION_MANAGER_SERVICE_ENABLED_PROPERTY); } /** * Allows a test process to disable client-side caching operations. * * @hide */ public static void disableCaching() { sDefaultSubIdCache.disableLocal(); sDefaultDataSubIdCache.disableLocal(); sActiveDataSubIdCache.disableLocal(); sDefaultSmsSubIdCache.disableLocal(); sSlotIndexCache.disableLocal(); sSubIdCache.disableLocal(); sPhoneIdCache.disableLocal(); sGetDefaultSubIdCache.disableLocal(); sGetDefaultDataSubIdCache.disableLocal(); sGetActiveDataSubscriptionIdCache.disableLocal(); Loading @@ -3996,8 +3868,6 @@ public class SubscriptionManager { sGetSlotIndexCache.disableLocal(); sGetSubIdCache.disableLocal(); sGetPhoneIdCache.disableLocal(); sIsSubscriptionManagerServiceEnabled.disableLocal(); } /** Loading @@ -4005,14 +3875,6 @@ public class SubscriptionManager { * * @hide */ public static void clearCaches() { sDefaultSubIdCache.clear(); sDefaultDataSubIdCache.clear(); sActiveDataSubIdCache.clear(); sDefaultSmsSubIdCache.clear(); sSlotIndexCache.clear(); sSubIdCache.clear(); sPhoneIdCache.clear(); sGetDefaultSubIdCache.clear(); sGetDefaultDataSubIdCache.clear(); sGetActiveDataSubscriptionIdCache.clear(); Loading @@ -4020,8 +3882,6 @@ public class SubscriptionManager { sGetSlotIndexCache.clear(); sGetSubIdCache.clear(); sGetPhoneIdCache.clear(); sIsSubscriptionManagerServiceEnabled.clear(); } /** Loading
telephony/java/com/android/internal/telephony/ISub.aidl +3 −10 Original line number Diff line number Diff line Loading @@ -129,9 +129,9 @@ interface ISub { * @param uniqueId This is the unique identifier for the subscription within the specific * subscription type. * @param subscriptionType the type of subscription to be removed * @return 0 if success, < 0 on error. * @return true if success, false on error. */ int removeSubInfo(String uniqueId, int subscriptionType); boolean removeSubInfo(String uniqueId, int subscriptionType); /** * Set SIM icon tint color by simInfo index Loading Loading @@ -260,7 +260,7 @@ interface ISub { int[] getActiveSubIdList(boolean visibleOnly); int setSubscriptionProperty(int subId, String propKey, String propValue); void setSubscriptionProperty(int subId, String propKey, String propValue); String getSubscriptionProperty(int subId, String propKey, String callingPackage, String callingFeatureId); Loading Loading @@ -353,13 +353,6 @@ interface ISub { */ List<SubscriptionInfo> getSubscriptionInfoListAssociatedWithUser(in UserHandle userHandle); /** * @return {@code true} if using SubscriptionManagerService instead of * SubscriptionController. */ //TODO: Removed before U AOSP public release. boolean isSubscriptionManagerServiceEnabled(); /** * Called during setup wizard restore flow to attempt to restore the backed up sim-specific * configs to device for all existing SIMs in the subscription database Loading