From 7d3b25734a66b51cef7660b418362bb9a13896d0 Mon Sep 17 00:00:00 2001 From: Hyunyoung Song Date: Wed, 16 Jun 2021 10:35:14 -0700 Subject: [PATCH] Hide searchbox when header protection is on. Bug: 191726215 Test: manual Change-Id: I086a05654faf718683ebe5dfbcf64b6bd6347ca8 --- src/com/android/launcher3/ExtendedEditText.java | 3 +++ .../android/launcher3/allapps/AllAppsContainerView.java | 7 +++++++ .../android/launcher3/allapps/AllAppsRecyclerView.java | 1 + src/com/android/launcher3/views/OptionsPopupView.java | 9 +++++++++ 4 files changed, 20 insertions(+) diff --git a/src/com/android/launcher3/ExtendedEditText.java b/src/com/android/launcher3/ExtendedEditText.java index 20c69380cc..e8510b7600 100644 --- a/src/com/android/launcher3/ExtendedEditText.java +++ b/src/com/android/launcher3/ExtendedEditText.java @@ -96,6 +96,9 @@ public class ExtendedEditText extends EditText { } } + // inherited class can override to change the appearance of the edit text. + public void show() {} + public void showKeyboard() { mShowImeAfterFirstLayout = !showSoftInput(); } diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java index 67f2a9eb32..aabbe650ab 100644 --- a/src/com/android/launcher3/allapps/AllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java @@ -717,6 +717,10 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo : mSearchContainer.getBottom(); canvas.drawRect(0, 0, getWidth(), bottom + getTranslationY(), mHeaderPaint); + + if (FeatureFlags.ENABLE_DEVICE_SEARCH.get() && getTranslationY() == 0) { + mSearchUiManager.getEditText().setBackground(null); + } } } @@ -805,6 +809,9 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo getSearchView().setBackgroundColor(viewBG); getFloatingHeaderView().setHeaderColor(viewBG); invalidateHeader(); + if (scrolledOffset == 0 && mSearchUiManager.getEditText() != null) { + mSearchUiManager.getEditText().show(); + } } } diff --git a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java index 4ad694b31b..52dc19bbfc 100644 --- a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java +++ b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java @@ -188,6 +188,7 @@ public class AllAppsRecyclerView extends BaseRecyclerView { StatsLogManager mgr = BaseDraggingActivity.fromContext(getContext()).getStatsLogManager(); switch (state) { case SCROLL_STATE_DRAGGING: + requestFocus(); mgr.logger().sendToInteractionJankMonitor( LAUNCHER_ALLAPPS_VERTICAL_SWIPE_BEGIN, this); break; diff --git a/src/com/android/launcher3/views/OptionsPopupView.java b/src/com/android/launcher3/views/OptionsPopupView.java index 06ccbbd53e..ecdd206224 100644 --- a/src/com/android/launcher3/views/OptionsPopupView.java +++ b/src/com/android/launcher3/views/OptionsPopupView.java @@ -132,6 +132,12 @@ public class OptionsPopupView extends ArrowPopup public static OptionsPopupView show( Launcher launcher, RectF targetRect, List items, boolean shouldAddArrow) { + return show(launcher, targetRect, items, shouldAddArrow, 0 /* width */); + } + + public static OptionsPopupView show( + Launcher launcher, RectF targetRect, List items, boolean shouldAddArrow, + int width) { OptionsPopupView popup = (OptionsPopupView) launcher.getLayoutInflater() .inflate(R.layout.longpress_options_menu, launcher.getDragLayer(), false); popup.mTargetRect = targetRect; @@ -140,6 +146,9 @@ public class OptionsPopupView extends ArrowPopup for (OptionItem item : items) { DeepShortcutView view = (DeepShortcutView) popup.inflateAndAdd(R.layout.system_shortcut, popup); + if (width > 0) { + view.getLayoutParams().width = width; + } view.getIconView().setBackgroundDrawable(item.icon); view.getBubbleText().setText(item.label); view.setOnClickListener(popup);