Use target size to scale down a widget preview image

WidgetCells are being recycled in WidgetFullSheet. getWidth/getHeight
could be a recycled dimension. There is also no guarantee that measure
has taken placed before the scale down logic. Let's use the targeted
width for the scale down logic instead.

Test: Manual
Fix: 195417705
Change-Id: Idfb3cc485604d19658e210709bebde6f163003cf
This commit is contained in:
Steven Ng
2021-08-10 00:04:49 +01:00
parent 0a39f6daec
commit caf2e5f350
@@ -325,10 +325,10 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {
return;
}
if (drawable != null) {
// Scale down the preview size if it's wider than the cell.
float scale = 1f;
if (getWidth() > 0 && getHeight() > 0) {
// Scale down the preview size if it's wider than the cell.
float maxWidth = getWidth();
if (mTargetPreviewWidth > 0) {
float maxWidth = mTargetPreviewWidth;
float previewWidth = drawable.getIntrinsicWidth() * mPreviewContainerScale;
scale = Math.min(maxWidth / previewWidth, 1);
}