OSDN Git Service

Clear selection mode when changing root
authorAga Wronska <agawronska@google.com>
Fri, 26 Feb 2016 19:36:07 +0000 (11:36 -0800)
committerAga Wronska <agawronska@google.com>
Fri, 26 Feb 2016 21:26:35 +0000 (13:26 -0800)
Bug: 2736469127142316
Change-Id: I961f3eef67b51a2de999d34edbacd21e4b51c2a4

packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java
packages/DocumentsUI/tests/src/com/android/documentsui/RootsUiTest.java
packages/DocumentsUI/tests/src/com/android/documentsui/bots/UiBot.java

index 90c2d1b..3b78809 100644 (file)
@@ -216,7 +216,7 @@ public class DirectoryFragment extends Fragment
 
     @Override
     public void onDestroyView() {
-        super.onDestroyView();
+        mSelectionManager.clearSelection();
 
         // Cancel any outstanding thumbnail requests
         final int count = mRecView.getChildCount();
@@ -224,6 +224,8 @@ public class DirectoryFragment extends Fragment
             final View view = mRecView.getChildAt(i);
             cancelThumbnailTask(view);
         }
+
+        super.onDestroyView();
     }
 
     @Override
@@ -309,12 +311,15 @@ public class DirectoryFragment extends Fragment
     public void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
 
+        mSelectionManager.getSelection(mSelection);
+
         outState.putInt(Shared.EXTRA_TYPE, mType);
         outState.putParcelable(Shared.EXTRA_ROOT, mRoot);
         outState.putParcelable(Shared.EXTRA_DOC, mDocument);
         outState.putString(Shared.EXTRA_QUERY, mQuery);
-        outState.putParcelable(Shared.EXTRA_SELECTION, mSelectionManager.getSelection());
+        outState.putParcelable(Shared.EXTRA_SELECTION, mSelection);
         outState.putBoolean(Shared.EXTRA_SEARCH_MODE, mSearchMode);
+
     }
 
     @Override
@@ -1479,6 +1484,7 @@ public class DirectoryFragment extends Fragment
         args.putParcelable(Shared.EXTRA_ROOT, root);
         args.putParcelable(Shared.EXTRA_DOC, doc);
         args.putString(Shared.EXTRA_QUERY, query);
+        args.putParcelable(Shared.EXTRA_SELECTION, new Selection());
 
         final FragmentTransaction ft = fm.beginTransaction();
         switch (anim) {
index 6141832..73c1c5f 100644 (file)
@@ -17,6 +17,7 @@
 package com.android.documentsui;
 
 import static com.android.documentsui.StubProvider.ROOT_0_ID;
+import static com.android.documentsui.StubProvider.ROOT_1_ID;
 
 import android.test.suitebuilder.annotation.LargeTest;
 
@@ -42,4 +43,13 @@ public class RootsUiTest extends ActivityTest<FilesActivity> {
         bots.main.assertWindowTitle(ROOT_0_ID);
         assertDefaultContentOfTestDir0();
     }
+
+    public void testRootChanged_ClearSelection() throws Exception {
+        bots.directory.selectDocument(fileName1);
+        bots.main.assertInActionMode(true);
+
+        bots.roots.openRoot(ROOT_1_ID);
+        bots.main.assertInActionMode(false);
+    }
+
 }
index fe2a3c3..77846e4 100644 (file)
@@ -88,6 +88,11 @@ public class UiBot extends BaseBot {
         assertEquals(searchIconExists, findSearchViewIcon().exists());
     }
 
+    public void assertInActionMode(boolean inActionMode) {
+        UiObject actionModeBar = findActionModeBar();
+        assertEquals(inActionMode, actionModeBar.exists());
+    }
+
     public void openSearchView() throws UiObjectNotFoundException {
         UiObject searchView = findSearchView();
         searchView.click();