Merge tag 'android-6.0.0_r26' into HEAD

Android 6.0.0 release 26

* tag 'android-6.0.0_r26':
  Fixed that "Turn on notification" does not work.
  Import translations. DO NOT MERGE
  Import translations. DO NOT MERGE
  Fixed the incorrect audio duration used for ETWS messages.
  Make CMAS monthly test messages additional language enabled for all SIMs.
  Always show "Turn on Notification" for some carriers.
  Added CMAS monthly test additional language messages support.
  Fixed that severe CMAS messages were not disabled.
  Import translations. DO NOT MERGE

Change-Id: Ieb1e2122bf15b1712910a8c7ef73e98f4699c355
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml
index 2065071..d4f9914 100644
--- a/res/values-gu-rIN/strings.xml
+++ b/res/values-gu-rIN/strings.xml
@@ -69,7 +69,7 @@
     <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_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>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index fa30a7d..4f18971 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -51,7 +51,7 @@
     <string name="alert_sound_duration_title" msgid="4712853569849108005">"경고음 지속 시간"</string>
     <string name="alert_reminder_interval_title" msgid="3283595202268218149">"경고 알림"</string>
     <string name="enable_alert_speech_title" msgid="8052104771053526941">"경고 메시지를 음성 언어로 표시"</string>
-    <string name="enable_alert_speech_summary" msgid="356086178962268831">"비상사태 경고 메시지를 TTX 기능을 사용하여 음성 언어로 알림"</string>
+    <string name="enable_alert_speech_summary" msgid="356086178962268831">"비상사태 경고 메시지를 TTS 기능을 사용하여 음성 언어로 알림"</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>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index bccf57d..6f23e68 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -20,7 +20,7 @@
     <string name="sms_cb_settings" msgid="971917159442705371">"Instellingen voor cell broadcasts"</string>
     <string name="cell_broadcast_settings_not_available" msgid="2612364350745967915">"Instellingen voor cell broadcast zijn niet beschikbaar voor deze gebruiker"</string>
     <string name="button_dismiss" msgid="1234221657930516287">"OK"</string>
-    <string name="no_cell_broadcasts" msgid="5409324337492758562">"Er zijn geen actieve waarschuwingen in uw omgeving. U kunt de waarschuwingsinstellingen wijzigen via de menuoptie \'Instellingen\'."</string>
+    <string name="no_cell_broadcasts" msgid="5409324337492758562">"Er zijn geen actieve waarschuwingen in je omgeving. Je kunt de waarschuwingsinstellingen wijzigen via de menuoptie \'Instellingen\'."</string>
     <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>
@@ -105,7 +105,7 @@
     <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_dialog_text" msgid="7529010670998259128">"Je ontvangt momenteel noodmeldingen. Wil je 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">
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 38eed0e..c35a71a 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -36,17 +36,17 @@
     <string name="etws_earthquake_and_tsunami_warning" msgid="662449983177407681">"Avertizare de cutremur și tsunami"</string>
     <string name="etws_test_message" msgid="8447820262584381894">"Mesaj de testare ETWS"</string>
     <string name="etws_other_emergency_type" msgid="5233080551309721499">"Avertizare de urgenţă"</string>
-    <string name="cmas_presidential_level_alert" msgid="1209234030582361001">"Alertă prezidenţială"</string>
+    <string name="cmas_presidential_level_alert" msgid="1209234030582361001">"Alertă prezidențială"</string>
     <string name="cmas_extreme_alert" msgid="2588720613319969289">"Alertă de urgenţă: extremă"</string>
     <string name="cmas_severe_alert" msgid="4135809475315826913">"Alertă de urgenţă: severă"</string>
     <string name="cmas_amber_alert" msgid="6154867710264778887">"Răpire copil (alertă Amber)"</string>
     <string name="cmas_required_monthly_test" msgid="6464047268150108932">"Testare lunară pentru alerte de urgenţă"</string>
