Merge "Fix shortcut size calcuation" into sc-dev am: 372e85106d

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15259646

Change-Id: I5b37dc1971d67afbc3923774db2256459e389ae6
This commit is contained in:
Steven Ng
2021-07-13 14:10:25 +00:00
committed by Automerger Merge Worker
6 changed files with 12 additions and 13 deletions

View File

@@ -278,7 +278,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();
}

View File

@@ -209,8 +209,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));
}
@@ -357,16 +355,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;

View File

@@ -202,7 +202,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();

View File

@@ -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);

View File

@@ -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();

View File

@@ -32,6 +32,7 @@ import androidx.annotation.Nullable;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.R;
import com.android.launcher3.model.WidgetItem;
import java.util.ArrayList;
@@ -91,7 +92,9 @@ public final class WidgetSizes {
public static Size getWidgetItemSizePx(Context context, DeviceProfile profile,
WidgetItem widgetItem) {
if (widgetItem.isShortcut()) {
return getWidgetSizePx(profile, widgetItem.spanX, widgetItem.spanY);
int dimension = profile.allAppsIconSizePx + 2 * context.getResources()
.getDimensionPixelSize(R.dimen.widget_preview_shortcut_padding);
return new Size(dimension, dimension);
}
return getWidgetPaddedSizePx(context, widgetItem.componentName, profile, widgetItem.spanX,
widgetItem.spanY);