sysui: fix bug on duplicate qs tile callbacks
Bug: 28235429
Change-Id: Ib70c29cbc45dd8a58a751de0ea9e4f8a25057468
(cherry picked from commit d319f04986e44a7e9eab5f2822f1a6510282f803)
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
index 1149c59..05090c3 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
@@ -272,6 +272,7 @@
public void setTiles(Collection<QSTile<?>> tiles) {
for (TileRecord record : mRecords) {
mTileLayout.removeTile(record);
+ record.tile.removeCallback(record.callback);
}
mRecords.clear();
for (QSTile<?> tile : tiles) {
@@ -323,6 +324,7 @@
}
};
r.tile.addCallback(callback);
+ r.callback = callback;
final View.OnClickListener click = new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -506,6 +508,7 @@
public QSTile<?> tile;
public QSTileBaseView tileView;
public boolean scanState;
+ public QSTile.Callback callback;
}
public interface Callback {