OSDN Git Service

When launched into empty recents, show drawer.
authorJeff Sharkey <jsharkey@android.com>
Mon, 7 Oct 2013 21:08:17 +0000 (14:08 -0700)
committerJeff Sharkey <jsharkey@android.com>
Mon, 7 Oct 2013 21:08:20 +0000 (14:08 -0700)
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

packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java
packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java
packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java

index 59caad0..d34fb07 100644 (file)
@@ -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<Parcelable> container = state.dirState.remove(mStateKey);
                 if (container != null && !getArguments().getBoolean(EXTRA_IGNORE_STATE, false)) {
index 3954173..05766f5 100644 (file)
@@ -109,6 +109,11 @@ public class RecentsCreateFragment extends Fragment {
             public void onLoadFinished(
                     Loader<List<DocumentStack>> loader, List<DocumentStack> data) {
                 mAdapter.swapStacks(data);
+
+                // When launched into empty recents, show drawer
+                if (mAdapter.isEmpty() && !state.stackTouched) {
+                    ((DocumentsActivity) context).setRootsDrawerOpen(true);
+                }
             }
 
             @Override
index 2fb12bb..fdbc3ab 100644 (file)
@@ -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;
+                }
             }
         }
     }