diff options
| author | Android (Google) Code Review <android-gerrit@google.com> | 2009-10-22 18:38:29 -0400 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-10-22 18:38:29 -0400 |
| commit | 94f2c524214b56ac2416f79cf9e81fa598327917 (patch) | |
| tree | fe84bd2555abdbd3630ff667a600a354a8734c48 | |
| parent | 6c618c68f251e42210f7c2f45d69498352da87e0 (diff) | |
| parent | 63c2d9ed9cb2174137ee43acb6ee2a86ff4451ea (diff) | |
| download | frameworks_base-94f2c524214b56ac2416f79cf9e81fa598327917.zip frameworks_base-94f2c524214b56ac2416f79cf9e81fa598327917.tar.gz frameworks_base-94f2c524214b56ac2416f79cf9e81fa598327917.tar.bz2 | |
Merge change I63c2d9ed into eclair
* changes:
Update the names of the widgets when the locale changes.
| -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) { |
