summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorJason Monk <jmonk@google.com>2015-06-17 12:52:43 -0400
committerJason Monk <jmonk@google.com>2015-06-17 12:52:43 -0400
commitf535cf0413ef9b9f36a2fe4336b35abe241a97d9 (patch)
treeb425cd3fee5a4581092f6dac7a0e26f9e98a6679 /packages
parentf858f7034c911c1a4dc45daa6e80ee0f9925e008 (diff)
downloadframeworks_base-f535cf0413ef9b9f36a2fe4336b35abe241a97d9.zip
frameworks_base-f535cf0413ef9b9f36a2fe4336b35abe241a97d9.tar.gz
frameworks_base-f535cf0413ef9b9f36a2fe4336b35abe241a97d9.tar.bz2
Don't reinflate signal icons unless we really need to.
Bug: 21791609 Change-Id: I5eb1b890f2298211b25afa0e2570f0ab49a45e0b
Diffstat (limited to 'packages')
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
index 9e0b08b..5a4acb4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
@@ -251,6 +251,9 @@ public class SignalClusterView
@Override
public void setSubs(List<SubscriptionInfo> subs) {
+ if (hasCorrectSubs(subs)) {
+ return;
+ }
// Clear out all old subIds.
mPhoneStates.clear();
if (mMobileSignalGroup != null) {
@@ -265,6 +268,19 @@ public class SignalClusterView
}
}
+ private boolean hasCorrectSubs(List<SubscriptionInfo> subs) {
+ final int N = subs.size();
+ if (N != mPhoneStates.size()) {
+ return false;
+ }
+ for (int i = 0; i < N; i++) {
+ if (mPhoneStates.get(i).mSubId != subs.get(i).getSubscriptionId()) {
+ return false;
+ }
+ }
+ return true;
+ }
+
private PhoneState getOrInflateState(int subId) {
for (PhoneState state : mPhoneStates) {
if (state.mSubId == subId) {