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

Commit 873d4993 authored by Jordan Silva's avatar Jordan Silva Committed by Android (Google) Code Review
Browse files

Merge "Add ESCAPE key to dismiss Overview" into main

parents e8f4fbf0 9878a720
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -62,12 +62,6 @@ public class OverviewModalTaskState extends OverviewState {
    @Override
    public void onBackPressed(Launcher launcher) {
        launcher.getStateManager().goToState(LauncherState.OVERVIEW);
        RecentsView recentsView = launcher.<RecentsView>getOverviewPanel();
        if (recentsView != null) {
            recentsView.resetModalVisuals();
        } else {
            super.onBackPressed(launcher);
        }
    }

    @Override
+2 −1
Original line number Diff line number Diff line
@@ -217,7 +217,6 @@ public class FallbackRecentsView extends RecentsView<RecentsActivity, RecentsSta
        } else {
            if (mActivity.isInState(RecentsState.MODAL_TASK)) {
                mActivity.getStateManager().goToState(DEFAULT, animate);
                resetModalVisuals();
            }
        }
    }
@@ -237,6 +236,8 @@ public class FallbackRecentsView extends RecentsView<RecentsActivity, RecentsSta
        setOverviewFullscreenEnabled(toState.isFullScreen());
        if (toState == MODAL_TASK) {
            setOverviewSelectEnabled(true);
        } else {
            resetModalVisuals();
        }

        // Set border after select mode changes to avoid showing border during state transition
+3 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
package com.android.quickstep.views;

import static android.app.ActivityTaskManager.INVALID_TASK_ID;

import static com.android.launcher3.LauncherState.ALL_APPS;
import static com.android.launcher3.LauncherState.CLEAR_ALL_BUTTON;
import static com.android.launcher3.LauncherState.EDIT_MODE;
@@ -144,6 +145,8 @@ public class LauncherRecentsView extends RecentsView<QuickstepLauncher, Launcher
        setOverviewFullscreenEnabled(toState.getOverviewFullscreenProgress() == 1);
        if (toState == OVERVIEW_MODAL_TASK) {
            setOverviewSelectEnabled(true);
        } else {
            resetModalVisuals();
        }

        // Set border after select mode changes to avoid showing border during state transition
@@ -214,7 +217,6 @@ public class LauncherRecentsView extends RecentsView<QuickstepLauncher, Launcher
        } else {
            if (mActivity.isInState(LauncherState.OVERVIEW_MODAL_TASK)) {
                mActivity.getStateManager().goToState(LauncherState.OVERVIEW, animate);
                resetModalVisuals();
            }
        }
    }
+38 −0
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ import com.android.launcher3.tapl.LauncherInstrumentation.NavigationModel;
import com.android.launcher3.tapl.Overview;
import com.android.launcher3.tapl.OverviewActions;
import com.android.launcher3.tapl.OverviewTask;
import com.android.launcher3.tapl.SelectModeButtons;
import com.android.launcher3.ui.AbstractLauncherUiTest;
import com.android.launcher3.ui.PortraitLandscapeRunner.PortraitLandscape;
import com.android.launcher3.util.Wait;
@@ -194,6 +195,43 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest {
        actionsView.clickAndDismissScreenshot();
    }

    @Test
    public void testDismissOverviewWithEscKey() throws Exception {
        startTestAppsWithCheck();
        final Overview overview = mLauncher.goHome().switchToOverview();
        assertTrue("Launcher internal state is not Overview",
                isInState(() -> LauncherState.OVERVIEW));

        overview.dismissByEscKey();
        assertTrue("Launcher internal state is not Home",
                isInState(() -> LauncherState.NORMAL));
    }

    @Test
    public void testDismissModalTaskAndOverviewWithEscKey() throws Exception {
        startTestAppsWithCheck();
        final Overview overview = mLauncher.goHome().switchToOverview();

        final SelectModeButtons selectModeButtons;

        if (mLauncher.isTablet() && mLauncher.isGridOnlyOverviewEnabled()) {
            selectModeButtons = overview.getCurrentTask().tapMenu().tapSelectMenuItem();
        } else {
            selectModeButtons = overview.getOverviewActions().clickSelect();
        }

        assertTrue("Launcher internal state is not Overview Modal Task",
                isInState(() -> LauncherState.OVERVIEW_MODAL_TASK));

        selectModeButtons.dismissByEscKey();

        assertTrue("Launcher internal state is not Overview",
                isInState(() -> LauncherState.OVERVIEW));
        overview.dismissByEscKey();
        assertTrue("Launcher internal state is not Home",
                isInState(() -> LauncherState.NORMAL));
    }

    private int getCurrentOverviewPage(Launcher launcher) {
        return launcher.<RecentsView>getOverviewPanel().getCurrentPage();
    }
+12 −5
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ package com.android.launcher3.util;

import static com.android.launcher3.LauncherState.ALL_APPS;
import static com.android.launcher3.LauncherState.NORMAL;
import static com.android.launcher3.LauncherState.OVERVIEW;
import static com.android.launcher3.accessibility.LauncherAccessibilityDelegate.getSupportedActions;

import android.util.Log;
@@ -27,6 +28,7 @@ import android.view.Menu;

import com.android.launcher3.AbstractFloatingView;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherState;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.accessibility.BaseAccessibilityDelegate;
@@ -118,17 +120,22 @@ public class KeyboardShortcutsDelegate {
                return true;
            } else if (mLauncher.getAppsView().isInAllApps()) {
                // Close all apps if there are no open floating views.
                closeAllApps();
                mLauncher.getStateManager().goToState(NORMAL, true);
                return true;
            } else if (mLauncher.isInState(LauncherState.OVERVIEW)
                    || mLauncher.isInState(LauncherState.OVERVIEW_SPLIT_SELECT)) {
                // Close Overview and return to home.
                mLauncher.getStateManager().goToState(NORMAL, true);
                return true;
            } else if (mLauncher.isInState(LauncherState.OVERVIEW_MODAL_TASK)) {
                // Return to the previous state (Overview) when the modal task is open.
                mLauncher.getStateManager().goToState(OVERVIEW, true);
                return true;
            }
        }
        return null;
    }

    private void closeAllApps() {
        mLauncher.getStateManager().goToState(NORMAL, true);
    }

    /**
     * Handle key up event.
     * @param keyCode code of the key being pressed.
Loading