summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2021-02-08 23:46:53 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2021-02-08 23:46:53 +0000
commite003842af508868a9a64ae3100b92ed97400cc13 (patch)
tree77200cfb119ea91ccff7dceb6c39ff696f17082e
parent4b2ef1b4f9b25aca597bb82d5d03e1a95b9fc099 (diff)
parent3be1cc079f766dedaab22aa589e6cc2fc4f086c1 (diff)
downloadCellBroadcastReceiver-android11-mainline-extservices-release.tar.gz
Snap for 7132927 from 3be1cc079f766dedaab22aa589e6cc2fc4f086c1 to mainline-extservices-releaseandroid-mainline-11.0.0_r15android11-mainline-extservices-release
Change-Id: Ief65335a74cfebdf909ee149066fae57fc854d46
-rw-r--r--AndroidManifest.xml2
-rw-r--r--res/values-mcc222-mn/strings.xml4
-rw-r--r--res/values-mcc234/strings.xml14
-rw-r--r--res/values-mcc425-mn/strings.xml4
-rw-r--r--res/values-mcc454-bn/strings.xml9
-rw-r--r--res/values-mcc454-es/strings.xml9
-rw-r--r--res/values-mcc454-mr/strings.xml9
-rw-r--r--res/values-mcc454-pa/strings.xml9
-rw-r--r--res/values-mcc466-mn/strings.xml2
-rw-r--r--res/values-mcc716-mn/strings.xml4
-rw-r--r--res/values-mcc730-mn/strings.xml2
-rw-r--r--res/values-mcc730/config.xml9
-rw-r--r--res/values-or/strings.xml2
-rw-r--r--res/values/config.xml5
-rw-r--r--res/values/overlayable.xml1
-rw-r--r--res/values/themes.xml5
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastAlertDialog.java74
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastChannelManager.java11
18 files changed, 146 insertions, 29 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index c88d62566..29d0ccece 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -130,7 +130,7 @@
<!-- Container activity for CMAS opt-in/opt-out dialog. -->
<activity android:name="com.android.cellbroadcastreceiver.CellBroadcastOptOutActivity"
android:launchMode="singleInstance"
- android:theme="@style/CellBroadcastAlertTheme"
+ android:theme="@style/CellBroadcastOptOutTheme"
android:exported="false" />
<receiver android:name="com.android.cellbroadcastreceiver.CellBroadcastReceiver">
diff --git a/res/values-mcc222-mn/strings.xml b/res/values-mcc222-mn/strings.xml
index b1ba2a44f..370d83015 100644
--- a/res/values-mcc222-mn/strings.xml
+++ b/res/values-mcc222-mn/strings.xml
@@ -24,6 +24,6 @@
<skip />
<!-- no translation found for enable_cmas_extreme_threat_alerts_title (4190349287603327927) -->
<skip />
- <string name="alerts_header_summary" msgid="5963536832729208581">"Хэрэглэгчийн тохиргооноос үл хамааран онцгой зурвасууд ирж болзошгүй"</string>
- <string name="enable_cmas_test_alerts_title" msgid="7658007515811137035">"Туршилтын зурвас"</string>
+ <string name="alerts_header_summary" msgid="5963536832729208581">"Хэрэглэгчийн тохиргооноос үл хамааран онцгой мессежүүд ирж болзошгүй"</string>
+ <string name="enable_cmas_test_alerts_title" msgid="7658007515811137035">"Туршилтын мессеж"</string>
</resources>
diff --git a/res/values-mcc234/strings.xml b/res/values-mcc234/strings.xml
index abc89fddc..b9fa464fe 100644
--- a/res/values-mcc234/strings.xml
+++ b/res/values-mcc234/strings.xml
@@ -38,4 +38,18 @@
<string name="cmas_required_monthly_test">Test Alert</string>
<!-- CMAS dialog title for CMAS Exercise. [CHAR LIMIT=50] -->
<string name="cmas_exercise_alert">Exercise Alert</string>
+ <!-- The name of the Cell Broadcast Receiver app. [CHAR LIMIT=NONE] -->
+ <string name="app_label">Emergency alerts</string>
+ <!-- Label for settings screen. [CHAR LIMIT=NONE] -->
+ <string name="sms_cb_settings">Emergency alerts</string>
+ <!-- Preference summaries for allow alerts checkbox. [CHAR LIMIT=66] -->
+ <string name="enable_alerts_master_toggle_summary">Receive emergency alert notifications</string>
+ <!-- Preference summary for enable text-to-speech checkbox. [CHAR LIMIT=101] -->
+ <string name="enable_alert_speech_summary">Use text-to-speech to speak emergency alert messages</string>
+ <!-- CMAS opt-out dialog message. [CHAR LIMIT=160] -->
+ <string name="cmas_opt_out_dialog_text">You are currently receiving emergency alerts. Would you like to continue receiving emergency alerts?</string>
+ <!-- Label to open emergencyNotifications dialog [CHAR LIMIT=40] -->
+ <string name="emergency_alert_settings_title_watches">Emergency alerts</string>
+ <!-- Notification title and text when alerting user that their CB settings have changed -->
+ <string name="notification_cb_settings_changed_text">Tap to see emergency alert settings</string>
</resources>
diff --git a/res/values-mcc425-mn/strings.xml b/res/values-mcc425-mn/strings.xml
index cd4d3b8bc..04b6df4b5 100644
--- a/res/values-mcc425-mn/strings.xml
+++ b/res/values-mcc425-mn/strings.xml
@@ -17,9 +17,9 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="cmas_severe_alert" msgid="4470698515511189493">"Анхааруулах сэрэмжлүүлэг"</string>
- <string name="public_safety_message" msgid="7373019453807671797">"Мэдээллийн зурвас"</string>
+ <string name="public_safety_message" msgid="7373019453807671797">"Мэдээллийн мессеж"</string>
<string name="cmas_amber_alert" msgid="740474290634511931">"Олон нийтийн тусламж хүсэх мессеж"</string>
<string name="enable_cmas_severe_threat_alerts_title" msgid="4570611095431464471">"Анхааруулах сэрэмжлүүлэг"</string>
- <string name="enable_public_safety_messages_title" msgid="6173886162636474286">"Мэдээллийн зурвас"</string>
+ <string name="enable_public_safety_messages_title" msgid="6173886162636474286">"Мэдээллийн мессеж"</string>
<string name="enable_cmas_amber_alerts_title" msgid="3896845887375326185">"Олон нийтийн тусламж хүсэх мессеж"</string>
</resources>
diff --git a/res/values-mcc454-bn/strings.xml b/res/values-mcc454-bn/strings.xml
index a9eece138..4e8a63c41 100644
--- a/res/values-mcc454-bn/strings.xml
+++ b/res/values-mcc454-bn/strings.xml
@@ -16,7 +16,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="cmas_presidential_level_alert" msgid="2500559695815098491">"গুরুতর জরুরি সতর্কতা"</string>
- <string name="cmas_extreme_alert" msgid="6487533089309567518">"জরুরি সতর্কতা"</string>
- <string name="cmas_required_monthly_test" msgid="4861373660989211951">"পরীক্ষামূলক মেসেজ"</string>
+ <string name="cmas_presidential_level_alert" msgid="8798462930675572592">"গুরুতর জরুরি সতর্কতা"</string>
+ <string name="cmas_extreme_alert" msgid="666310502927269524">"জরুরি সতর্কতা"</string>
+ <string name="cmas_required_monthly_test" msgid="3412608025684914213">"পরীক্ষামূলক মেসেজ"</string>
+ <string name="enable_emergency_alerts_message_summary" msgid="8186076761036041808">"জরুরি সতর্কতা পান"</string>
+ <string name="enable_cmas_test_alerts_title" msgid="4587011587057993053">"পরীক্ষামূলক মেসেজ"</string>
+ <string name="enable_cmas_test_alerts_summary" msgid="6148921520813876460">"পরীক্ষামূলক মেসেজ পান"</string>
</resources>
diff --git a/res/values-mcc454-es/strings.xml b/res/values-mcc454-es/strings.xml
index aace7953d..1a5480c9e 100644
--- a/res/values-mcc454-es/strings.xml
+++ b/res/values-mcc454-es/strings.xml
@@ -16,7 +16,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="cmas_presidential_level_alert" msgid="2500559695815098491">"Alerta de emergencia extrema"</string>
- <string name="cmas_extreme_alert" msgid="6487533089309567518">"Alerta de emergencia"</string>
- <string name="cmas_required_monthly_test" msgid="4861373660989211951">"Mensaje de prueba"</string>
+ <string name="cmas_presidential_level_alert" msgid="8798462930675572592">"Alerta de emergencia extrema"</string>
+ <string name="cmas_extreme_alert" msgid="666310502927269524">"Alerta de emergencia"</string>
+ <string name="cmas_required_monthly_test" msgid="3412608025684914213">"Mensaje de prueba"</string>
+ <string name="enable_emergency_alerts_message_summary" msgid="8186076761036041808">"Recibir alertas de emergencia"</string>
+ <string name="enable_cmas_test_alerts_title" msgid="4587011587057993053">"Mensajes de prueba"</string>
+ <string name="enable_cmas_test_alerts_summary" msgid="6148921520813876460">"Recibir mensajes de prueba"</string>
</resources>
diff --git a/res/values-mcc454-mr/strings.xml b/res/values-mcc454-mr/strings.xml
index ab634e103..583cd896d 100644
--- a/res/values-mcc454-mr/strings.xml
+++ b/res/values-mcc454-mr/strings.xml
@@ -16,7 +16,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="cmas_presidential_level_alert" msgid="2500559695815098491">"आणीबाणीचा अतिविषम इशारा"</string>
- <string name="cmas_extreme_alert" msgid="6487533089309567518">"आणीबाणीच्या सूचना"</string>
- <string name="cmas_required_monthly_test" msgid="4861373660989211951">"चाचणी मेसेज"</string>
+ <string name="cmas_presidential_level_alert" msgid="8798462930675572592">"आणीबाणीचा अतिविषम इशारा"</string>
+ <string name="cmas_extreme_alert" msgid="666310502927269524">"आणीबाणीची सूचना"</string>
+ <string name="cmas_required_monthly_test" msgid="3412608025684914213">"चाचणी मेसेज"</string>
+ <string name="enable_emergency_alerts_message_summary" msgid="8186076761036041808">"आणीबाणीच्या सूचना मिळवा"</string>
+ <string name="enable_cmas_test_alerts_title" msgid="4587011587057993053">"चाचणी मेसेज"</string>
+ <string name="enable_cmas_test_alerts_summary" msgid="6148921520813876460">"चाचणी मेसेज मिळवा"</string>
</resources>
diff --git a/res/values-mcc454-pa/strings.xml b/res/values-mcc454-pa/strings.xml
index f15602bcd..2f30b2a99 100644
--- a/res/values-mcc454-pa/strings.xml
+++ b/res/values-mcc454-pa/strings.xml
@@ -16,7 +16,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="cmas_presidential_level_alert" msgid="2500559695815098491">"ਐਕਸਟ੍ਰੀਮ ਸੰਕਟਕਾਲੀਨ ਸੁਚੇਤਨਾ"</string>
- <string name="cmas_extreme_alert" msgid="6487533089309567518">"ਸੰਕਟਕਾਲੀਨ ਸੁਚੇਤਨਾ"</string>
- <string name="cmas_required_monthly_test" msgid="4861373660989211951">"ਜਾਂਚ ਸੁਨੇਹਾ"</string>
+ <string name="cmas_presidential_level_alert" msgid="8798462930675572592">"ਐਕਸਟ੍ਰੀਮ ਸੰਕਟਕਾਲੀਨ ਸੁਚੇਤਨਾ"</string>
+ <string name="cmas_extreme_alert" msgid="666310502927269524">"ਸੰਕਟਕਾਲੀਨ ਸੁਚੇਤਨਾ"</string>
+ <string name="cmas_required_monthly_test" msgid="3412608025684914213">"ਜਾਂਚ ਸੁਨੇਹਾ"</string>
+ <string name="enable_emergency_alerts_message_summary" msgid="8186076761036041808">"ਸੰਕਟਕਾਲੀਨ ਸੁਚੇਤਨਾਵਾਂ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
+ <string name="enable_cmas_test_alerts_title" msgid="4587011587057993053">"ਜਾਂਚ ਸੁਨੇਹੇ"</string>
+ <string name="enable_cmas_test_alerts_summary" msgid="6148921520813876460">"ਜਾਂਚ ਸੁਨੇਹੇ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
</resources>
diff --git a/res/values-mcc466-mn/strings.xml b/res/values-mcc466-mn/strings.xml
index d22031144..e51887160 100644
--- a/res/values-mcc466-mn/strings.xml
+++ b/res/values-mcc466-mn/strings.xml
@@ -18,5 +18,5 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="public_safety_message" msgid="4052407641316309322">"Мессеж сэрэмжлүүлэг"</string>
<string name="enable_cmas_test_alerts_title" msgid="4165080207837566277">"Сар тутам шаардлагатай туршилт"</string>
- <string name="enable_cmas_test_alerts_summary" msgid="1339769389077152402">"Аюулгүй байдлын сэрэмжлүүлгийн системийн туршилтын зурвас хүлээн авах"</string>
+ <string name="enable_cmas_test_alerts_summary" msgid="1339769389077152402">"Аюулгүй байдлын сэрэмжлүүлгийн системийн туршилтын мессеж хүлээн авах"</string>
</resources>
diff --git a/res/values-mcc716-mn/strings.xml b/res/values-mcc716-mn/strings.xml
index 87f2ed4c3..fd0da24f9 100644
--- a/res/values-mcc716-mn/strings.xml
+++ b/res/values-mcc716-mn/strings.xml
@@ -16,8 +16,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="public_safety_message" msgid="7237115648380675159">"Мэдээллийн зурвас"</string>
- <string name="enable_public_safety_messages_title" msgid="4037404034274507696">"Мэдээллийн зурвас"</string>
+ <string name="public_safety_message" msgid="7237115648380675159">"Мэдээллийн мессеж"</string>
+ <string name="enable_public_safety_messages_title" msgid="4037404034274507696">"Мэдээллийн мессеж"</string>
<string name="cmas_required_monthly_test" msgid="9061179556831144678">"Яаралтай сэрэмжлүүлэг: Туршилтын мессеж"</string>
<string name="cmas_exercise_alert" msgid="3061507852301643814">"Онцгой байдлын сэрэмжлүүлэг: Сургуулилалт/Сургалтын мессеж"</string>
<string name="pws_other_message_identifiers" msgid="4992476982074198144">"Онцгой байдлын сэрэмжлүүлэг: Туршилтын мессеж"</string>
diff --git a/res/values-mcc730-mn/strings.xml b/res/values-mcc730-mn/strings.xml
index 5e2be806f..d6a7c05fc 100644
--- a/res/values-mcc730-mn/strings.xml
+++ b/res/values-mcc730-mn/strings.xml
@@ -16,5 +16,5 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="cmas_required_monthly_test" msgid="530685628438270164">"Туршилтын зурвас"</string>
+ <string name="cmas_required_monthly_test" msgid="530685628438270164">"Туршилтын мессеж"</string>
</resources>
diff --git a/res/values-mcc730/config.xml b/res/values-mcc730/config.xml
index 8fdb91283..877cfb09d 100644
--- a/res/values-mcc730/config.xml
+++ b/res/values-mcc730/config.xml
@@ -48,7 +48,7 @@
</string-array>
<!-- 4380~4382, 519 -->
<string-array name="required_monthly_test_range_strings" translatable="false">
- <item>0x111C:rat=gsm, type=info, emergency=true</item>
+ <item>0x111C:rat=gsm, type=info, emergency=true, language=es</item>
<item>0x207:rat=gsm, type=info, emergency=true</item>
</string-array>
<string-array name="exercise_alert_range_strings" translatable="false">
@@ -76,5 +76,12 @@
<!-- Whether to disable the opt-out dialog for all channels -->
<bool name="disable_opt_out_dialog">true</bool>
<bool name="show_main_switch_settings">false</bool>
+
+ <!-- String used to override message body for certain service categories.
+ The format for each entry is: "service_category:message".
+ '>' is a special character which indicates that the carrier's name should be shown -->
+ <string-array name="message_body_override" translatable="false">
+ <item>4380:Esta es una prueba de mantenimiento, sin costo, del Sistema de Alerta de Emergencia, emitido por ></item>
+ </string-array>
</resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index c80abaea0..f5f8be4c0 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -35,7 +35,7 @@
<string name="confirm_delete_broadcast" msgid="2540199303730232322">"ଏହି ବ୍ରୋଡକାଷ୍ଟକୁ ଡିଲିଟ୍‌ କରିବେ?"</string>
<string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"ପ୍ରାପ୍ତ କରିଥିବା ସମସ୍ତ ବ୍ରୋଡକାଷ୍ଟ ମେସେଜ୍‌ ଡିଲିଟ୍‌ କରିବେ?"</string>
<string name="button_delete" msgid="4672451757925194350">"ଡିଲିଟ୍‌ କରନ୍ତୁ"</string>
- <string name="button_cancel" msgid="7479958360523246140">"କ୍ୟାନ୍ସଲ୍‍ କରନ୍ତୁ"</string>
+ <string name="button_cancel" msgid="7479958360523246140">"ବାତିଲ୍‍ କରନ୍ତୁ"</string>
<string name="etws_earthquake_warning" msgid="6428741104423152511">"ଭୂମିକମ୍ପ ଚେତାବନୀ"</string>
<string name="etws_tsunami_warning" msgid="6173964105145900312">"ସୁନାମି ଚେତାବନୀ"</string>
<string name="etws_earthquake_and_tsunami_warning" msgid="662449983177407681">"ଭୂମିକମ୍ପ ଏବଂ ସୁନାମି ଚେତାବନୀ"</string>
diff --git a/res/values/config.xml b/res/values/config.xml
index 17d4fbd15..ee0c284db 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -264,4 +264,9 @@
<!-- Whether to show the alert dialog at the bottom of the screen in order to avoid blocking
other content -->
<bool name="alert_dialog_bottom">false</bool>
+
+ <!-- String used to override message body for certain service categories.
+ The format for each entry is: "service_category:message".
+ '>' is a special character which indicates that the carrier's name should be shown -->
+ <string-array name="message_body_override" translatable="false"></string-array>
</resources>
diff --git a/res/values/overlayable.xml b/res/values/overlayable.xml
index dacbdd5e4..3058b3a62 100644
--- a/res/values/overlayable.xml
+++ b/res/values/overlayable.xml
@@ -23,6 +23,7 @@
<policy type="product|system|vendor">
<!-- START THEME / STYLE -->
<item type="style" name="CellBroadcastAlertTheme"/>
+ <item type="style" name="CellBroadcastOptOutTheme"/>
<item type="style" name="CellBroadcastListActivityTheme"/>
<item type="style" name="CellBroadcastSettingsTheme"/>
<item type="style" name="CellBroadcastListViewTheme"/>
diff --git a/res/values/themes.xml b/res/values/themes.xml
index 228fe5d1a..adf75fce5 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -20,6 +20,11 @@
<resources>
<style name="CellBroadcastAlertTheme" parent="@android:style/Theme.DeviceDefault.Light.Dialog.Alert"/>
+ <style name="CellBroadcastOptOutTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar.TranslucentDecor">
+ <item name="android:windowBackground">@android:color/transparent</item>
+ <item name="android:colorBackgroundCacheHint">@null</item>
+ <item name="android:windowIsTranslucent">true</item>
+ </style>
<style name="CellBroadcastSettingsTheme" parent="@android:style/Theme.DeviceDefault.Settings">
<item name="switchPreferenceStyle">@style/SettingsSwitchPreference</item>
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertDialog.java b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertDialog.java
index c66a65942..9e2ef3b46 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertDialog.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertDialog.java
@@ -44,6 +44,8 @@ import android.preference.PreferenceManager;
import android.provider.Telephony;
import android.telephony.SmsCbCmasInfo;
import android.telephony.SmsCbMessage;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
@@ -353,6 +355,14 @@ public class CellBroadcastAlertDialog extends Activity {
| WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
+ // Disable home button when alert dialog is showing if mute_by_physical_button is false.
+ if (!CellBroadcastSettings.getResources(getApplicationContext(),
+ SubscriptionManager.DEFAULT_SUBSCRIPTION_ID)
+ .getBoolean(R.bool.mute_by_physical_button)) {
+ final View decorView = win.getDecorView();
+ decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
+ }
+
// Initialize the view.
LayoutInflater inflater = LayoutInflater.from(this);
setContentView(inflater.inflate(R.layout.cell_broadcast_alert, null));
@@ -658,10 +668,11 @@ public class CellBroadcastAlertDialog extends Activity {
* @param res Resources for the subId
* @param languageCode the ISO-639-1 language code for this message, or null if unspecified
*/
- private String overrideTranslation(int resId, Resources res, String languageCode) {
+ private String overrideTranslation(int resId, Resources res, String languageCode,
+ boolean forceOverride) {
if (!TextUtils.isEmpty(languageCode)
- && res.getBoolean(R.bool.override_alert_title_language_to_match_message_locale)) {
- // TODO change resources to locale from message
+ && (res.getBoolean(R.bool.override_alert_title_language_to_match_message_locale)
+ || forceOverride)) {
Configuration conf = res.getConfiguration();
conf = new Configuration(conf);
conf.setLocale(new Locale(languageCode));
@@ -681,7 +692,20 @@ public class CellBroadcastAlertDialog extends Activity {
int titleId = CellBroadcastResources.getDialogTitleResource(context, message);
Resources res = CellBroadcastSettings.getResources(context, message.getSubscriptionId());
- String title = overrideTranslation(titleId, res, message.getLanguageCode());
+
+ CellBroadcastChannelManager channelManager = new CellBroadcastChannelManager(
+ this, message.getSubscriptionId());
+ CellBroadcastChannelRange range = channelManager
+ .getCellBroadcastChannelRangeFromMessage(message);
+ String languageCode;
+ boolean forceOverride = false;
+ if (range != null && !TextUtils.isEmpty(range.mLanguageCode)) {
+ languageCode = range.mLanguageCode;
+ forceOverride = true;
+ } else {
+ languageCode = message.getLanguageCode();
+ }
+ String title = overrideTranslation(titleId, res, languageCode, forceOverride);
TextView titleTextView = findViewById(R.id.alertTitle);
if (titleTextView != null) {
@@ -703,8 +727,12 @@ public class CellBroadcastAlertDialog extends Activity {
titleTextView.setText(title);
}
- TextView textView = findViewById(R.id.message);
String messageText = message.getMessageBody();
+ TextView textView = findViewById(R.id.message);
+ String messageBodyOverride = getMessageBodyOverride(context, message);
+ if (!TextUtils.isEmpty(messageBodyOverride)) {
+ messageText = messageBodyOverride;
+ }
if (textView != null && messageText != null) {
int linkMethod = getLinkMethod(message.getSubscriptionId());
if (linkMethod != LINK_METHOD_NONE) {
@@ -728,6 +756,42 @@ public class CellBroadcastAlertDialog extends Activity {
}
/**
+ * @param message
+ * @return the required message override for the service category for the carrier, or null if
+ * it is not set
+ */
+ private String getMessageBodyOverride(Context context, SmsCbMessage message) {
+ // return true if the carrier has configured this service category to have a fixed message
+ Resources res = CellBroadcastSettings.getResources(context, message.getSubscriptionId());
+ String[] overrides = res.getStringArray(R.array.message_body_override);
+ if (overrides != null && overrides.length > 0) {
+ for (String entry : overrides) {
+ String[] serviceCategoryAndMessage = entry.split(":");
+ if (message.getServiceCategory() == Integer.parseInt(
+ serviceCategoryAndMessage[0])) {
+ return insertCarrierNameIfNeeded(context, message.getSubscriptionId(),
+ serviceCategoryAndMessage[1]);
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * If an override message must have the carrier name (represented with a '>' character), return
+ * the message with the carrier name inserted. Otherwise just return the message.
+ */
+ private String insertCarrierNameIfNeeded(Context context, int subId, String message) {
+ TelephonyManager tm = context.getSystemService(TelephonyManager.class)
+ .createForSubscriptionId(subId);
+ String carrierName = (String) tm.getSimSpecificCarrierIdName();
+ if (TextUtils.isEmpty(carrierName)) {
+ return message;
+ }
+ return message.replace(">", carrierName);
+ }
+
+ /**
* Set pictogram image
* @param context
* @param message
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastChannelManager.java b/src/com/android/cellbroadcastreceiver/CellBroadcastChannelManager.java
index 3c852298d..7c9c168b2 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastChannelManager.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastChannelManager.java
@@ -106,6 +106,9 @@ public class CellBroadcastChannelManager {
private static final String KEY_DISPLAY_ICON = "display_icon";
/** Define whether to dismiss the alert dialog for outside touches */
private static final String KEY_DISMISS_ON_OUTSIDE_TOUCH = "dismiss_on_outside_touch";
+ /** Define the ISO-639-1 language code associated with the alert message. */
+ private static final String KEY_LANGUAGE_CODE = "language";
+
/**
* Defines whether the channel needs language filter or not. True indicates that the alert
@@ -148,6 +151,8 @@ public class CellBroadcastChannelManager {
// whether to dismiss the alert dialog on outside touch. Typically this should be false
// to avoid accidental dismisses of emergency messages
public boolean mDismissOnOutsideTouch = false;
+ // This is used to override dialog title language
+ public String mLanguageCode;
public CellBroadcastChannelRange(Context context, int subId, String channelRange) {
@@ -255,6 +260,9 @@ public class CellBroadcastChannelManager {
mDismissOnOutsideTouch = true;
}
break;
+ case KEY_LANGUAGE_CODE:
+ mLanguageCode = value;
+ break;
}
}
}
@@ -287,7 +295,8 @@ public class CellBroadcastChannelManager {
+ ",filter_language=" + mFilterLanguage + ",override_dnd=" + mOverrideDnd
+ ",display=" + mDisplay + ",testMode=" + mTestMode + ",mAlwaysOn="
+ mAlwaysOn + ",ScreenOnDuration=" + mScreenOnDuration + ", displayIcon="
- + mDisplayIcon + "dismissOnOutsideTouch=" + mDismissOnOutsideTouch + "]";
+ + mDisplayIcon + "dismissOnOutsideTouch=" + mDismissOnOutsideTouch
+ + ", languageCode=" + mLanguageCode + "]";
}
}