summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ben Lin <linben@google.com> 2017-05-26 14:22:58 -0700
committer Ben Lin <linben@google.com> 2017-05-31 15:29:08 -0700
commit7f7ee10edaac1214e23f267a595014b510562d1e (patch)
treebe8bc6ebbc93f54cdf7468df2442348c8ffc5c09
parentf625007a9a15ea5b130d8cf888b6690112e0d5ca (diff)
Passing SelectionDetails to DragAndDropManager.
Bug: 37567847 Change-Id: I793866dd39ec2f1ce772c45ef658d5b46efbf04d
-rw-r--r--src/com/android/documentsui/DragAndDropManager.java13
-rw-r--r--src/com/android/documentsui/MenuManager.java2
-rw-r--r--src/com/android/documentsui/dirlist/DirectoryFragment.java1
-rw-r--r--src/com/android/documentsui/dirlist/DragStartListener.java10
-rw-r--r--src/com/android/documentsui/selection/SelectionMetadata.java9
-rw-r--r--tests/common/com/android/documentsui/testing/TestDragAndDropManager.java6
-rw-r--r--tests/common/com/android/documentsui/testing/TestSelectionDetails.java6
-rw-r--r--tests/unit/com/android/documentsui/DragAndDropManagerTests.java39
-rw-r--r--tests/unit/com/android/documentsui/dirlist/DragStartListenerTest.java6
9 files changed, 79 insertions, 13 deletions
diff --git a/src/com/android/documentsui/DragAndDropManager.java b/src/com/android/documentsui/DragAndDropManager.java
index a6630fec3..a80b35b75 100644
--- a/src/com/android/documentsui/DragAndDropManager.java
+++ b/src/com/android/documentsui/DragAndDropManager.java
@@ -28,6 +28,7 @@ import android.view.DragEvent;
import android.view.KeyEvent;
import android.view.View;
+import com.android.documentsui.MenuManager.SelectionDetails;
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.DocumentStack;
import com.android.documentsui.base.RootInfo;
@@ -78,6 +79,7 @@ public interface DragAndDropManager {
List<DocumentInfo> srcs,
RootInfo root,
List<Uri> invalidDest,
+ SelectionDetails selectionDetails,
IconHelper iconHelper,
@Nullable DocumentInfo parent);
@@ -226,22 +228,17 @@ public interface DragAndDropManager {
List<DocumentInfo> srcs,
RootInfo root,
List<Uri> invalidDest,
+ SelectionDetails selectionDetails,
IconHelper iconHelper,
@Nullable DocumentInfo parent) {
mView = v;
mInvalidDest = invalidDest;
- boolean containsFilesInArchive = false;
+ mMustBeCopied = !selectionDetails.canDelete();
List<Uri> uris = new ArrayList<>(srcs.size());
for (DocumentInfo doc : srcs) {
uris.add(doc.derivedUri);
- if (!doc.isRemoveSupported()
- && !doc.isDeleteSupported()
- && !doc.isMoveSupported()) {
- mMustBeCopied = true;
- }
- containsFilesInArchive |= doc.isInArchive();
}
mClipData = (parent == null)
? mClipper.getClipDataForDocuments(uris, FileOperationService.OPERATION_UNKNOWN)
@@ -253,7 +250,7 @@ public interface DragAndDropManager {
updateShadow(srcs, iconHelper);
int flag = View.DRAG_FLAG_GLOBAL | View.DRAG_FLAG_OPAQUE;
- if (!containsFilesInArchive) {
+ if (!selectionDetails.containsFilesInArchive()) {
flag |= View.DRAG_FLAG_GLOBAL_URI_READ
| View.DRAG_FLAG_GLOBAL_URI_WRITE;
}
diff --git a/src/com/android/documentsui/MenuManager.java b/src/com/android/documentsui/MenuManager.java
index aa50ecea1..d00d14b34 100644
--- a/src/com/android/documentsui/MenuManager.java
+++ b/src/com/android/documentsui/MenuManager.java
@@ -318,6 +318,8 @@ public abstract class MenuManager {
boolean containsPartialFiles();
+ boolean containsFilesInArchive();
+
// TODO: Update these to express characteristics instead of answering concrete questions,
// since the answer to those questions is (or can be) activity specific.
boolean canDelete();
diff --git a/src/com/android/documentsui/dirlist/DirectoryFragment.java b/src/com/android/documentsui/dirlist/DirectoryFragment.java
index ff9edc2d2..4e97da7e5 100644
--- a/src/com/android/documentsui/dirlist/DirectoryFragment.java
+++ b/src/com/android/documentsui/dirlist/DirectoryFragment.java
@@ -364,6 +364,7 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On
mIconHelper,
mModel,
mSelectionMgr,
+ mSelectionMetadata,
mState,
this::getModelId,
mRecView::findChildViewUnder,
diff --git a/src/com/android/documentsui/dirlist/DragStartListener.java b/src/com/android/documentsui/dirlist/DragStartListener.java
index 6c23e205c..1651603ac 100644
--- a/src/com/android/documentsui/dirlist/DragStartListener.java
+++ b/src/com/android/documentsui/dirlist/DragStartListener.java
@@ -24,6 +24,7 @@ import android.util.Log;
import android.view.View;
import com.android.documentsui.DragAndDropManager;
+import com.android.documentsui.MenuManager.SelectionDetails;
import com.android.documentsui.Model;
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.Events;
@@ -67,6 +68,7 @@ interface DragStartListener {
private final IconHelper mIconHelper;
private final State mState;
private final SelectionManager mSelectionMgr;
+ private final SelectionDetails mSelectionDetails;
private final ViewFinder mViewFinder;
private final Function<View, String> mIdFinder;
private final Function<Selection, List<DocumentInfo>> mDocsConverter;
@@ -78,6 +80,7 @@ interface DragStartListener {
IconHelper iconHelper,
State state,
SelectionManager selectionMgr,
+ SelectionDetails selectionDetails,
ViewFinder viewFinder,
Function<View, String> idFinder,
Function<Selection, List<DocumentInfo>> docsConverter,
@@ -86,6 +89,7 @@ interface DragStartListener {
mIconHelper = iconHelper;
mState = state;
mSelectionMgr = selectionMgr;
+ mSelectionDetails = selectionDetails;
mViewFinder = viewFinder;
mIdFinder = idFinder;
mDocsConverter = docsConverter;
@@ -134,8 +138,8 @@ interface DragStartListener {
invalidDest.add(parent.derivedUri);
}
- mDragAndDropManager.startDrag(
- view, srcs, mState.stack.getRoot(), invalidDest, mIconHelper, parent);
+ mDragAndDropManager.startDrag(view, srcs, mState.stack.getRoot(), invalidDest,
+ mSelectionDetails, mIconHelper, parent);
return true;
}
@@ -168,6 +172,7 @@ interface DragStartListener {
IconHelper iconHelper,
Model model,
SelectionManager selectionMgr,
+ SelectionDetails selectionDetails,
State state,
Function<View, String> idFinder,
ViewFinder viewFinder,
@@ -177,6 +182,7 @@ interface DragStartListener {
iconHelper,
state,
selectionMgr,
+ selectionDetails,
viewFinder,
idFinder,
model::getDocuments,
diff --git a/src/com/android/documentsui/selection/SelectionMetadata.java b/src/com/android/documentsui/selection/SelectionMetadata.java
index 9285c3474..df0f1d601 100644
--- a/src/com/android/documentsui/selection/SelectionMetadata.java
+++ b/src/com/android/documentsui/selection/SelectionMetadata.java
@@ -40,6 +40,8 @@ public class SelectionMetadata
implements MenuManager.SelectionDetails, SelectionManager.ItemCallback {
private static final String TAG = "SelectionMetadata";
+ private final static int FLAG_CAN_DELETE =
+ Document.FLAG_SUPPORTS_REMOVE | Document.FLAG_SUPPORTS_DELETE;
private final Function<String, Cursor> mDocFinder;
@@ -83,7 +85,7 @@ public class SelectionMetadata
if ((docFlags & Document.FLAG_DIR_SUPPORTS_CREATE) != 0) {
mWritableDirectoryCount += delta;
}
- if ((docFlags & Document.FLAG_SUPPORTS_DELETE) == 0) {
+ if ((docFlags & FLAG_CAN_DELETE) == 0) {
mNoDeleteCount += delta;
}
if ((docFlags & Document.FLAG_SUPPORTS_RENAME) == 0) {
@@ -133,6 +135,11 @@ public class SelectionMetadata
}
@Override
+ public boolean containsFilesInArchive() {
+ return mInArchiveCount > 0;
+ }
+
+ @Override
public boolean canDelete() {
return size() > 0 && mNoDeleteCount == 0;
}
diff --git a/tests/common/com/android/documentsui/testing/TestDragAndDropManager.java b/tests/common/com/android/documentsui/testing/TestDragAndDropManager.java
index 288552271..ddd5c1347 100644
--- a/tests/common/com/android/documentsui/testing/TestDragAndDropManager.java
+++ b/tests/common/com/android/documentsui/testing/TestDragAndDropManager.java
@@ -25,6 +25,8 @@ import android.view.View;
import com.android.documentsui.ActionHandler;
import com.android.documentsui.DragAndDropManager;
+import com.android.documentsui.MenuManager;
+import com.android.documentsui.MenuManager.SelectionDetails;
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.DocumentStack;
import com.android.documentsui.base.RootInfo;
@@ -45,8 +47,8 @@ public class TestDragAndDropManager implements DragAndDropManager {
public void onKeyEvent(KeyEvent event) {}
@Override
- public void startDrag(View v, List<DocumentInfo> srcs, RootInfo root,
- List<Uri> invalidDest, IconHelper iconHelper, @Nullable DocumentInfo parent) {
+ public void startDrag(View v, List<DocumentInfo> srcs, RootInfo root, List<Uri> invalidDest,
+ SelectionDetails details, IconHelper iconHelper, @Nullable DocumentInfo parent) {
startDragHandler.accept(srcs);
}
diff --git a/tests/common/com/android/documentsui/testing/TestSelectionDetails.java b/tests/common/com/android/documentsui/testing/TestSelectionDetails.java
index cfecb1d88..c63fdee59 100644
--- a/tests/common/com/android/documentsui/testing/TestSelectionDetails.java
+++ b/tests/common/com/android/documentsui/testing/TestSelectionDetails.java
@@ -27,6 +27,7 @@ public class TestSelectionDetails implements SelectionDetails {
public boolean canRename;
public boolean canDelete;
public boolean containPartial;
+ public boolean containsFilesInArchive;
public boolean containDirectories;
public boolean containFiles;
public boolean canPasteInto;
@@ -50,6 +51,11 @@ public class TestSelectionDetails implements SelectionDetails {
}
@Override
+ public boolean containsFilesInArchive() {
+ return containsFilesInArchive;
+ }
+
+ @Override
public boolean canRename() {
return canRename;
}
diff --git a/tests/unit/com/android/documentsui/DragAndDropManagerTests.java b/tests/unit/com/android/documentsui/DragAndDropManagerTests.java
index a9f49ecca..deea97137 100644
--- a/tests/unit/com/android/documentsui/DragAndDropManagerTests.java
+++ b/tests/unit/com/android/documentsui/DragAndDropManagerTests.java
@@ -47,6 +47,7 @@ import com.android.documentsui.testing.TestEnv;
import com.android.documentsui.testing.TestEventListener;
import com.android.documentsui.testing.TestIconHelper;
import com.android.documentsui.testing.TestProvidersAccess;
+import com.android.documentsui.testing.TestSelectionDetails;
import com.android.documentsui.testing.Views;
import org.junit.Before;
@@ -70,6 +71,7 @@ public class DragAndDropManagerTests {
private TestActionHandler mActions;
private TestDocumentClipper mClipper;
+ private TestSelectionDetails mDetails;
private ClipData mClipData;
private TestIconHelper mIconHelper;
@@ -104,6 +106,8 @@ public class DragAndDropManagerTests {
mActions = new TestActionHandler(mEnv);
mClipper = new TestDocumentClipper();
+ mDetails = new TestSelectionDetails();
+ mDetails.canDelete = true;
ClipDescription description = new ClipDescription("", new String[]{});
description.setExtras(new PersistableBundle());
mClipData = ClipDatas.createTestClipData(description);
@@ -148,6 +152,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -162,6 +167,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
null);
@@ -175,6 +181,7 @@ public class DragAndDropManagerTests {
Arrays.asList(TestEnv.FILE_APK),
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -190,6 +197,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -206,6 +214,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FOLDER_1.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -214,11 +223,13 @@ public class DragAndDropManagerTests {
@Test
public void testInArchiveUris_HasCorrectFlagPermission() {
+ mDetails.containsFilesInArchive = true;
mManager.startDrag(
mStartDragView,
Arrays.asList(TestEnv.FILE_IN_ARCHIVE),
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FILE_ARCHIVE.derivedUri, TestEnv.FILE_IN_ARCHIVE.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FILE_ARCHIVE);
@@ -233,6 +244,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FOLDER_1.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -247,6 +259,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FOLDER_1.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -261,6 +274,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FOLDER_1.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -275,6 +289,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -291,6 +306,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -309,6 +325,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -327,6 +344,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.DOWNLOADS,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -345,6 +363,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -363,6 +382,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.DOWNLOADS,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -384,6 +404,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.DOWNLOADS,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -405,6 +426,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -426,6 +448,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -447,6 +470,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.DOWNLOADS,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -471,6 +495,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.DOWNLOADS,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -495,6 +520,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -519,6 +545,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -543,6 +570,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -561,6 +589,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -582,6 +611,7 @@ public class DragAndDropManagerTests {
root,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -598,6 +628,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -620,6 +651,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -645,6 +677,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.DOWNLOADS,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -671,6 +704,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.DOWNLOADS,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -700,6 +734,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -718,6 +753,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.HOME,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -739,6 +775,7 @@ public class DragAndDropManagerTests {
TestProvidersAccess.DOWNLOADS,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_APK.derivedUri,
TestEnv.FILE_JPG.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
@@ -754,11 +791,13 @@ public class DragAndDropManagerTests {
@Test
public void testDrop_Copies_SameRoot_ReadOnlyFile_DropOnDocument() {
+ mDetails.canDelete = false;
mManager.startDrag(
mStartDragView,
Arrays.asList(TestEnv.FILE_READ_ONLY),
TestProvidersAccess.DOWNLOADS,
Arrays.asList(TestEnv.FOLDER_0.derivedUri, TestEnv.FILE_READ_ONLY.derivedUri),
+ mDetails,
mIconHelper,
TestEnv.FOLDER_0);
diff --git a/tests/unit/com/android/documentsui/dirlist/DragStartListenerTest.java b/tests/unit/com/android/documentsui/dirlist/DragStartListenerTest.java
index 699c44755..635e249d5 100644
--- a/tests/unit/com/android/documentsui/dirlist/DragStartListenerTest.java
+++ b/tests/unit/com/android/documentsui/dirlist/DragStartListenerTest.java
@@ -26,6 +26,8 @@ import android.support.test.runner.AndroidJUnit4;
import android.view.MotionEvent;
import android.view.View;
+import com.android.documentsui.MenuManager;
+import com.android.documentsui.MenuManager.SelectionDetails;
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.Providers;
import com.android.documentsui.base.State;
@@ -36,6 +38,7 @@ import com.android.documentsui.selection.Selection;
import com.android.documentsui.testing.TestDragAndDropManager;
import com.android.documentsui.testing.TestEvent;
import com.android.documentsui.testing.SelectionManagers;
+import com.android.documentsui.testing.TestSelectionDetails;
import com.android.documentsui.testing.Views;
import org.junit.Before;
@@ -51,6 +54,7 @@ public class DragStartListenerTest {
private ActiveListener mListener;
private TestEvent.Builder mEvent;
private SelectionManager mMultiSelectManager;
+ private SelectionDetails mSelectionDetails;
private String mViewModelId;
private TestDragAndDropManager mManager;
@@ -58,6 +62,7 @@ public class DragStartListenerTest {
public void setUp() throws Exception {
mMultiSelectManager = SelectionManagers.createTestInstance();
mManager = new TestDragAndDropManager();
+ mSelectionDetails = new TestSelectionDetails();
DocumentInfo doc = new DocumentInfo();
doc.authority = Providers.AUTHORITY_STORAGE;
@@ -70,6 +75,7 @@ public class DragStartListenerTest {
null, // icon helper
state,
mMultiSelectManager,
+ mSelectionDetails,
// view finder
(float x, float y) -> {
return Views.createTestView(x, y);