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

Commit 22601f98 authored by Daichi Hirono's avatar Daichi Hirono
Browse files

Move to downloads root instead of home root.

Previously we assume the home root exists always, but while migrating
internal storage, the home root is temporary removed from Android. Since
we open donwnloads root by default now, the CL lets Files app move to
the downloads directory instead of home root when the current directory
is removed.

BUG=27570929

Change-Id: I89efb1ae32ba8ae7269b3242035d5b67114fcb54
parent 2392d997
Loading
Loading
Loading
Loading
+12 −12
Original line number Diff line number Diff line
@@ -670,7 +670,7 @@ public abstract class BaseActivity extends Activity

    private static final class HandleRootsChangedTask
            extends PairedTask<BaseActivity, RootInfo, RootInfo> {
        DocumentInfo mHome;
        DocumentInfo mDownloadsDocument;

        public HandleRootsChangedTask(BaseActivity activity) {
            super(activity);
@@ -682,28 +682,28 @@ public abstract class BaseActivity extends Activity

            final RootInfo currentRoot = roots[0];
            final Collection<RootInfo> cachedRoots = mOwner.mRoots.getRootsBlocking();
            RootInfo homeRoot = null;
            RootInfo downloadsRoot = null;
            for (final RootInfo root : cachedRoots) {
                if (root.isHome()) {
                    homeRoot = root;
                if (root.isDownloads()) {
                    downloadsRoot = root;
                }
                if (root.getUri().equals(currentRoot.getUri())) {
                    // We don't need to change the current root as the current root was not removed.
                    return null;
                }
            }
            assert(homeRoot != null);
            mHome = mOwner.getRootDocumentBlocking(homeRoot);
            return homeRoot;
            assert(downloadsRoot != null);
            mDownloadsDocument = mOwner.getRootDocumentBlocking(downloadsRoot);
            return downloadsRoot;
        }

        @Override
        protected void finish(RootInfo homeRoot) {
            if (homeRoot != null && mHome != null) {
        protected void finish(RootInfo downloadsRoot) {
            if (downloadsRoot != null && mDownloadsDocument != null) {
                // Clear entire backstack and start in new root
                mOwner.mState.onRootChanged(homeRoot);
                mOwner.mSearchManager.update(homeRoot);
                mOwner.openContainerDocument(mHome);
                mOwner.mState.onRootChanged(downloadsRoot);
                mOwner.mSearchManager.update(downloadsRoot);
                mOwner.openContainerDocument(mDownloadsDocument);
            }
        }
    }