Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6738b293 authored by Steve McKay's avatar Steve McKay Committed by Android (Google) Code Review
Browse files

Merge "Don't enable move to for non deletable selections." into nyc-dev

parents 76c970de 27d20a30
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -491,7 +491,8 @@ public class DirectoryFragment extends Fragment
            // triggered on "silent" selection updates (i.e. we might be reacting to unfinalized
            // selection changes here)
            final int docFlags = getCursorInt(cursor, Document.COLUMN_FLAGS);
            if ((docFlags & Document.FLAG_SUPPORTS_DELETE) == 0) {
            if ((docFlags & Document.FLAG_SUPPORTS_DELETE) == 0
                    && (docFlags & Document.FLAG_SUPPORTS_DELETE) == 0) {
                mNoDeleteCount += selected ? 1 : -1;
            }
            if ((docFlags & Document.FLAG_SUPPORTS_RENAME) != 0) {
@@ -1501,7 +1502,8 @@ public class DirectoryFragment extends Fragment
                    contentsUri = DocumentsContract.setManageMode(contentsUri);
                }
                return new DirectoryLoader(
                        context, mType, mRoot, mDocument, contentsUri, state.userSortOrder, mSearchMode);
                        context, mType, mRoot, mDocument, contentsUri, state.userSortOrder,
                        mSearchMode);
            case TYPE_RECENT_OPEN:
                final RootsCache roots = DocumentsApplication.getRootsCache(context);
                return new RecentsLoader(context, roots, state);
+24 −39
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ import static com.android.documentsui.State.ACTION_OPEN_TREE;
import static com.android.internal.util.Preconditions.checkArgument;

import android.content.Context;
import android.os.SystemProperties;
import android.provider.DocumentsContract.Document;
import android.util.Log;
import android.view.Menu;
@@ -66,8 +65,8 @@ public abstract class FragmentTuner {
    }


    public abstract void updateActionMenu(Menu menu, int dirType, boolean canDelete,
            boolean canRename);
    public abstract void updateActionMenu(
            Menu menu, @ResultType int dirType, boolean canDelete, boolean canRename);

    // Subtly different from isDocumentEnabled. The reason may be illuminated as follows.
    // A folder is enabled such that it may be double clicked, even in settings
