diff options
author | Romain Guy <romainguy@android.com> | 2010-03-11 18:06:42 -0800 |
---|---|---|
committer | Romain Guy <romainguy@android.com> | 2010-03-11 18:06:42 -0800 |
commit | d2671e1fcf1d7f1b8e25a2615d514cf3c26b6a9c (patch) | |
tree | 3250b0e86435f79ba7b2e4402a4adb9f00ca1c85 /services | |
parent | 476c2323d5834cbc26ff8e5838003be2404cc497 (diff) | |
download | frameworks_base-d2671e1fcf1d7f1b8e25a2615d514cf3c26b6a9c.zip frameworks_base-d2671e1fcf1d7f1b8e25a2615d514cf3c26b6a9c.tar.gz frameworks_base-d2671e1fcf1d7f1b8e25a2615d514cf3c26b6a9c.tar.bz2 |
Preserve widgets on upgrade.
Bug #2464545
Change-Id: I802878af49dc4d98210fb8049df0bbdc49268d99
Diffstat (limited to 'services')
-rw-r--r-- | services/java/com/android/server/AppWidgetService.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/services/java/com/android/server/AppWidgetService.java b/services/java/com/android/server/AppWidgetService.java index 7350213..24526af 100644 --- a/services/java/com/android/server/AppWidgetService.java +++ b/services/java/com/android/server/AppWidgetService.java @@ -524,10 +524,11 @@ class AppWidgetService extends IAppWidgetService.Stub } Provider lookupProviderLocked(ComponentName provider) { + final String className = provider.getClassName(); final int N = mInstalledProviders.size(); for (int i=0; i<N; i++) { Provider p = mInstalledProviders.get(i); - if (p.info.provider.equals(provider)) { + if (p.info.provider.equals(provider) || className.equals(p.info.oldName)) { return p; } } @@ -706,6 +707,10 @@ class AppWidgetService extends IAppWidgetService.Stub p = new Provider(); AppWidgetProviderInfo info = p.info = new AppWidgetProviderInfo(); + // If metaData was null, we would have returned earlier when getting + // the parser No need to do the check here + info.oldName = activityInfo.metaData.getString( + AppWidgetManager.META_DATA_APPWIDGET_OLD_NAME); info.provider = component; p.uid = activityInfo.applicationInfo.uid; |