diff --git a/core/java/android/appwidget/AppWidgetHost.java b/core/java/android/appwidget/AppWidgetHost.java index 88adabd042b3c..b2fc13ffba6cf 100644 --- a/core/java/android/appwidget/AppWidgetHost.java +++ b/core/java/android/appwidget/AppWidgetHost.java @@ -237,7 +237,7 @@ public class AppWidgetHost { v = mViews.get(appWidgetId); } if (v != null) { - v.updateAppWidget(null, AppWidgetHostView.UPDATE_FLAGS_RESET); + v.resetAppWidget(appWidget); } } @@ -247,7 +247,7 @@ public class AppWidgetHost { v = mViews.get(appWidgetId); } if (v != null) { - v.updateAppWidget(views, 0); + v.updateAppWidget(views); } } } diff --git a/core/java/android/appwidget/AppWidgetHostView.java b/core/java/android/appwidget/AppWidgetHostView.java index a1e7e4af23451..3c19ea3d444b5 100644 --- a/core/java/android/appwidget/AppWidgetHostView.java +++ b/core/java/android/appwidget/AppWidgetHostView.java @@ -46,8 +46,6 @@ public class AppWidgetHostView extends FrameLayout { static final boolean LOGD = false; static final boolean CROSSFADE = false; - static final int UPDATE_FLAGS_RESET = 0x00000001; - static final int VIEW_MODE_NOINIT = 0; static final int VIEW_MODE_CONTENT = 1; static final int VIEW_MODE_ERROR = 2; @@ -102,7 +100,7 @@ public class AppWidgetHostView extends FrameLayout { mAppWidgetId = appWidgetId; mInfo = info; } - + public int getAppWidgetId() { return mAppWidgetId; } @@ -147,22 +145,23 @@ public class AppWidgetHostView extends FrameLayout { return new FrameLayout.LayoutParams(context, attrs); } + /** + * Update the AppWidgetProviderInfo for this view, and reset it to the + * initial layout. + */ + void resetAppWidget(AppWidgetProviderInfo info) { + mInfo = info; + mViewMode = VIEW_MODE_NOINIT; + updateAppWidget(null); + } + /** * Process a set of {@link RemoteViews} coming in as an update from the * AppWidget provider. Will animate into these new views as needed */ public void updateAppWidget(RemoteViews remoteViews) { - updateAppWidget(remoteViews, 0); - } + if (LOGD) Log.d(TAG, "updateAppWidget called mOld=" + mOld); - void updateAppWidget(RemoteViews remoteViews, int flags) { - if (LOGD) Log.d(TAG, "updateAppWidget called mOld=" + mOld + " flags=0x" - + Integer.toHexString(flags)); - - if ((flags & UPDATE_FLAGS_RESET) != 0) { - mViewMode = VIEW_MODE_NOINIT; - } - boolean recycled = false; View content = null; Exception exception = null; diff --git a/tests/appwidgets/AppWidgetProviderTest/res/layout/test_appwidget2.xml b/tests/appwidgets/AppWidgetProviderTest/res/layout/test_appwidget2.xml new file mode 100644 index 0000000000000..abc6f59531e36 --- /dev/null +++ b/tests/appwidgets/AppWidgetProviderTest/res/layout/test_appwidget2.xml @@ -0,0 +1,26 @@ + + + + + diff --git a/tests/appwidgets/AppWidgetProviderTest/src/com/android/tests/appwidgetprovider/TestAppWidgetProvider.java b/tests/appwidgets/AppWidgetProviderTest/src/com/android/tests/appwidgetprovider/TestAppWidgetProvider.java index 418be650ebf70..d9c0110dba600 100644 --- a/tests/appwidgets/AppWidgetProviderTest/src/com/android/tests/appwidgetprovider/TestAppWidgetProvider.java +++ b/tests/appwidgets/AppWidgetProviderTest/src/com/android/tests/appwidgetprovider/TestAppWidgetProvider.java @@ -41,6 +41,7 @@ public class TestAppWidgetProvider extends BroadcastReceiver { Log.d(TAG, "DISABLED"); } else if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action)) { + if (true) return; Log.d(TAG, "UPDATE"); Bundle extras = intent.getExtras(); int[] appWidgetIds = extras.getIntArray(AppWidgetManager.EXTRA_APPWIDGET_IDS);