diff options
| author | 2015-09-25 07:47:56 -0700 | |
|---|---|---|
| committer | 2015-09-25 07:47:56 -0700 | |
| commit | bd7da4c44ed0adac9eff0cc55a7c6f3b05f0a955 (patch) | |
| tree | 7ecb59486028e5fe64cd8fcf960d005a54da43f5 | |
| parent | 2fbe72806909312c58542d3752da8c127fc8ddfc (diff) | |
Activate selection mode when selecting via mouse.
Modify the MultiSelectManager so that toggling selection on an item
notifies listeners of selection changes, if necessary. This fixes a bug
where notifySelectionChanged wasn't getting called when the selection
changed.
BUG=23944862
Change-Id: I3aef41cc92c560dc15bdc0fe310c340bdb3005f6
| -rw-r--r-- | packages/DocumentsUI/src/com/android/documentsui/MultiSelectManager.java | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/packages/DocumentsUI/src/com/android/documentsui/MultiSelectManager.java b/packages/DocumentsUI/src/com/android/documentsui/MultiSelectManager.java index 583994351a0c..858fb423fe06 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/MultiSelectManager.java +++ b/packages/DocumentsUI/src/com/android/documentsui/MultiSelectManager.java @@ -365,8 +365,8 @@ public final class MultiSelectManager { // To make this more correct, we'd need to update the Ranger class to return // information about what has changed. notifySelectionChanged(); - } else if (toggleSelection(input.getItemPosition())) { - notifySelectionChanged(); + } else { + toggleSelection(input.getItemPosition()); } } @@ -375,14 +375,13 @@ public final class MultiSelectManager { * a new Ranger (range selection manager) at that point is created. * * @param position - * @return True if state changed. */ - private boolean toggleSelection(int position) { + private void toggleSelection(int position) { // Position may be special "no position" during certain // transitional phases. If so, skip handling of the event. if (position == RecyclerView.NO_POSITION) { if (DEBUG) Log.d(TAG, "Ignoring toggle for element with no position."); - return false; + return; } boolean changed = false; @@ -391,7 +390,7 @@ public final class MultiSelectManager { } else { boolean canSelect = notifyBeforeItemStateChange(position, true); if (!canSelect) { - return false; + return; } if (mSingleSelect && !mSelection.isEmpty()) { clearSelectionQuietly(); @@ -407,7 +406,9 @@ public final class MultiSelectManager { changed = true; } - return changed; + if (changed) { + notifySelectionChanged(); + } } /** |