Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 66034efa authored by Steven Ng's avatar Steven Ng
Browse files

Clear widgets search bar focus when the user taps outside the search bar

Test: Focus widgets search bar. Then tap outside the search bar and
      observe the keyboard is being dismissed.
Bug: 188540267
Change-Id: Ica1b5b804ed97dd0b1cd8d41351eddcf5249ded0
parent a79cd201
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -82,7 +82,7 @@ public final class WidgetsListAdapterTest {
        mTestProfile.numColumns = 5;
        mUserHandle = Process.myUserHandle();
        mAdapter = new WidgetsListAdapter(mContext, mMockLayoutInflater, mMockWidgetCache,
                mIconCache, null, null, null);
                mIconCache, null, null);
        mAdapter.registerAdapterDataObserver(mListener);

        doAnswer(invocation -> ((ComponentWithLabel) invocation.getArgument(0))
+1 −2
Original line number Diff line number Diff line
@@ -105,8 +105,7 @@ public final class WidgetsListHeaderViewHolderBinderTest {
                mWidgetPreviewLoader,
                mIconCache,
                /* iconClickListener= */ view -> {},
                /* iconLongClickListener= */ view -> false,
                /* searchBarUIHelper= */ null);
                /* iconLongClickListener= */ view -> false);
        mViewHolderBinder = new WidgetsListHeaderViewHolderBinder(
                LayoutInflater.from(mTestActivity), mOnHeaderClickListener, widgetsListAdapter);
    }
+1 −2
Original line number Diff line number Diff line
@@ -105,8 +105,7 @@ public final class WidgetsListSearchHeaderViewHolderBinderTest {
                mWidgetPreviewLoader,
                mIconCache,
                /* iconClickListener= */ view -> {},
                /* iconLongClickListener= */ view -> false,
                /* searchBarUIHelper= */ null);
                /* iconLongClickListener= */ view -> false);
        mViewHolderBinder = new WidgetsListSearchHeaderViewHolderBinder(
                LayoutInflater.from(mTestActivity), mOnHeaderClickListener, widgetsListAdapter);
    }
+1 −2
Original line number Diff line number Diff line
@@ -111,8 +111,7 @@ public final class WidgetsListTableViewHolderBinderTest {
                mWidgetPreviewLoader,
                mIconCache,
                /* iconClickListener= */ view -> {},
                /* iconLongClickListener= */ view -> false,
                /* searchBarUIHelper= */ null);
                /* iconLongClickListener= */ view -> false);
        mViewHolderBinder = new WidgetsListTableViewHolderBinder(
                mContext,
                LayoutInflater.from(mTestActivity),
+8 −11
Original line number Diff line number Diff line
@@ -61,7 +61,6 @@ import com.android.launcher3.widget.LauncherAppWidgetHost.ProviderChangedListene
import com.android.launcher3.widget.model.WidgetsListBaseEntry;
import com.android.launcher3.widget.picker.search.SearchModeListener;
import com.android.launcher3.widget.picker.search.WidgetsSearchBar;
import com.android.launcher3.widget.picker.search.WidgetsSearchBarUIHelper;
import com.android.launcher3.widget.util.WidgetsTableUtils;
import com.android.launcher3.workprofile.PersonalWorkPagedView;
import com.android.launcher3.workprofile.PersonalWorkSlidingTabStrip.OnActivePageChangedListener;
@@ -76,8 +75,7 @@ import java.util.stream.IntStream;
 */
public class WidgetsFullSheet extends BaseWidgetSheet
        implements Insettable, ProviderChangedListener, OnActivePageChangedListener,
        WidgetsRecyclerView.HeaderViewDimensionsProvider, SearchModeListener,
        WidgetsSearchBarUIHelper {
        WidgetsRecyclerView.HeaderViewDimensionsProvider, SearchModeListener {
    private static final String TAG = WidgetsFullSheet.class.getSimpleName();

    private static final long DEFAULT_OPEN_DURATION = 267;
@@ -535,6 +533,12 @@ public class WidgetsFullSheet extends BaseWidgetSheet
            } else if (getPopupContainer().isEventOverView(mContent, ev)) {
                mNoIntercept = !getRecyclerView().shouldContainerScroll(ev, getPopupContainer());
            }

            if (mSearchAndRecommendationViewHolder.mSearchBar.isSearchBarFocused()
                    && !getPopupContainer().isEventOverView(
                            mSearchAndRecommendationViewHolder.mSearchBarContainer, ev)) {
                mSearchAndRecommendationViewHolder.mSearchBar.clearSearchBarFocus();
            }
        }
        return super.onControllerInterceptTouchEvent(ev);
    }
@@ -609,11 +613,6 @@ public class WidgetsFullSheet extends BaseWidgetSheet
        getWindowInsetsController().hide(WindowInsets.Type.ime());
    }

    @Override
    public void clearSearchBarFocus() {
        mSearchAndRecommendationViewHolder.mSearchBar.clearSearchBarFocus();
    }

    private void showEducationTipOnView(View view) {
        mActivityContext.getSharedPrefs().edit()
                .putBoolean(WIDGETS_EDUCATION_TIP_SEEN, true).apply();
@@ -681,9 +680,7 @@ public class WidgetsFullSheet extends BaseWidgetSheet
                    apps.getWidgetCache(),
                    apps.getIconCache(),
                    /* iconClickListener= */ WidgetsFullSheet.this,
                    /* iconLongClickListener= */ WidgetsFullSheet.this,
                    /* WidgetsSearchBarUIHelper= */
                    mAdapterType == SEARCH ? WidgetsFullSheet.this : null);
                    /* iconLongClickListener= */ WidgetsFullSheet.this);
            mWidgetsListAdapter.setHasStableIds(true);
            switch (mAdapterType) {
                case PRIMARY:
Loading