Merge "ScrimControllerTest: add more test cases for the alpha interpolation of the scrims" into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
a210d6f876
@@ -49,9 +49,11 @@ import android.view.View;
|
|||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
|
|
||||||
import com.android.internal.colorextraction.ColorExtractor.GradientColors;
|
import com.android.internal.colorextraction.ColorExtractor.GradientColors;
|
||||||
|
import com.android.keyguard.BouncerPanelExpansionCalculator;
|
||||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||||
import com.android.systemui.DejankUtils;
|
import com.android.systemui.DejankUtils;
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
|
import com.android.systemui.animation.ShadeInterpolation;
|
||||||
import com.android.systemui.dock.DockManager;
|
import com.android.systemui.dock.DockManager;
|
||||||
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
|
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
|
||||||
import com.android.systemui.scrim.ScrimView;
|
import com.android.systemui.scrim.ScrimView;
|
||||||
@@ -1235,39 +1237,114 @@ public class ScrimControllerTest extends SysuiTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testNotificationTransparency_followsPanelExpansionInShadeLockedState() {
|
public void expansionNotificationAlpha_shadeLocked_bouncerActive_usesBouncerInterpolator() {
|
||||||
when(mStatusBarKeyguardViewManager.bouncerIsInTransit()).thenReturn(true);
|
when(mStatusBarKeyguardViewManager.bouncerIsInTransit()).thenReturn(true);
|
||||||
|
|
||||||
mScrimController.transitionTo(ScrimState.SHADE_LOCKED);
|
mScrimController.transitionTo(ScrimState.SHADE_LOCKED);
|
||||||
|
|
||||||
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0f, /* expansion */ 0.8f);
|
float expansion = 0.8f;
|
||||||
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0f, /* expansion */ 0.2f);
|
float expectedAlpha =
|
||||||
|
BouncerPanelExpansionCalculator.getBackScrimScaledExpansion(expansion);
|
||||||
|
assertAlphaAfterExpansion(mNotificationsScrim, expectedAlpha, expansion);
|
||||||
|
|
||||||
|
expansion = 0.2f;
|
||||||
|
expectedAlpha = BouncerPanelExpansionCalculator.getBackScrimScaledExpansion(expansion);
|
||||||
|
assertAlphaAfterExpansion(mNotificationsScrim, expectedAlpha, expansion);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testNotificationTransparency_unnocclusion() {
|
public void expansionNotificationAlpha_shadeLocked_bouncerNotActive_usesShadeInterpolator() {
|
||||||
|
when(mStatusBarKeyguardViewManager.bouncerIsInTransit()).thenReturn(false);
|
||||||
|
|
||||||
|
mScrimController.transitionTo(ScrimState.SHADE_LOCKED);
|
||||||
|
|
||||||
|
float expansion = 0.8f;
|
||||||
|
float expectedAlpha = ShadeInterpolation.getNotificationScrimAlpha(expansion);
|
||||||
|
assertAlphaAfterExpansion(mNotificationsScrim, expectedAlpha, expansion);
|
||||||
|
|
||||||
|
expansion = 0.2f;
|
||||||
|
expectedAlpha = ShadeInterpolation.getNotificationScrimAlpha(expansion);
|
||||||
|
assertAlphaAfterExpansion(mNotificationsScrim, expectedAlpha, expansion);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void notificationAlpha_unnocclusionAnimating_bouncerActive_usesKeyguardNotifAlpha() {
|
||||||
when(mStatusBarKeyguardViewManager.bouncerIsInTransit()).thenReturn(true);
|
when(mStatusBarKeyguardViewManager.bouncerIsInTransit()).thenReturn(true);
|
||||||
|
|
||||||
mScrimController.transitionTo(ScrimState.KEYGUARD);
|
mScrimController.transitionTo(ScrimState.KEYGUARD);
|
||||||
mScrimController.setUnocclusionAnimationRunning(true);
|
mScrimController.setUnocclusionAnimationRunning(true);
|
||||||
|
|
||||||
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0f, /* expansion */ 0f);
|
assertAlphaAfterExpansion(
|
||||||
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 0f, /* expansion */ 1.0f);
|
mNotificationsScrim, ScrimState.KEYGUARD.getNotifAlpha(), /* expansion */ 0f);
|
||||||
|
assertAlphaAfterExpansion(
|
||||||
|
mNotificationsScrim, ScrimState.KEYGUARD.getNotifAlpha(), /* expansion */ 0.4f);
|
||||||
|
assertAlphaAfterExpansion(
|
||||||
|
mNotificationsScrim, ScrimState.KEYGUARD.getNotifAlpha(), /* expansion */ 1.0f);
|
||||||
|
|
||||||
// Verify normal behavior after
|
// Verify normal behavior after
|
||||||
mScrimController.setUnocclusionAnimationRunning(false);
|
mScrimController.setUnocclusionAnimationRunning(false);
|
||||||
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 1f, /* expansion */ 0.4f);
|
float expansion = 0.4f;
|
||||||
|
float alpha = 1 - BouncerPanelExpansionCalculator.getBackScrimScaledExpansion(expansion);
|
||||||
|
assertAlphaAfterExpansion(mNotificationsScrim, alpha, expansion);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testNotificationTransparency_inKeyguardState() {
|
public void notificationAlpha_unnocclusionAnimating_bouncerNotActive_usesKeyguardNotifAlpha() {
|
||||||
|
when(mStatusBarKeyguardViewManager.bouncerIsInTransit()).thenReturn(false);
|
||||||
|
|
||||||
|
mScrimController.transitionTo(ScrimState.KEYGUARD);
|
||||||
|
mScrimController.setUnocclusionAnimationRunning(true);
|
||||||
|
|
||||||
|
assertAlphaAfterExpansion(
|
||||||
|
mNotificationsScrim, ScrimState.KEYGUARD.getNotifAlpha(), /* expansion */ 0f);
|
||||||
|
assertAlphaAfterExpansion(
|
||||||
|
mNotificationsScrim, ScrimState.KEYGUARD.getNotifAlpha(), /* expansion */ 0.4f);
|
||||||
|
assertAlphaAfterExpansion(
|
||||||
|
mNotificationsScrim, ScrimState.KEYGUARD.getNotifAlpha(), /* expansion */ 1.0f);
|
||||||
|
|
||||||
|
// Verify normal behavior after
|
||||||
|
mScrimController.setUnocclusionAnimationRunning(false);
|
||||||
|
float expansion = 0.4f;
|
||||||
|
float alpha = 1 - ShadeInterpolation.getNotificationScrimAlpha(expansion);
|
||||||
|
assertAlphaAfterExpansion(mNotificationsScrim, alpha, expansion);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void notificationAlpha_inKeyguardState_bouncerActive_usesInvertedBouncerInterpolator() {
|
||||||
when(mStatusBarKeyguardViewManager.bouncerIsInTransit()).thenReturn(true);
|
when(mStatusBarKeyguardViewManager.bouncerIsInTransit()).thenReturn(true);
|
||||||
|
|
||||||
mScrimController.transitionTo(ScrimState.KEYGUARD);
|
mScrimController.transitionTo(ScrimState.KEYGUARD);
|
||||||
|
|
||||||
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 1f, /* expansion */ 0.8f);
|
float expansion = 0.8f;
|
||||||
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 1f, /* expansion */ 0.4f);
|
float alpha = 1 - BouncerPanelExpansionCalculator.getBackScrimScaledExpansion(expansion);
|
||||||
assertAlphaAfterExpansion(mNotificationsScrim, /* alpha */ 1f, /* expansion */ 0.2f);
|
assertAlphaAfterExpansion(mNotificationsScrim, alpha, expansion);
|
||||||
|
|
||||||
|
expansion = 0.4f;
|
||||||
|
alpha = 1 - BouncerPanelExpansionCalculator.getBackScrimScaledExpansion(expansion);
|
||||||
|
assertAlphaAfterExpansion(mNotificationsScrim, alpha, expansion);
|
||||||
|
|
||||||
|
expansion = 0.2f;
|
||||||
|
alpha = 1 - BouncerPanelExpansionCalculator.getBackScrimScaledExpansion(expansion);
|
||||||
|
assertAlphaAfterExpansion(mNotificationsScrim, alpha, expansion);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void notificationAlpha_inKeyguardState_bouncerNotActive_usesInvertedShadeInterpolator() {
|
||||||
|
when(mStatusBarKeyguardViewManager.bouncerIsInTransit()).thenReturn(false);
|
||||||
|
|
||||||
|
mScrimController.transitionTo(ScrimState.KEYGUARD);
|
||||||
|
|
||||||
|
float expansion = 0.8f;
|
||||||
|
float alpha = 1 - ShadeInterpolation.getNotificationScrimAlpha(expansion);
|
||||||
|
assertAlphaAfterExpansion(mNotificationsScrim, alpha, expansion);
|
||||||
|
|
||||||
|
expansion = 0.4f;
|
||||||
|
alpha = 1 - ShadeInterpolation.getNotificationScrimAlpha(expansion);
|
||||||
|
assertAlphaAfterExpansion(mNotificationsScrim, alpha, expansion);
|
||||||
|
|
||||||
|
expansion = 0.2f;
|
||||||
|
alpha = 1 - ShadeInterpolation.getNotificationScrimAlpha(expansion);
|
||||||
|
assertAlphaAfterExpansion(mNotificationsScrim, alpha, expansion);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -1387,7 +1464,7 @@ public class ScrimControllerTest extends SysuiTestCase {
|
|||||||
mScrimController.setRawPanelExpansionFraction(expansion);
|
mScrimController.setRawPanelExpansionFraction(expansion);
|
||||||
finishAnimationsImmediately();
|
finishAnimationsImmediately();
|
||||||
// alpha is not changing linearly thus 0.2 of leeway when asserting
|
// alpha is not changing linearly thus 0.2 of leeway when asserting
|
||||||
assertEquals(expectedAlpha, mNotificationsScrim.getViewAlpha(), 0.2);
|
assertEquals(expectedAlpha, scrim.getViewAlpha(), 0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void assertScrimTinted(Map<ScrimView, Boolean> scrimToTint) {
|
private void assertScrimTinted(Map<ScrimView, Boolean> scrimToTint) {
|
||||||
|
|||||||
Reference in New Issue
Block a user