diff options
| author | 2016-03-17 11:48:20 -0700 | |
|---|---|---|
| committer | 2016-03-17 11:57:29 -0700 | |
| commit | b4129d785c1a14d0499fa45291b14ea356d59ee7 (patch) | |
| tree | 1bac928635c42d141bc8e7c449aabcef7c2bb80a | |
| parent | ce71deefca1f5fe53457f6092cda788023669693 (diff) | |
Add config flag to hide home directory ("Documents") from the roots list.
Make home root hidden by default.
Change-Id: Ia9f97f3cad7ab102d65e01d6e0dd9bc39ab72f21
Fixed: 27683725
4 files changed, 37 insertions, 6 deletions
diff --git a/packages/DocumentsUI/res/values/config.xml b/packages/DocumentsUI/res/values/config.xml index 86087c3ffa50..ebb3969b7819 100644 --- a/packages/DocumentsUI/res/values/config.xml +++ b/packages/DocumentsUI/res/values/config.xml @@ -21,4 +21,8 @@ <!-- Intentionally unset. Vendors should set this in an overlay. --> <string name="trusted_quick_viewer_package" translatable="false"></string> <bool name="list_divider_inset_left">true</bool> + <!-- Indicates if the home directory should be hidden in the roots list, that is presented + in the drawer/left side panel ) --> + <bool name="home_root_hidden">true</bool> + </resources> diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java index 9f83c042b111..54e628732a60 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java @@ -317,7 +317,10 @@ public class RootsFragment extends Fragment { for (final RootInfo root : roots) { final RootItem item = new RootItem(root); - if (root.isLibrary()) { + + if (root.isHome() && isHomeRootHidden(context)) { + continue; + } else if (root.isLibrary()) { if (DEBUG) Log.d(TAG, "Adding " + root + " as library."); libraries.add(item); } else { @@ -367,6 +370,13 @@ public class RootsFragment extends Fragment { } } + /* + * Indicates if the home directory should be hidden in the roots list. + */ + private boolean isHomeRootHidden(Context context) { + return context.getResources().getBoolean(R.bool.home_root_hidden); + } + @Override public View getView(int position, View convertView, ViewGroup parent) { final Item item = getItem(position); diff --git a/packages/DocumentsUI/tests/src/com/android/documentsui/FilesActivityUiTest.java b/packages/DocumentsUI/tests/src/com/android/documentsui/FilesActivityUiTest.java index e4afc3d8199c..f2949196f2a1 100644 --- a/packages/DocumentsUI/tests/src/com/android/documentsui/FilesActivityUiTest.java +++ b/packages/DocumentsUI/tests/src/com/android/documentsui/FilesActivityUiTest.java @@ -58,18 +58,23 @@ public class FilesActivityUiTest extends ActivityTest<FilesActivity> { public void testRootsListed() throws Exception { initTestFiles(); - bots.roots.openRoot(ROOT_0_ID); - // Should also have Drive, but that requires pre-configuration of devices // We omit for now. - bots.roots.assertHasRoots( + bots.roots.assertRootsPresent( "Images", "Videos", "Audio", "Downloads", - "Documents", ROOT_0_ID, ROOT_1_ID); + + // Separate logic for "Documents" root, which presence depends on the config setting + boolean homeRootHidden = context.getResources().getBoolean(R.bool.home_root_hidden); + if (homeRootHidden) { + bots.roots.assertRootsAbsent("Documents"); + } else { + bots.roots.assertRootsPresent("Documents"); + } } public void testFilesListed() throws Exception { diff --git a/packages/DocumentsUI/tests/src/com/android/documentsui/bots/RootsListBot.java b/packages/DocumentsUI/tests/src/com/android/documentsui/bots/RootsListBot.java index 356fd01957e6..096af10bab5f 100644 --- a/packages/DocumentsUI/tests/src/com/android/documentsui/bots/RootsListBot.java +++ b/packages/DocumentsUI/tests/src/com/android/documentsui/bots/RootsListBot.java @@ -69,7 +69,7 @@ public class RootsListBot extends BaseBot { mDevice.waitForIdle(); } - public void assertHasRoots(String... labels) throws UiObjectNotFoundException { + public void assertRootsPresent(String... labels) throws UiObjectNotFoundException { List<String> missing = new ArrayList<>(); for (String label : labels) { if (!findRoot(label).exists()) { @@ -82,6 +82,18 @@ public class RootsListBot extends BaseBot { } } + public void assertRootsAbsent(String... labels) throws UiObjectNotFoundException { + List<String> unexpected = new ArrayList<>(); + for (String label : labels) { + if (findRoot(label).exists()) { + unexpected.add(label); + } + } + if (!unexpected.isEmpty()) { + Assert.fail("Unexpected roots " + unexpected); + } + } + public void assertHasFocus() { assertHasFocus(ROOTS_LIST_ID); } |