Fix fluctuating notification height during shade open

Fixes: 188206952
Test: manual
Change-Id: I32a1861b419264cf45b75e9934a04294c1e11942
This commit is contained in:
Lyn Han
2021-05-16 08:40:01 -05:00
parent 25ad053080
commit 1d9a175ae7
2 changed files with 7 additions and 8 deletions

View File

@@ -1142,7 +1142,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
if (mQsExpansionFraction <= 0) {
final float scrimTopPadding = mAmbientState.isOnKeyguard() ? 0 : mSidePaddings;
final float stackEndHeight = Math.max(0f,
getHeight() - getEmptyBottomMargin() - stackY);
getHeight() - getEmptyBottomMargin() - mTopPadding);
mAmbientState.setStackEndHeight(stackEndHeight);
mAmbientState.setStackHeight(
MathUtils.lerp(stackEndHeight * StackScrollAlgorithm.START_FRACTION,

View File

@@ -348,14 +348,14 @@ public class StackScrollAlgorithm {
StackScrollAlgorithmState algorithmState,
AmbientState ambientState) {
final boolean isShowingShelf = ambientState.getShelf() != null
final boolean showingShelf = ambientState.getShelf() != null
&& algorithmState.firstViewInShelf != null;
final float stackHeight = ambientState.getStackHeight()
- (isShowingShelf ? ambientState.getShelf().getIntrinsicHeight() : 0f);
final float shelfHeight = showingShelf ? ambientState.getShelf().getIntrinsicHeight() : 0f;
final float scrimPadding = ambientState.isOnKeyguard() ? 0 : mNotificationScrimPadding;
float stackEndHeight = ambientState.getStackEndHeight()
- (isShowingShelf ? ambientState.getShelf().getIntrinsicHeight() : 0f);
final float stackHeight = ambientState.getStackHeight() - shelfHeight - scrimPadding;
final float stackEndHeight = ambientState.getStackEndHeight() - shelfHeight - scrimPadding;
return stackHeight / stackEndHeight;
}
@@ -459,8 +459,7 @@ public class StackScrollAlgorithm {
maxViewHeight = algorithmState.viewHeightBeforeShelf;
}
}
viewState.height = (int) MathUtils.lerp(maxViewHeight * START_FRACTION, maxViewHeight,
expansionFraction);
viewState.height = (int) (maxViewHeight * expansionFraction);
}
currentYPosition += viewState.height + expansionFraction * mPaddingBetweenElements;