summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/MultiSelectManager.java18
1 files changed, 14 insertions, 4 deletions
diff --git a/packages/DocumentsUI/src/com/android/documentsui/MultiSelectManager.java b/packages/DocumentsUI/src/com/android/documentsui/MultiSelectManager.java
index c7afc042bee8..f9f308d9dfa1 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/MultiSelectManager.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/MultiSelectManager.java
@@ -75,7 +75,8 @@ public final class MultiSelectManager {
private Adapter<?> mAdapter;
private MultiSelectHelper mHelper;
private boolean mSingleSelect;
- private BandSelectManager mBandManager;
+
+ @Nullable private BandSelectManager mBandManager;
/**
* @param recyclerView
@@ -92,7 +93,9 @@ public final class MultiSelectManager {
new RuntimeRecyclerViewHelper(recyclerView),
mode);
- mBandManager = new BandSelectManager((RuntimeRecyclerViewHelper) mHelper);
+ if (mode == MODE_MULTIPLE) {
+ mBandManager = new BandSelectManager((RuntimeRecyclerViewHelper) mHelper);
+ }
GestureDetector.SimpleOnGestureListener listener =
new GestureDetector.SimpleOnGestureListener() {
@@ -121,6 +124,10 @@ public final class MultiSelectManager {
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
detector.onTouchEvent(e);
+ if (mBandManager == null) {
+ return false;
+ }
+
// b/23793622 notes the fact that we *never* receiver ACTION_DOWN
// events in onTouchEvent. Where it not for this issue, we'd
// push start handling down into handleInputEvent.
@@ -141,6 +148,7 @@ public final class MultiSelectManager {
mBandManager.handleInputEvent(
new MotionInputEvent(e, recyclerView));
}
+
return mBandManager.isActive();
}
@@ -278,7 +286,9 @@ public final class MultiSelectManager {
}
public void handleLayoutChanged() {
- mBandManager.handleLayoutChanged();
+ if (mBandManager != null) {
+ mBandManager.handleLayoutChanged();
+ }
}
/**
@@ -1233,7 +1243,7 @@ public final class MultiSelectManager {
checkArgument(input.isMouseEvent());
if (shouldStop(input)) {
- mBandManager.endBandSelect();
+ endBandSelect();
return;
}