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

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

Merge "Merge BROWSE and BROWSE_ALL actions."

parents ab6fc9eb 83df8c07
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -438,6 +438,8 @@ public class VolumeInfo implements Parcelable {
        final Intent intent = new Intent(DocumentsContract.ACTION_BROWSE_DOCUMENT_ROOT);
        intent.addCategory(Intent.CATEGORY_DEFAULT);
        intent.setData(uri);
        intent.putExtra(DocumentsContract.EXTRA_SHOW_FILESIZE, true);
        intent.putExtra(DocumentsContract.EXTRA_SHOW_ADVANCED, true);
        return intent;
    }

+4 −1
Original line number Diff line number Diff line
@@ -92,6 +92,9 @@ public final class DocumentsContract {
    /** {@hide} */
    public static final String EXTRA_SHOW_ADVANCED = "android.content.extra.SHOW_ADVANCED";

    /** {@hide} */
    public static final String EXTRA_SHOW_FILESIZE = "android.content.extra.SHOW_FILESIZE";

    /** {@hide} */
    public static final String EXTRA_TARGET_URI = "android.content.extra.TARGET_URI";

+5 −5
Original line number Diff line number Diff line
@@ -35,11 +35,6 @@
                <action android:name="android.intent.action.OPEN_DOCUMENT_TREE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.provider.action.BROWSE_DOCUMENT_ROOT" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="vnd.android.document/root" />
            </intent-filter>
        </activity>

        <activity
@@ -63,6 +58,11 @@
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.provider.action.BROWSE_DOCUMENT_ROOT" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="vnd.android.document/root" />
            </intent-filter>
        </activity>

        <provider
+23 −29
Original line number Diff line number Diff line
@@ -16,13 +16,6 @@

package com.android.documentsui;

import static com.android.documentsui.BaseActivity.State.ACTION_BROWSE;
import static com.android.documentsui.BaseActivity.State.ACTION_CREATE;
import static com.android.documentsui.BaseActivity.State.ACTION_GET_CONTENT;
import static com.android.documentsui.BaseActivity.State.ACTION_MANAGE;
import static com.android.documentsui.BaseActivity.State.ACTION_OPEN;
import static com.android.documentsui.BaseActivity.State.ACTION_OPEN_COPY_DESTINATION;
import static com.android.documentsui.BaseActivity.State.ACTION_OPEN_TREE;
import static com.android.documentsui.DirectoryFragment.ANIM_DOWN;
import static com.android.documentsui.DirectoryFragment.ANIM_NONE;
import static com.android.documentsui.DirectoryFragment.ANIM_SIDE;
@@ -124,22 +117,6 @@ abstract class BaseActivity extends Activity {
        setResult(Activity.RESULT_CANCELED);
    }

    @Override
    public void onResume() {
        super.onResume();

        final State state = getDisplayState();
        final RootInfo root = getCurrentRoot();

        // If we're browsing a specific root, and that root went away, then we
        // have no reason to hang around
        if (state.action == State.ACTION_BROWSE && root != null) {
            if (mRoots.getRootBlocking(root.authority, root.rootId) == null) {
                finish();
            }
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        boolean showMenu = super.onCreateOptionsMenu(menu);
@@ -178,8 +155,10 @@ abstract class BaseActivity extends Activity {
        State state = getDisplayState();

        sortSize.setVisible(state.showSize); // Only sort by size when visible
        fileSize.setVisible(!state.showSize);
        grid.setVisible(state.derivedMode != State.MODE_GRID);
        list.setVisible(state.derivedMode != State.MODE_LIST);
        advanced.setVisible(!mState.showAdvanced);
        settings.setVisible((root.flags & Root.FLAG_HAS_SETTINGS) != 0);

        return shown;
@@ -189,13 +168,17 @@ abstract class BaseActivity extends Activity {
        State state = new State();

        final Intent intent = getIntent();
        final String action = intent.getAction();

        state.localOnly = intent.getBooleanExtra(Intent.EXTRA_LOCAL_ONLY, false);

        state.forceSize = intent.getBooleanExtra(DocumentsContract.EXTRA_SHOW_FILESIZE, false);
        state.showSize = state.forceSize || LocalPreferences.getDisplayFileSize(this);

        state.forceAdvanced = intent.getBooleanExtra(DocumentsContract.EXTRA_SHOW_ADVANCED, false);
        state.showAdvanced = state.forceAdvanced ||
                LocalPreferences.getDisplayAdvancedDevices(this);
        state.showAdvanced = state.forceAdvanced
                || LocalPreferences.getDisplayAdvancedDevices(this);

        state.initAcceptMimes(intent);
        state.excludedAuthorities = getExcludedAuthorities();

        return state;
@@ -219,7 +202,7 @@ abstract class BaseActivity extends Activity {
        if (mRoots.isRecentsRoot(root)) {
            onCurrentDirectoryChanged(ANIM_SIDE);
        } else {
            new PickRootTask(root).executeOnExecutor(getCurrentExecutor());
            new PickRootTask(root).executeOnExecutor(getExecutorForCurrentDirectory());
        }
    }

@@ -399,6 +382,7 @@ abstract class BaseActivity extends Activity {
        public int derivedSortOrder = SORT_ORDER_DISPLAY_NAME;

        public boolean allowMultiple;
        public boolean forceSize ;
        public boolean showSize;
        public boolean localOnly ;
        public boolean forceAdvanced ;
@@ -429,7 +413,6 @@ abstract class BaseActivity extends Activity {
        public static final int ACTION_OPEN_TREE = 4;
        public static final int ACTION_MANAGE = 5;
        public static final int ACTION_BROWSE = 6;
        public static final int ACTION_BROWSE_ALL = 7;
        public static final int ACTION_OPEN_COPY_DESTINATION = 8;

        public static final int MODE_UNKNOWN = 0;
@@ -441,6 +424,15 @@ abstract class BaseActivity extends Activity {
        public static final int SORT_ORDER_LAST_MODIFIED = 2;
        public static final int SORT_ORDER_SIZE = 3;

        public void initAcceptMimes(Intent intent) {
            if (intent.hasExtra(Intent.EXTRA_MIME_TYPES)) {
                acceptMimes = intent.getStringArrayExtra(Intent.EXTRA_MIME_TYPES);
            } else {
                String glob = intent.getType();
                acceptMimes = new String[] { glob != null ? glob : "*/*" };
            }
        }

        @Override
        public int describeContents() {
            return 0;
@@ -453,6 +445,7 @@ abstract class BaseActivity extends Activity {
            out.writeStringArray(acceptMimes);
            out.writeInt(userSortOrder);
            out.writeInt(allowMultiple ? 1 : 0);
            out.writeInt(forceSize ? 1 : 0);
            out.writeInt(showSize ? 1 : 0);
            out.writeInt(localOnly ? 1 : 0);
            out.writeInt(forceAdvanced ? 1 : 0);
@@ -475,6 +468,7 @@ abstract class BaseActivity extends Activity {
                state.acceptMimes = in.readStringArray();
                state.userSortOrder = in.readInt();
                state.allowMultiple = in.readInt() != 0;
                state.forceSize = in.readInt() != 0;
                state.showSize = in.readInt() != 0;
                state.localOnly = in.readInt() != 0;
                state.forceAdvanced = in.readInt() != 0;
@@ -562,7 +556,7 @@ abstract class BaseActivity extends Activity {
        return getDisplayState().stack.peek();
    }

    public Executor getCurrentExecutor() {
    public Executor getExecutorForCurrentDirectory() {
        final DocumentInfo cwd = getCurrentDirectory();
        if (cwd != null && cwd.authority != null) {
            return ProviderExecutor.forAuthority(cwd.authority);
+10 −15
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.documentsui;

import static com.android.documentsui.BaseActivity.State.ACTION_BROWSE;
import static com.android.documentsui.BaseActivity.State.ACTION_BROWSE_ALL;
import static com.android.documentsui.BaseActivity.State.ACTION_CREATE;
import static com.android.documentsui.BaseActivity.State.ACTION_MANAGE;
import static com.android.documentsui.BaseActivity.State.MODE_GRID;
@@ -101,7 +100,6 @@ import com.android.documentsui.RecentsProvider.StateColumns;
import com.android.documentsui.model.DocumentInfo;
import com.android.documentsui.model.DocumentStack;
import com.android.documentsui.model.RootInfo;
import com.android.internal.util.Preconditions;

import com.google.common.collect.Lists;

@@ -1554,9 +1552,9 @@ public class DirectoryFragment extends Fragment {
    }

    private FragmentTuner pickFragmentTuner(final State state) {
        return state.action == ACTION_BROWSE_ALL
        return state.action == ACTION_BROWSE
                ? new FilesTuner()
                : new DefaultTuner(state);
                : new DefaultTuner(state.action);
    }

    /**
@@ -1593,15 +1591,14 @@ public class DirectoryFragment extends Fragment {
     */
    private static final class DefaultTuner implements FragmentTuner {

        private final State mState;
        private final boolean mManaging;

        public DefaultTuner(State state) {
            mState = state;
        public DefaultTuner(int action) {
            mManaging = (action == ACTION_MANAGE);
        }

        @Override
        public void updateActionMenu(Menu menu, int dirType, boolean canDelete) {
            Preconditions.checkState(mState.action != ACTION_BROWSE_ALL);

            final MenuItem open = menu.findItem(R.id.menu_open);
            final MenuItem share = menu.findItem(R.id.menu_share);
@@ -1610,14 +1607,11 @@ public class DirectoryFragment extends Fragment {
            final MenuItem moveTo = menu.findItem(R.id.menu_move_to);
            final MenuItem copyToClipboard = menu.findItem(R.id.menu_copy_to_clipboard);

            final boolean manageOrBrowse = (mState.action == ACTION_MANAGE
                    || mState.action == ACTION_BROWSE);

            open.setVisible(!manageOrBrowse);
            share.setVisible(manageOrBrowse);
            delete.setVisible(manageOrBrowse && canDelete);
            open.setVisible(!mManaging);
            share.setVisible(mManaging);
            delete.setVisible(mManaging && canDelete);
            // Disable copying from the Recents view.
            copyTo.setVisible(manageOrBrowse && dirType != TYPE_RECENT_OPEN);
            copyTo.setVisible(mManaging && dirType != TYPE_RECENT_OPEN);
            moveTo.setVisible(SystemProperties.getBoolean("debug.documentsui.enable_move", false));

            // Only shown in files mode.
@@ -1634,6 +1628,7 @@ public class DirectoryFragment extends Fragment {
    private static final class FilesTuner implements FragmentTuner {
        @Override
        public void updateActionMenu(Menu menu, int dirType, boolean canDelete) {

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