Set the height of the right_icon in addition to the width

This ensures that the Notification fully specifies the size of the notification in the RemoteViews, and ensures that CTS tests pass.

Fixes: 180652028
Test: atest NotificationTemplateApi30Test
Change-Id: Ie5715880437f1e42b16226196cf67ca52bc09ee1
This commit is contained in:
Jeff DeCew
2021-05-13 11:39:50 -04:00
parent 28c4860610
commit 0fb49d82a6

View File

@@ -5338,7 +5338,7 @@ public class Notification implements Parcelable
}
final float extraMarginEndDpIfVisible = viewWidthDp + iconMarginDp;
result.setRightIconState(rightIcon != null /* visible */, viewWidthDp,
extraMarginEndDpIfVisible, expanderSizeDp);
viewHeightDp, extraMarginEndDpIfVisible, expanderSizeDp);
}
/**
@@ -5375,6 +5375,8 @@ public class Notification implements Parcelable
if (rightIcon != null) {
contentView.setViewLayoutWidth(R.id.right_icon,
result.mRightIconWidthDp, TypedValue.COMPLEX_UNIT_DIP);
contentView.setViewLayoutHeight(R.id.right_icon,
result.mRightIconHeightDp, TypedValue.COMPLEX_UNIT_DIP);
contentView.setViewVisibility(R.id.right_icon, View.VISIBLE);
contentView.setImageViewIcon(R.id.right_icon, rightIcon);
contentView.setIntTag(R.id.right_icon, R.id.tag_keep_when_showing_left_icon,
@@ -12119,6 +12121,7 @@ public class Notification implements Parcelable
private static class TemplateBindResult {
boolean mRightIconVisible;
float mRightIconWidthDp;
float mRightIconHeightDp;
/**
* The margin end that needs to be added to the heading so that it won't overlap
@@ -12143,10 +12146,11 @@ public class Notification implements Parcelable
*/
public final MarginSet mTitleMarginSet = new MarginSet();
public void setRightIconState(boolean visible, float widthDp,
public void setRightIconState(boolean visible, float widthDp, float heightDp,
float marginEndDpIfVisible, float expanderSizeDp) {
mRightIconVisible = visible;
mRightIconWidthDp = widthDp;
mRightIconHeightDp = heightDp;
mHeadingExtraMarginSet.setValues(0, marginEndDpIfVisible);
mHeadingFullMarginSet.setValues(expanderSizeDp, marginEndDpIfVisible + expanderSizeDp);
mTitleMarginSet.setValues(0, marginEndDpIfVisible + expanderSizeDp);