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

Commit 967c3dc8 authored by Lucas Dupin's avatar Lucas Dupin Committed by Android (Google) Code Review
Browse files

Merge "New scrim values for shade and dialogs" into rvc-dev

parents d2c06f9e 99f5fbad
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.GlobalActions.GlobalActionsManager;
import com.android.systemui.plugins.GlobalActionsPanelPlugin;
import com.android.systemui.statusbar.BlurUtils;
import com.android.systemui.statusbar.NotificationShadeDepthController;
import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
import com.android.systemui.statusbar.phone.ScrimController;
@@ -163,6 +164,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
    private final TelecomManager mTelecomManager;
    private final MetricsLogger mMetricsLogger;
    private final NotificationShadeDepthController mDepthController;
    private final BlurUtils mBlurUtils;

    private ArrayList<Action> mItems;
    private ActionsDialog mDialog;
@@ -208,7 +210,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
            TrustManager trustManager, IActivityManager iActivityManager,
            @Nullable TelecomManager telecomManager, MetricsLogger metricsLogger,
            NotificationShadeDepthController depthController, SysuiColorExtractor colorExtractor,
            IStatusBarService statusBarService,
            IStatusBarService statusBarService, BlurUtils blurUtils,
            NotificationShadeWindowController notificationShadeWindowController,
            ControlsUiController controlsUiController, IWindowManager iWindowManager,
            @Background Executor backgroundExecutor,
@@ -237,6 +239,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
        mIWindowManager = iWindowManager;
        mBackgroundExecutor = backgroundExecutor;
        mControlsListingController = controlsListingController;
        mBlurUtils = blurUtils;

        // receive broadcasts
        IntentFilter filter = new IntentFilter();
@@ -439,7 +442,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
        ActionsDialog dialog = new ActionsDialog(mContext, mAdapter, panelViewController,
                mDepthController, mSysuiColorExtractor, mStatusBarService,
                mNotificationShadeWindowController,
                shouldShowControls() ? mControlsUiController : null);
                shouldShowControls() ? mControlsUiController : null, mBlurUtils);
        dialog.setCanceledOnTouchOutside(false); // Handled by the custom class.
        dialog.setKeyguardShowing(mKeyguardShowing);

@@ -1571,6 +1574,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
        private boolean mHadTopUi;
        private final NotificationShadeWindowController mNotificationShadeWindowController;
        private final NotificationShadeDepthController mDepthController;
        private final BlurUtils mBlurUtils;

        private ControlsUiController mControlsUiController;
        private ViewGroup mControlsView;
@@ -1580,7 +1584,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
                NotificationShadeDepthController depthController,
                SysuiColorExtractor sysuiColorExtractor, IStatusBarService statusBarService,
                NotificationShadeWindowController notificationShadeWindowController,
                ControlsUiController controlsUiController) {
                ControlsUiController controlsUiController, BlurUtils blurUtils) {
            super(context, com.android.systemui.R.style.Theme_SystemUI_Dialog_GlobalActions);
            mContext = context;
            mAdapter = adapter;
@@ -1589,6 +1593,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
            mStatusBarService = statusBarService;
            mNotificationShadeWindowController = notificationShadeWindowController;
            mControlsUiController = controlsUiController;
            mBlurUtils = blurUtils;

            // Window initialization
            Window window = getWindow();
@@ -1697,7 +1702,8 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
            }
            if (mBackgroundDrawable == null) {
                mBackgroundDrawable = new ScrimDrawable();
                mScrimAlpha = ScrimController.BUSY_SCRIM_ALPHA;
                mScrimAlpha = mBlurUtils.supportsBlursOnWindows()
                        ? ScrimController.BLUR_SCRIM_ALPHA : ScrimController.BUSY_SCRIM_ALPHA;
            }
            getWindow().setBackgroundDrawable(mBackgroundDrawable);
        }
