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