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

Commit 4dee5f03 authored by Aga Wronska's avatar Aga Wronska Committed by Android (Google) Code Review
Browse files

Merge "Bring the change 'Open drawer when showing copy/move destination...

Merge "Bring the change 'Open drawer when showing copy/move destination screen' back after fixing problem with tests." into nyc-dev
parents 2e1d0461 a4cb878f
Loading
Loading
Loading
Loading
+2 −26
Original line number Diff line number Diff line
@@ -95,7 +95,7 @@ public class DocumentsActivity extends BaseActivity {
        }

        if (mState.restored) {
            refreshCurrentRootAndDirectory(AnimationView.ANIM_NONE);
            if (DEBUG) Log.d(TAG, "Stack already resolved");
        } else {
            // We set the activity title in AsyncTask.onPostExecute().
            // To prevent talkback from reading aloud the default title, we clear it here.
@@ -154,30 +154,6 @@ public class DocumentsActivity extends BaseActivity {
        }
    }

    private void onStackRestored(boolean restored, boolean external) {
        // Show drawer when no stack restored, but only when requesting
        // non-visual content. However, if we last used an external app,
        // drawer is always shown.

        boolean showDrawer = false;
        if (!restored) {
            showDrawer = true;
        }
        if (MimePredicate.mimeMatches(MimePredicate.VISUAL_MIMES, mState.acceptMimes)) {
            showDrawer = false;
        }
        if (external && mState.action == ACTION_GET_CONTENT) {
            showDrawer = true;
        }
        if (mState.action == ACTION_PICK_COPY_DESTINATION) {
            showDrawer = true;
        }

        if (showDrawer) {
            mNavigator.revealRootsDrawer(true);
        }
    }

    public void onAppPicked(ResolveInfo info) {
        final Intent intent = new Intent(getIntent());
        intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_FORWARD_RESULT);
@@ -515,8 +491,8 @@ public class DocumentsActivity extends BaseActivity {
        @Override
        protected void finish(Void result) {
            mState.restored = true;
            mState.external = mExternal;
            mOwner.refreshCurrentRootAndDirectory(AnimationView.ANIM_NONE);
            mOwner.onStackRestored(mRestoredStack, mExternal);
        }
    }

+6 −0
Original line number Diff line number Diff line
@@ -85,6 +85,10 @@ public class State implements android.os.Parcelable {
    public boolean showSize;
    public boolean localOnly;
    public boolean restored;
    /*
     * Indicates handler was an external app, like photos.
     */
    public boolean external;

    // Indicates that a copy operation (or move) includes a directory.
    // Why? Directory creation isn't supported by some roots (like Downloads).
@@ -182,6 +186,7 @@ public class State implements android.os.Parcelable {
        out.writeInt(showSize ? 1 : 0);
        out.writeInt(localOnly ? 1 : 0);
        out.writeInt(restored ? 1 : 0);
        out.writeInt(external ? 1 : 0);
        DurableUtils.writeToParcel(out, stack);
        out.writeMap(dirState);
        out.writeParcelable(selectedDocuments, 0);
@@ -210,6 +215,7 @@ public class State implements android.os.Parcelable {
            state.showSize = in.readInt() != 0;
            state.localOnly = in.readInt() != 0;
            state.restored = in.readInt() != 0;
            state.external = in.readInt() != 0;
            DurableUtils.readFromParcel(in, state.stack);
            in.readMap(state.dirState, loader);
            state.selectedDocuments = in.readParcelable(loader);
+17 −1
Original line number Diff line number Diff line
@@ -157,8 +157,24 @@ public abstract class FragmentTuner {

        @Override
        void onModelLoaded(Model model, @ResultType int resultType, boolean isSearch) {
            boolean showDrawer = false;

            if (MimePredicate.mimeMatches(MimePredicate.VISUAL_MIMES, mState.acceptMimes)) {
                showDrawer = false;
            }
            if (mState.external && mState.action == ACTION_GET_CONTENT) {
                showDrawer = true;
            }
            if (mState.action == ACTION_PICK_COPY_DESTINATION) {
                showDrawer = true;
            }

            // When launched into empty root, open drawer.
            if (model.isEmpty() && !mState.hasInitialLocationChanged() && !isSearch) {
            if (model.isEmpty()) {
                showDrawer = true;
            }

            if (showDrawer && !mState.hasInitialLocationChanged() && !isSearch) {
                // This noops on layouts without drawer, so no need to guard.
                ((BaseActivity) mContext).setRootsDrawerOpen(true);
            }