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

Commit 0a4d8d88 authored by Chandru S's avatar Chandru S
Browse files

Make sure the current shade blur uses the old blur radius value when...

Make sure the current shade blur uses the old blur radius value when notificationShadeBlur flag is not enabled.

Ramping up the bouncer_ui_revamp flag led to jank in the NOTIFICATION_SHADE_EXPAND_COLLAPSE CUJ because it was using the 60dp radius by mistake.
This might help reduce the jank for now, but it might come up when we ramp up the notificationShadeBlur flag later on. Jank requires a bit more investigation, the intent of this CL to isolate the flag's impact to only the bouncer CUJs.

Bug: 394275414
Bug: 393199337
Flag: com.android.systemui.bouncer_ui_revamp
Test: NA
Test: verified manually that shade pull down still uses the old blur radius
Change-Id: I35d0f873a059f042d85903b24ca142215dd4f95e
parent c6ac4dc9
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -87,6 +87,7 @@ import com.android.systemui.keyguard.domain.interactor.KeyguardClockInteractor;
import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor;
import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor;
import com.android.systemui.keyguard.domain.interactor.NaturalScrollingSettingObserver;
import com.android.systemui.keyguard.ui.transitions.BlurConfig;
import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransitionViewModel;
import com.android.systemui.keyguard.ui.viewmodel.KeyguardTouchHandlingViewModel;
import com.android.systemui.kosmos.KosmosJavaAdapter;
@@ -587,7 +588,8 @@ public class NotificationPanelViewControllerBaseTest extends SysuiTestCase {
                mPowerInteractor,
                mKeyguardClockPositionAlgorithm,
                mMSDLPlayer,
                mBrightnessMirrorShowingInteractor);
                mBrightnessMirrorShowingInteractor,
                new BlurConfig(0f, 0f));
        mNotificationPanelViewController.initDependencies(
                mCentralSurfaces,
                null,
+3 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.statusbar

import android.content.res.Resources
import android.view.CrossWindowBlurListeners
import android.view.SurfaceControl
import android.view.ViewRootImpl
@@ -46,6 +47,7 @@ class BlurUtilsTest : SysuiTestCase() {
    @Mock lateinit var dumpManager: DumpManager
    @Mock lateinit var transaction: SurfaceControl.Transaction
    @Mock lateinit var crossWindowBlurListeners: CrossWindowBlurListeners
    @Mock lateinit var resources: Resources
    lateinit var blurUtils: TestableBlurUtils

    @Before
@@ -109,7 +111,7 @@ class BlurUtilsTest : SysuiTestCase() {
        verify(transaction).setEarlyWakeupEnd()
    }

    inner class TestableBlurUtils : BlurUtils(blurConfig, crossWindowBlurListeners, dumpManager) {
    inner class TestableBlurUtils : BlurUtils(resources, blurConfig, crossWindowBlurListeners, dumpManager) {
        var blursEnabled = true

        override fun supportsBlursOnWindows(): Boolean {
+7 −3
Original line number Diff line number Diff line
@@ -110,6 +110,7 @@ import com.android.systemui.keyguard.shared.model.Edge;
import com.android.systemui.keyguard.shared.model.TransitionState;
import com.android.systemui.keyguard.shared.model.TransitionStep;
import com.android.systemui.keyguard.ui.binder.KeyguardTouchViewBinder;
import com.android.systemui.keyguard.ui.transitions.BlurConfig;
import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransitionViewModel;
import com.android.systemui.keyguard.ui.viewmodel.KeyguardTouchHandlingViewModel;
import com.android.systemui.media.controls.domain.pipeline.MediaDataManager;
@@ -309,6 +310,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
    private final AlternateBouncerInteractor mAlternateBouncerInteractor;
    private final QuickSettingsControllerImpl mQsController;
    private final TouchHandler mTouchHandler = new TouchHandler();
    private final BlurConfig mBlurConfig;

    private long mDownTime;
    private long mStatusBarLongPressDowntime = -1L;
@@ -606,7 +608,9 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
            PowerInteractor powerInteractor,
            KeyguardClockPositionAlgorithm keyguardClockPositionAlgorithm,
            MSDLPlayer msdlPlayer,
            BrightnessMirrorShowingInteractor brightnessMirrorShowingInteractor) {
            BrightnessMirrorShowingInteractor brightnessMirrorShowingInteractor,
            BlurConfig blurConfig) {
        mBlurConfig = blurConfig;
        SceneContainerFlag.assertInLegacyMode();
        keyguardStateController.addCallback(new KeyguardStateController.Callback() {
            @Override
@@ -923,8 +927,8 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump
        if (isBouncerShowing && isExpanded()) {
            if (mBlurRenderEffect == null) {
                mBlurRenderEffect = RenderEffect.createBlurEffect(
                        mDepthController.getMaxBlurRadiusPx(),
                        mDepthController.getMaxBlurRadiusPx(),
                        mBlurConfig.getMaxBlurRadiusPx(),
                        mBlurConfig.getMaxBlurRadiusPx(),
                        Shader.TileMode.CLAMP);
            }
            mView.setRenderEffect(mBlurRenderEffect);
+10 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.statusbar

import android.app.ActivityManager
import android.content.res.Resources
import android.os.SystemProperties
import android.os.Trace
import android.os.Trace.TRACE_TAG_APP
@@ -28,20 +29,28 @@ import android.view.SurfaceControl
import android.view.ViewRootImpl
import androidx.annotation.VisibleForTesting
import com.android.systemui.Dumpable
import com.android.systemui.Flags
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.dump.DumpManager
import java.io.PrintWriter
import javax.inject.Inject
import com.android.systemui.keyguard.ui.transitions.BlurConfig
import com.android.systemui.res.R

@SysUISingleton
open class BlurUtils @Inject constructor(
    @Main resources: Resources,
    blurConfig: BlurConfig,
    private val crossWindowBlurListeners: CrossWindowBlurListeners,
    dumpManager: DumpManager
) : Dumpable {
    val minBlurRadius = blurConfig.minBlurRadiusPx
    val maxBlurRadius = blurConfig.maxBlurRadiusPx
    val maxBlurRadius = if (Flags.notificationShadeBlur()) {
        blurConfig.maxBlurRadiusPx
    } else {
        resources.getDimensionPixelSize(R.dimen.max_window_blur_radius).toFloat()
    }

    private var lastAppliedBlur = 0
    private var earlyWakeupEnabled = false