From eda4be30a2a3a63093faf052be5d804bf633e6f5 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Fri, 10 Jul 2009 13:50:57 -0700 Subject: [PATCH] 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 --- core/java/android/appwidget/AppWidgetProvider.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/core/java/android/appwidget/AppWidgetProvider.java b/core/java/android/appwidget/AppWidgetProvider.java index 26712a10f0ce4..f1bbedef9024e 100755 --- a/core/java/android/appwidget/AppWidgetProvider.java +++ b/core/java/android/appwidget/AppWidgetProvider.java @@ -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)) {