Merge "CB: Turn on CMAS Presidential"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 3294be5..9b60968 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -49,7 +49,7 @@
         <activity android:name="CellBroadcastListActivity"
                   android:label="@string/app_label"
                   android:configChanges="orientation|keyboardHidden"
-                  android:launchMode="singleTop">
+                  android:launchMode="singleTask">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 <!-- Uncomment this category to show the Cell Broadcasts launcher icon.
@@ -65,14 +65,15 @@
             </intent-filter>
         </activity>
 
+        <!-- Settings opened by ListActivity menu, Settings app link or opt-out dialog. -->
         <activity android:name="CellBroadcastSettings"
                   android:label="@string/sms_cb_settings"
+                  android:launchMode="singleTask"
                   android:exported="true" />
 
         <activity android:name="CellBroadcastAlertDialog"
-                  android:excludeFromRecents="true"
                   android:theme="@android:style/Theme.Holo.Dialog"
-                  android:launchMode="singleInstance"
+                  android:launchMode="singleTask"
                   android:exported="false"
                   android:configChanges="orientation|keyboardHidden|keyboard|navigation" />
 
@@ -80,10 +81,14 @@
         <activity android:name="CellBroadcastAlertFullScreen"
                   android:excludeFromRecents="true"
                   android:theme="@style/AlertFullScreenTheme"
-                  android:launchMode="singleInstance"
+                  android:launchMode="singleTask"
                   android:exported="false"
                   android:configChanges="orientation|keyboardHidden|keyboard|navigation" />
 
+        <!-- Container activity for CMAS opt-in/opt-out dialog. -->
+        <activity android:name="CellBroadcastOptOutActivity"
+                  android:exported="false" />
+
         <!-- Require sender permissions to prevent SMS spoofing -->
         <receiver android:name="PrivilegedCellBroadcastReceiver"
             android:permission="android.permission.BROADCAST_SMS">
diff --git a/res/mipmap-xxhdpi/ic_launcher_cell_broadcast.png b/res/mipmap-xxhdpi/ic_launcher_cell_broadcast.png
new file mode 100644
index 0000000..98f4e32
--- /dev/null
+++ b/res/mipmap-xxhdpi/ic_launcher_cell_broadcast.png
Binary files differ
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index a769d2f..023a8ae 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Instellings"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Vee uitsendings uit"</string>
     <string name="message_options" msgid="3178489901903589574">"Boodskapopsies"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Sien uitsending"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Bekyk details"</string>
     <string name="menu_delete" msgid="128380070910799366">"Vee uitsending uit"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Opletberig-details"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Vee hierdie uitsending uit?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Vee alle ontvangde uitsaaiboodskappe uit?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Vee uit"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Toon kinderontvoerings se noodbulletins (AMBER-berig)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Wys CMAS-toetsuitsendings"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Vertoon toetsuitsendings vir Komersiële Mobiele Waarskuwingstelsel (CMAS)"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibreer"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Vibreer met opletberig"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Instellings vir Brasilië"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Wys kanaal 50-uitsendings"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Kanaal 50 word in Brasilië gebruik vir opdateer van area-inligting"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Ontwikkelaaropsies"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategorie:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Opletberig-kategorie:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofisies"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorologiese"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Veiligheid"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastruktuur"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Chemiese/Biologiese/Kern/Ontploffend"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Ander"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Reaksietipe:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Neem skuiling"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Reaksietipe:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Skuiling"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Ontruim"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Berei voor"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Voer aktiwiteit uit"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Monitor inligtingsbronne"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Vermy gevaar"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Evalueer"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Geen aksie nie"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Voer uit"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Monitor"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Vermy"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Assesseer"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Geen"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Felheid"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Uiters"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Ernstig"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Dringendheid:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Tree onmiddellik op"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Tree binne die volgende uur op"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Onmiddellik"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Word verwag"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Sekerheid:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Waargeneem"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Waarskynlik"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Ontvang:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> ongeleesde berigte."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Nuwe berigte"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Wys \'n intekenweier-dialoog nadat die eerste CMAS-berig gewys is (behalwe presidensiële berig)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Wys intekenweier-dialoog"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Jy ontvang tans noodberigte. Sal jy graag wil voortgaan om noodberigte te ontvang?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Ja"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Nee"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 sekondes"</item>
     <item msgid="5656092384277009212">"4 sekondes"</item>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index a0408e5..bceba81 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"ቅንብሮች"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"ስርጭት ሰርዝ"</string>
     <string name="message_options" msgid="3178489901903589574">"የመልዕክት አማራጮች"</string>
-    <string name="menu_view" msgid="5991055455727639531">"ስርጭት እይ"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"ዝርዝሮችን ይመልከቱ"</string>
     <string name="menu_delete" msgid="128380070910799366">"ስርጭት ሰርዝ"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"የማንቂያ ዝርዝሮች"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"ይሄንን ማስተላለፍ ሰርዝ?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"ሁሉንም የተላለፉ መልዕክቶችን ሰርዝ?"</string>
     <string name="button_delete" msgid="4672451757925194350">"ሰርዝ"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"የህፃናት እገታ አደጋ ጥሪዎችን ዜና አሳይ (የእገታ ማንቂያዎች)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"CMAS የሙከራ ስርጭቶችን አሳይ"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"ለንግድ ተንቀሳቃሽ የማንቂያ ስርዓት የሙከራ ስርጭቶችን አሳይ"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"ንዘር"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"ማንቂያ ላይ ንዘር"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"ቅንብሮች ለብራዚል"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"የጣቢያ 50 ስርጭቶችን አሳይ"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"ጣቢያ 50  ለአካባቢ  መረጃአዘምን ብራዚል ውስጥ በማገልገል ላይ ነው።"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"የገንቢዎች አማራጮች"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"ምድብ፦"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"የማንቂያ ምድብ፦"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"ጂኦፊዚካል"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"ሜትሮሎጂያዊ"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"ደህንነት"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"መሰረተ ልማት"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"ኬሚካል/ባዮሎጂካል/ኒውክሌር/ ፈንጅ"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"ሌላ"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"የምላሽ አይነት፦"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"መጠለያ ውሰድ"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"የምላሽ አይነት፦"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"መጠለያ"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"ልቀቅ"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"አዘጋጅ"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"ሥራን አከናውን"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"የመረጃ ምንጮችን ተከታተል"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"አደጋ አስወግድ"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"መዝን"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"ምንም እርምጃ አይደገፍም"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"ፈጽም"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"ተከታተል"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"ተከላከል"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"ገምግም"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"ምንም"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"ሀይለኛነቱ፦"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"የባሰ ሁኔታ"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"ሀይለኛ"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"አስቸኳይነት፦"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"እርምጃ ወዲያውኑ ውሰድ"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"በሚቀጥለው ሰዓት ውስጥ እርምጃ ውሰድ"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"ወዲያውኑ"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"የተጠበቀ"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"እርግጠኝነት፦"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"የታየ"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"ሊሆን የሚችል"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"የደረሰው፦"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> ያልተነበቡ ማንቂያዎች።"</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"አዲስ ማንቂያዎች"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"የመጀመሪያው የCMAS ማንቂያ (ከፕሬዚዳንታዊው ማንቂያ ሌላ) ከታየ በኋላ የመርጦ መውጫ መገናኛ አሳይ።"</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"የመርጦ መውጫ መገናኛን አሳይ"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"በአሁኑ ጊዜ የአስቸኳይ ጊዜ ማንቂያዎችን እየተቀበሉ ነዎት። የአስቸኳይ ጊዜ ማንቂያዎችን መቀበል መቀጠል ይፈልጋሉ?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"አዎ"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"የለም"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 ሰከንዶች"</item>
     <item msgid="5656092384277009212">"4 ሰከንዶች"</item>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 9ec1236..3ec17d5 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"الإعدادات"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"حذف مجموعات البث"</string>
     <string name="message_options" msgid="3178489901903589574">"خيارات الرسائل"</string>
