From 845fe50423acd8e279ef37888f674deb52fd5fe1 Mon Sep 17 00:00:00 2001 From: Ben Lin Date: Wed, 13 Apr 2016 16:33:20 -0700 Subject: [PATCH] Disable auto-drawer opening if intent is creating doc on empty dir. Bug: 28170000 Change-Id: Ie7e3cb51dee9bc43d04ba15924b1a23359b784be --- .../com/android/documentsui/RecentsCreateFragment.java | 6 ++++-- .../com/android/documentsui/dirlist/FragmentTuner.java | 8 +++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java b/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java index 0e2762291b094..2be93b83fbae5 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java @@ -17,6 +17,7 @@ package com.android.documentsui; import static com.android.documentsui.Shared.TAG; +import static com.android.documentsui.State.ACTION_CREATE; import android.app.Fragment; import android.app.FragmentManager; @@ -107,8 +108,9 @@ public class RecentsCreateFragment extends Fragment { mAdapter.update(data); // When launched into empty recents, show drawer - if (mAdapter.isEmpty() && !state.hasLocationChanged() && - context instanceof DocumentsActivity) { + if (mAdapter.isEmpty() && !state.hasLocationChanged() + && state.action != ACTION_CREATE + && context instanceof DocumentsActivity) { ((DocumentsActivity) context).setRootsDrawerOpen(true); } } diff --git a/packages/DocumentsUI/src/com/android/documentsui/dirlist/FragmentTuner.java b/packages/DocumentsUI/src/com/android/documentsui/dirlist/FragmentTuner.java index 016cc9e889dfb..02b8bfe5dcaa1 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/dirlist/FragmentTuner.java +++ b/packages/DocumentsUI/src/com/android/documentsui/dirlist/FragmentTuner.java @@ -90,6 +90,10 @@ public abstract class FragmentTuner { */ private static final class DocumentsTuner extends FragmentTuner { + // We use this to keep track of whether a model has been previously loaded or not so we can + // open the drawer on empty directories on first launch + private boolean mModelPreviousLoaded; + public DocumentsTuner(Context context, State state) { super(context, state); } @@ -178,10 +182,12 @@ public abstract class FragmentTuner { showDrawer = true; } - if (showDrawer && !mState.hasInitialLocationChanged() && !isSearch) { + if (showDrawer && !mState.hasInitialLocationChanged() && !isSearch + && !mModelPreviousLoaded) { // This noops on layouts without drawer, so no need to guard. ((BaseActivity) mContext).setRootsDrawerOpen(true); } + mModelPreviousLoaded = true; } @Override