-    <string name="cmas_exercise_alert" msgid="2892255514938370321">"Alertă de urgenţă (exerciţiu)"</string>
+    <string name="cmas_exercise_alert" msgid="2892255514938370321">"Alertă de urgenţă (exercițiu)"</string>
     <string name="cmas_operator_defined_alert" msgid="8755372450810011476">"Alertă de urgenţă (operator)"</string>
     <string name="pws_other_message_identifiers" msgid="1813329661891149820">"Alertă de urgenţă"</string>
     <string name="cb_other_message_identifiers" msgid="7083176204482365281">"Transmisie celulară"</string>
     <string name="emergency_alert_settings_title" msgid="5427868392642771940">"Setări pentru alerte de urgenţă"</string>
-    <string name="enable_emergency_alerts_title" msgid="1411195469162410084">"Activaţi notificările"</string>
+    <string name="enable_emergency_alerts_title" msgid="1411195469162410084">"Activați notificările"</string>
     <string name="enable_emergency_alerts_summary" msgid="5932655529367149358">"Afişaţi difuzările cu alerte de urgenţă"</string>
     <string name="alert_sound_duration_title" msgid="4712853569849108005">"Durata sunetului pentru alertă"</string>
     <string name="alert_reminder_interval_title" msgid="3283595202268218149">"Memento alerte"</string>
@@ -55,12 +55,12 @@
     <string name="category_etws_settings_title" msgid="4072774251965938576">"Setări ETWS"</string>
     <string name="enable_etws_test_alerts_title" msgid="2569886288897109169">"Afişaţi alerte de test ETWS"</string>
     <string name="enable_etws_test_alerts_summary" msgid="7988690174166347072">"Afişaţi difuzările de testare pentru sistemul de avertizare în caz de cutremur și tsunami"</string>
-    <string name="enable_cmas_extreme_threat_alerts_title" msgid="215650211797464620">"Afişaţi ameninţările extreme"</string>
-    <string name="enable_cmas_extreme_threat_alerts_summary" msgid="2493139961243300290">"Afişaţi alertele pentru ameninţările extreme în ceea ce priveşte viaţa și bunurile"</string>
-    <string name="enable_cmas_severe_threat_alerts_title" msgid="8008941231371565775">"Afişaţi ameninţările grave"</string>
-    <string name="enable_cmas_severe_threat_alerts_summary" msgid="4089299793459943222">"Afişaţi alertele pentru ameninţările grave în ceea ce priveşte viaţa și bunurile"</string>
+    <string name="enable_cmas_extreme_threat_alerts_title" msgid="215650211797464620">"Afişaţi amenințările extreme"</string>
+    <string name="enable_cmas_extreme_threat_alerts_summary" msgid="2493139961243300290">"Afişaţi alertele pentru amenințările extreme în ceea ce priveşte viaţa și bunurile"</string>
+    <string name="enable_cmas_severe_threat_alerts_title" msgid="8008941231371565775">"Afişaţi amenințările grave"</string>
+    <string name="enable_cmas_severe_threat_alerts_summary" msgid="4089299793459943222">"Afişaţi alertele pentru amenințările grave în ceea ce priveşte viaţa și bunurile"</string>
     <string name="enable_cmas_amber_alerts_title" msgid="997138378272381777">"Afişaţi alertele AMBER"</string>
-    <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_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>
@@ -68,11 +68,11 @@
     <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="category_dev_settings_title" msgid="6194393458398329994">"Opțiuni dezvoltator"</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>
+    <string name="cmas_category_safety" msgid="2986472639641883453">"Siguranță"</string>
     <string name="cmas_category_security" msgid="2549520159044403704">"Securitate"</string>
     <string name="cmas_category_rescue" msgid="4907571719983321086">"Salvare"</string>
     <string name="cmas_category_fire" msgid="3331981591918341119">"Incendiu"</string>
@@ -83,27 +83,27 @@
     <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="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_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="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_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_heading" msgid="8218282767913431492">"Urgență:"</string>
     <string name="cmas_urgency_immediate" msgid="1577485208196449288">"Imediat"</string>
