Merge "QS Edit: fix some move logic" into nyc-dev

This commit is contained in:
Jason Monk
2016-05-05 19:51:54 +00:00
committed by Android (Google) Code Review

View File

@@ -331,9 +331,8 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
private boolean move(int from, int to, View v) { private boolean move(int from, int to, View v) {
if (to >= mEditIndex) { if (to >= mEditIndex) {
if (from >= mEditIndex) { if (from < mEditIndex) {
return false; // Removing a tile.
}
// Sort tiles into system/non-system groups. // Sort tiles into system/non-system groups.
TileInfo tile = mTiles.get(from); TileInfo tile = mTiles.get(from);
if (tile.isSystem) { if (tile.isSystem) {
@@ -349,6 +348,16 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
to = mTileDividerIndex; to = mTileDividerIndex;
} }
} }
} else {
if (to > mEditIndex) {
// Don't allow tiles to be dragged around when they aren't added.
return false;
}
// Allow the case where to == mEditIndex to fall through and swap which
// side the tile is currently on.
// This lets the the cases where all tiles are on one side of the line
// work.
}
} }
CharSequence fromLabel = mTiles.get(from).state.label; CharSequence fromLabel = mTiles.get(from).state.label;
move(from, to, mTiles); move(from, to, mTiles);