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

Commit 5a26b1ce authored by Tony Wickham's avatar Tony Wickham Committed by Android (Google) Code Review
Browse files

Merge "Change TAPL to swipe to stash taskbar (instead of deprecated long press)" into main

parents c0c1999e d546564f
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();
    }
}
+51 −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,8 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest {
    }

    @Test
    @TaskbarModeSwitch(mode = PERSISTENT)
    @TaskbarModeSwitch
    @Ignore // b/314873201
    public void testQuickSwitchToPreviousAppForTablet() throws Exception {
        assumeTrue(mLauncher.isTablet());
        startTestActivity(2);
@@ -304,9 +304,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 +320,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 +369,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 +465,7 @@ public class TaplTestsQuickstep extends AbstractQuickStepTest {

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

@@ -466,6 +478,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 +501,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;

@@ -179,6 +180,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