Correctly deliver AppWidgetProvider.onDeleted() events.

When the AppWidgetService sends APPWIDGET_DELETED
broadcasts, it only sends a single APPWIDGET_ID extra.  This
change fixes the Provider to handle this extra correctly.

Fixes http://b/issue?id=1800738
This commit is contained in:
Jeff Sharkey
2009-07-10 13:50:57 -07:00
parent d48ca22b9f
commit eda4be30a2

View File

@@ -64,11 +64,9 @@ public class AppWidgetProvider extends BroadcastReceiver {
}
else if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) {
Bundle extras = intent.getExtras();
if (extras != null) {
int[] appWidgetIds = extras.getIntArray(AppWidgetManager.EXTRA_APPWIDGET_IDS);
if (appWidgetIds != null && appWidgetIds.length > 0) {
this.onDeleted(context, appWidgetIds);
}
if (extras != null && extras.containsKey(AppWidgetManager.EXTRA_APPWIDGET_ID)) {
final int appWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID);
this.onDeleted(context, new int[] { appWidgetId });
}
}
else if (AppWidgetManager.ACTION_APPWIDGET_ENABLED.equals(action)) {