diff --git a/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java index 297fbc784acd7..b67f6a2ddbfd9 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java @@ -1174,8 +1174,10 @@ public class DirectoryFragment extends Fragment view.setOnDragListener(mOnDragListener); } - // Make all items draggable. - view.setOnLongClickListener(onLongClickListener); + if (mTuner.allowDragNDrop()) { + // Make all items draggable. + view.setOnLongClickListener(onLongClickListener); + } } private View.OnDragListener mOnDragListener = new View.OnDragListener() { diff --git a/packages/DocumentsUI/src/com/android/documentsui/dirlist/FragmentTuner.java b/packages/DocumentsUI/src/com/android/documentsui/dirlist/FragmentTuner.java index 32fdb64079d90..9e2b86a8cea94 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/dirlist/FragmentTuner.java +++ b/packages/DocumentsUI/src/com/android/documentsui/dirlist/FragmentTuner.java @@ -81,6 +81,11 @@ public abstract class FragmentTuner { */ abstract boolean enableManagedMode(); + /** + * Whether drag n' drop is allowed in this context + */ + abstract boolean allowDragNDrop(); + /** * Provides support for Platform specific specializations of DirectoryFragment. */ @@ -191,6 +196,11 @@ public abstract class FragmentTuner { public boolean enableManagedMode() { return false; } + + @Override + public boolean allowDragNDrop() { + return false; + } } /** @@ -255,6 +265,11 @@ public abstract class FragmentTuner { && mState.stack.root.isDownloads() && mState.stack.size() == 1; } + + @Override + public boolean allowDragNDrop() { + return true; + } } private static boolean isDirectory(String mimeType) {