diff options
| author | Winson Chung <winsonc@google.com> | 2010-07-16 11:18:17 -0700 |
|---|---|---|
| committer | Winson Chung <winsonc@google.com> | 2010-07-19 14:48:31 -0700 |
| commit | 499cb9f516062b654952d282f211bee44c31a3c2 (patch) | |
| tree | 3c9bac8b31275e886bfbd07805c38839c185eab2 /core/java/android/appwidget/AppWidgetHost.java | |
| parent | b5b37f3bcc3065959c27e588f065dfb33a061e1d (diff) | |
Initial changes to allow collections in widgets.
Change-Id: I3cfa899bae88cd252912cecebc12e93c27a3b7c9
Diffstat (limited to 'core/java/android/appwidget/AppWidgetHost.java')
| -rw-r--r-- | core/java/android/appwidget/AppWidgetHost.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/core/java/android/appwidget/AppWidgetHost.java b/core/java/android/appwidget/AppWidgetHost.java index b2fc13ffba6c..6011eece97ef 100644 --- a/core/java/android/appwidget/AppWidgetHost.java +++ b/core/java/android/appwidget/AppWidgetHost.java @@ -39,6 +39,7 @@ public class AppWidgetHost { static final int HANDLE_UPDATE = 1; static final int HANDLE_PROVIDER_CHANGED = 2; + static final int HANDLE_VIEW_DATA_CHANGED = 3; final static Object sServiceLock = new Object(); static IAppWidgetService sService; @@ -60,6 +61,14 @@ public class AppWidgetHost { msg.obj = info; msg.sendToTarget(); } + + public void viewDataChanged(int appWidgetId, RemoteViews views, int viewId) { + Message msg = mHandler.obtainMessage(HANDLE_VIEW_DATA_CHANGED); + msg.arg1 = appWidgetId; + msg.arg2 = viewId; + msg.obj = views; + msg.sendToTarget(); + } } class UpdateHandler extends Handler { @@ -77,6 +86,10 @@ public class AppWidgetHost { onProviderChanged(msg.arg1, (AppWidgetProviderInfo)msg.obj); break; } + case HANDLE_VIEW_DATA_CHANGED: { + viewDataChanged(msg.arg1, (RemoteViews) msg.obj, msg.arg2); + break; + } } } } @@ -250,6 +263,16 @@ public class AppWidgetHost { v.updateAppWidget(views); } } + + void viewDataChanged(int appWidgetId, RemoteViews views, int viewId) { + AppWidgetHostView v; + synchronized (mViews) { + v = mViews.get(appWidgetId); + } + if (v != null) { + v.viewDataChanged(views, viewId); + } + } } |
