Merge "Implement AOSP landing page by config" into qt-dev
am: df6b9fa055
Change-Id: Iee5011204266bea6c0c08593dc701d9a86ff8eae
diff --git a/res/values/overlayable.xml b/res/values/overlayable.xml
index c0074ab..23ca14e 100644
--- a/res/values/overlayable.xml
+++ b/res/values/overlayable.xml
@@ -46,6 +46,7 @@
<item type="bool" name="config_default_show_device_root"/>
<item type="bool" name="feature_default_root_in_browse"/>
<item type="bool" name="is_launcher_enabled"/>
+ <item type="bool" name="show_search_bar"/>
<!-- END BOOLEAN CONFIG -->
<!-- START STRING CONFIG -->
diff --git a/src/com/android/documentsui/BaseActivity.java b/src/com/android/documentsui/BaseActivity.java
index d46a77a..0f019b2 100644
--- a/src/com/android/documentsui/BaseActivity.java
+++ b/src/com/android/documentsui/BaseActivity.java
@@ -301,7 +301,8 @@
getMenuInflater().inflate(R.menu.activity, menu);
mNavigator.update();
boolean fullBarSearch = getResources().getBoolean(R.bool.full_bar_search_view);
- mSearchManager.install(menu, fullBarSearch);
+ boolean showSearchBar = getResources().getBoolean(R.bool.show_search_bar);
+ mSearchManager.install(menu, fullBarSearch, showSearchBar);
final ActionMenuView subMenuView = findViewById(R.id.sub_menu);
// If size is 0, it means the menu has not inflated and it should only do once.
diff --git a/src/com/android/documentsui/NavigationViewManager.java b/src/com/android/documentsui/NavigationViewManager.java
index 167f6d6..c2fc76a 100644
--- a/src/com/android/documentsui/NavigationViewManager.java
+++ b/src/com/android/documentsui/NavigationViewManager.java
@@ -18,9 +18,6 @@
import static com.android.documentsui.base.SharedMinimal.VERBOSE;
-import androidx.annotation.Nullable;
-import androidx.appcompat.widget.Toolbar;
-
import android.app.Activity;
import android.content.res.Resources;
import android.graphics.Outline;
@@ -29,6 +26,9 @@
import android.view.View;
import android.view.ViewOutlineProvider;
+import androidx.annotation.Nullable;
+import androidx.appcompat.widget.Toolbar;
+
import com.android.documentsui.R;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.base.State;
@@ -55,6 +55,7 @@
private final CollapsingToolbarLayout mCollapsingBarLayout;
private final Drawable mDefaultActionBarBackground;
private final ViewOutlineProvider mSearchBarOutlineProvider;
+ private final boolean mShowSearchBar;
public NavigationViewManager(
Activity activity,
@@ -80,6 +81,7 @@
mSearchBarView = activity.findViewById(R.id.searchbar_title);
mCollapsingBarLayout = activity.findViewById(R.id.collapsing_toolbar);
mDefaultActionBarBackground = mToolbar.getBackground();
+ mShowSearchBar = activity.getResources().getBoolean(R.bool.show_search_bar);
final Resources resources = mToolbar.getResources();
final int radius = resources.getDimensionPixelSize(R.dimen.search_bar_radius);
@@ -133,7 +135,7 @@
mToolbar.setNavigationIcon(getActionBarIcon());
mToolbar.setNavigationContentDescription(R.string.drawer_open);
- if (mState.stack.isRecents()) {
+ if (shouldShowSearchBar()) {
mBreadcrumb.show(false);
mToolbar.setTitle(null);
mSearchBarView.setVisibility(View.VISIBLE);
@@ -186,7 +188,7 @@
}
private boolean shouldShowSearchBar() {
- return mState.stack.isRecents() && !mEnv.isSearchExpanded();
+ return mState.stack.isRecents() && !mEnv.isSearchExpanded() && mShowSearchBar;
}
// Hamburger if drawer is present, else sad nullness.
diff --git a/src/com/android/documentsui/queries/SearchViewManager.java b/src/com/android/documentsui/queries/SearchViewManager.java
index fd6499c..c498329 100644
--- a/src/com/android/documentsui/queries/SearchViewManager.java
+++ b/src/com/android/documentsui/queries/SearchViewManager.java
@@ -84,6 +84,7 @@
private boolean mIgnoreNextClose;
private boolean mFullBar;
private boolean mIsHistorySearch;
+ private boolean mShowSearchBar;
private Menu mMenu;
private MenuItem mMenuItem;
@@ -206,7 +207,14 @@
mSearchView.clearFocus();
}
- public void install(Menu menu, boolean isFullBarSearch) {
+ /**
+ * Initailize search view by option menu.
+ *
+ * @param menu the menu include search view
+ * @param isFullBarSearch whether hide other menu when search view expand
+ * @param isShowSearchBar whether replace collapsed search view by search hint text
+ */
+ public void install(Menu menu, boolean isFullBarSearch, boolean isShowSearchBar) {
mMenu = menu;
mMenuItem = mMenu.findItem(R.id.option_menu_search);
mSearchView = (SearchView) mMenuItem.getActionView();
@@ -224,6 +232,7 @@
}
mFullBar = isFullBarSearch;
+ mShowSearchBar = isShowSearchBar;
mSearchView.setMaxWidth(Integer.MAX_VALUE);
mMenuItem.setOnActionExpandListener(this);
@@ -300,7 +309,7 @@
}
// Recent root show open search bar, do not show duplicate search icon.
- mMenuItem.setVisible(supportsSearch && !stack.isRecents());
+ mMenuItem.setVisible(supportsSearch && (!stack.isRecents() || !mShowSearchBar));
mChipViewManager.setChipsRowVisible(supportsSearch && root.supportsMimeTypesSearch());
}
diff --git a/tests/functional/com/android/documentsui/FilesActivityDefaultsUiTest.java b/tests/functional/com/android/documentsui/FilesActivityDefaultsUiTest.java
index 8cf7306..f8748fa 100644
--- a/tests/functional/com/android/documentsui/FilesActivityDefaultsUiTest.java
+++ b/tests/functional/com/android/documentsui/FilesActivityDefaultsUiTest.java
@@ -60,7 +60,13 @@
bots.main.assertWindowTitle("Downloads");
}
} else {
- bots.main.assertSearchBarShow();
+ boolean showSearchBar =
+ context.getResources().getBoolean(R.bool.show_search_bar);
+ if (showSearchBar) {
+ bots.main.assertSearchBarShow();
+ } else {
+ bots.main.assertWindowTitle("Recent");
+ }
}
}
diff --git a/tests/unit/com/android/documentsui/queries/SearchViewManagerTest.java b/tests/unit/com/android/documentsui/queries/SearchViewManagerTest.java
index e058ecb..c4be9f3 100644
--- a/tests/unit/com/android/documentsui/queries/SearchViewManagerTest.java
+++ b/tests/unit/com/android/documentsui/queries/SearchViewManagerTest.java
@@ -121,7 +121,7 @@
mTestMenu = TestMenu.create();
mSearchMenuItem = mTestMenu.findItem(R.id.option_menu_search);
- mSearchViewManager.install(mTestMenu, true);
+ mSearchViewManager.install(mTestMenu, true, false);
}
private static class TestableSearchViewManager extends SearchViewManager {
@@ -395,7 +395,7 @@
root.queryArgs = QUERY_ARG_MIME_TYPES;
DocumentStack stack = new DocumentStack(root, new DocumentInfo());
- mSearchViewManager.install(mTestMenu, true);
+ mSearchViewManager.install(mTestMenu, true, false);
mSearchViewManager.showMenu(stack);
assertFalse(mSearchMenuItem.isVisible());