From 9ffd9f61d32ed03522c3655f5eaa0bd2413484a5 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Tue, 7 Jun 2016 16:06:59 -0400 Subject: [PATCH] QS: Fix leak in QSAnimator Change-Id: I54f1e083cf6ba6bfb5abc0f416680cbda1401980 Fixes: 29113833 --- .../SystemUI/src/com/android/systemui/qs/QSAnimator.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java index f92c51f034cf4..2dcb5f4926883 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java @@ -20,6 +20,7 @@ import android.view.View; import android.view.View.OnAttachStateChangeListener; import android.view.View.OnLayoutChangeListener; import android.widget.TextView; + import com.android.systemui.qs.PagedTileLayout.PageListener; import com.android.systemui.qs.QSPanel.QSTileLayout; import com.android.systemui.qs.QSTile.Host.Callback; @@ -65,6 +66,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha private boolean mFullRows; private int mNumQuickTiles; private float mLastPosition; + private QSTileHost mHost; public QSAnimator(QSContainer container, QuickQSPanel quickPanel, QSPanel panel) { mQsContainer = container; @@ -94,6 +96,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha } public void setHost(QSTileHost qsh) { + mHost = qsh; qsh.addCallback(this); updateAnimators(); } @@ -106,6 +109,9 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha @Override public void onViewDetachedFromWindow(View v) { + if (mHost != null) { + mHost.removeCallback(this); + } TunerService.get(mQsContainer.getContext()).removeTunable(this); }