Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6fe115b2 authored by Steven Ng's avatar Steven Ng
Browse files

Fix shortcut size calcuation

Shortcut size should be the size of all apps icon + padding

Test: Check shortcuts and widgets are shown without crash in the
      following surfaces with display & font set to largest and
      display cutout enabled. Repeat the same test with normal
      display setting and no cutout.
      1. Full widgets picker
      2. Bottom widgets picker
      3. Pin widget dialog
Fix: 193422438
Change-Id: Ibfebf94e92eed5e9cd1dd4196d98823b0e4dda6b
parent 0dd7f864
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -270,7 +270,7 @@ public class AddItemActivity extends BaseActivity

            @Override
            protected void onPostExecute(WidgetItem item) {
                mWidgetCell.setPreviewSize(item.spanX, item.spanY);
                mWidgetCell.setPreviewSize(item);
                mWidgetCell.applyFromCellItem(item, mApp.getWidgetCache());
                mWidgetCell.ensurePreview();
            }
+4 −8
Original line number Diff line number Diff line
@@ -208,8 +208,6 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {
        mWidgetPreviewLoader = loader;
        if (item.activityInfo != null) {
            setTag(new PendingAddShortcutInfo(item.activityInfo));
            mPreviewWidth += mShortcutPreviewPadding;
            mPreviewHeight += mShortcutPreviewPadding;
        } else {
            setTag(new PendingAddWidgetInfo(item.widgetInfo, mSourceContainer));
        }
@@ -356,16 +354,14 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {
    }

    /** Sets the widget preview image size in number of cells. */
    public Size setPreviewSize(int spanX, int spanY) {
        return setPreviewSize(spanX, spanY, 1f);
    public Size setPreviewSize(WidgetItem widgetItem) {
        return setPreviewSize(widgetItem, 1f);
    }

    /** Sets the widget preview image size, in number of cells, and preview scale. */
    public Size setPreviewSize(int spanX, int spanY, float previewScale) {
    public Size setPreviewSize(WidgetItem widgetItem, float previewScale) {
        DeviceProfile deviceProfile = mActivity.getDeviceProfile();
        Size widgetSize =
                mItem != null ? WidgetSizes.getWidgetItemSizePx(getContext(), deviceProfile, mItem)
                : WidgetSizes.getWidgetSizePx(deviceProfile, spanX, spanY);
        Size widgetSize = WidgetSizes.getWidgetItemSizePx(getContext(), deviceProfile, widgetItem);
        mPreviewWidth = widgetSize.getWidth();
        mPreviewHeight = widgetSize.getHeight();
        mPreviewScale = previewScale;
+1 −1
Original line number Diff line number Diff line
@@ -199,7 +199,7 @@ public class WidgetsBottomSheet extends BaseWidgetSheet {
            tableRow.setGravity(Gravity.TOP);
            row.forEach(widgetItem -> {
                WidgetCell widget = addItemCell(tableRow);
                widget.setPreviewSize(widgetItem.spanX, widgetItem.spanY);
                widget.setPreviewSize(widgetItem);
                widget.applyFromCellItem(widgetItem, LauncherAppState.getInstance(mActivityContext)
                        .getWidgetCache());
                widget.ensurePreview();
+1 −1
Original line number Diff line number Diff line
@@ -120,7 +120,7 @@ public final class WidgetsListTableViewHolderBinder
                WidgetCell widget = (WidgetCell) row.getChildAt(j);
                widget.clear();
                WidgetItem widgetItem = widgetItemsPerRow.get(j);
                Size previewSize = widget.setPreviewSize(widgetItem.spanX, widgetItem.spanY);
                Size previewSize = widget.setPreviewSize(widgetItem);
                widget.applyFromCellItem(widgetItem, mWidgetPreviewLoader);
                widget.setApplyBitmapDeferred(mApplyBitmapDeferred);
                Bitmap preview = mWidgetPreviewLoader.getPreview(widgetItem, previewSize);
+1 −1
Original line number Diff line number Diff line
@@ -115,7 +115,7 @@ public final class WidgetsRecommendationTableLayout extends TableLayout {

            for (WidgetItem widgetItem : widgetItems) {
                WidgetCell widgetCell = addItemCell(tableRow);
                widgetCell.setPreviewSize(widgetItem.spanX, widgetItem.spanY, data.mPreviewScale);
                widgetCell.setPreviewSize(widgetItem, data.mPreviewScale);
                widgetCell.applyFromCellItem(widgetItem,
                        LauncherAppState.getInstance(getContext()).getWidgetCache());
                widgetCell.ensurePreview();
Loading