Add error log for when widget provider is null
When the service try to update the visibility of the widgets, it would iterate over the available widgets and check the ids of their providers. However, due to unknown reasons there is a possibility of their providers being null even after they are bound to the screen. Adding more logs to help determine the exact issue. Bug: 212651639 Test: N/A Change-Id: I74a095dd2a44d0235fba27a57190aa89032fa63e
This commit is contained in:
@@ -1109,10 +1109,7 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
|
||||
registerForBroadcastsLocked(provider, getWidgetIds(provider.widgets));
|
||||
|
||||
saveGroupStateAsync(userId);
|
||||
|
||||
if (DEBUG) {
|
||||
Slog.i(TAG, "Bound widget " + appWidgetId + " to provider " + provider.id);
|
||||
}
|
||||
Slog.i(TAG, "Bound widget " + appWidgetId + " to provider " + provider.id);
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -4196,6 +4193,10 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
|
||||
IAppWidgetHost callbacks;
|
||||
boolean zombie; // if we're in safe mode, don't prune this just because nobody references it
|
||||
|
||||
private static final boolean DEBUG = true;
|
||||
|
||||
private static final String TAG = "AppWidgetServiceHost";
|
||||
|
||||
int tag = TAG_UNDEFINED; // for use while saving state (the index)
|
||||
// Sequence no for the last update successfully sent. This is updated whenever a
|
||||
// widget update is successfully sent to the host callbacks. As all new/undelivered updates
|
||||
@@ -4266,6 +4267,11 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
|
||||
final SparseArray<String> uids = new SparseArray<>();
|
||||
for (int i = widgets.size() - 1; i >= 0; i--) {
|
||||
final Widget widget = widgets.get(i);
|
||||
if (widget.provider == null) {
|
||||
if (DEBUG) {
|
||||
Slog.e(TAG, "Widget with no provider " + widget.toString());
|
||||
}
|
||||
}
|
||||
final ProviderId providerId = widget.provider.id;
|
||||
uids.put(providerId.uid, providerId.componentName.getPackageName());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user