@@ -140,28 +139,17 @@ public abstract class FragmentTuner {
        }

        @Override
        public void updateActionMenu(Menu menu, int dirType, boolean canDelete,
                boolean canRename) {
        public void updateActionMenu(
                Menu menu, @ResultType int dirType, boolean canDelete, boolean canRename) {

            boolean copyEnabled = dirType != DirectoryFragment.TYPE_RECENT_OPEN;
            boolean moveEnabled =
                    SystemProperties.getBoolean("debug.documentsui.enable_move", false);
            menu.findItem(R.id.menu_copy_to_clipboard).setEnabled(copyEnabled);

            final MenuItem open = menu.findItem(R.id.menu_open);
            final MenuItem share = menu.findItem(R.id.menu_share);
            final MenuItem delete = menu.findItem(R.id.menu_delete);
            final MenuItem copyTo = menu.findItem(R.id.menu_copy_to);
            final MenuItem moveTo = menu.findItem(R.id.menu_move_to);
            final MenuItem rename = menu.findItem(R.id.menu_rename);
            MenuItem open = menu.findItem(R.id.menu_open);
            MenuItem share = menu.findItem(R.id.menu_share);
            MenuItem delete = menu.findItem(R.id.menu_delete);
            MenuItem rename = menu.findItem(R.id.menu_rename);

            open.setVisible(true);
            share.setVisible(false);
            delete.setVisible(false);
            copyTo.setVisible(copyEnabled);
            copyTo.setEnabled(copyEnabled);
            moveTo.setVisible(moveEnabled);
            moveTo.setEnabled(moveEnabled);
            rename.setVisible(false);
        }

@@ -186,27 +174,24 @@ public abstract class FragmentTuner {
        }

        @Override
        public void updateActionMenu(Menu menu, int dirType, boolean canDelete,
                boolean canRename) {
            checkArgument(dirType != DirectoryFragment.TYPE_RECENT_OPEN);

            boolean moveEnabled =
                    SystemProperties.getBoolean("debug.documentsui.enable_move", false);
            menu.findItem(R.id.menu_copy_to_clipboard).setEnabled(true);

            final MenuItem open = menu.findItem(R.id.menu_open);
            final MenuItem share = menu.findItem(R.id.menu_share);
            final MenuItem delete = menu.findItem(R.id.menu_delete);
            final MenuItem copyTo = menu.findItem(R.id.menu_copy_to);
            final MenuItem moveTo = menu.findItem(R.id.menu_move_to);
            final MenuItem rename = menu.findItem(R.id.menu_rename);
        public void updateActionMenu(
                Menu menu, @ResultType int resultType, boolean canDelete, boolean canRename) {
            checkArgument(resultType != DirectoryFragment.TYPE_RECENT_OPEN);

            MenuItem open = menu.findItem(R.id.menu_open);
            MenuItem delete = menu.findItem(R.id.menu_delete);
            MenuItem copyTo = menu.findItem(R.id.menu_copy_to);
            MenuItem moveTo = menu.findItem(R.id.menu_move_to);
            MenuItem rename = menu.findItem(R.id.menu_rename);
            MenuItem copy = menu.findItem(R.id.menu_copy_to_clipboard);

            open.setVisible(false);
            delete.setVisible(canDelete);
            copy.setEnabled(true);  // to clipboard
            copyTo.setVisible(true);
            copyTo.setEnabled(true);
            moveTo.setVisible(moveEnabled);
            moveTo.setEnabled(moveEnabled);
            moveTo.setVisible(true);
            moveTo.setEnabled(true);
            rename.setVisible(false);
        }

@@ -226,8 +211,8 @@ public abstract class FragmentTuner {
        }

        @Override
        public void updateActionMenu(Menu menu, int dirType, boolean canDelete,
                boolean canRename) {
        public void updateActionMenu(
                Menu menu, @ResultType int dirType, boolean canDelete, boolean canRename) {

            MenuItem copy = menu.findItem(R.id.menu_copy_to_clipboard);
            MenuItem paste = menu.findItem(R.id.menu_paste_from_clipboard);
@@ -239,10 +224,10 @@ public abstract class FragmentTuner {

            menu.findItem(R.id.menu_share).setVisible(true);
            menu.findItem(R.id.menu_delete).setVisible(canDelete);

            menu.findItem(R.id.menu_open).setVisible(false);
            menu.findItem(R.id.menu_copy_to).setVisible(true);
            menu.findItem(R.id.menu_move_to).setVisible(true);
            menu.findItem(R.id.menu_move_to).setEnabled(canDelete);

            Menus.disableHiddenItems(menu, copy, paste);
        }
+10 −0
Original line number Diff line number Diff line
@@ -207,7 +207,13 @@ public class DocumentInfo implements Durable, Parcelable {
        return "Document{"
                + "docId=" + documentId
                + ", name=" + displayName
                + ", isContainer=" + isContainer()
                + ", isDirectory=" + isDirectory()
                + ", isArchive=" + isArchive()
                + ", isVirtualDocument=" + isVirtualDocument()
                + ", isDeleteSupported=" + isDeleteSupported()
                + ", isCreateSupported=" + isCreateSupported()
                + ", isRenameSupported=" + isRenameSupported()
                + "}";
    }

@@ -231,6 +237,10 @@ public class DocumentInfo implements Durable, Parcelable {
        return (flags & Document.FLAG_SUPPORTS_DELETE) != 0;
    }

    public boolean isRemoveSupported() {
        return (flags & Document.FLAG_SUPPORTS_REMOVE) != 0;
    }

    public boolean isRenameSupported() {
        return (flags & Document.FLAG_SUPPORTS_RENAME) != 0;
    }