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

Commit e1f770df authored by Tony Wickham's avatar Tony Wickham
Browse files

Change TAPL to swipe to stash taskbar (instead of deprecated long press)

This also means Taskbar is transient by default in automated tests,
instead of persistent. Updated some checks accordingly.

Flag: LEGACY ENABLE_TRANSIENT_TASKBAR ENABLED
Test: TaskbarExpandCollapse#hideShowTaskbar; TaplTestsTaskbar;
TaplTestsTransientTaskbar; TaplTestsPersistentTaskbar
Bug: 270395798

Change-Id: I48b4c809025a9bab0a37ada1317adee823b1a8f9
parent 54acb41e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -106,10 +106,10 @@ public class QuickstepTestInformationHandler extends TestInformationHandler {
                });
                return response;

            case TestProtocol.REQUEST_STASHED_TASKBAR_HEIGHT: {
            case TestProtocol.REQUEST_TASKBAR_FROM_NAV_THRESHOLD: {
                final Resources resources = mContext.getResources();
                response.putInt(TestProtocol.TEST_INFO_RESPONSE_FIELD,
                        resources.getDimensionPixelSize(R.dimen.taskbar_stashed_size));
                        resources.getDimensionPixelSize(R.dimen.taskbar_from_nav_threshold));
                return response;
            }

+7 −13
Original line number Diff line number Diff line
@@ -20,9 +20,10 @@ import static com.android.quickstep.TaskbarModeSwitchRule.Mode.PERSISTENT;
import androidx.test.filters.LargeTest;
import androidx.test.runner.AndroidJUnit4;

import com.android.launcher3.ui.PortraitLandscapeRunner.PortraitLandscape;
import com.android.quickstep.NavigationModeSwitchRule.NavigationModeSwitch;
import com.android.quickstep.TaskbarModeSwitchRule.TaskbarModeSwitch;

import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;

