Merge "Fix: accessibility actions move languages but don\'t update" into nyc-dev am: 7dce005fab am: 48db95270e

am: 7d5bc8f454

* commit '7d5bc8f4544b6b49765b87d875ced3ea7d58f430':
  Fix: accessibility actions move languages but don't update

Change-Id: I0a0bdadc04321bc28a3ce702063f9b631daf647d
This commit is contained in:
Mihai Nita
2016-04-29 17:55:09 +00:00
committed by android-build-merger
2 changed files with 18 additions and 11 deletions

View File

@@ -197,6 +197,8 @@ class LocaleDragAndDropAdapter
notifyItemChanged(fromPosition); // to update the numbers
notifyItemChanged(toPosition);
notifyItemMoved(fromPosition, toPosition);
// We don't call doTheUpdate() here because this method is called for each item swap.
// So if we drag something across several positions it will be called several times.
}
void setRemoveMode(boolean removeMode) {
@@ -222,7 +224,6 @@ class LocaleDragAndDropAdapter
}
mFeedItemList.remove(position);
notifyDataSetChanged();
doTheUpdate();
}
void removeChecked() {

View File

@@ -114,40 +114,46 @@ public class LocaleLinearLayoutManager extends LinearLayoutManager {
final int itemCount = this.getItemCount();
final int position = this.getPosition(host);
boolean result = false;
switch (action) {
case R.id.action_drag_move_up:
if (position > 0) {
mAdapter.onItemMove(position, position - 1);
return true;
result = true;
}
return false;
break;
case R.id.action_drag_move_down:
if (position + 1 < itemCount) {
mAdapter.onItemMove(position, position + 1);
return true;
result = true;
}
return false;
break;
case R.id.action_drag_move_top:
if (position != 0) {
mAdapter.onItemMove(position, 0);
return true;
result = true;
}
return false;
break;
case R.id.action_drag_move_bottom:
if (position != itemCount - 1) {
mAdapter.onItemMove(position, itemCount - 1);
return true;
result = true;
}
return false;
break;
case R.id.action_drag_remove:
if (itemCount > 1) {
mAdapter.removeItem(position);
return true;
result = true;
}
return false;
break;
default:
return super.performAccessibilityActionForItem(recycler, state, host, action, args);
}
if (result) {
mAdapter.doTheUpdate();
}
return result;
}
}