+1 −1
Original line number Diff line number Diff line
@@ -149,7 +149,7 @@ public class GlobalActionsImpl implements GlobalActions, CommandQueue.Callbacks
        }

        if (mBlurUtils.supportsBlursOnWindows()) {
            background.setAlpha((int) (ScrimController.BUSY_SCRIM_ALPHA * 255));
            background.setAlpha((int) (ScrimController.BLUR_SCRIM_ALPHA * 255));
            mBlurUtils.applyBlur(d.getWindow().getDecorView().getViewRootImpl(),
                        mBlurUtils.blurRadiusOfRatio(1));
        } else {
+6 −3
Original line number Diff line number Diff line
@@ -40,8 +40,10 @@ open class BlurUtils @Inject constructor(
) : Dumpable {
    private val minBlurRadius = resources.getDimensionPixelSize(R.dimen.min_window_blur_radius)
    private val maxBlurRadius = resources.getDimensionPixelSize(R.dimen.max_window_blur_radius)
    private val blurSysProp = SystemProperties
    private val blurSupportedSysProp = SystemProperties
            .getBoolean("ro.surface_flinger.supports_background_blur", false)
    private val blurDisabledSysProp = SystemProperties
            .getBoolean("persist.sys.sf.disable_blurs", false)

    init {
        dumpManager.registerDumpable(javaClass.name, this)
@@ -97,7 +99,7 @@ open class BlurUtils @Inject constructor(
     * @return {@code true} when supported.
     */
    open fun supportsBlursOnWindows(): Boolean {
        return blurSysProp && ActivityManager.isHighEndGfx()
        return blurSupportedSysProp && !blurDisabledSysProp && ActivityManager.isHighEndGfx()
    }

    override fun dump(fd: FileDescriptor, pw: PrintWriter, args: Array<out String>) {
@@ -106,7 +108,8 @@ open class BlurUtils @Inject constructor(
            it.increaseIndent()
            it.println("minBlurRadius: $minBlurRadius")
            it.println("maxBlurRadius: $maxBlurRadius")
            it.println("blurSysProp: $blurSysProp")
            it.println("blurSupportedSysProp: $blurSupportedSysProp")
            it.println("blurDisabledSysProp: $blurDisabledSysProp")
            it.println("supportsBlursOnWindows: ${supportsBlursOnWindows()}")
        }
    }
+16 −10
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ import com.android.systemui.Dumpable;
import com.android.systemui.R;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.dock.DockManager;
import com.android.systemui.statusbar.BlurUtils;
import com.android.systemui.statusbar.ScrimView;
import com.android.systemui.statusbar.notification.stack.ViewState;
import com.android.systemui.statusbar.policy.KeyguardStateController;
@@ -107,21 +108,21 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo
    /**
     * Default alpha value for most scrims.
     */
    public static final float SCRIM_ALPHA = 0.2f;
    protected static final float KEYGUARD_SCRIM_ALPHA = 0.2f;
    /**
     * Scrim opacity when the phone is about to wake-up.
     */
    public static final float WAKE_SENSOR_SCRIM_ALPHA = 0.6f;
    /**
     * A scrim varies its opacity based on a busyness factor, for example
     * how many notifications are currently visible.
     * The default scrim under the shade and dialogs.
     * This should not be lower than 0.54, otherwise we won't pass GAR.
     */
    public static final float BUSY_SCRIM_ALPHA = 0.75f;

    /**
     * The most common scrim, the one under the keyguard.
     * Same as above, but when blur is supported.
     */
    protected static final float SCRIM_BEHIND_ALPHA_KEYGUARD = SCRIM_ALPHA;
    public static final float BLUR_SCRIM_ALPHA = 0.54f;

    static final int TAG_KEY_ANIM = R.id.scrim;
    private static final int TAG_START_ALPHA = R.id.scrim_alpha_start;
@@ -146,7 +147,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo
    private GradientColors mColors;
    private boolean mNeedsDrawableColorUpdate;

    private float mScrimBehindAlphaKeyguard = SCRIM_BEHIND_ALPHA_KEYGUARD;
    private float mScrimBehindAlphaKeyguard = KEYGUARD_SCRIM_ALPHA;
    private final float mDefaultScrimAlpha;

    // Assuming the shade is expanded during initialization
    private float mExpansionFraction = 1f;
@@ -192,9 +194,11 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo
            AlarmManager alarmManager, KeyguardStateController keyguardStateController,
            DelayedWakeLock.Builder delayedWakeLockBuilder, Handler handler,
            KeyguardUpdateMonitor keyguardUpdateMonitor, SysuiColorExtractor sysuiColorExtractor,
            DockManager dockManager) {
            DockManager dockManager, BlurUtils blurUtils) {

        mScrimStateListener = lightBarController::setScrimState;
        mDefaultScrimAlpha = blurUtils.supportsBlursOnWindows()
                ? BLUR_SCRIM_ALPHA : BUSY_SCRIM_ALPHA;

        mKeyguardStateController = keyguardStateController;
        mDarkenWhileDragging = !mKeyguardStateController.canDismissLockScreen();
@@ -236,6 +240,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo
            states[i].init(mScrimInFront, mScrimBehind, mScrimForBubble, mDozeParameters,
                    mDockManager);
            states[i].setScrimBehindAlphaKeyguard(mScrimBehindAlphaKeyguard);
            states[i].setDefaultScrimAlpha(mDefaultScrimAlpha);
        }

        mScrimBehind.setDefaultFocusHighlightEnabled(false);
@@ -483,7 +488,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo
            // Darken scrim as you pull down the shade when unlocked
            float behindFraction = getInterpolatedFraction();
            behindFraction = (float) Math.pow(behindFraction, 0.8f);
            mBehindAlpha = behindFraction * BUSY_SCRIM_ALPHA;
            mBehindAlpha = behindFraction * mDefaultScrimAlpha;
            mInFrontAlpha = 0;
        } else if (mState == ScrimState.KEYGUARD || mState == ScrimState.PULSING) {
            // Either darken of make the scrim transparent when you
@@ -491,7 +496,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo
            float interpolatedFract = getInterpolatedFraction();
            float alphaBehind = mState.getBehindAlpha();
            if (mDarkenWhileDragging) {
                mBehindAlpha = MathUtils.lerp(BUSY_SCRIM_ALPHA, alphaBehind,
                mBehindAlpha = MathUtils.lerp(mDefaultScrimAlpha, alphaBehind,
                        interpolatedFract);
                mInFrontAlpha = mState.getFrontAlpha();
            } else {
@@ -967,7 +972,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo

        pw.print("  mTracking=");
        pw.println(mTracking);

        pw.print("  mDefaultScrimAlpha=");
        pw.println(mDefaultScrimAlpha);
        pw.print("  mExpansionFraction=");
        pw.println(mExpansionFraction);
    }
+10 −5
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ public enum ScrimState {
    BOUNCER {
        @Override
        public void prepare(ScrimState previousState) {
            mBehindAlpha = ScrimController.BUSY_SCRIM_ALPHA;
            mBehindAlpha = mDefaultScrimAlpha;
            mFrontAlpha = 0f;
            mBubbleAlpha = 0f;
        }
@@ -106,7 +106,7 @@ public enum ScrimState {
        public void prepare(ScrimState previousState) {
            mBehindAlpha = 0;
            mBubbleAlpha = 0f;
            mFrontAlpha = ScrimController.BUSY_SCRIM_ALPHA;
            mFrontAlpha = mDefaultScrimAlpha;
        }
    },

@@ -233,9 +233,9 @@ public enum ScrimState {
            mBehindTint = Color.TRANSPARENT;
            mBubbleTint = Color.TRANSPARENT;

            mFrontAlpha = ScrimController.TRANSPARENT;
            mBehindAlpha = ScrimController.BUSY_SCRIM_ALPHA;
            mBubbleAlpha = ScrimController.BUSY_SCRIM_ALPHA;
            mFrontAlpha = 0f;
            mBehindAlpha = mDefaultScrimAlpha;
            mBubbleAlpha = mDefaultScrimAlpha;

            mAnimationDuration = ScrimController.ANIMATION_DURATION;
            mBlankScreen = false;
@@ -255,6 +255,7 @@ public enum ScrimState {
    float mBubbleAlpha;

    float mScrimBehindAlphaKeyguard;
    float mDefaultScrimAlpha;
    ScrimView mScrimInFront;
    ScrimView mScrimBehind;
    ScrimView mScrimForBubble;
@@ -341,6 +342,10 @@ public enum ScrimState {
        mScrimBehindAlphaKeyguard = scrimBehindAlphaKeyguard;
    }

    public void setDefaultScrimAlpha(float defaultScrimAlpha) {
        mDefaultScrimAlpha = defaultScrimAlpha;
    }

    public void setWallpaperSupportsAmbientMode(boolean wallpaperSupportsAmbientMode) {
        mWallpaperSupportsAmbientMode = wallpaperSupportsAmbientMode;
    }
Loading