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
This commit is contained in:
Daichi Hirono
2016-03-15 12:47:57 +09:00
parent 62006a72a6
commit 72843c13b6

View File

@@ -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);
}
}
}