Loading src/com/android/documentsui/AbstractActionHandler.java +3 −5 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import static com.android.documentsui.base.DocumentInfo.getCursorInt; import static com.android.documentsui.base.DocumentInfo.getCursorString; import android.app.Activity; import android.content.ClipData; import android.content.Intent; import android.content.pm.ResolveInfo; import android.database.Cursor; Loading @@ -29,6 +28,7 @@ import android.os.Parcelable; import android.provider.DocumentsContract; import android.support.annotation.VisibleForTesting; import android.util.Log; import android.view.DragEvent; import com.android.documentsui.AbstractActionHandler.CommonAddons; import com.android.documentsui.LoadDocStackTask.LoadDocStackCallback; Loading @@ -40,10 +40,9 @@ import com.android.documentsui.base.Lookup; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.Shared; import com.android.documentsui.base.State; import com.android.documentsui.dirlist.AnimationView.AnimationType; import com.android.documentsui.dirlist.AnimationView; import com.android.documentsui.dirlist.AnimationView.AnimationType; import com.android.documentsui.dirlist.DocumentDetails; import com.android.documentsui.dirlist.DocumentsAdapter; import com.android.documentsui.dirlist.FocusHandler; import com.android.documentsui.dirlist.Model; import com.android.documentsui.files.LauncherActivity; Loading @@ -58,7 +57,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.concurrent.Executor; import java.util.function.Consumer; import javax.annotation.Nullable; Loading Loading @@ -181,7 +179,7 @@ public abstract class AbstractActionHandler<T extends Activity & CommonAddons> } @Override public boolean dropOn(ClipData data, RootInfo root) { public boolean dropOn(DragEvent event, RootInfo root) { throw new UnsupportedOperationException("Can't open an app."); } Loading src/com/android/documentsui/ActionHandler.java +3 −2 Original line number Diff line number Diff line Loading @@ -16,10 +16,11 @@ package com.android.documentsui; import android.content.ClipData; import android.content.ContentProvider; import android.content.Intent; import android.content.pm.ResolveInfo; import android.net.Uri; import android.view.DragEvent; import com.android.documentsui.base.BooleanConsumer; import com.android.documentsui.base.DocumentInfo; Loading @@ -37,7 +38,7 @@ public interface ActionHandler { /** * Drops documents on a root. */ boolean dropOn(ClipData data, RootInfo root); boolean dropOn(DragEvent event, RootInfo root); /** * Attempts to eject the identified root. Returns a boolean answer to listener. Loading src/com/android/documentsui/files/ActionHandler.java +13 −8 Original line number Diff line number Diff line Loading @@ -21,21 +21,20 @@ import static com.android.documentsui.base.Shared.ENABLE_OMC_API_FEATURES; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.ClipData; import android.content.ContentProviderClient; import android.content.ContentResolver; import android.content.Intent; import android.net.Uri; import android.provider.DocumentsContract; import android.provider.DocumentsContract.Root; import android.provider.DocumentsContract.Document; import android.util.Log; import android.view.DragEvent; import com.android.documentsui.AbstractActionHandler; import com.android.documentsui.ActionModeAddons; import com.android.documentsui.ActivityConfig; import com.android.documentsui.DocumentsAccess; import com.android.documentsui.DocumentsApplication; import com.android.documentsui.DragAndDropHelper; import com.android.documentsui.Injector; import com.android.documentsui.Metrics; import com.android.documentsui.R; Loading @@ -53,14 +52,12 @@ import com.android.documentsui.clipping.DocumentClipper; import com.android.documentsui.clipping.UrisSupplier; import com.android.documentsui.dirlist.AnimationView; import com.android.documentsui.dirlist.DocumentDetails; import com.android.documentsui.dirlist.FocusHandler; import com.android.documentsui.dirlist.Model; import com.android.documentsui.files.ActionHandler.Addons; import com.android.documentsui.queries.SearchViewManager; import com.android.documentsui.roots.GetRootDocumentTask; import com.android.documentsui.roots.RootsAccess; import com.android.documentsui.selection.Selection; import com.android.documentsui.selection.SelectionManager; import com.android.documentsui.services.FileOperation; import com.android.documentsui.services.FileOperationService; import com.android.documentsui.services.FileOperations; Loading Loading @@ -109,17 +106,25 @@ public class ActionHandler<T extends Activity & Addons> extends AbstractActionHa } @Override public boolean dropOn(ClipData data, RootInfo root) { public boolean dropOn(DragEvent event, RootInfo root) { new GetRootDocumentTask( root, mActivity, mActivity::isDestroyed, (DocumentInfo doc) -> mClipper.copyFromClipData( root, doc, data, mDialogs::showFileOperationStatus) (DocumentInfo rootDoc) -> dropOnCallback(event, rootDoc, root) ).executeOnExecutor(mExecutors.lookup(root.authority)); return true; } private void dropOnCallback(DragEvent event, DocumentInfo rootDoc, RootInfo root) { if (!DragAndDropHelper.canCopyTo(event.getLocalState(), rootDoc)) { return; } mClipper.copyFromClipData( root, rootDoc, event.getClipData(), mDialogs::showFileOperationStatus); } @Override public void openSelectedInNewWindow() { Selection selection = getStableSelection(); Loading src/com/android/documentsui/sidebar/Item.java +2 −4 Original line number Diff line number Diff line Loading @@ -17,8 +17,7 @@ package com.android.documentsui.sidebar; import android.annotation.LayoutRes; import android.content.ClipData; import android.content.Context; import android.view.DragEvent; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; Loading @@ -27,7 +26,6 @@ import android.view.ViewGroup; import com.android.documentsui.MenuManager; import com.android.documentsui.R; import com.android.documentsui.base.CheckedTask.Check; /** * Describes a root navigation point of documents. Each one of them is presented as an item in the Loading Loading @@ -60,7 +58,7 @@ abstract class Item { abstract void open(); boolean dropOn(ClipData data) { boolean dropOn(DragEvent event) { return false; } Loading src/com/android/documentsui/sidebar/RootItem.java +3 −3 Original line number Diff line number Diff line Loading @@ -17,11 +17,11 @@ package com.android.documentsui.sidebar; import android.annotation.Nullable; import android.content.ClipData; import android.content.Context; import android.provider.DocumentsProvider; import android.text.TextUtils; import android.text.format.Formatter; import android.view.DragEvent; import android.view.Menu; import android.view.MenuInflater; import android.view.View; Loading Loading @@ -106,8 +106,8 @@ class RootItem extends Item { } @Override boolean dropOn(ClipData data) { return mActionHandler.dropOn(data, root); boolean dropOn(DragEvent event) { return mActionHandler.dropOn(event, root); } @Override Loading Loading
src/com/android/documentsui/AbstractActionHandler.java +3 −5 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import static com.android.documentsui.base.DocumentInfo.getCursorInt; import static com.android.documentsui.base.DocumentInfo.getCursorString; import android.app.Activity; import android.content.ClipData; import android.content.Intent; import android.content.pm.ResolveInfo; import android.database.Cursor; Loading @@ -29,6 +28,7 @@ import android.os.Parcelable; import android.provider.DocumentsContract; import android.support.annotation.VisibleForTesting; import android.util.Log; import android.view.DragEvent; import com.android.documentsui.AbstractActionHandler.CommonAddons; import com.android.documentsui.LoadDocStackTask.LoadDocStackCallback; Loading @@ -40,10 +40,9 @@ import com.android.documentsui.base.Lookup; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.Shared; import com.android.documentsui.base.State; import com.android.documentsui.dirlist.AnimationView.AnimationType; import com.android.documentsui.dirlist.AnimationView; import com.android.documentsui.dirlist.AnimationView.AnimationType; import com.android.documentsui.dirlist.DocumentDetails; import com.android.documentsui.dirlist.DocumentsAdapter; import com.android.documentsui.dirlist.FocusHandler; import com.android.documentsui.dirlist.Model; import com.android.documentsui.files.LauncherActivity; Loading @@ -58,7 +57,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.concurrent.Executor; import java.util.function.Consumer; import javax.annotation.Nullable; Loading Loading @@ -181,7 +179,7 @@ public abstract class AbstractActionHandler<T extends Activity & CommonAddons> } @Override public boolean dropOn(ClipData data, RootInfo root) { public boolean dropOn(DragEvent event, RootInfo root) { throw new UnsupportedOperationException("Can't open an app."); } Loading
src/com/android/documentsui/ActionHandler.java +3 −2 Original line number Diff line number Diff line Loading @@ -16,10 +16,11 @@ package com.android.documentsui; import android.content.ClipData; import android.content.ContentProvider; import android.content.Intent; import android.content.pm.ResolveInfo; import android.net.Uri; import android.view.DragEvent; import com.android.documentsui.base.BooleanConsumer; import com.android.documentsui.base.DocumentInfo; Loading @@ -37,7 +38,7 @@ public interface ActionHandler { /** * Drops documents on a root. */ boolean dropOn(ClipData data, RootInfo root); boolean dropOn(DragEvent event, RootInfo root); /** * Attempts to eject the identified root. Returns a boolean answer to listener. Loading
src/com/android/documentsui/files/ActionHandler.java +13 −8 Original line number Diff line number Diff line Loading @@ -21,21 +21,20 @@ import static com.android.documentsui.base.Shared.ENABLE_OMC_API_FEATURES; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.ClipData; import android.content.ContentProviderClient; import android.content.ContentResolver; import android.content.Intent; import android.net.Uri; import android.provider.DocumentsContract; import android.provider.DocumentsContract.Root; import android.provider.DocumentsContract.Document; import android.util.Log; import android.view.DragEvent; import com.android.documentsui.AbstractActionHandler; import com.android.documentsui.ActionModeAddons; import com.android.documentsui.ActivityConfig; import com.android.documentsui.DocumentsAccess; import com.android.documentsui.DocumentsApplication; import com.android.documentsui.DragAndDropHelper; import com.android.documentsui.Injector; import com.android.documentsui.Metrics; import com.android.documentsui.R; Loading @@ -53,14 +52,12 @@ import com.android.documentsui.clipping.DocumentClipper; import com.android.documentsui.clipping.UrisSupplier; import com.android.documentsui.dirlist.AnimationView; import com.android.documentsui.dirlist.DocumentDetails; import com.android.documentsui.dirlist.FocusHandler; import com.android.documentsui.dirlist.Model; import com.android.documentsui.files.ActionHandler.Addons; import com.android.documentsui.queries.SearchViewManager; import com.android.documentsui.roots.GetRootDocumentTask; import com.android.documentsui.roots.RootsAccess; import com.android.documentsui.selection.Selection; import com.android.documentsui.selection.SelectionManager; import com.android.documentsui.services.FileOperation; import com.android.documentsui.services.FileOperationService; import com.android.documentsui.services.FileOperations; Loading Loading @@ -109,17 +106,25 @@ public class ActionHandler<T extends Activity & Addons> extends AbstractActionHa } @Override public boolean dropOn(ClipData data, RootInfo root) { public boolean dropOn(DragEvent event, RootInfo root) { new GetRootDocumentTask( root, mActivity, mActivity::isDestroyed, (DocumentInfo doc) -> mClipper.copyFromClipData( root, doc, data, mDialogs::showFileOperationStatus) (DocumentInfo rootDoc) -> dropOnCallback(event, rootDoc, root) ).executeOnExecutor(mExecutors.lookup(root.authority)); return true; } private void dropOnCallback(DragEvent event, DocumentInfo rootDoc, RootInfo root) { if (!DragAndDropHelper.canCopyTo(event.getLocalState(), rootDoc)) { return; } mClipper.copyFromClipData( root, rootDoc, event.getClipData(), mDialogs::showFileOperationStatus); } @Override public void openSelectedInNewWindow() { Selection selection = getStableSelection(); Loading
src/com/android/documentsui/sidebar/Item.java +2 −4 Original line number Diff line number Diff line Loading @@ -17,8 +17,7 @@ package com.android.documentsui.sidebar; import android.annotation.LayoutRes; import android.content.ClipData; import android.content.Context; import android.view.DragEvent; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; Loading @@ -27,7 +26,6 @@ import android.view.ViewGroup; import com.android.documentsui.MenuManager; import com.android.documentsui.R; import com.android.documentsui.base.CheckedTask.Check; /** * Describes a root navigation point of documents. Each one of them is presented as an item in the Loading Loading @@ -60,7 +58,7 @@ abstract class Item { abstract void open(); boolean dropOn(ClipData data) { boolean dropOn(DragEvent event) { return false; } Loading
src/com/android/documentsui/sidebar/RootItem.java +3 −3 Original line number Diff line number Diff line Loading @@ -17,11 +17,11 @@ package com.android.documentsui.sidebar; import android.annotation.Nullable; import android.content.ClipData; import android.content.Context; import android.provider.DocumentsProvider; import android.text.TextUtils; import android.text.format.Formatter; import android.view.DragEvent; import android.view.Menu; import android.view.MenuInflater; import android.view.View; Loading Loading @@ -106,8 +106,8 @@ class RootItem extends Item { } @Override boolean dropOn(ClipData data) { return mActionHandler.dropOn(data, root); boolean dropOn(DragEvent event) { return mActionHandler.dropOn(event, root); } @Override Loading