diff options
author | Adam Cohen <adamcohen@google.com> | 2012-04-19 17:11:40 -0700 |
---|---|---|
committer | Adam Cohen <adamcohen@google.com> | 2012-04-19 18:01:46 -0700 |
commit | e8724c82ab1479f13c85a2c6219841e1fd95f2d2 (patch) | |
tree | f8886ae47bb75369819bc40cfe7aa393afeb638c /services/java/com/android/server/AppWidgetServiceImpl.java | |
parent | f2740b347bce35cc68dfdddfe2da3a23e00a518e (diff) | |
download | frameworks_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.java | 33 |
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; |