-    <string name="cmas_urgency_expected" msgid="6830831119872375936">"Aşteptat"</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_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>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index 3813610..4493367 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -119,6 +119,6 @@
     <item msgid="6595211083588795160">"Bir marta"</item>
     <item msgid="9097229303902157183">"Har 2 daqiqada"</item>
     <item msgid="5676933700148002666">"Har 15 daqiqada"</item>
-    <item msgid="694355015442188708">"O‘chirilgan"</item>
+    <item msgid="694355015442188708">"O‘chirib qo‘yish"</item>
   </string-array>
 </resources>
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java
index 03d83c4..8ea36b0 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java
@@ -312,15 +312,24 @@
                     message.getSubId(), SubscriptionManager.CB_ETWS_TEST_ALERT, false, this);
         }
 
+        if (message.isEtwsMessage()) {
+            // ETWS messages.
+            // Turn on/off emergency notifications is the only way to turn on/off ETWS messages.
+            return SubscriptionManager.getBooleanSubscriptionProperty(message.getSubId(),
+                    SubscriptionManager.CB_EMERGENCY_ALERT, true, this);
+        }
+
         if (message.isCmasMessage()) {
             switch (message.getCmasMessageClass()) {
                 case SmsCbCmasInfo.CMAS_CLASS_EXTREME_THREAT:
                     return SubscriptionManager.getBooleanSubscriptionProperty(
-                            message.getSubId(), SubscriptionManager.CB_EXTREME_THREAT_ALERT, true, this);
+                            message.getSubId(),
+                            SubscriptionManager.CB_EXTREME_THREAT_ALERT, true, this);
 
                 case SmsCbCmasInfo.CMAS_CLASS_SEVERE_THREAT:
                     return SubscriptionManager.getBooleanSubscriptionProperty(
-                            message.getSubId(), SubscriptionManager.CB_SEVERE_THREAT_ALERT, true, this);
+                            message.getSubId(),
+                            SubscriptionManager.CB_SEVERE_THREAT_ALERT, true, this);
 
                 case SmsCbCmasInfo.CMAS_CLASS_CHILD_ABDUCTION_EMERGENCY:
                     return SubscriptionManager.getBooleanSubscriptionProperty(
@@ -331,7 +340,8 @@
                 case SmsCbCmasInfo.CMAS_CLASS_OPERATOR_DEFINED_USE:
                     return !forceDisableEtwsCmasTest &&
                             SubscriptionManager.getBooleanSubscriptionProperty(
-                            message.getSubId(), SubscriptionManager.CB_CMAS_TEST_ALERT, false, this);
+                            message.getSubId(),
+                                    SubscriptionManager.CB_CMAS_TEST_ALERT, false, this);
                 default:
                     return true;    // presidential-level CMAS alerts are always enabled
             }
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java b/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
index ab29b10..8133c51 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
@@ -218,8 +218,12 @@
                 int cmasAmber = SmsCbConstants.MESSAGE_ID_CMAS_ALERT_CHILD_ABDUCTION_EMERGENCY;
                 int cmasTestStart = SmsCbConstants.MESSAGE_ID_CMAS_ALERT_REQUIRED_MONTHLY_TEST;
                 int cmasTestEnd = SmsCbConstants.MESSAGE_ID_CMAS_ALERT_OPERATOR_DEFINED_USE;
+                int cmasTestLanguageStart =
+                        SmsCbConstants.MESSAGE_ID_CMAS_ALERT_REQUIRED_MONTHLY_TEST_LANGUAGE;
+                int cmasTestLanguageEnd =
+                        SmsCbConstants.MESSAGE_ID_CMAS_ALERT_OPERATOR_DEFINED_USE_LANGUAGE;
                 int cmasPresident = SmsCbConstants.MESSAGE_ID_CMAS_ALERT_PRESIDENTIAL_LEVEL;
-                int cmasTaiwanPWS =
+                int cmasPresidentLanguage =
                         SmsCbConstants.MESSAGE_ID_CMAS_ALERT_PRESIDENTIAL_LEVEL_LANGUAGE;
 
                 // set to CDMA broadcast ID rage if phone is in CDMA mode.
