Use correct stack height when bypass enabled.
Also removes the 'getPulseStackHeight' method which didn't solve any of the issues it was added to solve, and only introduced an issue when expanding a pulse on bypass device. Fixes: 194513502 Test: on bypass device, expand QS; validate that notifications do not disappear at the bottom. Test: on bypass device, receive pulse; unlock via bypass; validate that pulse seamlessly transitions to hun. Test: on bypass device, expand shade from lock screen; validate that notifications all fade in at once, rather than appearing in sequence. Test: on bypass device, receive pulse; drag to expand it; validate that other notifications appear in sequence, rather than popping in all at once. (Note, this is non-ideal behavior which has always existed, not a regression. ideally other notifications would fade in.) Test: on non-bypass device, receive pulse; biometric unlock; validate that notifications smoothly animate to open shade. Change-Id: I8d0968f5a8632bba6b1db5940b933ee53b2abb8a
This commit is contained in:
@@ -154,15 +154,6 @@ public class AmbientState {
|
||||
return mStackHeight;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Height of notifications panel, with the animation from pulseHeight accounted for.
|
||||
*/
|
||||
// TODO(b/192348384): move this logic to getStackHeight, and remove this and getInnerHeight
|
||||
public float getPulseStackHeight() {
|
||||
float pulseHeight = Math.min(mPulseHeight, mStackHeight);
|
||||
return MathUtils.lerp(mStackHeight, pulseHeight, mDozeAmount);
|
||||
}
|
||||
|
||||
/** Tracks the state from AlertingNotificationManager#hasNotifications() */
|
||||
private boolean mHasAlertEntries;
|
||||
|
||||
|
||||
@@ -441,19 +441,16 @@ public class StackScrollAlgorithm {
|
||||
// to shelf start, thereby hiding all notifications (except the first one, which
|
||||
// we later unhide in updatePulsingState)
|
||||
// TODO(b/192348384): merge InnerHeight with StackHeight
|
||||
final int stackBottom;
|
||||
if (ambientState.isBypassEnabled()) {
|
||||
// We want to use the stackHeight when pulse expanding, since the animation
|
||||
// isn't currently optimized if the pulseHeight is continuously changing
|
||||
// Let's improve this when we're merging the heights above
|
||||
stackBottom = ambientState.isPulseExpanding()
|
||||
? (int) ambientState.getStackHeight()
|
||||
: ambientState.getInnerHeight();
|
||||
} else {
|
||||
stackBottom = !ambientState.isShadeExpanded() || ambientState.isDozing()
|
||||
? ambientState.getInnerHeight()
|
||||
: (int) ambientState.getPulseStackHeight();
|
||||
}
|
||||
// Note: Bypass pulse looks different, but when it is not expanding, we need
|
||||
// to use the innerHeight which doesn't update continuously, otherwise we show
|
||||
// more notifications than we should during this special transitional states.
|
||||
boolean bypassPulseNotExpanding = ambientState.isBypassEnabled()
|
||||
&& ambientState.isOnKeyguard() && !ambientState.isPulseExpanding();
|
||||
final int stackBottom =
|
||||
!ambientState.isShadeExpanded() || ambientState.isDozing()
|
||||
|| bypassPulseNotExpanding
|
||||
? ambientState.getInnerHeight()
|
||||
: (int) ambientState.getStackHeight();
|
||||
final int shelfStart =
|
||||
stackBottom - ambientState.getShelf().getIntrinsicHeight();
|
||||
viewState.yTranslation = Math.min(viewState.yTranslation, shelfStart);
|
||||
|
||||
Reference in New Issue
Block a user