summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/AppWidgetServiceImpl.java
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2012-04-19 17:11:40 -0700
committerAdam Cohen <adamcohen@google.com>2012-04-19 18:01:46 -0700
commite8724c82ab1479f13c85a2c6219841e1fd95f2d2 (patch)
treef8886ae47bb75369819bc40cfe7aa393afeb638c /services/java/com/android/server/AppWidgetServiceImpl.java
parentf2740b347bce35cc68dfdddfe2da3a23e00a518e (diff)
downloadframeworks_base-e8724c82ab1479f13c85a2c6219841e1fd95f2d2.zip
frameworks_base-e8724c82ab1479f13c85a2c6219841e1fd95f2d2.tar.gz
frameworks_base-e8724c82ab1479f13c85a2c6219841e1fd95f2d2.tar.bz2
Adding callback for widget size changed, and potentially other extra info
Change-Id: I57738c92b6a0ba68ae66b19a533559470c64e6f1
Diffstat (limited to 'services/java/com/android/server/AppWidgetServiceImpl.java')
-rw-r--r--services/java/com/android/server/AppWidgetServiceImpl.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/services/java/com/android/server/AppWidgetServiceImpl.java b/services/java/com/android/server/AppWidgetServiceImpl.java
index b24823e..3b43b9b 100644
--- a/services/java/com/android/server/AppWidgetServiceImpl.java
+++ b/services/java/com/android/server/AppWidgetServiceImpl.java
@@ -113,6 +113,7 @@ class AppWidgetServiceImpl {
int appWidgetId;
Provider provider;
RemoteViews views;
+ Bundle extras;
Host host;
}
@@ -760,6 +761,38 @@ class AppWidgetServiceImpl {
}
}
+ public void updateAppWidgetExtras(int appWidgetId, Bundle extras) {
+ synchronized (mAppWidgetIds) {
+ ensureStateLoadedLocked();
+ AppWidgetId id = lookupAppWidgetIdLocked(appWidgetId);
+
+ if (id == null) {
+ return;
+ }
+ Provider p = id.provider;
+ id.extras = extras;
+
+ // send the broacast saying that this appWidgetId has been deleted
+ Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_EXTRAS_CHANGED);
+ intent.setComponent(p.info.provider);
+ intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, id.appWidgetId);
+ intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_EXTRAS, extras);
+ mContext.sendBroadcast(intent, mUserId);
+ }
+ }
+
+ public Bundle getAppWidgetExtras(int appWidgetId) {
+ synchronized (mAppWidgetIds) {
+ ensureStateLoadedLocked();
+ AppWidgetId id = lookupAppWidgetIdLocked(appWidgetId);
+ if (id != null && id.extras != null) {
+ return id.extras;
+ } else {
+ return Bundle.EMPTY;
+ }
+ }
+ }
+
public void partiallyUpdateAppWidgetIds(int[] appWidgetIds, RemoteViews views) {
if (appWidgetIds == null) {
return;