diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-11-11 19:09:56 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-11-11 19:09:56 -0800 |
commit | 532d56034532809da7691059742371c1b4d0656c (patch) | |
tree | a784a13b10d415830163b184823a7a285f778377 | |
parent | 001e5242c8a801664ea454a2ed6d4fddb600157a (diff) | |
parent | 362d5b9b6429a2766f5b980d2010262135788ad8 (diff) | |
download | frameworks_base-532d56034532809da7691059742371c1b4d0656c.zip frameworks_base-532d56034532809da7691059742371c1b4d0656c.tar.gz frameworks_base-532d56034532809da7691059742371c1b4d0656c.tar.bz2 |
Merge change I80022375 into eclair
* changes:
Fix issue #2256032: Change CONFIGURATION_CHANGED and add a locale changed broadcast
-rw-r--r-- | api/current.xml | 11 | ||||
-rw-r--r-- | core/java/android/content/Intent.java | 14 | ||||
-rw-r--r-- | core/res/AndroidManifest.xml | 1 | ||||
-rw-r--r-- | services/java/com/android/server/am/ActivityManagerService.java | 7 |
4 files changed, 33 insertions, 0 deletions
diff --git a/api/current.xml b/api/current.xml index 32d0f1e..13e4c94 100644 --- a/api/current.xml +++ b/api/current.xml @@ -35279,6 +35279,17 @@ visibility="public" > </field> +<field name="ACTION_LOCALE_CHANGED" + type="java.lang.String" + transient="false" + volatile="false" + value=""android.intent.action.LOCALE_CHANGED"" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> <field name="ACTION_MAIN" type="java.lang.String" transient="false" diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index b785dbf..c676a5b 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -1344,6 +1344,12 @@ public class Intent implements Parcelable { * can not be restarted will need to watch for this action and handle it * appropriately. * + * <p class="note"> + * You can <em>not</em> receive this through components declared + * in manifests, only by explicitly registering for it with + * {@link Context#registerReceiver(BroadcastReceiver, IntentFilter) + * Context.registerReceiver()}. + * * <p class="note">This is a protected intent that can only be sent * by the system. * @@ -1352,6 +1358,14 @@ public class Intent implements Parcelable { @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String ACTION_CONFIGURATION_CHANGED = "android.intent.action.CONFIGURATION_CHANGED"; /** + * Broadcast Action: The current device's locale has changed. + * + * <p class="note">This is a protected intent that can only be sent + * by the system. + */ + @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) + public static final String ACTION_LOCALE_CHANGED = "android.intent.action.LOCALE_CHANGED"; + /** * Broadcast Action: This is a <em>sticky broadcast</em> containing the * charging state, level, and other information about the battery. * See {@link android.os.BatteryManager} for documentation on the diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 7d6f158..1c3cf3c 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -41,6 +41,7 @@ <protected-broadcast android:name="android.intent.action.PACKAGE_DATA_CLEARED" /> <protected-broadcast android:name="android.intent.action.UID_REMOVED" /> <protected-broadcast android:name="android.intent.action.CONFIGURATION_CHANGED" /> + <protected-broadcast android:name="android.intent.action.LOCALE_CHANGED" /> <protected-broadcast android:name="android.intent.action.BATTERY_CHANGED" /> <protected-broadcast android:name="android.intent.action.BATTERY_LOW" /> <protected-broadcast android:name="android.intent.action.BATTERY_OKAY" /> diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index cb9984a..e728091 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -12834,8 +12834,15 @@ public final class ActivityManagerService extends ActivityManagerNative implemen } } Intent intent = new Intent(Intent.ACTION_CONFIGURATION_CHANGED); + intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); broadcastIntentLocked(null, null, intent, null, null, 0, null, null, null, false, false, MY_PID, Process.SYSTEM_UID); + if ((changes&ActivityInfo.CONFIG_LOCALE) != 0) { + broadcastIntentLocked(null, null, + new Intent(Intent.ACTION_LOCALE_CHANGED), + null, null, 0, null, null, + null, false, false, MY_PID, Process.SYSTEM_UID); + } AttributeCache ac = AttributeCache.instance(); if (ac != null) { |