Merge "Tweak notification scrim easing" into sc-dev am: 89b92e20eb
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14703953 Change-Id: I509e3047e0e198734cd90996001bdacfdace54cd
This commit is contained in:
@@ -96,13 +96,18 @@ public class Interpolators {
|
|||||||
/**
|
/**
|
||||||
* Interpolate alpha for notifications background scrim during shade expansion.
|
* Interpolate alpha for notifications background scrim during shade expansion.
|
||||||
* @param fraction Shade expansion fraction
|
* @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;
|
fraction = fraction * 1.2f - 0.2f;
|
||||||
if (fraction <= 0) {
|
if (fraction <= 0) {
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} 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)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ import android.view.WindowInsets;
|
|||||||
import android.view.accessibility.AccessibilityNodeInfo;
|
import android.view.accessibility.AccessibilityNodeInfo;
|
||||||
|
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
import com.android.systemui.animation.Interpolators;
|
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
|
import com.android.systemui.animation.Interpolators;
|
||||||
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
|
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
|
||||||
import com.android.systemui.statusbar.notification.NotificationUtils;
|
import com.android.systemui.statusbar.notification.NotificationUtils;
|
||||||
import com.android.systemui.statusbar.notification.row.ActivatableNotificationView;
|
import com.android.systemui.statusbar.notification.row.ActivatableNotificationView;
|
||||||
@@ -180,7 +180,7 @@ public class NotificationShelf extends ActivatableNotificationView implements
|
|||||||
|
|
||||||
if (ambientState.isExpansionChanging() && !ambientState.isOnKeyguard()) {
|
if (ambientState.isExpansionChanging() && !ambientState.isOnKeyguard()) {
|
||||||
viewState.alpha = Interpolators.getNotificationScrimAlpha(
|
viewState.alpha = Interpolators.getNotificationScrimAlpha(
|
||||||
ambientState.getExpansionFraction());
|
ambientState.getExpansionFraction(), true /* notification */);
|
||||||
} else {
|
} else {
|
||||||
viewState.alpha = 1f - ambientState.getHideAmount();
|
viewState.alpha = 1f - ambientState.getHideAmount();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ import android.util.MathUtils;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import com.android.systemui.animation.Interpolators;
|
|
||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
|
import com.android.systemui.animation.Interpolators;
|
||||||
import com.android.systemui.statusbar.NotificationShelf;
|
import com.android.systemui.statusbar.NotificationShelf;
|
||||||
import com.android.systemui.statusbar.notification.dagger.SilentHeader;
|
import com.android.systemui.statusbar.notification.dagger.SilentHeader;
|
||||||
import com.android.systemui.statusbar.notification.row.ActivatableNotificationView;
|
import com.android.systemui.statusbar.notification.row.ActivatableNotificationView;
|
||||||
@@ -382,7 +382,7 @@ public class StackScrollAlgorithm {
|
|||||||
|
|
||||||
if (ambientState.isExpansionChanging() && !ambientState.isOnKeyguard()) {
|
if (ambientState.isExpansionChanging() && !ambientState.isOnKeyguard()) {
|
||||||
viewState.alpha = Interpolators.getNotificationScrimAlpha(
|
viewState.alpha = Interpolators.getNotificationScrimAlpha(
|
||||||
ambientState.getExpansionFraction());
|
ambientState.getExpansionFraction(), true /* notification */);
|
||||||
} else {
|
} else {
|
||||||
viewState.alpha = 1f - ambientState.getHideAmount();
|
viewState.alpha = 1f - ambientState.getHideAmount();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -883,7 +883,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump
|
|||||||
}
|
}
|
||||||
|
|
||||||
private float getInterpolatedFraction() {
|
private float getInterpolatedFraction() {
|
||||||
return Interpolators.getNotificationScrimAlpha(mPanelExpansion);
|
return Interpolators.getNotificationScrimAlpha(mPanelExpansion, false /* notification */);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setScrimAlpha(ScrimView scrim, float alpha) {
|
private void setScrimAlpha(ScrimView scrim, float alpha) {
|
||||||
|
|||||||
@@ -1118,7 +1118,7 @@ public class ScrimControllerTest extends SysuiTestCase {
|
|||||||
public void testNotificationTransparency_inKeyguardState() {
|
public void testNotificationTransparency_inKeyguardState() {
|
||||||
mScrimController.transitionTo(ScrimState.KEYGUARD);
|
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);
|
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0.8f, /* expansion */ 0.2f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user