Merge "Fix inline reply notification not aligned to IME" into tm-qpr-dev

This commit is contained in:
Johannes Gallmann
2023-01-11 15:01:05 +00:00
committed by Android (Google) Code Review

View File

@@ -1811,9 +1811,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
@Override @Override
@ShadeViewRefactor(RefactorComponent.COORDINATOR) @ShadeViewRefactor(RefactorComponent.COORDINATOR)
public WindowInsets onApplyWindowInsets(WindowInsets insets) { public WindowInsets onApplyWindowInsets(WindowInsets insets) {
mBottomInset = insets.getSystemWindowInsetBottom() mBottomInset = insets.getInsets(WindowInsets.Type.ime()).bottom;
+ insets.getInsets(WindowInsets.Type.ime()).bottom;
mWaterfallTopInset = 0; mWaterfallTopInset = 0;
final DisplayCutout cutout = insets.getDisplayCutout(); final DisplayCutout cutout = insets.getDisplayCutout();
if (cutout != null) { if (cutout != null) {
@@ -2262,7 +2260,11 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
@ShadeViewRefactor(RefactorComponent.COORDINATOR) @ShadeViewRefactor(RefactorComponent.COORDINATOR)
private int getImeInset() { 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; childInGroup = (ExpandableNotificationRow) requestedView;
requestedView = requestedRow = childInGroup.getNotificationParent(); 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++) { for (int i = 0; i < getChildCount(); i++) {
ExpandableView child = getChildAtIndex(i); ExpandableView child = getChildAtIndex(i);
boolean notGone = child.getVisibility() != View.GONE; boolean notGone = child.getVisibility() != View.GONE;
if (notGone) visibleIndex++;
if (notGone && !child.hasNoContentHeight()) { if (notGone && !child.hasNoContentHeight()) {
if (position != 0) { if (position != scrimTopPadding) {
if (lastVisibleChild != null) {
position += calculateGapHeight(lastVisibleChild, child, visibleIndex);
}
position += mPaddingBetweenElements; position += mPaddingBetweenElements;
} }
} }
@@ -2987,6 +2996,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
} }
if (notGone) { if (notGone) {
position += getIntrinsicHeight(child); position += getIntrinsicHeight(child);
lastVisibleChild = child;
} }
} }
return 0; return 0;