From a82c2e24bc226c123075331cdaafb171b3b07b85 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Mon, 7 Oct 2013 14:08:17 -0700 Subject: [PATCH] When launched into empty recents, show drawer. Pull out drawer to give users more context about meaningful places to navigate to. Also fix bug where restored roots weren't being highlighted. Bug: 10852518 Change-Id: Id294f6923477ca4dc505c4b0a21a5bdf8b722cf4 --- .../src/com/android/documentsui/DirectoryFragment.java | 5 +++++ .../com/android/documentsui/RecentsCreateFragment.java | 5 +++++ .../src/com/android/documentsui/RootsFragment.java | 9 ++++++--- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java index 59caad0ecf573..d34fb0758661e 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java @@ -291,6 +291,11 @@ public class DirectoryFragment extends Fragment { updateDisplayState(); + // When launched into empty recents, show drawer + if (mType == TYPE_RECENT_OPEN && mAdapter.isEmpty() && !state.stackTouched) { + ((DocumentsActivity) context).setRootsDrawerOpen(true); + } + // Restore any previous instance state final SparseArray container = state.dirState.remove(mStateKey); if (container != null && !getArguments().getBoolean(EXTRA_IGNORE_STATE, false)) { diff --git a/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java b/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java index 39541731eda50..05766f5409d4d 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java @@ -109,6 +109,11 @@ public class RecentsCreateFragment extends Fragment { public void onLoadFinished( Loader> loader, List data) { mAdapter.swapStacks(data); + + // When launched into empty recents, show drawer + if (mAdapter.isEmpty() && !state.stackTouched) { + ((DocumentsActivity) context).setRootsDrawerOpen(true); + } } @Override diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java index 2fb12bb29233c..fdbc3abf6187a 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java @@ -142,9 +142,12 @@ public class RootsFragment extends Fragment { final RootInfo root = ((DocumentsActivity) getActivity()).getCurrentRoot(); for (int i = 0; i < mAdapter.getCount(); i++) { final Object item = mAdapter.getItem(i); - if (Objects.equal(item, root)) { - mList.setItemChecked(i, true); - return; + if (item instanceof RootItem) { + final RootInfo testRoot = ((RootItem) item).root; + if (Objects.equal(testRoot, root)) { + mList.setItemChecked(i, true); + return; + } } } }