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

Commit c12e4d60 authored by Tony Huang's avatar Tony Huang Committed by Android (Google) Code Review
Browse files

Merge "Implement pause search history"

parents 76c6c9d2 0c9bebf5
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -247,7 +247,7 @@ public abstract class BaseActivity

        ViewGroup chipGroup = findViewById(R.id.search_chip_group);
        mSearchManager = new SearchViewManager(searchListener, queryInterceptor,
                chipGroup, icicle);
                chipGroup, icicle, mInjector.prefs::isRecordSearch);
        // initialize the chip sets by accept mime types
        mSearchManager.initChipSets(mState.acceptMimes);
        // update the chip items by the mime types of the root
+22 −2
Original line number Diff line number Diff line
@@ -30,12 +30,22 @@ import com.android.documentsui.R;
 */
public interface ScopedPreferences {

    static final String INCLUDE_DEVICE_ROOT = "includeDeviceRoot";
    static final String ENABLE_ARCHIVE_CREATION = "enableArchiveCreation-";
    String INCLUDE_DEVICE_ROOT = "includeDeviceRoot";
    String RECORD_SEARCH = "recordSearch";

    boolean getShowDeviceRoot();
    void setShowDeviceRoot(boolean display);

    /**
     * Get boolean preferences values of recordSearch.
     */
    boolean isRecordSearch();

    /**
     * Set boolean preferences values of recordSearch.
     */
    void setRecordSearch(boolean show);

    /**
     * @param scope An arbitrary string representitive of the scope
     *        for prefs that are set using this object.
@@ -70,6 +80,16 @@ public interface ScopedPreferences {
        public void setShowDeviceRoot(boolean display) {
            mSharedPrefs.edit().putBoolean(INCLUDE_DEVICE_ROOT, display).apply();
        }

        @Override
        public boolean isRecordSearch() {
            return mSharedPrefs.getBoolean(RECORD_SEARCH, true);
        }

        @Override
        public void setRecordSearch(boolean show) {
            mSharedPrefs.edit().putBoolean(RECORD_SEARCH, show).apply();
        }
    }

    static boolean shouldBackup(String s) {
+16 −2
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import android.view.View.OnFocusChangeListener;
import android.view.ViewGroup;

import androidx.annotation.GuardedBy;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.appcompat.widget.SearchView;
@@ -54,6 +55,7 @@ import com.android.documentsui.base.State;

import java.util.Timer;
import java.util.TimerTask;
import java.util.function.BooleanSupplier;

/**
 * Manages searching UI behavior.
@@ -72,6 +74,7 @@ public class SearchViewManager implements
    private final SearchChipViewManager mChipViewManager;
    private final Timer mTimer;
    private final Handler mUiHandler;
    private final BooleanSupplier mRecordSearchSupplier;

    private final Object mSearchLock;
    @GuardedBy("mSearchLock")
@@ -94,9 +97,10 @@ public class SearchViewManager implements
            SearchManagerListener listener,
            EventHandler<String> commandProcessor,
            ViewGroup chipGroup,
            @Nullable Bundle savedState) {
            @Nullable Bundle savedState,
            @NonNull BooleanSupplier recordSearchSupplier) {
        this(listener, commandProcessor, new SearchChipViewManager(chipGroup), savedState,
                new Timer(), new Handler(Looper.getMainLooper()));
                recordSearchSupplier, new Timer(), new Handler(Looper.getMainLooper()));
    }

    @VisibleForTesting
@@ -105,6 +109,7 @@ public class SearchViewManager implements
            EventHandler<String> commandProcessor,
            SearchChipViewManager chipViewManager,
            @Nullable Bundle savedState,
            @NonNull BooleanSupplier recordSearchSupplier,
            Timer timer,
            Handler handler) {
        assert (listener != null);
@@ -117,6 +122,7 @@ public class SearchViewManager implements
        mUiHandler = handler;
        mChipViewManager = chipViewManager;
        mChipViewManager.setSearchChipViewManagerListener(this::onChipCheckedStateChanged);
        mRecordSearchSupplier = recordSearchSupplier;

        if (savedState != null) {
            mCurrentSearch = savedState.getString(Shared.EXTRA_QUERY);
@@ -538,6 +544,14 @@ public class SearchViewManager implements
     * Record current search for history.
     */
    public void recordHistory() {
        if (!mRecordSearchSupplier.getAsBoolean()) {
            return;
        }

        recordHistoryInternal();
    }

    protected void recordHistoryInternal() {
        SearchHistoryManager.getInstance(
                mSearchView.getContext().getApplicationContext()).addHistory(mCurrentSearch);
    }
+12 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import com.android.documentsui.prefs.ScopedPreferences;
public class TestScopedPreferences implements ScopedPreferences {

    private boolean mShowDeviceRoot;
    private boolean mIsRecordSearch;

    @Override
    public boolean getShowDeviceRoot() {
@@ -34,4 +35,14 @@ public class TestScopedPreferences implements ScopedPreferences {
    public void setShowDeviceRoot(boolean display) {
        mShowDeviceRoot = display;
    }

    @Override
    public boolean isRecordSearch() {
        return mIsRecordSearch;
    }

    @Override
    public void setRecordSearch(boolean show) {
        mIsRecordSearch = show;
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@ public class TestSearchViewManager extends SearchViewManager {
                    }
                },
                new CommandInterceptor(new TestFeatures()), mock(ViewGroup.class),
                null /* savedState */);
                null /* savedState */, () -> true /* recordSearchSupplier */);
    }

    @Override
Loading