diff options
| author | Winson Chung <winsonc@google.com> | 2012-06-13 10:35:51 -0700 |
|---|---|---|
| committer | Winson Chung <winsonc@google.com> | 2012-06-13 15:29:19 -0700 |
| commit | 7fbd28438c2322973c77f31f0721a24fe1c35039 (patch) | |
| tree | f1e82837fc030ab83c30e35068b8a704091b7ffa /core | |
| parent | 0b1d806188f50491dc543b14ed9af42e0b2b5118 (diff) | |
| download | frameworks_base-7fbd28438c2322973c77f31f0721a24fe1c35039.zip frameworks_base-7fbd28438c2322973c77f31f0721a24fe1c35039.tar.gz frameworks_base-7fbd28438c2322973c77f31f0721a24fe1c35039.tar.bz2 | |
Updating AppWidgetHost to receive a callback when any appWidget has changed. (Bug 6602951)
Change-Id: I76d688b10ee7775b4ebe81259713f2aaf0009d05
Diffstat (limited to 'core')
| -rw-r--r-- | core/java/android/appwidget/AppWidgetHost.java | 20 | ||||
| -rw-r--r-- | core/java/com/android/internal/appwidget/IAppWidgetHost.aidl | 1 |
2 files changed, 20 insertions, 1 deletions
diff --git a/core/java/android/appwidget/AppWidgetHost.java b/core/java/android/appwidget/AppWidgetHost.java index 08bc0ac..2c19c0c 100644 --- a/core/java/android/appwidget/AppWidgetHost.java +++ b/core/java/android/appwidget/AppWidgetHost.java @@ -41,7 +41,8 @@ public class AppWidgetHost { static final int HANDLE_UPDATE = 1; static final int HANDLE_PROVIDER_CHANGED = 2; - static final int HANDLE_VIEW_DATA_CHANGED = 3; + static final int HANDLE_PROVIDERS_CHANGED = 3; + static final int HANDLE_VIEW_DATA_CHANGED = 4; final static Object sServiceLock = new Object(); static IAppWidgetService sService; @@ -65,6 +66,11 @@ public class AppWidgetHost { msg.sendToTarget(); } + public void providersChanged() { + Message msg = mHandler.obtainMessage(HANDLE_PROVIDERS_CHANGED); + msg.sendToTarget(); + } + public void viewDataChanged(int appWidgetId, int viewId) { Message msg = mHandler.obtainMessage(HANDLE_VIEW_DATA_CHANGED); msg.arg1 = appWidgetId; @@ -88,6 +94,10 @@ public class AppWidgetHost { onProviderChanged(msg.arg1, (AppWidgetProviderInfo)msg.obj); break; } + case HANDLE_PROVIDERS_CHANGED: { + onProvidersChanged(); + break; + } case HANDLE_VIEW_DATA_CHANGED: { viewDataChanged(msg.arg1, msg.arg2); break; @@ -274,6 +284,14 @@ public class AppWidgetHost { } } + /** + * Called when the set of available widgets changes (ie. widget containing packages + * are added, updated or removed, or widget components are enabled or disabled.) + */ + protected void onProvidersChanged() { + // Do nothing + } + void updateAppWidgetView(int appWidgetId, RemoteViews views) { AppWidgetHostView v; synchronized (mViews) { diff --git a/core/java/com/android/internal/appwidget/IAppWidgetHost.aidl b/core/java/com/android/internal/appwidget/IAppWidgetHost.aidl index 216d985..78b4466 100644 --- a/core/java/com/android/internal/appwidget/IAppWidgetHost.aidl +++ b/core/java/com/android/internal/appwidget/IAppWidgetHost.aidl @@ -24,6 +24,7 @@ import android.widget.RemoteViews; oneway interface IAppWidgetHost { void updateAppWidget(int appWidgetId, in RemoteViews views); void providerChanged(int appWidgetId, in AppWidgetProviderInfo info); + void providersChanged(); void viewDataChanged(int appWidgetId, int viewId); } |
