From 63554eda8d74b7449766865b03736aa1b3a3f1d8 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Fri, 29 Apr 2016 14:58:29 -0400 Subject: [PATCH] Fix QS Edit flashing on exit Always save tile specs after move and don't trigger an entire data set changed because we are aware of all changes. Change-Id: Ic75b9ea8ed9b7d1a11d02f9af7858f3d040ec074 Fixes: 28334197 --- .../com/android/systemui/qs/customize/QSCustomizer.java | 1 + .../com/android/systemui/qs/customize/TileAdapter.java | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java b/packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java index 716185f343b52..b2aa966c74492 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java +++ b/packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java @@ -106,6 +106,7 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene public void setHost(QSTileHost host) { mHost = host; mPhoneStatusBar = host.getPhoneStatusBar(); + mTileAdapter.setHost(host); } public void setContainer(NotificationsQuickSettingsContainer notificationsQsContainer) { diff --git a/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java b/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java index 41b49d824a990..ec0eefb6e662a 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java +++ b/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java @@ -81,6 +81,7 @@ public class TileAdapter extends RecyclerView.Adapter implements TileSta private Holder mCurrentDrag; private boolean mAccessibilityMoving; private int mAccessibilityFromIndex; + private QSTileHost mHost; public TileAdapter(Context context) { mContext = context; @@ -88,6 +89,10 @@ public class TileAdapter extends RecyclerView.Adapter implements TileSta mItemTouchHelper = new ItemTouchHelper(mCallbacks); } + public void setHost(QSTileHost host) { + mHost = host; + } + @Override public long getItemId(int position) { return mTiles.get(position) != null ? mAllTiles.indexOf(mTiles.get(position)) @@ -108,7 +113,7 @@ public class TileAdapter extends RecyclerView.Adapter implements TileSta newSpecs.add(mTiles.get(i).spec); } host.changeTiles(mCurrentSpecs, newSpecs); - setTileSpecs(newSpecs); + mCurrentSpecs = newSpecs; } public void setTileSpecs(List currentSpecs) { @@ -285,6 +290,7 @@ public class TileAdapter extends RecyclerView.Adapter implements TileSta move(mAccessibilityFromIndex, position, v); notifyItemChanged(mAccessibilityFromIndex); notifyItemMoved(mAccessibilityFromIndex, position); + saveSpecs(mHost); } private void showAccessibilityDialog(final int position, final View v) { @@ -373,6 +379,7 @@ public class TileAdapter extends RecyclerView.Adapter implements TileSta fromLabel, (to + 1)); } v.announceForAccessibility(announcement); + saveSpecs(mHost); return true; }