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

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

Merge "Intercept KeyDown Event to monitor KEYCODE_SEARCH"

parents c2f01387 35bfbefe
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ public class SharedInputHandler {
    private final FocusHandler mFocusManager;
    private final Procedure mSearchCanceler;
    private final Procedure mDirPopper;
    private final Runnable mSearchExecutor;
    private final Features mFeatures;
    private final SelectionTracker<String> mSelectionMgr;
    private final DrawerController mDrawer;
@@ -47,13 +48,15 @@ public class SharedInputHandler {
            Procedure searchCanceler,
            Procedure dirPopper,
            Features features,
            DrawerController drawer) {
            DrawerController drawer,
            Runnable searchExcutor) {
        mFocusManager = focusHandler;
        mSearchCanceler = searchCanceler;
        mSelectionMgr = selectionMgr;
        mDirPopper = dirPopper;
        mFeatures = features;
        mDrawer = drawer;
        mSearchExecutor = searchExcutor;
    }

    public boolean onKeyDown(int keyCode, KeyEvent event) {
@@ -73,6 +76,10 @@ public class SharedInputHandler {
            case KeyEvent.KEYCODE_TAB:
                return onTab();

            case KeyEvent.KEYCODE_SEARCH:
                mSearchExecutor.run();
                return true;

            default:
                // Instead of duplicating the switch-case in #isNavigationKeyCode, best just to
                // leave it here.
+3 −4
Original line number Diff line number Diff line
@@ -159,7 +159,8 @@ public class FilesActivity extends BaseActivity implements ActionHandler.Addons
                        mInjector.searchManager::cancelSearch,
                        this::popDir,
                        mInjector.features,
                        mDrawer);
                        mDrawer,
                        mInjector.searchManager::onSearchBarClicked);

        RootsFragment.show(getSupportFragmentManager(), null);

@@ -360,9 +361,7 @@ public class FilesActivity extends BaseActivity implements ActionHandler.Addons
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        return mActivityInputHandler.onKeyDown(keyCode, event)
                || mSharedInputHandler.onKeyDown(
                        keyCode,
                        event)
                || mSharedInputHandler.onKeyDown(keyCode, event)
                || super.onKeyDown(keyCode, event);
    }

+3 −4
Original line number Diff line number Diff line
@@ -146,7 +146,8 @@ public class PickActivity extends BaseActivity implements ActionHandler.Addons {
                        mInjector.searchManager::cancelSearch,
                        this::popDir,
                        mInjector.features,
                        mDrawer);
                        mDrawer,
                        mInjector.searchManager::onSearchBarClicked);
        setupLayout(intent);
        mInjector.actions.initLocation(intent);
        Metrics.logPickerLaunchedFrom(Shared.getCallingPackageName(this));
@@ -389,9 +390,7 @@ public class PickActivity extends BaseActivity implements ActionHandler.Addons {
    @CallSuper
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        return mSharedInputHandler.onKeyDown(
                keyCode,
                event)
        return mSharedInputHandler.onKeyDown(keyCode, event)
                || super.onKeyDown(keyCode, event);
    }

+23 −6
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ public class SharedInputHandlerTest {
    private TestDrawerController mDrawer = TestDrawerController.create();
    private boolean mDirPopHappened;
    private boolean mCanceledSearch;
    private boolean mSearchExecuted;
    private Procedure mDirPopper = new Procedure() {
        @Override
        public boolean run() {
@@ -54,6 +55,12 @@ public class SharedInputHandlerTest {
            return true;
        }
    };
    private Runnable mSearchExecutor = new Runnable() {
        @Override
        public void run() {
            mSearchExecuted = true;
        }
    };

    @Before
    public void setUp() {
@@ -61,12 +68,11 @@ public class SharedInputHandlerTest {
        mSharedInputHandler = new SharedInputHandler(
                mFocusHandler,
                mSelectionMgr,
                () -> {
                    return false;
                },
                () -> false,
                mDirPopper,
                mFeatures,
                mDrawer);
                mDrawer,
                mSearchExecutor);
    }

    @Test
@@ -88,7 +94,8 @@ public class SharedInputHandlerTest {
                },
                mDirPopper,
                new TestFeatures(),
                mDrawer);
                mDrawer,
                mSearchExecutor);
        KeyEvent backEvent =
                new KeyEvent(0, 0, MotionEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK, 0, 0);
        assertTrue(mSharedInputHandler.onKeyDown(backEvent.getKeyCode(), backEvent));
@@ -146,7 +153,8 @@ public class SharedInputHandlerTest {
                },
                mDirPopper,
                new TestFeatures(),
                mDrawer);
                mDrawer,
                mSearchExecutor);
        KeyEvent escapeEvent =
                new KeyEvent(0, 0, MotionEvent.ACTION_DOWN, KeyEvent.KEYCODE_ESCAPE, 0, 0);
        assertTrue(mSharedInputHandler.onKeyDown(escapeEvent.getKeyCode(), escapeEvent));
@@ -208,4 +216,13 @@ public class SharedInputHandlerTest {

        assertTrue(mFocusHandler.focusDirectoryCalled);
    }

    @Test
    public void testSearchKey_LaunchSearchView() {
        KeyEvent searchEvent =
                new KeyEvent(0, 0, MotionEvent.ACTION_DOWN, KeyEvent.KEYCODE_SEARCH, 0, 0);
        assertTrue(mSharedInputHandler.onKeyDown(searchEvent.getKeyCode(), searchEvent));

        assertTrue(mSearchExecuted);
    }
}