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

Commit 6910bc21 authored by Rahul Banerjee's avatar Rahul Banerjee Committed by Android (Google) Code Review
Browse files

Merge "SysUI Notification Shade Blur." into main

parents 54e5ce10 f475ccdc
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1224,6 +1224,9 @@
    <dimen name="min_window_blur_radius">1px</dimen>
    <dimen name="max_window_blur_radius">23px</dimen>

    <!-- Blur radius behind Notification Shade -->
    <dimen name="max_shade_window_blur_radius">60dp</dimen>

    <!-- How much into a DisplayCutout's bounds we can go, on each side -->
    <dimen name="display_cutout_margin_consumption">0px</dimen>

+5 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.view.animation.DecelerateInterpolator;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.graphics.ColorUtils;
import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
import static com.android.systemui.Flags.notificationShadeBlur;

/**
 * Drawable used on SysUI scrims.
@@ -213,6 +214,10 @@ public class ScrimDrawable extends Drawable {
    public void draw(@NonNull Canvas canvas) {
        mPaint.setColor(mMainColor);
        mPaint.setAlpha(mAlpha);
        if (notificationShadeBlur()) {
            // TODO(b/370555223): Match the alpha to the visual spec when it is finalized.
            mPaint.setAlpha((int) (0.5f * mAlpha));
        }
        if (mConcaveInfo != null) {
            drawConcave(canvas);
        } else if (mCornerRadiusEnabled && mCornerRadius > 0) {
+6 −0
Original line number Diff line number Diff line
@@ -44,6 +44,8 @@ import com.android.systemui.util.LargeScreenUtils;

import java.util.concurrent.Executor;

import static com.android.systemui.Flags.notificationShadeBlur;

/**
 * A view which can draw a scrim.  This view maybe be used in multiple windows running on different
 * threads, but is controlled by {@link com.android.systemui.statusbar.phone.ScrimController} so we
@@ -250,6 +252,10 @@ public class ScrimView extends View {
            if (mBlendWithMainColor) {
                mainTinted = ColorUtils.blendARGB(mColors.getMainColor(), mTintColor, tintAmount);
            }
            if (notificationShadeBlur()) {
                // TODO(b/370555223): Fix color and transparency to match visual spec exactly
                mainTinted = ColorUtils.blendARGB(mColors.getMainColor(), Color.GRAY, 0.5f);
            }
            drawable.setColor(mainTinted, animated);
        } else {
            boolean hasAlpha = Color.alpha(mTintColor) != 0;
+9 −1
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ 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.Flags.notificationShadeBlur

@SysUISingleton
open class BlurUtils @Inject constructor(
@@ -43,7 +44,14 @@ open class BlurUtils @Inject constructor(
    dumpManager: DumpManager
) : Dumpable {
    val minBlurRadius = resources.getDimensionPixelSize(R.dimen.min_window_blur_radius)
    val maxBlurRadius = resources.getDimensionPixelSize(R.dimen.max_window_blur_radius)
    val maxBlurRadius =
        if (notificationShadeBlur()) {
            resources.getDimensionPixelSize(R.dimen.max_shade_window_blur_radius)
        } else {
            resources.getDimensionPixelSize(R.dimen.max_window_blur_radius)
        }


    private var lastAppliedBlur = 0
    private var earlyWakeupEnabled = false

+5 −2
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ import java.io.PrintWriter
import javax.inject.Inject
import kotlin.math.max
import kotlin.math.sign
import com.android.systemui.Flags.notificationShadeBlur

/**
 * Responsible for blurring the notification shade window, and applying a zoom effect to the
@@ -220,7 +221,9 @@ constructor(

        // Make blur be 0 if it is necessary to stop blur effect.
        if (scrimsVisible) {
            if (!notificationShadeBlur()) {
                blur = 0
            }
            zoomOut = 0f
        }

@@ -240,7 +243,7 @@ constructor(
        Choreographer.FrameCallback {
            updateScheduled = false
            val (blur, zoomOut) = computeBlurAndZoomOut()
            val opaque = scrimsVisible && !blursDisabledForAppLaunch
            val opaque = if (notificationShadeBlur()) false else scrimsVisible && !blursDisabledForAppLaunch
            Trace.traceCounter(Trace.TRACE_TAG_APP, "shade_blur_radius", blur)
            blurUtils.applyBlur(root.viewRootImpl, blur, opaque)
            lastAppliedBlur = blur