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

Commit 32b12b4c authored by Alex Kershaw's avatar Alex Kershaw
Browse files

Differentiate empty-string + filter searching from just tapping a filter

Fixes: 154346423
Test: atest DocumentsUIGoogleTests:com.android.documentsui.queries.SearchViewManagerTest
Change-Id: I838e12eebc0d6a16d668dd0a77610d0ca41e6f64
parent 69be2f28
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -159,6 +159,11 @@ public class SearchViewManager implements
        final Bundle queryArgs = mChipViewManager.getCheckedChipQueryArgs();
        if (!TextUtils.isEmpty(mCurrentSearch)) {
            queryArgs.putString(DocumentsContract.QUERY_ARG_DISPLAY_NAME, mCurrentSearch);
        } else if (isExpanded() && isSearching()) {
            // The existence of the DocumentsContract.QUERY_ARG_DISPLAY_NAME constant is used to
            // determine if this is a text search (as opposed to simply filtering from within a
            // non-searching view), so ensure the argument exists when searching.
            queryArgs.putString(DocumentsContract.QUERY_ARG_DISPLAY_NAME, "");
        }

        return queryArgs;
+31 −0
Original line number Diff line number Diff line
@@ -351,6 +351,37 @@ public final class SearchViewManagerTest {
        assertEquals(query, queryString);
    }

    @Test
    public void testBuildQueryArgs_emptySearchString_expandedSearchWithChips_hasEmptyButNotMissingSearchString()
            throws Exception {
        mSearchViewManager.onClick(null);
        mSearchChipViewManager.mCheckedChipItems = getFakeSearchChipDataList();
        fastForwardTo(SearchViewManager.SEARCH_DELAY_MS);

        final String queryString =
                mSearchViewManager.buildQueryArgs()
                        .getString(DocumentsContract.QUERY_ARG_DISPLAY_NAME);
        assertEquals("", queryString);
    }

    @Test
    public void testBuildQueryArgs_emptySearchString_withChipsWithoutExpandedSearch_hasNoSearchString()
            throws Exception {
        mSearchChipViewManager.mCheckedChipItems = getFakeSearchChipDataList();
        fastForwardTo(SearchViewManager.SEARCH_DELAY_MS);

        assertFalse(mSearchViewManager.buildQueryArgs().containsKey(QUERY_ARG_DISPLAY_NAME));
    }

    @Test
    public void testBuildQueryArgs_emptySearchString_expandedSearchWithNoChips_hasNoSearchString()
            throws Exception {
        mSearchViewManager.onClick(null);
        fastForwardTo(SearchViewManager.SEARCH_DELAY_MS);

        assertFalse(mSearchViewManager.buildQueryArgs().containsKey(QUERY_ARG_DISPLAY_NAME));
    }

    @Test
    public void testBuildQueryArgs_hasMimeType() throws Exception {
        mSearchViewManager.onClick(null);