diff options
| author | Eric Fischer <enf@google.com> | 2009-10-22 15:47:24 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2009-10-22 15:47:24 -0700 |
| commit | fa48000a25a32de1a117c716dcd6f9c255bffe58 (patch) | |
| tree | 3df3d22af789a39387f03e92b91f57f8eb15bdc4 /services | |
| parent | 171ad63488fedbf0176b3d8cef5502007399b4dd (diff) | |
| parent | 94f2c524214b56ac2416f79cf9e81fa598327917 (diff) | |
| download | frameworks_base-fa48000a25a32de1a117c716dcd6f9c255bffe58.zip frameworks_base-fa48000a25a32de1a117c716dcd6f9c255bffe58.tar.gz frameworks_base-fa48000a25a32de1a117c716dcd6f9c255bffe58.tar.bz2 | |
am 94f2c524: Merge change I63c2d9ed into eclair
Merge commit '94f2c524214b56ac2416f79cf9e81fa598327917' into eclair-mr2
* commit '94f2c524214b56ac2416f79cf9e81fa598327917':
Update the names of the widgets when the locale changes.
Diffstat (limited to 'services')
| -rw-r--r-- | services/java/com/android/server/AppWidgetService.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/services/java/com/android/server/AppWidgetService.java b/services/java/com/android/server/AppWidgetService.java index f8b8ecc..6bf7102 100644 --- a/services/java/com/android/server/AppWidgetService.java +++ b/services/java/com/android/server/AppWidgetService.java @@ -51,6 +51,7 @@ import java.io.FileOutputStream; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.HashMap; import java.util.HashSet; @@ -105,6 +106,7 @@ class AppWidgetService extends IAppWidgetService.Stub } Context mContext; + Locale mLocale; PackageManager mPackageManager; AlarmManager mAlarmManager; ArrayList<Provider> mInstalledProviders = new ArrayList<Provider>(); @@ -131,6 +133,11 @@ class AppWidgetService extends IAppWidgetService.Stub mContext.registerReceiver(mBroadcastReceiver, new IntentFilter(Intent.ACTION_BOOT_COMPLETED), null, null); + // Register for configuration changes so we can update the names + // of the widgets when the locale changes. + mContext.registerReceiver(mBroadcastReceiver, + new IntentFilter(Intent.ACTION_CONFIGURATION_CHANGED), null, null); + // Register for broadcasts about package install, etc., so we can // update the provider list. IntentFilter filter = new IntentFilter(); @@ -1046,6 +1053,22 @@ class AppWidgetService extends IAppWidgetService.Stub //Log.d(TAG, "received " + action); if (Intent.ACTION_BOOT_COMPLETED.equals(action)) { sendInitialBroadcasts(); + } else if (Intent.ACTION_CONFIGURATION_CHANGED.equals(action)) { + Locale revised = Locale.getDefault(); + if (revised == null || mLocale == null || + !(revised.equals(mLocale))) { + mLocale = revised; + + synchronized (mAppWidgetIds) { + int N = mInstalledProviders.size(); + for (int i=N-1; i>=0; i--) { + Provider p = mInstalledProviders.get(i); + String pkgName = p.info.provider.getPackageName(); + updateProvidersForPackageLocked(pkgName); + } + saveStateLocked(); + } + } } else { Uri uri = intent.getData(); if (uri == null) { |
