Merge "Extra logging related to widget removal upon restore" into sc-dev am: 408a73ea76

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

Change-Id: I5bf17c3b4344b91fee64eab63bf013ea7ab94550
This commit is contained in:
Steven Ng
2021-06-25 16:30:53 +00:00
committed by Automerger Merge Worker

View File

@@ -142,6 +142,7 @@ import com.android.launcher3.model.BgDataModel.Callbacks;
import com.android.launcher3.model.ItemInstallQueue;
import com.android.launcher3.model.ModelUtils;
import com.android.launcher3.model.ModelWriter;
import com.android.launcher3.model.WidgetsModel;
import com.android.launcher3.model.data.AppInfo;
import com.android.launcher3.model.data.FolderInfo;
import com.android.launcher3.model.data.ItemInfo;
@@ -2348,24 +2349,43 @@ public class Launcher extends StatefulActivity<LauncherState> implements Launche
try {
final LauncherAppWidgetProviderInfo appWidgetInfo;
String reason = "";
if (item.hasRestoreFlag(LauncherAppWidgetInfo.FLAG_PROVIDER_NOT_READY)) {
// If the provider is not ready, bind as a pending widget.
appWidgetInfo = null;
reason = "the provider not ready.";
} else if (item.hasRestoreFlag(LauncherAppWidgetInfo.FLAG_ID_NOT_VALID)) {
// The widget id is not valid. Try to find the widget based on the provider info.
appWidgetInfo = mAppWidgetManager.findProvider(item.providerName, item.user);
if (appWidgetInfo == null) {
if (WidgetsModel.GO_DISABLE_WIDGETS) {
reason = "widgets are disabled on go device.";
} else {
reason = "WidgetManagerHelper cannot find a provider from provider info.";
}
}
} else {
appWidgetInfo = mAppWidgetManager.getLauncherAppWidgetInfo(item.appWidgetId);
if (appWidgetInfo == null) {
if (item.appWidgetId <= LauncherAppWidgetInfo.CUSTOM_WIDGET_ID) {
reason = "CustomWidgetManager cannot find provider from that widget id .";
} else {
reason = "AppWidgetManager cannot find provider for that widget id."
+ " It could be due to AppWidgetService is not available, or the"
+ " appWidgetId has not been bound to a the provider yet, or you"
+ " don't have access to that appWidgetId.";
}
}
}
// If the provider is ready, but the width is not yet restored, try to restore it.
if (!item.hasRestoreFlag(LauncherAppWidgetInfo.FLAG_PROVIDER_NOT_READY)
&& (item.restoreStatus != LauncherAppWidgetInfo.RESTORE_COMPLETED)) {
if (appWidgetInfo == null) {
Log.d(TAG, "Removing restored widget: id=" + item.appWidgetId
+ " belongs to component " + item.providerName
+ ", as the provider is null");
FileLog.d(TAG, "Removing restored widget: id=" + item.appWidgetId
+ " belongs to component " + item.providerName + " user " + item.user
+ ", as the provider is null and " + reason);
getModelWriter().deleteItemFromDatabase(item);
return null;
}