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

Commit d2f2eff4 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Calls NavManager.update() when we starts/closes search." into nyc-andromeda-dev

parents 1ce913e6 21c54446
Loading
Loading
Loading
Loading
+26 −21
Original line number Diff line number Diff line
@@ -82,8 +82,7 @@ import java.util.Date;
import java.util.List;
import java.util.concurrent.Executor;

public abstract class BaseActivity extends Activity
        implements SearchManagerListener, NavigationViewManager.Environment {
public abstract class BaseActivity extends Activity implements NavigationViewManager.Environment {

    public final FileOperations.Callback fileOpCallback = (status, opType, docCount) -> {
        if (status == FileOperations.Callback.STATUS_REJECTED) {
@@ -203,7 +202,6 @@ public abstract class BaseActivity extends Activity
        getContentResolver().registerContentObserver(
                RootsCache.sNotificationUri, false, mRootsCacheObserver);

        mSearchManager = new SearchViewManager(this, icicle, mState.sortModel);

        DocumentsToolbar toolbar = (DocumentsToolbar) findViewById(R.id.toolbar);
        setActionBar(toolbar);
@@ -213,7 +211,32 @@ public abstract class BaseActivity extends Activity
        assert(breadcrumb != null);

        mNavigator = new NavigationViewManager(mDrawer, toolbar, mState, this, breadcrumb);
        SearchManagerListener searchListener = new SearchManagerListener() {
            /**
             * Called when search results changed. Refreshes the content of the directory. It
             * doesn't refresh elements on the action bar. e.g. The current directory name displayed
             * on the action bar won't get updated.
             */
            @Override
            public void onSearchChanged(@Nullable String query) {
                // We should not get here if root is not searchable
                assert (canSearchRoot());
                reloadSearch(query);
            }

            @Override
            public void onSearchFinished() {
                // Restores menu icons state
                invalidateOptionsMenu();
            }

            @Override
            public void onSearchViewChanged(boolean opened) {
                mState.sortModel.setSortEnabled(!opened);
                mNavigator.update();
            }
        };
        mSearchManager = new SearchViewManager(searchListener, icicle);
        mSortController = SortController.create(this, mState.derivedMode, mState.sortModel);


@@ -426,24 +449,6 @@ public abstract class BaseActivity extends Activity
    public void springOpenDirectory(DocumentInfo doc) {
    }

    /**
     * Called when search results changed.
     * Refreshes the content of the directory. It doesn't refresh elements on the action bar.
     * e.g. The current directory name displayed on the action bar won't get updated.
     */
    @Override
    public void onSearchChanged(@Nullable String query) {
        // We should not get here if root is not searchable
        assert(canSearchRoot());
        reloadSearch(query);
    }

    @Override
    public void onSearchFinished() {
        // Restores menu icons state
        invalidateOptionsMenu();
    }

    private void reloadSearch(String query) {
        FragmentManager fm = getFragmentManager();
        RootInfo root = getCurrentRoot();
+9 −19
Original line number Diff line number Diff line
@@ -34,7 +34,6 @@ import android.widget.SearchView.OnQueryTextListener;

import com.android.documentsui.base.RootInfo;
import com.android.documentsui.base.Shared;
import com.android.documentsui.sorting.SortModel;

/**
 * Manages searching UI behavior.
@@ -46,11 +45,12 @@ public class SearchViewManager implements
    public interface SearchManagerListener {
        void onSearchChanged(@Nullable String query);
        void onSearchFinished();
        void onSearchViewChanged(boolean opened);
    }

    private static final String TAG = "SearchManager";
    private final SearchManagerListener mListener;

    private SearchManagerListener mListener;
    private boolean mSearchExpanded;
    private String mCurrentSearch;
    private boolean mIgnoreNextClose;
@@ -60,18 +60,12 @@ public class SearchViewManager implements
    private MenuItem mMenuItem;
    private SearchView mSearchView;

    // We need to disable sorting during search.
    private SortModel mSortModel;

    public SearchViewManager(
            SearchManagerListener listener, @Nullable Bundle savedState, SortModel sortModel) {
            SearchManagerListener listener,
            @Nullable Bundle savedState) {
        assert (listener != null);
        mListener = listener;
        mCurrentSearch = savedState != null ? savedState.getString(Shared.EXTRA_QUERY) : null;
        mSortModel = sortModel;
    }

    public void setSearchMangerListener(SearchManagerListener listener) {
        mListener = listener;
    }

    public void install(DocumentsToolbar actionBar, boolean isFullBarSearch) {
@@ -194,7 +188,7 @@ public class SearchViewManager implements
            menu.setGroupVisible(R.id.group_hide_when_searching, false);
        }

        mSortModel.setSortEnabled(false);
        mListener.onSearchViewChanged(true);
    }

    /**
@@ -213,17 +207,15 @@ public class SearchViewManager implements
        // Refresh the directory if a search was done
        if (mCurrentSearch != null) {
            mCurrentSearch = null;
            if (mListener != null) {
            mListener.onSearchChanged(mCurrentSearch);
        }
        }

        if(mFullBar) {
            mMenuItem.collapseActionView();
        }
        mListener.onSearchFinished();

        mSortModel.setSortEnabled(true);
        mListener.onSearchViewChanged(false);

        return false;
    }
@@ -249,9 +241,7 @@ public class SearchViewManager implements
    public boolean onQueryTextSubmit(String query) {
        mCurrentSearch = query;
        mSearchView.clearFocus();
        if (mListener != null) {
        mListener.onSearchChanged(mCurrentSearch);
        }
        return true;
    }

+10 −9
Original line number Diff line number Diff line
@@ -16,10 +16,7 @@

package com.android.documentsui.testing;

import android.os.Bundle;

import com.android.documentsui.SearchViewManager;
import com.android.documentsui.sorting.SortModel;

/**
 * Test copy of {@link com.android.documentsui.SearchViewManager}
@@ -32,13 +29,17 @@ public class TestSearchViewManager extends SearchViewManager {
    boolean updateMenuCalled;
    boolean showMenuCalled;

    public TestSearchViewManager(
            SearchManagerListener listener, Bundle savedState, SortModel sortModel) {
        super(listener, savedState, sortModel);
    }

    public TestSearchViewManager() {
        super(null, null, null);
        super(
                new SearchManagerListener() {
                    @Override
                    public void onSearchChanged(String query) { }
                    @Override
                    public void onSearchFinished() { }
                    @Override
                    public void onSearchViewChanged(boolean opened) { }
                },
                null);
    }

    @Override