Merge "QS: Fix leak in QSAnimator" into nyc-dev
This commit is contained in:
@@ -20,6 +20,7 @@ import android.view.View;
|
|||||||
import android.view.View.OnAttachStateChangeListener;
|
import android.view.View.OnAttachStateChangeListener;
|
||||||
import android.view.View.OnLayoutChangeListener;
|
import android.view.View.OnLayoutChangeListener;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.android.systemui.qs.PagedTileLayout.PageListener;
|
import com.android.systemui.qs.PagedTileLayout.PageListener;
|
||||||
import com.android.systemui.qs.QSPanel.QSTileLayout;
|
import com.android.systemui.qs.QSPanel.QSTileLayout;
|
||||||
import com.android.systemui.qs.QSTile.Host.Callback;
|
import com.android.systemui.qs.QSTile.Host.Callback;
|
||||||
@@ -65,6 +66,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
|
|||||||
private boolean mFullRows;
|
private boolean mFullRows;
|
||||||
private int mNumQuickTiles;
|
private int mNumQuickTiles;
|
||||||
private float mLastPosition;
|
private float mLastPosition;
|
||||||
|
private QSTileHost mHost;
|
||||||
|
|
||||||
public QSAnimator(QSContainer container, QuickQSPanel quickPanel, QSPanel panel) {
|
public QSAnimator(QSContainer container, QuickQSPanel quickPanel, QSPanel panel) {
|
||||||
mQsContainer = container;
|
mQsContainer = container;
|
||||||
@@ -94,6 +96,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setHost(QSTileHost qsh) {
|
public void setHost(QSTileHost qsh) {
|
||||||
|
mHost = qsh;
|
||||||
qsh.addCallback(this);
|
qsh.addCallback(this);
|
||||||
updateAnimators();
|
updateAnimators();
|
||||||
}
|
}
|
||||||
@@ -106,6 +109,9 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onViewDetachedFromWindow(View v) {
|
public void onViewDetachedFromWindow(View v) {
|
||||||
|
if (mHost != null) {
|
||||||
|
mHost.removeCallback(this);
|
||||||
|
}
|
||||||
TunerService.get(mQsContainer.getContext()).removeTunable(this);
|
TunerService.get(mQsContainer.getContext()).removeTunable(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user