summaryrefslogtreecommitdiff
path: root/core/java/android/appwidget/AppWidgetHost.java
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2010-07-16 11:18:17 -0700
committerWinson Chung <winsonc@google.com>2010-07-19 14:48:31 -0700
commit499cb9f516062b654952d282f211bee44c31a3c2 (patch)
tree3c9bac8b31275e886bfbd07805c38839c185eab2 /core/java/android/appwidget/AppWidgetHost.java
parentb5b37f3bcc3065959c27e588f065dfb33a061e1d (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.java23
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);
+ }
+ }
}