Merge "Tweak notification scrim easing" into sc-dev

This commit is contained in:
Lucas Dupin
2021-05-25 01:58:23 +00:00
committed by Android (Google) Code Review
5 changed files with 13 additions and 8 deletions

View File

@@ -96,13 +96,18 @@ public class Interpolators {
/**
* Interpolate alpha for notifications background scrim during shade expansion.
* @param fraction Shade expansion fraction
* @param forNotification If we want the alpha of the notification shade or the scrim.
*/
public static float getNotificationScrimAlpha(float fraction) {
public static float getNotificationScrimAlpha(float fraction, boolean forNotification) {
if (!forNotification) {
fraction = MathUtils.saturate(1.7f * fraction);
}
fraction = fraction * 1.2f - 0.2f;
if (fraction <= 0) {
return 0;
} else {
return (float) (1f - 0.5f * (1f - Math.cos(3.14159f * Math.pow(1f - fraction, 2f))));
final float oneMinusFrac = 1f - fraction;
return (float) (1f - 0.5f * (1f - Math.cos(3.14159f * oneMinusFrac * oneMinusFrac)));
}
}
}

View File

@@ -31,8 +31,8 @@ import android.view.WindowInsets;
import android.view.accessibility.AccessibilityNodeInfo;
import com.android.internal.annotations.VisibleForTesting;
import com.android.systemui.animation.Interpolators;
import com.android.systemui.R;
import com.android.systemui.animation.Interpolators;
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
import com.android.systemui.statusbar.notification.NotificationUtils;
import com.android.systemui.statusbar.notification.row.ActivatableNotificationView;
@@ -180,7 +180,7 @@ public class NotificationShelf extends ActivatableNotificationView implements
if (ambientState.isExpansionChanging() && !ambientState.isOnKeyguard()) {
viewState.alpha = Interpolators.getNotificationScrimAlpha(
ambientState.getExpansionFraction());
ambientState.getExpansionFraction(), true /* notification */);
} else {
viewState.alpha = 1f - ambientState.getHideAmount();
}

View File

@@ -24,8 +24,8 @@ import android.util.MathUtils;
import android.view.View;
import android.view.ViewGroup;
import com.android.systemui.animation.Interpolators;
import com.android.systemui.R;
import com.android.systemui.animation.Interpolators;
import com.android.systemui.statusbar.NotificationShelf;
import com.android.systemui.statusbar.notification.dagger.SilentHeader;
import com.android.systemui.statusbar.notification.row.ActivatableNotificationView;
@@ -382,7 +382,7 @@ public class StackScrollAlgorithm {
if (ambientState.isExpansionChanging() && !ambientState.isOnKeyguard()) {
viewState.alpha = Interpolators.getNotificationScrimAlpha(
ambientState.getExpansionFraction());
ambientState.getExpansionFraction(), true /* notification */);
} else {
viewState.alpha = 1f - ambientState.getHideAmount();
}

View File

@@ -883,7 +883,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
}
private float getInterpolatedFraction() {
return Interpolators.getNotificationScrimAlpha(mPanelExpansion);
return Interpolators.getNotificationScrimAlpha(mPanelExpansion, false /* notification */);
}
private void setScrimAlpha(ScrimView scrim, float alpha) {

View File

@@ -1118,7 +1118,7 @@ public class ScrimControllerTest extends SysuiTestCase {
public void testNotificationTransparency_inKeyguardState() {
mScrimController.transitionTo(ScrimState.KEYGUARD);
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0.2f, /* expansion */ 0.8f);
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0.2f, /* expansion */ 0.4f);
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0.8f, /* expansion */ 0.2f);
}