diff options
| author | Eric Fischer <enf@google.com> | 2009-10-22 15:58:02 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2009-10-22 15:58:02 -0700 |
| commit | 52ab52f35b9b6be78b818f377608c18d97f137ce (patch) | |
| tree | 4441ea0bc8dbbda0411c1fce6c8b3814ec0e6893 /services | |
| parent | bee4b10af2e772b2e5c7289b26286a5a33a300ae (diff) | |
| parent | fa48000a25a32de1a117c716dcd6f9c255bffe58 (diff) | |
| download | frameworks_base-52ab52f35b9b6be78b818f377608c18d97f137ce.zip frameworks_base-52ab52f35b9b6be78b818f377608c18d97f137ce.tar.gz frameworks_base-52ab52f35b9b6be78b818f377608c18d97f137ce.tar.bz2 | |
am fa48000a: am 94f2c524: Merge change I63c2d9ed into eclair
Merge commit 'fa48000a25a32de1a117c716dcd6f9c255bffe58' into eclair-mr2-plus-aosp
* commit 'fa48000a25a32de1a117c716dcd6f9c255bffe58':
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) { |
