diff options
-rw-r--r-- | src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java | 10 |
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(); } |