diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2021-02-08 23:46:53 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2021-02-08 23:46:53 +0000 |
commit | e003842af508868a9a64ae3100b92ed97400cc13 (patch) | |
tree | 77200cfb119ea91ccff7dceb6c39ff696f17082e | |
parent | 4b2ef1b4f9b25aca597bb82d5d03e1a95b9fc099 (diff) | |
parent | 3be1cc079f766dedaab22aa589e6cc2fc4f086c1 (diff) | |
download | CellBroadcastReceiver-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.xml | 2 | ||||
-rw-r--r-- | res/values-mcc222-mn/strings.xml | 4 | ||||
-rw-r--r-- | res/values-mcc234/strings.xml | 14 | ||||
-rw-r--r-- | res/values-mcc425-mn/strings.xml | 4 | ||||
-rw-r--r-- | res/values-mcc454-bn/strings.xml | 9 | ||||
-rw-r--r-- | res/values-mcc454-es/strings.xml | 9 | ||||
-rw-r--r-- | res/values-mcc454-mr/strings.xml | 9 | ||||
-rw-r--r-- | res/values-mcc454-pa/strings.xml | 9 | ||||
-rw-r--r-- | res/values-mcc466-mn/strings.xml | 2 | ||||
-rw-r--r-- | res/values-mcc716-mn/strings.xml | 4 | ||||
-rw-r--r-- | res/values-mcc730-mn/strings.xml | 2 | ||||
-rw-r--r-- | res/values-mcc730/config.xml | 9 | ||||
-rw-r--r-- | res/values-or/strings.xml | 2 | ||||
-rw-r--r-- | res/values/config.xml | 5 | ||||
-rw-r--r-- | res/values/overlayable.xml | 1 | ||||
-rw-r--r-- | res/values/themes.xml | 5 | ||||
-rw-r--r-- | src/com/android/cellbroadcastreceiver/CellBroadcastAlertDialog.java | 74 | ||||
-rw-r--r-- | src/com/android/cellbroadcastreceiver/CellBroadcastChannelManager.java | 11 |
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 + "]"; } } |