From 155168d704f3fc75a1fd0315aae9dc1a6dd110c5 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Thu, 21 Apr 2016 20:33:44 -0700 Subject: [PATCH] Fix signal cluster animation leak When subscription id's change during the animation, make sure to clear them out as well. This happens when doing a network switch on Fi. Bug: 27434767 Change-Id: I9cbd65888419ca630e884c51d41a0d785237f35b --- .../systemui/statusbar/SignalClusterView.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java index 988d537f6c2cb..2b59c68a44b86 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java @@ -295,6 +295,14 @@ public class SignalClusterView return; } // Clear out all old subIds. + for (PhoneState state : mPhoneStates) { + if (state.mMobile != null) { + state.maybeStopAnimatableDrawable(state.mMobile); + } + if (state.mMobileDark != null) { + state.maybeStopAnimatableDrawable(state.mMobileDark); + } + } mPhoneStates.clear(); if (mMobileSignalGroup != null) { mMobileSignalGroup.removeAllViews(); @@ -391,6 +399,11 @@ public class SignalClusterView state.mMobile.setImageDrawable(null); state.mLastMobileStrengthId = -1; } + if (state.mMobileDark != null) { + state.maybeStopAnimatableDrawable(state.mMobileDark); + state.mMobileDark.setImageDrawable(null); + state.mLastMobileStrengthId = -1; + } if (state.mMobileType != null) { state.mMobileType.setImageDrawable(null); state.mLastMobileTypeId = -1;