Merge "Revert "Open drawer when showing copy/move destination screen"" into nyc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
5c3a1525b3
@@ -95,7 +95,7 @@ public class DocumentsActivity extends BaseActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (mState.restored) {
|
if (mState.restored) {
|
||||||
if (DEBUG) Log.d(TAG, "Stack already resolved");
|
refreshCurrentRootAndDirectory(AnimationView.ANIM_NONE);
|
||||||
} else {
|
} else {
|
||||||
// We set the activity title in AsyncTask.onPostExecute().
|
// We set the activity title in AsyncTask.onPostExecute().
|
||||||
// To prevent talkback from reading aloud the default title, we clear it here.
|
// To prevent talkback from reading aloud the default title, we clear it here.
|
||||||
@@ -108,7 +108,9 @@ public class DocumentsActivity extends BaseActivity {
|
|||||||
// we restore the stack as last used from that app.
|
// we restore the stack as last used from that app.
|
||||||
if (mState.action == ACTION_PICK_COPY_DESTINATION) {
|
if (mState.action == ACTION_PICK_COPY_DESTINATION) {
|
||||||
if (DEBUG) Log.d(TAG, "Launching directly into Home directory.");
|
if (DEBUG) Log.d(TAG, "Launching directly into Home directory.");
|
||||||
loadRoot(DocumentsContract.buildHomeUri());
|
Uri homeUri = DocumentsContract.buildHomeUri();
|
||||||
|
new LoadRootTask(this, homeUri).executeOnExecutor(
|
||||||
|
ProviderExecutor.forAuthority(homeUri.getAuthority()));
|
||||||
} else {
|
} else {
|
||||||
if (DEBUG) Log.d(TAG, "Attempting to load last used stack for calling package.");
|
if (DEBUG) Log.d(TAG, "Attempting to load last used stack for calling package.");
|
||||||
new LoadLastUsedStackTask(this).execute();
|
new LoadLastUsedStackTask(this).execute();
|
||||||
@@ -154,6 +156,30 @@ 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) {
|
public void onAppPicked(ResolveInfo info) {
|
||||||
final Intent intent = new Intent(getIntent());
|
final Intent intent = new Intent(getIntent());
|
||||||
intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_FORWARD_RESULT);
|
intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_FORWARD_RESULT);
|
||||||
@@ -491,8 +517,8 @@ public class DocumentsActivity extends BaseActivity {
|
|||||||
@Override
|
@Override
|
||||||
protected void finish(Void result) {
|
protected void finish(Void result) {
|
||||||
mState.restored = true;
|
mState.restored = true;
|
||||||
mState.external = mExternal;
|
|
||||||
mOwner.refreshCurrentRootAndDirectory(AnimationView.ANIM_NONE);
|
mOwner.refreshCurrentRootAndDirectory(AnimationView.ANIM_NONE);
|
||||||
|
mOwner.onStackRestored(mRestoredStack, mExternal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -85,10 +85,6 @@ public class State implements android.os.Parcelable {
|
|||||||
public boolean showSize;
|
public boolean showSize;
|
||||||
public boolean localOnly;
|
public boolean localOnly;
|
||||||
public boolean restored;
|
public boolean restored;
|
||||||
/*
|
|
||||||
* Indicates handler was an external app, like photos.
|
|
||||||
*/
|
|
||||||
public boolean external;
|
|
||||||
|
|
||||||
// Indicates that a copy operation (or move) includes a directory.
|
// Indicates that a copy operation (or move) includes a directory.
|
||||||
// Why? Directory creation isn't supported by some roots (like Downloads).
|
// Why? Directory creation isn't supported by some roots (like Downloads).
|
||||||
@@ -186,7 +182,6 @@ public class State implements android.os.Parcelable {
|
|||||||
out.writeInt(showSize ? 1 : 0);
|
out.writeInt(showSize ? 1 : 0);
|
||||||
out.writeInt(localOnly ? 1 : 0);
|
out.writeInt(localOnly ? 1 : 0);
|
||||||
out.writeInt(restored ? 1 : 0);
|
out.writeInt(restored ? 1 : 0);
|
||||||
out.writeInt(external ? 1 : 0);
|
|
||||||
DurableUtils.writeToParcel(out, stack);
|
DurableUtils.writeToParcel(out, stack);
|
||||||
out.writeMap(dirState);
|
out.writeMap(dirState);
|
||||||
out.writeParcelable(selectedDocuments, 0);
|
out.writeParcelable(selectedDocuments, 0);
|
||||||
@@ -215,7 +210,6 @@ public class State implements android.os.Parcelable {
|
|||||||
state.showSize = in.readInt() != 0;
|
state.showSize = in.readInt() != 0;
|
||||||
state.localOnly = in.readInt() != 0;
|
state.localOnly = in.readInt() != 0;
|
||||||
state.restored = in.readInt() != 0;
|
state.restored = in.readInt() != 0;
|
||||||
state.external = in.readInt() != 0;
|
|
||||||
DurableUtils.readFromParcel(in, state.stack);
|
DurableUtils.readFromParcel(in, state.stack);
|
||||||
in.readMap(state.dirState, loader);
|
in.readMap(state.dirState, loader);
|
||||||
state.selectedDocuments = in.readParcelable(loader);
|
state.selectedDocuments = in.readParcelable(loader);
|
||||||
|
|||||||
@@ -157,27 +157,8 @@ public abstract class FragmentTuner {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
void onModelLoaded(Model model, @ResultType int resultType, boolean isSearch) {
|
void onModelLoaded(Model model, @ResultType int resultType, boolean isSearch) {
|
||||||
boolean showDrawer = false;
|
|
||||||
|
|
||||||
if (mState.restored) {
|
|
||||||
showDrawer = true;
|
|
||||||
}
|
|
||||||
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.
|
// When launched into empty root, open drawer.
|
||||||
if (model.isEmpty()) {
|
if (model.isEmpty() && !mState.hasInitialLocationChanged() && !isSearch) {
|
||||||
showDrawer = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (showDrawer && !mState.hasInitialLocationChanged() && !isSearch) {
|
|
||||||
// This noops on layouts without drawer, so no need to guard.
|
// This noops on layouts without drawer, so no need to guard.
|
||||||
((BaseActivity) mContext).setRootsDrawerOpen(true);
|
((BaseActivity) mContext).setRootsDrawerOpen(true);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user