1// Signature format: 4.0
2package androidx.recyclerview.selection {
3
4  public abstract class BandPredicate {
5    ctor public BandPredicate();
6    method public abstract boolean canInitiate(android.view.MotionEvent);
7  }
8
9  public static final class BandPredicate.EmptyArea extends androidx.recyclerview.selection.BandPredicate {
10    ctor public BandPredicate.EmptyArea(androidx.recyclerview.widget.RecyclerView);
11    method public boolean canInitiate(android.view.MotionEvent);
12  }
13
14  public static final class BandPredicate.NonDraggableArea extends androidx.recyclerview.selection.BandPredicate {
15    ctor public BandPredicate.NonDraggableArea(androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.selection.ItemDetailsLookup<? extends java.lang.Object!>);
16    method public boolean canInitiate(android.view.MotionEvent);
17  }
18
19  public abstract class FocusDelegate<K> {
20    ctor public FocusDelegate();
21    method public abstract void clearFocus();
22    method public abstract void focusItem(androidx.recyclerview.selection.ItemDetailsLookup.ItemDetails<K!>);
23    method public abstract int getFocusedPosition();
24    method public abstract boolean hasFocusedItem();
25  }
26
27  public abstract class ItemDetailsLookup<K> {
28    ctor public ItemDetailsLookup();
29    method public abstract androidx.recyclerview.selection.ItemDetailsLookup.ItemDetails<K!>? getItemDetails(android.view.MotionEvent);
30  }
31
32  public abstract static class ItemDetailsLookup.ItemDetails<K> {
33    ctor public ItemDetailsLookup.ItemDetails();
34    method public abstract int getPosition();
35    method public abstract K? getSelectionKey();
36    method public boolean hasSelectionKey();
37    method public boolean inDragRegion(android.view.MotionEvent);
38    method public boolean inSelectionHotspot(android.view.MotionEvent);
39  }
40
41  public abstract class ItemKeyProvider<K> {
42    ctor protected ItemKeyProvider(@androidx.recyclerview.selection.ItemKeyProvider.Scope int);
43    method public abstract K? getKey(int);
44    method public abstract int getPosition(K);
45    field public static final int SCOPE_CACHED = 1; // 0x1
46    field public static final int SCOPE_MAPPED = 0; // 0x0
47  }
48
49  @IntDef({androidx.recyclerview.selection.ItemKeyProvider.SCOPE_MAPPED, androidx.recyclerview.selection.ItemKeyProvider.SCOPE_CACHED}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ItemKeyProvider.Scope {
50  }
51
52  public final class MutableSelection<K> extends androidx.recyclerview.selection.Selection<K!> {
53    ctor public MutableSelection();
54    method public boolean add(K);
55    method public void clear();
56    method public void copyFrom(androidx.recyclerview.selection.Selection<K!>);
57    method public boolean remove(K);
58  }
59
60  public interface OnContextClickListener {
61    method public boolean onContextClick(android.view.MotionEvent);
62  }
63
64  public interface OnDragInitiatedListener {
65    method public boolean onDragInitiated(android.view.MotionEvent);
66  }
67
68  public interface OnItemActivatedListener<K> {
69    method public boolean onItemActivated(androidx.recyclerview.selection.ItemDetailsLookup.ItemDetails<K!>, android.view.MotionEvent);
70  }
71
72  public final class OperationMonitor {
73    ctor public OperationMonitor();
74    method public void addListener(androidx.recyclerview.selection.OperationMonitor.OnChangeListener);
75    method public boolean isStarted();
76    method public void removeListener(androidx.recyclerview.selection.OperationMonitor.OnChangeListener);
77  }
78
79  public static interface OperationMonitor.OnChangeListener {
80    method public void onChanged();
81  }
82
83  public class Selection<K> implements java.lang.Iterable<K!> {
84    method public boolean contains(K?);
85    method public boolean isEmpty();
86    method public java.util.Iterator<K!> iterator();
87    method public int size();
88  }
89
90  public final class SelectionPredicates {
91    method public static <K> androidx.recyclerview.selection.SelectionTracker.SelectionPredicate<K!> createSelectAnything();
92    method public static <K> androidx.recyclerview.selection.SelectionTracker.SelectionPredicate<K!> createSelectSingleAnything();
93  }
94
95  public abstract class SelectionTracker<K> {
96    ctor public SelectionTracker();
97    method public abstract void addObserver(androidx.recyclerview.selection.SelectionTracker.SelectionObserver<K!>);
98    method public abstract boolean clearSelection();
99    method public abstract void copySelection(androidx.recyclerview.selection.MutableSelection<K!>);
100    method public abstract boolean deselect(K);
101    method public abstract androidx.recyclerview.selection.Selection<K!> getSelection();
102    method public abstract boolean hasSelection();
103    method public abstract boolean isSelected(K?);
104    method public abstract void onRestoreInstanceState(android.os.Bundle?);
105    method public abstract void onSaveInstanceState(android.os.Bundle);
106    method protected abstract void restoreSelection(androidx.recyclerview.selection.Selection<K!>);
107    method public abstract boolean select(K);
108    method public abstract boolean setItemsSelected(Iterable<K!>, boolean);
109    field public static final String SELECTION_CHANGED_MARKER = "Selection-Changed";
110  }
111
112  public static final class SelectionTracker.Builder<K> {
113    ctor public SelectionTracker.Builder(String, androidx.recyclerview.widget.RecyclerView, androidx.recyclerview.selection.ItemKeyProvider<K!>, androidx.recyclerview.selection.ItemDetailsLookup<K!>, androidx.recyclerview.selection.StorageStrategy<K!>);
114    method public androidx.recyclerview.selection.SelectionTracker<K!> build();
115    method public androidx.recyclerview.selection.SelectionTracker.Builder<K!> withBandOverlay(@DrawableRes int);
116    method public androidx.recyclerview.selection.SelectionTracker.Builder<K!> withBandPredicate(androidx.recyclerview.selection.BandPredicate);
117    method public androidx.recyclerview.selection.SelectionTracker.Builder<K!> withFocusDelegate(androidx.recyclerview.selection.FocusDelegate<K!>);
118    method @Deprecated public androidx.recyclerview.selection.SelectionTracker.Builder<K!> withGestureTooltypes(int...);
119    method public androidx.recyclerview.selection.SelectionTracker.Builder<K!> withOnContextClickListener(androidx.recyclerview.selection.OnContextClickListener);
120    method public androidx.recyclerview.selection.SelectionTracker.Builder<K!> withOnDragInitiatedListener(androidx.recyclerview.selection.OnDragInitiatedListener);
121    method public androidx.recyclerview.selection.SelectionTracker.Builder<K!> withOnItemActivatedListener(androidx.recyclerview.selection.OnItemActivatedListener<K!>);
122    method public androidx.recyclerview.selection.SelectionTracker.Builder<K!> withOperationMonitor(androidx.recyclerview.selection.OperationMonitor);
123    method @Deprecated public androidx.recyclerview.selection.SelectionTracker.Builder<K!> withPointerTooltypes(int...);
124    method public androidx.recyclerview.selection.SelectionTracker.Builder<K!> withSelectionPredicate(androidx.recyclerview.selection.SelectionTracker.SelectionPredicate<K!>);
125  }
126
127  public abstract static class SelectionTracker.SelectionObserver<K> {
128    ctor public SelectionTracker.SelectionObserver();
129    method public void onItemStateChanged(K, boolean);
130    method public void onSelectionChanged();
131    method public void onSelectionRefresh();
132    method public void onSelectionRestored();
133  }
134
135  public abstract static class SelectionTracker.SelectionPredicate<K> {
136    ctor public SelectionTracker.SelectionPredicate();
137    method public abstract boolean canSelectMultiple();
138    method public abstract boolean canSetStateAtPosition(int, boolean);
139    method public abstract boolean canSetStateForKey(K, boolean);
140  }
141
142  public final class StableIdKeyProvider extends androidx.recyclerview.selection.ItemKeyProvider<java.lang.Long!> {
143    ctor public StableIdKeyProvider(androidx.recyclerview.widget.RecyclerView);
144    method public Long? getKey(int);
145    method public int getPosition(Long);
146  }
147
148  public abstract class StorageStrategy<K> {
149    ctor public StorageStrategy(Class<K!>);
150    method public abstract android.os.Bundle asBundle(androidx.recyclerview.selection.Selection<K!>);
151    method public abstract androidx.recyclerview.selection.Selection<K!>? asSelection(android.os.Bundle);
152    method public static androidx.recyclerview.selection.StorageStrategy<java.lang.Long!> createLongStorage();
153    method public static <K extends android.os.Parcelable> androidx.recyclerview.selection.StorageStrategy<K!> createParcelableStorage(Class<K!>);
154    method public static androidx.recyclerview.selection.StorageStrategy<java.lang.String!> createStringStorage();
155  }
156
157}
158
159