Ensure that icon and cached display size is always non-zero
Bug: 119290867
Change-Id: If9309df2f62f707b7ebd0c5808d4d872f6d63c61
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/fallback/RecentsRootView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/fallback/RecentsRootView.java
index ca8c252..6b3f028 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/fallback/RecentsRootView.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/fallback/RecentsRootView.java
@@ -30,13 +30,14 @@
public class RecentsRootView extends BaseDragLayer<RecentsActivity> {
+ private static final int MIN_SIZE = 10;
private final RecentsActivity mActivity;
- private final Point mLastKnownSize = new Point(10, 10);
+ private final Point mLastKnownSize = new Point(MIN_SIZE, MIN_SIZE);
public RecentsRootView(Context context, AttributeSet attrs) {
super(context, attrs, 1 /* alphaChannelCount */);
- mActivity = (RecentsActivity) BaseActivity.fromContext(context);
+ mActivity = BaseActivity.fromContext(context);
setSystemUiVisibility(SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| SYSTEM_UI_FLAG_LAYOUT_STABLE);
@@ -53,8 +54,8 @@
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// Check size changes before the actual measure, to avoid multiple measure calls.
- int width = MeasureSpec.getSize(widthMeasureSpec);
- int height = MeasureSpec.getSize(heightMeasureSpec);
+ int width = Math.max(MIN_SIZE, MeasureSpec.getSize(widthMeasureSpec));
+ int height = Math.max(MIN_SIZE, MeasureSpec.getSize(heightMeasureSpec));
if (mLastKnownSize.x != width || mLastKnownSize.y != height) {
mLastKnownSize.set(width, height);
mActivity.onRootViewSizeChanged();
diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java
index 7aea870..01535b0 100644
--- a/src/com/android/launcher3/DeviceProfile.java
+++ b/src/com/android/launcher3/DeviceProfile.java
@@ -322,7 +322,7 @@
// Workspace
final boolean isVerticalLayout = isVerticalBarLayout();
float invIconSizePx = isVerticalLayout ? inv.landscapeIconSize : inv.iconSize;
- iconSizePx = (int) (Utilities.pxFromDp(invIconSizePx, dm) * scale);
+ iconSizePx = Math.max(1, (int) (Utilities.pxFromDp(invIconSizePx, dm) * scale));
iconTextSizePx = (int) (Utilities.pxFromSp(inv.iconTextSize, dm) * scale);
iconDrawablePaddingPx = (int) (iconDrawablePaddingOriginalPx * scale);