@@ -32,17 +33,10 @@ public class TaplTestsPersistentTaskbar extends AbstractTaplTestsTaskbar {

    @Test
    @TaskbarModeSwitch(mode = PERSISTENT)
    public void testHideShowTaskbar() {
        getTaskbar().hide();
        mLauncher.getLaunchedAppState().showTaskbar();
    }

    @Test
    @TaskbarModeSwitch(mode = PERSISTENT)
    @Ignore // b/301575789
    public void testHideTaskbarPersistsOnRecreate() {
        getTaskbar().hide();
        mLauncher.recreateTaskbar();
        mLauncher.getLaunchedAppState().assertTaskbarHidden();
    @PortraitLandscape
    @NavigationModeSwitch
    public void testTaskbarFillsWidth() {
        // Width check is performed inside TAPL whenever getTaskbar() is called.
        getTaskbar();
    }
}
+50 −25
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.quickstep;

import static com.android.launcher3.util.rule.TestStabilityRule.LOCAL;
import static com.android.launcher3.util.rule.TestStabilityRule.PLATFORM_POSTSUBMIT;
import static com.android.quickstep.TaskbarModeSwitchRule.Mode.PERSISTENT;
import static com.android.quickstep.TaskbarModeSwitchRule.Mode.TRANSIENT;

import static org.junit.Assert.assertEquals;
@@ -295,7 +294,7 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest {
    }

    @Test
    @TaskbarModeSwitch(mode = PERSISTENT)
    @TaskbarModeSwitch
    public void testQuickSwitchToPreviousAppForTablet() throws Exception {
        assumeTrue(mLauncher.isTablet());
        startTestActivity(2);
@@ -304,9 +303,12 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest {
        // Set ignoreTaskbarVisibility to true to verify the task bar visibility explicitly.
        mLauncher.setIgnoreTaskbarVisibility(true);


        try {
            boolean isTransientTaskbar = mLauncher.isTransientTaskbar();
            // Expect task bar invisible when the launched app was the IME activity.
            LaunchedAppState launchedAppState = getAndAssertLaunchedApp();
        if (isHardwareKeyboard()) {
            if (!isTransientTaskbar && isHardwareKeyboard()) {
                launchedAppState.assertTaskbarVisible();
            } else {
                launchedAppState.assertTaskbarHidden();
@@ -317,10 +319,18 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest {

            assertTestActivityIsRunning(2,
                    "The first app we should have quick switched to is not running");
        // Expect task bar visible when the launched app was the test activity.
            launchedAppState = getAndAssertLaunchedApp();
            if (isTransientTaskbar) {
                launchedAppState.assertTaskbarHidden();
            } else {
                // Expect taskbar visible when the launched app was the test activity.
                launchedAppState.assertTaskbarVisible();
            }
        } finally {
            // Reset ignoreTaskbarVisibility to ensure other tests still verify it.
            mLauncher.setIgnoreTaskbarVisibility(false);
        }
    }

    private boolean isHardwareKeyboard() {
        return Configuration.KEYBOARD_QWERTY
@@ -358,7 +368,7 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest {

    @Test
    @PortraitLandscape
    @TaskbarModeSwitch(mode = PERSISTENT)
    @TaskbarModeSwitch()
    @PlatinumTest(focusArea = "launcher")
    @TestStabilityRule.Stability(flavors = LOCAL | PLATFORM_POSTSUBMIT) // b/309820115
    @ScreenRecord // b/309820115
@@ -454,6 +464,7 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest {

    @Test
    @PortraitLandscape
    @TaskbarModeSwitch
    public void testTaskbarDeadzonesForTablet() throws Exception {
        assumeTrue(mLauncher.isTablet());

@@ -466,6 +477,19 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest {
                launcher -> assertTrue("Should have at least 3 tasks",
                        getTaskCount(launcher) >= 3));

        if (mLauncher.isTransientTaskbar()) {
            // On transient taskbar, it should dismiss when tapping outside taskbar bounds.
            overview.touchTaskbarBottomCorner(/* tapRight= */ false);
            assertTrue("Launcher internal state should be Normal",
                    isInState(() -> LauncherState.NORMAL));

            overview = mLauncher.getWorkspace().switchToOverview();

            // On transient taskbar, it should dismiss when tapping outside taskbar bounds.
            overview.touchTaskbarBottomCorner(/* tapRight= */ true);
            assertTrue("Launcher internal state should be Normal",
                    isInState(() -> LauncherState.NORMAL));
        } else {
            // On persistent taskbar, it should not dismiss when tapping the taskbar
            overview.touchTaskbarBottomCorner(/* tapRight= */ false);
            assertTrue("Launcher internal state should be Overview",
@@ -476,6 +500,7 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest {
            assertTrue("Launcher internal state should be Overview",
                    isInState(() -> LauncherState.OVERVIEW));
        }
    }

    @Test
    public void testDisableRotationCheckForPhone() throws Exception {
+9 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import static org.junit.Assume.assumeTrue;
import androidx.test.filters.LargeTest;
import androidx.test.runner.AndroidJUnit4;

import com.android.launcher3.ui.PortraitLandscapeRunner.PortraitLandscape;
import com.android.quickstep.TaskbarModeSwitchRule.TaskbarModeSwitch;

import org.junit.Test;
@@ -64,4 +65,12 @@ public class TaplTestsTransientTaskbar extends AbstractTaplTestsTaskbar {
        getTaskbar().getAppIcon(TEST_APP_NAME).launch(TEST_APP_PACKAGE);
        mLauncher.getLaunchedAppState().clickStashedTaskbarToGoHome();
    }

    @Test
    @TaskbarModeSwitch(mode = TRANSIENT)
    @PortraitLandscape
    public void testSwipeToStashAndUnstash() {
        getTaskbar().swipeDownToStash();
        mLauncher.getLaunchedAppState().swipeUpToUnstashTaskbar();
    }
}
+6 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ import com.android.launcher3.dragndrop.DragLayer;
import com.android.launcher3.testing.shared.HotseatCellCenterRequest;
import com.android.launcher3.testing.shared.TestProtocol;
import com.android.launcher3.testing.shared.WorkspaceCellCenterRequest;
import com.android.launcher3.util.DisplayController;
import com.android.launcher3.util.ResourceBasedOverride;
import com.android.launcher3.widget.picker.WidgetsFullSheet;

@@ -170,6 +171,11 @@ public class TestInformationHandler implements ResourceBasedOverride {
                        mDeviceProfile.numShownAllAppsColumns);
                return response;

            case TestProtocol.REQUEST_IS_TRANSIENT_TASKBAR:
                response.putBoolean(TestProtocol.TEST_INFO_RESPONSE_FIELD,
                        DisplayController.isTransientTaskbar(mContext));
                return response;

            case TestProtocol.REQUEST_IS_TWO_PANELS:
                response.putBoolean(TestProtocol.TEST_INFO_RESPONSE_FIELD,
                        FOLDABLE_SINGLE_PAGE.get() ? false : mDeviceProfile.isTwoPanels);
Loading