Merge "Log widget dimensions before deleting a widget violating min size" into sc-dev am: 21780405ac

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

Change-Id: I8e2b4160bef59aa17f131a384642975eb0bfbd2c
This commit is contained in:
Steven Ng
2021-06-18 10:38:35 +00:00
committed by Automerger Merge Worker

View File

@@ -28,6 +28,7 @@ import static com.android.launcher3.util.Executors.MODEL_EXECUTOR;
import static com.android.launcher3.util.PackageManagerHelper.hasShortcutsPermission;
import static com.android.launcher3.util.PackageManagerHelper.isSystemApp;
import android.annotation.SuppressLint;
import android.appwidget.AppWidgetProviderInfo;
import android.content.ComponentName;
import android.content.ContentResolver;
@@ -40,6 +41,7 @@ import android.content.pm.PackageInstaller;
import android.content.pm.PackageInstaller.SessionInfo;
import android.content.pm.PackageManager;
import android.content.pm.ShortcutInfo;
import android.graphics.Point;
import android.net.Uri;
import android.os.Bundle;
import android.os.UserHandle;
@@ -50,6 +52,8 @@ import android.util.Log;
import android.util.LongSparseArray;
import android.util.TimingLogger;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.InvariantDeviceProfile;
import com.android.launcher3.LauncherAppState;
import com.android.launcher3.LauncherModel;
import com.android.launcher3.LauncherSettings;
@@ -756,6 +760,9 @@ public class LoaderTask implements Runnable {
if (widgetProviderInfo != null
&& (appWidgetInfo.spanX < widgetProviderInfo.minSpanX
|| appWidgetInfo.spanY < widgetProviderInfo.minSpanY)) {
logDeleteWidgetInfo(mApp.getInvariantDeviceProfile(),
widgetProviderInfo);
// This can happen when display size changes.
c.markDeleted("Widget removed, min sizes not met: "
+ "span=" + appWidgetInfo.spanX + "x"
@@ -982,6 +989,51 @@ public class LoaderTask implements Runnable {
&& (provider.provider.getPackageName() != null);
}
@SuppressLint("NewApi") // Already added API check.
private static void logDeleteWidgetInfo(InvariantDeviceProfile idp,
LauncherAppWidgetProviderInfo widgetProviderInfo) {
FileLog.d(TAG, "Deleting " + widgetProviderInfo.getComponent()
+ " due to min size constraint");
Point cellSize = new Point();
for (DeviceProfile deviceProfile : idp.supportedProfiles) {
deviceProfile.getCellSize(cellSize);
FileLog.d(TAG, "DeviceProfile available width: " + deviceProfile.availableWidthPx
+ ", available height: " + deviceProfile.availableHeightPx
+ ", cellLayoutBorderSpacingPx: " + deviceProfile.cellLayoutBorderSpacingPx
+ ", cellSize: " + cellSize);
}
StringBuilder widgetDimension = new StringBuilder();
widgetDimension.append("Widget dimensions:\n")
.append("minResizeWidth: ")
.append(widgetProviderInfo.minResizeWidth)
.append("\n")
.append("minResizeHeight: ")
.append(widgetProviderInfo.minResizeHeight)
.append("\n")
.append("defaultWidth: ")
.append(widgetProviderInfo.minWidth)
.append("\n")
.append("defaultHeight: ")
.append(widgetProviderInfo.minHeight)
.append("\n");
if (Utilities.ATLEAST_S) {
widgetDimension.append("targetCellWidth: ")
.append(widgetProviderInfo.targetCellWidth)
.append("\n")
.append("targetCellHeight: ")
.append(widgetProviderInfo.targetCellHeight)
.append("\n")
.append("maxResizeWidth: ")
.append(widgetProviderInfo.maxResizeWidth)
.append("\n")
.append("maxResizeHeight: ")
.append(widgetProviderInfo.maxResizeHeight)
.append("\n");
}
FileLog.d(TAG, widgetDimension.toString());
}
private static void logASplit(final TimingLogger logger, final String label) {
logger.addSplit(label);
if (DEBUG) {