Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectionDelegate.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectionDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectionDelegate.java |
| index d718fc7c2822c9714275a5fb6025701ed60e5838..3198b4bed2acac4e57b15bbad413f458c11203be 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectionDelegate.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectionDelegate.java |
| @@ -16,6 +16,8 @@ import java.util.Set; |
| * @param <E> The type of the selectable items this delegate interacts with. |
| */ |
| public class SelectionDelegate<E> { |
| + // True if the SelectionDelegate should only support a single item being selected at a time. |
|
Theresa
2017/03/28 20:40:29
The concept of single vs multi-selection would hav
Finnur
2017/03/31 14:26:50
Acknowledged. Removing this file for now.
|
| + private boolean mSingleSelection; |
| /** |
| * Observer interface to be notified of selection changes. |
| @@ -33,13 +35,24 @@ public class SelectionDelegate<E> { |
| private ObserverList<SelectionObserver<E>> mObservers = new ObserverList<>(); |
| /** |
| + * Sets the mode of this SelectionDelegate to single-selection. |
| + */ |
| + public void setSingleSelectionMode() { |
| + mSingleSelection = true; |
| + } |
| + |
| + /** |
| * Toggles the selected state for the given item. |
| * @param item The item to toggle. |
| * @return Whether the item is selected. |
| */ |
| public boolean toggleSelectionForItem(E item) { |
| - if (mSelectedItems.contains(item)) mSelectedItems.remove(item); |
| - else mSelectedItems.add(item); |
| + if (mSelectedItems.contains(item)) { |
| + mSelectedItems.remove(item); |
| + } else { |
| + if (mSingleSelection) mSelectedItems.clear(); |
| + mSelectedItems.add(item); |
| + } |
| notifyObservers(); |
| @@ -99,5 +112,4 @@ public class SelectionDelegate<E> { |
| observer.onSelectionStateChange(selectedItems); |
| } |
| } |
| - |
| } |