From f1e913b20b038b5c0521400961ca8d8d6e359638 Mon Sep 17 00:00:00 2001 From: Chen Xu Date: Thu, 22 Jul 2021 19:21:07 -0700 Subject: check sim state to avoid cachining the wrong resources before sim loaded based on the latest design, subId can be valid earlier than mcc mnc is known to telephon. check if sim is loaded to avoid caching the wrong resources. Bug: 183480331 Test: Manual Change-Id: Id696bfd820a31ad666a91e0ebf0ace2d5d41e833 --- src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java') diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java b/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java index 3a47428cc..b1e8f6829 100644 --- a/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java +++ b/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java @@ -33,6 +33,7 @@ import android.os.UserManager; import android.os.Vibrator; import android.telephony.CarrierConfigManager; import android.telephony.SubscriptionManager; +import android.telephony.TelephonyManager; import android.util.Log; import android.view.MenuItem; import android.widget.Switch; @@ -847,8 +848,14 @@ public class CellBroadcastSettings extends CollapsingToolbarBaseActivity { * @return The resource */ public static @NonNull Resources getResources(@NonNull Context context, int subId) { + // based on the latest design, subId can be valid earlier than mcc mnc is known to telephony + // check if sim is loaded to avoid caching the wrong resources. + TelephonyManager tm = context.getSystemService(TelephonyManager.class); + boolean isSimLoaded = tm.getSimApplicationState(SubscriptionManager.getSlotIndex(subId)) + == TelephonyManager.SIM_STATE_LOADED; if (subId == SubscriptionManager.DEFAULT_SUBSCRIPTION_ID - || !SubscriptionManager.isValidSubscriptionId(subId) || !sUseResourcesForSubId) { + || !SubscriptionManager.isValidSubscriptionId(subId) || !sUseResourcesForSubId + || !isSimLoaded) { return context.getResources(); } -- cgit v1.2.3