Fix widget not being masked when freshly added.

Bug: 26721345
Change-Id: I6bc7142c6f488b8666651330039abac27782bda9
This commit is contained in:
Rubin Xu
2016-04-13 17:21:07 +01:00
parent eadbe1db75
commit b2cc8e25c0

View File

@@ -613,23 +613,22 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
| FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
}
}
for (int j = 0; j < widgetCount; j++) {
Widget widget = provider.widgets.get(j);
if (targetWidget != null && targetWidget != widget) continue;
PendingIntent intent = null;
if (onClickIntent != null) {
intent = PendingIntent.getActivity(mContext, widget.appWidgetId,
onClickIntent, PendingIntent.FLAG_UPDATE_CURRENT);
}
RemoteViews views = createMaskedWidgetRemoteViews(iconBitmap, showBadge, intent);
if (widget.replaceWithMaskedViewsLocked(views)) {
scheduleNotifyUpdateAppWidgetLocked(widget, widget.getEffectiveViewsLocked());
}
}
} finally {
Binder.restoreCallingIdentity(identity);
}
for (int j = 0; j < widgetCount; j++) {
Widget widget = provider.widgets.get(j);
if (targetWidget != null && targetWidget != widget) continue;
PendingIntent intent = null;
if (onClickIntent != null) {
intent = PendingIntent.getActivity(mContext, widget.appWidgetId,
onClickIntent, PendingIntent.FLAG_UPDATE_CURRENT);
}
RemoteViews views = createMaskedWidgetRemoteViews(iconBitmap, showBadge, intent);
if (widget.replaceWithMaskedViewsLocked(views)) {
scheduleNotifyUpdateAppWidgetLocked(widget, widget.getEffectiveViewsLocked());
}
}
}
private void unmaskWidgetsViewsLocked(Provider provider) {
@@ -1062,8 +1061,6 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
widget.provider = provider;
widget.options = (options != null) ? cloneIfLocalBinder(options) : new Bundle();
onWidgetProviderAddedOrChangedLocked(widget);
// We need to provide a default value for the widget category if it is not specified
if (!widget.options.containsKey(AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY)) {
widget.options.putInt(AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY,
@@ -1072,6 +1069,8 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
provider.widgets.add(widget);
onWidgetProviderAddedOrChangedLocked(widget);
final int widgetCount = provider.widgets.size();
if (widgetCount == 1) {
// Tell the provider that it's ready.