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

Commit fdba71a1 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Hiding split shade status bar for heads up notifications" into...

Merge "Hiding split shade status bar for heads up notifications" into sc-v2-dev am: 6366f4e2 am: 17437ce4

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16056792

Change-Id: Ia9762c264a3d4caaa906f5af5b40e4642bc92759
parents 97d4a5a3 17437ce4
Loading
Loading
Loading
Loading
+0 −20
Original line number Diff line number Diff line
@@ -197,26 +197,6 @@ public class Interpolators {
        return MathUtils.max(0.0f, (float) (1.0f - Math.exp(-4 * progress)));
    }

    /**
     * Interpolate alpha for notifications background scrim during shade expansion.
     * @param fraction Shade expansion fraction
     * @param forUiContent If we want the alpha of the scrims, or ui that's on top of them.
     */
    public static float getNotificationScrimAlpha(float fraction, boolean forUiContent) {
        if (forUiContent) {
            fraction = MathUtils.constrainedMap(0f, 1f, 0.3f, 1f, fraction);
        } else {
            fraction = MathUtils.constrainedMap(0f, 1f, 0f, 0.5f, fraction);
        }
        fraction = fraction * 1.2f - 0.2f;
        if (fraction <= 0) {
            return 0;
        } else {
            final float oneMinusFrac = 1f - fraction;
            return (float) (1f - 0.5f * (1f - Math.cos(3.14159f * oneMinusFrac * oneMinusFrac)));
        }
    }

    // Create the default emphasized interpolator
    private static PathInterpolator createEmphasizedInterpolator() {
        Path path = new Path();
+37 −0
Original line number Diff line number Diff line
package com.android.systemui.animation

import android.util.MathUtils

object ShadeInterpolation {

    /**
     * Interpolate alpha for notification background scrim during shade expansion.
     * @param fraction Shade expansion fraction
     */
    @JvmStatic
    fun getNotificationScrimAlpha(fraction: Float): Float {
        val mappedFraction = MathUtils.constrainedMap(0f, 1f, 0f, 0.5f, fraction)
        return interpolateEaseInOut(mappedFraction)
    }

    /**
     * Interpolate alpha for shade content during shade expansion.
     * @param fraction Shade expansion fraction
     */
    @JvmStatic
    fun getContentAlpha(fraction: Float): Float {
        val mappedFraction = MathUtils.constrainedMap(0f, 1f, 0.3f, 1f, fraction)
        return interpolateEaseInOut(mappedFraction)
    }

    private fun interpolateEaseInOut(fraction: Float): Float {
        val mappedFraction = fraction * 1.2f - 0.2f
        return if (mappedFraction <= 0) {
            0f
        } else {
            val oneMinusFrac = 1f - mappedFraction
            (1f - 0.5f * (1f - Math.cos((3.14159f * oneMinusFrac * oneMinusFrac).toDouble())))
                    .toFloat()
        }
    }
}
 No newline at end of file
+2 −1
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import androidx.annotation.VisibleForTesting;
import com.android.systemui.Dumpable;
import com.android.systemui.R;
import com.android.systemui.animation.Interpolators;
import com.android.systemui.animation.ShadeInterpolation;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.media.MediaHost;
import com.android.systemui.plugins.FalsingManager;
@@ -574,7 +575,7 @@ public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Ca
        } else if (progress > 0 && view.getVisibility() != View.VISIBLE) {
            view.setVisibility((View.VISIBLE));
        }
        float alpha = Interpolators.getNotificationScrimAlpha(progress, true /* uiContent */);
        float alpha = ShadeInterpolation.getContentAlpha(progress);
        view.setAlpha(alpha);
    }

+5 −4
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import androidx.dynamicanimation.animation.SpringAnimation
import androidx.dynamicanimation.animation.SpringForce
import com.android.systemui.Dumpable
import com.android.systemui.animation.Interpolators
import com.android.systemui.animation.ShadeInterpolation
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dump.DumpManager
import com.android.systemui.plugins.statusbar.StatusBarStateController
@@ -184,12 +185,12 @@ class NotificationShadeDepthController @Inject constructor(
        val animationRadius = MathUtils.constrain(shadeAnimation.radius,
                blurUtils.minBlurRadius.toFloat(), blurUtils.maxBlurRadius.toFloat())
        val expansionRadius = blurUtils.blurRadiusOfRatio(
                Interpolators.getNotificationScrimAlpha(
                        if (shouldApplyShadeBlur()) shadeExpansion else 0f, false))
                ShadeInterpolation.getNotificationScrimAlpha(
                        if (shouldApplyShadeBlur()) shadeExpansion else 0f))
        var combinedBlur = (expansionRadius * INTERACTION_BLUR_FRACTION +
                animationRadius * ANIMATION_BLUR_FRACTION)
        val qsExpandedRatio = Interpolators.getNotificationScrimAlpha(qsPanelExpansion,
                false /* notification */) * shadeExpansion
        val qsExpandedRatio = ShadeInterpolation.getNotificationScrimAlpha(qsPanelExpansion) *
                shadeExpansion
        combinedBlur = max(combinedBlur, blurUtils.blurRadiusOfRatio(qsExpandedRatio))
        combinedBlur = max(combinedBlur, blurUtils.blurRadiusOfRatio(transitionToFullShadeProgress))
        var shadeRadius = max(combinedBlur, wakeAndUnlockBlurRadius)
+3 −3
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ import android.view.animation.PathInterpolator;

import com.android.internal.annotations.VisibleForTesting;
import com.android.systemui.R;
import com.android.systemui.animation.Interpolators;
import com.android.systemui.animation.ShadeInterpolation;
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
import com.android.systemui.statusbar.notification.NotificationUtils;
import com.android.systemui.statusbar.notification.row.ActivatableNotificationView;
@@ -168,8 +168,8 @@ public class NotificationShelf extends ActivatableNotificationView implements
            viewState.clipTopAmount = 0;

            if (ambientState.isExpansionChanging() && !ambientState.isOnKeyguard()) {
                viewState.alpha = Interpolators.getNotificationScrimAlpha(
                        ambientState.getExpansionFraction(), true /* notification */);
                float expansion = ambientState.getExpansionFraction();
                viewState.alpha = ShadeInterpolation.getContentAlpha(expansion);
            } else {
                viewState.alpha = 1f - ambientState.getHideAmount();
            }
Loading