diff options
| author | 2015-09-04 14:51:16 -0700 | |
|---|---|---|
| committer | 2015-09-04 14:52:02 -0700 | |
| commit | a698d636c5db2e5bd5fd59eb65a01e27e7b9751d (patch) | |
| tree | 59d898064d80cf63540233b9e2fe1b1ba93b3461 | |
| parent | 9ed62e47c9df8f5a7c39ecc18127a1752c5876dc (diff) | |
Don't start BandselectManager in single-select mode.
Change-Id: I3adfe578107cf88b153ad8d8b483462c29a24e28
| -rw-r--r-- | packages/DocumentsUI/src/com/android/documentsui/MultiSelectManager.java | 18 |
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; } |