diff --git a/src/com/android/launcher3/ExtendedEditText.java b/src/com/android/launcher3/ExtendedEditText.java index d64967b75e..02c61620fe 100644 --- a/src/com/android/launcher3/ExtendedEditText.java +++ b/src/com/android/launcher3/ExtendedEditText.java @@ -24,6 +24,7 @@ import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; +import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.util.UiThreadHelper; @@ -130,6 +131,10 @@ public class ExtendedEditText extends EditText { public void reset() { if (!TextUtils.isEmpty(getText())) { setText(""); + } else { + if (FeatureFlags.ENABLE_DEVICE_SEARCH.get()) { + return; + } } if (isFocused()) { View nextFocus = focusSearch(View.FOCUS_DOWN); diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java index 99fff4d095..0684fe0526 100644 --- a/src/com/android/launcher3/allapps/AllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java @@ -44,6 +44,7 @@ import android.view.WindowInsets; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; +import androidx.core.os.BuildCompat; import androidx.recyclerview.widget.DefaultItemAnimator; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -110,7 +111,7 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo private final MultiValueAlpha mMultiValueAlpha; - Rect mInsets = new Rect(); + private Rect mInsets = new Rect(); public AllAppsContainerView(Context context) { this(context, null); @@ -206,6 +207,17 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo mAH[AdapterHolder.WORK].applyPadding(); } + private void hideInput() { + if (!BuildCompat.isAtLeastR() || !FeatureFlags.ENABLE_DEVICE_SEARCH.get()) return; + + WindowInsets insets = getRootWindowInsets(); + if (insets == null) return; + + if (insets.isVisible(WindowInsets.Type.ime())) { + getWindowInsetsController().hide(WindowInsets.Type.ime()); + } + } + /** * Returns whether the view itself will handle the touch event or not. */ @@ -221,9 +233,14 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo } if (rv.getScrollbar().getThumbOffsetY() >= 0 && mLauncher.getDragLayer().isEventOverView(rv.getScrollbar(), ev)) { + hideInput(); return false; } - return rv.shouldContainerScroll(ev, mLauncher.getDragLayer()); + boolean shouldScroll = rv.shouldContainerScroll(ev, mLauncher.getDragLayer()); + if (shouldScroll) { + hideInput(); + } + return shouldScroll; } @Override