Merge "Support different SIM power states"
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 3de29cf..6e041c1 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -159,7 +159,7 @@
<string name="vm_change_pin_error_system_error" msgid="6610603326230000207">"No es pot canviar el PIN"</string>
<string name="vvm_unsupported_message_format" msgid="11795090778411977">"Aquest tipus de missatge no s\'admet. Truca al <xliff:g id="NUMBER">%s</xliff:g> per escoltar-lo."</string>
<string name="mobile_networks" msgid="5540397602919106177">"Configuració de la xarxa mòbil"</string>
- <string name="network_settings_title" msgid="514120489499925574">"Xarxa de telefonia mòbil"</string>
+ <string name="network_settings_title" msgid="514120489499925574">"Xarxa mòbil"</string>
<string name="label_available" msgid="1181658289009300430">"Xarxes disponibles"</string>
<string name="load_networks_progress" msgid="5230707536168902952">"S\'està cercant…"</string>
<string name="empty_networks_list" msgid="4249426905018815316">"No s\'ha trobat cap xarxa."</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 26ff0be..b025b3a 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -78,7 +78,7 @@
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Correo de voz (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"CV:"</string>
<string name="networks" msgid="8873030692174541976">"Operadores de rede"</string>
- <string name="cell_broadcast_settings" msgid="8740238216690502563">"Emisións de emerxencia"</string>
+ <string name="cell_broadcast_settings" msgid="8740238216690502563">"Difusións de emerxencia"</string>
<string name="call_settings" msgid="6112441768261754562">"Configuración de chamada"</string>
<string name="additional_gsm_call_settings" msgid="1391795981938800617">"Configuración adicional"</string>
<string name="additional_gsm_call_settings_with_label" msgid="1385241520708457376">"Configuración adicional (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -216,8 +216,8 @@
<string name="data_enable_summary" msgid="2382798156640007971">"Permitir o uso de datos"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Atención"</string>
<string name="roaming" msgid="8871412572928323707">"Itinerancia de datos"</string>
- <string name="roaming_enable" msgid="7331106985174381987">"Conecta cos servizos de datos durante a itinerancia"</string>
- <string name="roaming_disable" msgid="1843417228755568110">"Conecta cos servizos de datos durante a itinerancia"</string>
+ <string name="roaming_enable" msgid="7331106985174381987">"Conéctase aos servizos de datos durante a itinerancia"</string>
+ <string name="roaming_disable" msgid="1843417228755568110">"Conéctase aos servizos de datos durante a itinerancia"</string>
<string name="roaming_reenable_message" msgid="8913735676127858115">"Perdiches a conectividade de datos debido a que abandonaches a túa rede doméstica coa itinerancia de datos desactivada."</string>
<string name="roaming_warning" msgid="1603164667540144353">"É posible que se apliquen custos elevados."</string>
<string name="roaming_alert_title" msgid="3654815360303826008">"Permitir a itinerancia de datos?"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 5b57c47..3654d4a 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -216,8 +216,8 @@
<string name="data_enable_summary" msgid="2382798156640007971">"Թույլատրել տվյալների օգտագործումը"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Ուշադրություն"</string>
<string name="roaming" msgid="8871412572928323707">"Տվյալների ռոումինգ"</string>
- <string name="roaming_enable" msgid="7331106985174381987">"Միանալ տվյալների փոխանցման ծառայություններին ռոումինգում գտնվելիս"</string>
- <string name="roaming_disable" msgid="1843417228755568110">"Միանալ տվյալների փոխանցման ծառայություններին ռոումինգում գտնվելիս"</string>
+ <string name="roaming_enable" msgid="7331106985174381987">"Միանալ տվյալների փոխանցման ծառայություններին ռոումինգում"</string>
+ <string name="roaming_disable" msgid="1843417228755568110">"Միանալ տվյալների փոխանցման ծառայություններին ռոումինգում"</string>
<string name="roaming_reenable_message" msgid="8913735676127858115">"Դուք կորցրել եք տվյալների կապը, քանի որ անջատված եք թողել ձեր գլխավոր ցանցի տվյալների ռոումինգը:"</string>
<string name="roaming_warning" msgid="1603164667540144353">"Դրա համար ձեզանից կարող են զգալի վճարներ գանձվել:"</string>
<string name="roaming_alert_title" msgid="3654815360303826008">"Թույլատրե՞լ տվյալների ռոումինգը:"</string>
@@ -340,7 +340,7 @@
<item msgid="1205664026446156265">"Ավտոմատ"</item>
</string-array>
<string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA բաժանորդագրում"</string>
- <string name="cdma_subscription_summary" msgid="2530890766115781140">"Փոխել RUIM/SIM-ի և NV-ի միջև"</string>
+ <string name="cdma_subscription_summary" msgid="2530890766115781140">"Փոխել RUIM/SIM քարտի և NV-ի միջև"</string>
<string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"բաժանորդագրում"</string>
<string-array name="cdma_subscription_choices">
<item msgid="2258014151300708431">"RUIM/SIM"</item>
@@ -490,7 +490,7 @@
<string name="onscreenVideoCallText" msgid="4800924186056115442">"Տեսազանգել"</string>
<string name="importSimEntry" msgid="6614358325359736031">"Ներմուծել"</string>
<string name="importAllSimEntries" msgid="1503181169636198673">"Ներմուծել բոլորը"</string>
- <string name="importingSimContacts" msgid="7374056215462575769">"Ներմուծվում է SIM-ի կոնտակտներից"</string>
+ <string name="importingSimContacts" msgid="7374056215462575769">"Ներմուծվում է SIM քարտի կոնտակտներից"</string>
<string name="importToFDNfromContacts" msgid="2130620207013368580">"Ներմուծել կոնտակտներից"</string>
<string name="singleContactImportedMsg" msgid="6868483416182599206">"Ներմուծված կոնտակտ"</string>
<string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Չհաջողվեց ներմուծել կոնտակտը"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 618dacd..34b67a8 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -43,11 +43,11 @@
<string name="pause_prompt_no" msgid="6686238803236884877">"Не"</string>
<string name="wild_prompt_str" msgid="5543521676355533577">"Замени резервен знак со"</string>
<string name="no_vm_number" msgid="4164780423805688336">"Недостасува број на говорна пошта"</string>
- <string name="no_vm_number_msg" msgid="1300729501030053828">"Нема мемориран број на говорна пошта на СИМ картичката."</string>
+ <string name="no_vm_number_msg" msgid="1300729501030053828">"Нема мемориран број на говорна пошта на SIM картичката."</string>
<string name="add_vm_number_str" msgid="4676479471644687453">"Додај број"</string>
<string name="voice_number_setting_primary_user_only" msgid="6596604364907022416">"Поставките за говорна пошта може да ги измени само примарниот корисник."</string>
- <string name="puk_unlocked" msgid="2284912838477558454">"Вашата СИМ картичка е одблокирана. Вашиот телефон се отклучува..."</string>
- <string name="label_ndp" msgid="780479633159517250">"PIN за отклучување мрежа на СИМ"</string>
+ <string name="puk_unlocked" msgid="2284912838477558454">"Вашата SIM картичка е одблокирана. Вашиот телефон се отклучува..."</string>
+ <string name="label_ndp" msgid="780479633159517250">"PIN за отклучување мрежа на SIM"</string>
<string name="sim_ndp_unlock_text" msgid="683628237760543009">"Отклучи"</string>
<string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Отфрли"</string>
<string name="requesting_unlock" msgid="6412629401033249351">"Барање за отклучување мрежа..."</string>
@@ -126,7 +126,7 @@
<string name="updating_settings" msgid="8171225533884883252">"Ажурирање поставки..."</string>
<string name="reverting_settings" msgid="4752151682666912828">"Враќање поставки..."</string>
<string name="response_error" msgid="6674110501330139405">"Неочекуван одговор од мрежата."</string>
- <string name="exception_error" msgid="7027667130619518211">"Грешка со мрежа или СИМ картичка."</string>
+ <string name="exception_error" msgid="7027667130619518211">"Грешка со мрежа или SIM картичка."</string>
<string name="stk_cc_ss_to_dial_error" msgid="2816779198916570502">"Барањето SS е изменето во барање DIAL."</string>
<string name="stk_cc_ss_to_ussd_error" msgid="7490626178582654236">"Барањето SS е изменето во барање USSD."</string>
<string name="stk_cc_ss_to_ss_error" msgid="5057846756489053759">"Барањето SS е изменето во ново барање SS."</string>
@@ -166,7 +166,7 @@
<string name="search_networks" msgid="1601136049300882441">"Пребарај мрежи"</string>
<string name="network_query_error" msgid="6828516148953325006">"Грешка при пребарување мрежи."</string>
<string name="register_on_network" msgid="9055203954040805084">"Регистрирање на <xliff:g id="NETWORK">%s</xliff:g>..."</string>
- <string name="not_allowed" msgid="5613353860205691579">"Вашата СИМ картичка не дозволува поврзување со оваа мрежа."</string>
+ <string name="not_allowed" msgid="5613353860205691579">"Вашата SIM картичка не дозволува поврзување со оваа мрежа."</string>
<string name="connect_later" msgid="2308119155752343975">"Не може да се поврзе со оваа мрежа во моментов. Обидете се повторно подоцна."</string>
<string name="registration_done" msgid="495135664535876612">"Регистрирање на мрежа."</string>
<string name="sum_carrier_select" msgid="3494252551249882718">"Избери оператор на мрежа"</string>
@@ -215,9 +215,9 @@
<string name="data_enabled" msgid="5972538663568715366">"Податоците се овозможени"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Дозволи користење интернет"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Внимание"</string>
- <string name="roaming" msgid="8871412572928323707">"Роаминг на податоци"</string>
- <string name="roaming_enable" msgid="7331106985174381987">"Поврзи се со податочни услуги во роаминг"</string>
- <string name="roaming_disable" msgid="1843417228755568110">"Поврзи се со податочни услуги во роаминг"</string>
+ <string name="roaming" msgid="8871412572928323707">"Интернет роаминг"</string>
+ <string name="roaming_enable" msgid="7331106985174381987">"Поврзи се со интернет услуги во роаминг"</string>
+ <string name="roaming_disable" msgid="1843417228755568110">"Поврзи се со интернет услуги во роаминг"</string>
<string name="roaming_reenable_message" msgid="8913735676127858115">"Изгубивте поврзување податоци зашто на вашата домашна мрежа исклучивте роаминг на податоци."</string>
<string name="roaming_warning" msgid="1603164667540144353">"Може да направите големи трошоци."</string>
<string name="roaming_alert_title" msgid="3654815360303826008">"Дозволи роаминг на податоци?"</string>
@@ -343,7 +343,7 @@
<string name="cdma_subscription_summary" msgid="2530890766115781140">"Промена помеѓу RUIM/SMS и NV"</string>
<string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"претплата"</string>
<string-array name="cdma_subscription_choices">
- <item msgid="2258014151300708431">"RUIM/СИМ"</item>
+ <item msgid="2258014151300708431">"RUIM/SIM"</item>
<item msgid="5127722015571873880">"NV"</item>
</string-array>
<string-array name="cdma_subscription_values">
@@ -396,21 +396,21 @@
<string name="fdn_invalid_number" msgid="8602417141715473998">"FDN не е ажуриран затоа што бројот е празен или содржи повеќе од 20 цифри."</string>
<string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN не се ажурираше. PIN2 кодот е неточен или телефонскиот број е одбиен."</string>
<string name="fdn_failed" msgid="540018079008319747">"Операцијата со FDN не успеа."</string>
- <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Се чита од СИМ картичка..."</string>
- <string name="simContacts_empty" msgid="5270660846489561932">"Нема контакти на вашата СИМ картичка."</string>
+ <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Се чита од SIM картичка..."</string>
+ <string name="simContacts_empty" msgid="5270660846489561932">"Нема контакти на вашата SIM картичка."</string>
<string name="simContacts_title" msgid="1861472842524839921">"Избери контакти за увоз"</string>
- <string name="simContacts_airplaneMode" msgid="5254946758982621072">"Исклучете го авионскиот режим за да ги увезете контактите од СИМ-картичката."</string>
- <string name="enable_pin" msgid="5422767284133234860">"Овозможи/оневозможи PIN на СИМ"</string>
- <string name="change_pin" msgid="9174186126330785343">"Промени PIN на СИМ"</string>
- <string name="enter_pin_text" msgid="8532615714751931951">"PIN на СИМ:"</string>
+ <string name="simContacts_airplaneMode" msgid="5254946758982621072">"Исклучете го авионскиот режим за да ги увезете контактите од SIM-картичката."</string>
+ <string name="enable_pin" msgid="5422767284133234860">"Овозможи/оневозможи PIN на SIM"</string>
+ <string name="change_pin" msgid="9174186126330785343">"Промени PIN на SIM"</string>
+ <string name="enter_pin_text" msgid="8532615714751931951">"PIN на SIM:"</string>
<string name="oldPinLabel" msgid="5287773661246368314">"Стар PIN"</string>
<string name="newPinLabel" msgid="207488227285336897">"Нов PIN"</string>
<string name="confirmPinLabel" msgid="257597715098070206">"Потврди нов PIN"</string>
<string name="badPin" msgid="8955102849303984935">"Стариот PIN што го впишавте не е точен. Обидете се повторно."</string>
<string name="mismatchPin" msgid="5923253370683071889">"PIN кодовите што ги внесовте не се совпаѓаат. Обидете се повторно."</string>
<string name="invalidPin" msgid="5981171102258684792">"Внеси PIN од 4 до 8 броеви."</string>
- <string name="disable_sim_pin" msgid="3419351358300716472">"Исчисти PIN на СИМ"</string>
- <string name="enable_sim_pin" msgid="4845145659651484248">"Поставете PIN на СИМ"</string>
+ <string name="disable_sim_pin" msgid="3419351358300716472">"Исчисти PIN на SIM"</string>
+ <string name="enable_sim_pin" msgid="4845145659651484248">"Поставете PIN на SIM"</string>
<string name="enable_in_progress" msgid="3417917024688497010">"PIN-кодот се поставува…"</string>
<string name="enable_pin_ok" msgid="2918545971413270063">"PIN-кодот е поставен"</string>
<string name="disable_pin_ok" msgid="2109571368635883688">"PIN-кодот е исчистен"</string>
@@ -429,11 +429,11 @@
<string name="pin2_changed" msgid="3724522579945610956">"PIN2-кодот е ажуриран"</string>
<string name="label_puk2_code" msgid="4688069961795341948">"Внесете го ПУК2-кодот"</string>
<string name="fdn_enable_puk2_requested" msgid="4991074891459554705">"Лозинката е неточна. PIN2-кодот сега е блокиран. За да се обидете повторно, променете го PIN2-кодот."</string>
- <string name="puk2_requested" msgid="5831015200030161434">"Лозинката е неточна. СИМ-картичката е сега заклучена. Внесете го ПУК2-кодот."</string>
+ <string name="puk2_requested" msgid="5831015200030161434">"Лозинката е неточна. SIM-картичката е сега заклучена. Внесете го ПУК2-кодот."</string>
<string name="puk2_blocked" msgid="3150263853077280049">"ПУК2 кодот е трајно блокиран."</string>
<string name="pin2_attempts" msgid="720736232885011507">\n"Имате уште <xliff:g id="NUMBER">%d</xliff:g> обиди."</string>
<string name="pin2_unblocked" msgid="7791600368153469078">"PIN2-кодот веќе не е блокиран"</string>
- <string name="pin2_error_exception" msgid="1088689322248996699">"Грешка со мрежа или СИМ картичка"</string>
+ <string name="pin2_error_exception" msgid="1088689322248996699">"Грешка со мрежа или SIM картичка"</string>
<string name="doneButton" msgid="2859593360997984240">"Готово"</string>
<string name="voicemail_settings_number_label" msgid="8524164258691887790">"Број на говорна пошта"</string>
<string name="card_title_dialing" msgid="5769417478498348054">"Бирање"</string>
@@ -490,7 +490,7 @@
<string name="onscreenVideoCallText" msgid="4800924186056115442">"Видео повик"</string>
<string name="importSimEntry" msgid="6614358325359736031">"Увези"</string>
<string name="importAllSimEntries" msgid="1503181169636198673">"Увези ги сите"</string>
- <string name="importingSimContacts" msgid="7374056215462575769">"Увезување контакти од СИМ"</string>
+ <string name="importingSimContacts" msgid="7374056215462575769">"Увезување контакти од SIM"</string>
<string name="importToFDNfromContacts" msgid="2130620207013368580">"Увези од контакти"</string>
<string name="singleContactImportedMsg" msgid="6868483416182599206">"Увезен е контакт"</string>
<string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Не успеа да увезе контакт"</string>
@@ -568,20 +568,20 @@
<string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Променете PIN"</string>
<string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Звук"</string>
<string name="preference_category_ringtone" msgid="5197960752529332721">"Мелодија и вибрации"</string>
- <string name="pstn_connection_service_label" msgid="1743245930577325900">"Вградени СИМ-картички"</string>
+ <string name="pstn_connection_service_label" msgid="1743245930577325900">"Вградени SIM-картички"</string>
<string name="enable_video_calling_title" msgid="7237253660669000899">"Вклучи видеоповикување"</string>
<string name="enable_video_calling_dialog_msg" msgid="8948186136957417948">"За да вклучите видеоповикување, треба да овозможите Режим на подобрени 4G LTE во поставките за мрежа."</string>
<string name="enable_video_calling_dialog_settings" msgid="576528473599603249">"Мрежни поставки"</string>
<string name="enable_video_calling_dialog_close" msgid="7411471282167927991">"Затвори"</string>
<string name="sim_label_emergency_calls" msgid="4847699229529306397">"Итни повици"</string>
<string name="sim_description_emergency_calls" msgid="7535215397212301562">"Само итни повикувања"</string>
- <string name="sim_description_default" msgid="4778679519938775515">"СИМ-картичка, отвор: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
+ <string name="sim_description_default" msgid="4778679519938775515">"SIM-картичка, отвор: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
<string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Пристапност"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="5932176406432044638">"Повик преку Wi-Fi од"</string>
<string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Повик преку Wi-Fi"</string>
<string name="emergency_action_launch_hint" msgid="4906759256275562674">"Допрете повторно за да се отвори"</string>
<string name="message_decode_error" msgid="3456481534066924855">"Настана грешка при дешифрирање на пораката."</string>
- <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Вашата СИМ-картичка ја активираше услугата и ги ажурираше способностите за роаминг на вашиот телефон."</string>
+ <string name="callFailed_cdma_activation" msgid="2307989779233262164">"Вашата SIM-картичка ја активираше услугата и ги ажурираше способностите за роаминг на вашиот телефон."</string>
<string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"Има премногу активни повици. Завршете или спојте ги постоечките повици пред да започнете нов."</string>
<string name="callFailed_imei_not_accepted" msgid="132192626901238542">"Не може да се поврзе. Внесете важечка SIM-картичка."</string>
<string name="callFailed_wifi_lost" msgid="5968076625137297184">"Wi-Fi-врската е прекината. Повикот заврши."</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 62ef04e..a1e4035 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -90,7 +90,7 @@
<string name="sum_loading_settings" msgid="1826692909391168620">"ਸੈਟਿੰਗਾਂ ਨੂੰ ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..."</string>
<string name="sum_hide_caller_id" msgid="1071407020290873782">"ਆਊਟਗੋਇੰਗ ਕਾਲਾਂ ਵਿੱਚ ਲੁਕਾਇਆ ਨੰਬਰ"</string>
<string name="sum_show_caller_id" msgid="6768534125447290401">"ਆਊਟਗੋਇੰਗ ਕਾਲਾਂ ਵਿੱਚ ਡਿਸਪਲੇ ਕੀਤਾ ਨੰਬਰ"</string>
- <string name="sum_default_caller_id" msgid="1954518825510901365">"ਆਊਟਗੋਇੰਗ ਕਾਲਾਂ ਵਿੱਚ ਮੇਰਾ ਨੰਬਰ ਡਿਸਪਲੇ ਕਰਨ ਲਈ ਡਿਫੌਲਟ ਓਪਰੇਟਰ ਸੈਟਿੰਗਾਂ ਵਰਤੋ।"</string>
+ <string name="sum_default_caller_id" msgid="1954518825510901365">"ਆਊਟਗੋਇੰਗ ਕਾਲਾਂ ਵਿੱਚ ਮੇਰਾ ਨੰਬਰ ਡਿਸਪਲੇ ਕਰਨ ਲਈ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਓਪਰੇਟਰ ਸੈਟਿੰਗਾਂ ਵਰਤੋ।"</string>
<string name="labelCW" msgid="6120513814915920200">"ਕਾਲ ਉਡੀਕ ਵਿੱਚ"</string>
<string name="sum_cw_enabled" msgid="8083061901633671397">"ਕਿਸੇ ਕਾਲ ਦੇ ਦੌਰਾਨ, ਮੈਨੂੰ ਇਨਕਮਿੰਗ ਕਾਲਾਂ ਦੀ ਸੂਚਨਾ ਦਿਓ"</string>
<string name="sum_cw_disabled" msgid="3648693907300104575">"ਕਿਸੇ ਕਾਲ ਦੇ ਦੌਰਾਨ, ਮੈਨੂੰ ਇਨਕਮਿੰਗ ਕਾਲਾਂ ਦੀ ਸੂਚਨਾ ਦਿਓ"</string>
@@ -137,7 +137,7 @@
<string name="disable" msgid="4678348128118573672">"ਬੰਦ ਕਰੋ"</string>
<string name="change_num" msgid="239476305819844391">"ਅਪਡੇਟ"</string>
<string-array name="clir_display_values">
- <item msgid="5560134294467334594">"ਨੈਟਵਰਕ ਡਿਫੌਲਟ"</item>
+ <item msgid="5560134294467334594">"ਨੈਟਵਰਕ ਪੂਰਵ-ਨਿਰਧਾਰਤ"</item>
<item msgid="7876195870037833661">"ਨੰਬਰ ਲੁਕਾਓ"</item>
<item msgid="1108394741608734023">"ਨੰਬਰ ਦਿਖਾਓ"</item>
</string-array>
@@ -469,7 +469,7 @@
<string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"ਕੋਈ ਸੇਵਾ ਨਹੀਂ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਹੈ…"</string>
<string name="radio_off_during_emergency_call" msgid="2535800034010306830">"ਕਿਸੇ ਐਮਰਜੈਂਸੀ ਕਾਲ ਦੌਰਾਨ ਜਹਾਜ਼ ਮੋਡ ਵਿੱਚ ਦਾਖਲ ਨਹੀਂ ਹੋਇਆ ਜਾ ਸਕਦਾ।"</string>
<string name="dial_emergency_error" msgid="1509085166367420355">"ਕਾਲ ਨਹੀਂ ਕਰ ਸਕਦਾ। <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ਇੱਕ ਐਮਰਜੈਂਸੀ ਨੰਬਰ ਨਹੀਂ ਹੈ।"</string>
- <string name="dial_emergency_empty_error" msgid="9130194953830414638">"ਕਾਲ ਨਹੀਂ ਕਰ ਸਕਦਾ। ਇੱਕ ਐਮਰਜੈਂਸੀ ਨੰਬਰ ਡਾਇਲ ਕਰੋ।"</string>
+ <string name="dial_emergency_empty_error" msgid="9130194953830414638">"ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਇੱਕ ਐਮਰਜੈਂਸੀ ਨੰਬਰ ਡਾਇਲ ਕਰੋ।"</string>
<string name="dialerKeyboardHintText" msgid="9192914825413747792">"ਡਾਇਲ ਕਰਨ ਲਈ ਕੀ-ਬੋਰਡ ਵਰਤੋ"</string>
<string name="onscreenHoldText" msgid="2285258239691145872">"ਹੋਲਡ ਕਰੋ"</string>
<string name="onscreenEndCallText" msgid="4403855834875398585">"ਖ਼ਤਮ"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index eea7531..aa57765 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -216,8 +216,8 @@
<string name="data_enable_summary" msgid="2382798156640007971">"อนุญาตการใช้ข้อมูล"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"โปรดทราบ"</string>
<string name="roaming" msgid="8871412572928323707">"การโรมมิ่งข้อมูล"</string>
- <string name="roaming_enable" msgid="7331106985174381987">"เชื่อมต่อบริการข้อมูลขณะโรมมิ่ง"</string>
- <string name="roaming_disable" msgid="1843417228755568110">"เชื่อมต่อบริการข้อมูลขณะโรมมิ่ง"</string>
+ <string name="roaming_enable" msgid="7331106985174381987">"เชื่อมต่ออินเทอร์เน็ตมือถือขณะโรมมิ่ง"</string>
+ <string name="roaming_disable" msgid="1843417228755568110">"เชื่อมต่ออินเทอร์เน็ตมือถือขณะโรมมิ่ง"</string>
<string name="roaming_reenable_message" msgid="8913735676127858115">"การเชื่อมต่อข้อมูลของคุณหายไปเนื่องจากคุณออกจากเครือข่ายที่บ้านโดยปิดการโรมมิ่งข้อมูลไว้"</string>
<string name="roaming_warning" msgid="1603164667540144353">"คุณอาจต้องเสียค่าใช้จ่ายมาก"</string>
<string name="roaming_alert_title" msgid="3654815360303826008">"อนุญาตการโรมมิ่งอินเทอร์เน็ตไหม"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index df85dd5..4e98c02 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -172,6 +172,12 @@
<string name="voicemail_settings_with_label">Voicemail (<xliff:g id="subscriptionlabel" example="Mock Carrier">%s</xliff:g>)</string>
<!-- Call forwarding dialog box, voicemail number prefix -->
<string name="voicemail_abbreviated">VM:</string>
+ <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
+ <string name="voicemail_notifications_key" translatable="false">voicemail_notification_key</string>
+
+ <!-- Voicemail notifications title. The user clicks on this preference navigate to the system settings screen for that channel
+ .[CHAR LIMIT=30] -->
+ <string name="voicemail_notifications_preference_title">Notifications</string>
<!-- Mobile network settings screen, setting option name -->
<string name="networks">Network operators</string>
<!-- Cell Broadcast settings title. [CHAR LIMIT=50] -->
@@ -1265,11 +1271,6 @@
-->
<string name="description_dial_button">dial</string>
- <!-- Title for the vibration settings for voicemail notifications [CHAR LIMIT=40] -->
- <string name="voicemail_notification_vibrate_when_title" msgid="8731372580674292759">Vibrate</string>
- <!-- Dialog title for the vibration settings for voice mail notifications [CHAR LIMIT=40]-->
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="8995274609647451109">Vibrate</string>
-
<!-- Visual voicemail on/off title [CHAR LIMIT=40] -->
<string name="voicemail_visual_voicemail_switch_title">Visual Voicemail</string>
@@ -1278,21 +1279,6 @@
<!-- Voicemail change PIN dialog title [CHAR LIMIT=40] -->
<string name="voicemail_change_pin_dialog_title">Change PIN</string>
- <!-- Voicemail ringtone title. The user clicks on this preference to select
- which sound to play when a voicemail notification is received.
- [CHAR LIMIT=30] -->
- <string name="voicemail_notification_ringtone_title">Sound</string>
-
- <!-- The default value value for voicemail notification. -->
- <string name="voicemail_notification_vibrate_when_default" translatable="false">never</string>
-
- <!-- Actual values used in our code for voicemail notifications. DO NOT TRANSLATE -->
- <string-array name="voicemail_notification_vibrate_when_values" translatable="false">
- <item>always</item>
- <item>silent</item>
- <item>never</item>
- </string-array>
-
<!-- Title for the category "ringtone", which is shown above ringtone and vibration
related settings.
[CHAR LIMIT=30] -->
@@ -1339,10 +1325,6 @@
<!-- Status hint label for a call being made over a wifi network. [CHAR LIMIT=25] -->
<string name="status_hint_label_wifi_call">Wi-Fi call</string>
- <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
- <string name="voicemail_notification_ringtone_key">voicemail_notification_ringtone_key</string>
- <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
- <string name="voicemail_notification_vibrate_key">voicemail_notification_vibrate_key</string>
<!-- DO NOT TRANSLATE. Internal key for a visual voicemail preference. -->
<string name="voicemail_visual_voicemail_key">voicemail_visual_voicemail_key</string>
<!-- DO NOT TRANSLATE. Internal key for a voicemail change pin preference. -->
diff --git a/res/xml/voicemail_settings.xml b/res/xml/voicemail_settings.xml
index 1fc1fe1..021a764 100644
--- a/res/xml/voicemail_settings.xml
+++ b/res/xml/voicemail_settings.xml
@@ -50,14 +50,7 @@
</PreferenceScreen>
- <com.android.phone.settings.VoicemailRingtonePreference
- android:key="@string/voicemail_notification_ringtone_key"
- android:title="@string/voicemail_notification_ringtone_title"
- android:persistent="false"
- android:ringtoneType="notification" />
-
- <SwitchPreference
- android:key="@string/voicemail_notification_vibrate_key"
- android:title="@string/voicemail_notification_vibrate_when_title"
- android:persistent="true" />
+ <Preference
+ android:key="@string/voicemail_notifications_key"
+ android:title="@string/voicemail_notifications_preference_title"/>
</PreferenceScreen>
diff --git a/src/com/android/phone/NotificationMgr.java b/src/com/android/phone/NotificationMgr.java
index 07b1b10..69c0871 100644
--- a/src/com/android/phone/NotificationMgr.java
+++ b/src/com/android/phone/NotificationMgr.java
@@ -55,7 +55,6 @@
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.TelephonyCapabilities;
import com.android.internal.telephony.util.NotificationChannelController;
-import com.android.phone.settings.VoicemailNotificationSettingsUtil;
import com.android.phone.settings.VoicemailSettingsActivity;
import java.util.Iterator;
@@ -333,11 +332,6 @@
PendingIntent pendingIntent =
PendingIntent.getActivity(mContext, subId /* requestCode */, intent, 0);
- Uri ringtoneUri = null;
-
- if (enableNotificationSound) {
- ringtoneUri = VoicemailNotificationSettingsUtil.getRingtoneUri(phone);
- }
Resources res = mContext.getResources();
PersistableBundle carrierConfig = PhoneGlobals.getInstance().getCarrierConfigForSubId(
@@ -349,16 +343,11 @@
.setContentTitle(notificationTitle)
.setContentText(notificationText)
.setContentIntent(pendingIntent)
- .setSound(ringtoneUri)
.setColor(res.getColor(R.color.dialer_theme_color))
.setOngoing(carrierConfig.getBoolean(
CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL))
.setChannel(NotificationChannelController.CHANNEL_ID_VOICE_MAIL);
- if (VoicemailNotificationSettingsUtil.isVibrationEnabled(phone)) {
- builder.setDefaults(Notification.DEFAULT_VIBRATE);
- }
-
final Notification notification = builder.build();
List<UserInfo> users = mUserManager.getUsers(true);
for (int i = 0; i < users.size(); i++) {
diff --git a/src/com/android/phone/settings/VoicemailNotificationSettingsUtil.java b/src/com/android/phone/settings/VoicemailNotificationSettingsUtil.java
index 9654ea7..fb7baf5 100644
--- a/src/com/android/phone/settings/VoicemailNotificationSettingsUtil.java
+++ b/src/com/android/phone/settings/VoicemailNotificationSettingsUtil.java
@@ -16,15 +16,14 @@
package com.android.phone.settings;
-import android.content.Context;
+import android.app.NotificationChannel;
import android.content.SharedPreferences;
import android.net.Uri;
import android.preference.PreferenceManager;
-import android.provider.Settings;
import android.telephony.TelephonyManager;
-import android.text.TextUtils;
import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.util.NotificationChannelController;
import com.android.phone.R;
public class VoicemailNotificationSettingsUtil {
@@ -53,9 +52,9 @@
}
public static boolean isVibrationEnabled(Phone phone) {
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(phone.getContext());
- migrateVoicemailVibrationSettingsIfNeeded(phone, prefs);
- return prefs.getBoolean(getVoicemailVibrationSharedPrefsKey(phone), false /* defValue */);
+ final NotificationChannel channel = NotificationChannelController.getChannel(
+ NotificationChannelController.CHANNEL_ID_VOICE_MAIL, phone.getContext());
+ return (channel != null) ? channel.shouldVibrate() : false;
}
public static void setRingtoneUri(Phone phone, Uri ringtoneUri) {
@@ -68,12 +67,9 @@
}
public static Uri getRingtoneUri(Phone phone) {
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(phone.getContext());
- migrateVoicemailRingtoneSettingsIfNeeded(phone, prefs);
- String uriString = prefs.getString(
- getVoicemailRingtoneSharedPrefsKey(phone),
- Settings.System.DEFAULT_NOTIFICATION_URI.toString());
- return !TextUtils.isEmpty(uriString) ? Uri.parse(uriString) : null;
+ final NotificationChannel channel = NotificationChannelController.getChannel(
+ NotificationChannelController.CHANNEL_ID_VOICE_MAIL, phone.getContext());
+ return (channel != null) ? channel.getSound() : null;
}
/**
diff --git a/src/com/android/phone/settings/VoicemailRingtonePreference.java b/src/com/android/phone/settings/VoicemailRingtonePreference.java
deleted file mode 100644
index bb82d4f..0000000
--- a/src/com/android/phone/settings/VoicemailRingtonePreference.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package com.android.phone.settings;
-
-import android.content.Context;
-import android.media.RingtoneManager;
-import android.net.Uri;
-import android.os.Handler;
-import android.os.Message;
-import android.preference.Preference;
-import android.preference.RingtonePreference;
-import android.util.AttributeSet;
-
-import com.android.internal.telephony.Phone;
-import com.android.phone.common.util.SettingsUtil;
-
-/**
- * Looks up the voicemail ringtone's name asynchronously and updates the preference's summary when
- * it is created or updated.
- */
-public class VoicemailRingtonePreference extends RingtonePreference {
- public interface VoicemailRingtoneNameChangeListener {
- void onVoicemailRingtoneNameChanged(CharSequence name);
- }
-
- private static final int MSG_UPDATE_VOICEMAIL_RINGTONE_SUMMARY = 1;
-
- private VoicemailRingtoneNameChangeListener mVoicemailRingtoneNameChangeListener;
- private Runnable mVoicemailRingtoneLookupRunnable;
- private Handler mVoicemailRingtoneLookupComplete;
-
- private Phone mPhone;
-
- public VoicemailRingtonePreference(Context context, AttributeSet attrs) {
- super(context, attrs);
-
- mVoicemailRingtoneLookupComplete = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case MSG_UPDATE_VOICEMAIL_RINGTONE_SUMMARY:
- if (mVoicemailRingtoneNameChangeListener != null) {
- mVoicemailRingtoneNameChangeListener.onVoicemailRingtoneNameChanged(
- (CharSequence) msg.obj);
- }
- setSummary((CharSequence) msg.obj);
- break;
- }
- }
- };
- }
-
- public void init(Phone phone, CharSequence oldRingtoneName) {
- mPhone = phone;
-
- // Requesting the ringtone will trigger migration if necessary.
- VoicemailNotificationSettingsUtil.getRingtoneUri(phone);
-
- final Preference preference = this;
- final String preferenceKey =
- VoicemailNotificationSettingsUtil.getVoicemailRingtoneSharedPrefsKey(mPhone);
- setSummary(oldRingtoneName);
- mVoicemailRingtoneLookupRunnable = new Runnable() {
- @Override
- public void run() {
- SettingsUtil.updateRingtoneName(
- preference.getContext(),
- mVoicemailRingtoneLookupComplete,
- RingtoneManager.TYPE_NOTIFICATION,
- preferenceKey,
- MSG_UPDATE_VOICEMAIL_RINGTONE_SUMMARY);
- }
- };
-
- updateRingtoneName();
- }
-
- public void setVoicemailRingtoneNameChangeListener(VoicemailRingtoneNameChangeListener l) {
- mVoicemailRingtoneNameChangeListener = l;
- }
-
- @Override
- protected Uri onRestoreRingtone() {
- return VoicemailNotificationSettingsUtil.getRingtoneUri(mPhone);
- }
-
- @Override
- protected void onSaveRingtone(Uri ringtoneUri) {
- // Don't call superclass method because it uses the pref key as the SharedPreferences key.
- // Delegate to the voicemail notification utility to save the ringtone instead.
- VoicemailNotificationSettingsUtil.setRingtoneUri(mPhone, ringtoneUri);
-
- updateRingtoneName();
- }
-
- private void updateRingtoneName() {
- new Thread(mVoicemailRingtoneLookupRunnable).start();
- }
-}
diff --git a/src/com/android/phone/settings/VoicemailSettingsActivity.java b/src/com/android/phone/settings/VoicemailSettingsActivity.java
index d0e0656..04e8bf5 100644
--- a/src/com/android/phone/settings/VoicemailSettingsActivity.java
+++ b/src/com/android/phone/settings/VoicemailSettingsActivity.java
@@ -30,6 +30,7 @@
import android.preference.PreferenceScreen;
import android.preference.SwitchPreference;
import android.provider.ContactsContract.CommonDataKinds;
+import android.provider.Settings;
import android.telephony.TelephonyManager;
import android.text.BidiFormatter;
import android.text.TextDirectionHeuristics;
@@ -42,6 +43,7 @@
import com.android.internal.telephony.CallForwardInfo;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.util.NotificationChannelController;
import com.android.phone.EditPhoneNumberPreference;
import com.android.phone.PhoneGlobals;
import com.android.phone.R;
@@ -57,8 +59,7 @@
implements DialogInterface.OnClickListener,
Preference.OnPreferenceChangeListener,
EditPhoneNumberPreference.OnDialogClosedListener,
- EditPhoneNumberPreference.GetDefaultNumberListener,
- VoicemailRingtonePreference.VoicemailRingtoneNameChangeListener {
+ EditPhoneNumberPreference.GetDefaultNumberListener{
private static final String LOG_TAG = VoicemailSettingsActivity.class.getSimpleName();
private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
@@ -185,8 +186,6 @@
private CallForwardInfo[] mNewFwdSettings;
private String mNewVMNumber;
- private CharSequence mOldVmRingtoneName = "";
-
/**
* Used to indicate that the voicemail preference should be shown.
*/
@@ -199,8 +198,7 @@
private EditPhoneNumberPreference mSubMenuVoicemailSettings = null;
private VoicemailProviderListPreference mVoicemailProviders;
private PreferenceScreen mVoicemailSettings;
- private VoicemailRingtonePreference mVoicemailNotificationRingtone;
- private SwitchPreference mVoicemailNotificationVibrate;
+ private Preference mVoicemailNotificationPreference;
//*********************************************************************************************
// Preference Activity Methods
@@ -227,6 +225,14 @@
getActionBar(), getResources(), R.string.voicemail_settings_with_label);
mPhone = mSubscriptionInfoHelper.getPhone();
addPreferencesFromResource(R.xml.voicemail_settings);
+
+ mVoicemailNotificationPreference =
+ findPreference(getString(R.string.voicemail_notifications_key));
+ final Intent intent = new Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS);
+ intent.putExtra(Settings.EXTRA_CHANNEL_ID,
+ NotificationChannelController.CHANNEL_ID_VOICE_MAIL);
+ intent.putExtra(Settings.EXTRA_APP_PACKAGE, mPhone.getContext().getPackageName());
+ mVoicemailNotificationPreference.setIntent(intent);
}
@Override
@@ -254,15 +260,6 @@
mVoicemailSettings = (PreferenceScreen) findPreference(BUTTON_VOICEMAIL_SETTING_KEY);
- mVoicemailNotificationRingtone = (VoicemailRingtonePreference) findPreference(
- getResources().getString(R.string.voicemail_notification_ringtone_key));
- mVoicemailNotificationRingtone.setVoicemailRingtoneNameChangeListener(this);
- mVoicemailNotificationRingtone.init(mPhone, mOldVmRingtoneName);
-
- mVoicemailNotificationVibrate = (SwitchPreference) findPreference(
- getResources().getString(R.string.voicemail_notification_vibrate_key));
- mVoicemailNotificationVibrate.setOnPreferenceChangeListener(this);
-
maybeHidePublicSettings();
updateVMPreferenceWidgets(mVoicemailProviders.getValue());
@@ -286,9 +283,6 @@
updateVoiceNumberField();
mVMProviderSettingsForced = false;
-
- mVoicemailNotificationVibrate.setChecked(
- VoicemailNotificationSettingsUtil.isVibrationEnabled(mPhone));
}
/**
@@ -304,8 +298,7 @@
log("maybeHidePublicSettings: settings hidden by EXTRA_HIDE_PUBLIC_SETTINGS");
}
PreferenceScreen preferenceScreen = getPreferenceScreen();
- preferenceScreen.removePreference(mVoicemailNotificationRingtone);
- preferenceScreen.removePreference(mVoicemailNotificationVibrate);
+ preferenceScreen.removePreference(mVoicemailNotificationPreference);
}
@Override
@@ -401,12 +394,6 @@
mChangingVMorFwdDueToProviderChange = true;
saveVoiceMailAndForwardingNumber(newProviderKey, newProviderSettings);
}
- } else if (preference.getKey().equals(mVoicemailNotificationVibrate.getKey())) {
- // Check key instead of comparing reference because closing the voicemail notification
- // ringtone dialog invokes onResume(), but leaves the old preference screen up,
- // TODO: Revert to checking reference after migrating voicemail to its own activity.
- VoicemailNotificationSettingsUtil.setVibrationEnabled(
- mPhone, Boolean.TRUE.equals(objValue));
}
// Always let the preference setting proceed.
return true;
@@ -539,11 +526,6 @@
super.onActivityResult(requestCode, resultCode, data);
}
- @Override
- public void onVoicemailRingtoneNameChanged(CharSequence name) {
- mOldVmRingtoneName = name;
- }
-
/**
* Simulates user clicking on a passed preference.
* Usually needed when the preference is a dialog preference and we want to invoke
@@ -1012,7 +994,6 @@
mVoicemailProviders.setSummary(getString(R.string.sum_voicemail_choose_provider));
mVoicemailSettings.setEnabled(false);
mVoicemailSettings.setIntent(null);
- mVoicemailNotificationVibrate.setEnabled(false);
} else {
if (DBG) log("updateVMPreferenceWidget: key: " + key + " -> " + provider.toString());
@@ -1020,7 +1001,6 @@
mVoicemailProviders.setSummary(providerName);
mVoicemailSettings.setEnabled(true);
mVoicemailSettings.setIntent(provider.intent);
- mVoicemailNotificationVibrate.setEnabled(true);
}
}
diff --git a/testapps/Android.mk b/testapps/Android.mk
new file mode 100644
index 0000000..5053e7d
--- /dev/null
+++ b/testapps/Android.mk
@@ -0,0 +1 @@
+include $(call all-subdir-makefiles)
diff --git a/testapps/EmbmsServiceTestApp/Android.mk b/testapps/EmbmsServiceTestApp/Android.mk
new file mode 100644
index 0000000..4dc522c
--- /dev/null
+++ b/testapps/EmbmsServiceTestApp/Android.mk
@@ -0,0 +1,19 @@
+LOCAL_PATH:= $(call my-dir)
+
+# Build the Sample Embms Services
+include $(CLEAR_VARS)
+
+src_dirs := src
+res_dirs := res
+
+LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
+LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
+
+LOCAL_PACKAGE_NAME := EmbmsTestService
+
+LOCAL_CERTIFICATE := platform
+LOCAL_PRIVILEGED_MODULE := true
+# Change the following to "debug" to build the EmbmsTestService into the userdebug build.
+LOCAL_MODULE_TAGS := optional
+
+include $(BUILD_PACKAGE)
diff --git a/testapps/EmbmsServiceTestApp/AndroidManifest.xml b/testapps/EmbmsServiceTestApp/AndroidManifest.xml
new file mode 100644
index 0000000..3adab28
--- /dev/null
+++ b/testapps/EmbmsServiceTestApp/AndroidManifest.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+ package="com.android.phone.testapps.embmsmw"
+ coreApp="true">
+ <application android:label="EmbmsTestMiddleware">
+ <service android:name="com.android.phone.testapps.embmsmw.EmbmsTestStreamingService"
+ android:launchMode="singleInstance"
+ androidprv:systemUserOnly="true">
+ <intent-filter>
+ <action android:name="android.telephony.action.EmbmsStreaming" />
+ </intent-filter>
+ </service>
+ </application>
+</manifest>
+
diff --git a/testapps/EmbmsServiceTestApp/res/values/donottranslate_strings.xml b/testapps/EmbmsServiceTestApp/res/values/donottranslate_strings.xml
new file mode 100644
index 0000000..d33abb0
--- /dev/null
+++ b/testapps/EmbmsServiceTestApp/res/values/donottranslate_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 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
+ -->
+
+<resources>
+</resources>
diff --git a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsTestStreamingService.java b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsTestStreamingService.java
new file mode 100644
index 0000000..c0e601f
--- /dev/null
+++ b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsTestStreamingService.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2017 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.phone.testapps.embmsmw;
+
+import android.app.Service;
+import android.content.Intent;
+import android.os.IBinder;
+import android.telephony.mbms.IMbmsStreamingManagerCallback;
+import android.telephony.mbms.MbmsException;
+import android.telephony.mbms.vendor.IMbmsStreamingService;
+import android.telephony.mbms.vendor.MbmsStreamingServiceBase;
+import android.util.Log;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class EmbmsTestStreamingService extends Service {
+ private final static String TAG = "EmbmsTestStreaming";
+ private final Map<String, IMbmsStreamingManagerCallback> mAppCallbacks = new HashMap<>();
+
+ private final IMbmsStreamingService.Stub mBinder = new MbmsStreamingServiceBase() {
+ @Override
+ public int initialize(IMbmsStreamingManagerCallback listener, String appName, int subId)
+ throws MbmsException {
+ String appKey = appName + subId;
+ if (!mAppCallbacks.containsKey(appKey)) {
+ mAppCallbacks.put(appKey, listener);
+ } else {
+ return MbmsException.ERROR_ALREADY_INITIALIZED;
+ }
+ return 0;
+ }
+ };
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ logd("EmbmsTestStreamingService onCreate");
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onCreate();
+ logd("EmbmsTestStreamingService onDestroy");
+ }
+
+ @Override
+ public IBinder onBind(Intent intent) {
+ return mBinder;
+ }
+
+ private static void logd(String s) {
+ Log.d(TAG, s);
+ }
+}
diff --git a/testapps/EmbmsTestStreamingApp/Android.mk b/testapps/EmbmsTestStreamingApp/Android.mk
new file mode 100644
index 0000000..2700522
--- /dev/null
+++ b/testapps/EmbmsTestStreamingApp/Android.mk
@@ -0,0 +1,17 @@
+LOCAL_PATH:= $(call my-dir)
+
+# Build the Sample Embms Streaming frontend
+include $(CLEAR_VARS)
+
+src_dirs := src
+res_dirs := res
+
+LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
+LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
+
+LOCAL_PACKAGE_NAME := EmbmsTestStreamingApp
+
+LOCAL_CERTIFICATE := platform
+LOCAL_MODULE_TAGS := tests
+
+include $(BUILD_PACKAGE)
diff --git a/testapps/EmbmsTestStreamingApp/AndroidManifest.xml b/testapps/EmbmsTestStreamingApp/AndroidManifest.xml
new file mode 100644
index 0000000..d13425d
--- /dev/null
+++ b/testapps/EmbmsTestStreamingApp/AndroidManifest.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.phone.testapps.embmsfrontend">
+ <application android:label="EmbmsTestStreamingApp">
+ <activity
+ android:name=".EmbmsTestStreamingApp"
+ android:label="EmbmsStreamingFrontend">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+</manifest>
+
diff --git a/testapps/EmbmsTestStreamingApp/res/layout/activity_main.xml b/testapps/EmbmsTestStreamingApp/res/layout/activity_main.xml
new file mode 100644
index 0000000..866e127
--- /dev/null
+++ b/testapps/EmbmsTestStreamingApp/res/layout/activity_main.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 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
+ -->
+
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical" >
+ <Button
+ android:id="@+id/bind_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/bind_button" />
+</LinearLayout>
diff --git a/testapps/EmbmsTestStreamingApp/res/values/donottranslate_strings.xml b/testapps/EmbmsTestStreamingApp/res/values/donottranslate_strings.xml
new file mode 100644
index 0000000..71808fa
--- /dev/null
+++ b/testapps/EmbmsTestStreamingApp/res/values/donottranslate_strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 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
+ -->
+
+<resources>
+ <string name="bind_button">Bind to service</string>
+</resources>
\ No newline at end of file
diff --git a/testapps/EmbmsTestStreamingApp/src/com/android/phone/testapps/embmsfrontend/EmbmsTestStreamingApp.java b/testapps/EmbmsTestStreamingApp/src/com/android/phone/testapps/embmsfrontend/EmbmsTestStreamingApp.java
new file mode 100644
index 0000000..ed4fb6b
--- /dev/null
+++ b/testapps/EmbmsTestStreamingApp/src/com/android/phone/testapps/embmsfrontend/EmbmsTestStreamingApp.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2017 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.phone.testapps.embmsfrontend;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.telephony.MbmsStreamingManager;
+import android.telephony.mbms.MbmsException;
+import android.telephony.mbms.MbmsStreamingManagerCallback;
+import android.widget.Button;
+import android.widget.Toast;
+
+public class EmbmsTestStreamingApp extends Activity {
+ private MbmsStreamingManagerCallback mStreamingListener = new MbmsStreamingManagerCallback() {};
+ private MbmsStreamingManager mStreamingManager;
+
+ private Handler mHandler;
+ private HandlerThread mHandlerThread;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ mHandlerThread = new HandlerThread("EmbmsSampleFrontendWorker");
+ mHandlerThread.start();
+ mHandler = new Handler(mHandlerThread.getLooper());
+
+ Button bindButton = (Button) findViewById(R.id.bind_button);
+ bindButton.setOnClickListener((view) ->
+ mHandler.post(() -> {
+ try {
+ mStreamingManager = MbmsStreamingManager.create(
+ EmbmsTestStreamingApp.this, mStreamingListener, getPackageName());
+ } catch (MbmsException e) {
+ EmbmsTestStreamingApp.this.runOnUiThread(() ->
+ Toast.makeText(EmbmsTestStreamingApp.this,
+ "Init error: " + e.getErrorCode(), Toast.LENGTH_SHORT).show());
+ return;
+ }
+ EmbmsTestStreamingApp.this.runOnUiThread(() ->
+ Toast.makeText(EmbmsTestStreamingApp.this, "Successfully bound",
+ Toast.LENGTH_SHORT).show());
+ })
+ );
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ mHandlerThread.quit();
+ }
+}