From f535cf0413ef9b9f36a2fe4336b35abe241a97d9 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Wed, 17 Jun 2015 12:52:43 -0400 Subject: Don't reinflate signal icons unless we really need to. Bug: 21791609 Change-Id: I5eb1b890f2298211b25afa0e2570f0ab49a45e0b --- .../android/systemui/statusbar/SignalClusterView.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java') 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 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 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) { -- cgit v1.1