diff options
| author | 2023-02-01 15:00:27 +0000 | |
|---|---|---|
| committer | 2023-02-01 15:00:27 +0000 | |
| commit | d6310c0b919a14aa1386ef3024e465d01b9f4d08 (patch) | |
| tree | f61fa0ebbb65a71ce311c5df9460871dfb982629 /libs | |
| parent | 4580826526274e843b93fcc4baafab14ee919da2 (diff) | |
| parent | f42e8f8e6cd4d3b97a850906429b9e5b0b3eaa3b (diff) | |
Merge "Support layer occlusion with rounded corners"
Diffstat (limited to 'libs')
5 files changed, 69 insertions, 23 deletions
diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipOnUserLeaveHintTest.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipOnUserLeaveHintTest.kt index 7aa40e708850..82617dd84dfd 100644 --- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipOnUserLeaveHintTest.kt +++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipOnUserLeaveHintTest.kt @@ -82,13 +82,33 @@ open class EnterPipOnUserLeaveHintTest(flicker: FlickerTest) : EnterPipTest(flic @Presubmit @Test - override fun pipAppLayerAlwaysVisible() { - if (!flicker.scenario.isGesturalNavigation) super.pipAppLayerAlwaysVisible() - else { - // pip layer in gesture nav will disappear during transition - flicker.assertLayers { - this.isVisible(pipApp).then().isInvisible(pipApp).then().isVisible(pipApp) - } + override fun pipAppLayerOrOverlayAlwaysVisible() { + // pip layer in gesture nav will disappear during transition + Assume.assumeFalse(flicker.scenario.isGesturalNavigation) + super.pipAppLayerOrOverlayAlwaysVisible() + } + + @Presubmit + @Test + fun pipAppWindowVisibleChanges() { + // pip layer in gesture nav will disappear during transition + Assume.assumeTrue(flicker.scenario.isGesturalNavigation) + flicker.assertWm { + this.isAppWindowVisible(pipApp) + .then() + .isAppWindowInvisible(pipApp, isOptional = true) + .then() + .isAppWindowVisible(pipApp, isOptional = true) + } + } + + @Presubmit + @Test + fun pipAppLayerVisibleChanges() { + Assume.assumeTrue(flicker.scenario.isGesturalNavigation) + // pip layer in gesture nav will disappear during transition + flicker.assertLayers { + this.isVisible(pipApp).then().isInvisible(pipApp).then().isVisible(pipApp) } } @@ -116,12 +136,19 @@ open class EnterPipOnUserLeaveHintTest(flicker: FlickerTest) : EnterPipTest(flic @Presubmit @Test - override fun pipLayerRemainInsideVisibleBounds() { - if (!flicker.scenario.isGesturalNavigation) super.pipLayerRemainInsideVisibleBounds() - else { - // pip layer in gesture nav will disappear during transition - flicker.assertLayersStart { this.visibleRegion(pipApp).coversAtMost(displayBounds) } - flicker.assertLayersEnd { this.visibleRegion(pipApp).coversAtMost(displayBounds) } - } + override fun pipLayerOrOverlayRemainInsideVisibleBounds() { + // pip layer in gesture nav will disappear during transition + Assume.assumeFalse(flicker.scenario.isGesturalNavigation) + super.pipLayerOrOverlayRemainInsideVisibleBounds() + } + + @Presubmit + @Test + fun pipLayerRemainInsideVisibleBounds() { + // pip layer in gesture nav will disappear during transition + Assume.assumeTrue(flicker.scenario.isGesturalNavigation) + // pip layer in gesture nav will disappear during transition + flicker.assertLayersStart { this.visibleRegion(pipApp).coversAtMost(displayBounds) } + flicker.assertLayersEnd { this.visibleRegion(pipApp).coversAtMost(displayBounds) } } } diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipTest.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipTest.kt index 5d7003fa46f4..33a64054e1ac 100644 --- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipTest.kt +++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipTest.kt @@ -74,8 +74,14 @@ open class EnterPipTest(flicker: FlickerTest) : PipTransition(flicker) { /** Checks [pipApp] layer remains visible throughout the animation */ @Presubmit @Test - open fun pipAppLayerAlwaysVisible() { - flicker.assertLayers { this.isVisible(pipApp) } + open fun pipAppLayerOrOverlayAlwaysVisible() { + flicker.assertLayers { + this.isVisible(pipApp) + .then() + .isVisible(ComponentNameMatcher.PIP_CONTENT_OVERLAY) + .then() + .isVisible(pipApp) + } } /** @@ -94,8 +100,10 @@ open class EnterPipTest(flicker: FlickerTest) : PipTransition(flicker) { */ @Presubmit @Test - open fun pipLayerRemainInsideVisibleBounds() { - flicker.assertLayersVisibleRegion(pipApp) { coversAtMost(displayBounds) } + open fun pipLayerOrOverlayRemainInsideVisibleBounds() { + flicker.assertLayersVisibleRegion(pipApp.or(ComponentNameMatcher.PIP_CONTENT_OVERLAY) ) { + coversAtMost(displayBounds) + } } /** Checks that the visible region of [pipApp] always reduces during the animation */ diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipToOtherOrientationTest.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipToOtherOrientationTest.kt index 02d50f47288e..afc41067c83b 100644 --- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipToOtherOrientationTest.kt +++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/EnterPipToOtherOrientationTest.kt @@ -17,6 +17,7 @@ package com.android.wm.shell.flicker.pip import android.app.Activity +import android.platform.test.annotations.FlakyTest import android.platform.test.annotations.Postsubmit import android.platform.test.annotations.Presubmit import androidx.test.filters.RequiresDevice @@ -197,7 +198,7 @@ open class EnterPipToOtherOrientationTest(flicker: FlickerTest) : PipTransition( } /** {@inheritDoc} */ - @Presubmit + @FlakyTest(bugId = 267424412) @Test override fun visibleLayersShownMoreThanOneConsecutiveEntry() = super.visibleLayersShownMoreThanOneConsecutiveEntry() diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipToAppTransition.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipToAppTransition.kt index 7466916a798a..691b087d5dcb 100644 --- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipToAppTransition.kt +++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipToAppTransition.kt @@ -19,6 +19,7 @@ package com.android.wm.shell.flicker.pip import android.platform.test.annotations.Presubmit import com.android.server.wm.flicker.FlickerTest import com.android.server.wm.flicker.helpers.SimpleAppHelper +import com.android.server.wm.traces.common.ComponentNameMatcher import org.junit.Test /** Base class for pip expand tests */ @@ -32,7 +33,9 @@ abstract class ExitPipToAppTransition(flicker: FlickerTest) : PipTransition(flic @Presubmit @Test open fun pipAppWindowRemainInsideVisibleBounds() { - flicker.assertWmVisibleRegion(pipApp) { coversAtMost(displayBounds) } + flicker.assertWmVisibleRegion(pipApp.or(ComponentNameMatcher.TRANSITION_SNAPSHOT)) { + coversAtMost(displayBounds) + } } /** @@ -42,7 +45,9 @@ abstract class ExitPipToAppTransition(flicker: FlickerTest) : PipTransition(flic @Presubmit @Test open fun pipAppLayerRemainInsideVisibleBounds() { - flicker.assertLayersVisibleRegion(pipApp) { coversAtMost(displayBounds) } + flicker.assertLayersVisibleRegion(pipApp.or(ComponentNameMatcher.TRANSITION_SNAPSHOT)) { + coversAtMost(displayBounds) + } } /** @@ -72,7 +77,10 @@ abstract class ExitPipToAppTransition(flicker: FlickerTest) : PipTransition(flic @Test open fun showBothAppLayersThenHidePip() { flicker.assertLayers { - isVisible(testApp).isVisible(pipApp).then().isInvisible(testApp).isVisible(pipApp) + isVisible(testApp) + .isVisible(pipApp.or(ComponentNameMatcher.TRANSITION_SNAPSHOT)) + .then() + .isInvisible(testApp).isVisible(pipApp) } } diff --git a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipWithSwipeDownTest.kt b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipWithSwipeDownTest.kt index 54ad991dc2d2..1b48965801e9 100644 --- a/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipWithSwipeDownTest.kt +++ b/libs/WindowManager/Shell/tests/flicker/src/com/android/wm/shell/flicker/pip/ExitPipWithSwipeDownTest.kt @@ -76,7 +76,9 @@ open class ExitPipWithSwipeDownTest(flicker: FlickerTest) : ExitPipTransition(fl ?.height ?: error("Couldn't find Nav or Task bar layer") // The dismiss button doesn't appear at the complete bottom of the screen, - val displayY = device.displayHeight - barLayerHeight + // it appears above the hot seat but `hotseatBarSize` is not available outside + // the platform + val displayY = (device.displayHeight * 0.9).toInt() - barLayerHeight device.swipe(pipCenterX, pipCenterY, displayCenterX, displayY, 50) // Wait until the other app is no longer visible wmHelper |