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

Commit 2c85bb7c authored by Chilun Huang's avatar Chilun Huang
Browse files

Reland "Extand the long press duration"

This relands commit 8dc06e53

The Different from the original patch:
Ignore the layers of popup windows.

The original CL description:
Align the long press duration to AutomationUtils.

Bug: 257099231
Bug: 258787797
Test: atest WMShellFlickerTests:CopyContentInSplit
Change-Id: I391e0e4e71aa0ae13221ecd571e187e1c10f7c96
parent 5b48b283
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@ import com.android.server.wm.flicker.FlickerParametersRunnerFactory
import com.android.server.wm.flicker.FlickerTestParameter
import com.android.server.wm.flicker.FlickerTestParameterFactory
import com.android.server.wm.flicker.dsl.FlickerBuilder
import com.android.server.wm.traces.common.ComponentNameMatcher
import com.android.server.wm.traces.common.EdgeExtensionComponentMatcher
import com.android.wm.shell.flicker.SPLIT_SCREEN_DIVIDER_COMPONENT
import com.android.wm.shell.flicker.appWindowIsVisibleAtEnd
import com.android.wm.shell.flicker.appWindowIsVisibleAtStart
@@ -49,6 +51,8 @@ import org.junit.runners.Parameterized
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
class CopyContentInSplit(testSpec: FlickerTestParameter) : SplitScreenBase(testSpec) {
    private val textEditApp = SplitScreenUtils.getIme(instrumentation)
    private val MagnifierLayer = ComponentNameMatcher("", "magnifier surface bbq wrapper#")
    private val PopupWindowLayer = ComponentNameMatcher("", "PopupWindow:")

    override val transition: FlickerBuilder.() -> Unit
        get() = {
@@ -159,8 +163,18 @@ class CopyContentInSplit(testSpec: FlickerTestParameter) : SplitScreenBase(testS
    /** {@inheritDoc} */
    @Presubmit
    @Test
    override fun visibleLayersShownMoreThanOneConsecutiveEntry() =
        super.visibleLayersShownMoreThanOneConsecutiveEntry()
    override fun visibleLayersShownMoreThanOneConsecutiveEntry() {
        testSpec.assertLayers {
            this.visibleLayersShownMoreThanOneConsecutiveEntry(
                ignoreLayers = listOf(
                    ComponentNameMatcher.SPLASH_SCREEN,
                    ComponentNameMatcher.SNAPSHOT,
                    ComponentNameMatcher.IME_SNAPSHOT,
                    EdgeExtensionComponentMatcher(),
                    MagnifierLayer,
                    PopupWindowLayer))
        }
    }

    /** {@inheritDoc} */
    @Presubmit
+8 −10
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import com.android.server.wm.traces.parser.toFlickerComponent
import com.android.server.wm.traces.parser.windowmanager.WindowManagerStateHelper
import com.android.wm.shell.flicker.LAUNCHER_UI_PACKAGE_NAME
import com.android.wm.shell.flicker.SYSTEM_UI_PACKAGE_NAME
import org.junit.Assert.assertNotNull
import java.util.Collections

internal object SplitScreenUtils {
@@ -50,7 +51,7 @@ internal object SplitScreenUtils {
    private const val DIVIDER_BAR = "docked_divider_handle"
    private const val OVERVIEW_SNAPSHOT = "snapshot"
    private const val GESTURE_STEP_MS = 16L
    private const val LONG_PRESS_TIME_MS = 100L
    private val LONG_PRESS_TIME_MS = ViewConfiguration.getLongPressTimeout() * 2L
    private val SPLIT_DECOR_MANAGER = ComponentNameMatcher("", "SplitDecorManager#")

    private val notificationScrollerSelector: BySelector
@@ -275,13 +276,6 @@ internal object SplitScreenUtils {
        }
    }

    fun longPress(instrumentation: Instrumentation, point: Point) {
        val downTime = SystemClock.uptimeMillis()
        touch(instrumentation, MotionEvent.ACTION_DOWN, downTime, downTime, TIMEOUT_MS, point)
        SystemClock.sleep(LONG_PRESS_TIME_MS)
        touch(instrumentation, MotionEvent.ACTION_UP, downTime, downTime, TIMEOUT_MS, point)
    }

    fun createShortcutOnHotseatIfNotExist(tapl: LauncherInstrumentation, appName: String) {
        tapl.workspace.deleteAppIcon(tapl.workspace.getHotseatAppIcon(0))
        val allApps = tapl.workspace.switchToAllApps()
@@ -353,9 +347,11 @@ internal object SplitScreenUtils {
                Until.findObject(By.res(sourceApp.packageName, "SplitScreenTest")),
                TIMEOUT_MS
            )
        longPress(instrumentation, textView.visibleCenter)
        assertNotNull("Unable to find the TextView", textView)
        textView.click(LONG_PRESS_TIME_MS)

        val copyBtn = device.wait(Until.findObject(By.text("Copy")), TIMEOUT_MS)
        assertNotNull("Unable to find the copy button", copyBtn)
        copyBtn.click()

        // Paste text to destinationApp
@@ -364,9 +360,11 @@ internal object SplitScreenUtils {
                Until.findObject(By.res(destinationApp.packageName, "plain_text_input")),
                TIMEOUT_MS
            )
        longPress(instrumentation, editText.visibleCenter)
        assertNotNull("Unable to find the EditText", editText)
        editText.click(LONG_PRESS_TIME_MS)

        val pasteBtn = device.wait(Until.findObject(By.text("Paste")), TIMEOUT_MS)
        assertNotNull("Unable to find the paste button", pasteBtn)
        pasteBtn.click()

        // Verify text