Merge "Fix inline reply notification not aligned to IME" into tm-qpr-dev am: 52388f9230

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20814418

Change-Id: I9850f63464d10182d3c7b88900be465cb10d897e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Johannes Gallmann
2023-01-11 15:12:48 +00:00
committed by Automerger Merge Worker

View File

@@ -1811,9 +1811,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
@Override
@ShadeViewRefactor(RefactorComponent.COORDINATOR)
public WindowInsets onApplyWindowInsets(WindowInsets insets) {
mBottomInset = insets.getSystemWindowInsetBottom()
+ insets.getInsets(WindowInsets.Type.ime()).bottom;
mBottomInset = insets.getInsets(WindowInsets.Type.ime()).bottom;
mWaterfallTopInset = 0;
final DisplayCutout cutout = insets.getDisplayCutout();
if (cutout != null) {
@@ -2262,7 +2260,11 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
@ShadeViewRefactor(RefactorComponent.COORDINATOR)
private int getImeInset() {
return Math.max(0, mBottomInset - (getRootView().getHeight() - getHeight()));
// The NotificationStackScrollLayout does not extend all the way to the bottom of the
// display. Therefore, subtract that space from the mBottomInset, in order to only include
// the portion of the bottom inset that actually overlaps the NotificationStackScrollLayout.
return Math.max(0, mBottomInset
- (getRootView().getHeight() - getHeight() - getLocationOnScreen()[1]));
}
/**
@@ -2970,12 +2972,19 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
childInGroup = (ExpandableNotificationRow) requestedView;
requestedView = requestedRow = childInGroup.getNotificationParent();
}
int position = 0;
final float scrimTopPadding = mAmbientState.isOnKeyguard() ? 0 : mMinimumPaddings;
int position = (int) scrimTopPadding;
int visibleIndex = -1;
ExpandableView lastVisibleChild = null;
for (int i = 0; i < getChildCount(); i++) {
ExpandableView child = getChildAtIndex(i);
boolean notGone = child.getVisibility() != View.GONE;
if (notGone) visibleIndex++;
if (notGone && !child.hasNoContentHeight()) {
if (position != 0) {
if (position != scrimTopPadding) {
if (lastVisibleChild != null) {
position += calculateGapHeight(lastVisibleChild, child, visibleIndex);
}
position += mPaddingBetweenElements;
}
}
@@ -2987,6 +2996,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
}
if (notGone) {
position += getIntrinsicHeight(child);
lastVisibleChild = child;
}
}
return 0;