@@ -278,16 +282,10 @@
                             manager.enableCellBroadcast(
                                     SmsEnvelope.SERVICE_CATEGORY_CMAS_TEST_MESSAGE,
                                     SmsManager.CELL_BROADCAST_RAN_TYPE_CDMA);
+                            manager.enableCellBroadcastRange(
+                                    cmasTestLanguageStart, cmasTestLanguageEnd,
+                                    SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
                         }
-                        // CMAS Presidential must be on (See 3GPP TS 22.268 Section 6.2).
-                        manager.enableCellBroadcast(cmasPresident,
-                                SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
-                        manager.enableCellBroadcast(
-                                SmsEnvelope.SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT,
-                                SmsManager.CELL_BROADCAST_RAN_TYPE_CDMA);
-                        // register Taiwan PWS 4383 also, by default
-                        manager.enableCellBroadcast(cmasTaiwanPWS,
-                                SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
                     }
                     if (DBG) log("enabled emergency cell broadcast channels");
                 } else {
@@ -330,19 +328,25 @@
                         manager.disableCellBroadcast(
                                 SmsEnvelope.SERVICE_CATEGORY_CMAS_TEST_MESSAGE,
                                 SmsManager.CELL_BROADCAST_RAN_TYPE_CDMA);
-                        // CMAS Presidential must be on (See 3GPP TS 22.268 Section 6.2).
-                        manager.enableCellBroadcast(cmasPresident,
-                                SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
-                        manager.enableCellBroadcast(
-                                SmsEnvelope.SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT,
-                                SmsManager.CELL_BROADCAST_RAN_TYPE_CDMA);
-                        // register Taiwan PWS 4383 also, by default
-                        manager.enableCellBroadcast(cmasTaiwanPWS,
-                                SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
+
                     }
                     if (DBG) log("disabled emergency cell broadcast channels");
                 }
 
+                // CMAS Presidential must be on (See 3GPP TS 22.268 Section 6.2).
+                manager.enableCellBroadcast(cmasPresident,
+                        SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
+                manager.enableCellBroadcast(
+                        SmsEnvelope.SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT,
+                        SmsManager.CELL_BROADCAST_RAN_TYPE_CDMA);
+
+                // CMAS Presidential additional language must be on per Taiwan regulation.
+                // Technical Specifications of the Telecommunications Land Mobile 10 (PLMN10)
+                // 5.14.2.3 Channel 4383 shows public warning messages in English and shall not
+                // be turned off.
+                manager.enableCellBroadcast(cmasPresidentLanguage,
+                        SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
+
                 if (enableChannel50Alerts) {
                     if (DBG) log("enabling cell broadcast channel 50");
                     manager.enableCellBroadcast(50, SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
@@ -415,6 +419,9 @@
                             SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
                     manager.disableCellBroadcast(SmsEnvelope.SERVICE_CATEGORY_CMAS_TEST_MESSAGE,
                             SmsManager.CELL_BROADCAST_RAN_TYPE_CDMA);
+                    manager.disableCellBroadcastRange(
+                            cmasTestLanguageStart, cmasTestLanguageEnd,
+                            SmsManager.CELL_BROADCAST_RAN_TYPE_GSM);
                 }
             } catch (Exception ex) {
                 Log.e(TAG, "exception enabling cell broadcast channels", ex);
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java b/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java
index b210b27..f8b02b2 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java
@@ -339,9 +339,11 @@
             boolean forceDisableEtwsCmasTest =
                     isEtwsCmasTestMessageForcedDisabled(this, mSir.getSubscriptionId());
 
-            // Show alert settings and ETWS categories for ETWS builds and developer mode.
-            if (enableDevSettings || showEtwsSettings) {
-                // enable/disable all alerts
+            boolean emergencyAlertOnOffOptionEnabled =
+                    isEmergencyAlertOnOffOptionEnabled(this, mSir.getSubscriptionId());
+
+            if (enableDevSettings || showEtwsSettings || emergencyAlertOnOffOptionEnabled) {
+                // enable/disable all alerts except CMAS presidential alerts.
                 if (mEmergencyCheckBox != null) {
                     if (SubscriptionManager.getBooleanSubscriptionProperty(mSir.getSubscriptionId(),
                             SubscriptionManager.CB_EMERGENCY_ALERT, true, this)) {
@@ -351,6 +353,12 @@
                     }
                     mEmergencyCheckBox.setOnPreferenceChangeListener(startConfigServiceListener);
                 }
+            } else {
+                mAlertCategory.removePreference(findPreference(KEY_ENABLE_EMERGENCY_ALERTS));
+            }
+
+            // Show alert settings and ETWS categories for ETWS builds and developer mode.
+            if (enableDevSettings || showEtwsSettings) {
 
                 // alert sound duration
                 queryReturnVal = SubscriptionManager.getIntegerSubscriptionProperty(
@@ -388,7 +396,7 @@
                 }
             } else {
                 // Remove general emergency alert preference items (not shown for CMAS builds).
-                mAlertCategory.removePreference(findPreference(KEY_ENABLE_EMERGENCY_ALERTS));
+
                 mAlertCategory.removePreference(findPreference(KEY_ALERT_SOUND_DURATION));
                 mAlertCategory.removePreference(findPreference(KEY_ENABLE_ALERT_SPEECH));
                 // Remove ETWS test preference category.
@@ -592,6 +600,30 @@
         return false;
     }
 
+    // Check if "Turn on Notifications" option should be always displayed regardless of developer
+    // options turned on or not.
+    public static boolean isEmergencyAlertOnOffOptionEnabled(Context context, int subId) {
+
+        if (context == null) {
+            return false;
+        }
+
+        CarrierConfigManager configManager =
+                (CarrierConfigManager) context.getSystemService(Context.CARRIER_CONFIG_SERVICE);
+
+        if (configManager != null) {
+            PersistableBundle carrierConfig =
+                    configManager.getConfigForSubId(subId);
+
+            if (carrierConfig != null) {
+                return carrierConfig.getBoolean(
+                    CarrierConfigManager.KEY_ALWAYS_SHOW_EMERGENCY_ALERT_ONOFF_BOOL);
+            }
+        }
+
+        return false;
+    }
+
     private OnTabChangeListener mTabListener = new OnTabChangeListener() {
         @Override
         public void onTabChanged(String tabId) {
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index f3bfd86..41a4160 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -16,7 +16,8 @@
 
 <!-- package name must be unique so suffix with "tests" so package loader doesn't ignore us -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.cellbroadcastreceiver.tests">
+    package="com.android.cellbroadcastreceiver.tests"
+    android:sharedUserId="android.uid.phone">
 
     <!-- Test Apk is signed with platform key in order to use this permission. -->
     <uses-permission android:name="android.permission.BROADCAST_SMS"/>
diff --git a/tests/res/values-gu-rIN/strings.xml b/tests/res/values-gu-rIN/strings.xml
index 990f981..c1885bf 100644
--- a/tests/res/values-gu-rIN/strings.xml
+++ b/tests/res/values-gu-rIN/strings.xml
@@ -41,5 +41,5 @@
     <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>
-    <string name="category_id_label" msgid="8472814003810180738">"કેટેગરી:"</string>
+    <string name="category_id_label" msgid="8472814003810180738">"કૅટેગરી:"</string>
 </resources>
diff --git a/tests/res/values-ro/strings.xml b/tests/res/values-ro/strings.xml
index 49db7e8..f8b761f 100644
--- a/tests/res/values-ro/strings.xml
+++ b/tests/res/values-ro/strings.xml
@@ -17,29 +17,29 @@
 <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="2102435118079140813">"Teste transmisie celulară"</string>
-    <string name="button_etws_normal_type" msgid="3852703138521119537">"Trimiteţi difuzare ETWS normală"</string>
+    <string name="button_etws_normal_type" msgid="3852703138521119537">"Trimiteți difuzare ETWS normală"</string>
     <string name="button_etws_cancel_type" msgid="7194264116649371175">"Difuzaţi un mesaj de anulare ETWS"</string>
     <string name="button_etws_test_type" msgid="6353906188028139901">"Difuzaţi un mesaj de test ETWS"</string>
-    <string name="button_cmas_pres_alert" msgid="5905111586384766558">"Trimiteţi o alertă prezidenţială CMAS"</string>
-    <string name="button_cmas_extreme_alert" msgid="6111658124447111920">"Trimiteţi o alertă extremă CMAS"</string>
-    <string name="button_cmas_severe_alert" msgid="9051731172452500819">"Trimiteţi o alertă gravă CMAS"</string>
-    <string name="button_cmas_amber_alert" msgid="4217147800913845288">"Trimiteţi o alertă CMAS AMBER"</string>
-    <string name="button_cmas_monthly_test" msgid="1609320625517248393">"Trimiteţi lunar o alertă de test CMAS"</string>
+    <string name="button_cmas_pres_alert" msgid="5905111586384766558">"Trimiteți o alertă prezidențială CMAS"</string>
+    <string name="button_cmas_extreme_alert" msgid="6111658124447111920">"Trimiteți o alertă extremă CMAS"</string>
+    <string name="button_cmas_severe_alert" msgid="9051731172452500819">"Trimiteți o alertă gravă CMAS"</string>
+    <string name="button_cmas_amber_alert" msgid="4217147800913845288">"Trimiteți o alertă CMAS AMBER"</string>
+    <string name="button_cmas_monthly_test" msgid="1609320625517248393">"Trimiteți lunar o alertă de test CMAS"</string>
     <string name="button_gsm_7bit_type" msgid="4757698592787955850">"Difuzaţi un mesaj de test GSM pe 7 biţi"</string>
     <string name="button_gsm_7bit_umts_type" msgid="4377077702628367387">"Difuzaţi un mesaj de test UMTS pe 7 biţi"</string>
     <string name="button_gsm_7bit_nopadding_type" msgid="5289528095948674862">"Difuzaţi un mesaj de dimensiune completă GSM pe 7 biţi"</string>
     <string name="button_gsm_7bit_nopadding_umts_type" msgid="7953047238483884846">"Difuzaţi un mesaj de dimensiune completă UMTS pe 7 biţi"</string>
     <string name="button_gsm_7bit_multipage_type" msgid="8516540964071070491">"Difuzaţi un mesaj multipagină GSM pe 7 biţi"</string>
     <string name="button_gsm_7bit_multipage_umts_type" msgid="474883728254547100">"Difuzaţi un mesaj multipagină UMTS pe 7 biţi"</string>
-    <string name="button_gsm_7bit_with_language_type" msgid="7414138913180046493">"Trimiteţi un mesaj GSM pe 7 biţi în care să precizaţi limba"</string>
-    <string name="button_gsm_7bit_with_language_body_gsm_type" msgid="7365993929355114874">" Trimiteţi un mesaj în format GSM pe 7 biţi cu limba în corpul mesajului"</string>
-    <string name="button_gsm_7bit_with_language_body_umts_type" msgid="1201329758881885921">"Trimiteţi un mesaj UMTS pe 7 biţi în care să precizaţi limba"</string>
+    <string name="button_gsm_7bit_with_language_type" msgid="7414138913180046493">"Trimiteți un mesaj GSM pe 7 biţi în care să precizați limba"</string>
+    <string name="button_gsm_7bit_with_language_body_gsm_type" msgid="7365993929355114874">" Trimiteți un mesaj în format GSM pe 7 biţi cu limba în corpul mesajului"</string>
+    <string name="button_gsm_7bit_with_language_body_umts_type" msgid="1201329758881885921">"Trimiteți un mesaj UMTS pe 7 biţi în care să precizați limba"</string>
     <string name="button_gsm_ucs2_type" msgid="6652864601384080678">"Difuzaţi un mesaj de test GSM UCS-2"</string>
     <string name="button_gsm_ucs2_umts_type" msgid="2985879481785569626">"Difuzaţi un mesaj de test UMTS UCS-2"</string>
     <string name="button_gsm_ucs2_multipage_umts_type" msgid="4557772309524939206">"Difuzaţi un mesaj multipagină UMTS UCS-2"</string>
-    <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="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>
     <string name="category_id_label" msgid="8472814003810180738">"Categorie:"</string>
 </resources>