diff options
| author | 2021-11-15 10:36:55 +0000 | |
|---|---|---|
| committer | 2021-11-15 10:36:55 +0000 | |
| commit | aa67cba3d9498bd775bcf22e89fbdf258a98c1d7 (patch) | |
| tree | 5c2a57fdd3dd47b960073c482df1dfe0e56049ff | |
| parent | b5827095ca6f975331ac1b4ba8944953ff7dbebf (diff) | |
| parent | 4dcdafc4c78c172093aaba2d85bc328640ed8382 (diff) | |
Merge "Set Shade opaqueness on devices that don't support blurs" into sc-v2-dev
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/BlurUtils.kt | 21 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/statusbar/BlurUtilsTest.kt | 27 |
2 files changed, 34 insertions, 14 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BlurUtils.kt b/packages/SystemUI/src/com/android/systemui/statusbar/BlurUtils.kt index cfbe3b29783a..cf2328f5af97 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/BlurUtils.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/BlurUtils.kt @@ -80,22 +80,23 @@ open class BlurUtils @Inject constructor( * @param opaque if surface is opaque, regardless or having blurs or no. */ fun applyBlur(viewRootImpl: ViewRootImpl?, radius: Int, opaque: Boolean) { - if (viewRootImpl == null || !viewRootImpl.surfaceControl.isValid || - !supportsBlursOnWindows()) { + if (viewRootImpl == null || !viewRootImpl.surfaceControl.isValid) { return } createTransaction().use { - it.setBackgroundBlurRadius(viewRootImpl.surfaceControl, radius) - it.setOpaque(viewRootImpl.surfaceControl, opaque) - if (lastAppliedBlur == 0 && radius != 0) { - it.setEarlyWakeupStart() - } - if (lastAppliedBlur != 0 && radius == 0) { - it.setEarlyWakeupEnd() + if (supportsBlursOnWindows()) { + it.setBackgroundBlurRadius(viewRootImpl.surfaceControl, radius) + if (lastAppliedBlur == 0 && radius != 0) { + it.setEarlyWakeupStart() + } + if (lastAppliedBlur != 0 && radius == 0) { + it.setEarlyWakeupEnd() + } + lastAppliedBlur = radius } + it.setOpaque(viewRootImpl.surfaceControl, opaque) it.apply() } - lastAppliedBlur = radius } @VisibleForTesting diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/BlurUtilsTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/BlurUtilsTest.kt index 8e52588e5390..e9676c83c39e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/BlurUtilsTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/BlurUtilsTest.kt @@ -27,9 +27,12 @@ import org.junit.Before import org.junit.Test import org.mockito.Mock import org.mockito.Mockito.`when` +import org.mockito.Mockito.any +import org.mockito.Mockito.anyInt import org.mockito.Mockito.clearInvocations import org.mockito.Mockito.eq import org.mockito.Mockito.mock +import org.mockito.Mockito.never import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations @@ -40,12 +43,11 @@ class BlurUtilsTest : SysuiTestCase() { @Mock lateinit var dumpManager: DumpManager @Mock lateinit var transaction: SurfaceControl.Transaction @Mock lateinit var crossWindowBlurListeners: CrossWindowBlurListeners - lateinit var blurUtils: BlurUtils + lateinit var blurUtils: TestableBlurUtils @Before fun setup() { MockitoAnnotations.initMocks(this) - `when`(crossWindowBlurListeners.isCrossWindowBlurEnabled).thenReturn(true) blurUtils = TestableBlurUtils() } @@ -76,6 +78,21 @@ class BlurUtilsTest : SysuiTestCase() { } @Test + fun testApplyBlur_blurDisabled() { + val radius = 10 + val surfaceControl = mock(SurfaceControl::class.java) + val viewRootImpl = mock(ViewRootImpl::class.java) + `when`(viewRootImpl.surfaceControl).thenReturn(surfaceControl) + `when`(surfaceControl.isValid).thenReturn(true) + + blurUtils.blursEnabled = false + blurUtils.applyBlur(viewRootImpl, radius, true /* opaque */) + verify(transaction).setOpaque(eq(surfaceControl), eq(true)) + verify(transaction, never()).setBackgroundBlurRadius(any(), anyInt()) + verify(transaction).apply() + } + + @Test fun testEarlyWakeUp() { val radius = 10 val surfaceControl = mock(SurfaceControl::class.java) @@ -89,9 +106,11 @@ class BlurUtilsTest : SysuiTestCase() { verify(transaction).setEarlyWakeupEnd() } - inner class TestableBlurUtils() : BlurUtils(resources, crossWindowBlurListeners, dumpManager) { + inner class TestableBlurUtils : BlurUtils(resources, crossWindowBlurListeners, dumpManager) { + var blursEnabled = true + override fun supportsBlursOnWindows(): Boolean { - return true + return blursEnabled } override fun createTransaction(): SurfaceControl.Transaction { |