Loading src/com/android/documentsui/BaseActivity.java +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading src/com/android/documentsui/prefs/ScopedPreferences.java +22 −2 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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) { Loading src/com/android/documentsui/queries/SearchViewManager.java +16 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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. Loading @@ -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") Loading @@ -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 Loading @@ -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); Loading @@ -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); Loading Loading @@ -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); } Loading tests/common/com/android/documentsui/testing/TestScopedPreferences.java +12 −1 Original line number Diff line number Diff line Loading @@ -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() { Loading @@ -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; } } tests/common/com/android/documentsui/testing/TestSearchViewManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ public class TestSearchViewManager extends SearchViewManager { } }, new CommandInterceptor(new TestFeatures()), mock(ViewGroup.class), null /* savedState */); null /* savedState */, () -> true /* recordSearchSupplier */); } @Override Loading Loading
src/com/android/documentsui/BaseActivity.java +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
src/com/android/documentsui/prefs/ScopedPreferences.java +22 −2 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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) { Loading
src/com/android/documentsui/queries/SearchViewManager.java +16 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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. Loading @@ -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") Loading @@ -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 Loading @@ -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); Loading @@ -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); Loading Loading @@ -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); } Loading
tests/common/com/android/documentsui/testing/TestScopedPreferences.java +12 −1 Original line number Diff line number Diff line Loading @@ -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() { Loading @@ -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; } }
tests/common/com/android/documentsui/testing/TestSearchViewManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ public class TestSearchViewManager extends SearchViewManager { } }, new CommandInterceptor(new TestFeatures()), mock(ViewGroup.class), null /* savedState */); null /* savedState */, () -> true /* recordSearchSupplier */); } @Override Loading