summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java26
1 files changed, 13 insertions, 13 deletions
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 eaf375eefdb0..61a92b468b48 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/customize/TileAdapter.java
@@ -142,11 +142,9 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
}
}
mTileDividerIndex = mTiles.size();
- if (mOtherTiles.size() != 0) {
- mTiles.add(null);
- }
+ mTiles.add(null);
mTiles.addAll(mOtherTiles);
- mEditIndex = mTiles.indexOf(null);
+ updateDividerLocations();
notifyDataSetChanged();
}
@@ -203,6 +201,8 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
@Override
public void onBindViewHolder(final Holder holder, int position) {
if (holder.getItemViewType() == TYPE_DIVIDER) {
+ holder.itemView.setVisibility(mTileDividerIndex < mTiles.size() - 1 ? View.VISIBLE
+ : View.INVISIBLE);
return;
}
if (holder.getItemViewType() == TYPE_EDIT) {
@@ -340,9 +340,8 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
to = mTileDividerIndex;
}
} else {
- if (mTileDividerIndex == mTiles.size()) {
- notifyItemInserted(mTiles.size());
- mTiles.add(null);
+ if (mTileDividerIndex == mTiles.size() - 1) {
+ notifyItemChanged(mTileDividerIndex);
}
if (to <= mTileDividerIndex) {
to = mTileDividerIndex;
@@ -351,7 +350,7 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
} else {
if (to > mEditIndex) {
// Don't allow tiles to be dragged around when they aren't added.
- return false;
+ to = from;
}
// Allow the case where to == mEditIndex to fall through and swap which
// side the tile is currently on.
@@ -362,6 +361,9 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
CharSequence fromLabel = mTiles.get(from).state.label;
move(from, to, mTiles);
updateDividerLocations();
+ if (to == from) {
+ return true;
+ }
CharSequence announcement;
if (to >= mEditIndex) {
MetricsLogger.action(mContext, MetricsProto.MetricsEvent.ACTION_QS_EDIT_REMOVE_SPEC,
@@ -405,12 +407,11 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
}
}
if (mTiles.size() - 1 == mTileDividerIndex) {
- mTiles.remove(mTiles.size() - 1);
- notifyItemRemoved(mTiles.size());
+ notifyItemChanged(mTileDividerIndex);
}
}
- private String strip(TileInfo tileInfo) {
+ private static String strip(TileInfo tileInfo) {
String spec = tileInfo.spec;
if (spec.startsWith(CustomTile.PREFIX)) {
ComponentName component = CustomTile.getComponentFromSpec(spec);
@@ -420,8 +421,7 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
}
private <T> void move(int from, int to, List<T> list) {
- list.add(from > to ? to : to + 1, list.get(from));
- list.remove(from > to ? from + 1 : from);
+ list.add(to, list.remove(from));
notifyItemMoved(from, to);
notifyItemChanged(to);
}