aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java b/src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java
index 373df340a..24c0f2d3a 100644
--- a/src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java
+++ b/src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java
@@ -365,7 +365,7 @@ public class SubscriptionInfoUpdater extends Handler {
case EVENT_UPDATE_INSERTED_SIM_COUNT:
logd("EVENT_UPDATE_INSERTED_SIM_COUNT: locked sims: " + mLockedSims.cardinality());
if (isAllIccIdQueryDone() && !hasMessages(EVENT_UPDATE_INSERTED_SIM_COUNT)) {
- updateSubscriptionInfoByIccId();
+ updateSubscriptionInfoByIccIdInternal(false);
logd("update inserted sim count, current sim count: " + mCurrentSimCount);
}
break;
@@ -415,7 +415,7 @@ public class SubscriptionInfoUpdater extends Handler {
private void update(int slotId) {
sendMessageDelayed(obtainMessage(EVENT_UPDATE_INSERTED_SIM_COUNT, slotId), DELAY_MILLIS);
if (isAllIccIdQueryDone()) {
- updateSubscriptionInfoByIccId();
+ updateSubscriptionInfoByIccIdInternal(false);
}
}
@@ -614,10 +614,14 @@ public class SubscriptionInfoUpdater extends Handler {
* only what the current list contains.
*/
synchronized protected void updateSubscriptionInfoByIccId() {
+ updateSubscriptionInfoByIccIdInternal(true);
+ }
+
+ synchronized private void updateSubscriptionInfoByIccIdInternal(boolean forceUpdate) {
logd("updateSubscriptionInfoByIccId:+ Start");
// only update external state if we have no pending updates pending
- boolean update = !hasMessages(EVENT_UPDATE_INSERTED_SIM_COUNT);
+ boolean update = !hasMessages(EVENT_UPDATE_INSERTED_SIM_COUNT) || forceUpdate;
if (update) {
mSubscriptionManager.clearSubscriptionInfo();
}