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
diff --git a/src/com/android/launcher3/model/LoaderTask.java b/src/com/android/launcher3/model/LoaderTask.java
index 34a21fe..d373cf4 100644
--- a/src/com/android/launcher3/model/LoaderTask.java
+++ b/src/com/android/launcher3/model/LoaderTask.java
@@ -28,6 +28,7 @@
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.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.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 @@
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 @@
&& (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) {