diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java index 5f90077640ec..f6165f666c89 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java @@ -316,11 +316,23 @@ public class StatusBarSignalPolicy implements NetworkControllerImpl.SignalCallba mIconController.removeAllIconsForSlot(mSlotMobile); mMobileStates.clear(); + List<NoCallingIconState> noCallingStates = new ArrayList<NoCallingIconState>(); + noCallingStates.addAll(mNoCallingStates); mNoCallingStates.clear(); final int n = subs.size(); for (int i = 0; i < n; i++) { mMobileStates.add(new MobileIconState(subs.get(i).getSubscriptionId())); - mNoCallingStates.add(new NoCallingIconState(subs.get(i).getSubscriptionId())); + boolean isNewSub = true; + for (NoCallingIconState state : noCallingStates) { + if (state.subId == subs.get(i).getSubscriptionId()) { + mNoCallingStates.add(state); + isNewSub = false; + break; + } + } + if (isNewSub) { + mNoCallingStates.add(new NoCallingIconState(subs.get(i).getSubscriptionId())); + } } } |