-    <string name="menu_view" msgid="5991055455727639531">"عرض البث"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"عرض التفاصيل"</string>
     <string name="menu_delete" msgid="128380070910799366">"حذف بث"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"تفاصيل التنبيه"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"هل تريد حذف هذا البث؟"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"هل تريد حذف جميع رسائل البث المستلمة؟"</string>
     <string name="button_delete" msgid="4672451757925194350">"حذف"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"عرض نشرات طوارئ اختطاف طفل (نظام إنذار اختطاف الأطفال AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"عرض نشرات اختبار CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"عرض نشرات الاختبار في نظام التنبيه التجاري عبر الجوال"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"اهتزاز"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"اهتزاز عند التنبيه"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"إعدادات البرازيل"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"عرض مجموعات بث القناة 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"تستخدم القناة 50 في البرازيل للحصول على معلومات تحديث المنطقة"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"خيارات مطور البرامج"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"الفئة:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"فئة التنبيه:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"جيوفيزيائي"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"الأرصاد الجوية"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"السلامة"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"البنية الأساسية"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"كيميائي/بيولوجي/نووي/متفجرات"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"أخرى"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"نوع الرد:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"استخدام وقاية"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"نوع الرد:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"وحدات الإيواء"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"إجلاء"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"إعداد"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"تنفيذ نشاط"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"مراقبة مصادر المعلومات"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"تجنب المخاطر"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"تقييم"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"لا يلزم إجراء"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"تنفيذ"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"الإشراف"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"تجنب"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"تقييم"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"لا شيء"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"الخطورة:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"قصوى"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"بالغة"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"طوارئ:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"اتخاذ إجراء فوري"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"اتخاذ إجراء خلال الساعة التالية"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"فورًا"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"المتوقع"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"التيقن:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"تمت الملاحظة"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"الاحتمالية"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"تم التلقي:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> من التنبيهات غير المقروءة."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"تنبيهات جديدة"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"إظهار حوار تعطيل بعد عرض أول تنبيه CMAS (بخلاف التنبيه الرئاسي)"</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"عرض مربع حوار التعطيل"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"أنت حاليًا تتلقى تنبيهات طوارئ. هل تريد متابعة تلقي تنبيهات الطوارئ؟"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"نعم"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"لا"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"ثانيتان"</item>
     <item msgid="5656092384277009212">"4 ثوانٍ"</item>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index a133db3..11092da 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Настройкі"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Выдаліць вяшчаннi"</string>
     <string name="message_options" msgid="3178489901903589574">"Параметры паведамлення"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Паглядзець вяшчанне"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Прагледзець звесткі"</string>
     <string name="menu_delete" msgid="128380070910799366">"Выдаліць вяшчанне"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Iнфармацыя пра абвестку"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Выдаліць гэту трансляцыю?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Выдаліць усе атрыманыя паведамленні трансляцыi?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Выдаліць"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Паказаць надзвычайныя бюлетэні эвакуацыі дзяцей (аранжавая ступень пагрозы)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Паказаць тэставыя перадачы CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Паказаць тэставыя перадачы для камерцыйнай мабільнай сістэмы абвяшчэння"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Вібрацыя"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Вібрацыя падчас атрымання абвесткi"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Настройкі для Бразіліі"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Паказаць вяшчанне канала 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Канал 50 выкарыстоўваецца ў Бразіліі для абнаўлення інфармацыі вобласці"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Параметры распрацоўшчыка"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Катэгорыя:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Катэгорыя абвесткi:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Геафізічная небяспека"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Метэаралагічная небяспека"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Бяспека"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Інфраструктура"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Хімічная/біялагічная/ядзерная/выбуховая небяспека"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Іншыя небяспекі"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Тып рэагавання:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Хавацца"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Тып рэагавання:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Прытулак"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Эвакуіраваць"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Рыхтавацца"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Выканаць працэс"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Маніторынг крыніц інфармацыі"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Пазбягаць небяспекi"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Ацаніць"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Не прымаць меры"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Выканаць"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Манітор"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Пазбегнуць"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Ацэнка"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Няма"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Цяжкасць:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Крайнія"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Сур\'ёзныя"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Тэрміновасць:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Прыняць меры неадкладна"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Прыняць меры на працягу бліжэйшай гадзіны"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Неадкладна"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Чаканае"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Надзейнасць:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Назіраныя"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Верагодныя"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Атрымана:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"Непрачытаных абвестак: <xliff:g id="COUNT">%s</xliff:g>."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Новыя абвесткі"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Паказаць дыялогавае вакно выхада пасля адлюстравання першага CMAS (акрамя прэзідэнцкага папярэджання)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Паказаць дыялогавае вакно выхада"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Зараз вы атрымліваеце надзвычайныя абвесткі. Працягваць атрымліваць іх?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Так"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Не"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 секунды"</item>
     <item msgid="5656092384277009212">"30 секунд"</item>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index e7a0289..91b071e 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Настройки"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Изтриване на излъчванията"</string>
     <string name="message_options" msgid="3178489901903589574">"Опции на съобщението"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Преглед на излъчването"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Преглед на подробностите"</string>
     <string name="menu_delete" msgid="128380070910799366">"Изтриване на излъчването"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Подробности за сигнала"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Да се изтрие ли това излъчване?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Да се изтрият ли всички получени съобщения за излъчване?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Изтриване"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Показване на спешните бюлетини за изчезнали деца (сигнал за изчезнало дете)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Показване на тест. излъчвания за ССММ"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Показване на тестови излъчвания за системата за сигнали чрез мобилните мрежи"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Вибриране"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Вибриране при сигнал"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Настройки за Бразилия"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Излъчвания на 50-и канал"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"50-и канал се използва за актуализиране на информацията за райони в Бразилия"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Опции на програмиста"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Категория:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Категория на сигнала:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Геофизични"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Метеорологични"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Безопасност"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Инфраструктура"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Химически/биологични/ядрени/взривни вещества"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Други"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Тип отговор:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Намиране на убежище"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Тип отговор:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Убежище"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Евакуация"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Подготовка"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Изпълнение на активност"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Наблюдение на източниците за информация"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Избягване на опасността"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Оценка"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Без действие"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Изпълнение"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Наблюдение"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Избягване"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Оценка"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Нищо"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Сериозност:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Извънредна заплаха"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Сериозна заплаха"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Спешност:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Незабавно действие"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Действие в рамките на следв. час"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Незабавно"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Очаквано"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Увереност:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Под наблюдение"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Вероятно"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Получено:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> непрочетени сигнала."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Нови сигнали"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Извеждане на диалогов прозорец за отказване след показването на първия сигнал чрез системата за сигнали чрез моб. мрежи (разл. от сигнала от президента)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Показване на диал. прозорец за отказване"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Понастоящем получавате спешни сигнали. Искате ли да продължите да ги получавате?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Да"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Не"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 секунди"</item>
     <item msgid="5656092384277009212">"4 секунди"</item>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index e632dcb..e240c2b 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Configuració"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Suprimeix les difusions"</string>
     <string name="message_options" msgid="3178489901903589574">"Opcions del missatge"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Visualitza la difusió"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Mostra els detalls"</string>
     <string name="menu_delete" msgid="128380070910799366">"Suprimeix la difusió"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Detalls de l\'alerta"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Vols suprimir aquesta emissió?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Vols suprimir tots els missatges d\'emissió que s\'han rebut?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Suprimeix"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Mostra els butlletins d\'emergència per segrest de nens (alerta AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Mostra emissions de prova CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Mostra les emissions de prova per al Sistema Comercial d\'Alertes Mòbils"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibra"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Vibra per a l\'alerta"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Configuració del Brasil"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Mostra difusions del canal 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"A Brasil s\'utilitza el canal 50 per actualitzar la informació sobre una zona"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Opcions del desenvolupador"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Categoria:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Categoria de l\'alerta:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofísiques"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorològiques"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Seguretat"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infraestructures"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Químiques/biològiques/nuclears/d\'explosió"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Altres"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Tipus de resposta:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Cal refugiar-se"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Tipus de resposta:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Refugia\'t"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Cal evacuar"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Cal preparar-se"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Executa l\'activitat"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Supervisa les fonts d\'informació"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Cal evitar el risc"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Avaluació"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Sense acció"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Executa"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Fes un seguiment"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Evita"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Avalua"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Cap"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Gravetat:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Extrema"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Important"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Urgència:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Cal emprendre accions ara"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Cal actuar aquesta hora"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Immediata"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Esperada"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Probabilitat:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Complerta"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Probable"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Rebut:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> alertes sense llegir."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Alertes noves"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Mostra un diàleg d\'exclusió després de la primera alerta CMAS (que no sigui alerta presidencial)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Mostra el diàleg d\'exclusió voluntària"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Actualment reps Alertes d\'emergència. Vols continuar rebent-ne?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Sí"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"No"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 segons"</item>
     <item msgid="5656092384277009212">"4 segons"</item>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 3732cf9..8b057b8 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Nastavení"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Smazat vysílání"</string>
     <string name="message_options" msgid="3178489901903589574">"Možnosti zprávy"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Zobrazit vysílání"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Zobrazit podrobnosti"</string>
     <string name="menu_delete" msgid="128380070910799366">"Smazat vysílání"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Podrobnosti upozornění"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Smazat toto vysílání?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Smazat všechny přijaté vysílané zprávy?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Smazat"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Zobrazovat mimořádné zprávy o únosech dětí (upozornění AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Zobrazit test vysílání CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Zobrazovat testovací vysílání systému Commercial Mobile Alert System"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibrace"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Při upozornění vibrovat"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Nastavení pro Brazílii"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Zobrazit vysílání na kanálu 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Kanál 50 se v Brazílii používá pro aktuální informace v oblasti"</string>
-    <string name="category_dev_settings_title" msgid="6194393458398329994">"Možnosti pro vývojáře"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategorie:"</string>
+    <string name="category_dev_settings_title" msgid="6194393458398329994">"Pro vývojáře"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Kategorie upozornění:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofyzikální"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorologické"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Bezpečnost"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastruktura"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Chemické/Biologické/Nukleární/Výbušnina"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Jiné"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Typ reakce:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Ukryjte se"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Typ reakce:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Ukryjte se"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evakuujte se"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Připravte se"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Proveďte předem naplánovaný postup"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Sledujte informační zdroje"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Vyhněte se nebezpečí"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Vyhodnoťte situaci"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Žádná akce"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Proveďte nacvičený postup"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Sledujte informační zdroje"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Vyhněte se nebezpečí"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Vyhodnoťte situaci"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Žádná"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Závažnost:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Extrémní"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Závažná"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Naléhavost:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Akci proveďte okamžitě."</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Akci proveďte do hodiny."</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Okamžité"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Očekávané"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Jistota:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Pozorováno"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Pravděpodobné"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Přijato:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"Nepřečtená upozornění: <xliff:g id="COUNT">%s</xliff:g>"</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Nová upozornění"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Po zobrazení první výstrahy CMAS (jiné než prezidentské výstrahy) zobrazit dialog pro odhlášení."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Zobrazit dialog pro odhlášení"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Aktuálně jste přihlášeni k odběru nouzových výstrah. Chcete nouzové výstrahy odebírat i nadále?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Ano"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Ne"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 sekundy"</item>
     <item msgid="5656092384277009212">"4 sekundy"</item>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 756d21f..5dd1bed 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Indstillinger"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Slet meddelelser"</string>
     <string name="message_options" msgid="3178489901903589574">"Valgmuligheder for beskeder"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Vis meddelelse"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Se detaljer"</string>
     <string name="menu_delete" msgid="128380070910799366">"Slet meddelelse"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Detaljer om underretning"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Vil du slette denne meddelelse?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Vil du slette alle modtagne meddelelser?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Slet"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Vis bulletiner om nødsituationer i forbindelse med børnebortførelse (advarsel om barnebortførelse)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Vis testudsendelser fra CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Vis testudsendelser for Commercial Mobile Alert System"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibration"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Vibrer ved underretning"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Indstillinger for Brasilien"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Vis meddelelser fra kanal 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"I Brasilien anvendes kanal 50 til opdateringer om området"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Indstillinger for udviklere"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategori:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Underretningskategori:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofysisk"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorologisk"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Sikkerhed"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastruktur"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Kemisk/biologisk/nuklear/eksplosiv"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Andet"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Svartype:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Tag husly"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Svartype:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Søg ly"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evakuer"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Forbered dig"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Udfør aktivitet"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Overvåg informationskilder"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Undgå fare"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Evaluer"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Ingen handling"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Udfør"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Overvåg"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Undgå"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Vurder"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Ingen"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Alvorlighed:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Ekstrem"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Alvorlig"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Hast:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Foretag handling med det samme"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Foretag handling i næste time"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Omgående"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Forventet"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Sikkerhed:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Observeret"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Sandsynlig"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Modtaget:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> ulæste advarsler."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Nye advarsler"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Vis en fravalgsdialogboks efter visningen af den første CMAS-advarsel (undtagen fra præsidenten)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Vis en fravalgsdialogboks"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Du modtager i øjeblikket nødadvarsler. Vil du gerne fortsætte med at modtage dem?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Ja"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Nej"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 sekunder"</item>
     <item msgid="5656092384277009212">"4 sekunder"</item>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 28e7af9..26ba7b4 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Einstellungen"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Broadcasts löschen"</string>
     <string name="message_options" msgid="3178489901903589574">"Nachrichtenoptionen"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Broadcast anzeigen"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Details ansehen"</string>
     <string name="menu_delete" msgid="128380070910799366">"Broadcast löschen"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Warnungsdetails"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Broadcast löschen?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Alle empfangenen Broadcast-Nachrichten löschen?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Löschen"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Notfall-Bulletins zu Kindesentführung anzeigen (Amber Alert)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"CMAS-Testsendungen anzeigen"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Testsendungen für Commercial Mobile Alert System anzeigen"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibrieren"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Bei Warnung vibrieren"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Einstellungen für Brasilien"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Kanal 50-Broadcasts zeigen"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Kanal 50 wird in Brasilien für aktuelle Gebietsinformationen verwendet."</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Entwickler"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategorie:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Warnungskategorie:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geophysik"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorologie"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Notfallsituationen"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastruktur"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Chemie/Biologie/Kernenergie/Sprengstoffe"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Sonstige"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Reaktionstyp:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Zuflucht suchen"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Reaktionstyp:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Zuflucht suchen"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evakuieren"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Vorbereiten"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Aktivität ausführen"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Informationsquellen beachten"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Gefahren vermeiden"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Bewerten"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Keine Aktion"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Durchführen"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Überwachen"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Vermeiden"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Bewerten"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Keine"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Schweregrad:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Extrem"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Schwerwiegend"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Dringlichkeit:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Sofort handeln"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Innerhalb der nächsten Stunde handeln"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Sofort"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Erwartet"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Wahrscheinlichkeit:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Beobachtet"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Wahrscheinlich"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Erhalten:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> ungelesene Warnungen"</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Neue Warnungen"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Nach Einblenden der ersten CMAS-Benachrichtigung (außer Warnungen des Präsidenten) Dialogfeld zum Deaktivieren anzeigen"</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Dialogfeld zum Deaktivieren anzeigen"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Sie erhalten derzeit Notfallbenachrichtigungen. Möchten Sie sie weiterhin erhalten?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Ja"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Nein"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 Sekunden"</item>
     <item msgid="5656092384277009212">"4 Sekunden"</item>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index fc6ebdc..0686e2b 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Ρυθμίσεις"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Διαγραφή εκπομπών"</string>
     <string name="message_options" msgid="3178489901903589574">"Επιλογές μηνυμάτων"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Προβολή εκπομπής"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Προβολή λεπτομερειών"</string>
     <string name="menu_delete" msgid="128380070910799366">"Διαγραφή εκπομπής"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Λεπτομέρειες ειδοποίησης"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Διαγραφή αυτής της μετάδοσης;"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Να διαγραφούν όλα τα ληφθέντα μηνύματα μετάδοσης;"</string>
     <string name="button_delete" msgid="4672451757925194350">"Διαγραφή"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Προβολή επειγουσών ανακοινώσεων σχετικά με απαγωγές παιδιών (AMBER alert)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Εμφάνιση δοκιμ. μεταδόσ. CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Εμφάνιση δοκιμαστικών μεταδόσεων για το σύστημα Commercial Mobile Alert System"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Δόνηση"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Δόνηση στις ειδοποιήσεις"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Ρυθμίσεις για τη Βραζιλία"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Εμφάνιση εκπομπών καναλιού 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Τo κανάλι 50 χρησιμοποιείται στη Βραζιλία για πληροφορίες ενημέρωσης της περιοχής"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Επιλογές για προγραμματιστές"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Κατηγορία:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Κατηγορία ειδοποίησης:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Γεωφυσικά φαινόμενα"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Μετεωρολογικά φαινόμενα"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Ασφάλεια"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Υποδομή"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Χημικά/Βιολογικά/Πυρηνικά/Εκρηκτικά"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Άλλα"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Τύπος απόκρισης:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Λήψη προφυλάξεων"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Τύπος απόκρισης:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Καταφύγιο"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Εκκένωση"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Προετοιμασία"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Εκτέλεση δραστηριότητας"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Παρακολούθηση πηγών πληροφοριών"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Αποφυγή κινδύνου"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Αξιολόγηση"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Καμία ενέργεια"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Εκτέλεση"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Παρακολούθηση"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Αποφυγή"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Εκτίμηση"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Καμία"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Σοβαρότητα:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Μέγιστη"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Μεγάλη"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Επείγον:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Λάβετε μέτρα αμέσως"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Λάβετε μέτρα εντός της επόμενης ώρας"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Άμεσο"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Αναμενόμενο"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Βεβαιότητα:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Υπό παρατήρηση"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Πιθανό"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Ληφθέντα:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> μη αναγνωσμένες ειδοποιήσεις."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Νέες ειδοποιήσεις"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Εμφάν.παραθ.διαλ. εξαίρεσης μετά την εμφάν.της πρώτης ειδοπ.CMAS (εκτός από Ειδοπ.προεδρικού επιπ.)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Εμφάνιση παραθύρου διαλόγου εξαίρεσης"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Αυτή τη στιγμή λαμβάνετε Ειδοποιήσεις έκτακτης ανάγκης. Θέλετε να συνεχίσετε να λαμβάνετε Ειδοποιήσεις έκτακτης ανάγκης;"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Ναι"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Όχι"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 δευτερόλεπτα"</item>
     <item msgid="5656092384277009212">"4 δευτερόλεπτα"</item>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 5952e84..614bc85 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Settings"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Delete broadcasts"</string>
     <string name="message_options" msgid="3178489901903589574">"Message options"</string>
-    <string name="menu_view" msgid="5991055455727639531">"View broadcast"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"View details"</string>
     <string name="menu_delete" msgid="128380070910799366">"Delete broadcast"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Alert details"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Delete this broadcast?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Delete all received broadcast messages?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Delete"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Display child abduction emergency bulletins (AMBER alert)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Show CMAS test broadcasts"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Display test broadcasts for Commercial Mobile Alert System"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibrate"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Vibrate on alert"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Settings for Brazil"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Show channel 50 broadcasts"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Channel 50 is used in Brazil for area update information"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Developer options"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Category:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Alert Category:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geophysical"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorological"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Safety"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastructure"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Chemical/Biological/Nuclear/Explosive"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Other"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Response type:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Take shelter"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Response Type:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Shelter"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evacuate"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Prepare"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Execute activity"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Monitor info sources"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Avoid hazard"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Evaluate"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"No action"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Execute"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Monitor"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Avoid"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Assess"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"None"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Severity:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Extreme"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Severe"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Urgency:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Take action immediately"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Take action within the next hour"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Immediate"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Expected"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Certainty:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Observed"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Likely"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Received:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> unread alerts."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"New alerts"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Show an opt-out dialogue after displaying the first CMAS alert (other than Presidential Alert)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Show opt-out dialogue"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"You are currently receiving Emergency Alerts. Would you like to continue receiving Emergency Alerts?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Yes"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"No"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 seconds"</item>
     <item msgid="5656092384277009212">"4 seconds"</item>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 24a3b16..51484a3 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Configuración"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Eliminar difusiones"</string>
     <string name="message_options" msgid="3178489901903589574">"Opciones de mensaje"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Ver difusión"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Ver detalles"</string>
     <string name="menu_delete" msgid="128380070910799366">"Eliminar mensaje de difusión"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Detalles de la alerta"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"¿Deseas eliminar esta transmisión?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"¿Deseas eliminar todos los mensajes de transmisión recibidos?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Eliminar"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Mostrar anuncios de emergencia de secuestro de menores (alerta AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Mostrar trans. de prueba CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Mostrar transmisiones de prueba del Sistema comercial de alerta móvil"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibrar"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Vibrar al recibir alerta"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Configuración para Brasil"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Mostrar las emisiones del canal 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"El canal 50 se utiliza en Brasil para obtener información de actualización del área"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Opciones del programador"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Categoría:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Categoría de alerta:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofísicas"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorológicas"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Seguridad"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infraestructura"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Químicas/biológicas/nucleares/explosivas"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Otras"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Tipo de respuesta:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Refugiarse"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Tipo de respuesta:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Refugiarse"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evacuar"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Preparar"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Ejecutar la actividad"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Controlar fuentes de información"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Evitar riesgo"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Evaluar"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Ninguna acción"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Realizar"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Controlar"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Evitar"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Evaluar"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Ninguna"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Gravedad:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Extremo"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Grave"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Urgencia:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Tomar medidas de inmediato"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Tomar medidas en la próx. hora"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Inmediata"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Prevista"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Certeza:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Observada"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Probable"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Fecha de recepción:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> alertas no leídas"</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Alertas nuevas"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Mostrar un cuadro de diálogo de desactivación después de mostrar la primera alerta CMAS (excepto Alerta Presidencial)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Mostrar cuadro de desactivación"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"En este momento, estás recibiendo alertas de emergencia. ¿Te gustaría seguir recibiéndolas?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Sí"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"No"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 segundos"</item>
     <item msgid="5656092384277009212">"4 segundos"</item>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index ecf353f..eb5986c 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Ajustes"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Eliminar emisiones"</string>
     <string name="message_options" msgid="3178489901903589574">"Opciones del mensaje"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Ver emisión"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Ver detalles"</string>
     <string name="menu_delete" msgid="128380070910799366">"Eliminar emisión"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Detalles de la alerta"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"¿Eliminar este mensaje?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"¿Eliminar todos los mensajes recibidos?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Eliminar"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Mostrar anuncios de emergencia de secuestro de menores (alerta AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Mostrar emisiones de prueba del CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Mostrar emisiones de prueba del sistema comercial de alerta móvil"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibrar"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Vibrar al recibir alerta"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Ajustes para Brasil"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Mostrar emisiones de canal 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"En Brasil, se utiliza el canal 50 para obtener información actualizada sobre la zona."</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Opciones de desarrollo"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Categoría:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Categoría de la alerta:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofísicas"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorológicas"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Seguridad"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infraestructuras"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Químicas/biológicas/nucleares/explosivas"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Otras"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Tipo de respuesta:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Refugiarse"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Tipo de respuesta:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Refugiarse"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evacuar"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Preparar"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Ejecutar actividad"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Controlar fuentes de información"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Evitar riesgo"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Evaluar"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Ninguna acción"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Ejecutar"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Controlar"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Evitar"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Evaluar"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Ninguna"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Gravedad:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Extremo"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Grave"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Urgencia:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Actuar inmediatamente"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Actuar durante la próxima hora"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Inmediata"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Prevista"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Certeza:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Analizado"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Probable"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Recibido:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> alertas no leídas"</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Nuevas alertas"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Mostrar cuadro de diálogo de desactivación tras la primera alerta CMAS (excepto Alerta Presidencial)"</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Mostrar cuadro de diálogo para desactivar"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Actualmente recibes alertas de emergencia. ¿Quieres seguir recibiéndolas?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Sí"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"No"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 segundos"</item>
     <item msgid="5656092384277009212">"4 segundos"</item>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index d0e4e75..248886a 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Seaded"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Kustuta saated"</string>
     <string name="message_options" msgid="3178489901903589574">"Sõnumite valikud"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Vaadake saadet"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Kuva üksikasjad"</string>
     <string name="menu_delete" msgid="128380070910799366">"Kustuta saade"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Märguande üksikasjad"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Kas kustutada see saade?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Kas kustutada kõik saabunud saate sõnumid?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Kustuta"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Lapseröövi hädateadete (AMBER-häire) kuvamine"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Kuva CMAS-i katseteavitusi"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Commercial Mobile Alert Systemi katseteavituste kuvamine"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibreerimine"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Märguandel vibreeri"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Brasiilia seaded"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"50. kanali saadete kuvamine"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"50. kanalit kasutatakse Brasiilias piirkonnaandmete värskenduste edastamiseks"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Arendaja valikud"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategooria:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Märguandekategooria:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofüüsika"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteoroloogia"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Ohutus"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Taristu"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Keemiline/bioloogiline/tuumakatastroof/plahvatus"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Muud"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Reageerimise tüüp:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Varjuge"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Reageerimise tüüp:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Varjupaik"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evakueeruge"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Valmistuge"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Tegutsege"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Jälgige teabeallikaid"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Vältige ohtu"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Hinnake"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Toiming puudub"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Täida"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Jälgi"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Väldi"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Hinda"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Puudub"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Tõsidus:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Ekstreemne"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Ränk"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Kiireloomulisus:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Tegutsege kohe"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Tegutsege lähema tunni jooksul"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Kohe"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Oodatud"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Kindlus:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Täheldatud"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Tõenäoline"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Vastu võetud:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> lugemata häiret."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Uued häired"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Näita loobumise dialoogi pärast esimese CMAS-märguande kuvamist (v.a presidendi märguanne)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Näita loobumise dialoogi"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Praegu on hädaolukorra märguannete saamine kasutusel. Kas soovite hädaolukorra märguandeid jätkuvalt saada?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Jah"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Ei"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 sekundit"</item>
     <item msgid="5656092384277009212">"4 sekundit"</item>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 2e9bf0c..a9ab5a6 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -16,15 +16,16 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_label" msgid="7559008249836700599">"پخش های سلولی"</string>
+    <string name="app_label" msgid="7559008249836700599">"پخش‌های سلولی"</string>
     <string name="sms_cb_settings" msgid="971917159442705371">"تنظیمات پخش سلولی"</string>
     <string name="button_dismiss" msgid="1234221657930516287">"تأیید"</string>
     <string name="no_cell_broadcasts" msgid="5409324337492758562">"در منطقه شما هشدارهای فعال وجود ندارد. شما می‌توانید تنظیمات هشدار را با استفاده از گزینه منوی تنظیمات تغییر دهید."</string>
     <string name="menu_preferences" msgid="3596514894131599202">"تنظیمات"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"حذف پخش ها"</string>
     <string name="message_options" msgid="3178489901903589574">"گزینه‌های پیام"</string>
-    <string name="menu_view" msgid="5991055455727639531">"مشاهده پخش"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"مشاهده جزئيات"</string>
     <string name="menu_delete" msgid="128380070910799366">"حذف پخش"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"جزئیات هشدار"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"این پخش حذف شود؟"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"همه پیام‌های پخش دریافتی حذف شود؟"</string>
     <string name="button_delete" msgid="4672451757925194350">"حذف"</string>
@@ -45,13 +46,13 @@
     <string name="cb_other_message_identifiers" msgid="7083176204482365281">"پخش سلولی"</string>
     <string name="emergency_alert_settings_title" msgid="5427868392642771940">"تنظیمات هشدار اضطراری"</string>
     <string name="enable_emergency_alerts_title" msgid="1411195469162410084">"روشن کردن اعلان‌ها"</string>
-    <string name="enable_emergency_alerts_summary" msgid="5932655529367149358">"نمایش پخش های هشدار اضطراری"</string>
+    <string name="enable_emergency_alerts_summary" msgid="5932655529367149358">"نمایش پخش‌های هشدار اضطراری"</string>
     <string name="alert_sound_duration_title" msgid="4712853569849108005">"هشدار مدت زمان صدا"</string>
     <string name="enable_alert_speech_title" msgid="8052104771053526941">"گفتن پیام هشدار"</string>
-    <string name="enable_alert_speech_summary" msgid="356086178962268831">"برای گفتن پیام های هشدار اضطراری از متن به گفتار استفاده کنید"</string>
+    <string name="enable_alert_speech_summary" msgid="356086178962268831">"برای گفتن پیام‌های هشدار اضطراری از متن به گفتار استفاده کنید"</string>
     <string name="category_etws_settings_title" msgid="4072774251965938576">"تنظیمات ETWS"</string>
     <string name="enable_etws_test_alerts_title" msgid="2569886288897109169">"نمایش پخش‌های آزمایشی ETWS"</string>
-    <string name="enable_etws_test_alerts_summary" msgid="7988690174166347072">"نمایش پخش های آزمایشی برای سیستم هشدار دهنده سونامی زلزله"</string>
+    <string name="enable_etws_test_alerts_summary" msgid="7988690174166347072">"نمایش پخش‌های آزمایشی برای سیستم هشدار دهنده سونامی زلزله"</string>
     <string name="enable_cmas_extreme_threat_alerts_title" msgid="215650211797464620">"نمایش تهدیدات بسیار جدی"</string>
     <string name="enable_cmas_extreme_threat_alerts_summary" msgid="2493139961243300290">"نمایش هشدارها برای تهدیدهای بسیار جدی جانی و مالی"</string>
     <string name="enable_cmas_severe_threat_alerts_title" msgid="8008941231371565775">"نمایش تهدیدات جدی"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"نمایش بولتن‌های اضطراری ربوده شدن کودک (هشدار AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"نمایش پخش‌های آزمایشی CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"نمایش پخش‌های آزمایشی برای سیستم هشدار تجاری سیار"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"لرزش"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"هشدار لرزش فعال"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"تنظیمات برای برزیل"</string>
-    <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"نمایش پخش های کانال 50"</string>
-    <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"کانال 50 در برزیل برای اطلاعات به روز رسانی منطقه استفاده می شود"</string>
-    <string name="category_dev_settings_title" msgid="6194393458398329994">"گزینه‌های برنامه‌نویس"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"دسته:"</string>
+    <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"نمایش پخش‌های کانال 50"</string>
+    <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"کانال 50 در برزیل برای اطلاعات به‌روزرسانی منطقه استفاده می‌شود"</string>
+    <string name="category_dev_settings_title" msgid="6194393458398329994">"گزینه‌های برنامه‌نویسان"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"دسته هشدار:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"ژئوفیزیکی"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"هواشناسی"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"ایمنی"</string>
@@ -77,31 +80,37 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"زیرساخت"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"شیمیایی/بیولوژیکی/هسته‌ای/انفجاری"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"موارد دیگر"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"نوع واکنش:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"پناه گرفتن"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"نوع پاسخ:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"پناهگاه"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"تخلیه"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"آماده شدن"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"اجرای فعالیت"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"نظارت بر منابع اطلاعاتی"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"اجتناب از خطر"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"ارزیابی"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"اقدامی لازم نیست"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"اجرا"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"نظارت"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"اجتناب"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"ارزیابی"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"هیچکدام"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"شدت:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"خیلی شدید"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"شدید"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"فوریت:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"اقدام فوری"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"اقدام طی ساعت آینده"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"فوری"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"مورد انتظار"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"قطعیت:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"مشاهده شده"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"احتمالا"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"دریافت:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> هشدار خوانده نشده."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"هشدارهای جدید"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"پس از نمایش اولین هشدار CMAS (به جز هشدار رياست جمهوری) یک کادر گفتگو نمایش داده شود که امکان انصراف از دریافت هشدارهای بعدی را بدهد."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"نمایش گفتگوی انصراف"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"شما در حال حاضر هشدارهای اضطراری را دریافت می‌کنید. آیا می‌خواهید همچنان هشدارهای اضطراری دریافت کنید؟"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"بله"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"خیر"</string>
   <string-array name="alert_sound_duration_entries">
-    <item msgid="5353482200312892037">"2 ثانیه"</item>
-    <item msgid="5656092384277009212">"4 ثانیه"</item>
-    <item msgid="253564899252909788">"6 ثانیه"</item>
-    <item msgid="7514102744524534421">"8 ثانیه"</item>
-    <item msgid="6062562309271376642">"10 ثانیه"</item>
+    <item msgid="5353482200312892037">"۲ ثانیه"</item>
+    <item msgid="5656092384277009212">"۴ ثانیه"</item>
+    <item msgid="253564899252909788">"۶ ثانیه"</item>
+    <item msgid="7514102744524534421">"۸ ثانیه"</item>
+    <item msgid="6062562309271376642">"۱۰ ثانیه"</item>
   </string-array>
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 6de44ba..c2882e7 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Asetukset"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Poista lähetyksiä"</string>
     <string name="message_options" msgid="3178489901903589574">"Viestiasetukset"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Näytä lähetys"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Näytä tiedot"</string>
     <string name="menu_delete" msgid="128380070910799366">"Poista lähetys"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Ilmoituksen tiedot"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Poistetaanko tämä lähetys?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Poista kaikki vastaanotetut lähetysviestit?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Poista"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Näytä lapsikaappauksien hätätiedotteet"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Näytä CMAS-testilähetykset"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Näytä Commercial Mobile Alert Systemin testilähetykset"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Värinä"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Käytä värinää ilmoituksesta"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Asetukset, Brasilia"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Näytä kanavan 50 lähetykset"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Kanavaa 50 käytetään Brasiliassa alueellisiin tietojen päivityksiin"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Kehittäjävaihtoehdot"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Luokka:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Ilmoitusluokka:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofysikaalinen"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorologinen"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Turvallisuus"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastruktuuri"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Kemiallinen/biologinen/radioaktiivinen/räjähtävä"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Muu"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Vasteen tyyppi:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Suojaudu"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Vasteen tyyppi:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Suojaudu"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evakuoi"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Valmistaudu"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Suorita toiminto"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Valvo tietolähteitä"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Vältä vaaraa"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Arvioi"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Ei toimenpiteitä"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Suorita"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Tarkkaile"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Vältä"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Arvioi"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Ei mitään"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Vakavuus:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Äärimmäinen"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Vakava"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Kiireellisyys:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Toimi heti"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Toimi seur. tunnin kuluessa"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Välitön"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Odotettu"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Varmuus:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Havaittu"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Todennäköinen"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Vastaanotettu:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> lukematonta hälytystä"</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Uusia hälytyksiä"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Näytä kieltäytymisikkuna ensimmäisen CMAS-ilmoituksen jälkeen (muun kuin presidentin ilmoituksen)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Näytä kieltäytymisikkuna"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Sinulle lähetetään tällä hetkellä hätäilmoituksia. Haluatko jatkaa hätäilmoitusten vastaanottamista?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Kyllä"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Ei"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 sekuntia"</item>
     <item msgid="5656092384277009212">"4 sekuntia"</item>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index f56a957..83cc225 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Paramètres"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Supprimer les diffusions"</string>
     <string name="message_options" msgid="3178489901903589574">"Options relatives aux messages"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Afficher la diffusion"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Afficher les détails"</string>
     <string name="menu_delete" msgid="128380070910799366">"Supprimer la diffusion"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Détails de l\'alerte"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Supprimer cette diffusion ?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Supprimer tous les messages de diffusion reçus ?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Supprimer"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Afficher les bulletins d\'urgence relatifs aux enlèvements d\'enfants (Alerte Enlèvement)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Afficher diffusions test CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Afficher les diffusions test pour le CMAS (système d\'alerte pour mobile commercial)"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibreur"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Vibreur en cas d\'alerte"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Paramètres pour le Brésil"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Afficher diffusions chaîne 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Au Brésil, les dernières informations locales sont diffusées sur la chaîne 50."</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Options pour les développeurs"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Catégorie :"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Catégorie d\'alerte :"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Géophysique"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Météorologie"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Sécurité"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastructures"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Chimique/Biologique/Nucléaire/Explosif"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Autre"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Type de réponse :"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"S\'abriter"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Type de réponse :"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Refuge"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Évacuer"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Se tenir prêt"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Exécuter l\'activité"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Surveiller les sources d\'information"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Éviter les risques"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Évaluer"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Aucune action"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Exécuter"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Surveiller"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Éviter"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Évaluer"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Aucune"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Gravité :"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Extrême"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Importante"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Urgence :"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Prendre des mesures immédiates"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Prendre des mesures dans l\'heure"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Immédiat"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Attendu"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Certitude :"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Observé"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Probable"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Reçu :"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> alertes non lues"</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Nouvelles alertes"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Afficher boîte de dialogue de désactivation après première alerte CMAS (sauf alerte présidentielle)"</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Afficher boîte dialogue de désactivation"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Vous recevez actuellement les alertes d\'urgence. Voulez-vous continuer à les recevoir ?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Oui"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Non"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 secondes"</item>
     <item msgid="5656092384277009212">"4 secondes"</item>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 2e5fa42..158b906 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"सेटिंग"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"प्रसारण हटाएं"</string>
     <string name="message_options" msgid="3178489901903589574">"संदेश विकल्‍प"</string>
-    <string name="menu_view" msgid="5991055455727639531">"प्रसारण देखें"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"विवरण देखें"</string>
     <string name="menu_delete" msgid="128380070910799366">"प्रसारण हटाएं"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"अलर्ट विवरण"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"यह प्रसारण हटाएं?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"प्राप्त हुए सभी प्रसारण संदेश हटाएं?"</string>
     <string name="button_delete" msgid="4672451757925194350">"हटाएं"</string>
@@ -45,26 +46,28 @@
     <string name="cb_other_message_identifiers" msgid="7083176204482365281">"सेल प्रसारण"</string>
     <string name="emergency_alert_settings_title" msgid="5427868392642771940">"आपातकालीन अलर्ट सेटिंग"</string>
     <string name="enable_emergency_alerts_title" msgid="1411195469162410084">"सूचनाएं चालू करें"</string>
-    <string name="enable_emergency_alerts_summary" msgid="5932655529367149358">"आपातकालीन अलर्ट प्रसारण प्रदर्शित करें"</string>
+    <string name="enable_emergency_alerts_summary" msgid="5932655529367149358">"आपातकालीन अलर्ट प्रसारण दिखाएं"</string>
     <string name="alert_sound_duration_title" msgid="4712853569849108005">"अलर्ट ध्‍वनि अवधि"</string>
     <string name="enable_alert_speech_title" msgid="8052104771053526941">"अलर्ट संदेश बोलें"</string>
     <string name="enable_alert_speech_summary" msgid="356086178962268831">"आपातकालीन अलर्ट संदेश बोलने के लिए पाठ-से-वाक् का उपयोग करें"</string>
     <string name="category_etws_settings_title" msgid="4072774251965938576">"ETWS सेटिंग"</string>
     <string name="enable_etws_test_alerts_title" msgid="2569886288897109169">"ETWS परीक्षण प्रसारण दिखाएं"</string>
-    <string name="enable_etws_test_alerts_summary" msgid="7988690174166347072">"भूकंप सुनामी चेतावनी सिस्‍टम के लिए परीक्षण प्रसारण प्रदर्शित करें"</string>
+    <string name="enable_etws_test_alerts_summary" msgid="7988690174166347072">"भूकंप सुनामी चेतावनी सिस्‍टम के लिए परीक्षण प्रसारण दिखाएं"</string>
     <string name="enable_cmas_extreme_threat_alerts_title" msgid="215650211797464620">"अत्यधिक खतरे दिखाएं"</string>
-    <string name="enable_cmas_extreme_threat_alerts_summary" msgid="2493139961243300290">"जीवन और संपत्ति के अत्यधिक खतरों के लिए अलर्ट प्रदर्शित करें"</string>
+    <string name="enable_cmas_extreme_threat_alerts_summary" msgid="2493139961243300290">"जीवन और संपत्ति के अत्यधिक खतरों के लिए अलर्ट दिखाएं"</string>
     <string name="enable_cmas_severe_threat_alerts_title" msgid="8008941231371565775">"गंभीर खतरे दिखाएं"</string>
-    <string name="enable_cmas_severe_threat_alerts_summary" msgid="4089299793459943222">"जीवन और संपत्ति के गंभीर खतरों के लिए अलर्ट प्रदर्शित करें"</string>
+    <string name="enable_cmas_severe_threat_alerts_summary" msgid="4089299793459943222">"जीवन और संपत्ति के गंभीर खतरों के लिए अलर्ट दिखाएं"</string>
     <string name="enable_cmas_amber_alerts_title" msgid="997138378272381777">"AMBER अलर्ट दिखाएं"</string>
-    <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"बच्‍चे के अपहरण की आपातकालीन बुलेटिन प्रदर्शित करें (AMBER अलर्ट)"</string>
+    <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"बच्‍चे के अपहरण की आपातकालीन बुलेटिन दिखाएं (AMBER अलर्ट)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"CMAS परीक्षण प्रसारण दिखाएं"</string>
-    <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"व्यावसायिक मोबाइल अलर्ट सिस्‍टम के लिए परीक्षण प्रसारण प्रदर्शित करें"</string>
+    <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"व्यावसायिक मोबाइल अलर्ट सिस्‍टम के लिए परीक्षण प्रसारण दिखाएं"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"कंपन"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"अलर्ट पर कंपन"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"ब्राज़ील के लिए सेटिंग"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"चैनल 50 प्रसारण दिखाएं"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"ब्राज़ील में चैनल 50 को क्षेत्र अपडेट जानकारी के लिए उपयोग किया जाता है"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"डेवलपर विकल्प"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"श्रेणी:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"अलर्ट श्रेणी:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"भूभौतिकीय"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"मौसम संबंधी"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"रक्षा"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"अधोसंरचना"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"रासायनिक/जैविक/परमाण्विक/विस्फोटक"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"अन्य"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"प्रतिक्रिया का प्रकार:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"आश्रय लें"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"प्रतिक्रिया का प्रकार:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"आश्रय लें"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"खाली करें"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"तैयारी करें"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"गतिविधि निष्‍पादित करें"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"जानकारी स्रोतों पर नज़र रखें"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"जोखिम से बचें"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"मूल्यांकन करें"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"कोई कार्रवाई नहीं"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"निष्‍पादित करें"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"निगरानी करें"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"बचें"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"मूल्यांकन करें"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"कोई नहीं"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"गंभीरता:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"अत्यधिक"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"गंभीर"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"अत्यावश्यकता:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"तुरंत कार्रवाई करें"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"अगले एक घंटे में कार्रवाई करें"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"तुरंत"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"अपेक्षित"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"निश्चितता:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"अवलोकन किया गया"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"संभावना"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"प्राप्त:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> बिना पढ़े अलर्ट."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"नए अलर्ट"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"पहला CMAS अलर्ट (प्रेसिडेंशियल अलर्ट के अलावा) दिखाने के बाद ऑप्ट-आउट संवाद दिखाएं."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"ऑप्ट-आउट संवाद दिखाएं"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"आपको वर्तमान में आपातकालीन अलर्ट प्राप्त हो रहे हैं. क्या आप आगे भी आपातकालीन अलर्ट प्राप्त करना चाहते हैं?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"हां"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"नहीं"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 सेकंड"</item>
     <item msgid="5656092384277009212">"4 सेकंड"</item>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 75f99ad..79303a7 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Postavke"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Izbriši emitiranja"</string>
     <string name="message_options" msgid="3178489901903589574">"Opcije poruka"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Pregled emitiranja"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Prikaz pojedinosti"</string>
     <string name="menu_delete" msgid="128380070910799366">"Brisanje emitiranja"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Pojedinosti upozorenja"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Izbrisati ovo emitiranje?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Izbrisati sve emitirane primljene poruke?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Izbriši"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Prikaz hitnih obavijesti o otmicama djece (upozorenje AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Prikaz CMAS-ovih probnih emitiranja"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Prikaz probnih emitiranja komercijalnog sustava mobilnog upozoravanja"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibracija"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Vibracija za upozorenje"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Postavke za Brazil"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Prikaži emitiranja kanala 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Kanal 50 upotrebljava se u Brazilu za područne informacije"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Opcije za razvojne programere"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategorija:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Kategorija upozorenja:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofizičko"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorološko"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Javna sigurnost"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastruktura"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Kemijsko/biološko/nuklearno/eksplozivno"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Ostalo"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Vrsta reakcije:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Idite u sklonište"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Vrsta reakcije:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Sklonište"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evakuirajte se"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Pripremite se"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Izvršite aktivnost"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Pratite izvore informacija"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Izbjegavajte opasnost"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Procijenite"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Nema radnje"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Pokretanje"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Nadzor"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Izbjegavanje"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Procjena"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Ništa"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Ozbiljnost:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"ekstremno"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"ozbiljno"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Hitnost:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Odmah poduzmite mjere"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Reagirajte u roku od 1 sata"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Odmah"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Očekivano"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Vjerojatnost:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Uočeno"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Vjerojatno"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Primljeno:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"Nepročitane obavijesti: <xliff:g id="COUNT">%s</xliff:g>."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Nova upozorenja"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Prikaži dijaloški okvir za isključivanje nakon prikazivanja prvog upozorenja CMAS-a (osim predsjedničkog)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Prikaži dijaloški okvir za isključivanje"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Trenutačno primate Hitna upozorenja. Želite li ih primati i dalje?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Da"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Ne"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 sekunde"</item>
     <item msgid="5656092384277009212">"4 sekunde"</item>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 53e4ead..01ad00a 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Beállítások"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Adások törlése"</string>
     <string name="message_options" msgid="3178489901903589574">"Üzenetbeállítások"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Adás megtekintése"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Részletek megtekintése"</string>
     <string name="menu_delete" msgid="128380070910799366">"Adás törlése"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Értesítés részletei"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Törli ezt a közvetítést?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Törli az összes beérkező közvetítési üzenetet?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Törlés"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Gyermekrablási vészhelyzetek közleményének megjelenítése (AMBER jelzés)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"CMAS kísérleti adásának megj."</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"A Commercial Mobile Alert System (CMAS) kísérleti adásának megjelenítése"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Rezgés"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Rezgés értesítéskor"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Beállítások Brazília esetén"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"50-es csatorna üzenetei"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Az 50-es csatornát Brazíliában a területalapú frissítési információkhoz használják"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Fejlesztői beállítások"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategória:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Értesítési kategória:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofizika"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorológia"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Biztonság"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastruktúra"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Vegyi/Biológiai/Nukleáris/Robbanásveszélyes"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Egyéb"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Válasz típusa:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Menedék keresése"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Válasz típusa:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Menedék"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Kiürítés"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Készülődés"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Tevékenység végrehajtása"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Információforrások megfigyelése"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Veszélyek elkerülése"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Értékelés"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Semmit sem kell tenni"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Végrehajtás"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Megfigyelés"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Elkerülés"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Felmérés"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Egyik sem"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Súlyosság:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Extrém"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Súlyos"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Sürgősség:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Azonnali cselekvés szükséges."</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Cselekedjen egy órán belül"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Azonnali"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Várt"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Bizonyosság:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Megfigyelt"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Valószínű"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Kézbesítve:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> olvasatlan értesítés."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Új értesítések"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Leiratkozási párbeszédpanel megjelenítése az első CMAS-értesítő után (kivéve az elnöki riasztások)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Leiratkozási párbeszédpanel mutatása"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Ön jelenleg kap Vészriasztásokat. Szeretné továbbra is kapni őket?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Igen"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Nem"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 másodperc"</item>
     <item msgid="5656092384277009212">"4 másodperc"</item>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 058b6e3..536959b 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Setelan"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Hapus siaran"</string>
     <string name="message_options" msgid="3178489901903589574">"Opsi pesan"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Lihat siaran"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Tampilkan detail"</string>
     <string name="menu_delete" msgid="128380070910799366">"Hapus siaran"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Detail lansiran"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Hapus siaran ini?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Hapus semua pesan siaran yang diterima?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Hapus"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Tampilkan buletin keadaan darurat penculikan anak (peringatan AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Tampilkan tes siaran CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Tampilkan tes siaran untuk Sistem Peringatan Seluler Komersial"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Getar"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Getar saat lansiran diterima"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Setelan untuk Brasil"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Tampilkan siaran channel 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Channel 50 digunakan di Brasil untuk info pembaruan area"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Opsi pengembang"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategori:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Kategori Lansiran:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofisika"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorologi"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Keselamatan"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastruktur"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Kimia/Biologi/Nuklir/Bahan Peledak"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Lainnya"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Jenis respons:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Berlindung"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Jenis Tanggapan:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Berlindung"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evakuasi"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Persiapkan"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Laksanakan aktivitas"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Pantau sumber info"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Hindari bahaya"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Evaluasi"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Tidak ada tindakan"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Menjalankan"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Memantau"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Menghindari"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Menilai"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Tidak ada"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Keparahan:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Ekstrem"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Parah"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Kegawatan:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Segera ambil tindakan"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Lakukan tindakan dalam satu jam berikutnya"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Segera"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Diharapkan"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Kepastian:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Diamati"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Kemungkinan"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Diterima:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> peringatan belum dibaca."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Peringatan baru"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Tunjukkan dialog penyisihan setelah lansiran pertama CMAS tampil (selain Lansiran Presidensial)"</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Tunjukkan dialog penyisihan"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Saat ini Anda menerima Lansiran Darurat. Apakah Anda ingin terus menerima Lansiran Darurat?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Ya"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Tidak"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 detik"</item>
     <item msgid="5656092384277009212">"4 detik"</item>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 4e3939c..7898539 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Impostazioni"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Elimina trasmissioni"</string>
     <string name="message_options" msgid="3178489901903589574">"Opzioni messaggio"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Visualizza trasmissione"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Visualizza dettagli"</string>
     <string name="menu_delete" msgid="128380070910799366">"Elimina trasmissione"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Dettagli avviso"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Eliminare questo broadcast?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Eliminare tutti i messaggi broadcast ricevuti?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Elimina"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Mostra bollettini di emergenza rapimento bambini (AMBER Alert)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Mostra trasmissioni di prova CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Mostra trasmissioni di prova relative a Commercial Mobile Alert System"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibrazione"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Vibrazione alla ricezione di avvisi"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Impostazioni per il Brasile"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Mostra trasmissioni canale 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Il canale 50 è utilizzato in Brasile per aggiornamenti locali"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Opzioni sviluppatore"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Categoria:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Categoria avviso:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofisici"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorologici"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Sicurezza"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastruttura"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Chimici/Biologici/Nucleari/Esplosivi"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Altro"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Tipo di risposta:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Mettiti al riparo"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Tipo di risposta:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Mettiti al riparo"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evacuazione"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Preparati"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Esegui attività"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Monitora fonti di informazione"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Evita il pericolo"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Valuta"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Nessuna azione"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Esegui"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Monitora"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Evita"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Valuta"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Nessuno"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Gravità:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Estrema"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Grave"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Urgenza:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Intervieni immediatamente"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Agisci entro la prossima ora"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Immediata"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Previsto"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Certezza:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"In osservazione"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Probabile"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Ricevuto:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> avvisi non letti."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Nuovi avvisi"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Mostra finestra di disattivazione dopo il primo avviso CMAS (diverso da un avviso presidenziale)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Mostra finestra di disattivazione"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Stai ricevendo avvisi di emergenza. Vuoi continuare a ricevere questi avvisi?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Sì"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"No"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 secondi"</item>
     <item msgid="5656092384277009212">"4 secondi"</item>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index fc59e43..00614a8 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"הגדרות"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"מחק את השידורים"</string>
     <string name="message_options" msgid="3178489901903589574">"אפשרויות הודעה"</string>
-    <string name="menu_view" msgid="5991055455727639531">"צפה בשידור"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"הצג פרטים"</string>
     <string name="menu_delete" msgid="128380070910799366">"מחק שידור"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"פרטי התראה"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"למחוק שידור זה?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"למחוק את כל הודעות השידור שהתקבלו?"</string>
     <string name="button_delete" msgid="4672451757925194350">"מחק"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"הצג מבזקי חירום על חטיפת ילדים (התראת AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"הצג שידורי בדיקה של CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"הצג שידורי בדיקה של Commercial Mobile Alert System"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"רטט"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"רטט בהתראה"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"הגדרות עבור ברזיל"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"הצג את שידורי ערוץ 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"ערוץ 50 משמש בברזיל למסירת עדכונים אזוריים"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"אפשרויות מפתח"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"קטגוריה:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"קטגוריית התראה:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"גיאופיזית"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"מטאורולוגית"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"בטיחות"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"תשתיות"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"כימית/ביולוגית/גרעינית/חומר נפץ"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"אחרת"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"סוג תגובה:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"מצא מחסה"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"סוג תגובה:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"מציאת מחסה"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"פנה"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"התכונן"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"בצע פעילות"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"עקוב אחר מקורות מידע"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"הימנע מסכנה"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"הערך"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"ללא פעולה"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"ביצוע"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"מעקב"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"הימנעות"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"הערכה"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"ללא"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"חומרה:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"קיצונית"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"חמורה"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"דחיפות:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"פעל מייד"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"פעל בשעה הקרובה"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"מיידי"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"צפוי"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"ודאות:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"נצפתה"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"סבירה"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"התקבלה:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> התראות שלא נקראו."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"התראות חדשות"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"הצג תיבת דו שיח לביטול הסכמה לאחר הצגת התראת CMAS הראשונה (מלבד התראה נשיאותית)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"הצג תיבת דו שיח לביטול הסכמה"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"נכון לעכשיו אתה מקבל התראות חירום. האם ברצונך להמשיך לקבל התראות חירום?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"כן"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"לא"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 שניות"</item>
     <item msgid="5656092384277009212">"4 שניות"</item>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 043764d..30cd444 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"設定"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"ブロードキャストを削除"</string>
     <string name="message_options" msgid="3178489901903589574">"メッセージオプション"</string>
-    <string name="menu_view" msgid="5991055455727639531">"ブロードキャストを表示"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"詳細を表示"</string>
     <string name="menu_delete" msgid="128380070910799366">"ブロードキャストを削除"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"警報の詳細"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"このブロードキャストを削除しますか?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"受信したブロードキャストメッセージをすべて削除しますか?"</string>
     <string name="button_delete" msgid="4672451757925194350">"削除"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"児童誘拐警報の速報(アンバーアラート)を表示する"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"CMASのテスト放送を表示する"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Commercial Mobile Alert Systemのテスト放送を表示する"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"バイブレーション"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"警報時にバイブレーション"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"ブラジルでの設定"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"チャンネル50の放送を表示する"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"ブラジルの地域最新情報にチャンネル50を使用する"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"デベロッパー向けオプション"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"カテゴリ:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"警報のカテゴリ:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"地球物理"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"気象"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"公共の安全"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"インフラ"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"化学/生物/核/爆発物"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"その他"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"対応の種類:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"避難"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"対応の種類:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"避難"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"退避"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"準備"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"行動計画を決行"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"情報源を監視"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"危険を回避"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"検討"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"対応なし"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"決行"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"監視"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"回避"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"検討"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"対応なし"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"重要度:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"最高"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"高"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"緊急度:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"直ちに対応"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"1時間以内に対応"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"即時"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"予想"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"確実性:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"確認済み"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"可能性が高い"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"受信:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g>件の警報が未読です。"</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"新しい警報"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"CMASの警報(国家レベルの警報以外)を初めて表示した後に受信停止選択ダイアログを表示"</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"受信停止選択ダイアログを表示"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"現在、緊急警報を受信するように設定されています。今後も緊急警報を受信しますか?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"はい"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"いいえ"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2秒"</item>
     <item msgid="5656092384277009212">"4秒"</item>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 70fed12..7f25465 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"설정"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"브로드캐스트 삭제"</string>
     <string name="message_options" msgid="3178489901903589574">"메시지 옵션"</string>
-    <string name="menu_view" msgid="5991055455727639531">"브로드캐스트 표시"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"세부정보 보기"</string>
     <string name="menu_delete" msgid="128380070910799366">"브로드캐스트 삭제"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"알리미 세부정보"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"브로드캐스트를 삭제하시겠습니까?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"수신된 모든 브로드캐스트 메시지를 삭제하시겠습니까?"</string>
     <string name="button_delete" msgid="4672451757925194350">"삭제"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"아동 유괴 긴급상황 공지 표시(황색 경보)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"CMAS 테스트 브로드캐스트 표시"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"모바일 경보 시스템(CMAS)에 대한 테스트 브로드캐스트 표시"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"진동"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"알리미 받을 때 진동"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"브라질에 대한 설정"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"채널 50 브로드캐스트 표시"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"지역 업데이트 정보용으로 브라질에서 사용되는 채널 50"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"개발자 옵션"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"카테고리:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"알리미 카테고리:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"지구 물리"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"기상"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"안전"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"인프라"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"화학/생물학/원자력/폭발물"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"기타"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"대응 유형:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"대피"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"대응 유형:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"대피"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"소개"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"준비"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"계획 실행"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"정보 소스 모니터링"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"위험 예방"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"평가"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"대응하지 않음"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"실행"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"모니터"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"예방"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"평가"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"없음"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"심각도:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"긴급"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"위험"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"긴급:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"즉시 실행"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"다음 1시간 이내에 실행"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"즉시"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"예상"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"확실성:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"주시"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"주의 요망"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"받은 시간:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"읽지 않은 경보 <xliff:g id="COUNT">%s</xliff:g>개"</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"새 경보"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"대통령령 경보가 아닌 첫 번째 CMAS(민간 이동통신 경보체계) 알림을 표시한 뒤에 선택 해제 대화상자를 표시합니다."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"선택 해제 대화상자 표시"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"현재 긴급 알림을 수신하고 있습니다. 긴급 알림을 계속 수신하시겠습니까?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"예"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"아니요"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2초"</item>
     <item msgid="5656092384277009212">"4초"</item>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 9a2ed60..f8aaae3 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Nustatymai"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Ištrinti transliacijas"</string>
     <string name="message_options" msgid="3178489901903589574">"Pranešimo parinktys"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Žiūrėti transliaciją"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Žiūrėti išsamią informaciją"</string>
     <string name="menu_delete" msgid="128380070910799366">"Ištrinti transliaciją"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Išsami įspėjimo informacija"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Ištrinti šią transliaciją?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Ištrinti visus gautus transliacijos pranešimus?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Ištrinti"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Pateikti vaiko pagrobimo biuletenius (AMBER įspėjimas)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Rodyti CMAS bandom. transliac."</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Pateikti bandomąsias komercinių įspėjimų mobiliesiems sistemos transliacijas"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibruoti"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Vibruoti įspėjant"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Brazilijai skirti nustatymai"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Rodyti 50 kanalo transliacijų"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Brazilijoje 50 kanalu perduodama informacija apie regionui taikomus naujinius"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Kūrėjo parinktis"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategorija:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Įspėjimo kategorija:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofizinis"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorologinis"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Saugumas"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastruktūra"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Cheminis / biologinis / atominis / sprogstamasis"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Kita"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Atsako tipas:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Rasti prieglobstį"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Atsako tipas:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Prieglobstis"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evakuoti"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Paruošti"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Vykdyti veiklą"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Stebėti informacijos šaltinius"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Išvengti pavojaus"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Įvertinti"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Nesiimti jokių veiksmų"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Vykdyti"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Stebėti"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Vengti"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Įvertinti"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Joks"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Rimtumas:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Ekstremalus"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Rimtas"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Skubumas:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Nedelsdami imkitės veiksmų"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Imkitės veiksmų per kitą val."</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Nedelsiant"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Tikėtina"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Tikrumas:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Stebima"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Tikėtina"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Gauta:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> neperskaityti (-ų) įspėjimai (-ų)"</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Nauji įspėjimai"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Rodyti atsisakymo dialogo langą pateikus pirmą CMAS įspėjimą (ne prezidento paskelbtą įspėjimą)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Rodyti atsisakymo dialogo langą"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Šiuo metu gaunate pagalbos įspėjimus. Ar norite toliau gauti pagalbos įspėjimus?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Taip"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Ne"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 sek."</item>
     <item msgid="5656092384277009212">"4 sek."</item>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 4d12af9..33bd29a 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Iestatījumi"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Dzēst apraides"</string>
     <string name="message_options" msgid="3178489901903589574">"Ziņojumu opcijas"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Skatīt apraidi"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Skatīt informāciju"</string>
     <string name="menu_delete" msgid="128380070910799366">"Dzēst apraidi"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Brīdinājuma dati"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Vai dzēst šo pārraidi?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Vai dzēst visus saņemtos apraides ziņojumus?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Dzēst"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Rādīt bērnu nolaupīšanas ārkārtas gadījumu biļetenus (AMBER brīdinājumus)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Rādīt CMAS testa apraides"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Rādīt komerciālās mobilo ierīču brīdinājumu sistēmas testa apraides"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibrācija"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Brīdinājums ar vibrāciju"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Iestatījumi attiecībā uz Brazīliju"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Rādīt 50. kanāla apraides"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"50. kanāls tiek izmantots Brazīlijā, lai iegūtu jaunāko informāciju par reģioniem."</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Izstrādātājiem paredzētās opcijas"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategorija:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Brīdinājuma kategorija:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Ģeofizikāli procesi"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteoroloģiskie apstākļi"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Drošība"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastruktūra"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Ķīmiski/bioloģiski/kodolenerģijas/sprāgstvielu draudi"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Citi"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Atbildes veids:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Patvēruma meklēšana"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Atbildes veids:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Patverties"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evakuācija"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Sagatavošanās"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Darbību izpilde"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Informācijas avotu pārraudzīšana"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Briesmu novēršana"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Novērtēt"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Nav jāveic nekādas darbības."</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Izpildīt"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Uzraudzīt"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Izvairīties"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Novērtēt"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Nekāda"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Nozīmīguma pakāpe:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Ārkārtas situācija"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Nopietna situācija"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Steidzamība:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Jārīkojas nekavējoties"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Jārīkojas nāk. stundas laikā"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Tūlītējs"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Paredzētais"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Noteiktība:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Saskaņā ar novērojumiem"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Iespējami"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Saņemts:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> nelasīts(-i) brīdinājums(-i)."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Jauni brīdinājumi"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Rādīt atteikšanās dialoglodziņu pēc pirmā CMAS brīdinājuma (kurš nav prezidenta brīdinājums)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Rādīt atteikšanās dialoglodziņu"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Pašlaik jūs saņemat ārkārtas brīdinājumus. Vai vēlaties arī turpmāk saņemt ārkārtas brīdinājumus?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Jā"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Nē"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 sekundes"</item>
     <item msgid="5656092384277009212">"4 sekundes"</item>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 19b4d75..3b0c6e5 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Tetapan"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Padam siaran"</string>
     <string name="message_options" msgid="3178489901903589574">"Pilihan mesej"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Lihat siaran"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Lihat butiran"</string>
     <string name="menu_delete" msgid="128380070910799366">"Padam siaran"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Butiran awasan"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Padam siaran ini?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Padam semua mesej siaran yang diterima?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Padam"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Paparkan buletin kecemasan penculikan kanak-kanak (amaran AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Tunjukkan siaran ujian CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Paparkan siaran ujian untuk Sistem Amaran Mudah Alih Perdagangan"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Getar"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Bergetar pada awasan"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Tetapan untuk Brazil"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Tunjukkan siaran saluran 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Saluran 50 digunakan di Brazil untuk memberi maklumat kemas kini kawasan"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Pilihan pemaju"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategori:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Kategori Awasan:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofizikal"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorologi"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Keselamatan"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastruktur"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Kimia/Biologi/Nuklear/Letupan"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Lain"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Jenis respons:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Berteduh"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Jenis Respons:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Berteduh"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Kosongkan"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Sediakan"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Laksanakan aktiviti"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Pantau sumber info"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Elak bahaya"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Menilai"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Tiada tindakan"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Laksanakan"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Pantau"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Elakkan"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Menilai"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Tiada"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Keterukan:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Melampau"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Teruk"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Kesegeraan:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Ambil tindakan segera"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Ambil tindakan dalam jam berikutnya"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Segera"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Dijangkakan"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Kepastian:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Diperhatikan"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Mungkin"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Diterima:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> amaran belum dibaca"</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Amaran baharu"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Tunjuk dialog pilih tidak ikut serta selepas paparkan awasan CMAS pertama (selain Awasan Presiden)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Tunjukkan dialog pilih tidak ikut serta"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Anda sedang menerima Awasan Kecemasan. Adakah anda ingin terus menerima Awasan Kecemasan?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Ya"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Tidak"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 saat"</item>
     <item msgid="5656092384277009212">"4 saat"</item>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index f21f3f8..4ee61b3 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Innstillinger"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Slett vanlig ETWS-kringkasting"</string>
     <string name="message_options" msgid="3178489901903589574">"Meldingsalternativer"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Se kringkasting"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Se detaljer"</string>
     <string name="menu_delete" msgid="128380070910799366">"Slett kringkasting"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Varseldetaljer"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Vil du slette denne kringkastingen?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Vil du slette alle mottatte kringkastingsmeldinger?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Slett"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Vis nødmeldinger for barnebortføring (varsler for barnebortføring)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Vis CMAS-testkringkastinger"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Vis testkringkastinger for Commercial Mobile Alert System"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibrer"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Vibrer ved varsler"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Innstillinger for Brasil"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Vis kanal 50-kringkastinger"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Kanal 50 brukes i Brasil for informasjon om områdeoppdateringer"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Utvikleralternativer"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategori:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Varselkategori:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofysisk"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorologisk"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Sikkerhet"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastruktur"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Kjemisk/biologisk/kjernefysisk/eksplosiv"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Annet"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Responstype:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Søk ly"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Responstype:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Søk ly"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evakuer"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Utfør forberedelser"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Utfør aktivitet"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Overvåk informasjonskilder"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Unngå fare"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Vurder"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Ingen handling"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Utfør"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Overvåk"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Unngå"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Vurder"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Ingen"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Alvorlighetsgrad:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Ekstrem"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Alvorlig"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Viktighetsgrad:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Iverksett tiltak umiddelbart"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Iverksett tiltak neste time"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Øyeblikkelig"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Forventet"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Sannsynlighetsgrad:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Observert"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Sannsynlig"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Mottatt:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> uleste varsler."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Nye varsler"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Vis en bortvelgingsdialog etter det første CMAS-varslet (gjelder ikke for presidentvarsler)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Vis bortvelgingsdialog"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Du mottar for øyeblikket nødvarsler. Vil du fortsette å motta disse varslene?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Ja"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Nei"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"To sekunder"</item>
     <item msgid="5656092384277009212">"Fire sekunder"</item>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index baac20f..1c55ad0 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Instellingen"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Broadcasts verwijderen"</string>
     <string name="message_options" msgid="3178489901903589574">"Berichtopties"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Broadcast weergeven"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Details weergeven"</string>
     <string name="menu_delete" msgid="128380070910799366">"Cell broadcast verwijderen"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Meldingsdetails"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Deze uitzending verwijderen?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Alle ontvangen uitzendingsberichten verwijderen?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Verwijderen"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Noodberichten over ontvoering van kinderen weergeven (AMBER-alert)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"CMAS-testberichten weergeven"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Testberichten voor CMAS (Commercial Mobile Alert System) weergeven"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Trillen"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Trillen bij melding"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Instellingen voor Brazilië"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Berichten van kanaal 50 weergeven"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Kanaal 50 wordt in Brazilië gebruikt om lokale informatie te geven bij calamiteiten"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Opties voor ontwikkelaars"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Categorie:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Meldingscategorie:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofysisch"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorologisch"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Veiligheid"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastructuur"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Chemisch/biologisch/nucleair/explosief"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Overig"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Reactietype:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Schuilen"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Reactietype:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Schuilen"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evacueren"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Voorbereiden"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Activiteit uitvoeren"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Infobronnen controleren"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Vermijd gevaren"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Evalueren"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Geen actie"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Uitvoeren"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Controleren"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Vermijden"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Beoordelen"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Geen"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Ernst:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Extreem"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Ernstig"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Urgentie:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Direct actie ondernemen"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Binnen een uur actie ondernemen"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Direct"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Verwacht"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Zekerheid:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Geobserveerd"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Waarschijnlijk"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Ontvangen:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> ongelezen waarschuwingen."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Nieuwe waarschuwingen"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Een afmeldingsvenster weergeven na de eerste CMAS-melding (geen nationale melding)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Afmeldingsvenster weergeven"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"U ontvangt momenteel noodmeldingen. Wilt u noodmeldingen blijven ontvangen?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Ja"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Nee"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 seconden"</item>
     <item msgid="5656092384277009212">"4 seconden"</item>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 1e191f4..e773446 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Ustawienia"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Usuń transmisje"</string>
     <string name="message_options" msgid="3178489901903589574">"Opcje wiadomości"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Wyświetl transmisję"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Wyświetl szczegóły"</string>
     <string name="menu_delete" msgid="128380070910799366">"Usuń transmisję"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Szczegóły alertu"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Usunąć transmisję?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Usunąć wszystkie odebrane wiadomości?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Usuń"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Wyświetlaj biuletyny o uprowadzeniu dziecka (alerty AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Pokazuj transmisje testowe CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Wyświetlaj transmisje testowe w systemie CMAS (Commercial Mobile Alert System)"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Wibracje"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Wibracje podczas alertu"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Ustawienia dotyczące Brazylii"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Pokaż transmisje na kanale 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Kanał 50 służy w Brazylii do przesyłania aktualnych informacji dotyczących danego obszaru."</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Opcje programistyczne"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategoria:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Kategoria alertu:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Zagrożenie geofizyczne"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorologiczne"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Bezpieczeństwo publiczne"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastruktura"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Zagrożenie chemiczne/biologiczne/nuklearne/wybuchowe"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Inne"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Typ reakcji:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Schroń się"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Typ reakcji:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Schroń się"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Ewakuuj się"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Przygotuj się"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Wykonaj działanie"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Monitoruj źródła informacji"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Unikaj zagrożenia"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Oceń"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Brak działania"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Wykonaj"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Monitoruj"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Unikaj"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Oceń"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Brak"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Waga:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Ekstremalna sytuacja"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Poważna sytuacja"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Pilność:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Działanie natychmiastowe"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Działanie w ciągu godziny"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Natychmiast"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Oczekiwany"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Pewność:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Zaobserwowano"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Prawdopodobne"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Odebrano:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"Nieprzeczytane alerty: <xliff:g id="COUNT">%s</xliff:g>."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Nowe alerty"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Pokaż okno rezygnacji po wyświetleniu pierwszego alertu CMAS (innego niż alert prezydencki)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Pokaż okno rezygnacji"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Obecnie otrzymujesz alerty o zagrożeniu. Czy nadal chcesz je dostawać?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Tak"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Nie"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 sekundy"</item>
     <item msgid="5656092384277009212">"4 sekundy"</item>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 1e2e267..6935eda 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Definições"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Eliminar transmissões"</string>
     <string name="message_options" msgid="3178489901903589574">"Opções da mensagem"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Ver transmissão"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Ver detalhes"</string>
     <string name="menu_delete" msgid="128380070910799366">"Eliminar transmissão"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Detalhes de alerta"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Eliminar esta difusão?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Eliminar todas as mensagens de difusão recebidas?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Eliminar"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Apresentar boletins de emergência de raptos de crianças (alerta AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Mostrar dif. de teste do CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Mostrar difusões de teste para o Sistema Comercial de Alerta de Telemóveis"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibrar"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Vibrar em alerta"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Definições para o Brasil"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Mostrar transm. do canal 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"O canal 50 é utilizado no Brasil para informações de atualização de área"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Opções de programador"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Categoria:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Categoria de Alerta:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofísico"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorológico"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Segurança"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infraestruturas"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Químico/Biológico/Nuclear/Explosivo"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Outro"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Tipo de resposta:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Aceitar abrigo"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Tipo de Resposta:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Abrigo"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evacuar"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Prepare-se"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Executar a atividade"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Acompanhar fontes de informação"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Evitar o perigo"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Avaliar"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Sem ação"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Executar"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Monitorização"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Evitar"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Avaliar"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Nenhuma"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Gravidade:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Extremo"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Grave"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Urgência:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Tomar medidas imediatamente"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Tomar medidas na próxima hora"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Imediato"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Previsto"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Certeza:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Observado"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Provável"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Recebido:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> alertas não lidos."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Novos alertas"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Mostrar caixa de diálogo de exclusão após apresentar o 1º alerta CMAS (para além do Alerta Presid.)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Mostrar caixa de diálogo de exclusão"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Atualmente, está a receber Alertas de Emergência. Pretende continuar a receber Alertas de Emergência?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Sim"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Não"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 segundos"</item>
     <item msgid="5656092384277009212">"4 segundos"</item>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 1e5ea51..8a193dd 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Configurações"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Excluir transmissões"</string>
     <string name="message_options" msgid="3178489901903589574">"Opções de mensagem"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Ver transmissão"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Ver detalhes"</string>
     <string name="menu_delete" msgid="128380070910799366">"Excluir transmissão"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Detalhes do alerta"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Excluir esta transmissão?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Excluir todas as mensagens recebidas?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Excluir"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Mostrar boletins de emergência de sequestro de crianças (alerta AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Mostrar transm. de teste CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Exibir transmissões de teste para o Sistema de alertas para celular comercial"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibrar"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Vibrar ao alertar"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Configurações para o Brasil"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Ver transmissões do canal 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"O canal 50 é usado no Brasil para informações de atualização de área"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Opções do desenvolvedor"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Categoria:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Categoria de alerta:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofísico"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorológico"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Segurança"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infraestrutura"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Químico/Biológico/Nuclear/Explosivo"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Outros"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Tipo de resposta:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Encontrar um abrigo"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Tipo de resposta:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Abrigar"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evacuar"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Preparar"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Executar atividade"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Monitorar fontes de informação"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Evitar perigo"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Avaliar"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Nenhuma ação"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Executar"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Monitorar"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Evitar"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Avaliar"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Nenhuma"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Gravidade:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Extremo"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Grave"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Urgência:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Agir imediatamente"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Agir na próxima hora"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Imediata"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Esperada"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Certeza:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Observado"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Provável"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Recebida:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> alertas não lidos."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Novos alertas"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Mostrar um diálogo de desativação após exibir o primeiro alerta CMAS (exceto presidencial)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Mostrar diálogo de desativação"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Você está recebendo alertas de emergência. Deseja continuar a receber alertas de emergência?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Sim"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Não"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"Dois segundos"</item>
     <item msgid="5656092384277009212">"Quatro segundos"</item>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index f57a219..32e7f14 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Setări"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Ştergeţi difuzările"</string>
     <string name="message_options" msgid="3178489901903589574">"Opţiuni mesaj"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Afişaţi difuzarea"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Afişaţi detaliile"</string>
     <string name="menu_delete" msgid="128380070910799366">"Ştergeţi difuzarea"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Detalii alertă"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Ştergeţi difuzarea?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Ştergeţi toate mesajele difuzate primite?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Ştergeţi"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Afişaţi buletinele privind urgenţele în cazuri de răpire de copii (alertă AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Afişaţi alerte de test CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Afişaţi alerte de test pentru Commercial Mobile Alert System"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibrare"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Vibrare la alertă"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Setări pentru Brazilia"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Afişaţi difuz. pt. canalul 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Canalul 50 este utilizat în Brazilia pentru informaţii despre actualizarea zonelor"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Opţiuni dezvoltator"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Categorie:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Categoria alertei:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofizic"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorologic"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Siguranţă"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastructură"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Chimic/Biologic/Nuclear/Exploziv"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Alta"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Tip de răspuns:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Căutaţi un refugiu"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Tipul de răspuns:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Adăpostiţi-vă într-un refugiu"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evacuaţi"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Faceţi pregătiri"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Executaţi activitatea"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Monitorizaţi sursele de informaţii"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Evitaţi pericolul"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Evaluaţi"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Nicio acţiune"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Executaţi"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Monitorizaţi"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Evitaţi"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Evaluaţi"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Niciuna"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Gravitate:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Extremă"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Gravă"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Urgenţă:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Luaţi măsuri imediat"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Luaţi măsuri în următoarea oră"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Imediat"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Aşteptat"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Certitudine:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Constatată"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Probabilă"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Primit:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> (de) alerte necitite."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Alerte noi"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Afişaţi un dialog de renunţare după afişarea primei alerte CMAS (altele decât alerta prezidenţială)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Afişaţi un dialog de renunţare"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"În prezent, primiţi alerte de urgenţă. Doriţi să primiţi în continuare alerte de urgenţă?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Da"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Nu"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 secunde"</item>
     <item msgid="5656092384277009212">"4 secunde"</item>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index aca98ba..77857a3 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Настройки"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Удалить трансляции"</string>
     <string name="message_options" msgid="3178489901903589574">"Параметры сообщения"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Просмотреть трансляцию"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Детали"</string>
     <string name="menu_delete" msgid="128380070910799366">"Удалить трансляцию"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Детали"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Удалить эту рассылку?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Удалить все сообщения рассылки?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Удалить"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Показывать сообщения о пропавших детях (оповещения AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Показывать тест. рассылки CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Показывать тестовые рассылки системы CMAS"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Вибросигнал"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Вибросигнал для оповещений"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Настройки для Бразилии"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Показать трансляции канала 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Канал 50 используется в Бразилии для аварийного оповещения"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Для разработчиков"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Категория:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Категория оповещения:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Землетрясение"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Метеорологическая угроза"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Общественная безопасность"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Неполадки инфраструктуры"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Химическая, биологическая, ядерная угроза; взрыв"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Другое"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Тип реакции:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Найти убежище"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Тип ответа:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Найти убежище"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Эвакуироваться"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Подготовиться"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Принять меры"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Отслеживать сообщения в информационных источниках"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Избежать опасности"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Оценить"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Не предпринимать никаких действий"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Выполнить"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Контролировать"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Избежать"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Оценить"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Ничего не делать"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Серьезность:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Критическая"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Высокая"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Срочность:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Принять меры немедленно"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Принять меры в течение часа"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Немедленно"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Ожидаемо"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Вероятность:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Средняя"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Высокая"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Получено:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"Непрочитанных оповещений: <xliff:g id="COUNT">%s</xliff:g>."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Новые оповещения"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Предлагать отключить уведомления экстренных служб при первом появлении"</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Предлагать отключить подсказки"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Оповещение населения включено. Сохранить текущие настройки?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Да"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Нет"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 секунды"</item>
     <item msgid="5656092384277009212">"4 секунды"</item>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 97a4e6c..537d6e5 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Nastavenia"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Odstrániť vysielania"</string>
     <string name="message_options" msgid="3178489901903589574">"Možnosti správy"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Zobraziť vysielanie"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Zobraziť podrobnosti"</string>
     <string name="menu_delete" msgid="128380070910799366">"Odstrániť vysielanie"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Podrobnosti upozornenia"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Odstrániť toto vysielanie?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Odstrániť všetky prijaté vysielané správy?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Odstrániť"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Zobrazovať mimoriadne správy o únosoch detí (upozornenie AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Zobraziť test vysielania CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Zobrazovať testovacie vysielania systému Commercial Mobile Alert System"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibrovať"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Vibrovať pri upozornení"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Nastavenia pre Brazíliu"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Zobraziť vysielanie kanála 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Kanál 50 sa v Brazílii používa pre aktuálne informácie o oblasti"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Možnosti pre vývojárov"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategória:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Kategória upozornenia:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofyzikálne"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorologické"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Bezpečnostné"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infraštruktúra"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Chemické / Biologické / Nukleárne / Výbušniny"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Iné"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Typ reakcie:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Ukryte sa"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Typ reakcie:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Ukryte sa"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Vykonajte evakuáciu"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Pripravte sa"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Vykonajte vopred naplánovaný postup"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Sledujte informačné zdroje"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Vyhnite sa nebezpečenstvu"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Vyhodnoťte situáciu"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Žiadna akcia"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Vykonajte vopred naplánovaný postup"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Sledujte informačné zdroje"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Vyhnite sa nebezpečenstvu"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Posúďte situáciu"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Žiadna akcia"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Závažnosť:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Extrémna"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Závažná"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Naliehavosť:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Akciu vykonajte ihneď"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Akciu vykonajte do hodiny."</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Okamžite"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Očakávaný rozsah"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Istota:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Pozorované"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Pravdepodobné"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Prijaté:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"Počet neprečítaných upozornení: <xliff:g id="COUNT">%s</xliff:g>."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Nové upozornenia"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Zobraziť dialóg. okno na zrušenie po zobraz. prvého upozornenia CMAS (okrem prezident. upozornenia)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Zobraziť dialógové okno na zrušenie"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Momentálne dostávate núdzové upozornenia. Chcete ich prijímať aj naďalej?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Áno"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Nie"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 sekundy"</item>
     <item msgid="5656092384277009212">"4 sekundy"</item>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 41f95b8..9d1d6ce 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Nastavitve"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Izbriši oddaje"</string>
     <string name="message_options" msgid="3178489901903589574">"Možnosti sporočila"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Ogled oddaje"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Ogled podrobnosti"</string>
     <string name="menu_delete" msgid="128380070910799366">"Izbriši oddajo"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Podrobnosti opozorila"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Želite izbrisati to oddajo?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Želite izbrisati vsa prejeta sporočila oddaje?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Izbriši"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Prikaz nujnih obvestil o ugrabitvah otrok (opozorila AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Pokaži preskus. oddaje za CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Prikaz preskusnih oddaj za komercialni mobilni sistem opozarjanja na nevarnost"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibriranje"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Vibriranje ob opozorilu"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Nastavitve za Brazilijo"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Pokaži oddaje na kanalu 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Kanal 50 se uporablja v Braziliji za najnovejše območne informacije"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Možnosti za razvijalce"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategorija:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Kategorija opozorila:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofizična"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorološka"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Varnost"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastruktura"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Kemična/biološka/jedrska/eksploziv"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Drugo"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Vrsta odziva:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Poiščite zavetišče"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Vrsta odziva:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Zavetišče"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evakuirajte"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Pripravite"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Izvedite dejavnost"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Spremljajte vire podatkov"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Izogibajte se tveganju"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Ocenite"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Brez dejanja"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Izvedba"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Spremljanje"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Izogibanje"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Ocenjevanje"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Brez"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Resnost:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Izredna"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Huda"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Nujnost:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Ukrepajte takoj"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Ukrepajte v naslednji uri"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Takoj"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Pričakovano"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Zanesljivost:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Zaznano"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Verjetno"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Prejeto:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"Št. neprebranih opozoril: <xliff:g id="COUNT">%s</xliff:g>."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Nova opozorila"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Po prikazu prvega opozorila CMAS (ki ni za predsednika) pokaži pogovorno okno za onemogočenje."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Pokaži pogovorno okno za onemogočenje"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Trenutno prejemate opozorila v sili. Ali jih želite prejemati še naprej?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Da"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Ne"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 sekundi"</item>
     <item msgid="5656092384277009212">"4 sekunde"</item>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index eae7c34..fefc179 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Подешавања"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Избриши емитовања"</string>
     <string name="message_options" msgid="3178489901903589574">"Опције порука"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Прикажи емитовање"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Прикажи детаље"</string>
     <string name="menu_delete" msgid="128380070910799366">"Избриши емитовање"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Детаљи упозорења"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Желите ли да избришете ово емитовање?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Желите ли да избришете све примљене поруке емитовања?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Избриши"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Приказује ванредне објаве у вези са отмицом детета (AMBER упозорење)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Прикажи CMAS пробна емитовања"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Приказује пробне преносе за Комерцијални систем упозорења за мобилне уређаје (CMAS)"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Вибрирај"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Вибрирај при упозорењу"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Подешавања за Бразил"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Прикажи емитовања канала 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Канал 50 се у Бразилу користи за ажурирање информација о подручју"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Опције за програмера"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Категорија:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Категорија упозорења:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Геофизичка"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Метеоролошка"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Сигурност"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Инфраструктура"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Хемијска/биолошка/нуклеарна/експлозивна"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Друго"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Тип одговора:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Пронаћи склониште"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Тип одговора:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Пронађи склониште"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Евакуисати"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Обавити припреме"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Обавити активност"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Надгледати изворе информација"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Избегавати ризик"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Проценити"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Не предузимати ниједну радњу"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Обави"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Надгледај"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Избегни"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Процени"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Ништа"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Озбиљност:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Екстремно"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Озбиљно"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Хитност:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Одмах предузети мере"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Реаговати током наредног сата"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Одмах"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Очекивано"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Извесност:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Уочено"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Вероватно"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Примљена:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> непрочитана(их) упозорења."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Нова упозорења"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Прикажи дијалог за онемогућавање након приказа првог CMAS упозорења (осим председничког упозорења)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Прикажи дијалог за онемогућавање"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Тренутно примате упозорења о хитним случајевима. Желите ли да наставите да их примате?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Да"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"He"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 секунде"</item>
     <item msgid="5656092384277009212">"4 секунде"</item>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 2b77569..f464c56 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Inställningar"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Ta bort sändningar"</string>
     <string name="message_options" msgid="3178489901903589574">"Meddelandealternativ"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Visa sändning"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Visa mer information"</string>
     <string name="menu_delete" msgid="128380070910799366">"Ta bort sändning"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Varningsinformation"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Vill du ta bort sändningen?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Vill du ta bort alla mottagna meddelanden om sändningar?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Radera"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Visa larmmeddelanden om bortförda barn (AMBER-meddelanden)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Visa testsändningar från CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Visa testsändningar från Commercial Mobile Alert System"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Vibrera"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Vibrera vid varning"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Inställningar för Brasilien"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Visa sändningar från kanal 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Kanal 50 används i Brasilien för uppdaterad områdesinformation"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Utvecklaralternativ"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategori:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Varningskategori:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geofysiska"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorologiska"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Fara för allmänheten"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Infrastruktur"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Kemiska/biologiska/explosion/kärnkraft"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Övriga"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Typ av åtgärd:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Sök skydd"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Typ av åtgärd:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Sök skydd"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Evakuera"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Förbered dig"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Vidta åtgärd"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Övervaka informationskällor"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Undvik risker"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Utvärdera"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Ingen åtgärd"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Vidta åtgärd"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Bevaka"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Undvik"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Gör en bedömning"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Ingen"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Allvarlighetsgrad:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Extrem"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Allvarlig"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Hur bråttom är det?"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Vidta åtgärd omedelbart"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Vidta åtgärd inom en timme"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Genast"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Förväntas"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Säkerhet:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Konstaterad"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Trolig"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Mottaget:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> olästa varningar."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Ny varning"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Visa en dialogruta med möjlighet att välja bort alternativet efter att den första CMAS-varningen visas (dock inte varningar som är utfärdade av presidenten)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Visa dialogrutan"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Du får för närvarande varningsmeddelanden. Vill du fortsätta ta emot varningsmeddelanden?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Ja"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Nej"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 sekunder"</item>
     <item msgid="5656092384277009212">"4 sekunder"</item>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 5795ca8..114536b 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Mipangilio"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Futa matangazo"</string>
     <string name="message_options" msgid="3178489901903589574">"Chaguo za ujumbe"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Tazama tangazo"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Ona maelezo"</string>
     <string name="menu_delete" msgid="128380070910799366">"Futa tangazo"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Maelezo ya arifa"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Futa matangazo haya?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Futa jumbe zote zilizopokewa za matangazo?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Futa"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Onyesha taarifa ya dharura ya kutekwa nyara kwa mtoto (arifa ya AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Onyesha matangazo ya majaribio ya CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Onyesha matangazo ya majaribio ya Mfumo wa Biashara wa Arifu ya Simu ya Mkononi"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Tetema"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Tetema inapoarifu"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Mipangilio ya Brazili"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Onyesha matangazo ya idhaa 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Kituo nambari 50 kinatumika Brazili kwa taarifa za eneo"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Chaguo za wasanidi programu"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategoria:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Kitengo cha Arifa:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Jiofizikia"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Metorolojia"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Usalama"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Miundomsingi"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Kemikali/Biolojia/Nyuklea/Vilipuaji"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Nyinginezo"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Aina ya jibu:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Pata makazi"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Aina ya Jibu:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Pata makazi"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Okoa"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Andaa"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Tekeleza shughuli"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Fuatilia vyanzo vya maelezo"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Epuka athari"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Tathmini"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Hakuna hatua"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Tekeleza"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Chunguza"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Epuka"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Tathmini"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Hamna"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Ukali:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Kupindukia"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Kali"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Uharaka:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Chukua hatua mara moja"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Chukua hatua ndani ya saa moja ijayo"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Papo hapo"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Inatarajiwa"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Uhakika:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Iliyozingatiwa"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Uwezekano"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Umepokewa:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"Arifu <xliff:g id="COUNT">%s</xliff:g> hazijasomwa."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Arifu mpya"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Onyesha kidadisi cha chaguo la kuondoka baada ya kuonyesha arifa ya kwanza ya CMAS (kuliko Arifa ya Urais)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Onyesha kidadisi cha chaguo la kuondoka"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Unapokea Arifa za Dharura hivi sasa. Je, ungependa kuendelea kupokea Arifa za Dharura?`"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Ndiyo"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"La"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"Sekunde 2"</item>
     <item msgid="5656092384277009212">"Sekunde 4"</item>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 2d00fb5..4e5aef6 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"การตั้งค่า"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"ลบการแจ้งเตือนทั้งหมด"</string>
     <string name="message_options" msgid="3178489901903589574">"ตัวเลือกข้อความ"</string>
-    <string name="menu_view" msgid="5991055455727639531">"ดูการแจ้งเตือน"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"ดูรายละเอียด"</string>
     <string name="menu_delete" msgid="128380070910799366">"ลบการแจ้งเตือน"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"รายละเอียดการแจ้งเตือน"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"ลบการแจ้งเตือนนี้หรือไม่"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"ลบข้อความแจ้งเตือนที่ได้รับทั้งหมดหรือไม่"</string>
     <string name="button_delete" msgid="4672451757925194350">"ลบ"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"แสดงกระดานข่าวสารเหตุฉุกเฉินการลักพาตัวเด็ก (ระดับ AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"แสดงการทดสอบการแจ้งเตือนของ CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"แสดงการทดสอบการแจ้งเตือนสำหรับ Commercial Mobile Alert System"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"สั่น"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"สั่นเมื่อแจ้งเตือน"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"การตั้งค่าสำหรับบราซิล"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"แสดงช่อง 50 การแจ้งเตือน"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"ช่อง 50 จะใช้ในบราซิลสำหรับข้อมูลความคืบหน้าในพื้นที่"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"ตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"หมวดหมู่:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"หมวดหมู่การแจ้งเตือน:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"ธรณีฟิสิกส์"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"อุตุนิยมวิทยา"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"ความปลอดภัย"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"โครงสร้างพื้นฐาน"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"สารเคมี/ชีวภาพ/นิวเคลียร์/ระเบิด"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"อื่นๆ"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"ประเภทการตอบสนอง:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"เตรียมที่หลบภัย"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"ประเภทการตอบสนอง:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"ที่พักอาศัย"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"อพยพ"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"เตรียมพร้อม"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"ดำเนินกิจกรรม"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"ตรวจสอบแหล่งข้อมูล"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"หลีกเลี่ยงอันตราย"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"ประเมินผล"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"ไม่มีการดำเนินการ"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"ดำเนินการ"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"ติดตามดู"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"หลีกเลี่ยง"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"ประเมิน"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"ไม่มี"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"ความรุนแรง:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"สูงสุด"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"รุนแรง"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"ความเร่งด่วน:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"ดำเนินการทันที"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"ดำเนินการภายในอีกหนึ่งชั่วโมง"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"ทันที"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"ที่คาดไว้"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"ความแน่นอน:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"สังเกตได้"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"เป็นไปได้"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"ได้รับ:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> การแจ้งเตือนที่ยังไม่ได้อ่าน"</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"การแจ้งเตือนใหม่"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"แสดงช่องโต้ตอบเลือกไม่ใช้หลังจากแสดงการแจ้งเตือน CMAS แรก (นอกเหนือจากการแจ้งเตือนระดับสูง)"</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"แสดงช่องโต้ตอบเลือกไม่ใช้"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"ขณะนี้ คุณได้รับการแจ้งเตือนฉุกเฉิน คุณต้องการรับการแจ้งเตือนฉุกเฉินต่อไปหรือไม่"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"ใช่"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"ไม่ใช่"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 วินาที"</item>
     <item msgid="5656092384277009212">"4 วินาที"</item>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 2d59506..a49e9c1 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Mga Setting"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Tanggalin ang mga broadcast"</string>
     <string name="message_options" msgid="3178489901903589574">"Mga pagpipilian sa mensahe"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Tingnan ang broadcast"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Tingnan ang mga detalye"</string>
     <string name="menu_delete" msgid="128380070910799366">"Tanggalin ang broadcast"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Mga detalye ng alerto"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Tanggalin ang broadcast na ito?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Tanggalin ang lahat ng natanggap na broadcast na mensahe?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Tanggalin"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Magpakita ng mga bulletin ng emergency sa pagdukot sa bata (AMBER alert)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Magpakita ng mga pansubok na broadcast ng CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Magpakita ng mga pansubok na broadcast para sa Commercial Mobile Alert System"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Mag-vibrate"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Mag-vibrate sa alerto"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Mga Setting para sa Brazil"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Ipakita ang mga broadcast ng channel 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Ginagamit ang Channel 50 sa Brazil para sa impormasyon sa pag-update ng lugar"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Mga pagpipilian ng developer"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategorya:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Kategorya ng Alerto:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Geophysical"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorological"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Kaligtasan"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Imprastraktura"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Chemical/Biological/Nuclear/Explosive"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Iba pa"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Uri ng pagtugon:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Magtago"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Uri ng Pagtugon:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Shelter"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Lumikas"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Maghanda"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Isagawa ang aktibidad"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Subaybayan ang mga pinagmumulan ng impormasyon"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Umiwas sa peligro"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Suriin"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Walang pagkilos"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Isakatuparan"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Subaybayan"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Iwasan"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Tasahin"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Wala"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Kalubhaan:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Matindi"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Malubha"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Kahalagahan:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Kumilos kaagad"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Kumilos sa susunod na oras"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Agad"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Inaasahan"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Katiyakan:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Naobserbahan"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Malamang"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Natanggap:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> (na) hindi pa nababasang alerto."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Mga bagong alerto"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Magpakita ng dialog sa pag-opt-out matapos pakita una alerto sa CMAS (bukod sa Presidential Alert)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Ipakita ang dialog sa pag-opt-out"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Kasalukuyan kang tumatanggap ng Mga Alerto ng Emergency. Nais mo bang magpatuloy sa pagtanggap ng Mga Alerto ng Emergency?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Oo"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Hindi"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 segundo"</item>
     <item msgid="5656092384277009212">"4 na segundo"</item>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index e7a4d1a..555ae24 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Ayarlar"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Yayınları sil"</string>
     <string name="message_options" msgid="3178489901903589574">"İleti seçenekleri"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Yayınları görüntüle"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Ayrıntıları görüntüle"</string>
     <string name="menu_delete" msgid="128380070910799366">"Yayını sil"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Uyarı ayarları"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Bu yayın silinsin mi?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Alınan tüm yayın iletileri silinsin mi?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Sil"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Çocuk kaçırma acil durum (AMBER uyarı) bültenlerini görüntüle"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"CMAS test yayınlarını göster"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Ticari Mobil Uyarı Sistemi (CMAS) test yayınlarını göster"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Titreşim"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Uyarı geldiğinde titreşimle bildir"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Brezilya için Ayarlar"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Channel 50 yayınlarını göster"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Channel 50, Brezilya\'da bölge güncelleme bilgileri için kullanılır"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Geliştirici seçenekleri"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Kategori:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Uyarı Kategorisi:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Jeofizik"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Meteorolojik"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Güvenlik"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Altyapı"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Kimyasal/Biyolojik/Nükleer/Patlayıcı"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Diğer"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Yanıt türü:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Siper alın"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Yanıt Türü:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Sığınağa gidin"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Boşaltın"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Hazırlanın"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Etkinliği gerçekleştirin"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Bilgi kaynaklarını takip edin"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Tehlikeden sakının"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Değerlendir"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Yapılması önerilen bir işlem yok"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Uygulayın"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Takip edin"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Kaçının"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Değerlendirin"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Yok"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Önem Derecesi:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Ekstrem"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Şiddetli"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Aciliyet:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Derhal eyleme geçin"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Bir saat içinde eyleme geç"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Derhal"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Beklenen"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Kesinlik:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Görüldü"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Büyük olasılıkla"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Alınma tarihi:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> okunmamış uyarı."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Yeni uyarılar"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"İlk CMAS uyarısı (Başkanlık Düzeyinde Uyarı hariç) görüntülendikten sonra devre dışı bırakma iletişim kutusu gösterilir."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Devre dışı bırakma iletişim kutusunu göster"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Şu anda Acil Durum uyarılarını alabiliyorsunuz. Acil Durum Uyarılarını almaya devam etmek istiyor musunuz?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Evet"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Hayır"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 saniye"</item>
     <item msgid="5656092384277009212">"4 saniye"</item>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index ab740c1..738302f 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Налаштування"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Видалити широкомовні повідомл."</string>
     <string name="message_options" msgid="3178489901903589574">"Параметри повідомлення"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Див. широкомовне повідомлення"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Переглянути деталі"</string>
     <string name="menu_delete" msgid="128380070910799366">"Видалити широкомовне повідомл."</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Деталі сповіщення"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Видалити це широкомовне повідомлення?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Видалити всі отримані широкомовні повідомлення?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Видалити"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Показувати інформаційні повідомлення про викрадення дітей (сповіщення AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Показув. тест. повідомл. CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Показувати тестові широкомовні повідомлення комерційної системи мобільних сповіщень (CMAS)"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Вібросигнал"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Вібрувати, якщо є сповіщення"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Налаштування для Бразилії"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Показ. повідомлення Каналу 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Канал 50 використовується в Бразилії для інформування про регіональні новини"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Параметри розробника"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Категорія:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Категорія сповіщення:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Геофізична небезпека"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Метеорологія"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Загальна безпека"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Інфраструктура"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Небезпека хімічна/біологічна/ядерна/вибуху"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Інше"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Тип реагування:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Перейдіть в укриття"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Тип реагування:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Сховайтеся"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Евакуюйтеся"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Підготуйтеся"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Виконайте дії"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Стежте за джерелами інформації"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Уникайте небезпеки"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Оцініть інформацію"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Дії не потрібні"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Виконуйте"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Стежте"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Уникайте"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Ознайомтеся"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Нічого"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Рівень небезпеки:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Надзвичайний"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Високий"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Терміновість:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Дійте негайно"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Дійте в найближчу годину"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Негайно"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Очікується"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Достовірність:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Ведеться спостереження"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Імовірний"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Отримано:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"Непрочитаних сповіщень: <xliff:g id="COUNT">%s</xliff:g>"</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Нові сповіщення"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Пропонувати відключити сповіщення екстрених служб після першого показу"</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Показувати діалогове вікно вимкнення"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Ви отримуєте сповіщення про надзвичайні ситуації. Хочете й надалі отримувати сповіщення про надзвичайні ситуації?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Так"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Ні"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 секунди"</item>
     <item msgid="5656092384277009212">"4 секунди"</item>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index e764aba..883f69c 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Cài đặt"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Xóa chương trình phát sóng"</string>
     <string name="message_options" msgid="3178489901903589574">"Tùy chọn tin nhắn"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Xem chương trình phát sóng"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Xem chi tiết"</string>
     <string name="menu_delete" msgid="128380070910799366">"Xóa chương trình phát sóng"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Chi tiết cảnh báo"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Xóa chương trình phát sóng này?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Xóa tất cả các thông báo của chương trình phát sóng đã nhận được?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Xóa"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Hiển thị bản tin khẩn cấp vụ việc bắt cóc trẻ em (thông báo AMBER)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Hiển thị các thông báo kiểm tra cho CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Hiển thị các thông báo kiểm tra cho Hệ thống thông báo thương mại trên điện thoại di động"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Rung"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Rung khi cảnh báo"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Cài đặt cho Braxin"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Hiển thị chương trình phát sóng kênh 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Kênh 50 được sử dụng ở Braxin để cập nhật thông tin khu vực"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Tùy chọn nhà phát triển"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Danh mục:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Danh mục cảnh báo:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Địa vật lý"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Khí tượng học"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"An toàn"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Cơ sở hạ tầng"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Hóa học/Sinh học/Hạt nhân/Chất nổ"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Khác"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Loại ứng phó:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Tìm nơi trú ẩn"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Loại phản hồi:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Trú ẩn"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Sơ tán"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Chuẩn bị"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Thực hiện hoạt động"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Theo dõi nguồn thông tin"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Tránh nguy hiểm"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Đánh giá"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Không có hành động nào"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Thực thi"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Giám sát"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Tránh"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Đánh giá"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Không có"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Mức độ nghiêm trọng:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Cực kỳ nghiêm trọng"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Nghiêm trọng"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Mức khẩn cấp:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Thực hiện hành động ngay lập tức"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Thực hiện hành động trong giờ tiếp theo"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Ngay lập tức"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Mong đợi"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Mức độ chắc chắn:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Được quan sát"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Có thể xảy ra"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Đã nhận:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> thông báo chưa đọc."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Thông báo mới"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Hiện hộp thoại không tham gia sau khi hiện thông báo CMAS đầu tiên (ngoài Thông báo của tổng thống)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Hiển thị hộp thoại chọn không tham gia"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Bạn hiện đang nhận được Thông báo khẩn cấp. Bạn có muốn tiếp tục nhận được Thông báo khẩn cấp không?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Có"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Không"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 giây"</item>
     <item msgid="5656092384277009212">"4 giây"</item>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 14807d4..2592a19 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"设置"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"删除广播"</string>
     <string name="message_options" msgid="3178489901903589574">"短信选项"</string>
-    <string name="menu_view" msgid="5991055455727639531">"查看广播"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"查看详情"</string>
     <string name="menu_delete" msgid="128380070910799366">"删除广播"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"警报详情"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"要删除这条广播吗?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"要删除收到的所有广播消息吗?"</string>
     <string name="button_delete" msgid="4672451757925194350">"删除"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"显示拐骗儿童紧急事件公告(安珀警报)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"显示 CMAS 测试广播"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"显示商业移动警报系统的测试广播"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"振动"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"收到警报时振动"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"针对巴西的设置"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"显示 50 频道的广播"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"巴西使用频道 50 来广播区域动态信息"</string>
-    <string name="category_dev_settings_title" msgid="6194393458398329994">"开发人员选项"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"类别:"</string>
+    <string name="category_dev_settings_title" msgid="6194393458398329994">"开发者选项"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"警报类别:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"地球物理"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"气象"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"紧急事故和公共安全"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"基础设施"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"化学/生物/核能/爆炸"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"其他"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"响应类型"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"避难"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"响应类型:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"就地避难"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"疏散"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"准备"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"执行活动"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"监测信息来源"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"躲避危险"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"评估"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"不采取行动"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"执行"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"监控"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"躲避"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"评估"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"无"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"严重性:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"极端情况"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"严重"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"紧急:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"立即采取行动"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"在接下来的一小时内采取行动"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"立即"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"符合预计"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"确定性:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"已观察到"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"很可能"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"接收时间:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> 条未读警报。"</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"新警报"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"在显示第一条 CMAS 警报(非总统警报)后显示警报停收对话框。"</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"显示警报停收对话框"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"当前设置是接收紧急警报。是否要继续接收紧急警报?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"是"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"否"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 秒"</item>
     <item msgid="5656092384277009212">"4 秒"</item>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 70145cd..991c5e9 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"設定"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"刪除廣播"</string>
     <string name="message_options" msgid="3178489901903589574">"訊息選項"</string>
-    <string name="menu_view" msgid="5991055455727639531">"查看廣播"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"查看詳細資料"</string>
     <string name="menu_delete" msgid="128380070910799366">"刪除廣播"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"警示詳細資料"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"刪除這個廣播嗎?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"刪除所有收到的廣播訊息嗎?"</string>
     <string name="button_delete" msgid="4672451757925194350">"刪除"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"顯示兒童綁架緊急事件公告 (安珀警示)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"顯示 CMAS 測試廣播"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"顯示商用行動警示系統測試廣播"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"震動"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"警示時發出震動"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"巴西專用設定"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"顯示第 50 頻道的廣播"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"巴西使用第 50 頻道廣播地區最新資訊"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"開發人員選項"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"類別:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"警示類別:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"地球物理災變"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"氣象"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"公共安全"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"基礎設施"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"核生化武器/爆裂物"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"其他"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"應變類型:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"尋找掩蔽"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"應變類型:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"避難"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"撤離"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"預做準備"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"執行預定行動"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"持續追蹤資訊來源"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"躲避危害"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"評估"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"無建議行動"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"執行"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"監控"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"避開"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"評估"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"無"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"嚴重程度:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"極嚴重"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"嚴重"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"緊急程度:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"請立刻採取行動"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"請在一小時內採取行動"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"立即"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"預期"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"確定等級:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"有跡象"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"可能發生"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"接收時間:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> 則未讀取警示。"</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"新警示"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"第一次 CMAS 警示出現後顯示停用對話方塊 (總統級警示除外)。"</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"顯示停用對話方塊"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"您目前已設為接收緊急警示,是否要繼續接收?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"是"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"否"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 秒"</item>
     <item msgid="5656092384277009212">"4 秒"</item>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 138b2e7..c9d7ea4 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -23,8 +23,9 @@
     <string name="menu_preferences" msgid="3596514894131599202">"Izilungiselelo"</string>
     <string name="menu_delete_all" msgid="3940997343921149800">"Susa ukusakaza"</string>
     <string name="message_options" msgid="3178489901903589574">"Izinketho zemilayezo"</string>
-    <string name="menu_view" msgid="5991055455727639531">"Buka ukusakaza"</string>
+    <string name="menu_view_details" msgid="1040989019045280975">"Buka imininingwane"</string>
     <string name="menu_delete" msgid="128380070910799366">"Susa ukusakaza"</string>
+    <string name="view_details_title" msgid="1780427629491781473">"Imininingwane yokwazisa"</string>
     <string name="confirm_delete_broadcast" msgid="2540199303730232322">"Susa lokhu kusakaza?"</string>
     <string name="confirm_delete_all_broadcasts" msgid="2924444089047280871">"Susa yonke imiyalezo yokusakaza?"</string>
     <string name="button_delete" msgid="4672451757925194350">"Susa"</string>
@@ -60,11 +61,13 @@
     <string name="enable_cmas_amber_alerts_summary" msgid="8423617548641801387">"Bonisa izindaba ezihamba phambili eziphuthumayo zokuthunjwa kwezingane (isaziso SOMBALA OLUPHUZI)"</string>
     <string name="enable_cmas_test_alerts_title" msgid="8620213090932770270">"Bonisa ukusakaza kokuhlola i-CMAS"</string>
     <string name="enable_cmas_test_alerts_summary" msgid="2935171596891733844">"Bonisa ukusakazwa Kwesisitimu Yokuxwayisa Ngefoni Yezentengiselwano"</string>
+    <string name="enable_alert_vibrate_title" msgid="982817538757982090">"Dlidliza"</string>
+    <string name="enable_alert_vibrate_summary" msgid="4328060563316778589">"Dlidliza ekwazisweni"</string>
     <string name="category_brazil_settings_title" msgid="6343130548572319922">"Izilungiselelo ze-Brazil"</string>
     <string name="enable_channel_50_alerts_title" msgid="2818924064446974167">"Bonisa ukusakazwa kwesiteshi 50"</string>
     <string name="enable_channel_50_alerts_summary" msgid="7507770011325273009">"Isiteshi 50 sisetshinziswa e-Brazil ukuze kubuyekezwe ulwazi lwasendaweni"</string>
     <string name="category_dev_settings_title" msgid="6194393458398329994">"Izinketho Zonjiniyela"</string>
-    <string name="cmas_category_heading" msgid="5731181299088631019">"Isigaba:"</string>
+    <string name="cmas_category_heading" msgid="3923503130776640717">"Isigaba sesexwayiso:"</string>
     <string name="cmas_category_geo" msgid="4979494217069688527">"Okuphathelene Nomhlaba"</string>
     <string name="cmas_category_met" msgid="7563732573851773537">"Okuphathelene Nesimo Sezulu"</string>
     <string name="cmas_category_safety" msgid="2986472639641883453">"Ukuphepha"</string>
@@ -77,26 +80,32 @@
     <string name="cmas_category_infra" msgid="3558151044446851398">"Ingqalasizinda"</string>
     <string name="cmas_category_cbrne" msgid="240421557913603971">"Amakhemikhali/Okuphathelene Nempilo/Inuzi/Iziqhumani"</string>
     <string name="cmas_category_other" msgid="6158932360790744360">"Okunye"</string>
-    <string name="cmas_response_heading" msgid="451355296605342420">"Uhlobo lwempendulo:"</string>
-    <string name="cmas_response_shelter" msgid="731514427035594985">"Thatha indawo yokuhlala"</string>
+    <string name="cmas_response_heading" msgid="4205379547245540163">"Uhlobo lwempendulo:"</string>
+    <string name="cmas_response_shelter" msgid="7301175579079615909">"Ingosi"</string>
     <string name="cmas_response_evacuate" msgid="5833170084430021095">"Thutha"</string>
     <string name="cmas_response_prepare" msgid="8428073909753758319">"Lungiselela"</string>
-    <string name="cmas_response_execute" msgid="4065931123765142173">"Qalisa umsebenzi"</string>
-    <string name="cmas_response_monitor" msgid="1836723975944461996">"Gada imithombo yokwaziswa"</string>
-    <string name="cmas_response_avoid" msgid="9083226909188314307">"Gwema ingozi"</string>
-    <string name="cmas_response_assess" msgid="4419898054369698124">"Ukuhlola"</string>
-    <string name="cmas_response_none" msgid="9109481144060546906">"Asikho isenzo"</string>
+    <string name="cmas_response_execute" msgid="284719420769568493">"Yenza"</string>
+    <string name="cmas_response_monitor" msgid="681400164440495749">"Ukwengamela"</string>
+    <string name="cmas_response_avoid" msgid="156419597612629270">"Gwema"</string>
+    <string name="cmas_response_assess" msgid="9043534222710563415">"Hlola"</string>
+    <string name="cmas_response_none" msgid="5149009359674452959">"Akunalutho"</string>
     <string name="cmas_severity_heading" msgid="8437057117822305243">"Ubucayi:"</string>
     <string name="cmas_severity_extreme" msgid="1312013282860183082">"Khulu kakhulu"</string>
     <string name="cmas_severity_severe" msgid="7504359209737074524">"Bucayi"</string>
     <string name="cmas_urgency_heading" msgid="8218282767913431492">"Ukuphuthuma:"</string>
-    <string name="cmas_urgency_immediate" msgid="2258810949481930841">"Thatha isinyathelo ngokuphazima kweso"</string>
-    <string name="cmas_urgency_expected" msgid="2649054095518659749">"Thatha isinyathelo lingakapheli ihora elilandelayo"</string>
+    <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Khona manjalo"</string>
+    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Okulindelekile"</string>
     <string name="cmas_certainty_heading" msgid="8374669249736439193">"Ukuqinisekisa:"</string>
     <string name="cmas_certainty_observed" msgid="3668549749352106472">"Kugadiwe"</string>
     <string name="cmas_certainty_likely" msgid="4254497828943291749">"Kungenzeka"</string>
+    <string name="delivery_time_heading" msgid="5980836543433619329">"Okwamukelwe:"</string>
     <string name="notification_multiple" msgid="5121978148152124860">"<xliff:g id="COUNT">%s</xliff:g> izaziso ezingafundiwe."</string>
     <string name="notification_multiple_title" msgid="1523638925739947855">"Izaziso ezintsha"</string>
+    <string name="show_cmas_opt_out_summary" msgid="4370292554938680862">"Bonisa ibhokisi lokuphuma ngemuva kokubonisa isaziso se-CMAS sokuqala (ngaphandle kwesaziso esingumongameli)."</string>
+    <string name="show_cmas_opt_out_title" msgid="9182104842820171132">"Bonisa ibhokisi lokuphuma"</string>
+    <string name="cmas_opt_out_dialog_text" msgid="7529010670998259128">"Okwamanje uthola izaziso zesimo esiphuthumayo. Ungathanda ukuqhubeka ukuthola izaziso zesimo esiphuthumayo?"</string>
+    <string name="cmas_opt_out_button_yes" msgid="7248930667195432936">"Yebo"</string>
+    <string name="cmas_opt_out_button_no" msgid="3110484064328538553">"Cha"</string>
   <string-array name="alert_sound_duration_entries">
     <item msgid="5353482200312892037">"2 amasekhondi"</item>
     <item msgid="5656092384277009212">"4 amasekhondi"</item>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9677fe6..0a9b387 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -36,11 +36,14 @@
 
     <!-- Header for context menu on an individual broadcast. [CHAR LIMIT=30] -->
     <string name="message_options">Message options</string>
-    <!-- Context menu item to view a previously received broadcast. [CHAR LIMIT=30] -->
-    <string name="menu_view">View broadcast</string>
+    <!-- Context menu item for viewing broadcast details such as time and date. [CHAR LIMIT=30] -->
+    <string name="menu_view_details">View details</string>
     <!-- Context menu item to delete a previously received broadcast. [CHAR LIMIT=30] -->
     <string name="menu_delete">Delete broadcast</string>
 
+    <!-- Title of "View details" dialog -->
+    <string name="view_details_title">Alert details</string>
+
     <!-- Confirm Delete -->
     <!-- Delete broadcast confirmation dialog message. [CHAR LIMIT=NONE] -->
     <string name="confirm_delete_broadcast">Delete this broadcast?</string>
@@ -120,6 +123,11 @@
     <!-- Preference summary for enable CMAS test alerts checkbox. [CHAR LIMIT=100] -->
     <string name="enable_cmas_test_alerts_summary">Display test broadcasts for Commercial Mobile Alert System</string>
 
+    <!-- Preference title for CMAS vibration on/off. [CHAR LIMIT=30] -->
+    <string name="enable_alert_vibrate_title">Vibrate</string>
+    <!-- Preference summary for CMAS vibration on/off. [CHAR LIMIT=60] -->
+    <string name="enable_alert_vibrate_summary">Vibrate on alert</string>
+
     <!-- Preference category title for Brazil settings. [CHAR LIMIT=50] -->
     <string name="category_brazil_settings_title">Settings for Brazil</string>
     <!-- Preference title for enable channel 50 alerts (Brazil only). [CHAR LIMIT=30] -->
@@ -130,8 +138,8 @@
     <!-- Preference category title for developer settings. [CHAR LIMIT=50] -->
     <string name="category_dev_settings_title">Developer options</string>
 
-    <!-- CMAS alert category heading (including colon and space). [CHAR LIMIT=30] -->
-    <string name="cmas_category_heading">Category: </string>
+    <!-- CMAS alert category heading (including colon). [CHAR LIMIT=30] -->
+    <string name="cmas_category_heading">Alert Category:</string>
     <!-- CMAS category for geophysical alerts. [CHAR LIMIT=50] -->
     <string name="cmas_category_geo">Geophysical</string>
     <!-- CMAS category for meteorological alerts. [CHAR LIMIT=50] -->
@@ -157,51 +165,66 @@
     <!-- CMAS category for other alerts. [CHAR LIMIT=50] -->
     <string name="cmas_category_other">Other</string>
 
-    <!-- CMAS response type heading (including colon and space). [CHAR LIMIT=30] -->
-    <string name="cmas_response_heading">Response type: </string>
+    <!-- CMAS response type heading (including colon). [CHAR LIMIT=30] -->
+    <string name="cmas_response_heading">Response Type:</string>
     <!-- CMAS response type: take shelter in place. [CHAR LIMIT=50] -->
-    <string name="cmas_response_shelter">Take shelter</string>
+    <string name="cmas_response_shelter">Shelter</string>
     <!-- CMAS response type: evacuate (relocate). [CHAR LIMIT=50] -->
     <string name="cmas_response_evacuate">Evacuate</string>
     <!-- CMAS response type: make preparations. [CHAR LIMIT=50] -->
     <string name="cmas_response_prepare">Prepare</string>
     <!-- CMAS response type: execute a pre-planned activity. [CHAR LIMIT=50] -->
-    <string name="cmas_response_execute">Execute activity</string>
+    <string name="cmas_response_execute">Execute</string>
     <!-- CMAS response type: monitor information sources. [CHAR LIMIT=50] -->
-    <string name="cmas_response_monitor">Monitor info sources</string>
+    <string name="cmas_response_monitor">Monitor</string>
     <!-- CMAS response type: avoid hazard. [CHAR LIMIT=50] -->
-    <string name="cmas_response_avoid">Avoid hazard</string>
+    <string name="cmas_response_avoid">Avoid</string>
     <!-- CMAS response type: evaluate the information in this message. [CHAR LIMIT=50] -->
-    <string name="cmas_response_assess">Evaluate</string>
+    <string name="cmas_response_assess">Assess</string>
     <!-- CMAS response type: no action recommended. [CHAR LIMIT=50] -->
-    <string name="cmas_response_none">No action</string>
+    <string name="cmas_response_none">None</string>
 
-    <!-- CMAS severity heading (including colon and space). [CHAR LIMIT=30] -->
-    <string name="cmas_severity_heading">Severity: </string>
+    <!-- CMAS severity heading (including colon). [CHAR LIMIT=30] -->
+    <string name="cmas_severity_heading">Severity:</string>
     <!-- CMAS severity type: extreme. [CHAR LIMIT=30] -->
     <string name="cmas_severity_extreme">Extreme</string>
     <!-- CMAS severity type: severe. [CHAR LIMIT=30] -->
     <string name="cmas_severity_severe">Severe</string>
 
-    <!-- CMAS urgency heading (including colon and space). [CHAR LIMIT=30] -->
-    <string name="cmas_urgency_heading">Urgency: </string>
+    <!-- CMAS urgency heading (including colon). [CHAR LIMIT=30] -->
+    <string name="cmas_urgency_heading">Urgency:</string>
     <!-- CMAS urgency type: take responsive action immediately. [CHAR LIMIT=30] -->
-    <string name="cmas_urgency_immediate">Take action immediately</string>
+    <string name="cmas_urgency_immediate">Immediate</string>
     <!-- CMAS severity type: severe. [CHAR LIMIT=30] -->
-    <string name="cmas_urgency_expected">Take action within the next hour</string>
+    <string name="cmas_urgency_expected">Expected</string>
 
-    <!-- CMAS certainty heading (including colon and space). [CHAR LIMIT=30] -->
-    <string name="cmas_certainty_heading">Certainty: </string>
+    <!-- CMAS certainty heading (including colon). [CHAR LIMIT=30] -->
+    <string name="cmas_certainty_heading">Certainty:</string>
     <!-- CMAS certainty type: observed. [CHAR LIMIT=30] -->
     <string name="cmas_certainty_observed">Observed</string>
     <!-- CMAS severity type: severe. [CHAR LIMIT=30] -->
     <string name="cmas_certainty_likely">Likely</string>
 
+    <!-- Message delivery time (including colon). [CHAR LIMIT=30] -->
+    <string name="delivery_time_heading">Received:</string>
+
     <!-- Non-emergency broadcast notification description for multiple unread alerts. -->
     <string name="notification_multiple"><xliff:g id="count">%s</xliff:g> unread alerts.</string>
     <!-- Non-emergency broadcast notification title for multiple unread alerts. -->
     <string name="notification_multiple_title">New alerts</string>
 
+    <!-- Show CMAS opt-out dialog on first non-Presidential alert. [CHAR LIMIT=100] -->
+    <string name="show_cmas_opt_out_summary">Show an opt-out dialog after displaying the first CMAS alert (other than Presidential Alert).</string>
+    <!-- Show CMAS opt-out dialog on first non-Presidential alert. [CHAR LIMIT=40] -->
+    <string name="show_cmas_opt_out_title">Show opt-out dialog</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>
+    <!-- Text for positive button in CMAS opt-out dialog. [CHAR LIMIT=25] -->
+    <string name="cmas_opt_out_button_yes">Yes</string>
+    <!-- Text for negative button in CMAS opt-out dialog. [CHAR LIMIT=25] -->
+    <string name="cmas_opt_out_button_no">No</string>
+
     <!-- Entries listed in the ListPreference for allowed alert durations. [CHAR LIMIT=30] -->
     <string-array name="alert_sound_duration_entries">
       <item>2 seconds</item>
diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml
index 6d8a54d..340830a 100644
--- a/res/xml/preferences.xml
+++ b/res/xml/preferences.xml
@@ -53,6 +53,11 @@
                         android:dialogTitle="@string/alert_sound_duration_title" />
 
         <CheckBoxPreference android:defaultValue="true"
+                            android:key="enable_alert_vibrate"
+                            android:summary="@string/enable_alert_vibrate_summary"
+                            android:title="@string/enable_alert_vibrate_title" />
+
+        <CheckBoxPreference android:defaultValue="true"
                             android:key="enable_alert_speech"
                             android:summary="@string/enable_alert_speech_summary"
                             android:title="@string/enable_alert_speech_title" />
@@ -91,6 +96,11 @@
                             android:summary="@string/enable_cmas_test_alerts_summary"
                             android:title="@string/enable_cmas_test_alerts_title" />
 
+        <CheckBoxPreference android:defaultValue="true"
+                            android:key="show_cmas_opt_out_dialog"
+                            android:summary="@string/show_cmas_opt_out_summary"
+                            android:title="@string/show_cmas_opt_out_title" />
+
     </PreferenceCategory>
 
 </PreferenceScreen>
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java
index f817fc9..bc44ed1 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java
@@ -27,7 +27,6 @@
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Message;
-import android.os.PowerManager;
 import android.os.Vibrator;
 import android.speech.tts.TextToSpeech;
 import android.telephony.PhoneStateListener;
@@ -61,14 +60,20 @@
     public static final String ALERT_AUDIO_MESSAGE_LANGUAGE =
             "com.android.cellbroadcastreceiver.ALERT_AUDIO_MESSAGE_LANGUAGE";
 
+    /** Extra for alert audio vibration enabled (from settings). */
+    public static final String ALERT_AUDIO_VIBRATE_EXTRA =
+            "com.android.cellbroadcastreceiver.ALERT_AUDIO_VIBRATE";
+
+    /** Extra for alert audio ETWS behavior (always vibrate, even in silent mode). */
+    public static final String ALERT_AUDIO_ETWS_VIBRATE_EXTRA =
+            "com.android.cellbroadcastreceiver.ALERT_AUDIO_ETWS_VIBRATE";
+
     /** Pause duration between alert sound and alert speech. */
     private static final int PAUSE_DURATION_BEFORE_SPEAKING_MSEC = 1000;
 
     /** Vibration uses the same on/off pattern as the CMAS alert tone */
-    private static final long[] sVibratePattern = new long[] { 0, 2000, 500, 1000, 500, 1000, 500 };
-
-    /** CPU wake lock while playing audio. */
-    private PowerManager.WakeLock mWakeLock;
+    private static final long[] sVibratePattern = { 0, 2000, 500, 1000, 500, 1000, 500,
+            2000, 500, 1000, 500, 1000};
 
     private static final int STATE_IDLE = 0;
     private static final int STATE_ALERTING = 1;
@@ -83,6 +88,8 @@
     private String mMessageBody;
     private String mMessageLanguage;
     private boolean mTtsLanguageSupported;
+    private boolean mEnableVibrate;
+    private boolean mEnableAudio;
 
     private Vibrator mVibrator;
     private MediaPlayer mMediaPlayer;
@@ -188,11 +195,6 @@
 
     @Override
     public void onCreate() {
-        // acquire CPU wake lock while playing audio
-        PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
-        mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
-        mWakeLock.acquire();
-
         mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
         mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
         // Listen for incoming calls to kill the alarm.
@@ -204,16 +206,21 @@
 
     @Override
     public void onDestroy() {
+        // stop audio, vibration and TTS
         stop();
         // Stop listening for incoming calls.
         mTelephonyManager.listen(mPhoneStateListener, 0);
         // shutdown TTS engine
         if (mTts != null) {
-            mTts.stop();
-            mTts.shutdown();
+            try {
+                mTts.shutdown();
+            } catch (IllegalStateException e) {
+                // catch "Unable to retrieve AudioTrack pointer for stop()" exception
+                Log.e(TAG, "exception trying to shutdown text-to-speech");
+            }
         }
-        // release CPU wake lock
-        mWakeLock.release();
+        // release CPU wake lock acquired by CellBroadcastAlertService
+        CellBroadcastAlertWakeLock.releaseCpuLock();
     }
 
     @Override
@@ -230,14 +237,36 @@
         }
 
         // This extra should always be provided by CellBroadcastAlertService,
-        // but default to 4 seconds just to be safe
-        int duration = intent.getIntExtra(ALERT_AUDIO_DURATION_EXTRA, 4);
+        // but default to 10.5 seconds just to be safe (CMAS requirement).
+        int duration = intent.getIntExtra(ALERT_AUDIO_DURATION_EXTRA, 10500);
 
         // Get text to speak (if enabled by user)
         mMessageBody = intent.getStringExtra(ALERT_AUDIO_MESSAGE_BODY);
         mMessageLanguage = intent.getStringExtra(ALERT_AUDIO_MESSAGE_LANGUAGE);
 
-        if (mMessageBody != null) {
+        mEnableVibrate = intent.getBooleanExtra(ALERT_AUDIO_VIBRATE_EXTRA, true);
+        boolean forceVibrate = intent.getBooleanExtra(ALERT_AUDIO_ETWS_VIBRATE_EXTRA, false);
+
+        switch (mAudioManager.getRingerMode()) {
+            case AudioManager.RINGER_MODE_SILENT:
+                if (DBG) log("Ringer mode: silent");
+                mEnableVibrate = forceVibrate;
+                mEnableAudio = false;
+                break;
+
+            case AudioManager.RINGER_MODE_VIBRATE:
+                if (DBG) log("Ringer mode: vibrate");
+                mEnableAudio = false;
+                break;
+
+            case AudioManager.RINGER_MODE_NORMAL:
+            default:
+                if (DBG) log("Ringer mode: normal");
+                mEnableAudio = true;
+                break;
+        }
+
+        if (mMessageBody != null && mEnableAudio) {
             if (mTts == null) {
                 mTts = new TextToSpeech(this, this);
             } else if (mTtsEngineReady) {
@@ -245,7 +274,12 @@
             }
         }
 
-        play(duration * 1000);  // convert to milliseconds
+        if (mEnableAudio || mEnableVibrate) {
+            play(duration);     // in milliseconds
+        } else {
+            stopSelf();
+            return START_NOT_STICKY;
+        }
 
         // Record the initial call state here so that the new alarm has the
         // newest state.
@@ -267,38 +301,43 @@
 
         if (DBG) log("play()");
 
-        // future optimization: reuse media player object
-        mMediaPlayer = new MediaPlayer();
-        mMediaPlayer.setOnErrorListener(new OnErrorListener() {
-            public boolean onError(MediaPlayer mp, int what, int extra) {
-                Log.e(TAG, "Error occurred while playing audio.");
-                mp.stop();
-                mp.release();
-                mMediaPlayer = null;
-                return true;
-            }
-        });
-
-        try {
-            // Check if we are in a call. If we are, play the alert
-            // sound at a low volume to not disrupt the call.
-            if (mTelephonyManager.getCallState()
-                    != TelephonyManager.CALL_STATE_IDLE) {
-                Log.v(TAG, "in call: reducing volume");
-                mMediaPlayer.setVolume(IN_CALL_VOLUME, IN_CALL_VOLUME);
-            }
-            // start playing alert audio
-            setDataSourceFromResource(getResources(), mMediaPlayer,
-                    R.raw.attention_signal);
-            mAudioManager.requestAudioFocus(null, AudioManager.STREAM_ALARM,
-                    AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
-            startAlarm(mMediaPlayer);
-        } catch (Exception ex) {
-            Log.e(TAG, "Failed to play alert sound", ex);
+        // Start the vibration first.
+        if (mEnableVibrate) {
+            mVibrator.vibrate(sVibratePattern, -1);
         }
 
-        /* Start the vibrator after everything is ok with the media player */
-        mVibrator.vibrate(sVibratePattern, 1);
+        if (mEnableAudio) {
+            // future optimization: reuse media player object
+            mMediaPlayer = new MediaPlayer();
+            mMediaPlayer.setOnErrorListener(new OnErrorListener() {
+                public boolean onError(MediaPlayer mp, int what, int extra) {
+                    Log.e(TAG, "Error occurred while playing audio.");
+                    mp.stop();
+                    mp.release();
+                    mMediaPlayer = null;
+                    return true;
+                }
+            });
+
+            try {
+                // Check if we are in a call. If we are, play the alert
+                // sound at a low volume to not disrupt the call.
+                if (mTelephonyManager.getCallState()
+                        != TelephonyManager.CALL_STATE_IDLE) {
+                    Log.v(TAG, "in call: reducing volume");
+                    mMediaPlayer.setVolume(IN_CALL_VOLUME, IN_CALL_VOLUME);
+                }
+
+                // start playing alert audio (unless master volume is vibrate only or silent).
+                setDataSourceFromResource(getResources(), mMediaPlayer,
+                        R.raw.attention_signal);
+                mAudioManager.requestAudioFocus(null, AudioManager.STREAM_NOTIFICATION,
+                        AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
+                startAlarm(mMediaPlayer);
+            } catch (Exception ex) {
+                Log.e(TAG, "Failed to play alert sound", ex);
+            }
+        }
 
         // stop alert after the specified duration
         mHandler.sendMessageDelayed(mHandler.obtainMessage(ALERT_SOUND_FINISHED), duration);
@@ -307,9 +346,8 @@
 
     // Do the common stuff when starting the alarm.
     private static void startAlarm(MediaPlayer player)
-            throws java.io.IOException, IllegalArgumentException,
-                   IllegalStateException {
-        player.setAudioStreamType(AudioManager.STREAM_ALARM);
+            throws java.io.IOException, IllegalArgumentException, IllegalStateException {
+        player.setAudioStreamType(AudioManager.STREAM_NOTIFICATION);
         player.setLooping(true);
         player.prepare();
         player.start();
@@ -337,15 +375,25 @@
         if (mState == STATE_ALERTING) {
             // Stop audio playing
             if (mMediaPlayer != null) {
-                mMediaPlayer.stop();
-                mMediaPlayer.release();
+                try {
+                    mMediaPlayer.stop();
+                    mMediaPlayer.release();
+                } catch (IllegalStateException e) {
+                    // catch "Unable to retrieve AudioTrack pointer for stop()" exception
+                    Log.e(TAG, "exception trying to stop media player");
+                }
                 mMediaPlayer = null;
             }
 
             // Stop vibrator
             mVibrator.cancel();
         } else if (mState == STATE_SPEAKING && mTts != null) {
-            mTts.stop();
+            try {
+                mTts.stop();
+            } catch (IllegalStateException e) {
+                // catch "Unable to retrieve AudioTrack pointer for stop()" exception
+                Log.e(TAG, "exception trying to stop text-to-speech");
+            }
         }
         mAudioManager.abandonAudioFocus(null);
         mState = STATE_IDLE;
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertDialog.java b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertDialog.java
index 3be8439..f250928 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertDialog.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertDialog.java
@@ -45,7 +45,7 @@
 
         // Listen for the screen turning off so that when the screen comes back
         // on, the user does not need to unlock the phone to dismiss the alert.
-        if (mMessage.isEmergencyAlertMessage()) {
+        if (CellBroadcastConfigService.isEmergencyAlertMessage(getLatestMessage())) {
             mScreenOffReceiver = new ScreenOffReceiver();
             registerReceiver(mScreenOffReceiver,
                     new IntentFilter(Intent.ACTION_SCREEN_OFF));
@@ -74,8 +74,8 @@
     private void handleScreenOff() {
         // Launch the full screen activity but do not turn the screen on.
         Intent i = new Intent(this, CellBroadcastAlertFullScreen.class);
-        i.putExtra(CellBroadcastMessage.SMS_CB_MESSAGE_EXTRA, mMessage);
-        i.putExtra(SCREEN_OFF, true);
+        i.putParcelableArrayListExtra(CellBroadcastMessage.SMS_CB_MESSAGE_EXTRA, mMessageList);
+        i.putExtra(SCREEN_OFF_EXTRA, true);
         startActivity(i);
         finish();
     }
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertFullScreen.java b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertFullScreen.java
index 641fad2..cf6d7e5 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertFullScreen.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertFullScreen.java
@@ -17,15 +17,22 @@
 package com.android.cellbroadcastreceiver;
 
 import android.app.Activity;
+import android.app.KeyguardManager;
 import android.app.NotificationManager;
 import android.content.Context;
 import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.res.Resources;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.preference.PreferenceManager;
 import android.provider.Telephony;
 import android.telephony.CellBroadcastMessage;
+import android.telephony.SmsCbCmasInfo;
+import android.util.Log;
+import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.Window;
@@ -34,24 +41,31 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import java.util.ArrayList;
+import java.util.concurrent.atomic.AtomicInteger;
+
 /**
  * Full-screen emergency alert with flashing warning icon.
  * Alert audio and text-to-speech handled by {@link CellBroadcastAlertAudio}.
  * Keyguard handling based on {@code AlarmAlertFullScreen} class from DeskClock app.
  */
 public class CellBroadcastAlertFullScreen extends Activity {
+    private static final String TAG = "CellBroadcastAlertFullScreen";
 
     /**
      * Intent extra for full screen alert launched from dialog subclass as a result of the
      * screen turning off.
      */
-    static final String SCREEN_OFF = "screen_off";
+    static final String SCREEN_OFF_EXTRA = "screen_off";
 
-    /** Whether to show the flashing warning icon. */
-    private boolean mIsEmergencyAlert;
+    /** Intent extra for non-emergency alerts sent when user selects the notification. */
+    static final String FROM_NOTIFICATION_EXTRA = "from_notification";
 
-    /** The cell broadcast message to display. */
-    CellBroadcastMessage mMessage;
+    /** List of cell broadcast messages to display (oldest to newest). */
+    ArrayList<CellBroadcastMessage> mMessageList;
+
+    /** Whether a CMAS alert other than Presidential Alert was displayed. */
+    private boolean mShowOptOutDialog;
 
     /** Length of time for the warning icon to be visible. */
     private static final int WARNING_ICON_ON_DURATION_MSEC = 800;
@@ -59,37 +73,172 @@
     /** Length of time for the warning icon to be off. */
     private static final int WARNING_ICON_OFF_DURATION_MSEC = 800;
 
-    /** Warning icon state. false = visible, true = off */
-    private boolean mIconAnimationState;
+    /** Length of time to keep the screen turned on. */
+    private static final int KEEP_SCREEN_ON_DURATION_MSEC = 60000;
 
-    /** Stop animating icon after {@link #onStop()} is called. */
-    private boolean mStopAnimation;
+    /** Animation handler for the flashing warning icon (emergency alerts only). */
+    private final AnimationHandler mAnimationHandler = new AnimationHandler();
 
-    /** The warning icon Drawable. */
-    private Drawable mWarningIcon;
+    /** Handler to add and remove screen on flags for emergency alerts. */
+    private final ScreenOffHandler mScreenOffHandler = new ScreenOffHandler();
 
-    /** The View containing the warning icon. */
-    private ImageView mWarningIconView;
+    /**
+     * Animation handler for the flashing warning icon (emergency alerts only).
+     */
+    private class AnimationHandler extends Handler {
+        /** Latest {@code message.what} value for detecting old messages. */
+        private final AtomicInteger mCount = new AtomicInteger();
 
-    /** Icon animation handler for flashing warning alerts. */
-    private final Handler mAnimationHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            if (mIconAnimationState) {
-                mWarningIconView.setImageAlpha(255);
-                if (!mStopAnimation) {
-                    mAnimationHandler.sendEmptyMessageDelayed(0, WARNING_ICON_ON_DURATION_MSEC);
-                }
-            } else {
-                mWarningIconView.setImageAlpha(0);
-                if (!mStopAnimation) {
-                    mAnimationHandler.sendEmptyMessageDelayed(0, WARNING_ICON_OFF_DURATION_MSEC);
-                }
+        /** Warning icon state: visible == true, hidden == false. */
+        private boolean mWarningIconVisible;
+
+        /** The warning icon Drawable. */
+        private Drawable mWarningIcon;
+
+        /** The View containing the warning icon. */
+        private ImageView mWarningIconView;
+
+        /** Package local constructor (called from outer class). */
+        AnimationHandler() {}
+
+        /** Start the warning icon animation. */
+        void startIconAnimation() {
+            if (!initDrawableAndImageView()) {
+                return;     // init failure
             }
-            mIconAnimationState = !mIconAnimationState;
+            mWarningIconVisible = true;
+            mWarningIconView.setVisibility(View.VISIBLE);
+            updateIconState();
+            queueAnimateMessage();
+        }
+
+        /** Stop the warning icon animation. */
+        void stopIconAnimation() {
+            // Increment the counter so the handler will ignore the next message.
+            mCount.incrementAndGet();
+            if (mWarningIconView != null) {
+                mWarningIconView.setVisibility(View.GONE);
+            }
+        }
+
+        /** Update the visibility of the warning icon. */
+        private void updateIconState() {
+            mWarningIconView.setImageAlpha(mWarningIconVisible ? 255 : 0);
             mWarningIconView.invalidateDrawable(mWarningIcon);
         }
-    };
+
+        /** Queue a message to animate the warning icon. */
+        private void queueAnimateMessage() {
+            int msgWhat = mCount.incrementAndGet();
+            sendEmptyMessageDelayed(msgWhat, mWarningIconVisible ? WARNING_ICON_ON_DURATION_MSEC
+                    : WARNING_ICON_OFF_DURATION_MSEC);
+            // Log.d(TAG, "queued animation message id = " + msgWhat);
+        }
+
+        @Override
+        public void handleMessage(Message msg) {
+            if (msg.what == mCount.get()) {
+                mWarningIconVisible = !mWarningIconVisible;
+                updateIconState();
+                queueAnimateMessage();
+            }
+        }
+
+        /**
+         * Initialize the Drawable and ImageView fields.
+         * @return true if successful; false if any field failed to initialize
+         */
+        private boolean initDrawableAndImageView() {
+            if (mWarningIcon == null) {
+                try {
+                    mWarningIcon = getResources().getDrawable(R.drawable.ic_warning_large);
+                } catch (Resources.NotFoundException e) {
+                    Log.e(TAG, "warning icon resource not found", e);
+                    return false;
+                }
+            }
+            if (mWarningIconView == null) {
+                mWarningIconView = (ImageView) findViewById(R.id.icon);
+                if (mWarningIconView != null) {
+                    mWarningIconView.setImageDrawable(mWarningIcon);
+                } else {
+                    Log.e(TAG, "failed to get ImageView for warning icon");
+                    return false;
+                }
+            }
+            return true;
+        }
+    }
+
+    /**
+     * Handler to add {@code FLAG_KEEP_SCREEN_ON} for emergency alerts. After a short delay,
+     * remove the flag so the screen can turn off to conserve the battery.
+     */
+    private class ScreenOffHandler extends Handler {
+        /** Latest {@code message.what} value for detecting old messages. */
+        private final AtomicInteger mCount = new AtomicInteger();
+
+        /** Package local constructor (called from outer class). */
+        ScreenOffHandler() {}
+
+        /** Add screen on window flags and queue a delayed message to remove them later. */
+        void startScreenOnTimer() {
+            addWindowFlags();
+            int msgWhat = mCount.incrementAndGet();
+            removeMessages(msgWhat - 1);    // Remove previous message, if any.
+            sendEmptyMessageDelayed(msgWhat, KEEP_SCREEN_ON_DURATION_MSEC);
+            Log.d(TAG, "added FLAG_KEEP_SCREEN_ON, queued screen off message id " + msgWhat);
+        }
+
+        /** Remove the screen on window flags and any queued screen off message. */
+        void stopScreenOnTimer() {
+            removeMessages(mCount.get());
+            clearWindowFlags();
+        }
+
+        /** Set the screen on window flags. */
+        private void addWindowFlags() {
+            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
+                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+        }
+
+        /** Clear the screen on window flags. */
+        private void clearWindowFlags() {
+            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
+                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+        }
+
+        @Override
+        public void handleMessage(Message msg) {
+            int msgWhat = msg.what;
+            if (msgWhat == mCount.get()) {
+                clearWindowFlags();
+                Log.d(TAG, "removed FLAG_KEEP_SCREEN_ON with id " + msgWhat);
+            } else {
+                Log.e(TAG, "discarding screen off message with id " + msgWhat);
+            }
+        }
+    }
+
+    /** Returns the currently displayed message. */
+    CellBroadcastMessage getLatestMessage() {
+        int index = mMessageList.size() - 1;
+        if (index >= 0) {
+            return mMessageList.get(index);
+        } else {
+            return null;
+        }
+    }
+
+    /** Removes and returns the currently displayed message. */
+    private CellBroadcastMessage removeLatestMessage() {
+        int index = mMessageList.size() - 1;
+        if (index >= 0) {
+            return mMessageList.remove(index);
+        } else {
+            return null;
+        }
+    }
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -105,73 +254,131 @@
                 | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                 | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
 
-        // Turn on the screen unless we're being launched from the dialog subclass as a result of
-        // the screen turning off.
-        if (!getIntent().getBooleanExtra(SCREEN_OFF, false)) {
-            win.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
-                    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-        }
-
-        // Save message for passing from dialog to fullscreen activity, and for marking read.
-        mMessage = getIntent().getParcelableExtra(
-                CellBroadcastMessage.SMS_CB_MESSAGE_EXTRA);
-
-        updateLayout(mMessage);
-    }
-
-    protected int getLayoutResId() {
-        return R.layout.cell_broadcast_alert_fullscreen;
-    }
-
-    private void updateLayout(CellBroadcastMessage message) {
+        // Initialize the view.
         LayoutInflater inflater = LayoutInflater.from(this);
-
         setContentView(inflater.inflate(getLayoutResId(), null));
 
-        /* Initialize dialog text from alert message. */
-        int titleId = CellBroadcastResources.getDialogTitleResource(message);
-        setTitle(titleId);
-        ((TextView) findViewById(R.id.alertTitle)).setText(titleId);
-        ((TextView) findViewById(R.id.message)).setText(
-                CellBroadcastResources.getFormattedMessageBody(this, message));
-
-        /* dismiss button: close notification */
         findViewById(R.id.dismissButton).setOnClickListener(
                 new Button.OnClickListener() {
+                    @Override
                     public void onClick(View v) {
                         dismiss();
                     }
                 });
 
-        mIsEmergencyAlert = message.isPublicAlertMessage() || CellBroadcastConfigService
-                .isOperatorDefinedEmergencyId(message.getServiceCategory());
+        // Get message list from saved Bundle or from Intent.
+        if (savedInstanceState != null) {
+            Log.d(TAG, "onCreate getting message list from saved instance state");
+            mMessageList = savedInstanceState.getParcelableArrayList(
+                    CellBroadcastMessage.SMS_CB_MESSAGE_EXTRA);
+        } else {
+            Log.d(TAG, "onCreate getting message list from intent");
+            Intent intent = getIntent();
+            mMessageList = intent.getParcelableArrayListExtra(
+                    CellBroadcastMessage.SMS_CB_MESSAGE_EXTRA);
 
-        if (mIsEmergencyAlert) {
-            mWarningIcon = getResources().getDrawable(R.drawable.ic_warning_large);
-            mWarningIconView = (ImageView) findViewById(R.id.icon);
-            if (mWarningIconView != null) {
-                mWarningIconView.setImageDrawable(mWarningIcon);
-            }
-
-            // Dismiss the notification that brought us here
-            ((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE))
-                    .cancel((int) message.getDeliveryTime());
+            // If we were started from a notification, dismiss it.
+            clearNotification(intent);
         }
+
+        if (mMessageList != null) {
+            Log.d(TAG, "onCreate loaded message list of size " + mMessageList.size());
+        } else {
+            Log.e(TAG, "onCreate failed to get message list from saved Bundle");
+            finish();
+        }
+
+        // For emergency alerts, keep screen on so the user can read it, unless this is a
+        // full screen alert created by CellBroadcastAlertDialog when the screen turned off.
+        CellBroadcastMessage message = getLatestMessage();
+        if (CellBroadcastConfigService.isEmergencyAlertMessage(message) &&
+                (savedInstanceState != null ||
+                        !getIntent().getBooleanExtra(SCREEN_OFF_EXTRA, false))) {
+            Log.d(TAG, "onCreate setting screen on timer for emergency alert");
+            mScreenOffHandler.startScreenOnTimer();
+        }
+
+        updateAlertText(message);
+    }
+
+    /**
+     * Called by {@link CellBroadcastAlertService} to add a new alert to the stack.
+     * @param intent The new intent containing one or more {@link CellBroadcastMessage}s.
+     */
+    @Override
+    protected void onNewIntent(Intent intent) {
+        ArrayList<CellBroadcastMessage> newMessageList = intent.getParcelableArrayListExtra(
+                CellBroadcastMessage.SMS_CB_MESSAGE_EXTRA);
+        if (newMessageList != null) {
+            Log.d(TAG, "onNewIntent called with message list of size " + newMessageList.size());
+            mMessageList.addAll(newMessageList);
+            updateAlertText(getLatestMessage());
+            // If the new intent was sent from a notification, dismiss it.
+            clearNotification(intent);
+        } else {
+            Log.e(TAG, "onNewIntent called without SMS_CB_MESSAGE_EXTRA, ignoring");
+        }
+    }
+
+    /** Try to cancel any notification that may have started this activity. */
+    private void clearNotification(Intent intent) {
+        if (intent.getBooleanExtra(FROM_NOTIFICATION_EXTRA, false)) {
+            Log.d(TAG, "Dismissing notification");
+            NotificationManager notificationManager =
+                    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+            notificationManager.cancel(CellBroadcastAlertService.NOTIFICATION_ID);
+            CellBroadcastReceiverApp.clearNewMessageList();
+        }
+    }
+
+    /**
+     * Save the list of messages so the state can be restored later.
+     * @param outState Bundle in which to place the saved state.
+     */
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putParcelableArrayList(CellBroadcastMessage.SMS_CB_MESSAGE_EXTRA, mMessageList);
+        Log.d(TAG, "onSaveInstanceState saved message list to bundle");
+    }
+
+    /** Returns the resource ID for either the full screen or dialog layout. */
+    protected int getLayoutResId() {
+        return R.layout.cell_broadcast_alert_fullscreen;
+    }
+
+    /** Update alert text when a new emergency alert arrives. */
+    private void updateAlertText(CellBroadcastMessage message) {
+        int titleId = CellBroadcastResources.getDialogTitleResource(message);
+        setTitle(titleId);
+        ((TextView) findViewById(R.id.alertTitle)).setText(titleId);
+        ((TextView) findViewById(R.id.message)).setText(message.getMessageBody());
     }
 
     /**
      * Start animating warning icon.
      */
     @Override
-    protected void onStart() {
-        super.onStart();
-        if (mIsEmergencyAlert) {
-            // start icon animation
-            mAnimationHandler.sendEmptyMessageDelayed(0, WARNING_ICON_ON_DURATION_MSEC);
+    protected void onResume() {
+        Log.d(TAG, "onResume called");
+        super.onResume();
+        CellBroadcastMessage message = getLatestMessage();
+        if (message != null && CellBroadcastConfigService.isEmergencyAlertMessage(message)) {
+            mAnimationHandler.startIconAnimation();
         }
     }
 
     /**
+     * Stop animating warning icon.
+     */
+    @Override
+    protected void onPause() {
+        Log.d(TAG, "onPause called");
+        mAnimationHandler.stopIconAnimation();
+        super.onPause();
+    }
+
+    /**
      * Stop animating warning icon and stop the {@link CellBroadcastAlertAudio}
      * service if necessary.
      */
@@ -179,7 +386,15 @@
         // Stop playing alert sound/vibration/speech (if started)
         stopService(new Intent(this, CellBroadcastAlertAudio.class));
 
-        final long deliveryTime = mMessage.getDeliveryTime();
+        // Remove the current alert message from the list.
+        CellBroadcastMessage lastMessage = removeLatestMessage();
+        if (lastMessage == null) {
+            Log.e(TAG, "dismiss() called with empty message list!");
+            return;
+        }
+
+        // Mark the alert as read.
+        final long deliveryTime = lastMessage.getDeliveryTime();
 
         // Mark broadcast as read on a background thread.
         new CellBroadcastContentProvider.AsyncCellBroadcastTask(getContentResolver())
@@ -191,16 +406,73 @@
                     }
                 });
 
-        if (mIsEmergencyAlert) {
-            // stop animating emergency alert icon
-            mStopAnimation = true;
-        } else {
-            // decrement unread non-emergency alert count
-            CellBroadcastReceiverApp.decrementUnreadAlertCount();
+        // Set the opt-out dialog flag if this is a CMAS alert (other than Presidential Alert).
+        if (lastMessage.isCmasMessage() && lastMessage.getCmasMessageClass() !=
+                SmsCbCmasInfo.CMAS_CLASS_PRESIDENTIAL_LEVEL_ALERT) {
+            mShowOptOutDialog = true;
         }
+
+        // If there are older emergency alerts to display, update the alert text and return.
+        CellBroadcastMessage nextMessage = getLatestMessage();
+        if (nextMessage != null) {
+            updateAlertText(nextMessage);
+            if (CellBroadcastConfigService.isEmergencyAlertMessage(nextMessage)) {
+                mAnimationHandler.startIconAnimation();
+            } else {
+                mAnimationHandler.stopIconAnimation();
+            }
+            return;
+        }
+
+        // Remove pending screen-off messages (animation messages are removed in onPause()).
+        mScreenOffHandler.stopScreenOnTimer();
+
+        // Show opt-in/opt-out dialog when the first CMAS alert is received.
+        if (mShowOptOutDialog) {
+            SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+            if (prefs.getBoolean(CellBroadcastSettings.KEY_SHOW_CMAS_OPT_OUT_DIALOG, true)) {
+                // Clear the flag so the user will only see the opt-out dialog once.
+                prefs.edit().putBoolean(CellBroadcastSettings.KEY_SHOW_CMAS_OPT_OUT_DIALOG, false)
+                        .apply();
+
+                KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
+                if (km.inKeyguardRestrictedInputMode()) {
+                    Log.d(TAG, "Showing opt-out dialog in new activity (secure keyguard)");
+                    Intent intent = new Intent(this, CellBroadcastOptOutActivity.class);
+                    startActivity(intent);
+                } else {
+                    Log.d(TAG, "Showing opt-out dialog in current activity");
+                    CellBroadcastOptOutActivity.showOptOutDialog(this);
+                    return; // don't call finish() until user dismisses the dialog
+                }
+            }
+        }
+
         finish();
     }
 
+    @Override
+    public boolean dispatchKeyEvent(KeyEvent event) {
+        CellBroadcastMessage message = getLatestMessage();
+        if (message != null && !message.isEtwsMessage()) {
+            switch (event.getKeyCode()) {
+                // Volume keys and camera keys mute the alert sound/vibration (except ETWS).
+                case KeyEvent.KEYCODE_VOLUME_UP:
+                case KeyEvent.KEYCODE_VOLUME_DOWN:
+                case KeyEvent.KEYCODE_VOLUME_MUTE:
+                case KeyEvent.KEYCODE_CAMERA:
+                case KeyEvent.KEYCODE_FOCUS:
+                    // Stop playing alert sound/vibration/speech (if started)
+                    stopService(new Intent(this, CellBroadcastAlertAudio.class));
+                    return true;
+
+                default:
+                    break;
+            }
+        }
+        return super.dispatchKeyEvent(event);
+    }
+
     /**
      * Ignore the back button for emergency alerts (overridden by alert dialog so that the dialog
      * is dismissed).
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java
index 6bf5abb..3cc821c 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java
@@ -26,14 +26,17 @@
 import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.os.IBinder;
-import android.os.PowerManager;
 import android.preference.PreferenceManager;
 import android.provider.Telephony;
 import android.telephony.CellBroadcastMessage;
 import android.telephony.SmsCbCmasInfo;
+import android.telephony.SmsCbLocation;
 import android.telephony.SmsCbMessage;
 import android.util.Log;
 
+import java.util.ArrayList;
+import java.util.HashSet;
+
 /**
  * This service manages the display and animation of broadcast messages.
  * Emergency messages display with a flashing animated exclamation mark icon,
@@ -43,21 +46,57 @@
 public class CellBroadcastAlertService extends Service {
     private static final String TAG = "CellBroadcastAlertService";
 
-    /** Identifier for notification ID extra. */
-    public static final String SMS_CB_NOTIFICATION_ID_EXTRA =
-            "com.android.cellbroadcastreceiver.SMS_CB_NOTIFICATION_ID";
-
-    /** Intent extra to indicate a previously unread alert. */
-    static final String NEW_ALERT_EXTRA = "com.android.cellbroadcastreceiver.NEW_ALERT";
+    /** Intent action to display alert dialog/notification, after verifying the alert is new. */
+    static final String SHOW_NEW_ALERT_ACTION = "cellbroadcastreceiver.SHOW_NEW_ALERT";
 
     /** Use the same notification ID for non-emergency alerts. */
     static final int NOTIFICATION_ID = 1;
 
-    /** CPU wake lock while handling emergency alert notification. */
-    private PowerManager.WakeLock mWakeLock;
+    /** Container for message ID and geographical scope, for duplicate message detection. */
+    private static final class MessageIdAndScope {
+        private final int mMessageId;
+        private final SmsCbLocation mLocation;
 
-    /** Hold the wake lock for 5 seconds, which should be enough time to display the alert. */
-    private static final int WAKE_LOCK_TIMEOUT = 5000;
+        MessageIdAndScope(int messageId, SmsCbLocation location) {
+            mMessageId = messageId;
+            mLocation = location;
+        }
+
+        @Override
+        public int hashCode() {
+            return mMessageId * 31 + mLocation.hashCode();
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (o == this) {
+                return true;
+            }
+            if (o instanceof MessageIdAndScope) {
+                MessageIdAndScope other = (MessageIdAndScope) o;
+                return (mMessageId == other.mMessageId && mLocation.equals(other.mLocation));
+            }
+            return false;
+        }
+
+        @Override
+        public String toString() {
+            return "{messageId: " + mMessageId + " location: " + mLocation.toString() + '}';
+        }
+    }
+
+    /** Cache of received message IDs, for duplicate message detection. */
+    private static final HashSet<MessageIdAndScope> sCmasIdSet = new HashSet<MessageIdAndScope>(8);
+
+    /** Maximum number of message IDs to save before removing the oldest message ID. */
+    private static final int MAX_MESSAGE_ID_SIZE = 65535;
+
+    /** List of message IDs received, for removing oldest ID when max message IDs are received. */
+    private static final ArrayList<MessageIdAndScope> sCmasIdList =
+            new ArrayList<MessageIdAndScope>(8);
+
+    /** Index of message ID to replace with new message ID when max message IDs are received. */
+    private static int sCmasIdListIndex = 0;
 
     @Override
     public int onStartCommand(Intent intent, int flags, int startId) {
@@ -65,10 +104,11 @@
         if (Telephony.Sms.Intents.SMS_EMERGENCY_CB_RECEIVED_ACTION.equals(action) ||
                 Telephony.Sms.Intents.SMS_CB_RECEIVED_ACTION.equals(action)) {
             handleCellBroadcastIntent(intent);
+        } else if (SHOW_NEW_ALERT_ACTION.equals(action)) {
+            showNewAlert(intent);
         } else {
             Log.e(TAG, "Unrecognized intent action: " + action);
         }
-        stopSelf(); // this service always stops after processing the intent
         return START_NOT_STICKY;
     }
 
@@ -93,25 +133,76 @@
             return;
         }
 
-        if (cbm.isEmergencyAlertMessage() || CellBroadcastConfigService
-                .isOperatorDefinedEmergencyId(cbm.getServiceCategory())) {
-            // start alert sound / vibration / TTS and display full-screen alert
-            openEmergencyAlertNotification(cbm);
+        // Check for duplicate message IDs according to CMAS carrier requirements. Message IDs
+        // are stored in volatile memory. If the maximum of 65535 messages is reached, the
+        // message ID of the oldest message is deleted from the list.
+        MessageIdAndScope newMessageId = new MessageIdAndScope(message.getSerialNumber(),
+                message.getLocation());
+
+        // Add the new message ID to the list. It's okay if this is a duplicate message ID,
+        // because the list is only used for removing old message IDs from the hash set.
+        if (sCmasIdList.size() < MAX_MESSAGE_ID_SIZE) {
+            sCmasIdList.add(newMessageId);
         } else {
-            // add notification to the bar
-            addToNotificationBar(cbm);
+            // Get oldest message ID from the list and replace with the new message ID.
+            MessageIdAndScope oldestId = sCmasIdList.get(sCmasIdListIndex);
+            sCmasIdList.set(sCmasIdListIndex, newMessageId);
+            Log.d(TAG, "message ID limit reached, removing oldest message ID " + oldestId);
+            // Remove oldest message ID from the set.
+            sCmasIdSet.remove(oldestId);
+            if (++sCmasIdListIndex >= MAX_MESSAGE_ID_SIZE) {
+                sCmasIdListIndex = 0;
+            }
         }
+        // Set.add() returns false if message ID has already been added
+        if (!sCmasIdSet.add(newMessageId)) {
+            Log.d(TAG, "ignoring duplicate alert with " + newMessageId);
+            return;
+        }
+
+        final Intent alertIntent = new Intent(SHOW_NEW_ALERT_ACTION);
+        alertIntent.setClass(this, CellBroadcastAlertService.class);
+        alertIntent.putExtra("message", cbm);
 
         // write to database on a background thread
         new CellBroadcastContentProvider.AsyncCellBroadcastTask(getContentResolver())
                 .execute(new CellBroadcastContentProvider.CellBroadcastOperation() {
                     @Override
                     public boolean execute(CellBroadcastContentProvider provider) {
-                        return provider.insertNewBroadcast(cbm);
+                        if (provider.insertNewBroadcast(cbm)) {
+                            // new message, show the alert or notification on UI thread
+                            startService(alertIntent);
+                            return true;
+                        } else {
+                            return false;
+                        }
                     }
                 });
     }
 
+    private void showNewAlert(Intent intent) {
+        Bundle extras = intent.getExtras();
+        if (extras == null) {
+            Log.e(TAG, "received SHOW_NEW_ALERT_ACTION with no extras!");
+            return;
+        }
+
+        CellBroadcastMessage cbm = (CellBroadcastMessage) extras.get("message");
+
+        if (cbm == null) {
+            Log.e(TAG, "received SHOW_NEW_ALERT_ACTION with no message extra");
+            return;
+        }
+
+        if (CellBroadcastConfigService.isEmergencyAlertMessage(cbm)) {
+            // start alert sound / vibration / TTS and display full-screen alert
+            openEmergencyAlertNotification(cbm);
+        } else {
+            // add notification to the bar
+            addToNotificationBar(cbm);
+        }
+    }
+
     /**
      * Filter out broadcasts on the test channels that the user has not enabled,
      * and types of notifications that the user is not interested in receiving.
@@ -157,25 +248,13 @@
         return true;    // other broadcast messages are always enabled
     }
 
-    private void acquireTimedWakelock(int timeout) {
-        if (mWakeLock == null) {
-            PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
-            // Note: acquiring a PARTIAL_WAKE_LOCK and setting window flag FLAG_TURN_SCREEN_ON in
-            // CellBroadcastAlertFullScreen is not sufficient to turn on the screen by itself.
-            // Use SCREEN_BRIGHT_WAKE_LOCK here as a workaround to ensure the screen turns on.
-            mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK
-                    | PowerManager.ACQUIRE_CAUSES_WAKEUP, TAG);
-        }
-        mWakeLock.acquire(timeout);
-    }
-
     /**
      * Display a full-screen alert message for emergency alerts.
      * @param message the alert to display
      */
     private void openEmergencyAlertNotification(CellBroadcastMessage message) {
         // Acquire a CPU wake lock until the alert dialog and audio start playing.
-        acquireTimedWakelock(WAKE_LOCK_TIMEOUT);
+        CellBroadcastAlertWakeLock.acquireScreenCpuWakeLock(this);
 
         // Close dialogs and window shade
         Intent closeDialogs = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
@@ -185,13 +264,28 @@
         Intent audioIntent = new Intent(this, CellBroadcastAlertAudio.class);
         audioIntent.setAction(CellBroadcastAlertAudio.ACTION_START_ALERT_AUDIO);
         SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
-        String duration = prefs.getString(CellBroadcastSettings.KEY_ALERT_SOUND_DURATION,
-                CellBroadcastSettings.ALERT_SOUND_DEFAULT_DURATION);
-        audioIntent.putExtra(CellBroadcastAlertAudio.ALERT_AUDIO_DURATION_EXTRA,
-                Integer.parseInt(duration));
 
-        int channelTitleId = CellBroadcastResources.getDialogTitleResource(message);
-        CharSequence channelName = getText(channelTitleId);
+        int duration;   // alert audio duration in ms
+        if (message.isCmasMessage()) {
+            // CMAS requirement: duration of the audio attention signal is 10.5 seconds.
+            duration = 10500;
+        } else {
+            duration = Integer.parseInt(prefs.getString(
+                    CellBroadcastSettings.KEY_ALERT_SOUND_DURATION,
+                    CellBroadcastSettings.ALERT_SOUND_DEFAULT_DURATION)) * 1000;
+        }
+        audioIntent.putExtra(CellBroadcastAlertAudio.ALERT_AUDIO_DURATION_EXTRA, duration);
+
+        if (message.isEtwsMessage()) {
+            // For ETWS, always vibrate, even in silent mode.
+            audioIntent.putExtra(CellBroadcastAlertAudio.ALERT_AUDIO_VIBRATE_EXTRA, true);
+            audioIntent.putExtra(CellBroadcastAlertAudio.ALERT_AUDIO_ETWS_VIBRATE_EXTRA, true);
+        } else {
+            // For other alerts, vibration can be disabled in app settings.
+            audioIntent.putExtra(CellBroadcastAlertAudio.ALERT_AUDIO_VIBRATE_EXTRA,
+                    prefs.getBoolean(CellBroadcastSettings.KEY_ENABLE_ALERT_VIBRATE, true));
+        }
+
         String messageBody = message.getMessageBody();
 
         if (prefs.getBoolean(CellBroadcastSettings.KEY_ENABLE_ALERT_SPEECH, true)) {
@@ -210,9 +304,6 @@
         }
         startService(audioIntent);
 
-        // Use lower 32 bits of emergency alert delivery time for notification ID
-        int notificationId = (int) message.getDeliveryTime();
-
         // Decide which activity to start based on the state of the keyguard.
         Class c = CellBroadcastAlertDialog.class;
         KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
@@ -221,23 +312,12 @@
             c = CellBroadcastAlertFullScreen.class;
         }
 
-        Intent notify = createDisplayMessageIntent(this, c, message, notificationId);
-        PendingIntent pi = PendingIntent.getActivity(this, notificationId, notify, 0);
+        ArrayList<CellBroadcastMessage> messageList = new ArrayList<CellBroadcastMessage>(1);
+        messageList.add(message);
 
-        Notification.Builder builder = new Notification.Builder(this)
-                .setSmallIcon(R.drawable.ic_notify_alert)
-                .setTicker(getText(CellBroadcastResources.getDialogTitleResource(message)))
-                .setWhen(System.currentTimeMillis())
-                .setContentIntent(pi)
-                .setFullScreenIntent(pi, true)
-                .setContentTitle(channelName)
-                .setContentText(messageBody)
-                .setDefaults(Notification.DEFAULT_LIGHTS);
-
-        NotificationManager notificationManager =
-            (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
-
-        notificationManager.notify(notificationId, builder.getNotification());
+        Intent alertDialogIntent = createDisplayMessageIntent(this, c, messageList);
+        alertDialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        startActivity(alertDialogIntent);
     }
 
     /**
@@ -250,11 +330,17 @@
         CharSequence channelName = getText(channelTitleId);
         String messageBody = message.getMessageBody();
 
-        // Use the same ID to create a single notification for multiple non-emergency alerts.
-        int notificationId = NOTIFICATION_ID;
+        // Pass the list of unread non-emergency CellBroadcastMessages
+        ArrayList<CellBroadcastMessage> messageList = CellBroadcastReceiverApp
+                .addNewMessageToList(message);
 
-        PendingIntent pi = PendingIntent.getActivity(this, 0, createDisplayMessageIntent(
-                this, CellBroadcastListActivity.class, message, notificationId), 0);
+        // Create intent to show the new messages when user selects the notification.
+        Intent intent = createDisplayMessageIntent(this, CellBroadcastAlertDialog.class,
+                messageList);
+        intent.putExtra(CellBroadcastAlertFullScreen.FROM_NOTIFICATION_EXTRA, true);
+
+        PendingIntent pi = PendingIntent.getActivity(this, 0, intent,
+                PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_UPDATE_CURRENT);
 
         // use default sound/vibration/lights for non-emergency broadcasts
         Notification.Builder builder = new Notification.Builder(this)
@@ -267,7 +353,7 @@
         builder.setDefaults(Notification.DEFAULT_ALL);
 
         // increment unread alert count (decremented when user dismisses alert dialog)
-        int unreadCount = CellBroadcastReceiverApp.incrementUnreadAlertCount();
+        int unreadCount = messageList.size();
         if (unreadCount > 1) {
             // use generic count of unread broadcasts if more than one unread
             builder.setContentTitle(getString(R.string.notification_multiple_title));
@@ -276,27 +362,17 @@
             builder.setContentTitle(channelName).setContentText(messageBody);
         }
 
-        Log.i(TAG, "addToNotificationBar notificationId: " + notificationId);
-
         NotificationManager notificationManager =
             (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
 
-        notificationManager.notify(notificationId, builder.getNotification());
+        notificationManager.notify(NOTIFICATION_ID, builder.build());
     }
 
     static Intent createDisplayMessageIntent(Context context, Class intentClass,
-            CellBroadcastMessage message, int notificationId) {
+            ArrayList<CellBroadcastMessage> messageList) {
         // Trigger the list activity to fire up a dialog that shows the received messages
         Intent intent = new Intent(context, intentClass);
-        intent.putExtra(CellBroadcastMessage.SMS_CB_MESSAGE_EXTRA, message);
-        intent.putExtra(SMS_CB_NOTIFICATION_ID_EXTRA, notificationId);
-        intent.putExtra(NEW_ALERT_EXTRA, true);
-
-        // This line is needed to make this intent compare differently than the other intents
-        // created here for other messages. Without this line, the PendingIntent always gets the
-        // intent of a previous message and notification.
-        intent.setType(Integer.toString(notificationId));
-
+        intent.putParcelableArrayListExtra(CellBroadcastMessage.SMS_CB_MESSAGE_EXTRA, messageList);
         return intent;
     }
 
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertWakeLock.java b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertWakeLock.java
new file mode 100644
index 0000000..a1360b8
--- /dev/null
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertWakeLock.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.cellbroadcastreceiver;
+
+import android.content.Context;
+import android.os.PowerManager;
+import android.util.Log;
+
+/**
+ * Hold a wakelock that can be acquired in the CellBroadcastAlertService and
+ * released in the CellBroadcastAlertFullScreen Activity.
+ */
+class CellBroadcastAlertWakeLock {
+    private static final String TAG = "CellBroadcastAlertWakeLock";
+
+    private static PowerManager.WakeLock sCpuWakeLock;
+
+    private CellBroadcastAlertWakeLock() {}
+
+    static void acquireScreenCpuWakeLock(Context context) {
+        if (sCpuWakeLock != null) {
+            return;
+        }
+        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
+        sCpuWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK
+                | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, TAG);
+        sCpuWakeLock.acquire();
+        Log.d(TAG, "acquired screen + CPU wake lock");
+    }
+
+    static void releaseCpuLock() {
+        if (sCpuWakeLock != null) {
+            sCpuWakeLock.release();
+            sCpuWakeLock = null;
+            Log.d(TAG, "released screen + CPU wake lock");
+        }
+    }
+}
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java b/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
index bc15394..a321d1b 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
@@ -22,6 +22,7 @@
 import android.content.res.Resources;
 import android.os.SystemProperties;
 import android.preference.PreferenceManager;
+import android.telephony.CellBroadcastMessage;
 import android.telephony.SmsManager;
 import android.text.TextUtils;
 import android.util.Log;
@@ -86,13 +87,24 @@
         manager.enableCellBroadcast(SmsCbConstants.MESSAGE_ID_CMAS_ALERT_PRESIDENTIAL_LEVEL);
     }
 
-    static boolean isOperatorDefinedEmergencyId(int messageId) {
+    /**
+     * Returns true if this is a standard or operator-defined emergency alert message.
+     * This includes all ETWS and CMAS alerts, except for AMBER alerts.
+     * @param message the message to test
+     * @return true if the message is an emergency alert; false otherwise
+     */
+    static boolean isEmergencyAlertMessage(CellBroadcastMessage message) {
+        if (message.isEmergencyAlertMessage()) {
+            return true;
+        }
+
         // Check for system property defining the emergency channel ranges to enable
         String emergencyIdRange = SystemProperties.get("ro.cellbroadcast.emergencyids");
         if (TextUtils.isEmpty(emergencyIdRange)) {
             return false;
         }
         try {
+            int messageId = message.getServiceCategory();
             for (String channelRange : emergencyIdRange.split(",")) {
                 int dashIndex = channelRange.indexOf('-');
                 if (dashIndex != -1) {
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastContentProvider.java b/src/com/android/cellbroadcastreceiver/CellBroadcastContentProvider.java
index 7c26c35..b0a67e5 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastContentProvider.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastContentProvider.java
@@ -184,37 +184,41 @@
     /**
      * Internal method to insert a new Cell Broadcast into the database and notify observers.
      * @param message the message to insert
-     * @return true if the database was updated, false otherwise
+     * @return true if the broadcast is new, false if it's a duplicate broadcast.
      */
     boolean insertNewBroadcast(CellBroadcastMessage message) {
         SQLiteDatabase db = mOpenHelper.getWritableDatabase();
         ContentValues cv = message.getContentValues();
 
+        // Note: this method previously queried the database for duplicate message IDs, but this
+        // is not compatible with CMAS carrier requirements and could also cause other emergency
+        // alerts, e.g. ETWS, to not display if the database is filled with old messages.
+        // Use duplicate message ID detection in CellBroadcastAlertService instead of DB query.
+
         long rowId = db.insert(CellBroadcastDatabaseHelper.TABLE_NAME, null, cv);
-        if (rowId != -1) {
-            return true;
-        } else {
+        if (rowId == -1) {
             Log.e(TAG, "failed to insert new broadcast into database");
-            return false;
+            // Return true on DB write failure because we still want to notify the user.
+            // The CellBroadcastMessage will be passed with the intent, so the message will be
+            // displayed in the emergency alert dialog, or the dialog that is displayed when
+            // the user selects the notification for a non-emergency broadcast, even if the
+            // broadcast could not be written to the database.
         }
+        return true;    // broadcast is not a duplicate
     }
 
     /**
      * Internal method to delete a cell broadcast by row ID and notify observers.
      * @param rowId the row ID of the broadcast to delete
-     * @param decrementUnreadCount true to decrement the count of unread alerts
      * @return true if the database was updated, false otherwise
      */
-    boolean deleteBroadcast(long rowId, boolean decrementUnreadCount) {
+    boolean deleteBroadcast(long rowId) {
         SQLiteDatabase db = mOpenHelper.getWritableDatabase();
 
         int rowCount = db.delete(CellBroadcastDatabaseHelper.TABLE_NAME,
                 Telephony.CellBroadcasts._ID + "=?",
                 new String[]{Long.toString(rowId)});
         if (rowCount != 0) {
-            if (decrementUnreadCount) {
-                CellBroadcastReceiverApp.decrementUnreadAlertCount();
-            }
             return true;
         } else {
             Log.e(TAG, "failed to delete broadcast at row " + rowId);
@@ -231,7 +235,6 @@
 
         int rowCount = db.delete(CellBroadcastDatabaseHelper.TABLE_NAME, null, null);
         if (rowCount != 0) {
-            CellBroadcastReceiverApp.resetUnreadAlertCount();
             return true;
         } else {
             Log.e(TAG, "failed to delete all broadcasts");
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastListActivity.java b/src/com/android/cellbroadcastreceiver/CellBroadcastListActivity.java
index eb75a1e..777c24e 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastListActivity.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastListActivity.java
@@ -44,6 +44,8 @@
 import android.widget.CursorAdapter;
 import android.widget.ListView;
 
+import java.util.ArrayList;
+
 /**
  * This activity provides a list view of received cell broadcasts. Most of the work is handled
  * in the inner CursorLoaderListFragment class.
@@ -79,7 +81,7 @@
 
         // IDs of the context menu items (package local, accessed from inner DeleteThreadListener).
         static final int MENU_DELETE               = 0;
-        static final int MENU_VIEW                 = 1;
+        static final int MENU_VIEW_DETAILS         = 1;
 
         // This is the Adapter being used to display the list's data.
         CursorAdapter mAdapter;
@@ -159,17 +161,29 @@
         private void showDialogAndMarkRead(CellBroadcastMessage cbm) {
             // show emergency alerts with the warning icon, but don't play alert tone
             Intent i = new Intent(getActivity(), CellBroadcastAlertDialog.class);
-            i.putExtra(CellBroadcastMessage.SMS_CB_MESSAGE_EXTRA, cbm);
+            ArrayList<CellBroadcastMessage> messageList = new ArrayList<CellBroadcastMessage>(1);
+            messageList.add(cbm);
+            i.putParcelableArrayListExtra(CellBroadcastMessage.SMS_CB_MESSAGE_EXTRA, messageList);
             startActivity(i);
         }
 
+        private void showBroadcastDetails(CellBroadcastMessage cbm) {
+            // show dialog with delivery date/time and alert details
+            CharSequence details = CellBroadcastResources.getMessageDetails(getActivity(), cbm);
+            new AlertDialog.Builder(getActivity())
+                    .setTitle(R.string.view_details_title)
+                    .setMessage(details)
+                    .setCancelable(true)
+                    .show();
+        }
+
         private final OnCreateContextMenuListener mOnCreateContextMenuListener =
                 new OnCreateContextMenuListener() {
                     @Override
                     public void onCreateContextMenu(ContextMenu menu, View v,
                             ContextMenuInfo menuInfo) {
                         menu.setHeaderTitle(R.string.message_options);
-                        menu.add(0, MENU_VIEW, 0, R.string.menu_view);
+                        menu.add(0, MENU_VIEW_DETAILS, 0, R.string.menu_view_details);
                         menu.add(0, MENU_DELETE, 0, R.string.menu_delete);
                     }
                 };
@@ -180,15 +194,12 @@
             if (cursor != null && cursor.getPosition() >= 0) {
                 switch (item.getItemId()) {
                     case MENU_DELETE:
-                        // We need to decrement the unread alert count if deleting unread alert
-                        boolean isUnread = (cursor.getInt(cursor.getColumnIndexOrThrow(
-                                Telephony.CellBroadcasts.MESSAGE_READ)) == 0);
                         confirmDeleteThread(cursor.getLong(cursor.getColumnIndexOrThrow(
-                                Telephony.CellBroadcasts._ID)), isUnread);
+                                Telephony.CellBroadcasts._ID)));
                         break;
 
-                    case MENU_VIEW:
-                        showDialogAndMarkRead(CellBroadcastMessage.createFromCursor(cursor));
+                    case MENU_VIEW_DETAILS:
+                        showBroadcastDetails(CellBroadcastMessage.createFromCursor(cursor));
                         break;
 
                     default:
@@ -202,7 +213,7 @@
         public boolean onOptionsItemSelected(MenuItem item) {
             switch(item.getItemId()) {
                 case MENU_DELETE_ALL:
-                    confirmDeleteThread(-1, false);
+                    confirmDeleteThread(-1);
                     break;
 
                 case MENU_PREFERENCES:
@@ -219,10 +230,9 @@
         /**
          * Start the process of putting up a dialog to confirm deleting a broadcast.
          * @param rowId the row ID of the broadcast to delete, or -1 to delete all broadcasts
-         * @param unread true if the alert was not already marked as read
          */
-        public void confirmDeleteThread(long rowId, boolean unread) {
-            DeleteThreadListener listener = new DeleteThreadListener(rowId, unread);
+        public void confirmDeleteThread(long rowId) {
+            DeleteThreadListener listener = new DeleteThreadListener(rowId);
             confirmDeleteThreadDialog(listener, (rowId == -1), getActivity());
         }
 
@@ -237,7 +247,7 @@
         public static void confirmDeleteThreadDialog(DeleteThreadListener listener,
                 boolean deleteAll, Context context) {
             AlertDialog.Builder builder = new AlertDialog.Builder(context);
-            builder.setIcon(android.R.drawable.ic_dialog_alert)
+            builder.setIconAttribute(android.R.attr.alertDialogIcon)
                     .setCancelable(true)
                     .setPositiveButton(R.string.button_delete, listener)
                     .setNegativeButton(R.string.button_cancel, null)
@@ -248,11 +258,9 @@
 
         public class DeleteThreadListener implements OnClickListener {
             private final long mRowId;
-            private final boolean mIsUnread;
 
-            public DeleteThreadListener(long rowId, boolean unread) {
+            public DeleteThreadListener(long rowId) {
                 mRowId = rowId;
-                mIsUnread = unread;
             }
 
             @Override
@@ -264,7 +272,7 @@
                             @Override
                             public boolean execute(CellBroadcastContentProvider provider) {
                                 if (mRowId != -1) {
-                                    return provider.deleteBroadcast(mRowId, mIsUnread);
+                                    return provider.deleteBroadcast(mRowId);
                                 } else {
                                     return provider.deleteAllBroadcasts();
                                 }
@@ -275,29 +283,4 @@
             }
         }
     }
-
-    @Override
-    protected void onNewIntent(Intent intent) {
-        if (intent == null) {
-            return;
-        }
-
-        Bundle extras = intent.getExtras();
-        if (extras == null) {
-            return;
-        }
-
-        CellBroadcastMessage cbm = extras.getParcelable(CellBroadcastMessage.SMS_CB_MESSAGE_EXTRA);
-        int notificationId = extras.getInt(CellBroadcastAlertService.SMS_CB_NOTIFICATION_ID_EXTRA);
-
-        // Dismiss the notification that brought us here.
-        NotificationManager notificationManager =
-            (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
-        notificationManager.cancel(notificationId);
-
-        // launch the dialog activity to show the alert
-        Intent i = new Intent(this, CellBroadcastAlertDialog.class);
-        i.putExtra(CellBroadcastMessage.SMS_CB_MESSAGE_EXTRA, cbm);
-        startActivity(i);
-    }
 }
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastListItem.java b/src/com/android/cellbroadcastreceiver/CellBroadcastListItem.java
index 1f7da32..7db5fd2 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastListItem.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastListItem.java
@@ -22,6 +22,7 @@
 import android.telephony.CellBroadcastMessage;
 import android.text.Spannable;
 import android.text.SpannableStringBuilder;
+import android.text.style.StyleSpan;
 import android.util.AttributeSet;
 import android.view.accessibility.AccessibilityEvent;
 import android.widget.RelativeLayout;
@@ -80,8 +81,8 @@
 
         // Unread messages are shown in bold
         if (!message.isRead()) {
-            buf.setSpan(Typeface.DEFAULT_BOLD, 0, buf.length(),
-                    Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
+            buf.setSpan(new StyleSpan(Typeface.BOLD), 0, buf.length(),
+                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
         }
         return buf;
     }
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastOptOutActivity.java b/src/com/android/cellbroadcastreceiver/CellBroadcastOptOutActivity.java
new file mode 100644
index 0000000..76ed537
--- /dev/null
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastOptOutActivity.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.cellbroadcastreceiver;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+
+/**
+ * Container activity for CMAS opt-in/opt-out alert dialog.
+ */
+public class CellBroadcastOptOutActivity extends Activity {
+    private static final String TAG = "CellBroadcastOptOutActivity";
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        Log.d(TAG, "created activity");
+        showOptOutDialog(this);
+    }
+
+    /**
+     * Show the opt-out dialog. Uses the CellBroadcastAlertDialog activity unless the device is
+     * in restricted keyguard mode, in which case we create a new CellBroadcastOptOutActivity
+     * so that the dialog appears underneath the lock screen. The user must unlock the device
+     * to configure the settings, so we don't want to show the opt-in dialog before then.
+     */
+    static void showOptOutDialog(final Activity activity) {
+        AlertDialog.Builder builder = new AlertDialog.Builder(activity);
+        builder.setMessage(R.string.cmas_opt_out_dialog_text)
+                .setPositiveButton(R.string.cmas_opt_out_button_yes,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+                                Log.d(TAG, "User clicked Yes");
+                                activity.finish();
+                            }
+                        })
+                .setNegativeButton(R.string.cmas_opt_out_button_no,
+                        new DialogInterface.OnClickListener() {
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+                                Log.d(TAG, "User clicked No");
+                                Intent intent = new Intent(activity, CellBroadcastSettings.class);
+                                activity.startActivity(intent);
+                                activity.finish();
+                            }
+                        })
+                .create().show();
+    }
+}
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastReceiverApp.java b/src/com/android/cellbroadcastreceiver/CellBroadcastReceiverApp.java
index eb21e17..65e8c72 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastReceiverApp.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastReceiverApp.java
@@ -17,9 +17,11 @@
 package com.android.cellbroadcastreceiver;
 
 import android.app.Application;
+import android.telephony.CellBroadcastMessage;
 import android.util.Log;
 import android.preference.PreferenceManager;
 
+import java.util.ArrayList;
 import java.util.concurrent.atomic.AtomicInteger;
 
 /**
@@ -36,29 +38,18 @@
         PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
     }
 
-    /** Number of unread non-emergency alerts since the device was booted. */
-    private static AtomicInteger sUnreadAlertCount = new AtomicInteger();
+    /** List of unread non-emergency alerts to show when user selects the notification. */
+    private static final ArrayList<CellBroadcastMessage> sNewMessageList =
+            new ArrayList<CellBroadcastMessage>(4);
 
-    /**
-     * Increments the number of unread non-emergency alerts, returning the new value.
-     * @return the updated number of unread non-emergency alerts, after incrementing
-     */
-    static int incrementUnreadAlertCount() {
-        return sUnreadAlertCount.incrementAndGet();
+    /** Adds a new unread non-emergency message and returns the current list. */
+    static ArrayList<CellBroadcastMessage> addNewMessageToList(CellBroadcastMessage message) {
+        sNewMessageList.add(message);
+        return sNewMessageList;
     }
 
-    /**
-     * Decrements the number of unread non-emergency alerts after the user reads it.
-     */
-    static void decrementUnreadAlertCount() {
-        if (sUnreadAlertCount.decrementAndGet() < 0) {
-            Log.e(TAG, "mUnreadAlertCount < 0, resetting to 0");
-            sUnreadAlertCount.set(0);
-        }
-    }
-
-    /** Resets the unread alert count to zero after user deletes all alerts. */
-    static void resetUnreadAlertCount() {
-        sUnreadAlertCount.set(0);
+    /** Clears the list of unread non-emergency messages. */
+    static void clearNewMessageList() {
+        sNewMessageList.clear();
     }
 }
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java b/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java
index fc4b2d1..76d4b42 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java
@@ -23,70 +23,84 @@
 import android.telephony.SmsCbEtwsInfo;
 import android.text.Spannable;
 import android.text.SpannableStringBuilder;
+import android.text.style.StyleSpan;
 
 /**
  * Returns the string resource ID's for CMAS and ETWS emergency alerts.
  */
 public class CellBroadcastResources {
 
+    private CellBroadcastResources() {
+    }
+
     /**
-     * Returns a styled CharSequence containing the message body and optional CMAS alert headers.
+     * Returns a styled CharSequence containing the message date/time and alert details.
      * @param context a Context for resource string access
      * @return a CharSequence for display in the broadcast alert dialog
      */
-    public static CharSequence getFormattedMessageBody(Context context, CellBroadcastMessage cbm) {
+    public static CharSequence getMessageDetails(Context context, CellBroadcastMessage cbm) {
+        SpannableStringBuilder buf = new SpannableStringBuilder();
+
+        // Alert date/time
+        int start = buf.length();
+        buf.append(context.getString(R.string.delivery_time_heading));
+        int end = buf.length();
+        buf.setSpan(new StyleSpan(Typeface.BOLD), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+        buf.append(" ");
+        buf.append(cbm.getDateString(context));
+
         if (cbm.isCmasMessage()) {
-            SmsCbCmasInfo cmasInfo = cbm.getCmasWarningInfo();
-            SpannableStringBuilder buf = new SpannableStringBuilder();
-
-            // CMAS category
-            int categoryId = getCmasCategoryResId(cmasInfo);
-            if (categoryId != 0) {
-                buf.append(context.getText(R.string.cmas_category_heading));
-                buf.append(context.getText(categoryId));
-                buf.append('\n');
-            }
-
-            // CMAS response type
-            int responseId = getCmasResponseResId(cmasInfo);
-            if (responseId != 0) {
-                buf.append(context.getText(R.string.cmas_response_heading));
-                buf.append(context.getText(responseId));
-                buf.append('\n');
-            }
-
-            // CMAS severity
-            int severityId = getCmasSeverityResId(cmasInfo);
-            if (severityId != 0) {
-                buf.append(context.getText(R.string.cmas_severity_heading));
-                buf.append(context.getText(severityId));
-                buf.append('\n');
-            }
-
-            // CMAS urgency
-            int urgencyId = getCmasUrgencyResId(cmasInfo);
-            if (urgencyId != 0) {
-                buf.append(context.getText(R.string.cmas_urgency_heading));
-                buf.append(context.getText(urgencyId));
-                buf.append('\n');
-            }
-
-            // CMAS certainty
-            int certaintyId = getCmasCertaintyResId(cmasInfo);
-            if (certaintyId != 0) {
-                buf.append(context.getText(R.string.cmas_certainty_heading));
-                buf.append(context.getText(certaintyId));
-                buf.append('\n');
-            }
-
-            // Style all headings in bold
-            buf.setSpan(Typeface.DEFAULT_BOLD, 0, buf.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
-
-            buf.append(cbm.getMessageBody());
-            return buf;
-        } else {
-            return cbm.getMessageBody();
+            // CMAS category, response type, severity, urgency, certainty
+            appendCmasAlertDetails(context, buf, cbm.getCmasWarningInfo());
         }
+
+        return buf;
+    }
+
+    private static void appendCmasAlertDetails(Context context, SpannableStringBuilder buf,
+            SmsCbCmasInfo cmasInfo) {
+        // CMAS category
+        int categoryId = getCmasCategoryResId(cmasInfo);
+        if (categoryId != 0) {
+            appendMessageDetail(context, buf, R.string.cmas_category_heading, categoryId);
+        }
+
+        // CMAS response type
+        int responseId = getCmasResponseResId(cmasInfo);
+        if (responseId != 0) {
+            appendMessageDetail(context, buf, R.string.cmas_response_heading, responseId);
+        }
+
+        // CMAS severity
+        int severityId = getCmasSeverityResId(cmasInfo);
+        if (severityId != 0) {
+            appendMessageDetail(context, buf, R.string.cmas_severity_heading, severityId);
+        }
+
+        // CMAS urgency
+        int urgencyId = getCmasUrgencyResId(cmasInfo);
+        if (urgencyId != 0) {
+            appendMessageDetail(context, buf, R.string.cmas_urgency_heading, urgencyId);
+        }
+
+        // CMAS certainty
+        int certaintyId = getCmasCertaintyResId(cmasInfo);
+        if (certaintyId != 0) {
+            appendMessageDetail(context, buf, R.string.cmas_certainty_heading, certaintyId);
+        }
+    }
+
+    private static void appendMessageDetail(Context context, SpannableStringBuilder buf,
+            int typeId, int valueId) {
+        if (buf.length() != 0) {
+            buf.append("\n");
+        }
+        int start = buf.length();
+        buf.append(context.getString(typeId));
+        int end = buf.length();
+        buf.setSpan(new StyleSpan(Typeface.BOLD), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+        buf.append(" ");
+        buf.append(context.getString(valueId));
     }
 
     /**
@@ -275,7 +289,7 @@
             }
         }
 
-        if (cbm.isPublicAlertMessage()) {
+        if (CellBroadcastConfigService.isEmergencyAlertMessage(cbm)) {
             return R.string.pws_other_message_identifiers;
         } else {
             return R.string.cb_other_message_identifiers;
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java b/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java
index 973cb31..a7c7482 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java
@@ -40,6 +40,9 @@
     // Default alert duration (in seconds).
     public static final String ALERT_SOUND_DEFAULT_DURATION = "4";
 
+    // Enable vibration on alert (unless master volume is silent).
+    public static final String KEY_ENABLE_ALERT_VIBRATE = "enable_alert_vibrate";
+
     // Speak contents of alert after playing the alert sound.
     public static final String KEY_ENABLE_ALERT_SPEECH = "enable_alert_speech";
 
@@ -76,6 +79,9 @@
     // Enabled by default for phones sold in Brazil, otherwise this setting may be hidden.
     public static final String KEY_ENABLE_CHANNEL_50_ALERTS = "enable_channel_50_alerts";
 
+    // Preference key for initial opt-in/opt-out dialog.
+    public static final String KEY_SHOW_CMAS_OPT_OUT_DIALOG = "show_cmas_opt_out_dialog";
+
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -110,8 +116,8 @@
                     };
 
             // Show extra settings when developer options is enabled in settings.
-            boolean enableDevSettings = Settings.Secure.getInt(getActivity().getContentResolver(),
-                    Settings.Secure.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0;
+            boolean enableDevSettings = Settings.Global.getInt(getActivity().getContentResolver(),
+                    Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0;
 
             Resources res = getResources();
             boolean showEtwsSettings = res.getBoolean(R.bool.show_etws_settings);
diff --git a/tests/res/layout/test_buttons.xml b/tests/res/layout/test_buttons.xml
index 2dd3849..96103cb 100644
--- a/tests/res/layout/test_buttons.xml
+++ b/tests/res/layout/test_buttons.xml
@@ -25,6 +25,23 @@
     android:layout_height="match_parent"
     android:orientation="vertical">
 
+    <LinearLayout
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      android:orientation="horizontal">
+
+      <TextView android:id="@+id/message_id_label"
+          android:layout_width="wrap_content"
+          android:layout_height="wrap_content"
+          android:text="@string/message_id_label" />
+
+      <EditText android:id="@+id/message_id"
+          android:layout_width="80dp"
+          android:layout_height="wrap_content"
+          android:inputType="number" />
+
+    </LinearLayout>
+
     <CheckBox android:id="@+id/button_delay_broadcast"
         android:text="@string/button_delay_broadcast"
         android:layout_marginLeft="20dp"
diff --git a/tests/res/values-af/strings.xml b/tests/res/values-af/strings.xml
index 4a24527..ac61760 100644
--- a/tests/res/values-af/strings.xml
+++ b/tests/res/values-af/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Stuur GSM-UCS-2 met taal"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Stuur UMTS-UC-2 met taal"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Vertraag met 5 sekondes voordat gestuur word"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Boodskap-ID:"</string>
 </resources>
diff --git a/tests/res/values-am/strings.xml b/tests/res/values-am/strings.xml
index 0301cec..a011c2e 100644
--- a/tests/res/values-am/strings.xml
+++ b/tests/res/values-am/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">" GSM UCS-2  በቋንቋ  ላከ"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"UMTS UCS-2  በቋንቋ ላክ"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"ከመላኩ በፊት 5 ሰከንዶች አዘግይ"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"የመልዕክት መታወቂያ፦"</string>
 </resources>
diff --git a/tests/res/values-ar/strings.xml b/tests/res/values-ar/strings.xml
index a56a31a..6c3b3f6 100644
--- a/tests/res/values-ar/strings.xml
+++ b/tests/res/values-ar/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"إرسال كود GSM UCS-2 مع اللغة"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"إرسال كود النظام العالمي لاتصالات الجوال عن بعد (UMTS) ‏UCS-2 مع اللغة"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"التأخير 5 ثوانٍ قبل الإرسال"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"معرف الرسالة:"</string>
 </resources>
diff --git a/tests/res/values-be/strings.xml b/tests/res/values-be/strings.xml
index 553c759..a0d9275 100644
--- a/tests/res/values-be/strings.xml
+++ b/tests/res/values-be/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Адправіць GSM UCS-2 на мове"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Адправіць UMTS UCS-2 на мове"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Затрымка 5 секунд перад адпраўкай"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Ідэнтыфікатар паведамлення:"</string>
 </resources>
diff --git a/tests/res/values-bg/strings.xml b/tests/res/values-bg/strings.xml
index bacd54c..6d1a520 100644
--- a/tests/res/values-bg/strings.xml
+++ b/tests/res/values-bg/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Изпращане на SMS в UCS-2 на даден език"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Изпращане на SMS в UCS-2 на даден език чрез универсална мобилна телекомуникационна услуга (UMTS)"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"5-секундно забавяне преди изпращане"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Идент. № на съобщението:"</string>
 </resources>
diff --git a/tests/res/values-ca/strings.xml b/tests/res/values-ca/strings.xml
index 2c14349..b0d7ef5 100644
--- a/tests/res/values-ca/strings.xml
+++ b/tests/res/values-ca/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Envia GSM UCS-2 amb idioma"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Envia UMTS UCS-2 amb idioma"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Retarda 5 segons abans d\'enviar"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Id. del missatge:"</string>
 </resources>
diff --git a/tests/res/values-cs/strings.xml b/tests/res/values-cs/strings.xml
index f286d5a..d2c12a0 100644
--- a/tests/res/values-cs/strings.xml
+++ b/tests/res/values-cs/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Odeslat GSM UCS-2 s jazykem"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Odeslat UMTS (UCS-2) s jazykem"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Před odesláním prodleva 5 sekund"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"ID zprávy:"</string>
 </resources>
diff --git a/tests/res/values-da/strings.xml b/tests/res/values-da/strings.xml
index b751015..231422b 100644
--- a/tests/res/values-da/strings.xml
+++ b/tests/res/values-da/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Send GSM UCS-2 med sprog"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Send GSM UCS-2 With Language"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Vent 5 sekunder, før du sender"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Meddelelses-id:"</string>
 </resources>
diff --git a/tests/res/values-de/strings.xml b/tests/res/values-de/strings.xml
index d8a2392..8067c5d 100644
--- a/tests/res/values-de/strings.xml
+++ b/tests/res/values-de/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"GSM UCS-2 mit Sprache senden"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"UMTS UCS-2 - mit Sprache senden"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"5 Sekunden Verzögerung vor dem Senden"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Nachrichten-ID:"</string>
 </resources>
diff --git a/tests/res/values-el/strings.xml b/tests/res/values-el/strings.xml
index 74b6db5..cdb3703 100644
--- a/tests/res/values-el/strings.xml
+++ b/tests/res/values-el/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Αποστολή GSM UCS-2 με τη Γλώσσα"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Αποστολή UMTS UCS-2 With Language"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Καθυστέρηση 5 δευτερόλεπτα πριν από την αποστολή"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Αναγνωριστικό μηνύματος:"</string>
 </resources>
diff --git a/tests/res/values-en-rGB/strings.xml b/tests/res/values-en-rGB/strings.xml
index fec0217..b571708 100644
--- a/tests/res/values-en-rGB/strings.xml
+++ b/tests/res/values-en-rGB/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Send GSM UCS-2 With Language"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Send UMTS UCS-2 With Language"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Delay 5 seconds before sending"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Message-ID:"</string>
 </resources>
diff --git a/tests/res/values-es-rUS/strings.xml b/tests/res/values-es-rUS/strings.xml
index 776fbf3..ec0f45b 100644
--- a/tests/res/values-es-rUS/strings.xml
+++ b/tests/res/values-es-rUS/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Enviar GSM UCS-2, con idioma"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Enviar UMTS UCS-2 con idioma"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Retrasar 5 segundos antes de enviar"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"ID de mensaje:"</string>
 </resources>
diff --git a/tests/res/values-es/strings.xml b/tests/res/values-es/strings.xml
index ffb2ae1..e0a155e 100644
--- a/tests/res/values-es/strings.xml
+++ b/tests/res/values-es/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Enviar GSM UCS-2 con idioma"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Enviar UMTS UCS-2 con idioma"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Retrasar 5 segundos antes de enviar"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"ID de mensaje:"</string>
 </resources>
diff --git a/tests/res/values-et/strings.xml b/tests/res/values-et/strings.xml
index 7f8ad03..0c703da 100644
--- a/tests/res/values-et/strings.xml
+++ b/tests/res/values-et/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Saada GSM UCS-2 koos keelega"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Saada UMTS UCS-2 koos keelega"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Viivita 5 sekundit enne saatmist"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Sõnumi ID:"</string>
 </resources>
diff --git a/tests/res/values-fa/strings.xml b/tests/res/values-fa/strings.xml
index 0cc9b8e..7632c86 100644
--- a/tests/res/values-fa/strings.xml
+++ b/tests/res/values-fa/strings.xml
@@ -39,5 +39,6 @@
     <string name="button_gsm_ucs2_multipage_umts_type" msgid="4557772309524939206">"ارسال پخش چند صفحه‌ای UMTS UCS-2"</string>
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"ارسال GSM UCS-2 با زبان"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"ارسال UMTS UCS-2 با زبان"</string>
-    <string name="button_delay_broadcast" msgid="5138650276363839541">"5 ثانیه تأخیر قبل از ارسال"</string>
+    <string name="button_delay_broadcast" msgid="5138650276363839541">"۵ ثانیه تأخیر قبل از ارسال"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"شناسه پیام:"</string>
 </resources>
diff --git a/tests/res/values-fi/strings.xml b/tests/res/values-fi/strings.xml
index ca085a7..ad7c998 100644
--- a/tests/res/values-fi/strings.xml
+++ b/tests/res/values-fi/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Lähetä GSM UCS-2 kielellä"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Lähetä GSM UCS-2 kielellä"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"5 sekunnin viive ennen lähettämistä"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Viestin tunnus:"</string>
 </resources>
diff --git a/tests/res/values-fr/strings.xml b/tests/res/values-fr/strings.xml
index 69d49e4..9b19526 100644
--- a/tests/res/values-fr/strings.xml
+++ b/tests/res/values-fr/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Envoyer en GSM UCS-2 avec le langage"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Envoyer en UMTS UCS-2 avec le langage"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Retarder l\'envoi de cinq secondes"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Identifiant du message :"</string>
 </resources>
diff --git a/tests/res/values-hi/strings.xml b/tests/res/values-hi/strings.xml
index 90637f6..a859bc6 100644
--- a/tests/res/values-hi/strings.xml
+++ b/tests/res/values-hi/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"भाषा के साथ GSM UCS-2 भेजें"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"भाषा के साथ UMTS UCS-2 भेजें"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"भेजने से पहले 5 सेकंड का विलंब रखें"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"संदेश ID:"</string>
 </resources>
diff --git a/tests/res/values-hr/strings.xml b/tests/res/values-hr/strings.xml
index bcfbe27..7272709 100644
--- a/tests/res/values-hr/strings.xml
+++ b/tests/res/values-hr/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Pošalji GSM UCS-2 s jezikom"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Pošalji UMTS UCS-2 s jezikom"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Odgodi slanje za 5 sekundi"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"ID poruke:"</string>
 </resources>
diff --git a/tests/res/values-hu/strings.xml b/tests/res/values-hu/strings.xml
index e27bd5a..75a42b3 100644
--- a/tests/res/values-hu/strings.xml
+++ b/tests/res/values-hu/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"GSM UCS-2 küldése nyelvvel együtt"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"UMTS UCS-2 küldése nyelvvel együtt"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"5 másodperces késleltetés küldés előtt"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Üzenetazonosító:"</string>
 </resources>
diff --git a/tests/res/values-in/strings.xml b/tests/res/values-in/strings.xml
index af5e4e8..67f1c3a 100644
--- a/tests/res/values-in/strings.xml
+++ b/tests/res/values-in/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Kirimkan GSM UCS-2 Dengan Bahasa"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Kirim UMTS UCS-2 Dengan Bahasa"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Tunda 5 detik sebelum mengirim"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"ID Pesan:"</string>
 </resources>
diff --git a/tests/res/values-it/strings.xml b/tests/res/values-it/strings.xml
index fb3d0a5..1be65c4 100644
--- a/tests/res/values-it/strings.xml
+++ b/tests/res/values-it/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Invia GSM UCS-2 con lingua"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Invia UMTS UCS-2 con lingua"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Ritarda 5 secondi prima di inviare"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"ID messaggio:"</string>
 </resources>
diff --git a/tests/res/values-iw/strings.xml b/tests/res/values-iw/strings.xml
index 83dad69..4daf73d 100644
--- a/tests/res/values-iw/strings.xml
+++ b/tests/res/values-iw/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"שלח GSM UCS-2 עם שפה"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"שלח UMTS UCS-2 עם שפה"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"עיכוב של 5 שניות לפני שליחה"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"מזהה הודעה:"</string>
 </resources>
diff --git a/tests/res/values-ja/strings.xml b/tests/res/values-ja/strings.xml
index 39a6ee5..36ce498 100644
--- a/tests/res/values-ja/strings.xml
+++ b/tests/res/values-ja/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"言語と共にGSM UCS-2を送信"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"言語と共にUMTS UCS-2を送信"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"送信を5秒遅らせる"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"メッセージID:"</string>
 </resources>
diff --git a/tests/res/values-ko/strings.xml b/tests/res/values-ko/strings.xml
index f8d341c..1e3640c 100644
--- a/tests/res/values-ko/strings.xml
+++ b/tests/res/values-ko/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"언어와 GSM UCS-2를 전송"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"언어와 UMTS UCS-2 보내기"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"보내기 전에 5초 지연"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"메시지 ID:"</string>
 </resources>
diff --git a/tests/res/values-lt/strings.xml b/tests/res/values-lt/strings.xml
index 139affb..7662d4a 100644
--- a/tests/res/values-lt/strings.xml
+++ b/tests/res/values-lt/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Siųsti GSM UCS-2 su kalba"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Siųsti UMTS UCS-2 su kalba"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Atidėti 5 sek. prieš siunčiant"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Pranešimo ID:"</string>
 </resources>
diff --git a/tests/res/values-lv/strings.xml b/tests/res/values-lv/strings.xml
index 3a6cfff..f7fba62 100644
--- a/tests/res/values-lv/strings.xml
+++ b/tests/res/values-lv/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Sūtīt GSM UCS-2 formātā, ar valodu"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Sūtīt UMTS UCS-2 formātā, ar valodu"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Pirms nosūtīšanas aizkavēt 5 sekundes"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Ziņojuma ID:"</string>
 </resources>
diff --git a/tests/res/values-ms/strings.xml b/tests/res/values-ms/strings.xml
index 543762a..016e580 100644
--- a/tests/res/values-ms/strings.xml
+++ b/tests/res/values-ms/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Hantar GSM UCS-2 Dengan Bahasa"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Hantar UMTS UCS-2 Dengan Bahasa"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Lengah 5 saat sebelum menghantar"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"ID Mesej:"</string>
 </resources>
diff --git a/tests/res/values-nb/strings.xml b/tests/res/values-nb/strings.xml
index 706da74..31a0372 100644
--- a/tests/res/values-nb/strings.xml
+++ b/tests/res/values-nb/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Send GSM UCS-2 med språk"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Send UMTS UCS-2 med språk"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Send etter en fem sekunders forsinkelse"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Meldings-ID:"</string>
 </resources>
diff --git a/tests/res/values-nl/strings.xml b/tests/res/values-nl/strings.xml
index 0f6a839..04abd72 100644
--- a/tests/res/values-nl/strings.xml
+++ b/tests/res/values-nl/strings.xml
@@ -20,7 +20,7 @@
     <string name="button_etws_normal_type" msgid="3852703138521119537">"Normaal ETWS-bericht verzenden"</string>
     <string name="button_etws_cancel_type" msgid="7194264116649371175">"ETWS annuleringsbericht sturen"</string>
     <string name="button_etws_test_type" msgid="6353906188028139901">"ETWS-testbericht verzenden"</string>
-    <string name="button_cmas_pres_alert" msgid="5905111586384766558">"Presidentiële waarschuwing voor CMAS verzenden"</string>
+    <string name="button_cmas_pres_alert" msgid="5905111586384766558">"Nationale CMAS-waarschuwing verzenden"</string>
     <string name="button_cmas_extreme_alert" msgid="6111658124447111920">"Extreme waarschuwing voor CMAS verzenden"</string>
     <string name="button_cmas_severe_alert" msgid="9051731172452500819">"Ernstige waarschuwing voor CMAS verzenden"</string>
     <string name="button_cmas_amber_alert" msgid="4217147800913845288">"AMBER-alert voor CMAS verzenden"</string>
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"GSM UCS-2 met taal sturen"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"UMTS UCS-2 met taal sturen"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Vertraging van vijf seconden voor verzending"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Bericht-ID:"</string>
 </resources>
diff --git a/tests/res/values-pl/strings.xml b/tests/res/values-pl/strings.xml
index 72f0bd9..af770f7 100644
--- a/tests/res/values-pl/strings.xml
+++ b/tests/res/values-pl/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Wyślij w kodowaniu GSM UCS-2 z kodem języka"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Wyślij UMTS UCS-2 z kodem języka"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Opóźnienie 5 sekund przed wysłaniem"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Identyfikator wiadomości:"</string>
 </resources>
diff --git a/tests/res/values-pt-rPT/strings.xml b/tests/res/values-pt-rPT/strings.xml
index b104792..637fa0b 100644
--- a/tests/res/values-pt-rPT/strings.xml
+++ b/tests/res/values-pt-rPT/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Enviar GSM UCS-2 Com Idioma"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Enviar UCS-2 UMTS com Linguagem"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Atrasar 5 segundos antes de enviar"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"ID da Mensagem:"</string>
 </resources>
diff --git a/tests/res/values-pt/strings.xml b/tests/res/values-pt/strings.xml
index aa2fe0f..347892b 100644
--- a/tests/res/values-pt/strings.xml
+++ b/tests/res/values-pt/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Enviar GSM UCS-2 com idioma"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Enviar UMTS UCS-2 com idioma"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Demorar cinco segundos antes de enviar"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"ID da mensagem:"</string>
 </resources>
diff --git a/tests/res/values-ro/strings.xml b/tests/res/values-ro/strings.xml
index ca72e41..6ef0934 100644
--- a/tests/res/values-ro/strings.xml
+++ b/tests/res/values-ro/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Trimiteţi mesaj GSM UCS-2 în care să precizaţi limba"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Trimiteţi un mesaj UMTS UCS-2 în care să precizaţi limba"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Întârziaţi 5 secunde înaintea trimiterii"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"ID-ul mesajului:"</string>
 </resources>
diff --git a/tests/res/values-ru/strings.xml b/tests/res/values-ru/strings.xml
index 137aafb..9dd2799 100644
--- a/tests/res/values-ru/strings.xml
+++ b/tests/res/values-ru/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Отправить GSM-сообщение UCS-2 с языком"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Отправить UMTS-сообщение UCS-2 с языком"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Задержка перед отправкой 5 секунд"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Идентификатор сообщения:"</string>
 </resources>
diff --git a/tests/res/values-sk/strings.xml b/tests/res/values-sk/strings.xml
index 1db1145..73993e4 100644
--- a/tests/res/values-sk/strings.xml
+++ b/tests/res/values-sk/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Odoslať GSM UCS-2 s jazykom"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Odoslať UMTS UCS-2 s jazykom"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Pred odoslaním oneskoriť o 5 s"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"ID správy:"</string>
 </resources>
diff --git a/tests/res/values-sl/strings.xml b/tests/res/values-sl/strings.xml
index 7ee6593..7bbf81b 100644
--- a/tests/res/values-sl/strings.xml
+++ b/tests/res/values-sl/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Pošlji GSM UCS-2 z jezikom"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Pošlji UMTS UCS-2 z jezikom"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Pred pošiljanjem počakaj 5 sekund"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"ID sporočila:"</string>
 </resources>
diff --git a/tests/res/values-sr/strings.xml b/tests/res/values-sr/strings.xml
index 5b31ac9..e28de39 100644
--- a/tests/res/values-sr/strings.xml
+++ b/tests/res/values-sr/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Пошаљи GSM UCS-2 са језиком"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Пошаљи UMTS UCS-2 са језиком"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Кашњење од пет секунди пре слања"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"ИД поруке:"</string>
 </resources>
diff --git a/tests/res/values-sv/strings.xml b/tests/res/values-sv/strings.xml
index 679560c..70b3183 100644
--- a/tests/res/values-sv/strings.xml
+++ b/tests/res/values-sv/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Skicka GSM UCS-2 med språk"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Skicka UMTS UCS-2 med språk"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Fördröj 5 sekunder före sändning"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Meddelande-ID:"</string>
 </resources>
diff --git a/tests/res/values-sw/strings.xml b/tests/res/values-sw/strings.xml
index 223a1d7..add354b 100644
--- a/tests/res/values-sw/strings.xml
+++ b/tests/res/values-sw/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Tuma GSM UCS-2 na Lugha"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Tuma  UMTS UCS-2 na Lugha"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Chelewesha sekunde 5 kabla ya kutuma"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Kitambulisho cha Ujumbe:"</string>
 </resources>
diff --git a/tests/res/values-th/strings.xml b/tests/res/values-th/strings.xml
index 2568630..7d3d941 100644
--- a/tests/res/values-th/strings.xml
+++ b/tests/res/values-th/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"ส่ง GSM UCS-2 ด้วยภาษา"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"ส่ง UMTS UCS-2 ด้วยภาษา"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"หน่วงเวลา 5 วินาทีก่อนที่จะส่ง"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"รหัสข้อความ:"</string>
 </resources>
diff --git a/tests/res/values-tl/strings.xml b/tests/res/values-tl/strings.xml
index 93e09ed..4273d64 100644
--- a/tests/res/values-tl/strings.xml
+++ b/tests/res/values-tl/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Ipadala ang GSM UCS-2 na May Wika"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Ipadala ang UMTS UCS-2 With Language"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Iantala ng 5 segundo bago ipadala"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"ID ng Mensahe:"</string>
 </resources>
diff --git a/tests/res/values-tr/strings.xml b/tests/res/values-tr/strings.xml
index d74ebe6..85d7384 100644
--- a/tests/res/values-tr/strings.xml
+++ b/tests/res/values-tr/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"GSM UCS-2\'yi Dil Koduyla gönder"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"UMTS UCS-2\'yi Dil Koduyla gönder"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Göndermeden önce 5 saniye beklet"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Mesaj Kimliği:"</string>
 </resources>
diff --git a/tests/res/values-uk/strings.xml b/tests/res/values-uk/strings.xml
index 323e684..9d5d0eb 100644
--- a/tests/res/values-uk/strings.xml
+++ b/tests/res/values-uk/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Надіслати GSM-повідомлення з кодуванням UCS-2 для мови"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Надіслати UMTS-повідомлення з кодуванням UCS-2 для мови"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Затримка 5 секунд перед надсиланням"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"Ідентифікатор повідомлення:"</string>
 </resources>
diff --git a/tests/res/values-vi/strings.xml b/tests/res/values-vi/strings.xml
index 3961598..ccd8a5c 100644
--- a/tests/res/values-vi/strings.xml
+++ b/tests/res/values-vi/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Gửi GSM UCS-2 bằng ngôn ngữ"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Gửi UMTS UCS-2 có ngôn ngữ"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Trễ 5 giây trước khi gửi"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"ID thư:"</string>
 </resources>
diff --git a/tests/res/values-zh-rCN/strings.xml b/tests/res/values-zh-rCN/strings.xml
index 3802a6a..656c8c0 100644
--- a/tests/res/values-zh-rCN/strings.xml
+++ b/tests/res/values-zh-rCN/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"发送特定语言的 GSM UCS-2 编码信息"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"发送特定语言的 UMTS UCS-2 编码信息"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"延迟 5 秒后发送"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"讯息 ID:"</string>
 </resources>
diff --git a/tests/res/values-zh-rTW/strings.xml b/tests/res/values-zh-rTW/strings.xml
index a33074d..5f944db 100644
--- a/tests/res/values-zh-rTW/strings.xml
+++ b/tests/res/values-zh-rTW/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"傳送特定語言的 GSM UCS-2 訊息"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"傳送特定語言的 UMTS UCS-2 訊息"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"傳送前延遲 5 秒"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"訊息編號:"</string>
 </resources>
diff --git a/tests/res/values-zu/strings.xml b/tests/res/values-zu/strings.xml
index d8e8543..ad0d3c8 100644
--- a/tests/res/values-zu/strings.xml
+++ b/tests/res/values-zu/strings.xml
@@ -40,4 +40,5 @@
     <string name="button_gsm_ucs2_with_language_type" msgid="8992961254390480388">"Thumela Uhlelo Lomhlaba Lokuxhumana Kwamaselula lwe-UCS-2 Ngezilimi"</string>
     <string name="button_gsm_ucs2_with_language_umts_type" msgid="1080788762601688380">"Thumela i-UMTS UCS-2 Ngezilimi"</string>
     <string name="button_delay_broadcast" msgid="5138650276363839541">"Yephuza ngamasekhondi angu-5 ngaphambi kokuthumela"</string>
+    <string name="message_id_label" msgid="4365322663037110887">"I-ID yomlayezo:"</string>
 </resources>
diff --git a/tests/res/values/strings.xml b/tests/res/values/strings.xml
index 5968e1c..b1b1031 100644
--- a/tests/res/values/strings.xml
+++ b/tests/res/values/strings.xml
@@ -39,4 +39,5 @@
     <string name="button_gsm_ucs2_with_language_type">Send GSM UCS-2 With Language</string>
     <string name="button_gsm_ucs2_with_language_umts_type">Send UMTS UCS-2 With Language</string>
     <string name="button_delay_broadcast">Delay 5 seconds before sending</string>
+    <string name="message_id_label">Message ID:</string>
 </resources>
diff --git a/tests/src/com/android/cellbroadcastreceiver/DialogSmsDisplayTests.java b/tests/src/com/android/cellbroadcastreceiver/DialogSmsDisplayTests.java
index 095ce06..b2150f1 100644
--- a/tests/src/com/android/cellbroadcastreceiver/DialogSmsDisplayTests.java
+++ b/tests/src/com/android/cellbroadcastreceiver/DialogSmsDisplayTests.java
@@ -27,8 +27,8 @@
 
 import com.android.internal.telephony.EncodeException;
 import com.android.internal.telephony.GsmAlphabet;
-import com.android.internal.telephony.IccUtils;
 import com.android.internal.telephony.gsm.GsmSmsCbMessage;
+import com.android.internal.telephony.uicc.IccUtils;
 
 /**
  * Various instrumentation tests for CellBroadcastReceiver.
diff --git a/tests/src/com/android/cellbroadcastreceiver/tests/SendCdmaCmasMessages.java b/tests/src/com/android/cellbroadcastreceiver/tests/SendCdmaCmasMessages.java
index 17f76cb..f7bee6e 100644
--- a/tests/src/com/android/cellbroadcastreceiver/tests/SendCdmaCmasMessages.java
+++ b/tests/src/com/android/cellbroadcastreceiver/tests/SendCdmaCmasMessages.java
@@ -27,7 +27,6 @@
 import android.util.Log;
 
 import com.android.internal.telephony.GsmAlphabet;
-import com.android.internal.telephony.IccUtils;
 import com.android.internal.telephony.cdma.sms.BearerData;
 import com.android.internal.telephony.cdma.sms.CdmaSmsAddress;
 import com.android.internal.telephony.cdma.sms.SmsEnvelope;
@@ -62,9 +61,9 @@
 
     private static final String IS91_TEXT = "IS91 SHORT MSG";   // max length 14 chars
 
-    public static void testSendCmasPresAlert(Activity activity) {
+    public static void testSendCmasPresAlert(Activity activity, int messageId) {
         SmsCbMessage cbMessage = createCmasSmsMessage(
-                SmsEnvelope.SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT, 12345, "en",
+                SmsEnvelope.SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT, messageId, "en",
                 PRES_ALERT, SmsCbCmasInfo.CMAS_CATEGORY_GEO,
                 SmsCbCmasInfo.CMAS_RESPONSE_TYPE_PREPARE, SmsCbCmasInfo.CMAS_SEVERITY_EXTREME,
                 SmsCbCmasInfo.CMAS_URGENCY_EXPECTED, SmsCbCmasInfo.CMAS_CERTAINTY_LIKELY);
@@ -74,9 +73,9 @@
         activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
     }
 
-    public static void testSendCmasExtremeAlert(Activity activity) {
+    public static void testSendCmasExtremeAlert(Activity activity, int messageId) {
         SmsCbMessage cbMessage = createCmasSmsMessage(
-                SmsEnvelope.SERVICE_CATEGORY_CMAS_EXTREME_THREAT, 23456, "en",
+                SmsEnvelope.SERVICE_CATEGORY_CMAS_EXTREME_THREAT, messageId, "en",
                 EXTREME_ALERT, SmsCbCmasInfo.CMAS_CATEGORY_MET,
                 SmsCbCmasInfo.CMAS_RESPONSE_TYPE_PREPARE, SmsCbCmasInfo.CMAS_SEVERITY_EXTREME,
                 SmsCbCmasInfo.CMAS_URGENCY_EXPECTED, SmsCbCmasInfo.CMAS_CERTAINTY_OBSERVED);
@@ -86,9 +85,9 @@
         activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
     }
 
-    public static void testSendCmasSevereAlert(Activity activity) {
+    public static void testSendCmasSevereAlert(Activity activity, int messageId) {
         SmsCbMessage cbMessage = createCmasSmsMessage(
-                SmsEnvelope.SERVICE_CATEGORY_CMAS_SEVERE_THREAT, 34567, "en",
+                SmsEnvelope.SERVICE_CATEGORY_CMAS_SEVERE_THREAT, messageId, "en",
                 SEVERE_ALERT, SmsCbCmasInfo.CMAS_CATEGORY_HEALTH,
                 SmsCbCmasInfo.CMAS_RESPONSE_TYPE_AVOID, SmsCbCmasInfo.CMAS_SEVERITY_SEVERE,
                 SmsCbCmasInfo.CMAS_URGENCY_IMMEDIATE, SmsCbCmasInfo.CMAS_CERTAINTY_LIKELY);
@@ -98,9 +97,9 @@
         activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
     }
 
-    public static void testSendCmasAmberAlert(Activity activity) {
+    public static void testSendCmasAmberAlert(Activity activity, int messageId) {
         SmsCbMessage cbMessage = createCmasSmsMessage(
-                SmsEnvelope.SERVICE_CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY, 45678, "en",
+                SmsEnvelope.SERVICE_CATEGORY_CMAS_CHILD_ABDUCTION_EMERGENCY, messageId, "en",
                 AMBER_ALERT, SmsCbCmasInfo.CMAS_CATEGORY_UNKNOWN,
                 SmsCbCmasInfo.CMAS_RESPONSE_TYPE_UNKNOWN, SmsCbCmasInfo.CMAS_SEVERITY_UNKNOWN,
                 SmsCbCmasInfo.CMAS_URGENCY_UNKNOWN, SmsCbCmasInfo.CMAS_CERTAINTY_UNKNOWN);
@@ -110,9 +109,9 @@
         activity.sendOrderedBroadcast(intent, "android.permission.RECEIVE_SMS");
     }
 
-    public static void testSendCmasMonthlyTest(Activity activity) {
+    public static void testSendCmasMonthlyTest(Activity activity, int messageId) {
         SmsCbMessage cbMessage = createCmasSmsMessage(
-                SmsEnvelope.SERVICE_CATEGORY_CMAS_TEST_MESSAGE, 56789, "en",
+                SmsEnvelope.SERVICE_CATEGORY_CMAS_TEST_MESSAGE, messageId, "en",
                 MONTHLY_TEST_ALERT, SmsCbCmasInfo.CMAS_CATEGORY_UNKNOWN,
                 SmsCbCmasInfo.CMAS_RESPONSE_TYPE_UNKNOWN, SmsCbCmasInfo.CMAS_SEVERITY_UNKNOWN,
                 SmsCbCmasInfo.CMAS_URGENCY_UNKNOWN, SmsCbCmasInfo.CMAS_CERTAINTY_UNKNOWN);
diff --git a/tests/src/com/android/cellbroadcastreceiver/tests/SendTestBroadcastActivity.java b/tests/src/com/android/cellbroadcastreceiver/tests/SendTestBroadcastActivity.java
index 0e73101..f47ffd2 100644
--- a/tests/src/com/android/cellbroadcastreceiver/tests/SendTestBroadcastActivity.java
+++ b/tests/src/com/android/cellbroadcastreceiver/tests/SendTestBroadcastActivity.java
@@ -20,16 +20,20 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.util.Log;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.widget.Button;
 import android.widget.CheckBox;
+import android.widget.EditText;
+
+import java.util.Random;
 
 /**
  * Activity to send test cell broadcast messages from GUI.
  */
 public class SendTestBroadcastActivity extends Activity {
-    private static String TAG = "SendTestBroadcastActivity";
+    private static final String TAG = "SendTestBroadcastActivity";
 
     /** Whether to delay before sending test message. */
     private boolean mDelayBeforeSending;
@@ -37,19 +41,35 @@
     /** Delay time before sending test message (when box is checked). */
     private static final int DELAY_BEFORE_SENDING_MSEC = 5000;
 
-    /** Callback for sending test message after delay */
-    private OnClickListener mPendingButtonClick;
-
-    private Handler mDelayHandler = new Handler() {
+    private final Handler mDelayHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
             // call the onClick() method again, passing null View.
             // The callback will ignore mDelayBeforeSending when the View is null.
-            mPendingButtonClick.onClick(null);
+            OnClickListener pendingButtonClick = (OnClickListener) msg.obj;
+            pendingButtonClick.onClick(null);
         }
     };
 
-
+    /**
+     * Increment the message ID field and return the previous value.
+     * @return the current value of the message ID text field
+     */
+    private int getMessageId() {
+        EditText messageIdField = (EditText) findViewById(R.id.message_id);
+        int messageId = 0;
+        try {
+            messageId = Integer.parseInt(messageIdField.getText().toString());
+        } catch (NumberFormatException ignored) {
+            Log.e(TAG, "Invalid message ID");
+        }
+        int newMessageId = (messageId + 1) % 65536;
+        if (newMessageId == 0) {
+            newMessageId = 1;
+        }
+        messageIdField.setText(String.valueOf(newMessageId));
+        return messageId;
+    }
 
     /**
      * Initialization of the Activity after it is first created.  Must at least
@@ -61,14 +81,18 @@
         super.onCreate(savedInstanceState);
 
         setContentView(R.layout.test_buttons);
+
+        /* Set message ID to a random value from 1-65535. */
+        EditText messageIdField = (EditText) findViewById(R.id.message_id);
+        messageIdField.setText(String.valueOf(new Random().nextInt(65535) + 1));
                 
         /* Send an ETWS normal broadcast message to app. */
         Button etwsNormalTypeButton = (Button) findViewById(R.id.button_etws_normal_type);
         etwsNormalTypeButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
                     SendTestMessages.testSendEtwsMessageNormal(SendTestBroadcastActivity.this);
                 }
@@ -80,8 +104,8 @@
         etwsCancelTypeButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
                     SendTestMessages.testSendEtwsMessageCancel(SendTestBroadcastActivity.this);
                 }
@@ -93,8 +117,8 @@
         etwsTestTypeButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
                     SendTestMessages.testSendEtwsMessageTest(SendTestBroadcastActivity.this);
                 }
@@ -106,10 +130,11 @@
         cmasPresAlertButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
-                    SendCdmaCmasMessages.testSendCmasPresAlert(SendTestBroadcastActivity.this);
+                    SendCdmaCmasMessages.testSendCmasPresAlert(SendTestBroadcastActivity.this,
+                            getMessageId());
                 }
             }
         });
@@ -119,10 +144,11 @@
         cmasExtremeAlertButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
-                    SendCdmaCmasMessages.testSendCmasExtremeAlert(SendTestBroadcastActivity.this);
+                    SendCdmaCmasMessages.testSendCmasExtremeAlert(SendTestBroadcastActivity.this,
+                            getMessageId());
                 }
             }
         });
@@ -132,10 +158,11 @@
         cmasSevereAlertButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
-                    SendCdmaCmasMessages.testSendCmasSevereAlert(SendTestBroadcastActivity.this);
+                    SendCdmaCmasMessages.testSendCmasSevereAlert(SendTestBroadcastActivity.this,
+                            getMessageId());
                 }
             }
         });
@@ -145,10 +172,11 @@
         cmasAmberAlertButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
-                    SendCdmaCmasMessages.testSendCmasAmberAlert(SendTestBroadcastActivity.this);
+                    SendCdmaCmasMessages.testSendCmasAmberAlert(SendTestBroadcastActivity.this,
+                            getMessageId());
                 }
             }
         });
@@ -158,10 +186,11 @@
         cmasMonthlyTestButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
-                    SendCdmaCmasMessages.testSendCmasMonthlyTest(SendTestBroadcastActivity.this);
+                    SendCdmaCmasMessages.testSendCmasMonthlyTest(SendTestBroadcastActivity.this,
+                            getMessageId());
                 }
             }
         });
@@ -171,8 +200,8 @@
         gsm7bitTypeButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
                     SendTestMessages.testSendMessage7bit(SendTestBroadcastActivity.this);
                 }
@@ -184,8 +213,8 @@
         gsm7bitUmtsTypeButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
                     SendTestMessages.testSendMessage7bitUmts(SendTestBroadcastActivity.this);
                 }
@@ -197,8 +226,8 @@
         gsm7bitNoPaddingButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
                     SendTestMessages.testSendMessage7bitNoPadding(SendTestBroadcastActivity.this);
                 }
@@ -211,8 +240,8 @@
         gsm7bitNoPaddingUmtsTypeButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
                     SendTestMessages.testSendMessage7bitNoPaddingUmts(SendTestBroadcastActivity.this);
                 }
@@ -225,8 +254,8 @@
         gsm7bitMultipageButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
                     SendTestMessages.testSendMessage7bitMultipageGsm(SendTestBroadcastActivity.this);
                 }
@@ -239,8 +268,8 @@
         gsm7bitMultipageUmtsButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
                     SendTestMessages.testSendMessage7bitMultipageUmts(SendTestBroadcastActivity.this);
                 }
@@ -253,8 +282,8 @@
         gsm7bitWithLanguageButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
                     SendTestMessages.testSendMessage7bitWithLanguage(SendTestBroadcastActivity.this);
                 }
@@ -267,8 +296,8 @@
         gsm7bitWithLanguageInBodyButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
                     SendTestMessages.testSendMessage7bitWithLanguageInBody(
                             SendTestBroadcastActivity.this);
@@ -282,8 +311,8 @@
         gsm7bitWithLanguageUmtsButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
                     SendTestMessages.testSendMessage7bitWithLanguageInBodyUmts(SendTestBroadcastActivity.this);
                 }
@@ -295,8 +324,8 @@
         gsmUcs2TypeButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
                     SendTestMessages.testSendMessageUcs2(SendTestBroadcastActivity.this);
                 }
@@ -308,8 +337,8 @@
         gsmUcs2UmtsTypeButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
                     SendTestMessages.testSendMessageUcs2Umts(SendTestBroadcastActivity.this);
                 }
@@ -322,8 +351,8 @@
         gsmUcs2MultipageUmtsTypeButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
                     SendTestMessages.testSendMessageUcs2MultipageUmts(SendTestBroadcastActivity.this);
                 }
@@ -336,8 +365,8 @@
         gsmUcs2WithLanguageTypeButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
                     SendTestMessages.testSendMessageUcs2WithLanguageInBody(SendTestBroadcastActivity.this);
                 }
@@ -350,8 +379,8 @@
         gsmUcs2WithLanguageUmtsTypeButton.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
                 if (mDelayBeforeSending && v != null) {
-                    mPendingButtonClick = this;
-                    mDelayHandler.sendEmptyMessageDelayed(0, DELAY_BEFORE_SENDING_MSEC);
+                    Message msg = mDelayHandler.obtainMessage(0, this);
+                    mDelayHandler.sendMessageDelayed(msg, DELAY_BEFORE_SENDING_MSEC);
                 } else {
                     SendTestMessages.testSendMessageUcs2WithLanguageUmts(SendTestBroadcastActivity.this);
                 }
diff --git a/tests/src/com/android/cellbroadcastreceiver/tests/SendTestMessages.java b/tests/src/com/android/cellbroadcastreceiver/tests/SendTestMessages.java
index a8496ff..e634b23 100644
--- a/tests/src/com/android/cellbroadcastreceiver/tests/SendTestMessages.java
+++ b/tests/src/com/android/cellbroadcastreceiver/tests/SendTestMessages.java
@@ -25,8 +25,8 @@
 
 import com.android.internal.telephony.EncodeException;
 import com.android.internal.telephony.GsmAlphabet;
-import com.android.internal.telephony.IccUtils;
 import com.android.internal.telephony.gsm.GsmSmsCbMessage;
+import com.android.internal.telephony.uicc.IccUtils;
 
 import java.io.UnsupportedEncodingException;