Loading core/java/android/view/CrossWindowBlurListeners.java +3 −3 Original line number Diff line number Diff line Loading @@ -73,14 +73,14 @@ public final class CrossWindowBlurListeners { return instance; } boolean isCrossWindowBlurEnabled() { public boolean isCrossWindowBlurEnabled() { synchronized (sLock) { attachInternalListenerIfNeededLocked(); return mCrossWindowBlurEnabled; } } void addListener(@NonNull @CallbackExecutor Executor executor, public void addListener(@NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> listener) { Preconditions.checkNotNull(listener, "listener cannot be null"); Preconditions.checkNotNull(executor, "executor cannot be null"); Loading @@ -94,7 +94,7 @@ public final class CrossWindowBlurListeners { } void removeListener(Consumer<Boolean> listener) { public void removeListener(Consumer<Boolean> listener) { Preconditions.checkNotNull(listener, "listener cannot be null"); synchronized (sLock) { Loading packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java +7 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ import android.service.dreams.IDreamManager; import android.telecom.TelecomManager; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.view.CrossWindowBlurListeners; import android.view.IWindowManager; import android.view.ViewConfiguration; import android.view.WindowManager; Loading Loading @@ -138,6 +139,12 @@ public class FrameworkServicesModule { return context.getSystemService(DevicePolicyManager.class); } @Provides @Singleton static CrossWindowBlurListeners provideCrossWindowBlurListeners() { return CrossWindowBlurListeners.getInstance(); } @Provides @DisplayId static int provideDisplayId(Context context) { Loading packages/SystemUI/src/com/android/systemui/statusbar/BlurUtils.kt +4 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.app.ActivityManager import android.content.res.Resources import android.util.IndentingPrintWriter import android.util.MathUtils import android.view.CrossWindowBlurListeners import android.view.SurfaceControl import android.view.ViewRootImpl import androidx.annotation.VisibleForTesting Loading @@ -37,6 +38,7 @@ import javax.inject.Inject @SysUISingleton open class BlurUtils @Inject constructor( @Main private val resources: Resources, private val crossWindowBlurListeners: CrossWindowBlurListeners, dumpManager: DumpManager ) : Dumpable { val minBlurRadius = resources.getDimensionPixelSize(R.dimen.min_window_blur_radius) Loading Loading @@ -97,7 +99,8 @@ open class BlurUtils @Inject constructor( * @return {@code true} when supported. */ open fun supportsBlursOnWindows(): Boolean { return CROSS_WINDOW_BLUR_SUPPORTED && ActivityManager.isHighEndGfx() return CROSS_WINDOW_BLUR_SUPPORTED && ActivityManager.isHighEndGfx() && crossWindowBlurListeners.isCrossWindowBlurEnabled() } override fun dump(fd: FileDescriptor, pw: PrintWriter, args: Array<out String>) { Loading packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt +1 −1 Original line number Diff line number Diff line Loading @@ -186,7 +186,7 @@ class NotificationShadeDepthController @Inject constructor( var blur = max(shadeRadius.toInt(), globalActionsRadius) // Make blur be 0 if it is necessary to stop blur effect. if (scrimsVisible) { if (scrimsVisible || !blurUtils.supportsBlursOnWindows()) { blur = 0 } Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/BlurUtilsTest.kt +4 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.statusbar import android.content.res.Resources import android.view.CrossWindowBlurListeners import android.view.SurfaceControl import android.view.ViewRootImpl import androidx.test.filters.SmallTest Loading @@ -37,11 +38,13 @@ class BlurUtilsTest : SysuiTestCase() { @Mock lateinit var resources: Resources @Mock lateinit var dumpManager: DumpManager @Mock lateinit var transaction: SurfaceControl.Transaction @Mock lateinit var corssWindowBlurListeners: CrossWindowBlurListeners lateinit var blurUtils: BlurUtils @Before fun setup() { MockitoAnnotations.initMocks(this) `when`(corssWindowBlurListeners.isCrossWindowBlurEnabled).thenReturn(true) blurUtils = TestableBlurUtils() } Loading Loading @@ -71,7 +74,7 @@ class BlurUtilsTest : SysuiTestCase() { verify(transaction).apply() } inner class TestableBlurUtils() : BlurUtils(resources, dumpManager) { inner class TestableBlurUtils() : BlurUtils(resources, corssWindowBlurListeners, dumpManager) { override fun supportsBlursOnWindows(): Boolean { return true } Loading Loading
core/java/android/view/CrossWindowBlurListeners.java +3 −3 Original line number Diff line number Diff line Loading @@ -73,14 +73,14 @@ public final class CrossWindowBlurListeners { return instance; } boolean isCrossWindowBlurEnabled() { public boolean isCrossWindowBlurEnabled() { synchronized (sLock) { attachInternalListenerIfNeededLocked(); return mCrossWindowBlurEnabled; } } void addListener(@NonNull @CallbackExecutor Executor executor, public void addListener(@NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> listener) { Preconditions.checkNotNull(listener, "listener cannot be null"); Preconditions.checkNotNull(executor, "executor cannot be null"); Loading @@ -94,7 +94,7 @@ public final class CrossWindowBlurListeners { } void removeListener(Consumer<Boolean> listener) { public void removeListener(Consumer<Boolean> listener) { Preconditions.checkNotNull(listener, "listener cannot be null"); synchronized (sLock) { Loading
packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java +7 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ import android.service.dreams.IDreamManager; import android.telecom.TelecomManager; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.view.CrossWindowBlurListeners; import android.view.IWindowManager; import android.view.ViewConfiguration; import android.view.WindowManager; Loading Loading @@ -138,6 +139,12 @@ public class FrameworkServicesModule { return context.getSystemService(DevicePolicyManager.class); } @Provides @Singleton static CrossWindowBlurListeners provideCrossWindowBlurListeners() { return CrossWindowBlurListeners.getInstance(); } @Provides @DisplayId static int provideDisplayId(Context context) { Loading
packages/SystemUI/src/com/android/systemui/statusbar/BlurUtils.kt +4 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.app.ActivityManager import android.content.res.Resources import android.util.IndentingPrintWriter import android.util.MathUtils import android.view.CrossWindowBlurListeners import android.view.SurfaceControl import android.view.ViewRootImpl import androidx.annotation.VisibleForTesting Loading @@ -37,6 +38,7 @@ import javax.inject.Inject @SysUISingleton open class BlurUtils @Inject constructor( @Main private val resources: Resources, private val crossWindowBlurListeners: CrossWindowBlurListeners, dumpManager: DumpManager ) : Dumpable { val minBlurRadius = resources.getDimensionPixelSize(R.dimen.min_window_blur_radius) Loading Loading @@ -97,7 +99,8 @@ open class BlurUtils @Inject constructor( * @return {@code true} when supported. */ open fun supportsBlursOnWindows(): Boolean { return CROSS_WINDOW_BLUR_SUPPORTED && ActivityManager.isHighEndGfx() return CROSS_WINDOW_BLUR_SUPPORTED && ActivityManager.isHighEndGfx() && crossWindowBlurListeners.isCrossWindowBlurEnabled() } override fun dump(fd: FileDescriptor, pw: PrintWriter, args: Array<out String>) { Loading
packages/SystemUI/src/com/android/systemui/statusbar/NotificationShadeDepthController.kt +1 −1 Original line number Diff line number Diff line Loading @@ -186,7 +186,7 @@ class NotificationShadeDepthController @Inject constructor( var blur = max(shadeRadius.toInt(), globalActionsRadius) // Make blur be 0 if it is necessary to stop blur effect. if (scrimsVisible) { if (scrimsVisible || !blurUtils.supportsBlursOnWindows()) { blur = 0 } Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/BlurUtilsTest.kt +4 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.statusbar import android.content.res.Resources import android.view.CrossWindowBlurListeners import android.view.SurfaceControl import android.view.ViewRootImpl import androidx.test.filters.SmallTest Loading @@ -37,11 +38,13 @@ class BlurUtilsTest : SysuiTestCase() { @Mock lateinit var resources: Resources @Mock lateinit var dumpManager: DumpManager @Mock lateinit var transaction: SurfaceControl.Transaction @Mock lateinit var corssWindowBlurListeners: CrossWindowBlurListeners lateinit var blurUtils: BlurUtils @Before fun setup() { MockitoAnnotations.initMocks(this) `when`(corssWindowBlurListeners.isCrossWindowBlurEnabled).thenReturn(true) blurUtils = TestableBlurUtils() } Loading Loading @@ -71,7 +74,7 @@ class BlurUtilsTest : SysuiTestCase() { verify(transaction).apply() } inner class TestableBlurUtils() : BlurUtils(resources, dumpManager) { inner class TestableBlurUtils() : BlurUtils(resources, corssWindowBlurListeners, dumpManager) { override fun supportsBlursOnWindows(): Boolean { return true } Loading