summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jordan Demeulenaere <jdemeulenaere@google.com> 2021-11-15 10:36:55 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-11-15 10:36:55 +0000
commitaa67cba3d9498bd775bcf22e89fbdf258a98c1d7 (patch)
tree5c2a57fdd3dd47b960073c482df1dfe0e56049ff
parentb5827095ca6f975331ac1b4ba8944953ff7dbebf (diff)
parent4dcdafc4c78c172093aaba2d85bc328640ed8382 (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.kt21
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/BlurUtilsTest.kt27
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 {