[automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 683dbb78aa -s ours am: 893a836710 -s ours
am skip reason: subject contains skip directive
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/services/Telephony/+/20400366
Change-Id: I0612506af84e3318de37b8e9786f9ed75630ead5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/Android.bp b/Android.bp
index dad0e6c..9a7a5b0 100644
--- a/Android.bp
+++ b/Android.bp
@@ -79,6 +79,13 @@
},
}
+// Allow other applications to use public constants from SlicePurchaseController
+java_library {
+ name: "SlicePurchaseController",
+ srcs: ["src/com/android/phone/slice/SlicePurchaseController.java",],
+ libs: ["telephony-common"],
+}
+
platform_compat_config {
name: "TeleService-platform-compat-config",
src: ":TeleService",
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 41ff216..3d80246 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -19,8 +19,11 @@
package="com.android.phone"
coreApp="true"
android:sharedUserId="android.uid.phone"
- android:sharedUserLabel="@string/phoneAppLabel"
->
+ android:sharedUserLabel="@string/phoneAppLabel">
+
+ <!-- Allows broadcasting for SlicePurchaseController events. -->
+ <protected-broadcast android:name="com.android.phone.slice.action.START_SLICE_PURCHASE_APP" />
+ <protected-broadcast android:name="com.android.phone.slice.action.SLICE_PURCHASE_APP_RESPONSE_TIMEOUT" />
<original-package android:name="com.android.phone" />
<!-- Allows granting runtime permissions to telephony related components. -->
@@ -153,13 +156,13 @@
<uses-permission android:name="android.permission.ACCESS_TELEPHONY_SIMINFO_DB"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
+ <!-- Needed to block unwanted malicious pop up overlays -->
+ <uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS"/>
+
<permission android:name="com.android.phone.permission.ACCESS_LAST_KNOWN_CELL_ID"
android:label="Access last known cell identity."
android:protectionLevel="signature"/>
- <!-- Needed to block unwanted malicious pop up overlays -->
- <uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS"/>
-
<application android:name="PhoneApp"
android:persistent="true"
android:label="@string/phoneAppLabel"
diff --git a/ecc/conversion_toolset_v1/proto/protobuf_ecc_data.proto b/ecc/conversion_toolset_v1/proto/protobuf_ecc_data.proto
index c1a826a..528e4b0 100644
--- a/ecc/conversion_toolset_v1/proto/protobuf_ecc_data.proto
+++ b/ecc/conversion_toolset_v1/proto/protobuf_ecc_data.proto
@@ -24,6 +24,16 @@
// Extra rules: Every Ecc should have at least 1 valid type.
repeated Type types = 2 [packed=true];
+
+
+ //Optional: By default, the emergency number is assumed to be 'emergency routed'
+ optional bool is_normal_routed = 3 [default = false];
+
+ //Optional: This field is evaluated only if is_normal_routed is set to true
+ //If the field is empty, normal routing is used for all MNCs
+ //Else normal routing is used only for list of MNCs specified
+ repeated string normal_routing_mncs = 4;
+
}
// CountryInfo represents available ECCs of a country/region, recognized
@@ -44,6 +54,13 @@
// Per http://www.etsi.org/deliver/etsi_ts/122100_122199/122101/09.01.00_60/ts_122101v090100p.pdf,
// 112 and 911 shall always be available.
optional string ecc_fallback = 3;
+
+ // Required: Every CountryInfo shall specify whether emergency numbers sourced from modem config
+ // should be ignored.
+ //
+ // If this value is set to true, we have a pretty good authority of emergency numbers in the
+ // android emergency number db for this country.
+ optional bool ignore_modem_config = 4 [default = false];
}
message AllInfo {
diff --git a/res/layout/radio_info.xml b/res/layout/radio_info.xml
index 2a2ad89..c414fe1 100644
--- a/res/layout/radio_info.xml
+++ b/res/layout/radio_info.xml
@@ -4,16 +4,16 @@
**
** Copyright 2006, 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
+** 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
+** 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
+** 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.
*/
-->
@@ -165,12 +165,6 @@
<TextView android:id="@+id/network_slicing_config" style="@style/info_value" />
</LinearLayout>
- <!-- Physical Channel Config -->
- <LinearLayout style="@style/RadioInfo_entry_layout">
- <TextView android:text="@string/radio_info_phy_chan_config" style="@style/info_label" />
- <TextView android:id="@+id/phy_chan_config" style="@style/info_value" />
- </LinearLayout>
-
<!-- Horizontal Rule -->
<View
android:layout_width="fill_parent"
@@ -204,6 +198,14 @@
android:layout_height="wrap_content"
android:text="@string/radio_info_radio_power"/>
+ <!-- Simulate out of service -->
+ <Switch android:id="@+id/simulate_out_of_service"
+ android:textSize="14sp"
+ android:layout_marginTop="8dip"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/simulate_out_of_service_string"/>
+
<!-- VoLTE provisioned -->
<Switch android:id="@+id/volte_provisioned_switch"
android:textSize="14sp"
@@ -281,7 +283,7 @@
android:layout_height="wrap_content"
android:text="@string/ping_test_label"
/>
-
+
<LinearLayout style="@style/RadioInfo_entry_layout">
<TextView android:text="@string/radio_info_ping_hostname_v4" style="@style/info_label" />
<TextView android:id="@+id/pingHostnameV4" style="@style/info_value" />
@@ -368,6 +370,12 @@
android:layout_height="wrap_content"
/>
+ <!-- Physical Channel Config -->
+ <LinearLayout style="@style/RadioInfo_entry_layout">
+ <TextView android:text="@string/radio_info_phy_chan_config" style="@style/info_label" />
+ <TextView android:id="@+id/phy_chan_config" style="@style/info_value" />
+ </LinearLayout>
+
<!-- CellInfo -->
<LinearLayout style="@style/RadioInfo_entry_layout">
<TextView android:text="@string/radio_info_cellinfo_label"
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 0eda648..955929e 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Jy moet jou toestel herbegin om dié instelling te verander."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Herbegin"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Kanselleer"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Stel Verwyderbare-e-SIM as Verstek"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobieleradiokrag"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simuleer is nie beskikbaar nie (Slegs ontfoutingbou)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Bekyk SIM-adresboek"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Kyk na vaste skakelnommers"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Bekyk skakeldiensnommers"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Fooninligting"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Diensverskaffervoorsiening-inligting"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger-diensverskaffervoorsiening"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFO-geregtigheid-ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Dateer op"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Herlaai"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Jou bluetooth-sein is swak. Probeer om na luidsprekerfoon oor te skakel."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Kennisgewing oor oproepgehalte"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Opgeskorte SIP-rekeninge"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 8450b7f..5137085 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -34,7 +34,7 @@
<string name="enter_input" msgid="6193628663039958990">"የUSSD መልዕክት በ<xliff:g id="MIN_LEN">%1$d</xliff:g> እና <xliff:g id="MAX_LEN">%2$d</xliff:g> ቁምፊዎች መካከል መሆን አለበት። እባክዎ እንደገና ይሞክሩ።"</string>
<string name="manageConferenceLabel" msgid="8415044818156353233">"የስብሰባስልክ ጥሪ አደራጅ"</string>
<string name="ok" msgid="7818974223666140165">"እሺ"</string>
- <string name="audio_mode_speaker" msgid="243689733219312360">"ድምጽ ማጉያ"</string>
+ <string name="audio_mode_speaker" msgid="243689733219312360">"ድምፅ ማጉያ"</string>
<string name="audio_mode_earpiece" msgid="2823700267171134282">"የስልክ እጀታ ጆሮማዳመጫ"</string>
<string name="audio_mode_wired_headset" msgid="5028010823105817443">"ባለ ገመድ የጆሮ ማዳመጫ"</string>
<string name="audio_mode_bluetooth" msgid="25732183428018809">"ብሉቱዝ"</string>
@@ -623,11 +623,11 @@
<string name="ota_title_activate_success" msgid="1272135024761004889">"ስልክ አግብረሃል!"</string>
<string name="ota_title_problem_with_activation" msgid="7019745985413368726">"ከአግብር ጋር ያለ ችግር"</string>
<string name="ota_listen" msgid="2772252405488894280">"አግብር መጠናቀቁን እስኪሰሙ የተነገሩትን መመሪያዎች ይከተሉ።"</string>
- <string name="ota_speaker" msgid="1086766980329820528">"ድምጽ ማጉያ"</string>
+ <string name="ota_speaker" msgid="1086766980329820528">"ድምፅ ማጉያ"</string>
<string name="ota_progress" msgid="8837259285255700132">"ስልክዎን ፕሮግራም በማድረግ ላይ…"</string>
<string name="ota_failure" msgid="5674217489921481576">"ስልክዎን ፕሮግራም ማድረግ አልተቻለም"</string>
<string name="ota_successful" msgid="1106825981548107774">"አሁን ስልክዎ አግብሯል።አገልግሎቱ ለመጀመር እስከ 15 ደቂቃዎች ሊፈጅ ይችላል።"</string>
- <string name="ota_unsuccessful" msgid="8531037653803955754">"ስልክህ አላገበረም።\n ጥሩ ሽፋን ያለበት አካባቢ ማግኘት ያስፈልግሃል (መስኮት፣ ወይም ውጪ አካባቢ)።ለበለጠ አማራጮች የደንበኞች አገልግሎት ደውል ወይም \n\nእንደገና ሞክር።"</string>
+ <string name="ota_unsuccessful" msgid="8531037653803955754">"ስልክህ አላገበረም።\n ጥሩ ሽፋን ያለበት አካባቢ ማግኘት ያስፈልግሃል (መስኮት፣ ወይም ውጭ አካባቢ)።ለበለጠ አማራጮች የደንበኞች አገልግሎት ደውል ወይም \n\nእንደገና ሞክር።"</string>
<string name="ota_spc_failure" msgid="904092035241370080">"ከልክ ያለፈ የSPC መታወክ"</string>
<string name="ota_call_end" msgid="8657746378290737034">"ተመለስ"</string>
<string name="ota_try_again" msgid="6914781945599998550">"በድጋሚ ሞክር"</string>
@@ -805,8 +805,8 @@
<string name="supp_service_outgoing_calls_barred" msgid="5205725332394087112">"ወጪ ጥሪዎች ተከልክለዋል።"</string>
<string name="supp_service_call_forwarding_active" msgid="7910162960395132464">"ጥሪ ማስተላለፍ ንቁ።"</string>
<string name="supp_service_additional_call_forwarded" msgid="8772753260008398632">"ተጨማሪ ጥሪ ተላልፏል።"</string>
- <string name="supp_service_additional_ect_connected" msgid="8525934162945220237">"ግልጽ የጥሪ ማስተላለፍ ተጠናቅቋል።"</string>
- <string name="supp_service_additional_ect_connecting" msgid="7046240728781222753">"ግልጽ የጥሪ ማስተላለፍ በሂደት ላይ።"</string>
+ <string name="supp_service_additional_ect_connected" msgid="8525934162945220237">"ግልፅ የጥሪ ማስተላለፍ ተጠናቅቋል።"</string>
+ <string name="supp_service_additional_ect_connecting" msgid="7046240728781222753">"ግልፅ የጥሪ ማስተላለፍ በሂደት ላይ።"</string>
<string name="supp_service_call_on_hold" msgid="2836811319594503059">"ጥሪ በይቆይ ላይ።"</string>
<string name="supp_service_call_resumed" msgid="3786864005920743546">"ጥሪ ከቆመበት ቀጥሏል።"</string>
<string name="supp_service_deflected_call" msgid="7565979024562921707">"ጥሪው አቅጣጫው ተቀይሯል።"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"ይህን ቅንብር ለመለወጥ መሣሪያዎትን ዳግም ማስጀመር ያስፈልግዎታል።"</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"ዳግም አስጀምር"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"ይቅር"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"የሚወገድን ኢሲም ነባሪ በሚል አቀናብር"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"የሞባይል ሬዲዮ ኃይል"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"ከአገልግሎት ውጭን አስመስል (የስህተት ማረሚያ ግንብ ብቻ)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"የሲም አድራሻ ደብተር አሳይ"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"በቋሚነት የሚደወልባቸው ቁጥሮች"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"የአገልግሎት መደወያ ቁጥሮችን ተመልከት"</string>
@@ -847,7 +849,7 @@
<string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"አይገኝም"</string>
<string name="radio_info_ims_reg_status" msgid="25582845222446390">"የIMS ምዝገባ፦ <xliff:g id="STATUS">%1$s</xliff:g>\n የድምጽ ቅጂ LTE፡ <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nየድምጽ ቅጂ WiFi፡ <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nየቪድዮ ጥሪ፦ <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT በይነገጽ፡ <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
<string name="radioInfo_service_in" msgid="45753418231446400">"በአገልግሎት ውስጥ"</string>
- <string name="radioInfo_service_out" msgid="287972405416142312">"ከአገልግሎት ውጪ"</string>
+ <string name="radioInfo_service_out" msgid="287972405416142312">"ከአገልግሎት ውጭ"</string>
<string name="radioInfo_service_emergency" msgid="4763879891415016848">"የአደጋ ጊዜ ጥሪዎች ብቻ"</string>
<string name="radioInfo_service_off" msgid="3456583511226783064">"ሬዲዮ ጠፍቷል"</string>
<string name="radioInfo_roaming_in" msgid="3156335577793145965">"በማዘዋወር ላይ"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"የስልክ መረጃ"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"የአገልግሎት አቅራቢ አቅርቦት መረጃ"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"የቀስቅሴ አገልግሎት አቅራቢ አቅርቦት"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC የባለመብትነት መታወቂያ፦"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"አዘምን"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"አድስ"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"የእርስዎ የብሉቱዝ ሲግናል ደካማ ነው። ወደ የስልክ ድምፅ ማጉያ ለመቀየር ይሞክሩ።"</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"የጥሪ ጥራት ማሳወቂያ"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"የተቋረጡ የSIP መለያዎች"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 474db3c..01799a9 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -692,7 +692,7 @@
<string name="change_pin_enter_new_pin_header" msgid="4739465616733486118">"تعيين رقم تعريف شخصي جديد"</string>
<string name="change_pin_enter_new_pin_hint" msgid="2326038476516364210">"ينبغي لرقم التعريف الشخصي أن يتكون من <xliff:g id="MIN">%1$d</xliff:g>-<xliff:g id="MAX">%2$d</xliff:g> أرقام."</string>
<string name="change_pin_confirm_pin_header" msgid="2606303906320705726">"تأكيد رقم التعريف الشخصي"</string>
- <string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"أرقام التعريف الشخصي غير متطابقة"</string>
+ <string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"رقما التعريف الشخصي غير متطابقَين"</string>
<string name="change_pin_succeeded" msgid="2504705600693014403">"تمّ تحديث رقم التعريف الشخصي للبريد الصوتي"</string>
<string name="change_pin_system_error" msgid="7772788809875146873">"يتعذر تعيين رقم التعريف الشخصي"</string>
<string name="mobile_data_status_roaming_turned_off_subtext" msgid="6840673347416227054">"تم إيقاف تجوال البيانات"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"عليك إعادة تشغيل جهازك لتغيير هذا الإعداد."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"إعادة التشغيل"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"إلغاء"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"ضبط شريحة eSIM القابلة للإزالة كشريحة تلقائية"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"طاقة اللاسلكي للجوّال"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"محاكاة الخطأ \"خارج الخدمة\" (الإصدار المخصص لتصحيح الأخطاء فقط)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"عرض دفتر عناوين SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"عرض أرقام الطلب الثابت"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"عرض أرقام طلب الخدمة"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"معلومات الهاتف"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"معلومات توفير خدمة مشغّل شبكة الجوّال"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"توفير خدمة مشغّل شبكة الجوّال"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"معرّف التخويل لميزة \"الاتصال عبر Wi-Fi\":"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"تعديل"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"إعادة تحميل"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"إشارة البلوتوث ضعيفة. حاوِل التبديل إلى مكبّر الصوت."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"إشعار بشأن جودة المكالمة"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"حسابات SIP المتوقّفة"</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index ed39775..aab6884 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -144,7 +144,7 @@
<string name="stk_cc_ss_to_ussd_error" msgid="8330749347425752192">"SS অনুৰোধ USSD অনুৰোধলৈ সলনি কৰা হ’ল"</string>
<string name="stk_cc_ss_to_ss_error" msgid="8297155544652134278">"নতুন SS অনুৰোধলৈ সলনি কৰা হ’ল"</string>
<string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"SS অনুৰোধ ভিডিঅ\' কললৈ সলনি কৰা হ’ল"</string>
- <string name="fdn_check_failure" msgid="1833769746374185247">"আপোনাৰ ফ\'ন এপটোৰ ফিক্সড্ ডায়েলিং নম্বৰ ছেটিঙটো অন কৰি থোৱা আছে। ফলস্বৰূপে, কল সম্পৰ্কীয় কিছুমান সুবিধাই কাম কৰা নাই।"</string>
+ <string name="fdn_check_failure" msgid="1833769746374185247">"আপোনাৰ ফ\'ন এপ্টোৰ ফিক্সড্ ডায়েলিং নম্বৰ ছেটিঙটো অন কৰি থোৱা আছে। ফলস্বৰূপে, কল সম্পৰ্কীয় কিছুমান সুবিধাই কাম কৰা নাই।"</string>
<string name="radio_off_error" msgid="8321564164914232181">"এই ছেটিংসমূহ চোৱাৰ আগতে ৰেডিঅ\' অন কৰক।"</string>
<string name="close_dialog" msgid="1074977476136119408">"ঠিক"</string>
<string name="enable" msgid="2636552299455477603">"অন কৰক"</string>
@@ -179,7 +179,7 @@
<string name="network_query_error" msgid="3862515805115145124">"নেটৱৰ্ক বিচাৰি পোৱা নগ\'ল। আকৌ চেষ্টা কৰক।"</string>
<string name="register_on_network" msgid="4194770527833960423">"<xliff:g id="NETWORK">%s</xliff:g>ৰ লগত পঞ্জীয়ন কৰি থকা হৈছে…"</string>
<string name="not_allowed" msgid="8541221928746104798">"আপোনাৰ ছিম কাৰ্ডখনে এই নেটৱৰ্কটোৰ সৈতে সংযোগ কৰিবলৈ অনুমতি নিদিয়ে।"</string>
- <string name="connect_later" msgid="1950138106010005425">"এই মুহূৰ্তত এই নেটৱৰ্কটোৰ সৈতে সংযোগ কৰিব নোৱাৰি। পিছত আকৌ চেষ্টা কৰক।"</string>
+ <string name="connect_later" msgid="1950138106010005425">"এই মুহূৰ্তত এই নেটৱৰ্কটোৰ সৈতে সংযোগ কৰিব নোৱাৰি। পাছত আকৌ চেষ্টা কৰক।"</string>
<string name="registration_done" msgid="5337407023566953292">"নেটৱৰ্কৰ লগত পঞ্জীয়ন কৰা হ’ল।"</string>
<string name="already_auto" msgid="8607068290733079336">"স্বয়ংক্ৰিয় বাছনিত ইতিমধ্যে আছে।"</string>
<string name="select_automatically" msgid="779750291257872651">"স্বয়ংক্ৰিয়ভাৱে নেটৱৰ্ক বাছনি কৰক"</string>
@@ -613,7 +613,7 @@
<string name="network_info_message" msgid="7599413947016532355">"নেটৱৰ্ক বাৰ্তা"</string>
<string name="network_error_message" msgid="4271579424089326618">"আসোঁৱাহ বাৰ্তা"</string>
<string name="ota_title_activate" msgid="4049645324841263423">"আপোনাৰ ফ\'নটো সক্ৰিয় কৰক"</string>
- <string name="ota_touch_activate" msgid="838764494319694754">"আপোনাৰ ফ\'নৰ সেৱা সক্ৰিয় কৰিবলৈ এটা বিশেষ কল কৰা প্ৰয়োজন। \n\nআপোনাৰ ফ\'নটো সক্ৰিয় কৰিবলৈ \"সক্ৰিয় কৰক\"ত টিপাৰ পিছত নিৰ্দেশনাসমূহ শুনক।"</string>
+ <string name="ota_touch_activate" msgid="838764494319694754">"আপোনাৰ ফ\'নৰ সেৱা সক্ৰিয় কৰিবলৈ এটা বিশেষ কল কৰা প্ৰয়োজন। \n\nআপোনাৰ ফ\'নটো সক্ৰিয় কৰিবলৈ \"সক্ৰিয় কৰক\"ত টিপাৰ পাছত নিৰ্দেশনাসমূহ শুনক।"</string>
<string name="ota_hfa_activation_title" msgid="3300556778212729671">"সক্ৰিয় কৰি থকা হৈছে..."</string>
<string name="ota_hfa_activation_dialog_message" msgid="7921718445773342996">"ফ\'নটোৱে আপোনাৰ ম’বাইল ডেটা সেৱা সক্ৰিয় কৰি আছে।\n\nএই কামটো সম্পূৰ্ণ হ\'বলৈ ৫ মিনিট পৰ্যন্ত সময় লাগিব পাৰে।"</string>
<string name="ota_skip_activation_dialog_title" msgid="7666611236789203797">"সক্ৰিয়কৰণ এৰি যায় নেকি?"</string>
@@ -711,7 +711,7 @@
<string name="mobile_data_activate_cancel_button" msgid="3530174817572005860">"বাতিল কৰক"</string>
<string name="clh_card_title_call_ended_txt" msgid="5977978317527299698">"কল শেষ হ’ল"</string>
<string name="clh_callFailed_powerOff_txt" msgid="8279934912560765361">"এয়াৰপ্লেইন ম\'ড অন হৈ আছে"</string>
- <string name="clh_callFailed_simError_txt" msgid="5128538525762326413">"ছিম কাৰ্ডত প্ৰৱেশ কৰিব পৰা নাই"</string>
+ <string name="clh_callFailed_simError_txt" msgid="5128538525762326413">"ছিম কাৰ্ড এক্সেছ কৰিব নোৱাৰি"</string>
<string name="clh_incall_error_out_of_service_txt" msgid="2736010617446749869">"ম’বাইল নেটৱৰ্ক উপলব্ধ নহয়"</string>
<string name="clh_callFailed_unassigned_number_txt" msgid="141967660286695682">"আপুনি ডায়েল কৰিব খোজা ফ\'ন নম্বৰত আসোঁৱাহ আছে। আসোঁৱাহ ক\'ড ১।"</string>
<string name="clh_callFailed_no_route_to_destination_txt" msgid="4805015149822352308">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৩।"</string>
@@ -794,7 +794,7 @@
<string name="call_barring_confirm_pwd" msgid="7552526161616461858">"পাছৱৰ্ড নিশ্চিত কৰক"</string>
<string name="messageCallBarring" msgid="5537730400652466912">"পাছৱৰ্ড দিয়ক"</string>
<string name="call_barring_settings" msgid="4616607285790258919">"কল প্ৰতিবন্ধক ছেটিংসমূহ"</string>
- <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"নেটৱৰ্ক ব্যস্ত। অনুগ্ৰহ কৰি কিছুসময় পিছত আকৌ কল কৰাৰ চেষ্টা কৰক।"</string>
+ <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"নেটৱৰ্ক ব্যস্ত। অনুগ্ৰহ কৰি কিছুসময় পাছত আকৌ কল কৰাৰ চেষ্টা কৰক।"</string>
<string name="callFailed_NetworkCongested" msgid="6801283142342775380">"নেটৱর্ক ব্যস্ত আছে। সহায়তাৰ বাবে আপোনাৰ ম\'বাইল অ\'পাৰেটৰৰ সৈতে যোগাযোগ কৰক।"</string>
<string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"কলটো বিচ্যুত কৰা হৈছে।"</string>
<string name="supp_service_notification_call_forwarded" msgid="7102930311735433088">"কলটো ফৰৱাৰ্ড কৰা হ’ল।"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"আপুনি এই ছেটিংটো সলনি কৰিবলৈ আপোনাৰ ডিভাইচটো ৰিষ্টার্ট কৰিব লাগিব।"</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"ৰিষ্টাৰ্ট কৰক"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"বাতিল কৰক"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"আঁতৰাব পৰা ই-ছিম ডিফ’ল্ট হিচাপে ছেট কৰক"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"ম’বাইলৰ ৰেডিঅ’ পাৱাৰ"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"সেৱাত নাই ছিমুলে’ট কৰক (কেৱল ডিবাগ বিল্ড)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ছিম ঠিকনা সূচী চাওক"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ফিক্সড্ ডায়েলিং নম্বৰসমূহ চাওক"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"সেৱা ডায়েলিং নম্বৰসমূহ চাওক"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"ফ\'নৰ তথ্য"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"বাহকৰ প্ৰ’ভিজনিং তথ্য"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"বাহকৰ প্ৰ’ভিজনিং সূচনা কৰক"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC স্বত্ব আইডি:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"আপডে’ট কৰক"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ৰিফ্ৰেশ্ব কৰক"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"আপোনাৰ ব্লুটুথৰ ছিগনেল দুৰ্বল। স্পীকাৰফ’নলৈ সলনি কৰি চাওক।"</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"কলৰ গুণগত মানৰ জাননী"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"বন্ধ হৈ যোৱা SIP একাউণ্ট"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 3902eb7..479738f 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Bu ayarı dəyişmək üçün cihazı yenidən başlatmalısınız."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Yenidən başladın"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Ləğv edin"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Çıxarıla bilən eSIM\'i Defolt olaraq təyin edin"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobil Radio Enerjisi"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"\"Xidmətdənkənar\" Simulyasiyası (yalnız Debaq Versiyası)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM Ünvan Kitabçasına Baxın"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Sabit Yığım Nömrələrinə Baxın"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Xidmət Yığım Nömrələrinə Baxın"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefon məlumatı"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Operator Təchizat Məlumatı"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Operator Təchizatlanmasını aktiv edin"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC İcazə ID-si:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Güncəlləyin"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Yeniləyin"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth siqnalı zəifdir. Telefon spikerinə keçin."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Zəng keyfiyyəti bildirişi"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Ləğv edilmiş SIP hesabları"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 97c3607..9815d95 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -305,7 +305,7 @@
<string name="carrier_settings_euicc_summary" msgid="2027941166597330117">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
<string name="mobile_data_settings_title" msgid="7228249980933944101">"Mobilni podaci"</string>
<string name="mobile_data_settings_summary" msgid="5012570152029118471">"Koristi podatke preko mobilne mreže"</string>
- <string name="data_usage_disable_mobile" msgid="5669109209055988308">"Želite li da isključite mobilne podatke?"</string>
+ <string name="data_usage_disable_mobile" msgid="5669109209055988308">"Želite da isključite mobilne podatke?"</string>
<string name="sim_selection_required_pref" msgid="6985901872978341314">"Potrebno je da izaberete nešto"</string>
<string name="sim_change_data_title" msgid="9142726786345906606">"Da promenimo SIM za podatke?"</string>
<string name="sim_change_data_message" msgid="3567358694255933280">"Želite li da za mobilne podatke koristite <xliff:g id="NEW_SIM">%1$s</xliff:g> umesto <xliff:g id="OLD_SIM">%2$s</xliff:g>?"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Treba da restartujte uređaj da biste promenili ovo podešavanje."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restartuj"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Otkaži"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Podesi prenosivi eSIM kao podrazumevani"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Napajanje za radio na mobilnim uređajima"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulacija ne funkcioniše (samo verzija sa otklonjenim greškama)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži adresar SIM-a"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži brojeve za fiksno biranje"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži brojeve za servisno biranje"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacije o telefonu"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Informacije o dodeli mobilnog operatera"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Pokretanje dodele mobilnog operatera"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID prava na WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Ažuriraj"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Osveži"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth signal je slab. Probajte da pređete na spikerfon."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Obaveštenje o kvalitetu poziva"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Zastareli SIP nalozi"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index d13be56..188e778 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -20,7 +20,7 @@
<string name="phoneAppLabel" product="default" msgid="130465039375347763">"Тэлефонныя службы"</string>
<string name="emergencyDialerIconLabel" msgid="8668005772339436680">"Экстраныя выклікі"</string>
<string name="phoneIconLabel" msgid="3015941229249651419">"Тэлефон"</string>
- <string name="fdnListLabel" msgid="4119121875004244097">"Спіс FDN"</string>
+ <string name="fdnListLabel" msgid="4119121875004244097">"Спіс дазволеных нумароў"</string>
<string name="unknown" msgid="8279698889921830815">"Невядомы"</string>
<string name="private_num" msgid="4487990167889159992">"Прыватны нумар"</string>
<string name="payphone" msgid="7936735771836716941">"Таксафон"</string>
@@ -438,18 +438,18 @@
<string name="carrier_settings_title" msgid="6292869148169850220">"Налады аператара"</string>
<string name="fdn" msgid="2545904344666098749">"Фіксаваныя нумары"</string>
<string name="fdn_with_label" msgid="6412087553365709494">"Нумары закрытай абаненцкай групы (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
- <string name="manage_fdn_list" msgid="3341716430375195441">"Спіс FDN"</string>
- <string name="fdn_list_with_label" msgid="1409655283510382556">"Спіс закрытай абаненцкай групы (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
- <string name="fdn_activation" msgid="2178637004710435895">"Актывацыя FDN"</string>
+ <string name="manage_fdn_list" msgid="3341716430375195441">"Спіс дазволеных нумароў"</string>
+ <string name="fdn_list_with_label" msgid="1409655283510382556">"Спіс дазволеных нумароў (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="fdn_activation" msgid="2178637004710435895">"Актывацыя дазволеных нумароў"</string>
<string name="fdn_enabled" msgid="7017355494808056447">"Фіксаваныя нумары ўключаны"</string>
<string name="fdn_disabled" msgid="6696468878037736600">"Фіксаваныя нумары адключаны"</string>
- <string name="enable_fdn" msgid="4830555730418033723">"Уключыць FDN"</string>
- <string name="disable_fdn" msgid="3918794950264647541">"Адключыць FDN"</string>
+ <string name="enable_fdn" msgid="4830555730418033723">"Уключыць дазволеныя нумары"</string>
+ <string name="disable_fdn" msgid="3918794950264647541">"Адключыць дазволеныя нумары"</string>
<string name="change_pin2" msgid="3110844547237754871">"Змяніць PIN2"</string>
- <string name="enable_fdn_ok" msgid="5080925177369329827">"Адключыць FDN"</string>
- <string name="disable_fdn_ok" msgid="3745475926874838676">"Уключыць FDN"</string>
+ <string name="enable_fdn_ok" msgid="5080925177369329827">"Адключыць дазволеныя нумары"</string>
+ <string name="disable_fdn_ok" msgid="3745475926874838676">"Уключыць дазволеныя нумары"</string>
<string name="sum_fdn" msgid="6152246141642323582">"Кіраванне зафіксаванымі нумарамі"</string>
- <string name="sum_fdn_change_pin" msgid="3510994280557335727">"Змяніць PIN-код для доступу FDN"</string>
+ <string name="sum_fdn_change_pin" msgid="3510994280557335727">"Змяніць PIN-код для доступу да дазволеных нумароў"</string>
<string name="sum_fdn_manage_list" msgid="3311397063233992907">"Кіраванне спісам тэлефонных нумароў"</string>
<string name="voice_privacy" msgid="7346935172372181951">"Палiтыка прыватнасцi Voice"</string>
<string name="voice_privacy_summary" msgid="3556460926168473346">"Уключыць пашыраны рэжым прыватнасці"</string>
@@ -475,10 +475,10 @@
<string name="delete_fdn_contact" msgid="7027405651994507077">"Выдаліць дазволены нумар"</string>
<string name="deleting_fdn_contact" msgid="6872320570844460428">"Выдаленне дазволенага нумару..."</string>
<string name="fdn_contact_deleted" msgid="1680714996763848838">"Дазволены нумар выдалены."</string>
- <string name="pin2_invalid" msgid="2313954262684494442">"FDN не быў абноўлены, таму што вы набралі няправільны PIN-код."</string>
- <string name="fdn_invalid_number" msgid="9067189814657840439">"Фіксаваны нумар не абноўлены, бо не можа складацца больш чым з <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> лічбаў."</string>
+ <string name="pin2_invalid" msgid="2313954262684494442">"Дазволены нумар не быў абноўлены, таму што вы набралі няправільны PIN-код."</string>
+ <string name="fdn_invalid_number" msgid="9067189814657840439">"Дазволены нумар не абноўлены, бо не можа складацца больш чым з <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> лічбаў."</string>
<string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Cпiс дазволеных нумароў не адноўлены. PIN2 ўведзены няправiльна, або нумар быў адхiлены."</string>
- <string name="fdn_failed" msgid="216592346853420250">"Аперацыя ў закрытай абаненцкай групе не ўдалася."</string>
+ <string name="fdn_failed" msgid="216592346853420250">"Аперацыя з дазволеным нумарам не ўдалася."</string>
<string name="simContacts_emptyLoading" msgid="4989040293858675483">"Чытанне з SIM-карты..."</string>
<string name="simContacts_empty" msgid="1135632055473689521">"На вашай SIM-карце няма кантактаў."</string>
<string name="simContacts_title" msgid="2714029230160136647">"Выберыце кантакты для імпарту"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Каб змяніць гэту наладу, трэба перазапусціць прыладу."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Перазапусціць"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Скасаваць"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Зрабіць здымную eSIM-карту стандартнай"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Магутнасць радыёсігналу"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Мадэляванне знаходжання па-за сеткай (толькі ў зборцы для адладкі)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Праглядзець адрасную кнігу на SIM-карце"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Прагляд фіксаваных нумароў"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Паглядзець сэрвісныя нумары"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Звесткі аб тэлефоне"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Звесткі аб аператары"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Запусціць сінхранізацыю з аператарам"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Ідэнтыфікатар правоў WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Абнавіць"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Абнавіць"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Сігнал Bluetooth слабы. Паспрабуйце пераключыцца на гучную сувязь."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Апавяшчэнне пра якасць выкліку"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Састарэлыя ўліковыя запісы SIP"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index da48bfb..9426c5c 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"За да промените настройката, трябва да рестартирате устройството си."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Рестартиране"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Отказ"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Задаване на електронната SIM карта с изваждащ се чип като основна"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Мощност на мобилното радио"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Симулиране на липса на услуга (само в компилацията за отстраняване на грешки)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Преглед на указателя на SIM картата"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Преглед на номера за фиксирано набиране"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Преглед на номера за набиране на услуги"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Информация за телефона"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Информация за обезпечаването от оператора"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Задействане на обезпечаването от оператора"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID на правото на достъп до WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Актуализиране"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Опресняване"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Сигналът ви за Bluetooth е слаб. Опитайте да превключите на високоговорител."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Известия за качеството на обаждането"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Оттеглени профили за SIP"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index fd8cbaa..4054d88 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"এই সেটিং পরিবর্তন করতে আপনার ডিভাইস রিস্টার্ট করতে হবে।"</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"রিস্টার্ট করুন"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"বাদ দিন"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"সরিয়ে দেওয়া যায় এমন eSIM ডিফল্ট হিসেবে সেট করুন"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"মোবাইল রেডিওর গুণমান"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"আউট-অফ-সার্ভিস সিমুলেট করা (শুধুমাত্র ডিবাগ বিল্ডের জন্য)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"সিম অ্যাড্রেস বুক দেখুন"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"স্থায়ী ডায়াল নম্বরগুলি দেখুন"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"সার্ভিস ডায়াল নম্বরগুলি দেখুন"</string>
@@ -915,12 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"ফোনের তথ্য"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"পরিষেবা প্রদানকারীর ব্যবস্থামূলক তথ্য"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ট্রিগার পরিষেবা প্রদানকারীর ব্যবস্থা"</string>
- <!-- no translation found for provisioning_info_wfc_entitlement_id (8845188780811890910) -->
- <skip />
- <!-- no translation found for update_provisioning_info_wfc_entitlement_id (7044171908781134221) -->
- <skip />
- <!-- no translation found for refresh_provisioning_info_wfc_entitlement_id (738894335351353407) -->
- <skip />
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"আপনার ডিভাইসের ব্লুটুথ সিগনাল ভাল না। বদল করে স্পিকারফোন বেছে নিন।"</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"ফোন কলের কোয়ালিটি সংক্রান্ত বিজ্ঞপ্তি"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"পুরনো SIP অ্যাকাউন্ট"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 910cc33..c0bb458 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Da promijenite ovu postavku, trebate ponovo pokrenuti uređaj."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Ponovo pokreni"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Otkaži"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Postavljanje uklonjive eSim kartice kao zadane"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Snaga mobilnog radija"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulacija ne radi (samo verzija za otklanjanje grešaka)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži SIM adresar"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži brojeve fiksnog biranja"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži brojeve biranja usluga"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacije o telefonu"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Operater koji pruža informacije"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktiviranje dodjele resursa operatera"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID za WFC Entitlement:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Ažuriraj"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Osvježi"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Vaš Bluetooth signal je slab. Pokušajte prebaciti na zvučnik."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Obavještenje o kvalitetu poziva"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Zastarjeli SIP računi"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 4d0b99c..6b18654 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Has de reiniciar el dispositiu per canviar aquesta opció."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reinicia"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancel·la"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Defineix l\'eSIM extraïble com a opció predeterminada"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Potència del senyal mòbil"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simula que està fora de servei (només per a la compilació de depuració)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Mostra la llibreta d\'adreces de la SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Mostra els números de marcatge fix"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Mostra els números de marcatge de serveis"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Informació del telèfon"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Informació de serveis de l\'operador"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Activa els serveis de l\'operador"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Identificador de dret per a WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Actualitza"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Actualitza"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"El senyal del Bluetooth és feble. Fes servir l\'altaveu."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Notificació sobre la qualitat de la trucada"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Comptes SIP obsolets"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index fbfcb43..fc63e25 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Ke změně nastavení je nutné restartovat zařízení."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restartovat"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Zrušit"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Nastavit vyjímatelnou eSIM jako výchozí"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Výkon mobilního přijímače"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulovat provoz mimo službu (pouze ladicí sestavení)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Zobrazit adresář SIM karty"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Zobrazit povolená telefonní čísla"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Zobrazit čísla volání služeb"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Informace o telefonu"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Informace o zprovoznění služby u operátora"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Spustit zprovoznění služby u operátora"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID nároku služby WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Aktualizovat"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Obnovit"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Signál sítě Bluetooth je slabý. Zkuste přepnout na hlasitý odposlech."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Oznámení o kvalitě hovoru"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Zastaralé účty SIP"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 02709d8..c41d548 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Genstart enheden for at skifte indstilling."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Genstart"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Annuller"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Konfigurer eSIM, der kan fjernes, som standard"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobilsendestyrke"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulering af enhed, der er ude af drift (kun i fejlretningsbuild)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Vis adressebog på SIM-kortet"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Vis numre til begrænset opkald"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Vis tjenestens faste opkaldsnumre"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefonoplysninger"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Oplysninger om mobilselskab"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktivér mobilselskab"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC-berettigelses-id:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Opdater"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Opdater"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Dit Bluetooth-signal er svagt. Prøv at skifte til medhør."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Notifikation om opkaldskvalitet"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Udfasede SIP-konti"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index a4d1feb..2594f47 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -655,7 +655,7 @@
<string name="contactPhoto" msgid="7885089213135154834">"Kontaktbild"</string>
<string name="goPrivate" msgid="4645108311382209551">"privat sprechen"</string>
<string name="selectContact" msgid="1527612842599767382">"Kontakt wählen"</string>
- <string name="not_voice_capable" msgid="2819996734252084253">"Audioanruf wird nicht unterstützt."</string>
+ <string name="not_voice_capable" msgid="2819996734252084253">"Sprachanruf wird nicht unterstützt."</string>
<string name="description_dial_button" msgid="8614631902795087259">"Wählen"</string>
<string name="description_dialpad_button" msgid="7395114120463883623">"Wähltasten anzeigen"</string>
<string name="pane_title_emergency_dialpad" msgid="3627372514638694401">"Wähltasten für Notruf"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Die Änderung erfordert einen Neustart des Geräts."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Neu starten"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Abbrechen"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Wechsel-eSIM als Standard festlegen"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobilfunkstärke"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"„Außer Betrieb“ simulieren (nur Debug-Build)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM-Adressbuch anzeigen"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Rufnummernbeschränkung ansehen"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Servicerufnummern anzeigen"</string>
@@ -882,7 +884,7 @@
<string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Empfangene Daten:"</string>
<string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Sprachdienst:"</string>
<string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Signalstärke:"</string>
- <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status für Audioanruf:"</string>
+ <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status für Sprachanruf:"</string>
<string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Gesendete Daten:"</string>
<string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Nachricht liegt vor:"</string>
<string name="radio_info_phone_number_label" msgid="2533852539562512203">"Telefonnummer:"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Über das Telefon"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Informationen zur Nutzerverwaltung durch den Anbieter"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Nutzerverwaltung durch den Anbieter auslösen"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC-Berechtigungs-ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Aktualisieren"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Aktualisieren"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Das Bluetooth-Signal ist schwach. Verwende die Freisprechfunktion."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Benachrichtigung zu Anrufqualität"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Eingestellte SIP-Konten"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index b43d89a..6af4940 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Πρέπει να επανεκκινηθεί η συσκευή για να αλλάξει η ρύθμιση."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Επανεκκίνηση"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Ακύρωση"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Ορισμός αφαιρούμενης eSIM ως προεπιλεγμένης"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Ισχύς πομπού κινητής τηλεφωνίας"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Η προσομοίωση δεν λειτουργεί (μόνο έκδοση εντοπισμού σφαλμάτων)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Προβολή βιβλίου διευθύνσεων κάρτας SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Προβολή προκαθορισμένων αριθμών κλήσης"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Προβολή αριθμών κλήσης υπηρεσίας"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Πληροφορίες τηλεφώνου"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Πληροφορίες παροχής εταιρείας κινητής τηλεφωνίας"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Ενεργοποίηση παροχής εταιρείας κινητής τηλεφωνίας"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Αναγνωριστικό δικαιώματος WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Ενημέρωση"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Ανανέωση"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Το σήμα bluetooth είναι ασθενές. Δοκιμάστε να αλλάξετε σε ανοιχτή ακρόαση."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Ειδοποίηση ποιότητας κλήσης"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Καταργημένοι λογαριασμοί SIP"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index cede509..dc357ae 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"You need to restart your device to change this setting."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restart"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancel"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Set removable eSIM as default"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobile radio power"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulate out of service (debug build only)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Phone info"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Operator provisioning info"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger operator provisioning"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC entitlement ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Update"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Refresh"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Your Bluetooth signal is weak. Try switching to speakerphone."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Call quality notification"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Deprecated SIP accounts"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 6e5e368..b861ae4 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"You need to restart your device to change this setting."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restart"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancel"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Set removable eSIM as default"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobile radio power"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulate out of service (debug build only)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Phone info"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Operator provisioning info"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger operator provisioning"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC entitlement ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Update"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Refresh"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Your Bluetooth signal is weak. Try switching to speakerphone."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Call quality notification"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Deprecated SIP accounts"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index cede509..dc357ae 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"You need to restart your device to change this setting."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restart"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancel"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Set removable eSIM as default"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobile radio power"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulate out of service (debug build only)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Phone info"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Operator provisioning info"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger operator provisioning"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC entitlement ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Update"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Refresh"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Your Bluetooth signal is weak. Try switching to speakerphone."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Call quality notification"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Deprecated SIP accounts"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index cede509..dc357ae 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"You need to restart your device to change this setting."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restart"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancel"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Set removable eSIM as default"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobile radio power"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulate out of service (debug build only)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Phone info"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Operator provisioning info"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger operator provisioning"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC entitlement ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Update"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Refresh"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Your Bluetooth signal is weak. Try switching to speakerphone."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Call quality notification"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Deprecated SIP accounts"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 09d28cf..2284c44 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"You need to restart your device to change this setting."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restart"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancel"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Set Removable eSIM as Default"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobile Radio Power"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulate Out of Service (Debug Build only)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM Address Book"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View Fixed Dialing Numbers"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View Service Dialing Numbers"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Phone info"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Carrier Provisioning Info"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger Carrier Provisioning"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC Entitlement ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Update"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Refresh"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Your bluetooth signal is weak. Try switching to speakerphone."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Call Quality Notification"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Deprecated SIP accounts"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 882900c..f8e97eb 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -115,7 +115,7 @@
<string name="sum_cfb_disabled" msgid="3589913334164866035">"Desactivado"</string>
<string name="disable_cfb_forbidden" msgid="4831494744351633961">"Tu proveedor no admite la inhabilitación del desvío de llamadas cuando tu teléfono está ocupado."</string>
<string name="labelCFNRy" msgid="3403533792248457946">"Cuando no haya respuesta"</string>
- <string name="messageCFNRy" msgid="7644434155765359009">"Número cuando no contesta"</string>
+ <string name="messageCFNRy" msgid="7644434155765359009">"Número cuando no hay respuesta"</string>
<string name="sum_cfnry_enabled" msgid="3000500837493854799">"Reenviar a <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnry_disabled" msgid="1990563512406017880">"Desactivado"</string>
<string name="disable_cfnry_forbidden" msgid="3174731413216550689">"Tu proveedor no admite la inhabilitación del desvío de llamadas cuando tu teléfono no responde."</string>
@@ -575,7 +575,7 @@
<string name="fire_type_description" msgid="6565200468934914930">"Bomberos"</string>
<string name="description_concat_format" msgid="2014471565101724088">"%1$s, %2$s"</string>
<string name="dialerKeyboardHintText" msgid="1115266533703764049">"Utilizar teclado para marcar"</string>
- <string name="onscreenHoldText" msgid="4025348842151665191">"Retener"</string>
+ <string name="onscreenHoldText" msgid="4025348842151665191">"Pausar"</string>
<string name="onscreenEndCallText" msgid="6138725377654842757">"Finalizar"</string>
<string name="onscreenShowDialpadText" msgid="658465753816164079">"Teclado telefónico"</string>
<string name="onscreenMuteText" msgid="5470306116733843621">"Silenciar"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Debes reiniciar el dispositivo para cambiar este parámetro de configuración."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reiniciar"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancelar"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Establecer eSIM extraíble como predeterminada"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Potencia de la señal móvil"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simular fuera de servicio (solo para la compilación de depuración)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver libreta de direcciones de SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de marcación fija"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcación de servicio"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Información del teléfono"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Información del aprovisionamiento del proveedor"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Activar aprovisionamiento del proveedor"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID de derecho de WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Actualizar"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Actualizar"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Tu señal de Bluetooth es débil. Intenta cambiar al altavoz."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Notificación de calidad de llamada"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Cuentas SIP obsoletas"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 2759dbb..b447036 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Debes reiniciar el dispositivo para cambiar este ajuste."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reiniciar"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancelar"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Establecer eSIM extraíble como predeterminada"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Potencia de la señal móvil"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simular fuera del servicio (solo versión de depuración)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver libreta de direcciones de tarjeta SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de marcación fija"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcación de servicio"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Información sobre el teléfono"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Información de servicios del operador"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Activar servicios del operador"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID de derecho a WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Actualizar"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Actualizar"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Tu señal de Bluetooth es débil. Prueba a cambiar al altavoz."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Notificación de calidad de la llamada"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Cuentas SIP obsoletas"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index b1ca47c..c458160 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Selle seade muutmiseks peate seadme taaskäivitama."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Taaskäivita"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Tühista"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Eemaldatava eSIM-i määramine vaikevalikuks"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobiiliraadio toide"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simuleerimine ei tööta (ainult silumisjärgus)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Kuva SIM-i aadressiraamat"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Kuva fikseeritud valimisnumbrid"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Kuva teenuse valimise numbrid"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefoniteave"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Operaatori ettevalmistamise teave"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Operaatori ettevalmistamise päästik"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC õiguse ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Uuenda"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Värskenda"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Teie Bluetoothi signaal on nõrk. Lülitage valjuhääldile."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Kõnekvaliteedi märguanne"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Katkestatud toega SIP-kontod"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 58ba2f9..92df0e7 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -92,7 +92,7 @@
<string name="additional_cdma_call_settings" msgid="2178016561980611304">"CDMA deien ezarpen gehigarriak"</string>
<string name="sum_cdma_call_settings" msgid="3185825305136993636">"CDMA soilik motako deietarako ezarpen gehigarriak"</string>
<string name="labelNwService" msgid="6015891883487125120">"Sareko zerbitzuen ezarpenak"</string>
- <string name="labelCallerId" msgid="2090540744550903172">"Deitzailearen IDa"</string>
+ <string name="labelCallerId" msgid="2090540744550903172">"Deitzailearen identitatea"</string>
<string name="sum_loading_settings" msgid="434063780286688775">"Ezarpenak kargatzen…"</string>
<string name="sum_hide_caller_id" msgid="131100328602371933">"Ezkutatu zenbakia irteerako deietan"</string>
<string name="sum_show_caller_id" msgid="3571854755324664591">"Erakutsi zenbakia irteerako deietan"</string>
@@ -143,7 +143,7 @@
<string name="stk_cc_ss_to_dial_error" msgid="5147693491690618704">"SS eskaera ohiko deira aldatu da"</string>
<string name="stk_cc_ss_to_ussd_error" msgid="8330749347425752192">"SS eskaera USSD eskaerara aldatu da"</string>
<string name="stk_cc_ss_to_ss_error" msgid="8297155544652134278">"SS eskaera berrira aldatu da"</string>
- <string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"SS eskaera bideo-deira aldatu da"</string>
+ <string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"SS eskaera bideodeira aldatu da"</string>
<string name="fdn_check_failure" msgid="1833769746374185247">"Telefonoa aplikazioaren Markatze finkoko zenbakiak ezarpena aktibatuta daukazu. Ondorioz, deiekin lotutako eginbide batzuk ez dira funtzionatzen ari."</string>
<string name="radio_off_error" msgid="8321564164914232181">"Ezarpenak ikusi aurretik, piztu irratia."</string>
<string name="close_dialog" msgid="1074977476136119408">"Ados"</string>
@@ -167,7 +167,7 @@
<string name="vm_change_pin_progress_message" msgid="626015184502739044">"Itxaron, mesedez."</string>
<string name="vm_change_pin_error_too_short" msgid="1789139338449945483">"Laburregia da PIN berria."</string>
<string name="vm_change_pin_error_too_long" msgid="3634907034310018954">"Luzeegia da PIN berria."</string>
- <string name="vm_change_pin_error_too_weak" msgid="8581892952627885719">"Ez da batere segurua PIN berria. Pasahitza segurua izan dadin, ez du izan behar zenbaki-segidarik edo errepikatutako zenbakirik."</string>
+ <string name="vm_change_pin_error_too_weak" msgid="8581892952627885719">"Ez da batere segurua PIN berria. Pasahitz konplexuek ez dute izan behar zenbaki-segidarik edo errepikatutako zenbakirik."</string>
<string name="vm_change_pin_error_mismatch" msgid="5364847280026257331">"PIN zaharra ez dator bat."</string>
<string name="vm_change_pin_error_invalid" msgid="5230002671175580674">"Balio ez duten karaktereak ditu PIN berriak."</string>
<string name="vm_change_pin_error_system_error" msgid="9116483527909681791">"Ezin da aldatu PINa"</string>
@@ -310,7 +310,7 @@
<string name="sim_change_data_title" msgid="9142726786345906606">"Datuetarako SIMa aldatu nahi duzu?"</string>
<string name="sim_change_data_message" msgid="3567358694255933280">"Datu-konexiorako, <xliff:g id="NEW_SIM">%1$s</xliff:g> txartela erabili nahi duzu <xliff:g id="OLD_SIM">%2$s</xliff:g> txartelaren ordez?"</string>
<string name="wifi_calling_settings_title" msgid="5800018845662016507">"Wifi bidezko deiak"</string>
- <string name="video_calling_settings_title" msgid="342829454913266078">"Operadorearen bideo-deiak"</string>
+ <string name="video_calling_settings_title" msgid="342829454913266078">"Operadorearen bideodeiak"</string>
<string name="gsm_umts_options" msgid="4968446771519376808">"GSM/UMTS aukerak"</string>
<string name="cdma_options" msgid="3669592472226145665">"CDMA aukerak"</string>
<string name="throttle_data_usage" msgid="1944145350660420711">"Datu-erabilera"</string>
@@ -457,7 +457,7 @@
<string name="tty_mode_option_summary" msgid="4770510287236494371">"Ezarri TTY modua"</string>
<string name="auto_retry_mode_title" msgid="2985801935424422340">"Saiatu berriro automatikoki"</string>
<string name="auto_retry_mode_summary" msgid="2863919925349511402">"Gaitu automatikoki berriro saiatzeko modua"</string>
- <string name="tty_mode_not_allowed_video_call" msgid="6551976083652752815">"Ezin da aldatu TTY modua bideo-deiak abian direnean"</string>
+ <string name="tty_mode_not_allowed_video_call" msgid="6551976083652752815">"Ezin da aldatu TTY modua bideodeiak abian direnean"</string>
<string name="menu_add" msgid="5616487894975773141">"Gehitu kontaktua"</string>
<string name="menu_edit" msgid="3593856941552460706">"Editatu kontaktua"</string>
<string name="menu_delete" msgid="6326861853830546488">"Ezabatu kontaktua"</string>
@@ -534,7 +534,7 @@
<string name="notification_voicemail_no_vm_number" msgid="3423686009815186750">"Erantzungailuaren zenbakia ezezaguna da"</string>
<string name="notification_network_selection_title" msgid="255595526707809121">"Ez dago zerbitzurik"</string>
<string name="notification_network_selection_text" msgid="553288408722427659">"Hautatutako sarea (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) ez dago erabilgarri"</string>
- <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Deitzeko, aktibatu sare mugikorra, desaktibatu hegaldi modua edo desaktibatu bateria-aurrezlea."</string>
+ <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Deitzeko, aktibatu sare mugikorra, desaktibatu hegaldi modua edo desaktibatu bateria-aurreztailea."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Deia egiteko, desaktibatu hegaldi modua."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Deia egiteko, desaktibatu hegaldi modua edo konektatu haririk gabeko sare batera."</string>
<string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefonoa beroegi dago"</b>\n\n"Ezin da egin deia. Saiatu berriro telefonoa hozten denean.\n\nHala ere, larrialdi-deiak egin ditzakezu."</string>
@@ -585,7 +585,7 @@
<string name="onscreenManageCallsText" msgid="1162047856081836469">"Kudeatu deiak"</string>
<string name="onscreenManageConferenceText" msgid="4700574060601755137">"Kudeatu konferentzia"</string>
<string name="onscreenAudioText" msgid="7224226735052019986">"Audioa"</string>
- <string name="onscreenVideoCallText" msgid="1743992456126258698">"Bideo-deia"</string>
+ <string name="onscreenVideoCallText" msgid="1743992456126258698">"Bideodeia"</string>
<string name="importSimEntry" msgid="3892354284082689894">"Inportatu"</string>
<string name="importAllSimEntries" msgid="2628391505643564007">"Inportatu guztiak"</string>
<string name="importingSimContacts" msgid="4995457122107888932">"SIM txarteleko kontaktuak inportatzen"</string>
@@ -596,7 +596,7 @@
<string name="hac_mode_summary" msgid="7774989500136009881">"Aktibatu audifonoen bateragarritasuna"</string>
<string name="rtt_mode_title" msgid="3075948111362818043">"Deietan testua bidaltzeko eginbidea"</string>
<string name="rtt_mode_summary" msgid="8631541375609989562">"Baimendu mezuak bidali eta jasotzea ahots-deien barruan"</string>
- <string name="rtt_mode_more_information" msgid="587500128658756318">"Deietan testua bidaltzeko eginbideak deitzaile gorrei, entzumen-arazoak dituztenei, hitz egiteko ezintasunen bat dutenei edota ahotsaz gain beste makuluren bat behar dutenei laguntzen die.<br> <a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>>Lortu informazio gehiago</a>\n <br><br> - Deietan testua bidaltzeko eginbidearekin egindako deiak mezu-transkripzio gisa gordetzen dira.\n <br> - Deietan testua bidaltzeko eginbidea ez da bateragarria bideo-deiekin."</string>
+ <string name="rtt_mode_more_information" msgid="587500128658756318">"Deietan testua bidaltzeko eginbideak deitzaile gorrei, entzumen-arazoak dituztenei, hitz egiteko ezintasunen bat dutenei edota ahotsaz gain beste makuluren bat behar dutenei laguntzen die.<br> <a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>>Lortu informazio gehiago</a>\n <br><br> - Deietan testua bidaltzeko eginbidearekin egindako deiak mezu-transkripzio gisa gordetzen dira.\n <br> - Deietan testua bidaltzeko eginbidea ez da bateragarria bideodeiekin."</string>
<string name="no_rtt_when_roaming" msgid="5268008247378355389">"Oharra: Deietan testua bidaltzeko eginbidea ez dago erabilgarri ibiltaritzan"</string>
<string-array name="tty_mode_entries">
<item msgid="3238070884803849303">"TTY desaktibatuta"</item>
@@ -664,8 +664,8 @@
<string name="voicemail_change_pin_dialog_title" msgid="4633077715231764435">"Aldatu PINa"</string>
<string name="preference_category_ringtone" msgid="8787281191375434976">"Tonua eta dardara"</string>
<string name="pstn_connection_service_label" msgid="9200102709997537069">"SIM txartel integratuak"</string>
- <string name="enable_video_calling_title" msgid="7246600931634161830">"Aktibatu bideo-deiak"</string>
- <string name="enable_video_calling_dialog_msg" msgid="7141478720386203540">"Bideo-deiak aktibatzeko, 4G LTE modu hobetua aktibatu behar duzu \"Sarearen ezarpenak\" atalean."</string>
+ <string name="enable_video_calling_title" msgid="7246600931634161830">"Aktibatu bideodeiak"</string>
+ <string name="enable_video_calling_dialog_msg" msgid="7141478720386203540">"Bideodeiak aktibatzeko, 4G LTE modu hobetua aktibatu behar duzu \"Sarearen ezarpenak\" atalean."</string>
<string name="enable_video_calling_dialog_settings" msgid="8697890611305307110">"Sareko ezarpenak"</string>
<string name="enable_video_calling_dialog_close" msgid="4298929725917045270">"Itxi"</string>
<string name="sim_label_emergency_calls" msgid="9078241989421522310">"Larrialdi-deiak"</string>
@@ -680,7 +680,7 @@
<string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"Ezin da konektatu. Erabili balio duen SIM txartel bat."</string>
<string name="callFailed_wifi_lost" msgid="1788036730589163141">"Galdu egin da wifi-konexioa. Amaitu da deia."</string>
<string name="dialFailed_low_battery" msgid="6857904237423407056">"Ezin da egin deia, bateria gutxi gelditzen delako."</string>
- <string name="callFailed_low_battery" msgid="4056828320214416182">"Bideo-deia amaitu egin da bateria gutxi gelditzen delako."</string>
+ <string name="callFailed_low_battery" msgid="4056828320214416182">"Bideodeia amaitu egin da bateria gutxi gelditzen delako."</string>
<string name="callFailed_emergency_call_over_wfc_not_available" msgid="5944309590693432042">"Ez daude erabilgarri wifi bidezko larrialdi-deiak kokapen honetan."</string>
<string name="callFailed_wfc_service_not_available_in_this_location" msgid="3624536608369524988">"Ez daude erabilgarri wifi bidezko deiak kokapen honetan."</string>
<string name="change_pin_title" msgid="3564254326626797321">"Aldatu erantzungailuaren PINa"</string>
@@ -826,7 +826,7 @@
<string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Gaitu datu-konexioa"</string>
<string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Desgaitu datu-konexioa"</string>
<string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE hornituta"</string>
- <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Bideo-deiak aktibatuta"</string>
+ <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Bideodeiak aktibatuta"</string>
<string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi bidezko deiak aktibatuta"</string>
<string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence hornitu da"</string>
<string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS datuak"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Ezarpen hau aldatzeko, gailua berrabiarazi egin behar duzu."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Berrabiarazi"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Utzi"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Ezarri eSIM aldagarria lehenetsi gisa"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Sare mugikor bidezko irratiaren indarra"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulatu gailua ez dabilela (arazketa-konpilazioa soilik)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ikusi SIMeko kontaktuak"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ikusi markatze finkoko zenbakiak"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ikusi zerbitzuaren markatze-zenbakiak"</string>
@@ -845,7 +847,7 @@
<string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Erregistratu gabe"</string>
<string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Libre"</string>
<string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Ez dago erabilgarri"</string>
- <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS erregistroa: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE bidezko ahots-deiak: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWifi bidezko ahots-deiak: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nBideo-deiak: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interfazea: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+ <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS erregistroa: <xliff:g id="STATUS">%1$s</xliff:g>\nLTE bidezko ahots-deiak: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nWifi bidezko ahots-deiak: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nBideodeiak: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interfazea: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
<string name="radioInfo_service_in" msgid="45753418231446400">"Erabilgarri"</string>
<string name="radioInfo_service_out" msgid="287972405416142312">"Ez erabilgarri"</string>
<string name="radioInfo_service_emergency" msgid="4763879891415016848">"Larrialdi-deiak soilik"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefonoaren informazioa"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Operadorearen hornikuntza-informazioa"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Abiarazi operadorearen hornikuntza"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC Entitlement-eko IDa:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Eguneratu"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Freskatu"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth seinalea ahula da. Erabili telefonoko bozgorailua."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Deien kalitateari buruzko jakinarazpena"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"SIP-eko kontu zaharkituak"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index f5e9968..6743e96 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -451,7 +451,7 @@
<string name="sum_fdn" msgid="6152246141642323582">"مدیریت شمارههای شمارهگیری ثابت"</string>
<string name="sum_fdn_change_pin" msgid="3510994280557335727">"تغییر پین برای دسترسی FDN"</string>
<string name="sum_fdn_manage_list" msgid="3311397063233992907">"مدیریت فهرست شماره تلفن"</string>
- <string name="voice_privacy" msgid="7346935172372181951">"حریمخصوصی صوتی"</string>
+ <string name="voice_privacy" msgid="7346935172372181951">"حریم خصوصی صوتی"</string>
<string name="voice_privacy_summary" msgid="3556460926168473346">"فعال کردن حالت رازداری پیشرفته"</string>
<string name="tty_mode_option_title" msgid="3843817710032641703">"حالت TTY"</string>
<string name="tty_mode_option_summary" msgid="4770510287236494371">"تنظیم حالت TTY"</string>
@@ -592,9 +592,9 @@
<string name="importToFDNfromContacts" msgid="5068664870738407341">"وارد کردن از مخاطبین"</string>
<string name="singleContactImportedMsg" msgid="3619804066300998934">"مخاطب واردشده"</string>
<string name="failedToImportSingleContactMsg" msgid="228095510489830266">"مخاطب وارد نشد"</string>
- <string name="hac_mode_title" msgid="4127986689621125468">"دستگاههای کمکشنوایی"</string>
+ <string name="hac_mode_title" msgid="4127986689621125468">"سمعک"</string>
<string name="hac_mode_summary" msgid="7774989500136009881">"روشن کردن سازگاری دستگاه کمکشنوایی"</string>
- <string name="rtt_mode_title" msgid="3075948111362818043">"تماس نوشتار همزمان (RTT)"</string>
+ <string name="rtt_mode_title" msgid="3075948111362818043">"تماس با نوشتار همزمان (RTT)"</string>
<string name="rtt_mode_summary" msgid="8631541375609989562">"پیامرسانی در تماس صوتی مجاز است"</string>
<string name="rtt_mode_more_information" msgid="587500128658756318">"«نوشتار همزمان» به تماس گیرندگان ناشنوا، دارای مشکل شنوایی، دارای ناتوانی گفتاری یا افرادی که به چیزی بیش از صدا نیاز دارند کمک میکند.<br> <a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>>بیشتر بدانید</a>\n <br><br> تماسهای «نوشتار همزمان» بهصورت ترانویسی پیام ذخیره میشود\n <br> «نوشتار همزمان» برای تماسهای ویدیویی دردسترس نیست"</string>
<string name="no_rtt_when_roaming" msgid="5268008247378355389">"نکته: «نوشتار همزمان» در هنگام فراگردی دردسترس نیست"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"برای تغییر این تنظیم، باید دستگاه را بازراهاندازی کنید."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"بازراهاندازی"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"لغو"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"تنظیم سیمکارت داخلی جداشدنی بهعنوان پیشفرض"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"توان رادیوی تلفن همراه"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"شبیهسازی از کار افتادن (فقط ساخت اشکالزدایی)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"مشاهده دفترچه نشانی سیمکارت"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"مشاهده شمارههای شمارهگیری ثابت"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"مشاهده شمارههای شمارهگیری سرویس"</string>
@@ -898,7 +900,7 @@
<string name="ping_test_label" msgid="448617502935719694">"اجرای آزمایش پینگ"</string>
<string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
<string name="radio_info_smsc_update_label" msgid="5141996256097115753">"بهروزرسانی"</string>
- <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"بازخوانی"</string>
+ <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"بازآوری"</string>
<string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"تغییر وضعیت علامت DNS"</string>
<string name="oem_radio_info_label" msgid="2914167475119997456">"تنظیمات/اطلاعات خاص OEM"</string>
<string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC دردسترس است (NSA):"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"اطلاعات تلفن"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"اطلاعات ارائه شرکت مخابراتی"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"شروع ارائه شرکت مخابراتی"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"شناسه برخورداری از WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"بهروزرسانی"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"بازآوری"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"سیگنال بلوتوث شما ضعیف است. از بلندگوی تلفن استفاده کنید."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"اعلان کیفیت تماس"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"حسابهای SIP منسوخشده"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index d548e60..b835a0c 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Laite on käynnistettävä uudelleen asetuksen muuttamiseksi."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Käynnistä uudelleen"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Peru"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Aseta poistettava eSIM oletukseksi"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobiiliradion voimakkuus"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Epäkunnossa-simulaatio (vain virheenkorjauksen koontiversio)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Näytä SIM-kortin osoitekirja"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Näytä sallitut numerot"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Näytä sallitut palvelunumerot"</string>
@@ -892,8 +894,8 @@
<string name="radio_info_override_network_type_label" msgid="4176280017221092005">"Ohita verkon tyyppi:"</string>
<string name="phone_index_label" msgid="6222406512768964268">"Valitse puhelimen hakemisto"</string>
<string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Aseta ensisijainen verkon tyyppi:"</string>
- <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping-kutsu isäntänimelle (www.google.com), IPv4:"</string>
- <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping-kutsu isäntänimelle (www.google.com), IPv6:"</string>
+ <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Ping isäntänimelle (www.google.com), IPv4:"</string>
+ <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Ping isäntänimelle (www.google.com), IPv6:"</string>
<string name="radio_info_http_client_test" msgid="1329583721088428238">"HTTP-asiakastesti:"</string>
<string name="ping_test_label" msgid="448617502935719694">"Suorita ping-testi"</string>
<string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Puhelimen tiedot"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Operaattorin hallintatiedot"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Ota operaattorin hallinta käyttöön"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC-oikeuden tunnus:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Päivitä"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Päivitä"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth-signaali on heikko. Kokeile vaihtaa kaiutinpuhelimeen."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Puhelun laatua koskeva ilmoitus"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Käytöstä poistetut SIP-tilit"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index fa3e257..a2e9063 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Vous devez redémarrer votre appareil pour modifier ce paramètre."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Redémarrer"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Annuler"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Définir la carte eSIM amovible comme carte SIM par défaut"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Alimentation de radio cellulaire"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulation de l\'appareil hors service (version de débogage uniquement)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Afficher le carnet d\'adresses de la carte SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Afficher les numéros d\'appel fixes"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Afficher les numéros de service"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Informations sur le téléphone"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Données d\'approvisionnement du fournisseur de services"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Déclencher l\'approvisionnement du fournisseur de services"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Identifiant de droit WFC :"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Mettre à jour"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Actualiser"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Votre signal Bluetooth est faible. Essayez de passer au haut-parleur mains libres."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Notification de qualité d\'appel"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Comptes SIP obsolètes"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 084f5ad..55fc28e 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Vous devez redémarrer l\'appareil pour modifier ce paramètre."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Redémarrer"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Annuler"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Définir l\'eSIM amovible comme SIM par défaut"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Alimentation radio mobile"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simuler une panne (version de débogage uniquement)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Afficher le carnet d\'adresses de la carte SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Afficher les numéros autorisés"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Afficher les numéros de service"</string>
@@ -915,12 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Informations sur le téléphone"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Informations de gestion des comptes opérateur"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Déclencher la gestion des comptes opérateur"</string>
- <!-- no translation found for provisioning_info_wfc_entitlement_id (8845188780811890910) -->
- <skip />
- <!-- no translation found for update_provisioning_info_wfc_entitlement_id (7044171908781134221) -->
- <skip />
- <!-- no translation found for refresh_provisioning_info_wfc_entitlement_id (738894335351353407) -->
- <skip />
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Votre signal Bluetooth est faible. Essayez d\'utiliser le haut-parleur."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Notification concernant la qualité de l\'appel"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Comptes SIP obsolètes"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 4981ebc..ba68d12 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Debes reiniciar o dispositivo para cambiar esta opción"</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reiniciar"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancelar"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Establecer eSIM extraíble como predeterminada"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Alimentación da radio móbil"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simular Fóra de servizo (só compilación de depuración)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver axenda de enderezos da SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de marcación fixa"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcación de servizo"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Información do teléfono"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Información de aprovisionamento do operador"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aprovisionamento do operador do activador"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Identificador do dereito a usar chamadas por wifi:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Actualizar"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Actualizar"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"O teu sinal de Bluetooth é feble. Proba a cambiar ao altofalante."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Notificación sobre a calidade da chamada"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Contas SIP obsoletas"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 1ad1a28..1cc4dd1 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"આ સેટિંગમાં ફેરફાર કરવા માટે તમારા ડિવાઇસને ફરી શરૂ કરો."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"ફરી શરૂ કરો"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"રદ કરો"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"કાઢી નાખી શકાય એવા ઇ-સિમ કાર્ડને ડિફૉલ્ટ તરીકે સેટ કરો"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"મોબાઇલ રેડિયો પાવર"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"\'સેવા ઉપલબ્ધ નથી\' મોડ સિમ્યુલેટ કરો (માત્ર ડિબગ બિલ્ડ માટે)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"સિમમાં સરનામા પુસ્તિકા જુઓ"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ફિક્સ્ડ ડાયલિંગ નંબર જુઓ"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"સર્વિસ ડાયલિંગ નંબર જુઓ"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"ફોનની માહિતી"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"કૅરિઅરની જોગવાઈ વિશે માહિતી"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"કૅરિઅરની જોગવાઈ ટ્રિગર કરો"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC અધિકાર ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"અપડેટ કરો"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"રિફ્રેશ કરો"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"તમારા બ્લૂટૂથનું સિગ્નલ નબળું છે. સ્પીકરફોન પર સ્વિચ કરવાનો પ્રયાસ કરો."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"કૉલની ક્વૉલિટી માટે નોટિફિકેશન"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"ટાળવામાં આવેલા SIP એકાઉન્ટ"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 723d94d..d9de3dd 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"इस सेटिंग को बदलने के लिए आपको अपना डिवाइस रीस्टार्ट करना होगा."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"रीस्टार्ट करें"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"रद्द करें"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"हटाए जा सकने वाले ई-सिम को डिफ़ॉल्ट के तौर पर सेट करें"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"मोबाइल रेडियो पावर"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"सिम्युलेट किया गया डिवाइस काम नहीं कर रहा है (सिर्फ़ डीबग के लिए बिल्ड)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"सिम में संपर्कों के पते की सूची देखें"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"फ़िक्स्ड डायलिंग नंबर देखें"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"सेवा के डायलिंग नंबर देखें"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"फ़ोन की जानकारी"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी के प्रावधान की जानकारी"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी के प्रावधान चालू करें"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC सदस्यता आईडी:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"अपडेट करें"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"रीफ़्रेश करें"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"आपका ब्लूटूथ सिग्नल कमज़ोर है. स्पीकरफ़ोन की सुविधा का इस्तेमाल करें."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"कॉल की क्वालिटी की सूचना"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"ऐसे SIP खाते जिनका समर्थन रोक दिया गया है"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 909957d..d5349a0 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Ponovo pokrenite uređaj da biste promijenili tu postavku."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Ponovno pokretanje"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Odustani"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Postavljanje uklonjivog eSIM-a kao zadanog"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Snaga mobilnog radija"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulacija stanja \"izvan upotrebe\" (samo međuverzija programa za otklanjanje pogrešaka)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži imenik SIM-a"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži brojeve za fiksno biranje"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži brojeve za servisno biranje"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacije o telefonu"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Informacije o uslugama mobilnog operatera"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Pokretanje usluga mobilnog operatera"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID prava na WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Ažuriranje"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Osvježavanje"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Signal Bluetootha je slab. Pokušajte se prebaciti na zvučnik."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Obavijest o kvaliteti poziva"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Obustavljeni SIP računi"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 47091eb..63ae0b9 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"A beállítás módosításához újra kell indítania az eszközt."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Újraindítás"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Mégse"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Cserélhető eSIM beállítása alapértelmezettként"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobil rádióadó teljesítménye"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Szolgáltatáskiesés szimulációja (csak hibaelhárító build)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM-kártya telefonkönyvének megtekintése"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Fix hívószámok megtekintése"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Szolgáltatásszámok megtekintése"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefon adatai"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Információ a szolgáltatói ellátásról"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Szolgáltatói ellátás aktiválása"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC-jogosultság azonosítója:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Módosítás"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Frissítés"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Gyenge a Bluetooth-jel. Próbáljon kihangosítóra váltani."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Értesítés a hívás minőségéről"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Elavult SIP-fiókok"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 0318c9d..4b9a9a9 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -18,7 +18,7 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="phoneAppLabel" product="tablet" msgid="1916019789885839910">"Բջջային տվյալներ"</string>
<string name="phoneAppLabel" product="default" msgid="130465039375347763">"Հեռախոսի ծառայություններ"</string>
- <string name="emergencyDialerIconLabel" msgid="8668005772339436680">"Արտակարգ իրավիճակների համարհավաքիչ"</string>
+ <string name="emergencyDialerIconLabel" msgid="8668005772339436680">"Արտակարգ իրավիճակների համարահավաքիչ"</string>
<string name="phoneIconLabel" msgid="3015941229249651419">"Հեռախոս"</string>
<string name="fdnListLabel" msgid="4119121875004244097">"FDN ցուցակ"</string>
<string name="unknown" msgid="8279698889921830815">"Անհայտ"</string>
@@ -284,7 +284,7 @@
<string name="roaming" msgid="1576180772877858949">"Ռոումինգ"</string>
<string name="roaming_enable" msgid="6853685214521494819">"Միանալ տվյալների փոխանցման ծառայություններին ռոումինգում"</string>
<string name="roaming_disable" msgid="8856224638624592681">"Միանալ տվյալների փոխանցման ծառայություններին ռոումինգում"</string>
- <string name="roaming_reenable_message" msgid="1951802463885727915">"Ռոումինգում բջջային ինտերնետն անջատված է: Հպեք՝ միացնելու համար:"</string>
+ <string name="roaming_reenable_message" msgid="1951802463885727915">"Ռոումինգում բջջային ինտերնետն անջատված է: Հպեք միացնելու համար:"</string>
<string name="roaming_enabled_message" msgid="9022249120750897">"Ռոումինգի համար կարող է գումար գանձվել: Հպեք՝ փոփոխելու համար:"</string>
<string name="roaming_notification_title" msgid="3590348480688047320">"Բջջային ինտերնետը կորավ"</string>
<string name="roaming_on_notification_title" msgid="7451473196411559173">"Ինտերնետ ռոումինգը միացված է"</string>
@@ -575,7 +575,7 @@
<string name="fire_type_description" msgid="6565200468934914930">"Հրշեջ ծառայություն"</string>
<string name="description_concat_format" msgid="2014471565101724088">"%1$s, %2$s"</string>
<string name="dialerKeyboardHintText" msgid="1115266533703764049">"Օգտագործեք ստեղնաշարը՝ համարհավաքման համար"</string>
- <string name="onscreenHoldText" msgid="4025348842151665191">"Պահել"</string>
+ <string name="onscreenHoldText" msgid="4025348842151665191">"Սպասման մեջ դնել"</string>
<string name="onscreenEndCallText" msgid="6138725377654842757">"Ավարտել"</string>
<string name="onscreenShowDialpadText" msgid="658465753816164079">"Թվաշար"</string>
<string name="onscreenMuteText" msgid="5470306116733843621">"Խլացնել"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Վերագործարկեք սարքը՝ այս կարգավորումը փոխելու համար:"</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Վերագործարկել"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Չեղարկել"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Սահմանել հեռացվելի eSIM քարտը որպես կանխադրված"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Բջջային ռադիոազդանշանի հզորությունը"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Սպասարկման գոտուց դուրս գտնվելու սիմուլյացիա (միայն վրիպազերծման կառուցում)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Դիտել SIM քարտի հասցեագիրքը"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Տեսնել ամրակցված հեռախոսահամարները"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Տեսնել ծառայությունների հեռախոսահամարները"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Հեռախոսի տեղեկություններ"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Օպերատորի նախապատրաստման տվյալներ"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Գործարկել օպերատորի նախապատրաստումը"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC թույլտվության ID՝"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Թարմացնել"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Թարմացնել"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Ձեր Bluetooth-ի ազդանշանը թույլ է։ Փորձեք միացնել բարձրախոսը։"</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Զանգի որակի մասին ծանուցում"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Հնացած SIP հաշիվներ"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index a5da578..d58999b 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -674,7 +674,7 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Aksesibilitas"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Panggilan Wi-Fi dari"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Panggilan Wi-Fi"</string>
- <string name="message_decode_error" msgid="1061856591500290887">"Terjadi kesalahan saat mendekode pesan."</string>
+ <string name="message_decode_error" msgid="1061856591500290887">"Terjadi error saat mendekode pesan."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Kartu SIM telah mengaktifkan layanan dan memperbarui kemampuan roaming ponsel."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Ada terlalu banyak panggilan aktif. Akhiri atau gabungkan panggilan yang ada sebelum melakukan panggilan baru."</string>
<string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"Tidak dapat terhubung, masukkan kartu SIM yang valid."</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Anda perlu memulai ulang perangkat untuk mengubah setelan."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Mulai ulang"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Batal"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Tetapkan eSIM yang Dapat Dilepas sebagai Default"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Daya Radio Seluler"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulasi Tidak dapat Digunakan (Khusus Build Debug)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Lihat Buku Alamat SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Lihat Panggilan Terbatas"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Lihat Nomor Panggilan Layanan"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Info telepon"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Info Provisioning Operator"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Memicu Provisioning Operator"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID Hak WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Perbarui"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Muat ulang"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Sinyal bluetooth Anda lemah. Coba beralih ke speaker ponsel."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Notifikasi Kualitas Panggilan"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Akun SIP yang tidak digunakan lagi"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 45726af..a475a9e 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Endurræsa þarf tækið til að breyta þessari stillingu."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Endurræsa"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Hætta við"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Stilla laust eSIM sem sjálfgefið"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Loftnetsstyrkur farsíma"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Líkja eftir „Utan þjónustusvæðis“ (aðeins villuleitarsmíði)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Skoða símaskrá SIM-korts"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Skoða læst númeraval"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Skoða þjónustunúmer"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Upplýsingar um síma"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Úthlutunarupplýsingar símafyrirtækis"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Kveikja á úthlutun símafyrirtækis"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Auðkenni WFC-réttinda:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Uppfæra"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Endurnýja"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth-tengingin er léleg. Prófaðu að nota hátalara í staðinn."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Tilkynning um símtalsgæði"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Úreldir SIP-reikningar"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 6a79566..2eaf7ee 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -17,7 +17,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="phoneAppLabel" product="tablet" msgid="1916019789885839910">"Dati cellulare"</string>
- <string name="phoneAppLabel" product="default" msgid="130465039375347763">"Phone Services"</string>
+ <string name="phoneAppLabel" product="default" msgid="130465039375347763">"Servizi telefonici"</string>
<string name="emergencyDialerIconLabel" msgid="8668005772339436680">"Chiamata di emergenza"</string>
<string name="phoneIconLabel" msgid="3015941229249651419">"Telefono"</string>
<string name="fdnListLabel" msgid="4119121875004244097">"Elenco numeri consentiti"</string>
@@ -572,7 +572,7 @@
<string name="pin_puk_system_user_only" msgid="1045147220686867922">"Solo il proprietario del dispositivo può inserire i codici PIN/PUK."</string>
<string name="police_type_description" msgid="2819533883972081757">"Polizia"</string>
<string name="ambulance_type_description" msgid="6798237503553180461">"Ambulanza"</string>
- <string name="fire_type_description" msgid="6565200468934914930">"Vigili del fuoco"</string>
+ <string name="fire_type_description" msgid="6565200468934914930">"Pompieri"</string>
<string name="description_concat_format" msgid="2014471565101724088">"%1$s, %2$s"</string>
<string name="dialerKeyboardHintText" msgid="1115266533703764049">"Usa tastiera"</string>
<string name="onscreenHoldText" msgid="4025348842151665191">"In attesa"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Riavvia il dispositivo per modificare questa impostazione."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Riavvia"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Annulla"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Imposta la eSIM rimovibile come predefinita"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Potenza del segnale radio mobile"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulazione non disponibile (solo build di debug)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Visualizza rubrica SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Visualizza numeri consentiti"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Visualizza numeri dell\'elenco dei numeri di servizio"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Info telefono"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Informazioni sul provisioning operatore"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Attiva provisioning operatore"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID diritto per le chiamate Wi-Fi:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Aggiorna"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Aggiorna"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Il segnale del Bluetooth è debole. Prova a passare al vivavoce."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Notifica sulla qualità della chiamata"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Account SIP deprecati"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 3626c66..154c8a0 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"עליך להפעיל מחדש את המכשיר כדי לשנות הגדרה זו."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"הפעלה מחדש"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"ביטול"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"הגדרת eSIM נשלף כברירת המחדל"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"הפעלה של רדיו סלולרי"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"סימולציה של המצב \'לא בשירות\' (גרסת build לניפוי באגים בלבד)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"הצגת פנקס כתובות של SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"הצגת מספרי חיוג קבועים"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"מספרי חיוג לשירות"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"פרטי טלפון"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"פרטי ניהול תצורה של ספק סלולרי"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"הפעלת ניהול תצורה של ספק סלולרי"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"מזהה הרשאת WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"עדכון"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"רענון"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"הקליטה של ה-Bluetooth חלשה. כדאי לעבור לדיבורית."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"התראה על איכות השיחה"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"חשבונות SIP שהוצאו משימוש"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index b55c175..98579aa 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"この設定を変更するには、デバイスの再起動が必要です。"</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"再起動"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"キャンセル"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"リムーバブル eSIM をデフォルトに設定"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"モバイル無線電力"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"圏外状態のシミュレート(デバッグビルドのみ)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM のアドレス帳を表示"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"発信番号制限を表示"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"サービス電話番号を表示"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"スマートフォン情報"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"携帯通信会社のプロビジョニング情報"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"携帯通信会社のプロビジョニングをトリガー"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC 利用資格 ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"アップデート"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"更新"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth の信号強度が十分ではありません。スピーカーフォンに切り替えてみてください。"</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"通話品質に関するお知らせ"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"サポートが終了した SIP アカウント"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 94302f9..3f4f5a1 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"ამ პარამეტრის შესაცვლელად საჭიროა მოწყობილობის გადატვირთვა."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"გადატვირთვა"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"გაუქმება"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"მოსახსნელი eSIM-ის ნაგულისხმევად დაყენება"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"მობილური რადიოკავშირის ელკვება"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"სიმულაცია სერვისის გარეშე (მხოლოდ გამართვის აგება)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM-ის მისამართების წიგნის ნახვა"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"დაშვებული ნომრების ნახვა"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"სერვისის დარეკილი ნომრების ნახვა"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"ტელეფონის ინფორმაცია"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"ოპერატორის უზრუნველყოფის ინფორმაცია"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ოპერატორის უზრუნველყოფის გააქტიურება"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC Entitlement ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"განახლება"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"განახლება"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"თქვენი Bluetooth სიგნალი სუსტია. სცადეთ სპიკერფონზე გადართვა."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"შეტყობინება ზარის ხარისხის შესახებ"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"მოძველებული SIP ანგარიშები"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index eecbd52..048b5a0 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -303,7 +303,7 @@
<string name="carrier_settings_euicc" msgid="1190237227261337749">"Оператор"</string>
<string name="keywords_carrier_settings_euicc" msgid="8540160967922063745">"оператор, esim, sim, euicc, операторларды ауыстыру, оператор қосу"</string>
<string name="carrier_settings_euicc_summary" msgid="2027941166597330117">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
- <string name="mobile_data_settings_title" msgid="7228249980933944101">"Мобильдік деректер"</string>
+ <string name="mobile_data_settings_title" msgid="7228249980933944101">"Мобильдік интернет"</string>
<string name="mobile_data_settings_summary" msgid="5012570152029118471">"Деректерге мобильдік желі арқылы кіру"</string>
<string name="data_usage_disable_mobile" msgid="5669109209055988308">"Мобильдік байланысты өшіру қажет пе?"</string>
<string name="sim_selection_required_pref" msgid="6985901872978341314">"Таңдау қажет"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Бұл параметрді өзгерту үшін құрылғыны қайта қосу қажет."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Қайта қосу"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Өшіру"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Алынбалы eSIM әдепкі етіп орнату"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Радиосигнал күші"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"\"Істен шыққан\" қызметін симуляциялау (түзету құрамасы ғана)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM мекенжай кітапшасын көру"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Рұқсат нөмірлерді көру"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Қызметтік теру нөмірлерін көру"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Телефон ақпараты"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Операторды инициализациялау туралы ақпарат"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Операторды инциализациялауды іске қосу"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC негіздеме идентификаторы:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Жаңарту"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Жаңарту"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth сигналы нашар. Спикерфонға ауысып көріңіз."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Қоңырау сапасы туралы хабарландыру"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Қолданыстан шыққан SIP аккаунттары"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 3f20814..40ebda9 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"អ្នកត្រូវចាប់ផ្ដើមឧបករណ៍របស់អ្នកឡើងវិញ ដើម្បីផ្លាស់ប្ដូរការកំណត់នេះ។"</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"ចាប់ផ្ដើមឡើងវិញ"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"បោះបង់"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"កំណត់ eSIM ដែលអាចដកបានជាលំនាំដើម"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"ថាមពលវិទ្យុទូរសព្ទចល័ត"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"ត្រាប់តាមពេលគ្មានសេវា (កំណែបង្កើតសម្រាប់ជួសជុលតែប៉ុណ្ណោះ)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"មើលសៀវភៅអាសយដ្ឋានក្នុងស៊ីមកាត"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"មើលលេខហៅថេរ"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"មើលលេខហៅសេវាកម្ម"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"ព័ត៌មានទូរសព្ទ"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"ព័ត៌មានអំពីការផ្តល់ទិន្នន័យរបស់ក្រុមហ៊ុនសេវាទូរសព្ទ"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"នាំឱ្យមានការផ្តល់ទិន្នន័យពីក្រុមហ៊ុនសេវាទូរសព្ទ"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"លេខសម្គាល់ការផ្ដល់សិទ្ធិ WFC៖"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"ដំឡើងកំណែ"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ផ្ទុកឡើងវិញ"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"រលកសញ្ញាប៊្លូធូសរបស់អ្នកមានកម្រិតខ្សោយ។ សូមសាកល្បងប្ដូរទៅឧបករណ៍បំពងសំឡេងទូរសព្ទ។"</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"ការជូនដំណឹងអំពីគុណភាពហៅទូរសព្ទ"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"គណនី SIP ដែលបានបញ្ឈប់"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 166d1da..97ce9fc 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -584,7 +584,7 @@
<string name="onscreenSwapCallsText" msgid="2682542150803377991">"ಸ್ವ್ಯಾಪ್ ಮಾಡು"</string>
<string name="onscreenManageCallsText" msgid="1162047856081836469">"ಕರೆಗಳನ್ನು ನಿರ್ವಹಿಸಿ"</string>
<string name="onscreenManageConferenceText" msgid="4700574060601755137">"ಕಾನ್ಫರೆನ್ಸ್ ನಿರ್ವಹಿಸಿ"</string>
- <string name="onscreenAudioText" msgid="7224226735052019986">"ಆಡಿಯೊ"</string>
+ <string name="onscreenAudioText" msgid="7224226735052019986">"ಆಡಿಯೋ"</string>
<string name="onscreenVideoCallText" msgid="1743992456126258698">"ವೀಡಿಯೊ ಕರೆ"</string>
<string name="importSimEntry" msgid="3892354284082689894">"ಆಮದು"</string>
<string name="importAllSimEntries" msgid="2628391505643564007">"ಎಲ್ಲವನ್ನೂ ಆಮದು ಮಾಡು"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ನೀವು ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸುವ ಅಗತ್ಯವಿದೆ."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"ಮರುಪ್ರಾರಂಭಿಸಿ"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"ರದ್ದುಮಾಡಿ"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"ತೆಗೆದುಹಾಕಬಹುದಾದ eSIM ಅನ್ನು ಡೀಫಾಲ್ಟ್ ಆಗಿ ಸೆಟ್ ಮಾಡಿ"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"ಮೊಬೈಲ್ ರೇಡಿಯೋ ಪವರ್"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"ಸೇವೆಯಲ್ಲಿಲ್ಲದಿರುವುದನ್ನು ಸಿಮ್ಯುಲೇಟ್ ಮಾಡುವುದು (ಡೀಬಗ್ ಬಿಲ್ಡ್ ಮಾತ್ರ)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ಸಿಮ್ ವಿಳಾಸ ಪುಸ್ತಕವನ್ನು ವೀಕ್ಷಿಸಿ"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ಸ್ಥಿರ ಡಯಲಿಂಗ್ ಸಂಖ್ಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ಸೇವಾ ಡಯಲಿಂಗ್ ಸಂಖ್ಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"ಫೋನ್ ಮಾಹಿತಿ"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"ವಾಹಕ ಪೂರೈಕೆಯ ಮಾಹಿತಿ"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ಟ್ರಿಗರ್ ವಾಹಕ ಪೂರೈಕೆ"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC ಅರ್ಹತೆ ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"ಅಪ್ಡೇಟ್ ಮಾಡಿ"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ರಿಫ್ರೆಶ್"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"ನಿಮ್ಮ ಬ್ಲೂಟೂತ್ ಸಿಗ್ನಲ್ ದುರ್ಬಲವಾಗಿದೆ. ಸ್ಪೀಕರ್ಫೋನ್ಗೆ ಬದಲಾಯಿಸಲು ಪ್ರಯತ್ನಿಸಿ."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"ಕರೆ ಗುಣಮಟ್ಟದ ಅಧಿಸೂಚನೆ"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"ತಡೆಹಿಡಿಯಲಾಗಿರುವ SIP ಖಾತೆಗಳು"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index ed07f60..7e6fe78 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"설정을 변경하려면 기기를 다시 시작해야 합니다."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"다시 시작"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"취소"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"삭제 가능한 eSIM을 기본으로 설정"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"모바일 무선 전력"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"\'서비스 지역 벗어남\' 시뮬레이션(디버그 빌드만 해당)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM 주소록 보기"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"발신 허용 번호 보기"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"SDN(Service Dialing Numbers) 보기"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"휴대전화 정보"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"이동통신사 프로비저닝 정보"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"이동통신사 프로비저닝 실행"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC 사용 권한 ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"업데이트"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"새로고침"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"블루투스 신호 강도가 약합니다. 스피커폰으로 전환해 보세요."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"통화 품질 알림"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"지원 중단된 SIP 계정"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index d864bf9..d966d45 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Бул жөндөөнү өзгөртүү үчүн түзмөгүңүздү өчүрүп күйгүзүңүз."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Өчүрүп-күйгүзүү"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Жокко чыгаруу"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Чыгарылуучу eSIM-картаны демейки катары коюу"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Мобилдик радионун кубаты"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Тейлөө аймагынын сыртында режимин иштетүү (Мүчүлүштүктөрдү оңдоо үчүн гана)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM картадагы дарек китепчесин көрүү"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Туруктуу терүү номерлерин көрүү"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Кызматтык терүү номерлерин көрүү"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Телефондун маалыматы"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Байланыш оператору жөнүндө маалымат"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Байланыш операторун өзгөртүү"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC Entitlement идентификатору:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Жаңыртуу"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Жаңыртуу"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth сигналыңыз начар. Спикерфонго которулуп көрүңүз."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Чалуунун сапаты тууралуу билдирме"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Колдонуудан чыккан SIP аккаунттары"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 79d8899..bd7e6ab 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"ທ່ານຕ້ອງຣີສະຕາດອຸປະກອນຂອງທ່ານເພື່ອປ່ຽນການຕັ້ງຄ່ານີ້."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"ປິດເປີດຄືນໃໝ່"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"ຍົກເລີກ"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"ຕັ້ງຄ່າ eSIM ແບບຖອດໄດ້ໃຫ້ເປັນຄ່າເລີ່ມຕົ້ນ"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"ພະລັງງານວິທະຍຸມືຖື"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"ຈໍາລອງເຫດການບໍ່ພ້ອມໃຫ້ບໍລິການ (ສໍາລັບ Build ດີບັກເທົ່ານັ້ນ)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ເບິ່ງສະໝຸດທີ່ຢູ່ໃນຊິມ"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ເບິ່ງໝາຍເລກໂທອອກທີ່ກຳນົດ"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ເບິ່ງໝາຍເລກບໍລິການໂທອອກ"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"ຂໍ້ມູນໂທລະສັບ"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"ຂໍ້ມູນການເປີດນຳໃຊ້ເຄືອຂ່າຍ"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ກະຕຸ້ນການຈັດຫາຜູ້ໃຫ້ບໍລິການ"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ລະຫັດ ID ສິດ ຂອງ WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"ອັບເດດ"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ໂຫຼດຂໍ້ມູນຄືນໃໝ່"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"ສັນຍານ Bluetooth ຂອງທ່ານອ່ອນ. ລອງສະຫຼັບລຳໂພງໂທລະສັບ."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"ການແຈ້ງເຕືອນຄຸນນະພາບການໂທ"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"ບັນຊີ SIP ທີ່ເຊົາສະໜັບສະໜູນ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index cd529a5..4784b8a 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Turite paleisti įrenginį iš naujo, kad galėtumėte pakeisti šį nustatymą."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Paleisti iš naujo"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Atšaukti"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Nustatyti pašalinimą „eSIM“ kaip numatytąją"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobiliojo ryšio radijo signalas"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Modeliavimas neteikiamas (tik derinimo versija)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Žiūrėti SIM kortelės adresų knygą"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Žiūrėti fiksuotojo rinkimo numerius"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Žiūrėti paslaugos renkamus numerius"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefono informacija"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Operatoriaus aprūpinimo informacija"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktyviklio operatoriaus aprūpinimas"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"„Wi-Fi“ skambinimo teisės suteikimo ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Atnaujinti"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Atnaujinti"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Silpnas „Bluetooth“ signalas. Pabandykite perjungti garsiakalbį."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Pranešimas apie skambučio kokybę"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Nebenaudojamos SIP paskyros"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index cd59d1a..a61f412 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Lai mainītu šo iestatījumu, jums jārestartē ierīce."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Restartēt"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Atcelt"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Iestatīt noņemamu eSIM kā noklusējumu"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobilā tālruņa radio signāla stiprums"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulācijas ierīce nedarbojas (tikai būvējuma atkļūdošana)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Skatīt SIM adrešu grāmatu"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Skatīt ierobežotā zvanu saraksta numurus"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Pakalpojuma iezvanes numuru skatīšana"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Tālruņa informācija"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Informācija par mobilo sakaru operatora nodrošināšanu"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktivizēt operatora nodrošināšanu"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Wi-Fi zvanu pilnvaras ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Atjaunināt"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Atsvaidzināt"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth signāls ir vājš. Mēģiniet pārslēgties uz skaļruni."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Paziņojums par zvana kvalitāti"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"SIP konti, kuru darbība ir pārtraukta"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 7cfea83..16e5f8d 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Треба да го рестартирате уредот за да ја промените поставкава."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Рестартирај"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Откажи"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Поставување eSIM што може да се отстрани како стандардна"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Радио-напојување на мобилен"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Симулирање „Надвор од употреба“ (само за верзиите за отстранување грешки)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Прикажи именик на SIM-картичката"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Прикажи броеви со ограничено бирање"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Прикажи броеви за бирање служби"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Информации за телефонот"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Информации за обезбедување оператор"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Активирајте обезбедување оператор"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID на дозвола за WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Ажурирај"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Освежи"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Вашиот сигнал на Bluetooth е слаб. Обидете се со префрлање на интерфон."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Известување за квалитет на повик"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Неподдржани сметки на SIP"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 4533385..a7fa922 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"ഈ ക്രമീകരണം മാറ്റാൻ നിങ്ങളുടെ ഉപകരണം റീസ്റ്റാർട്ട് ചെയ്യേണ്ടതുണ്ട്."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"റീസ്റ്റാർട്ട് ചെയ്യുക"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"റദ്ദാക്കുക"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"നീക്കം ചെയ്യാവുന്ന ഇ-സിം ഡിഫോൾട്ടായി സജ്ജീകരിക്കുക"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"മൊബൈൽ റേഡിയോ പവർ"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"സേവനം ലഭ്യമല്ലെന്ന് അനുകരിക്കുക (ഡീബഗ് ബിൽഡ് മാത്രം)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"സിം വിലാസ പുസ്തകം കാണുക"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"സ്ഥിര ഡയലിംഗ് നമ്പറുകൾ കാണുക"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"സർവീസ് ഡയലിംഗ് നമ്പറുകൾ കാണുക"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"ഫോൺ വിവരം"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"കാരിയർ പ്രൊവിഷനിംഗ് വിവരം"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"കാരിയർ പ്രൊവിഷനിംഗ് തുടങ്ങുക"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC എൻടെെറ്റിൽമെന്റ് ഐഡി:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"അപ്ഡേറ്റ് ചെയ്യുക"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"റീഫ്രഷ് ചെയ്യുക"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"നിങ്ങളുടെ Bluetooth സിഗ്നൽ ദുർബലമാണ്. സ്പീക്കർഫോണിലേക്ക് മാറ്റി നോക്കൂ."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"കോൾ നിലവാര അറിയിപ്പ്"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"അവസാനിപ്പിച്ച SIP അക്കൗണ്ടുകൾ"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index b8dc6df..b04b00d 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -534,7 +534,7 @@
<string name="notification_voicemail_no_vm_number" msgid="3423686009815186750">"Дуут шуудангийн дугаар тодорхойгүй"</string>
<string name="notification_network_selection_title" msgid="255595526707809121">"Үйлчилгээ байхгүй"</string>
<string name="notification_network_selection_text" msgid="553288408722427659">"Сонгосон <xliff:g id="OPERATOR_NAME">%s</xliff:g> сүлжээг ашиглах боломжгүй"</string>
- <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Дуудлага хийхийн тулд мобайл сүлжээг асаах, нислэгийн горим буюу батерей хэмнэх горимыг идэвхгүй болгоно уу."</string>
+ <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Дуудлага хийхийн тулд мобайл сүлжээг асаах, нислэгийн горим буюу батарей хэмнэх горимыг идэвхгүй болгоно уу."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Дуудлага хийхийн тулд онгоцны горимыг унтраа."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Дуудлага хийхийн тулд онгоцны горимыг унтраа эсвэл утасгүй интернетэд холбогдоно уу."</string>
<string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Утас хэт халуун байна"</b>\n\n"Энэ дуудлагыг гүйцээх боломжгүй. Та утсаа хөрсөн үед дахин оролдоно уу.\n\nТа яаралтай дуудлага хийх боломжтой хэвээр байна."</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Та энэ тохиргоог өөрчлөхийн тулд төхөөрөмжөө дахин эхлүүлэх шаардлагатай."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Дахин эхлүүлэх"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Цуцлах"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Салгах боломжтой eSIM-г өгөгдмөлөөр тохируулах"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Мобайл радио цахилгаан"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Үйлчилгээний хүрээнээс гарсан нөхцөл байдлыг загварчлах (зөвхөн дебагийн хийц)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM хаягийн лавлахыг харах"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Залгахаар тохируулсан дугаарыг харах"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Үйлчилгээний залгах дугаарыг харах"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Утасны мэдээлэл"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Оператор компанийн хангалтын мэдээлэл"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Оператор компанийн хангалтыг эхлүүлэх"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC Entitlement ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Шинэчлэх"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Сэргээх"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Таны Bluetooth-н дохио сул байна. Чанга яригчтай утас руу сэлгэж үзнэ үү."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Дуудлагын чанарын мэдэгдэл"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"SIP-н зогсоосон бүртгэлүүд"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 793bd06..a1c4bf0 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -48,7 +48,7 @@
<string name="no_vm_number_msg" msgid="5165161462411372504">"सिम कार्डवर कोणताही व्हॉइसमेल नंबर स्टोअर केला नाही."</string>
<string name="add_vm_number_str" msgid="7368168964435881637">"नंबर जोडा"</string>
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"केवळ प्राथमिक वापरकर्ता व्हॉइसमेल सेटिंग्ज बदलू शकतो."</string>
- <string name="puk_unlocked" msgid="4627340655215746511">"तुमचे सिम कार्ड अवरोधित करणे रद्द केले गेले आहे. तुमचा फोन अनलॉक होत आहे…"</string>
+ <string name="puk_unlocked" msgid="4627340655215746511">"तुमचे सिम कार्ड ब्लॉक करणे रद्द केले गेले आहे. तुमचा फोन अनलॉक होत आहे…"</string>
<string name="label_ndp" msgid="7617392683877410341">"सिम नेटवर्क अनलॉक पिन"</string>
<string name="label_phoneid" msgid="8775611434123577808">"ऑपरेटरसाठी सिम लॉक केले आहे"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"अनलॉक करा"</string>
@@ -499,7 +499,7 @@
<string name="disable_pin_ok" msgid="888505244389647754">"पिन साफ केला"</string>
<string name="pin_failed" msgid="4527347792881939652">"पिन चुकीचा आहे"</string>
<string name="pin_changed" msgid="7291153750090452808">"पिन अपडेट केला"</string>
- <string name="puk_requested" msgid="2061337960609806851">"पासवर्ड चुकीचा आहे. पिन आता अवरोधित केला. PUK ची विनंती केली."</string>
+ <string name="puk_requested" msgid="2061337960609806851">"पासवर्ड चुकीचा आहे. पिन आता ब्लॉक केला. PUK ची विनंती केली."</string>
<string name="enter_pin2_text" msgid="7266379426804295979">"PIN2"</string>
<string name="oldPin2Label" msgid="4648543187859997203">"जुना PIN2"</string>
<string name="newPin2Label" msgid="1840905981784453939">"नवीन PIN2"</string>
@@ -511,12 +511,12 @@
<string name="invalidPuk2" msgid="713729511903849544">"8 अंक असलेला एक PUK2 प्रविष्ट करा."</string>
<string name="pin2_changed" msgid="5710551850481287821">"पिन2 अपडेट केला"</string>
<string name="label_puk2_code" msgid="2852217004288085562">"PUK2 कोड प्रविष्ट करा"</string>
- <string name="fdn_enable_puk2_requested" msgid="5793652792131588041">"पासवर्ड चुकीचा आहे. पिन2 आता अवरोधित केला. पुन्हा प्रयत्न करण्यासाठी, पिन 2 बदला."</string>
+ <string name="fdn_enable_puk2_requested" msgid="5793652792131588041">"पासवर्ड चुकीचा आहे. पिन2 आता ब्लॉक केला. पुन्हा प्रयत्न करण्यासाठी, पिन 2 बदला."</string>
<string name="puk2_requested" msgid="6992374450720307514">"पासवर्ड चुकीचा आहे. सिम आता लॉक केले आहे. PUK2 प्रविष्ट करा."</string>
- <string name="puk2_blocked" msgid="3131139031779319911">"PUK2 कायमचे अवरोधित केले आहे."</string>
+ <string name="puk2_blocked" msgid="3131139031779319911">"PUK2 कायमचे ब्लॉक केले आहे."</string>
<string name="pin2_attempts" msgid="5625178102026453023">\n"आपल्याकडे <xliff:g id="NUMBER">%d</xliff:g> शिल्लक प्रयत्न आहेत."</string>
<string name="puk2_locked" msgid="6497760825455461057">"PUK2 द्वारे लॉक केले आहे. ते अनलॉक करण्यासाठी सेवा पुरवठादाराशी संपर्क साधा."</string>
- <string name="pin2_unblocked" msgid="4481107908727789303">"पिन2 अवरोधित केला नाही"</string>
+ <string name="pin2_unblocked" msgid="4481107908727789303">"पिन2 ब्लॉक केला नाही"</string>
<string name="pin2_error_exception" msgid="8116103864600823641">"नेटवर्क किंवा सिम कार्ड एरर"</string>
<string name="doneButton" msgid="7371209609238460207">"पूर्ण झाले"</string>
<string name="voicemail_settings_number_label" msgid="1265118640154688162">"व्हॉइसमेल नंबर"</string>
@@ -545,7 +545,7 @@
<string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"कॉल करण्यासाठी, एक वैध नंबर एंटर करा."</string>
<string name="incall_error_call_failed" msgid="393508653582682539">"कॉल अयशस्वी झाला."</string>
<string name="incall_error_cannot_add_call" msgid="5425764862628655443">"या वेळी कॉल जोडू शकत नाही. तुम्ही मेसेज पाठवून संपर्क करण्याचा प्रयत्न करू शकता."</string>
- <string name="incall_error_supp_service_unknown" msgid="8751177117194592623">"सेवा समर्थित नाही"</string>
+ <string name="incall_error_supp_service_unknown" msgid="8751177117194592623">"सेवेला सपोर्ट नाही"</string>
<string name="incall_error_supp_service_switch" msgid="5272822448189448479">"कॉल स्विच करू शकत नाही."</string>
<string name="incall_error_supp_service_resume" msgid="1276861499306817035">"कॉल पुन्हा सुरू करू शकत नाही."</string>
<string name="incall_error_supp_service_separate" msgid="8932660028965274353">"कॉल विभक्त करू शकत नाही."</string>
@@ -655,7 +655,7 @@
<string name="contactPhoto" msgid="7885089213135154834">"संपर्क फोटो"</string>
<string name="goPrivate" msgid="4645108311382209551">"खाजगी जा"</string>
<string name="selectContact" msgid="1527612842599767382">"संपर्क निवडा"</string>
- <string name="not_voice_capable" msgid="2819996734252084253">"व्हॉइस कॉलिंंग समर्थित नाही"</string>
+ <string name="not_voice_capable" msgid="2819996734252084253">"व्हॉइस कॉलिंंग याला सपोर्ट नाही"</string>
<string name="description_dial_button" msgid="8614631902795087259">"डायल करा"</string>
<string name="description_dialpad_button" msgid="7395114120463883623">"डायलपॅड दाखवा"</string>
<string name="pane_title_emergency_dialpad" msgid="3627372514638694401">"आणीबाणी डायलपॅड"</string>
@@ -801,8 +801,8 @@
<string name="supp_service_notification_call_waiting" msgid="4577403881609445324">"कॉल प्रतीक्षेत आहे."</string>
<string name="supp_service_clir_suppression_rejected" msgid="6105737020194776121">"क्रमांक ब्लॉक करणे रद्द केले."</string>
<string name="supp_service_closed_user_group_call" msgid="2811636666505250689">"बंद वापरकर्ता गट कॉल."</string>
- <string name="supp_service_incoming_calls_barred" msgid="2034627421274447674">"इनकमिंग कॉल अवरोधित केले."</string>
- <string name="supp_service_outgoing_calls_barred" msgid="5205725332394087112">"जाणारे कॉल अवरोधित केले."</string>
+ <string name="supp_service_incoming_calls_barred" msgid="2034627421274447674">"इनकमिंग कॉल ब्लॉक केले."</string>
+ <string name="supp_service_outgoing_calls_barred" msgid="5205725332394087112">"आउटगोइंग कॉल ब्लॉक केले."</string>
<string name="supp_service_call_forwarding_active" msgid="7910162960395132464">"कॉल फॉरवर्ड होत आहे."</string>
<string name="supp_service_additional_call_forwarded" msgid="8772753260008398632">"अतिरिक्त कॉल फॉरवर्ड केला."</string>
<string name="supp_service_additional_ect_connected" msgid="8525934162945220237">"भडक कॉल ट्रान्सफर करणे पूर्ण झाले."</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"ही सेटिंग बदलण्यासाठी तुम्ही तुमचे डिव्हाइस रीस्टार्ट करणे आवश्यक आहे."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"रीस्टार्ट करा"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"रद्द करा"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"काढून टाकण्यायोग्य eSIM डीफॉल्ट म्हणून सेट करा"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"मोबाइल रेडिओ पॉवर"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"सेवा बंद आहे सिम्युलेट करा (फक्त डीबगचा बिल्ड)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"सिम ॲड्रेस बुक पहा"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"निश्चित डायलिंग नंबर पहा"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"सर्व्हिस डायलिंग नंबर पहा"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"फोनची माहिती"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"वाहक सुविधा माहिती"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"वाहक सुविधा ट्रिगर करा"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC अधिकार आयडी:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"अपडेट करा"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"रिफ्रेश करा"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"तुमचा ब्लूटूथ सिग्नल कमकुवत आहे. स्पीकरफोनवर स्विच करून पहा."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"कॉल गुणवत्ता सूचना"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"कालबाह्य झालेली SIP खाती"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 8dda074..8bacab4 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Anda perlu memulakan semula peranti untuk menukar tetapan ini."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Mulakan semula"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Batal"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Tetapkan eSIM Boleh Tanggal sebagai Lalai"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Kuasa Radio Mudah Alih"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulasi Rosak (Binaan Penyahpepijatan sahaja)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Lihat Buku Alamat SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Lihat Nombor Dailan Tetap"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Lihat Nombor Dailan Perkhidmatan"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Maklumat telefon"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Maklumat Peruntukan Pembawa"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Cetus Peruntukan Pembawa"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID Kelayakan WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Kemas kini"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Muat semula"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Isyarat bluetooth anda lemah. Cuba beralih kepada fon pembesar suara."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Pemberitahuan Kualiti Panggilan"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Akaun SIP ditamatkan"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index d910d15..9dbce74 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -631,7 +631,7 @@
<string name="ota_spc_failure" msgid="904092035241370080">"အလွန်အကျွံ SPC မအောင်မြင်မှုများ"</string>
<string name="ota_call_end" msgid="8657746378290737034">"နောက်သို့"</string>
<string name="ota_try_again" msgid="6914781945599998550">"ပြန်ကြိုးစားပါ"</string>
- <string name="ota_next" msgid="2041016619313475914">"ရှေ့ဆက်သွားရန်"</string>
+ <string name="ota_next" msgid="2041016619313475914">"ရှေ့သို့"</string>
<string name="ecm_exit_dialog" msgid="4200691880721429078">"EcmExitDialog"</string>
<string name="phone_entered_ecm_text" msgid="8431238297843035842">"အရေးပေါ်ပြန်လည်ခေါ်ဆိုမှုအား ရိုက်သွင်းပြီး"</string>
<string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"အရေးပေါ်ပြန်လည်ခေါ်ဆိုမှု"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"ဤဆက်တင်ကိုပြောင်းရန် သင့်စက်ကို ပြန်စတင်ရပါမည်။"</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"ပြန်စရန်"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"မလုပ်တော့ပါ"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"ဖယ်ရှားနိုင်သော eSIM ကို မူရင်းအဖြစ် သတ်မှတ်ရန်"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"မိုဘိုင်း ရေဒီယိုစွမ်းအား"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"အသွင်တူပြုလုပ်သောစက် အလုပ်မလုပ်ပါ (အမှားရှာပြင်ခြင်းသာလျှင်)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM ထဲရှိ လိပ်စာ စာအုပ်ကိုကြည့်ပါ"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ခေါ်ဆိုရန် ကန့်သတ် နံပါတ်ကို ကြည့်မည်"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ခေါ်ဆိုသည့်ဝန်ဆောင်မှုနံပါတ်အားကြည့်မည်"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"ဖုန်းအချက်အလက်"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"ဝန်ဆောင်မှုပေးသူက ပေးထားသည့် အချက်အလက်များ"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"အစပျိုးပေးသော ဖုန်းကုမ္ပဏီ ပံ့ပိုးမှု"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC ခံစားခွင့် ID-"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"အပ်ဒိတ်လုပ်ရန်"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ပြန်လည်စတင်ရန်"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"သင်၏ ဘလူးတုသ်လိုင်းဆွဲအား မကောင်းပါ။ စပီကာဖုန်းသို့ ပြောင်းကြည့်ပါ။"</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"ခေါ်ဆိုမှုအရည်အသွေး အကြောင်းကြားချက်"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"ရပ်ဆိုင်းထားသော SIP အကောင့်များ"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 256ce0e..a099240 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -75,7 +75,7 @@
<string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"Konfigurer kontoinnstillingene"</string>
<string name="phone_accounts_all_calling_accounts" msgid="1609600743500618823">"Alle ringekontoer"</string>
<string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"Velg hvilke kontoer som kan ringe"</string>
- <string name="wifi_calling" msgid="3650509202851355742">"Wi-Fi-anrop"</string>
+ <string name="wifi_calling" msgid="3650509202851355742">"Wifi-anrop"</string>
<string name="connection_service_default_label" msgid="7332739049855715584">"Innebygd tilkoblingstjeneste"</string>
<string name="voicemail" msgid="7697769412804195032">"Talepostkasse"</string>
<string name="voicemail_settings_with_label" msgid="4228431668214894138">"Talepostkasse (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -309,7 +309,7 @@
<string name="sim_selection_required_pref" msgid="6985901872978341314">"Du må velge en SIM-innstilling"</string>
<string name="sim_change_data_title" msgid="9142726786345906606">"Endre SIM-kort for databruk?"</string>
<string name="sim_change_data_message" msgid="3567358694255933280">"Vil du bruke <xliff:g id="NEW_SIM">%1$s</xliff:g> i stedet for <xliff:g id="OLD_SIM">%2$s</xliff:g> for mobildata?"</string>
- <string name="wifi_calling_settings_title" msgid="5800018845662016507">"Wi-Fi-anrop"</string>
+ <string name="wifi_calling_settings_title" msgid="5800018845662016507">"Wifi-anrop"</string>
<string name="video_calling_settings_title" msgid="342829454913266078">"Videoanrop via mobiloperatør"</string>
<string name="gsm_umts_options" msgid="4968446771519376808">"GSM/UMTS-innstillinger"</string>
<string name="cdma_options" msgid="3669592472226145665">"CDMA-innstillinger"</string>
@@ -537,7 +537,7 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Slå på mobilnettverket, slå av flymodus eller slå av batterisparingsmodus for å ringe ut."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Slå av flymodus for å ringe."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Slå av flymodus eller koble til et trådløst nettverk for å ringe."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefonen er for varm"</b>\n\n"Kan ikke fullføre dette anropet. Prøv igjen når telefonen har kjølt seg ned.\n\nDu kan fortsatt foreta nødanrop."</string>
+ <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefonen er for varm"</b>\n\n"Kan ikke fullføre dette anropet. Prøv på nytt når telefonen har kjølt seg ned.\n\nDu kan fortsatt foreta nødanrop."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Avslutt modusen for nødanrop for å gjøre et vanlig anrop."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Ikke registrert på nettverket."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilnettverket er ikke tilgjengelig."</string>
@@ -555,7 +555,7 @@
<string name="incall_error_supp_service_hangup" msgid="836524952243836735">"Kan ikke frigjøre samtale(r)."</string>
<string name="incall_error_supp_service_hold" msgid="8535056414643540997">"Kan ikke sette samtaler på vent."</string>
<string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"Koble til et trådløst nettverk for å ringe."</string>
- <string name="incall_error_promote_wfc" msgid="9164896813931363415">"Slå på telefonanrop via Wi-Fi for å ringe."</string>
+ <string name="incall_error_promote_wfc" msgid="9164896813931363415">"Slå på telefonanrop via Wifi for å ringe."</string>
<string name="emergency_information_hint" msgid="9208897544917793012">"Nødinformasjon"</string>
<string name="emergency_information_owner_hint" msgid="6256909888049185316">"Eier"</string>
<string name="emergency_information_confirm_hint" msgid="5109017615894918914">"Trykk på nytt for å se informasjon"</string>
@@ -630,7 +630,7 @@
<string name="ota_unsuccessful" msgid="8531037653803955754">"Telefonen ble ikke aktivert.\nPrøv å finne et område med bedre dekning (ved et vindu eller utendørs).\n\nPrøv på nytt, eller ring kundetjenesten for å få flere alternativer."</string>
<string name="ota_spc_failure" msgid="904092035241370080">"Omfattende SPC-feil"</string>
<string name="ota_call_end" msgid="8657746378290737034">"Tilbake"</string>
- <string name="ota_try_again" msgid="6914781945599998550">"Prøv igjen"</string>
+ <string name="ota_try_again" msgid="6914781945599998550">"Prøv på nytt"</string>
<string name="ota_next" msgid="2041016619313475914">"Neste"</string>
<string name="ecm_exit_dialog" msgid="4200691880721429078">"EcmExitDialog"</string>
<string name="phone_entered_ecm_text" msgid="8431238297843035842">"Startet modusen nødsamtale-tilbakeringing"</string>
@@ -672,17 +672,17 @@
<string name="sim_description_emergency_calls" msgid="5146872803938897296">"Kun nødanrop"</string>
<string name="sim_description_default" msgid="7474671114363724971">"SIM-kort, spor: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Tilgjengelighet"</string>
- <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi-anrop fra"</string>
- <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Oppringing via Wi-Fi"</string>
+ <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wifi-anrop fra"</string>
+ <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Oppringing via Wifi"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Det oppsto en feil under dekoding av meldingen."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Et SIM-kort har aktivert tjenesten din og oppdatert roamingfunksjonene for telefonen din."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Du har for mange aktive samtaler. Avslutt eller slå sammen eksisterende samtaler før du starter en ny samtale."</string>
<string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"Kunne ikke koble til. Sett inn et gyldig SIM-kort."</string>
- <string name="callFailed_wifi_lost" msgid="1788036730589163141">"Samtalen ble avsluttet fordi Wi-Fi-forbindelsen ble brutt."</string>
+ <string name="callFailed_wifi_lost" msgid="1788036730589163141">"Samtalen ble avsluttet fordi Wifi-forbindelsen ble brutt."</string>
<string name="dialFailed_low_battery" msgid="6857904237423407056">"Kan ikke utføre videoanropet på grunn av lite batteristrøm."</string>
<string name="callFailed_low_battery" msgid="4056828320214416182">"Videosamtalen ble avsluttet på grunn av lite batteristrøm."</string>
- <string name="callFailed_emergency_call_over_wfc_not_available" msgid="5944309590693432042">"Nødanrop via Wi-Fi-anrop er ikke tilgjengelig på dette stedet."</string>
- <string name="callFailed_wfc_service_not_available_in_this_location" msgid="3624536608369524988">"Wi-Fi-anrop er ikke tilgjengelige på dette stedet."</string>
+ <string name="callFailed_emergency_call_over_wfc_not_available" msgid="5944309590693432042">"Nødanrop via wifi-anrop er ikke tilgjengelig på dette stedet."</string>
+ <string name="callFailed_wfc_service_not_available_in_this_location" msgid="3624536608369524988">"Wifi-anrop er ikke tilgjengelige på dette stedet."</string>
<string name="change_pin_title" msgid="3564254326626797321">"Endre PIN-kode for talemeldinger"</string>
<string name="change_pin_continue_label" msgid="5177011752453506371">"Fortsett"</string>
<string name="change_pin_cancel_label" msgid="2301711566758827936">"Avbryt"</string>
@@ -827,7 +827,7 @@
<string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Slå av datatilkobling"</string>
<string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-tildelt"</string>
<string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Identitetshåndtering aktiv for videoanrop"</string>
- <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Identitetshåndtering aktiv for Wi-Fi-anrop"</string>
+ <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Identitetshåndtering aktiv for wifi-anrop"</string>
<string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence er klargjort"</string>
<string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS-data"</string>
<string name="dsds_switch_string" msgid="7564769822086764796">"Slå på DSDS"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Du må starte enheten din på nytt for å endre innstillingen."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Start på nytt"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Avbryt"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Angi flyttbart e-SIM-kort som standard"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Strømforsyning for mobilradio"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Ute av drift-simulering (bare for feilsøkingsversjoner)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Se adressebok for SIM-kort"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Vis forhåndsbestemte numre"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Vis tjenestenumre"</string>
@@ -845,7 +847,7 @@
<string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Ikke registrert"</string>
<string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Tilgjengelig"</string>
<string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Utilgjengelig"</string>
- <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-registrering: <xliff:g id="STATUS">%1$s</xliff:g>\nTale over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nTale over Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideoanrop: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-grensesnitt: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+ <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-registrering: <xliff:g id="STATUS">%1$s</xliff:g>\nTale over LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nTale over Wifi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideoanrop: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-grensesnitt: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
<string name="radioInfo_service_in" msgid="45753418231446400">"Fungerer som normalt"</string>
<string name="radioInfo_service_out" msgid="287972405416142312">"Ute av drift"</string>
<string name="radioInfo_service_emergency" msgid="4763879891415016848">"Bare nødanrop"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefoninformasjon"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Informasjon om operatørhåndtering"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Utløs operatørhåndtering"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC-rettighets-ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Oppdater"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Last inn på nytt"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth-signalet er svakt. Prøv å bytte til høyttaleren."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Varsel om anropskvalitet"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Avviklede SIP-kontoer"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index e08713b..d2ba6c3 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"यो सेटिङ परिवर्तन गर्न तपाईंले आफ्नो यन्त्र पुनः सुरु गर्नु पर्छ।"</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"पुनः सुरु गर्नुहोस्"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"रद्द गर्नुहोस्"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"हटाउन मिल्ने eSIM डिफल्ट रूपमा सेट गर्नुहोस्"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"मोबाइल रेडियोको पावर"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"\"सेवा उपलब्ध छैन\" सिमुलेट गर्नुहोस् (डिबग बिल्डमा मात्र सिमुलेट गर्न मिल्छ)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM को ठेगाना पुस्तिका हेर्नुहोस्"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"स्थिर डायल गर्ने नम्बरहरू हेर्नुहोस्"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"सेवामा डायल गर्ने नम्बरहरू हेर्नुहोस्"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"फोनसम्बन्धी जानकारी"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"सेवा प्रदायकको प्रावधानसम्बन्धी जानकारी"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"सेवा प्रदायकको प्रावधानलाई ट्रिगर गर्नुहोस्"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC Entitlement ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"अपडेट गर्नुहोस्"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"रिफ्रेस गर्नुहोस्"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"ब्लुटुथको सिग्नल कमजोर छ। स्पिकरफोन प्रयोग गरी हेर्नुहोस्।"</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"कलको गुणस्तरसम्बन्धी सूचना"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"चल्तीबाट हटाइएका SIP खाताहरू"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 459ecc4..e7fa4d0 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Start het apparaat opnieuw op om de instelling te wijzigen."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Opnieuw opstarten"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Annuleren"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Verwisselbare e-simkaart instellen als standaard"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobiel radiovermogen"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"\'Niet in gebruik\' simuleren (alleen in foutopsporingsbuild)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Adresboek op simkaart bekijken"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Vaste nummers bekijken"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Servicenummers bekijken"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefooninformatie"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Gegevens voor providerregistratie"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Providerregistratie activeren"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC-toegangsrecht-ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Updaten"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Vernieuwen"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Het bluetooth-signaal is zwak. Schakel over naar bellen op luidspreker."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Melding over gesprekskwaliteit"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Beëindigde SIP-accounts"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 57790ab..89aa190 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -30,7 +30,7 @@
<string name="mmiStarted" msgid="9212975136944568623">"MMI କୋଡ୍କୁ ଆରମ୍ଭ କରାଯାଇଛି"</string>
<string name="ussdRunning" msgid="1163586813106772717">"USSD କୋଡ୍ ରନ୍ କରୁଛି…"</string>
<string name="mmiCancelled" msgid="5339191899200678272">"MMI କୋଡ୍କୁ ବାତିଲ୍ କରାଯାଇଛି"</string>
- <string name="cancel" msgid="8984206397635155197">"ବାତିଲ୍ କରନ୍ତୁ"</string>
+ <string name="cancel" msgid="8984206397635155197">"ବାତିଲ କରନ୍ତୁ"</string>
<string name="enter_input" msgid="6193628663039958990">"USSD ମେସେଜ୍ ନିଶ୍ଚିତରୂପେ <xliff:g id="MIN_LEN">%1$d</xliff:g> ଓ <xliff:g id="MAX_LEN">%2$d</xliff:g>ଟି ଅକ୍ଷର ମଧ୍ୟରେ ରହିବ। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
<string name="manageConferenceLabel" msgid="8415044818156353233">"କନଫରେନ୍ସ କଲ୍କୁ ପରିଚାଳନା କରନ୍ତୁ"</string>
<string name="ok" msgid="7818974223666140165">"ଠିକ୍ ଅଛି"</string>
@@ -47,7 +47,7 @@
<string name="no_vm_number" msgid="6623853880546176930">"ହଜିଯାଇଥିବା ଭଏସମେଲ୍ ନମ୍ବର୍"</string>
<string name="no_vm_number_msg" msgid="5165161462411372504">"SIM କାର୍ଡରେ କୌଣସି ଭଏସମେଲ୍ ନମ୍ବର୍ ଷ୍ଟୋର୍ କରାଯାଇନାହିଁ।"</string>
<string name="add_vm_number_str" msgid="7368168964435881637">"ନମ୍ବର୍ ଯୋଡ଼ନ୍ତୁ"</string>
- <string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"ଭଏସମେଲ ସେଟିଂସକୁ ପ୍ରାଥମିକ ଉପଯୋଗକର୍ତ୍ତା କେବଳ ପରିବର୍ତ୍ତିତ କରିପାରିବେ।"</string>
+ <string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"ଭଏସମେଲ ସେଟିଂସକୁ କେବଳ ପ୍ରାଥମିକ ୟୁଜର ପରିବର୍ତ୍ତନ କରିପାରିବେ।"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"ଆପଣଙ୍କର SIM କାର୍ଡକୁ ଅବରୋଧ କରିଦିଆଯାଇଛି। ଆପଣଙ୍କର ଫୋନ୍ ଅନଲକ୍ ହେଉଛି…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM ନେଟ୍ୱର୍କକୁ ଅନଲକ୍ କରିବା ପାଇଁ PIN"</string>
<string name="label_phoneid" msgid="8775611434123577808">"ଅପରେଟର୍ ପାଇଁ SIM ଲକ୍ କରାଯାଇଛି"</string>
@@ -56,7 +56,7 @@
<string name="requesting_unlock" msgid="930512210309437741">"ନେଟ୍ୱର୍କକୁ ଅନଲକ୍ କରିବା ପାଇଁ ଅନୁରୋଧ କରାଯାଉଛି…"</string>
<string name="unlock_failed" msgid="7103543844840661366">"ନେଟ୍ୱର୍କ ଅନଲକ୍ କରିବା ପାଇଁ ଅନୁରୋଧ ବିଫଳ ହୋଇଛି।"</string>
<string name="unlock_success" msgid="32681089371067565">"ନେଟ୍ୱର୍କ ଅନଲକ୍ କରିବା ସଫଳ ହେଲା।"</string>
- <string name="mobile_network_settings_not_available" msgid="8678168497517090039">"ଏହି ୟୁଜରଙ୍କ ପାଇଁ ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ସେଟିଙ୍ଗ ଉପଲବ୍ଧ ନାହିଁ"</string>
+ <string name="mobile_network_settings_not_available" msgid="8678168497517090039">"ଏହି ୟୁଜରଙ୍କ ପାଇଁ ମୋବାଇଲ ନେଟୱାର୍କ ସେଟିଂସ ଉପଲବ୍ଧ ନାହିଁ"</string>
<string name="labelGSMMore" msgid="7354182269461281543">"GSM କଲ ସେଟିଂସ"</string>
<string name="labelGsmMore_with_label" msgid="3206015314393246224">"GSM କଲ ସେଟିଂସ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="labelCDMAMore" msgid="7937441382611224632">"CDMA କଲ୍ ସେଟିଙ୍ଗ"</string>
@@ -128,11 +128,11 @@
<string name="cdma_call_waiting" msgid="4565070960879673216">"\'କଲ୍ ୱେଟିଂ\' ସୁବିଧା ଚାଲୁ କରିବେ?"</string>
<string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"କଲ୍ ସମୟରେ, ଇନକମିଂ କଲଗୁଡ଼ିକ ବିଷୟରେ ଆପଣଙ୍କୁ ସୂଚିତ କରାଯିବ"</string>
<string name="enable_cdma_cw" msgid="811047045863422232">"ଚାଲୁ କରନ୍ତୁ"</string>
- <string name="disable_cdma_cw" msgid="7119290446496301734">"ବାତିଲ୍ କରନ୍ତୁ"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"ବାତିଲ କରନ୍ତୁ"</string>
<string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMSରେ CDMA \'କଲ୍ ୱେଟିଂ\' ସୁବିଧା ଚାଲୁ ଅଛି"</string>
<string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMSରେ CDMA \'କଲ୍ ୱେଟିଂ\' ସୁବିଧା ବନ୍ଦ ଅଛି"</string>
<string name="updating_title" msgid="6130548922615719689">"କଲ ସେଟିଂସ"</string>
- <string name="call_settings_admin_user_only" msgid="7238947387649986286">"କଲ୍ ସେଟିଙ୍ଗକୁ କେବଳ ଆଡମିନ୍ ୟୁଜର୍ ବଦଳାଇପାରିବେ।"</string>
+ <string name="call_settings_admin_user_only" msgid="7238947387649986286">"କଲ ସେଟିଂସକୁ କେବଳ ଆଡମିନ ୟୁଜର ବଦଳାଇପାରିବେ।"</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"ସେଟିଙ୍ଗ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="error_updating_title" msgid="2024290892676808965">"କଲ୍ ସେଟିଙ୍ଗରେ ତ୍ରୁଟି"</string>
<string name="reading_settings" msgid="1605904432450871183">"ସେଟିଂସକୁ ପଢ଼ାଯାଉଛି…"</string>
@@ -156,8 +156,8 @@
<item msgid="9150034130629852635">"ସଂଖ୍ୟାକୁ ଦେଖାନ୍ତୁ"</item>
</string-array>
<string name="vm_changed" msgid="4739599044379692505">"ଭଏସମେଲ୍ ନମ୍ବର୍ ବଦଳିଗଲା।"</string>
- <string name="vm_change_failed" msgid="7877733929455763566">"ଭଏସମେଲ୍ ନମ୍ବର୍ ବଦଳାଯାଇପାରିଲା ନାହିଁ। \nଯଦି ଏହି ସମସ୍ୟା ଜାରିରୁହେ ତେବେ ନିଜର କେରିଅର୍ଙ୍କ ସହ ସମ୍ପର୍କ କରନ୍ତୁ।"</string>
- <string name="fw_change_failed" msgid="9179241823460192148">"ଫଏୱାର୍ଡିଙ୍ଗ ନମ୍ବର୍କୁ ବଦଳାଇହେଲା ନାହିଁ। \n ଯଦି ଏହି ସମସ୍ୟା ଜାରିରୁହେ ତେବେ ନିଜର କେରିଅର୍ଙ୍କ ସହ ସମ୍ପର୍କ କରନ୍ତୁ।"</string>
+ <string name="vm_change_failed" msgid="7877733929455763566">"ଭଏସମେଲ ନମ୍ବର ବଦଳାଯାଇପାରିଲା ନାହିଁ। \nଯଦି ଏହି ସମସ୍ୟା ଜାରି ରୁହେ ତେବେ ନିଜର କ୍ଯାରିଅରଙ୍କ ସହ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ।"</string>
+ <string name="fw_change_failed" msgid="9179241823460192148">"ଫରୱାର୍ଡିଙ୍ଗ ନମ୍ବରକୁ ବଦଳାଯାଇପାରିଲା ନାହିଁ। \n ଯଦି ଏହି ସମସ୍ୟା ଜାରି ରୁହେ ତେବେ ନିଜର କ୍ଯାରିଅରଙ୍କ ସହ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ।"</string>
<string name="fw_get_in_vm_failed" msgid="2432678237218183844">"ବର୍ତ୍ତମାନର ଫରୱାର୍ଡିଂ ନମ୍ବର ସେଟିଂସକୁ ପୁନରୁଦ୍ଧାର ଓ ସେଭ କରାଯାଇପାରିଲା ନାହିଁ। \nନୂଆ ପ୍ରଦାନକାରୀକୁ ଯେ କୌଣସି ମତେ ସ୍ଵିଚ କରିବେ?"</string>
<string name="no_change" msgid="3737264882821031892">"କୌଣସି ପରିବର୍ତ୍ତନ କରାଯାଇନାହିଁ|"</string>
<string name="sum_voicemail_choose_provider" msgid="6750824719081403773">"ଭଏସ୍ମେଲ୍ ସେବାକୁ ଚୟନ କରନ୍ତୁ"</string>
@@ -419,7 +419,7 @@
<string name="cdma_system_select_summary" msgid="3840420390242060407">"CDMAର ରୋମିଙ୍ଗ ମୋଡ୍କୁ ବଦଳାନ୍ତୁ"</string>
<string name="cdma_system_select_dialogtitle" msgid="5524639510676501802">"ସିଷ୍ଟମ୍ ଚୟନ କରନ୍ତୁ"</string>
<string-array name="cdma_system_select_choices">
- <item msgid="462340042928284921">"କେବଳ ହୋମ୍"</item>
+ <item msgid="462340042928284921">"କେବଳ ହୋମ"</item>
<item msgid="6058010046783562674">"ସ୍ଵଚାଳିତ"</item>
</string-array>
<string name="cdma_subscription_title" msgid="3449527179325589434">"CDMA ସବସ୍କ୍ରିପଶନ୍"</string>
@@ -458,10 +458,10 @@
<string name="auto_retry_mode_title" msgid="2985801935424422340">"ଅଟୋ-ରିଟ୍ରାଏ କରନ୍ତୁ"</string>
<string name="auto_retry_mode_summary" msgid="2863919925349511402">"ଅଟୋ-ରିଟ୍ରାଏ ମୋଡ୍କୁ ସକ୍ଷମ କରନ୍ତୁ"</string>
<string name="tty_mode_not_allowed_video_call" msgid="6551976083652752815">"ଭିଡିଓ କଲ୍ କରିବା ସମୟରେ TTY ମୋଡ୍କୁ ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ ଅନୁମତି ନାହିଁ"</string>
- <string name="menu_add" msgid="5616487894975773141">"ଯୋଗାଯୋଗକୁ ଯୋଡ଼ନ୍ତୁ"</string>
- <string name="menu_edit" msgid="3593856941552460706">"ଯୋଗାଯୋଗକୁ ଏଡିଟ୍ କରନ୍ତୁ"</string>
- <string name="menu_delete" msgid="6326861853830546488">"ଯୋଗାଯୋଗକୁ ଡିଲିଟ୍ କରନ୍ତୁ"</string>
- <string name="menu_dial" msgid="4178537318419450012">"ଯୋଗାଯୋଗକୁ ଡାଏଲ୍ କରନ୍ତୁ"</string>
+ <string name="menu_add" msgid="5616487894975773141">"କଣ୍ଟାକ୍ଟ ଯୋଗ କରନ୍ତୁ"</string>
+ <string name="menu_edit" msgid="3593856941552460706">"କଣ୍ଟାକ୍ଟ ଏଡିଟ କରନ୍ତୁ"</string>
+ <string name="menu_delete" msgid="6326861853830546488">"କଣ୍ଟାକ୍ଟ ଡିଲିଟ କରନ୍ତୁ"</string>
+ <string name="menu_dial" msgid="4178537318419450012">"କଣ୍ଟାକ୍ଟ ଡାଏଲ କରନ୍ତୁ"</string>
<string name="get_pin2" msgid="4221654606863196332">"PIN2 ଟାଇପ୍ କରନ୍ତୁ"</string>
<string name="name" msgid="1347432469852527784">"ନାମ"</string>
<string name="number" msgid="1564053487748491000">"ନମ୍ବର୍"</string>
@@ -469,7 +469,7 @@
<string name="add_fdn_contact" msgid="1169713422306640887">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍ ଯୋଡ଼ନ୍ତୁ"</string>
<string name="adding_fdn_contact" msgid="3112531600824361259">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍କୁ ଯୋଡ଼ାଯାଉଛି…"</string>
<string name="fdn_contact_added" msgid="2840016151693394596">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍ ଯୋଡ଼ାଗଲା।"</string>
- <string name="edit_fdn_contact" msgid="6030829994819587408">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍କୁ ଏଡିଟ୍ କରନ୍ତୁ"</string>
+ <string name="edit_fdn_contact" msgid="6030829994819587408">"ଫିକ୍ସଡ ଡାଏଲିଙ୍ଗ ନମ୍ବରକୁ ଏଡିଟ କରନ୍ତୁ"</string>
<string name="updating_fdn_contact" msgid="6989341376868227150">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍ ଅପଡେଟ୍ ହେଉଛି…"</string>
<string name="fdn_contact_updated" msgid="6876330243323118937">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍ ଅପଡେଟ୍ କରାଗଲା।"</string>
<string name="delete_fdn_contact" msgid="7027405651994507077">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍କୁ ଡିଲିଟ୍ କରନ୍ତୁ"</string>
@@ -515,7 +515,7 @@
<string name="puk2_requested" msgid="6992374450720307514">"ଭୁଲ୍ ପାସ୍ୱର୍ଡ। ବର୍ତ୍ତମାନ SIM ଲକ୍ ହୋଇଗଲା। PUK2କୁ ପ୍ରବେଶ କରନ୍ତୁ।"</string>
<string name="puk2_blocked" msgid="3131139031779319911">"PUK2କୁ ସ୍ଥାୟୀରୂପେ ଅବରୋଧ କରାଯାଇଛି।"</string>
<string name="pin2_attempts" msgid="5625178102026453023">\n"ଆପଣଙ୍କର <xliff:g id="NUMBER">%d</xliff:g>ଟି ସୁଯୋଗ ବଳକା ଅଛି।"</string>
- <string name="puk2_locked" msgid="6497760825455461057">"PUK2 ଲକ୍ କରାଯାଇଛି। ଅନଲକ୍ କରିବାକୁ ସେବା ପ୍ରଦାନକାରୀ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।"</string>
+ <string name="puk2_locked" msgid="6497760825455461057">"PUK2 ଲକ କରାଯାଇଛି। ଅନଲକ କରିବାକୁ ସେବା ପ୍ରଦାନକାରୀ ସହ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ।"</string>
<string name="pin2_unblocked" msgid="4481107908727789303">"PIN2କୁ ଆଉ ଅବରୋଧ କରାଯାଇନାହିଁ"</string>
<string name="pin2_error_exception" msgid="8116103864600823641">"ନେଟ୍ୱର୍କ କିମ୍ବା SIM କାର୍ଡ ତ୍ରୁଟି"</string>
<string name="doneButton" msgid="7371209609238460207">"ହୋଇଗଲା"</string>
@@ -590,8 +590,8 @@
<string name="importAllSimEntries" msgid="2628391505643564007">"ସମସ୍ତ ଇମ୍ପୋର୍ଟ କରନ୍ତୁ"</string>
<string name="importingSimContacts" msgid="4995457122107888932">"SIMରେ ଥିବା ଯୋଗାଯୋଗକୁ ଇମ୍ପୋର୍ଟ କରାଯାଉଛି"</string>
<string name="importToFDNfromContacts" msgid="5068664870738407341">"ଯୋଗଯୋଗରୁ ଇମ୍ପୋର୍ଟ କରନ୍ତୁ"</string>
- <string name="singleContactImportedMsg" msgid="3619804066300998934">"ଇମ୍ପୋର୍ଟ କରାଯାଇଥିବା ଯୋଗାଯୋଗ"</string>
- <string name="failedToImportSingleContactMsg" msgid="228095510489830266">"ଯୋଗଯୋଗକୁ ଇମ୍ପୋର୍ଟ କରିବାରେ ବିଫଳ ହେଲା"</string>
+ <string name="singleContactImportedMsg" msgid="3619804066300998934">"ଇମ୍ପୋର୍ଟ କରାଯାଇଥିବା କଣ୍ଟାକ୍ଟ"</string>
+ <string name="failedToImportSingleContactMsg" msgid="228095510489830266">"କଣ୍ଟାକ୍ଟକୁ ଇମ୍ପୋର୍ଟ କରିବାରେ ବିଫଳ ହୋଇଛି"</string>
<string name="hac_mode_title" msgid="4127986689621125468">"ଶ୍ରବଣ ଯନ୍ତ୍ର"</string>
<string name="hac_mode_summary" msgid="7774989500136009881">"ଶ୍ରବଣ ଯନ୍ତ୍ର କମ୍ପ୍ୟାଟିବିଲିଟୀକୁ ଚାଲୁ କରନ୍ତୁ"</string>
<string name="rtt_mode_title" msgid="3075948111362818043">"ରିଅଲ୍-ଟାଇମ୍ ଟେକ୍ସଟ୍ (RTT) କଲ୍"</string>
@@ -652,9 +652,9 @@
<string name="voicemail_number_not_set" msgid="8831561283386938155">"<ସେଟ୍ ହୋଇନାହିଁ>"</string>
<string name="other_settings" msgid="8895088007393598447">"ଅନ୍ୟାନ୍ୟ କଲ୍ ସେଟିଙ୍ଗ"</string>
<string name="calling_via_template" msgid="1791323450703751750">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ମାଧ୍ୟମରେ କଲ୍ କରନ୍ତୁ"</string>
- <string name="contactPhoto" msgid="7885089213135154834">"ଯୋଗାଯୋଗ ଫଟୋ"</string>
+ <string name="contactPhoto" msgid="7885089213135154834">"କଣ୍ଟାକ୍ଟ ଫଟୋ"</string>
<string name="goPrivate" msgid="4645108311382209551">"ବ୍ୟକ୍ତିଗତ ହୁଅନ୍ତୁ"</string>
- <string name="selectContact" msgid="1527612842599767382">"ଯୋଗାଯୋଗକୁ ଚୟନ କରନ୍ତୁ"</string>
+ <string name="selectContact" msgid="1527612842599767382">"କଣ୍ଟାକ୍ଟ ଚୟନ କରନ୍ତୁ"</string>
<string name="not_voice_capable" msgid="2819996734252084253">"ଭଏସ୍ କଲ୍ ସପୋର୍ଟ କରୁନାହିଁ"</string>
<string name="description_dial_button" msgid="8614631902795087259">"ଡାଏଲ୍ କରନ୍ତୁ"</string>
<string name="description_dialpad_button" msgid="7395114120463883623">"ଡାୟଲ୍ପ୍ୟାଡ୍ ଦେଖାନ୍ତୁ"</string>
@@ -685,7 +685,7 @@
<string name="callFailed_wfc_service_not_available_in_this_location" msgid="3624536608369524988">"ଏହି ଲୋକେସନ୍ରେ ୱାଇ-ଫାଇ କଲିଂ ଉପଲବ୍ଧ ନାହିଁ।"</string>
<string name="change_pin_title" msgid="3564254326626797321">"ଭଏସମେଲ୍ PINକୁ ବଦଳାନ୍ତୁ"</string>
<string name="change_pin_continue_label" msgid="5177011752453506371">"ଜାରି ରଖନ୍ତୁ"</string>
- <string name="change_pin_cancel_label" msgid="2301711566758827936">"ବାତିଲ୍ କରନ୍ତୁ"</string>
+ <string name="change_pin_cancel_label" msgid="2301711566758827936">"ବାତିଲ କରନ୍ତୁ"</string>
<string name="change_pin_ok_label" msgid="6861082678817785330">"ଠିକ୍ ଅଛି"</string>
<string name="change_pin_enter_old_pin_header" msgid="853151335217594829">"ଆପଣଙ୍କର ପୁରୁଣା PINକୁ ନିଶ୍ଚିତ କରନ୍ତୁ"</string>
<string name="change_pin_enter_old_pin_hint" msgid="8801292976275169367">"ଜାରି ରଖିବା ପାଇଁ ଆପଣଙ୍କର ଭଏସମେଲ୍ PINକୁ ପ୍ରବେଶ କରନ୍ତୁ।"</string>
@@ -708,7 +708,7 @@
<string name="mobile_data_activate_diag_title" msgid="5401741936224757312">"ଡାଟାକୁ ଯୋଡ଼ିବେ?"</string>
<string name="mobile_data_activate_diag_message" msgid="3527260988020415441">"ଆପଣଙ୍କୁ <xliff:g id="PROVIDER_NAME">%s</xliff:g> ମାଧ୍ୟମରେ ଡାଟା ଯୋଡ଼ିବାକୁ ପଡ଼ିପାରେ"</string>
<string name="mobile_data_activate_button" msgid="1139792516354374612">"ଡାଟା ଯୋଡ଼ନ୍ତୁ"</string>
- <string name="mobile_data_activate_cancel_button" msgid="3530174817572005860">"ବାତିଲ୍ କରନ୍ତୁ"</string>
+ <string name="mobile_data_activate_cancel_button" msgid="3530174817572005860">"ବାତିଲ କରନ୍ତୁ"</string>
<string name="clh_card_title_call_ended_txt" msgid="5977978317527299698">"କଲ୍ ସମାପ୍ତ ହୋଇଛି"</string>
<string name="clh_callFailed_powerOff_txt" msgid="8279934912560765361">"ଏୟାରପ୍ଲେନ୍ ମୋଡ୍ ଚାଲୁ ଅଛି"</string>
<string name="clh_callFailed_simError_txt" msgid="5128538525762326413">"SIM କାର୍ଡକୁ ଆକ୍ସେସ୍ କରିହେଉନାହିଁ"</string>
@@ -718,8 +718,8 @@
<string name="clh_callFailed_channel_unacceptable_txt" msgid="4062754579408613021">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 6।"</string>
<string name="clh_callFailed_operator_determined_barring_txt" msgid="4202077821465974286">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 8।"</string>
<string name="clh_callFailed_normal_call_clearing_txt" msgid="5677987959062976462">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 16।"</string>
- <string name="clh_callFailed_user_busy_txt" msgid="8886432858568086854">"ୟୁଜର୍ ବ୍ୟସ୍ତ ଅଛନ୍ତି"</string>
- <string name="clh_callFailed_no_user_responding_txt" msgid="341100226919865128">"ୟୁଜର୍ ଉତ୍ତର ଦେଉନାହାନ୍ତି"</string>
+ <string name="clh_callFailed_user_busy_txt" msgid="8886432858568086854">"ୟୁଜର ବ୍ୟସ୍ତ ଅଛନ୍ତି"</string>
+ <string name="clh_callFailed_no_user_responding_txt" msgid="341100226919865128">"ୟୁଜର ଉତ୍ତର ଦେଉନାହାଁନ୍ତି"</string>
<string name="clh_callFailed_user_alerting_txt" msgid="896082976264427969">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 19।"</string>
<string name="clh_callFailed_call_rejected_txt" msgid="3439435671153341709">"କଲ୍କୁ ପ୍ରତ୍ୟାଖ୍ୟାନ କରାଗଲା"</string>
<string name="clh_callFailed_number_changed_txt" msgid="2868476949771441667">"ନମ୍ବର୍ ବଦଳିଯାଇଛି"</string>
@@ -795,12 +795,12 @@
<string name="messageCallBarring" msgid="5537730400652466912">"ପାସ୍ୱର୍ଡ ପ୍ରବେଶ କରନ୍ତୁ"</string>
<string name="call_barring_settings" msgid="4616607285790258919">"କଲ୍ ରୋକିବା ସେଟିଙ୍ଗ"</string>
<string name="callFailed_NetworkBusy" msgid="5437103975842913681">"ନେଟ୍ୱର୍କ ବ୍ୟସ୍ତ ଅଛି। ଦୟାକରି ଆପଣ ପରେ ପୁଣି କଲ୍ ଚେଷ୍ଟା କରିବା ପାଇଁ ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
- <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ନେଟ୍ୱର୍କ ବ୍ୟସ୍ତ ଅଛି। ସହାୟତା ପାଇଁ ଆପଣଙ୍କର ମୋବାଇଲ୍ ଅପରେଟର୍ଙ୍କୁ ଯୋଗାଯୋଗ କରନ୍ତୁ।"</string>
+ <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"ନେଟୱାର୍କ ବ୍ୟସ୍ତ ଅଛି। ସହାୟତା ପାଇଁ ଆପଣଙ୍କର ମୋବାଇଲ ଅପରେଟରଙ୍କୁ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ।"</string>
<string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"କଲ୍ ଅନ୍ୟ ପାଖକୁ ଯିବା ବଦଳରେ ନିଜ ପାଖକୁ ଆସିଯାଇଛି।"</string>
<string name="supp_service_notification_call_forwarded" msgid="7102930311735433088">"କଲ୍କୁ ଫରୱାର୍ଡ କରାଯାଇଛି।"</string>
<string name="supp_service_notification_call_waiting" msgid="4577403881609445324">"କଲ୍ ଅପେକ୍ଷାରେ ଅଛି।"</string>
<string name="supp_service_clir_suppression_rejected" msgid="6105737020194776121">"ନମ୍ବର୍ ଅବରୋଧକୁ ପ୍ରତ୍ୟାଖ୍ୟାନ କରାଗଲା।"</string>
- <string name="supp_service_closed_user_group_call" msgid="2811636666505250689">"ନିକଟତମ ୟୁଜର୍ ଗ୍ରୁପ୍ ଦ୍ଵାରା କଲ୍ରେ ସୀମିତ।"</string>
+ <string name="supp_service_closed_user_group_call" msgid="2811636666505250689">"ନିକଟତମ ୟୁଜର ଗ୍ରୁପ କଲ।"</string>
<string name="supp_service_incoming_calls_barred" msgid="2034627421274447674">"ଇନକମିଙ୍ଗ କଲ୍କୁ ରୋକାଯାଇଛି।"</string>
<string name="supp_service_outgoing_calls_barred" msgid="5205725332394087112">"ଆଉଟ୍ଗୋଇଙ୍ଗ କଲ୍କୁ ରୋକାଯାଇଛି।"</string>
<string name="supp_service_call_forwarding_active" msgid="7910162960395132464">"କଲ୍ ଫରୱାର୍ଡିଙ୍ଗ ସକ୍ରିୟ ଅଛି।"</string>
@@ -834,8 +834,10 @@
<string name="dsds_dialog_title" msgid="8494569893941847575">"ଡିଭାଇସ୍ ରିଷ୍ଟାର୍ଟ କରିବେ?"</string>
<string name="dsds_dialog_message" msgid="4047480385678538850">"ଏହି ସେଟିଂ ବଦଳାଇବାକୁ ଆପଣଙ୍କୁ ଆପଣଙ୍କର ଡିଭାଇସ୍ ରିଷ୍ଟାର୍ଟ କରିବାକୁ ହେବ।"</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ"</string>
- <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ବାତିଲ୍ କରନ୍ତୁ"</string>
+ <string name="dsds_dialog_cancel" msgid="3245958947099586655">"ବାତିଲ କରନ୍ତୁ"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"କାଢ଼ି ହେଉଥିବା eSIMକୁ ଡିଫଲ୍ଟ ଭାବେ ସେଟ କରନ୍ତୁ"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"ମୋବାଇଲ୍ ରେଡିଓ ପାୱାର୍"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"\"କାମ କରୁନାହିଁ\"ରେ ସିମୁଲେଟ କରନ୍ତୁ (କେବଳ ଡିବଗ ବିଲ୍ଡ)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ସିମ୍ରେ ଥିବା ଠିକଣା ପୁସ୍ତକ ଦେଖନ୍ତୁ"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ସ୍ଥାୟୀ ଡାଏଲିଂ ନମ୍ୱରଗୁଡ଼ିକୁ ଦେଖନ୍ତୁ"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ସର୍ଭିସ୍ ଡାଏଲିଂ ନମ୍ୱରଗୁଡ଼ିକ ଦେଖନ୍ତୁ"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"ଫୋନ୍ ସୂଚନା"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"ମୋବାଇଲ୍ କମ୍ପାନୀ ପ୍ରାବଧାନ ସୂଚନା"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"କେରିଅର୍ ପ୍ରୋଭିଜନିଂ ଟ୍ରିଗର୍ କରନ୍ତୁ"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC ଏନଟାଇଟେଲମେଣ୍ଟ ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"ଅପଡେଟ କରନ୍ତୁ"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ରିଫ୍ରେସ କରନ୍ତୁ"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"ଆପଣଙ୍କ ବ୍ଲୁଟୁଥ୍ ସିଗନାଲ୍ ଦୁର୍ବଳ ଅଛି। ସ୍ପିକରଫୋନକୁ ସ୍ୱିଚ୍ କରିବା ପାଇଁ ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"କଲ୍ ଗୁଣବତ୍ତା ବିଜ୍ଞପ୍ତି"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"ଅସମର୍ଥିତ SIP ଆକାଉଣ୍ଟଗୁଡ଼ିକ"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index f19c231..40bf12a 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -596,7 +596,7 @@
<string name="hac_mode_summary" msgid="7774989500136009881">"ਸੁਣਨ ਲਈ ਸਹਾਇਕ ਸਾਧਨ ਅਨੁਕੂਲਤਾ ਚਾਲੂ ਕਰੋ"</string>
<string name="rtt_mode_title" msgid="3075948111362818043">"ਨਾਲ-ਦੀ-ਨਾਲ ਦਿਸਦੀ ਲਿਖਤ (RTT) ਵਾਲੀ ਕਾਲ"</string>
<string name="rtt_mode_summary" msgid="8631541375609989562">"ਕਿਸੇ ਅਵਾਜ਼ੀ ਕਾਲ ਦੌਰਾਨ ਸੁਨੇਹਾ ਭੇਜਣ ਦਿਓ"</string>
- <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT ਅਜਿਹੇ ਕਾਲ ਕਰਨ ਵਾਲੇ ਲੋਕਾਂ ਦੀ ਸਹਾਇਤਾ ਕਰਦਾ ਹੈ ਜੋ ਬੋਲੇ, ਘੱਟ ਸੁਣਨ ਵਾਲੇ, ਬੋਲਣ ਵਿੱਚ ਅਸਮਰਥ ਜਾਂ ਜਿਨ੍ਹਾਂ ਲਈ ਸਿਰਫ਼ ਅਵਾਜ਼ ਕਾਫ਼ੀ ਨਹੀਂ ਹੁੰਦੀ।<br> <a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>>ਹੋਰ ਜਾਣੋ</a>\n <br><br> - RTT ਕਾਲਾਂ ਨੂੰ ਇੱਕ ਪ੍ਰਤਿਲਿਪੀ ਸੁਨੇਹੇ ਵਜੋਂ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ\n <br> - RTT ਵੀਡੀਓ ਕਾਲਾਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
+ <string name="rtt_mode_more_information" msgid="587500128658756318">"RTT ਅਜਿਹੇ ਕਾਲ ਕਰਨ ਵਾਲੇ ਲੋਕਾਂ ਦੀ ਸਹਾਇਤਾ ਕਰਦਾ ਹੈ ਜੋ ਬੋਲੇ, ਘੱਟ ਸੁਣਨ ਵਾਲੇ, ਬੋਲਣ ਵਿੱਚ ਅਸਮਰੱਥ ਜਾਂ ਜਿਨ੍ਹਾਂ ਲਈ ਸਿਰਫ਼ ਅਵਾਜ਼ ਕਾਫ਼ੀ ਨਹੀਂ ਹੁੰਦੀ।<br> <a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>>ਹੋਰ ਜਾਣੋ</a>\n <br><br> - RTT ਕਾਲਾਂ ਨੂੰ ਇੱਕ ਪ੍ਰਤੀਲਿਪੀਕਰਨ ਸੁਨੇਹੇ ਵਜੋਂ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ\n <br> - RTT ਵੀਡੀਓ ਕਾਲਾਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
<string name="no_rtt_when_roaming" msgid="5268008247378355389">"ਨੋਟ ਕਥਨ:ਵੇਲੇ RTT ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
<string-array name="tty_mode_entries">
<item msgid="3238070884803849303">"TTY ਬੰਦ"</item>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"ਤੁਹਾਨੂੰ ਇਹ ਸੈਟਿੰਗ ਬਦਲਣ ਲਈ ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"ਰੱਦ ਕਰੋ"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"ਹਟਾਉਣਯੋਗ ਈ-ਸਿਮ ਨੂੰ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਵਜੋਂ ਸੈੱਟ ਕਰੋ"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"ਮੋਬਾਈਲ ਰੇਡੀਓ ਪਾਵਰ"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"\'ਸੇਵਾ ਵਿੱਚ ਨਹੀਂ\' ਨੂੰ ਸਿਮੂਲੇਟ ਕਰੋ (ਸਿਰਫ਼ ਡੀਬੱਗ ਬਿਲਡ)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ਸਿਮ ਦੀ ਪਤਾ ਬੁੱਕ ਦੇਖੋ"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ਫਿਕਸਡ ਡਾਇਲਿੰਗ ਨੰਬਰ ਦੇਖੋ"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ਸੇਵਾ ਡਾਇਲਿੰਗ ਨੰਬਰ ਦੇਖੋ"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"ਫ਼ੋਨ ਜਾਣਕਾਰੀ"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"ਕੈਰੀਅਰ ਪ੍ਰੋਵਿਜ਼ਨਿੰਗ ਜਾਣਕਾਰੀ"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ਕੈਰੀਅਰ ਪ੍ਰਵਿਜ਼ਨਿੰਗ ਨੂੰ ਟ੍ਰਿਗਰ ਕਰੋ"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC ਹੱਕਦਾਰੀ ਆਈਡੀ:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"ਅੱਪਡੇਟ ਕਰੋ"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ਰਿਫ੍ਰੈਸ਼ ਕਰੋ"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"ਤੁਹਾਡਾ ਬਲੂਟੁੱਥ ਸਿਗਨਲ ਕਮਜ਼ੋਰ ਹੈ। ਸਪੀਕਰਫ਼ੋਨ \'ਤੇ ਲਿਜਾ ਕੇ ਦੇਖੋ।"</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"ਕਾਲ ਦੀ ਕੁਆਲਿਟੀ ਸੰਬੰਧੀ ਸੂਚਨਾ"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"ਨਾਪਸੰਦ ਕੀਤੇ SIP ਖਾਤੇ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index c6de1b1..d9774d9 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Musisz ponownie uruchomić urządzenie, by to zmienić."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Uruchom ponownie"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Anuluj"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Ustaw wymienną kartę eSIM jako domyślną"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Moc sygnału komórkowego"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Symulowana przerwa w działaniu usługi (tylko w kompilacji do debugowania)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Wyświetl książkę adresową z karty SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Wyświetl ustalone numery"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Wyświetl numery usług"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacje o telefonie"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Informacje o obsłudze administracyjnej operatora"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Uruchom obsługę administracyjną operatora"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Identyfikator uprawnienia dotyczącego połączeń przez Wi-Fi:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Aktualizuj"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Odśwież"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Twój sygnał Bluetooth jest słaby. Spróbuj przełączyć na głośnik."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Powiadomienie o jakości połączenia"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Wycofane konta SIP"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 586cb7f..c8ce62f 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -179,7 +179,7 @@
<string name="network_query_error" msgid="3862515805115145124">"Não foi possível localizar nenhuma rede. Tente novamente."</string>
<string name="register_on_network" msgid="4194770527833960423">"A registar em <xliff:g id="NETWORK">%s</xliff:g>..."</string>
<string name="not_allowed" msgid="8541221928746104798">"O cartão SIM não permite uma ligação a esta rede."</string>
- <string name="connect_later" msgid="1950138106010005425">"De momento, não é possível estabelecer ligação com esta rede. Tente novamente mais tarde."</string>
+ <string name="connect_later" msgid="1950138106010005425">"De momento, não é possível estabelecer ligação com esta rede. Tente mais tarde."</string>
<string name="registration_done" msgid="5337407023566953292">"Registado na rede."</string>
<string name="already_auto" msgid="8607068290733079336">"A seleção automática já está ativada."</string>
<string name="select_automatically" msgid="779750291257872651">"Selecionar automaticamente a rede"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Tem de reiniciar o dispositivo para alterar esta definição."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reiniciar"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancelar"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Predefinir eSIM removível"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Potência do rádio móvel"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simule o modo fora de serviço (apenas na versão de depuração)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver livro de endereços do SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números autorizados"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcação de serviços"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Informações do telefone"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Informações de fornecimento do operador"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Acionar fornecimento do operador"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID de direito de utilização de WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Atualizar"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Atualizar"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"O seu sinal Bluetooth é fraco. Tente mudar para o altifalante."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Notificação de qualidade da chamada"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Contas SIP descontinuadas"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index ced0b61..6cbc051 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -579,7 +579,7 @@
<string name="onscreenEndCallText" msgid="6138725377654842757">"Finalizar"</string>
<string name="onscreenShowDialpadText" msgid="658465753816164079">"Teclado"</string>
<string name="onscreenMuteText" msgid="5470306116733843621">"Desativar som"</string>
- <string name="onscreenAddCallText" msgid="9075675082903611677">"Adicionar chamada"</string>
+ <string name="onscreenAddCallText" msgid="9075675082903611677">"Adicionar ligação"</string>
<string name="onscreenMergeCallsText" msgid="3692389519611225407">"Juntar chamadas"</string>
<string name="onscreenSwapCallsText" msgid="2682542150803377991">"Trocar"</string>
<string name="onscreenManageCallsText" msgid="1162047856081836469">"Gerenciar chamadas"</string>
@@ -595,7 +595,7 @@
<string name="hac_mode_title" msgid="4127986689621125468">"Aparelhos auditivos"</string>
<string name="hac_mode_summary" msgid="7774989500136009881">"Ativar compatibilidade com aparelhos auditivos"</string>
<string name="rtt_mode_title" msgid="3075948111362818043">"Chamada com mensagem de texto em tempo real (RTT)"</string>
- <string name="rtt_mode_summary" msgid="8631541375609989562">"Permitir o envio de mensagens de texto em uma chamada de voz"</string>
+ <string name="rtt_mode_summary" msgid="8631541375609989562">"Permitir o envio de mensagens de texto em uma ligação"</string>
<string name="rtt_mode_more_information" msgid="587500128658756318">"A RTT ajuda os autores das chamadas com deficiências como surdez, dificuldade de audição ou fala ou que precisam de outros recursos além de voz.<br> <a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>>Saiba mais</a>\n <br><br> — As chamadas RTT são salvas como transcrições de mensagem\n <br> — A RTT não está disponível para videochamadas"</string>
<string name="no_rtt_when_roaming" msgid="5268008247378355389">"Observação: a RTT não está disponível em roaming"</string>
<string-array name="tty_mode_entries">
@@ -655,7 +655,7 @@
<string name="contactPhoto" msgid="7885089213135154834">"foto do contato"</string>
<string name="goPrivate" msgid="4645108311382209551">"conversar em particular"</string>
<string name="selectContact" msgid="1527612842599767382">"selecionar contato"</string>
- <string name="not_voice_capable" msgid="2819996734252084253">"Chamada de voz não compatível"</string>
+ <string name="not_voice_capable" msgid="2819996734252084253">"Ligação não compatível"</string>
<string name="description_dial_button" msgid="8614631902795087259">"discar"</string>
<string name="description_dialpad_button" msgid="7395114120463883623">"Mostrar teclado"</string>
<string name="pane_title_emergency_dialpad" msgid="3627372514638694401">"Teclado de emergência"</string>
@@ -815,7 +815,7 @@
<string name="supp_service_held_call_released" msgid="2847835124639112410">"A chamada em espera foi desconectada."</string>
<string name="callFailed_otasp_provisioning_in_process" msgid="3345666183602879326">"Não é possível ligar porque o dispositivo está sendo provisionado no momento,"</string>
<string name="callFailed_already_dialing" msgid="7250591188960691086">"Não é possível ligar porque há outra chamada sendo realizada."</string>
- <string name="callFailed_already_ringing" msgid="2376603543544289303">"Não é possível ligar porque há uma chamada recebida que não foi atendida. Atenda ou rejeite essa chamada antes de fazer outra."</string>
+ <string name="callFailed_already_ringing" msgid="2376603543544289303">"Não é possível ligar porque há uma ligação recebida que não foi atendida. Atenda ou rejeite essa chamada antes de fazer outra."</string>
<string name="callFailed_calling_disabled" msgid="5010992739401206283">"Não é possível ligar porque as chamadas foram desativadas pela propriedade \"ro.telephony.disable-call system\"."</string>
<string name="callFailed_too_many_calls" msgid="2761754044990799580">"Não é possível ligar porque já há duas chamadas em andamento. Encerre uma das chamadas ou mescle-as em uma conferência antes de fazer outra."</string>
<string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Verifique se os dados móveis estão ativados para usar este serviço: <xliff:g id="SUPP_SERVICE">%s</xliff:g>. Você pode alterar essa opção nas configurações da rede móvel."</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Reinicie o dispositivo para alterar essa configuração."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reiniciar"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Cancelar"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Definir eSIM removível como padrão"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Potência do rádio celular"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simular o modo fora de serviço (somente build de depuração)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver o catálogo de endereços do chip"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de discagem fixa"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de discagem do serviço"</string>
@@ -882,7 +884,7 @@
<string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Dados recebidos:"</string>
<string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Serviço de voz:"</string>
<string name="radio_info_signal_strength_label" msgid="5545444702102543260">"Potência do sinal:"</string>
- <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status da chamada de voz:"</string>
+ <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status da ligação:"</string>
<string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Dados enviados:"</string>
<string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mensagem em espera:"</string>
<string name="radio_info_phone_number_label" msgid="2533852539562512203">"Número de telefone:"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Informações do telefone"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Informações de provisionamento da operadora"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Acionar provisionamento da operadora"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID de direito WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Atualizar"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Atualizar"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"O sinal do Bluetooth está fraco. Mude para o viva-voz."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Notificação sobre a qualidade da chamada"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Contas SIP suspensas"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 037efa8..90f918e 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -30,29 +30,29 @@
<string name="mmiStarted" msgid="9212975136944568623">"Cod MMI pornit"</string>
<string name="ussdRunning" msgid="1163586813106772717">"Se rulează codul USSD..."</string>
<string name="mmiCancelled" msgid="5339191899200678272">"Cod MMI anulat"</string>
- <string name="cancel" msgid="8984206397635155197">"Anulați"</string>
- <string name="enter_input" msgid="6193628663039958990">"Mesajul USSD trebuie să aibă între <xliff:g id="MIN_LEN">%1$d</xliff:g> și <xliff:g id="MAX_LEN">%2$d</xliff:g> caractere. Încercați din nou."</string>
- <string name="manageConferenceLabel" msgid="8415044818156353233">"Gestionați teleconferința"</string>
+ <string name="cancel" msgid="8984206397635155197">"Anulează"</string>
+ <string name="enter_input" msgid="6193628663039958990">"Mesajul USSD trebuie să aibă între <xliff:g id="MIN_LEN">%1$d</xliff:g> și <xliff:g id="MAX_LEN">%2$d</xliff:g> caractere. Încearcă din nou."</string>
+ <string name="manageConferenceLabel" msgid="8415044818156353233">"Gestionează teleconferința"</string>
<string name="ok" msgid="7818974223666140165">"OK"</string>
<string name="audio_mode_speaker" msgid="243689733219312360">"Difuzor"</string>
<string name="audio_mode_earpiece" msgid="2823700267171134282">"Casca dispozitivului"</string>
<string name="audio_mode_wired_headset" msgid="5028010823105817443">"Cască cu fir"</string>
<string name="audio_mode_bluetooth" msgid="25732183428018809">"Bluetooth"</string>
- <string name="wait_prompt_str" msgid="5136209532150094910">"Trimiteți următoarele tonuri?\n"</string>
+ <string name="wait_prompt_str" msgid="5136209532150094910">"Trimiți următoarele tonuri?\n"</string>
<string name="pause_prompt_str" msgid="2308897950360272213">"Se trimit tonuri\n"</string>
- <string name="send_button" msgid="5070379600779031932">"Trimiteți"</string>
+ <string name="send_button" msgid="5070379600779031932">"Trimite"</string>
<string name="pause_prompt_yes" msgid="8184132073048369575">"Da"</string>
<string name="pause_prompt_no" msgid="2145264674774138579">"Nu"</string>
<string name="wild_prompt_str" msgid="5858910969703305375">"Înlocuiți metacaracterul cu"</string>
<string name="no_vm_number" msgid="6623853880546176930">"Lipsește numărul mesageriei vocale"</string>
<string name="no_vm_number_msg" msgid="5165161462411372504">"Niciun număr de mesagerie vocală nu este stocat pe cardul SIM."</string>
- <string name="add_vm_number_str" msgid="7368168964435881637">"Adăugați numărul"</string>
+ <string name="add_vm_number_str" msgid="7368168964435881637">"Adaugă numărul"</string>
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Setările pentru mesagerie vocală pot fi modificate numai de utilizatorul principal."</string>
- <string name="puk_unlocked" msgid="4627340655215746511">"Cardul dvs. SIM a fost deblocat. Telefonul dvs. se deblochează..."</string>
+ <string name="puk_unlocked" msgid="4627340655215746511">"Cardul tău SIM a fost deblocat. Telefonul tău se deblochează..."</string>
<string name="label_ndp" msgid="7617392683877410341">"Codul PIN de deblocare a rețelei SIM"</string>
<string name="label_phoneid" msgid="8775611434123577808">"Cardul SIM a fost blocat pentru operator"</string>
- <string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Deblocați"</string>
- <string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Renunțați"</string>
+ <string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Deblochează"</string>
+ <string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Renunță"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Se solicită deblocarea rețelei..."</string>
<string name="unlock_failed" msgid="7103543844840661366">"Cererea de deblocare a rețelei a eșuat."</string>
<string name="unlock_success" msgid="32681089371067565">"Rețeaua a fost deblocată."</string>
@@ -64,25 +64,25 @@
<string name="apn_settings" msgid="1978652203074756623">"Numele punctelor de acces"</string>
<string name="settings_label" msgid="9101778088412567956">"Setări de rețea"</string>
<string name="phone_accounts" msgid="1216879437523774604">"Conturi pentru apelare"</string>
- <string name="phone_accounts_make_calls_with" msgid="16747814788918145">"Apelați cu"</string>
- <string name="phone_accounts_make_sip_calls_with" msgid="4691221006731847255">"Dați apeluri SIP cu"</string>
+ <string name="phone_accounts_make_calls_with" msgid="16747814788918145">"Apelează cu"</string>
+ <string name="phone_accounts_make_sip_calls_with" msgid="4691221006731847255">"Dai apeluri SIP cu"</string>
<string name="phone_accounts_ask_every_time" msgid="6192347582666047168">"Întreabă mai întâi"</string>
<string name="phone_accounts_default_account_label" msgid="5107598881335931101">"Nicio rețea disponibilă"</string>
<string name="phone_accounts_settings_header" msgid="6296501692964706536">"Setări"</string>
- <string name="phone_accounts_choose_accounts" msgid="4748805293314824974">"Alegeți conturile"</string>
+ <string name="phone_accounts_choose_accounts" msgid="4748805293314824974">"Alege conturile"</string>
<string name="phone_accounts_selection_header" msgid="2945830843104108440">"Conturi telefon"</string>
- <string name="phone_accounts_add_sip_account" msgid="1437634802033309305">"Adăugați un cont SIP"</string>
- <string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"Configurați setările contului"</string>
+ <string name="phone_accounts_add_sip_account" msgid="1437634802033309305">"Adaugă un cont SIP"</string>
+ <string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"Configurează setările contului"</string>
<string name="phone_accounts_all_calling_accounts" msgid="1609600743500618823">"Toate conturile pentru apelare"</string>
- <string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"Selectați conturile care pot da apeluri"</string>
+ <string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"Selectează conturile care pot da apeluri"</string>
<string name="wifi_calling" msgid="3650509202851355742">"Apelare prin Wi-Fi"</string>
<string name="connection_service_default_label" msgid="7332739049855715584">"Serviciu de conectare încorporat"</string>
<string name="voicemail" msgid="7697769412804195032">"Mesagerie vocală"</string>
<string name="voicemail_settings_with_label" msgid="4228431668214894138">"Mesagerie vocală (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="7746778673131551185">"MV:"</string>
- <string name="make_and_receive_calls" msgid="4868913166494621109">"Inițiați și primiți apeluri"</string>
+ <string name="make_and_receive_calls" msgid="4868913166494621109">"Inițiază și primește apeluri"</string>
<string name="smart_forwarding_settings_menu" msgid="8850429887958938540">"Redirecționare intuitivă"</string>
- <string name="smart_forwarding_settings_menu_summary" msgid="5096947726032885325">"Când un număr nu este disponibil, redirecționați mereu apelurile către celălalt număr pe care îl aveți."</string>
+ <string name="smart_forwarding_settings_menu_summary" msgid="5096947726032885325">"Când un număr nu este disponibil, redirecționează mereu apelurile către celălalt număr pe care îl ai."</string>
<string name="voicemail_notifications_preference_title" msgid="7829238858063382977">"Notificări"</string>
<string name="cell_broadcast_settings" msgid="8135324242541809924">"Transmisiuni de urgență"</string>
<string name="call_settings" msgid="3677282690157603818">"Setări pentru apeluri"</string>
@@ -96,7 +96,7 @@
<string name="sum_loading_settings" msgid="434063780286688775">"Se încarcă setările…"</string>
<string name="sum_hide_caller_id" msgid="131100328602371933">"Număr ascuns în apelurile de ieșire"</string>
<string name="sum_show_caller_id" msgid="3571854755324664591">"Numărul afișat în apelurile de ieșire"</string>
- <string name="sum_default_caller_id" msgid="1767070797135682959">"Utilizați setările prestabilite ale operatorului pentru a vă afișa numărul în apelurile efectuate"</string>
+ <string name="sum_default_caller_id" msgid="1767070797135682959">"Utilizează setările prestabilite ale operatorului pentru a-ți afișa numărul în apelurile efectuate"</string>
<string name="labelCW" msgid="8449327023861428622">"Apel în așteptare"</string>
<string name="sum_cw_enabled" msgid="3977308526187139996">"Anunță-mă dacă primesc un apel în timpul unei convorbiri"</string>
<string name="sum_cw_disabled" msgid="3658094589461768637">"Anunță-mă dacă primesc un apel în timpul unei convorbiri"</string>
@@ -113,22 +113,22 @@
<string name="messageCFB" msgid="1958017270393563388">"Număr pentru redirecționare dacă este ocupat"</string>
<string name="sum_cfb_enabled" msgid="332037613072049492">"Se redirecționează la <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfb_disabled" msgid="3589913334164866035">"Dezactivat"</string>
- <string name="disable_cfb_forbidden" msgid="4831494744351633961">"Operatorul dvs. nu acceptă ca redirecționarea apelurilor să fie dezactivată atunci când telefonul dvs. este ocupat."</string>
+ <string name="disable_cfb_forbidden" msgid="4831494744351633961">"Operatorul tău nu acceptă ca redirecționarea apelurilor să fie dezactivată atunci când telefonul tău este ocupat."</string>
<string name="labelCFNRy" msgid="3403533792248457946">"Când nu se răspunde"</string>
<string name="messageCFNRy" msgid="7644434155765359009">"Număr pentru redirecționare dacă nu se răspunde"</string>
<string name="sum_cfnry_enabled" msgid="3000500837493854799">"Se redirecționează la <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnry_disabled" msgid="1990563512406017880">"Dezactivat"</string>
- <string name="disable_cfnry_forbidden" msgid="3174731413216550689">"Operatorul dvs. nu acceptă ca redirecționarea apelurilor să fie dezactivată atunci când telefonul dvs. nu răspunde."</string>
+ <string name="disable_cfnry_forbidden" msgid="3174731413216550689">"Operatorul tău nu acceptă ca redirecționarea apelurilor să fie dezactivată atunci când telefonul tău nu răspunde."</string>
<string name="labelCFNRc" msgid="4163399350778066013">"Când nu este accesibil"</string>
<string name="messageCFNRc" msgid="6980340731313007250">"Număr de redirecționare dacă telefonul nu este accesibil"</string>
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Se redirecționează la <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Dezactivat"</string>
- <string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Operatorul dvs. nu acceptă ca redirecționarea apelurilor să fie dezactivată atunci când telefonul nu este accesibil."</string>
- <string name="registration_cf_forbidden" msgid="4386482610771190420">"Operatorul dvs. nu acceptă redirecționarea apelurilor."</string>
- <string name="cdma_call_waiting" msgid="4565070960879673216">"Activați apelurile în așteptare?"</string>
- <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"În timpul unui apel, veți primi o notificare despre apelurile primite"</string>
- <string name="enable_cdma_cw" msgid="811047045863422232">"Activați"</string>
- <string name="disable_cdma_cw" msgid="7119290446496301734">"Anulați"</string>
+ <string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Operatorul tău nu acceptă ca redirecționarea apelurilor să fie dezactivată atunci când telefonul nu este accesibil."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Operatorul tău nu acceptă redirecționarea apelurilor."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Activezi apelurile în așteptare?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"În timpul unui apel, vei primi o notificare despre apelurile primite"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Activează"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Anulează"</string>
<string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Apelurile în așteptare CDMA din IMS sunt activate"</string>
<string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Apelurile în așteptare CDMA din IMS sunt dezactivate"</string>
<string name="updating_title" msgid="6130548922615719689">"Setări pentru apeluri"</string>
@@ -145,26 +145,26 @@
<string name="stk_cc_ss_to_ss_error" msgid="8297155544652134278">"Schimbat cu o solicitare SS nouă"</string>
<string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"Solicitarea SS a fost schimbată cu un apel video"</string>
<string name="fdn_check_failure" msgid="1833769746374185247">"Setarea Numere cu apelări restricționate din aplicația Telefon este activată. Ca rezultat, unele funcții legate de apelare nu pot fi utilizate."</string>
- <string name="radio_off_error" msgid="8321564164914232181">"Activați semnalul radio, înainte de a vizualiza aceste setări."</string>
+ <string name="radio_off_error" msgid="8321564164914232181">"Activează semnalul radio, înainte de a vizualiza aceste setări."</string>
<string name="close_dialog" msgid="1074977476136119408">"OK"</string>
- <string name="enable" msgid="2636552299455477603">"Activați"</string>
- <string name="disable" msgid="1122698860799462116">"Dezactivați"</string>
- <string name="change_num" msgid="6982164494063109334">"Actualizați"</string>
+ <string name="enable" msgid="2636552299455477603">"Activează"</string>
+ <string name="disable" msgid="1122698860799462116">"Dezactivează"</string>
+ <string name="change_num" msgid="6982164494063109334">"Actualizează"</string>
<string-array name="clir_display_values">
<item msgid="8477364191403806960">"Rețea prestabilită"</item>
- <item msgid="6813323051965618926">"Ascundeți numărul"</item>
- <item msgid="9150034130629852635">"Afișați numărul"</item>
+ <item msgid="6813323051965618926">"Ascunde numărul"</item>
+ <item msgid="9150034130629852635">"Afișează numărul"</item>
</string-array>
<string name="vm_changed" msgid="4739599044379692505">"Număr mesagerie vocală modificat."</string>
- <string name="vm_change_failed" msgid="7877733929455763566">"Nu s-a putut schimba numărul de mesagerie vocală.\nContactați operatorul în cazul în care această problemă persistă."</string>
- <string name="fw_change_failed" msgid="9179241823460192148">"Nu s-a putut schimba numărul de redirecționare.\nContactați operatorul dvs. în cazul în care această problemă persistă."</string>
- <string name="fw_get_in_vm_failed" msgid="2432678237218183844">"Nu s-au putut prelua și salva setările actuale ale numărului de redirecționare.\nDoriți să comutați oricum către un nou furnizor de servicii?"</string>
+ <string name="vm_change_failed" msgid="7877733929455763566">"Nu s-a putut schimba numărul de mesagerie vocală.\nContactează operatorul în cazul în care această problemă persistă."</string>
+ <string name="fw_change_failed" msgid="9179241823460192148">"Nu s-a putut schimba numărul de redirecționare.\nContactează operatorul tău în cazul în care această problemă persistă."</string>
+ <string name="fw_get_in_vm_failed" msgid="2432678237218183844">"Nu s-au putut prelua și salva setările actuale ale numărului de redirecționare.\nDorești să treci oricum către un nou furnizor de servicii?"</string>
<string name="no_change" msgid="3737264882821031892">"Nicio schimbare efectuată."</string>
- <string name="sum_voicemail_choose_provider" msgid="6750824719081403773">"Alegeți serviciul de mesagerie vocală"</string>
- <string name="voicemail_default" msgid="6427575113775462077">"Operatorul dvs."</string>
+ <string name="sum_voicemail_choose_provider" msgid="6750824719081403773">"Alege serviciul de mesagerie vocală"</string>
+ <string name="voicemail_default" msgid="6427575113775462077">"Operatorul tău"</string>
<string name="vm_change_pin_old_pin" msgid="7154951790929009241">"Codul PIN vechi"</string>
<string name="vm_change_pin_new_pin" msgid="2656200418481288069">"Codul PIN nou"</string>
- <string name="vm_change_pin_progress_message" msgid="626015184502739044">"Așteptați."</string>
+ <string name="vm_change_pin_progress_message" msgid="626015184502739044">"Așteaptă."</string>
<string name="vm_change_pin_error_too_short" msgid="1789139338449945483">"Codul PIN nou este prea scurt."</string>
<string name="vm_change_pin_error_too_long" msgid="3634907034310018954">"Codul PIN nou este prea lung."</string>
<string name="vm_change_pin_error_too_weak" msgid="8581892952627885719">"Codul PIN nou este prea slab. O parolă puternică nu ar trebui să aibă o secvență continuă sau cifre repetitive."</string>
@@ -176,21 +176,21 @@
<string name="label_available" msgid="1316084116670821258">"Rețele disponibile"</string>
<string name="load_networks_progress" msgid="4051433047717401683">"Se caută…"</string>
<string name="empty_networks_list" msgid="9216418268008582342">"Nicio rețea găsită."</string>
- <string name="network_query_error" msgid="3862515805115145124">"Nu s-au găsit rețele. Încercați din nou."</string>
+ <string name="network_query_error" msgid="3862515805115145124">"Nu s-au găsit rețele. Încearcă din nou."</string>
<string name="register_on_network" msgid="4194770527833960423">"Se înregistrează pe <xliff:g id="NETWORK">%s</xliff:g>..."</string>
- <string name="not_allowed" msgid="8541221928746104798">"Cardul dvs. SIM nu permite conexiunea la această rețea."</string>
- <string name="connect_later" msgid="1950138106010005425">"Nu se poate efectua conectarea la această rețea chiar acum. Încercați din nou mai târziu."</string>
+ <string name="not_allowed" msgid="8541221928746104798">"Cardul tău SIM nu permite conexiunea la această rețea."</string>
+ <string name="connect_later" msgid="1950138106010005425">"Nu se poate efectua conectarea la această rețea chiar acum. Încearcă din nou mai târziu."</string>
<string name="registration_done" msgid="5337407023566953292">"Înregistrat în rețea."</string>
<string name="already_auto" msgid="8607068290733079336">"Deja în selecție automată."</string>
- <string name="select_automatically" msgid="779750291257872651">"Selectați automat rețeaua"</string>
+ <string name="select_automatically" msgid="779750291257872651">"Selectează automat rețeaua"</string>
<string name="manual_mode_disallowed_summary" msgid="3970048592179890197">"Indisponibil când este conectat la %1$s"</string>
<string name="network_select_title" msgid="4117305053881611988">"Rețea"</string>
<string name="register_automatically" msgid="3907580547590554834">"Înregistrare automată..."</string>
<string name="preferred_network_mode_title" msgid="5253395265169539830">"Tipul de rețea preferat"</string>
- <string name="preferred_network_mode_summary" msgid="3787989000044330064">"Schimbați modul de operare a rețelei"</string>
+ <string name="preferred_network_mode_summary" msgid="3787989000044330064">"Schimbă modul de operare a rețelei"</string>
<string name="preferred_network_mode_dialogtitle" msgid="2781447433514459696">"Tipul de rețea preferat"</string>
<string name="forbidden_network" msgid="5081729819561333023">"(interzis)"</string>
- <string name="choose_network_title" msgid="5335832663422653082">"Alegeți o rețea"</string>
+ <string name="choose_network_title" msgid="5335832663422653082">"Alege o rețea"</string>
<string name="network_disconnected" msgid="8844141106841160825">"Deconectat"</string>
<string name="network_connected" msgid="2760235679963580224">"Conectat"</string>
<string name="network_connecting" msgid="160901383582774987">"Se conectează…"</string>
@@ -273,30 +273,30 @@
<string name="network_operator_category" msgid="4992217193732304680">"Rețea"</string>
<string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"Mod 4G LTE îmbunătățit"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (7240155150166394308) -->
- <string name="enhanced_4g_lte_mode_summary" msgid="7725708511804143638">"Folosiți servicii LTE pt. a îmbunătăți comunicări vocale și altele (recomandat)"</string>
- <string name="enhanced_4g_lte_mode_summary_o2" msgid="2521108446409016542">"Folosiți servicii 4G pentru a îmbunătăți comunicările vocale și altele (recomandat)"</string>
+ <string name="enhanced_4g_lte_mode_summary" msgid="7725708511804143638">"Folosește servicii LTE pt. a îmbunătăți comunicări vocale și altele (recomandat)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2521108446409016542">"Folosește servicii 4G pentru a îmbunătăți comunicările vocale și altele (recomandat)"</string>
<!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2943982616649705147) -->
<!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (5262249464504131443) -->
<!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (6356974241850241718) -->
<string name="data_enabled" msgid="22525832097434368">"Date activate"</string>
- <string name="data_enable_summary" msgid="696860063456536557">"Permiteți utilizarea datelor"</string>
+ <string name="data_enable_summary" msgid="696860063456536557">"Permite utilizarea datelor"</string>
<string name="dialog_alert_title" msgid="5260471806940268478">"Atenție"</string>
<string name="roaming" msgid="1576180772877858949">"Roaming"</string>
- <string name="roaming_enable" msgid="6853685214521494819">"Conectați-vă la serviciile de date în roaming"</string>
- <string name="roaming_disable" msgid="8856224638624592681">"Conectați-vă la serviciile de date în roaming"</string>
- <string name="roaming_reenable_message" msgid="1951802463885727915">"Roamingul de date este dezactivat. Atingeți pentru a-l activa."</string>
- <string name="roaming_enabled_message" msgid="9022249120750897">"Se pot aplica tarife de roaming. Atingeți pentru a modifica."</string>
+ <string name="roaming_enable" msgid="6853685214521494819">"Conectează-te la serviciile de date în roaming"</string>
+ <string name="roaming_disable" msgid="8856224638624592681">"Conectează-te la serviciile de date în roaming"</string>
+ <string name="roaming_reenable_message" msgid="1951802463885727915">"Roamingul de date este dezactivat. Atinge pentru a-l activa."</string>
+ <string name="roaming_enabled_message" msgid="9022249120750897">"Se pot aplica tarife de roaming. Atinge pentru a modifica."</string>
<string name="roaming_notification_title" msgid="3590348480688047320">"S-a pierdut conexiunea de date mobile"</string>
<string name="roaming_on_notification_title" msgid="7451473196411559173">"Roamingul de date este activat"</string>
<string name="roaming_warning" msgid="7855681468067171971">"Se pot acumula costuri mari."</string>
- <string name="roaming_check_price_warning" msgid="8212484083990570215">"Consultați furnizorul de rețea în privința prețurilor."</string>
- <string name="roaming_alert_title" msgid="5689615818220960940">"Permiteți roamingul de date?"</string>
+ <string name="roaming_check_price_warning" msgid="8212484083990570215">"Consultă furnizorul de rețea în privința prețurilor."</string>
+ <string name="roaming_alert_title" msgid="5689615818220960940">"Permiți roamingul de date?"</string>
<string name="limited_sim_function_notification_title" msgid="612715399099846281">"Funcționalitate SIM limitată"</string>
<string name="limited_sim_function_with_phone_num_notification_message" msgid="5928988883403677610">"Este posibil ca apelurile și serviciile de date de la <xliff:g id="CARRIER_NAME">%1$s</xliff:g> să fie blocate în timp ce se folosește <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>."</string>
- <string name="limited_sim_function_notification_message" msgid="5338638075496721160">"Apelurile și serviciile de date de la <xliff:g id="CARRIER_NAME">%1$s</xliff:g> pot fi blocate când folosiți alt card SIM"</string>
+ <string name="limited_sim_function_notification_message" msgid="5338638075496721160">"Apelurile și serviciile de date de la <xliff:g id="CARRIER_NAME">%1$s</xliff:g> pot fi blocate când folosești alt card SIM"</string>
<string name="sip_accounts_removed_notification_title" msgid="3528076957535736095">"Au fost găsite și eliminate conturi SIP învechite"</string>
- <string name="sip_accounts_removed_notification_message" msgid="1916856744869791592">"Platforma Android nu mai acceptă apelarea SIP.\nConturile dvs. SIP existente <xliff:g id="REMOVED_SIP_ACCOUNTS">%s</xliff:g> au fost eliminate.\nConfirmați setarea prestabilită pentru apelare a contului."</string>
- <string name="sip_accounts_removed_notification_action" msgid="3772778402370555562">"Accesați setările"</string>
+ <string name="sip_accounts_removed_notification_message" msgid="1916856744869791592">"Platforma Android nu mai acceptă apelarea SIP.\nConturile tale SIP existente <xliff:g id="REMOVED_SIP_ACCOUNTS">%s</xliff:g> au fost eliminate.\nConfirmă setarea prestabilită pentru apelare a contului."</string>
+ <string name="sip_accounts_removed_notification_action" msgid="3772778402370555562">"Accesează setările"</string>
<string name="data_usage_title" msgid="8438592133893837464">"Date utilizate de aplicație"</string>
<string name="data_usage_template" msgid="6287906680674061783">"<xliff:g id="ID_1">%1$s</xliff:g> de date mobile utilizate în intervalul <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="advanced_options_title" msgid="9208195294513520934">"Avansate"</string>
@@ -304,11 +304,11 @@
<string name="keywords_carrier_settings_euicc" msgid="8540160967922063745">"operator, esim, sim, euicc, schimbare operatori, adăugare operator"</string>
<string name="carrier_settings_euicc_summary" msgid="2027941166597330117">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
<string name="mobile_data_settings_title" msgid="7228249980933944101">"Date mobile"</string>
- <string name="mobile_data_settings_summary" msgid="5012570152029118471">"Accesați datele folosind rețeaua mobilă"</string>
- <string name="data_usage_disable_mobile" msgid="5669109209055988308">"Dezactivați datele mobile?"</string>
- <string name="sim_selection_required_pref" msgid="6985901872978341314">"Selectați o opțiune"</string>
- <string name="sim_change_data_title" msgid="9142726786345906606">"Schimbați cartela SIM de date?"</string>
- <string name="sim_change_data_message" msgid="3567358694255933280">"Folosiți <xliff:g id="NEW_SIM">%1$s</xliff:g> în loc de <xliff:g id="OLD_SIM">%2$s</xliff:g> pentru datele mobile?"</string>
+ <string name="mobile_data_settings_summary" msgid="5012570152029118471">"Accesează datele folosind rețeaua mobilă"</string>
+ <string name="data_usage_disable_mobile" msgid="5669109209055988308">"Dezactivezi datele mobile?"</string>
+ <string name="sim_selection_required_pref" msgid="6985901872978341314">"Selectează o opțiune"</string>
+ <string name="sim_change_data_title" msgid="9142726786345906606">"Schimbi cartela SIM de date?"</string>
+ <string name="sim_change_data_message" msgid="3567358694255933280">"Folosești <xliff:g id="NEW_SIM">%1$s</xliff:g> în loc de <xliff:g id="OLD_SIM">%2$s</xliff:g> pentru datele mobile?"</string>
<string name="wifi_calling_settings_title" msgid="5800018845662016507">"Apelare prin Wi-Fi"</string>
<string name="video_calling_settings_title" msgid="342829454913266078">"Apelare video prin operator"</string>
<string name="gsm_umts_options" msgid="4968446771519376808">"Opțiuni GSM/UMTS"</string>
@@ -317,7 +317,7 @@
<string name="throttle_current_usage" msgid="7483859109708658613">"Datele utilizate în perioada curentă"</string>
<string name="throttle_time_frame" msgid="1813452485948918791">"Perioada de utilizare a datelor"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Politica ratei de transfer a datelor"</string>
- <string name="throttle_help" msgid="2624535757028809735">"Aflați mai multe"</string>
+ <string name="throttle_help" msgid="2624535757028809735">"Află mai multe"</string>
<string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) din <xliff:g id="USED_2">%3$s</xliff:g> perioada maximă\nUrmătoarea perioadă începe în <xliff:g id="USED_3">%4$d</xliff:g> zile (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) din <xliff:g id="USED_2">%3$s</xliff:g> perioadă maximă"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> maximum depășit\nRata de transfer se reduce la <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
@@ -355,7 +355,7 @@
<string name="international_enable" msgid="8943466745792690340">"Știri internaționale activate"</string>
<string name="international_disable" msgid="4803498658100318265">"Știri internaționale dezactivate"</string>
<string name="list_language_title" msgid="1850167908665485738">"Limbă"</string>
- <string name="list_language_summary" msgid="7921756070782277559">"Selectați limba pentru știri"</string>
+ <string name="list_language_summary" msgid="7921756070782277559">"Selectează limba pentru știri"</string>
<string-array name="list_language_entries">
<item msgid="2347238508726934281">"Engleză"</item>
<item msgid="5172468397620875174">"Franceză"</item>
@@ -415,15 +415,15 @@
<string name="network_lte" msgid="7206879277095094280">"LTE (recomandat)"</string>
<string name="network_4G" msgid="6800527815504223913">"4G (recomandat)"</string>
<string name="network_global" msgid="3289646154407617631">"Global"</string>
- <string name="cdma_system_select_title" msgid="614165233552656431">"Selectați sistemul"</string>
- <string name="cdma_system_select_summary" msgid="3840420390242060407">"Schimbați modul de roaming CDMA"</string>
- <string name="cdma_system_select_dialogtitle" msgid="5524639510676501802">"Selectați sistemul"</string>
+ <string name="cdma_system_select_title" msgid="614165233552656431">"Selectează sistemul"</string>
+ <string name="cdma_system_select_summary" msgid="3840420390242060407">"Schimbă modul de roaming CDMA"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="5524639510676501802">"Selectează sistemul"</string>
<string-array name="cdma_system_select_choices">
<item msgid="462340042928284921">"Doar domiciliu"</item>
<item msgid="6058010046783562674">"Automat"</item>
</string-array>
<string name="cdma_subscription_title" msgid="3449527179325589434">"Abonament CMDA"</string>
- <string name="cdma_subscription_summary" msgid="5681152534466169001">"Comutați între RUIM/SIM și NV"</string>
+ <string name="cdma_subscription_summary" msgid="5681152534466169001">"Treci între RUIM/SIM și NV"</string>
<string name="cdma_subscription_dialogtitle" msgid="8872086335839723980">"abonament"</string>
<string-array name="cdma_subscription_choices">
<item msgid="7989486897370727698">"RUIM/SIM"</item>
@@ -433,67 +433,67 @@
<item msgid="2953825013895327785">"0"</item>
<item msgid="7970797749269738435">"1"</item>
</string-array>
- <string name="cdma_activate_device" msgid="5914720276140097632">"Activați dispozitivul"</string>
- <string name="cdma_lte_data_service" msgid="359786441782404562">"Configurați serviciul de date"</string>
+ <string name="cdma_activate_device" msgid="5914720276140097632">"Activează dispozitivul"</string>
+ <string name="cdma_lte_data_service" msgid="359786441782404562">"Configurează serviciul de date"</string>
<string name="carrier_settings_title" msgid="6292869148169850220">"Setări operator"</string>
<string name="fdn" msgid="2545904344666098749">"Numere apeluri restricționate"</string>
<string name="fdn_with_label" msgid="6412087553365709494">"Numere pentru apeluri restricționate (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="manage_fdn_list" msgid="3341716430375195441">"Listă NAR"</string>
<string name="fdn_list_with_label" msgid="1409655283510382556">"Listă NAR (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
- <string name="fdn_activation" msgid="2178637004710435895">"Activați NAR"</string>
+ <string name="fdn_activation" msgid="2178637004710435895">"Activează NAR"</string>
<string name="fdn_enabled" msgid="7017355494808056447">"Numerele cu apelări restricționate sunt activate"</string>
<string name="fdn_disabled" msgid="6696468878037736600">"Numerele pentru apeluri restricționate sunt dezactivate"</string>
- <string name="enable_fdn" msgid="4830555730418033723">"Activați NAR"</string>
- <string name="disable_fdn" msgid="3918794950264647541">"Dezactivați NAR"</string>
- <string name="change_pin2" msgid="3110844547237754871">"Schimbați codul PIN2"</string>
- <string name="enable_fdn_ok" msgid="5080925177369329827">"Dezactivați NAR"</string>
- <string name="disable_fdn_ok" msgid="3745475926874838676">"Activați NAR"</string>
- <string name="sum_fdn" msgid="6152246141642323582">"Gestionați numerele cu apelări restricționate"</string>
- <string name="sum_fdn_change_pin" msgid="3510994280557335727">"Schimbați codul PIN pentru acces la NAR"</string>
- <string name="sum_fdn_manage_list" msgid="3311397063233992907">"Gestionați lista numerelor de telefon"</string>
+ <string name="enable_fdn" msgid="4830555730418033723">"Activează NAR"</string>
+ <string name="disable_fdn" msgid="3918794950264647541">"Dezactivează NAR"</string>
+ <string name="change_pin2" msgid="3110844547237754871">"Schimbă codul PIN2"</string>
+ <string name="enable_fdn_ok" msgid="5080925177369329827">"Dezactivează NAR"</string>
+ <string name="disable_fdn_ok" msgid="3745475926874838676">"Activează NAR"</string>
+ <string name="sum_fdn" msgid="6152246141642323582">"Gestionează numerele cu apelări restricționate"</string>
+ <string name="sum_fdn_change_pin" msgid="3510994280557335727">"Schimbă codul PIN pentru acces la NAR"</string>
+ <string name="sum_fdn_manage_list" msgid="3311397063233992907">"Gestionează lista numerelor de telefon"</string>
<string name="voice_privacy" msgid="7346935172372181951">"Confidențialitate voce"</string>
- <string name="voice_privacy_summary" msgid="3556460926168473346">"Activați modul avansat de confidențialitate"</string>
+ <string name="voice_privacy_summary" msgid="3556460926168473346">"Activează modul avansat de confidențialitate"</string>
<string name="tty_mode_option_title" msgid="3843817710032641703">"Mod TTY"</string>
- <string name="tty_mode_option_summary" msgid="4770510287236494371">"Setați modul TTY"</string>
+ <string name="tty_mode_option_summary" msgid="4770510287236494371">"Setează modul TTY"</string>
<string name="auto_retry_mode_title" msgid="2985801935424422340">"Reîncercare automată"</string>
- <string name="auto_retry_mode_summary" msgid="2863919925349511402">"Activați modul Reîncercare automată"</string>
+ <string name="auto_retry_mode_summary" msgid="2863919925349511402">"Activează modul Reîncercare automată"</string>
<string name="tty_mode_not_allowed_video_call" msgid="6551976083652752815">"Schimbarea modului TTY nu este permisă în timpul unui apel video"</string>
- <string name="menu_add" msgid="5616487894975773141">"Adăugați o persoană"</string>
- <string name="menu_edit" msgid="3593856941552460706">"Modificați informațiile despre persoana din agendă"</string>
- <string name="menu_delete" msgid="6326861853830546488">"Ștergeți persoana din agendă"</string>
- <string name="menu_dial" msgid="4178537318419450012">"Apelați persoana de contact"</string>
- <string name="get_pin2" msgid="4221654606863196332">"Introduceți codul PIN2"</string>
+ <string name="menu_add" msgid="5616487894975773141">"Adaugă o persoană"</string>
+ <string name="menu_edit" msgid="3593856941552460706">"Modifică informațiile despre persoana din agendă"</string>
+ <string name="menu_delete" msgid="6326861853830546488">"Șterge persoana din agendă"</string>
+ <string name="menu_dial" msgid="4178537318419450012">"Apelează persoana de contact"</string>
+ <string name="get_pin2" msgid="4221654606863196332">"Introdu codul PIN2"</string>
<string name="name" msgid="1347432469852527784">"Nume"</string>
<string name="number" msgid="1564053487748491000">"Număr"</string>
- <string name="save" msgid="983805790346099749">"Salvați"</string>
- <string name="add_fdn_contact" msgid="1169713422306640887">"Adăugați un număr cu apelări restricționate"</string>
+ <string name="save" msgid="983805790346099749">"Salvează"</string>
+ <string name="add_fdn_contact" msgid="1169713422306640887">"Adaugă un număr cu apelări restricționate"</string>
<string name="adding_fdn_contact" msgid="3112531600824361259">"Se adaugă numărul cu apelări restricționate..."</string>
<string name="fdn_contact_added" msgid="2840016151693394596">"Număr cu apelări restricționate adăugat."</string>
<string name="edit_fdn_contact" msgid="6030829994819587408">"Modificați numărul cu apelări restricționate"</string>
<string name="updating_fdn_contact" msgid="6989341376868227150">"Se actualizează numărul cu apelări restricționate..."</string>
<string name="fdn_contact_updated" msgid="6876330243323118937">"Număr cu apelări restricționate actualizat."</string>
- <string name="delete_fdn_contact" msgid="7027405651994507077">"Ștergeți numărul cu apelări restricționate"</string>
+ <string name="delete_fdn_contact" msgid="7027405651994507077">"Șterge numărul cu apelări restricționate"</string>
<string name="deleting_fdn_contact" msgid="6872320570844460428">"Se șterge numărul cu apelări restricționate..."</string>
<string name="fdn_contact_deleted" msgid="1680714996763848838">"Numărul cu apelări restricționate a fost șters."</string>
- <string name="pin2_invalid" msgid="2313954262684494442">"NAR nu a fost actualizat, deoarece ați introdus un cod PIN incorect."</string>
+ <string name="pin2_invalid" msgid="2313954262684494442">"NAR nu a fost actualizat, deoarece ai introdus un cod PIN incorect."</string>
<string name="fdn_invalid_number" msgid="9067189814657840439">"NAR nu a fost actualizat deoarece numărul depășește <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> cifre."</string>
<string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"NAR nu a fost actualizat. Codul PIN2 a fost incorect sau numărul de telefon a fost respins."</string>
<string name="fdn_failed" msgid="216592346853420250">"Operațiunea NAR nu a reușit."</string>
<string name="simContacts_emptyLoading" msgid="4989040293858675483">"Se citește de pe cardul SIM..."</string>
<string name="simContacts_empty" msgid="1135632055473689521">"Nicio persoană pe cardul SIM."</string>
- <string name="simContacts_title" msgid="2714029230160136647">"Selectați pentru import"</string>
- <string name="simContacts_airplaneMode" msgid="4654884030631503808">"Pentru a importa persoane de contact de pe cardul SIM, dezactivați modul Avion."</string>
- <string name="enable_pin" msgid="967674051730845376">"Activați/dezactivați codul PIN al cardului SIM"</string>
- <string name="change_pin" msgid="3657869530942905790">"Schimbați codul PIN pentru SIM"</string>
+ <string name="simContacts_title" msgid="2714029230160136647">"Selectează pentru import"</string>
+ <string name="simContacts_airplaneMode" msgid="4654884030631503808">"Pentru a importa persoane de contact de pe cardul SIM, dezactivează modul Avion."</string>
+ <string name="enable_pin" msgid="967674051730845376">"Activează/dezactivează codul PIN al cardului SIM"</string>
+ <string name="change_pin" msgid="3657869530942905790">"Schimbă codul PIN pentru SIM"</string>
<string name="enter_pin_text" msgid="3182311451978663356">"Codul PIN pentru cardul SIM:"</string>
<string name="oldPinLabel" msgid="8618515202411987721">"Codul PIN vechi"</string>
<string name="newPinLabel" msgid="3585899083055354732">"Cod PIN nou"</string>
- <string name="confirmPinLabel" msgid="7783531218662473778">"Confirmați noul cod PIN"</string>
- <string name="badPin" msgid="4549286285015892321">"Codul PIN vechi pe care l-ați introdus nu este corect. Încercați din nou."</string>
- <string name="mismatchPin" msgid="1467254768290323845">"Codurile PIN introduse nu se potrivesc. Încercați din nou."</string>
- <string name="invalidPin" msgid="7363723429414001979">"Introduceți un cod PIN alcătuit din 4 până la 8 cifre."</string>
- <string name="disable_sim_pin" msgid="3112303905548613752">"Ștergeți codul PIN pentru SIM"</string>
- <string name="enable_sim_pin" msgid="445461050748318980">"Setați codul PIN pentru SIM"</string>
+ <string name="confirmPinLabel" msgid="7783531218662473778">"Confirmă noul cod PIN"</string>
+ <string name="badPin" msgid="4549286285015892321">"Codul PIN vechi pe care l-ai introdus nu este corect. Încearcă din nou."</string>
+ <string name="mismatchPin" msgid="1467254768290323845">"Codurile PIN introduse nu se potrivesc. Încearcă din nou."</string>
+ <string name="invalidPin" msgid="7363723429414001979">"Introdu un cod PIN alcătuit din 4 până la 8 cifre."</string>
+ <string name="disable_sim_pin" msgid="3112303905548613752">"Șterge codul PIN pentru SIM"</string>
+ <string name="enable_sim_pin" msgid="445461050748318980">"Setează codul PIN pentru SIM"</string>
<string name="enable_in_progress" msgid="4135305985717272592">"Se setează codul PIN…"</string>
<string name="enable_pin_ok" msgid="2877428038280804256">"Cod PIN setat"</string>
<string name="disable_pin_ok" msgid="888505244389647754">"Cod PIN șters"</string>
@@ -503,19 +503,19 @@
<string name="enter_pin2_text" msgid="7266379426804295979">"PIN2"</string>
<string name="oldPin2Label" msgid="4648543187859997203">"Codul PIN2 vechi"</string>
<string name="newPin2Label" msgid="1840905981784453939">"Cod PIN2 nou"</string>
- <string name="confirmPin2Label" msgid="4336025914667593762">"Confirmați noul cod PIN2"</string>
- <string name="badPuk2" msgid="6438182906645832235">"Codul PUK2 nu este corect. Încercați din nou."</string>
- <string name="badPin2" msgid="2760917538643074635">"Vechiul cod PIN2 nu este corect. Încercați din nou."</string>
- <string name="mismatchPin2" msgid="4952718725266700631">"Codurile PIN2 nu se potrivesc. Încercați din nou."</string>
- <string name="invalidPin2" msgid="6467957903056379343">"Introduceți un cod PIN2 format din 4 până la 8 cifre."</string>
- <string name="invalidPuk2" msgid="713729511903849544">"Introduceți un cod PUK2 format din 8 cifre."</string>
+ <string name="confirmPin2Label" msgid="4336025914667593762">"Confirmă noul cod PIN2"</string>
+ <string name="badPuk2" msgid="6438182906645832235">"Codul PUK2 nu este corect. Încearcă din nou."</string>
+ <string name="badPin2" msgid="2760917538643074635">"Vechiul cod PIN2 nu este corect. Încearcă din nou."</string>
+ <string name="mismatchPin2" msgid="4952718725266700631">"Codurile PIN2 nu se potrivesc. Încearcă din nou."</string>
+ <string name="invalidPin2" msgid="6467957903056379343">"Introdu un cod PIN2 format din 4 până la 8 cifre."</string>
+ <string name="invalidPuk2" msgid="713729511903849544">"Introdu un cod PUK2 format din 8 cifre."</string>
<string name="pin2_changed" msgid="5710551850481287821">"Codul PIN2 a fost actualizat"</string>
- <string name="label_puk2_code" msgid="2852217004288085562">"Introduceți codul PUK2"</string>
- <string name="fdn_enable_puk2_requested" msgid="5793652792131588041">"Parola nu este corectă. Codul PIN2 a fost blocat. Pentru a încerca din nou, schimbați codul PIN2."</string>
- <string name="puk2_requested" msgid="6992374450720307514">"Parola nu este corectă. Cardul SIM a fost blocat. Introduceți codul PUK2."</string>
+ <string name="label_puk2_code" msgid="2852217004288085562">"Introdu codul PUK2"</string>
+ <string name="fdn_enable_puk2_requested" msgid="5793652792131588041">"Parola nu este corectă. Codul PIN2 a fost blocat. Pentru a încerca din nou, schimbă codul PIN2."</string>
+ <string name="puk2_requested" msgid="6992374450720307514">"Parola nu este corectă. Cardul SIM a fost blocat. Introdu codul PUK2."</string>
<string name="puk2_blocked" msgid="3131139031779319911">"Codul PUK2 este blocat definitiv."</string>
<string name="pin2_attempts" msgid="5625178102026453023">\n"V-au rămas <xliff:g id="NUMBER">%d</xliff:g> (de) încercări."</string>
- <string name="puk2_locked" msgid="6497760825455461057">"Blocat cu PUK2. Contactați furnizorul de servicii pentru a debloca."</string>
+ <string name="puk2_locked" msgid="6497760825455461057">"Blocat cu PUK2. Contactează furnizorul de servicii pentru a debloca."</string>
<string name="pin2_unblocked" msgid="4481107908727789303">"Codul PIN2 nu mai este blocat"</string>
<string name="pin2_error_exception" msgid="8116103864600823641">"Eroare de rețea sau de card SIM"</string>
<string name="doneButton" msgid="7371209609238460207">"Terminat"</string>
@@ -530,21 +530,21 @@
<string name="card_title_in_call" msgid="8231896539567594265">"În timpul apelului"</string>
<string name="notification_voicemail_title" msgid="3932876181831601351">"Mesaj vocal nou"</string>
<string name="notification_voicemail_title_count" msgid="2806950319222327082">"Mesaj vocal nou (<xliff:g id="COUNT">%d</xliff:g>)"</string>
- <string name="notification_voicemail_text_format" msgid="5720947141702312537">"Apelați <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+ <string name="notification_voicemail_text_format" msgid="5720947141702312537">"Apelează <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
<string name="notification_voicemail_no_vm_number" msgid="3423686009815186750">"Număr mesagerie vocală necunoscut"</string>
<string name="notification_network_selection_title" msgid="255595526707809121">"Fără serviciu"</string>
<string name="notification_network_selection_text" msgid="553288408722427659">"Rețeaua selectată (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nu este disponibilă"</string>
- <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Activați rețeaua mobilă, dezactivați modul avion sau modul de economisire a bateriei pentru a iniția un apel."</string>
- <string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Pentru a apela, dezactivați modul Avion."</string>
- <string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Pentru a apela, dezactivați modul Avion sau conectați-vă la o rețea wireless."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefonul este prea fierbinte"</b>\n\n"Nu se poate iniția apelul. Încercați din nou după ce telefonul se răcește.\n\nPuteți, totuși, să inițiați apeluri de urgență."</string>
- <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Ieșiți din modul de apelare inversă de urgență pentru a efectua un apel care nu este de urgență."</string>
+ <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Activează rețeaua mobilă, dezactivează modul avion sau modul de economisire a bateriei pentru a iniția un apel."</string>
+ <string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Pentru a apela, dezactivează modul Avion."</string>
+ <string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Pentru a apela, dezactivează modul Avion sau conectează-te la o rețea wireless."</string>
+ <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefonul este prea fierbinte"</b>\n\n"Nu se poate iniția apelul. Încearcă din nou după ce telefonul se răcește.\n\nPoți, totuși, să inițiezi apeluri de urgență."</string>
+ <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Ieși din modul de apelare inversă de urgență pentru a efectua un apel care nu este de urgență."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Neînregistrat în rețea."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Rețeaua mobilă nu este disponibilă."</string>
- <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Rețeaua mobilă nu este disponibilă. Pentru a apela, conectați-vă la o rețea wireless."</string>
- <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Pentru a apela, introduceți un număr valid."</string>
+ <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Rețeaua mobilă nu este disponibilă. Pentru a apela, conectează-te la o rețea wireless."</string>
+ <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Pentru a apela, introdu un număr valid."</string>
<string name="incall_error_call_failed" msgid="393508653582682539">"Apelul nu a fost inițiat."</string>
- <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Apelul nu poate fi inițiat în acest moment. Puteți lua legătura cu persoana respectivă trimițându-i un mesaj."</string>
+ <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Apelul nu poate fi inițiat în acest moment. Poți lua legătura cu persoana respectivă trimițându-i un mesaj."</string>
<string name="incall_error_supp_service_unknown" msgid="8751177117194592623">"Serviciul nu este compatibil"</string>
<string name="incall_error_supp_service_switch" msgid="5272822448189448479">"Apelurile nu pot fi comutate."</string>
<string name="incall_error_supp_service_resume" msgid="1276861499306817035">"Nu se poate relua apelul."</string>
@@ -554,50 +554,50 @@
<string name="incall_error_supp_service_reject" msgid="3044363092441655912">"Apelul nu poate fi respins."</string>
<string name="incall_error_supp_service_hangup" msgid="836524952243836735">"Apelurile nu pot fi eliberate."</string>
<string name="incall_error_supp_service_hold" msgid="8535056414643540997">"Apelurile nu pot fi puse în așteptare."</string>
- <string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"Pentru a apela, conectați-vă la o rețea wireless."</string>
- <string name="incall_error_promote_wfc" msgid="9164896813931363415">"Activați apelarea prin Wi-Fi pentru a iniția un apel."</string>
+ <string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"Pentru a apela, conectează-te la o rețea wireless."</string>
+ <string name="incall_error_promote_wfc" msgid="9164896813931363415">"Activează apelarea prin Wi-Fi pentru a iniția un apel."</string>
<string name="emergency_information_hint" msgid="9208897544917793012">"Informații în caz de urgență"</string>
<string name="emergency_information_owner_hint" msgid="6256909888049185316">"Proprietar"</string>
- <string name="emergency_information_confirm_hint" msgid="5109017615894918914">"Atingeți din nou pentru a vedea informațiile"</string>
+ <string name="emergency_information_confirm_hint" msgid="5109017615894918914">"Atinge din nou pentru a vedea informațiile"</string>
<string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"Apel de urgență"</string>
<string name="single_emergency_number_title" msgid="8413371079579067196">"Număr de urgență"</string>
<string name="numerous_emergency_numbers_title" msgid="8972398932506755510">"Numere de urgență"</string>
- <string name="emergency_call_shortcut_hint" msgid="1290485125107779500">"Atingeți din nou pentru a apela <xliff:g id="EMERGENCY_NUMBER">%s</xliff:g>"</string>
+ <string name="emergency_call_shortcut_hint" msgid="1290485125107779500">"Atinge din nou pentru a apela <xliff:g id="EMERGENCY_NUMBER">%s</xliff:g>"</string>
<string name="emergency_enable_radio_dialog_message" msgid="1695305158151408629">"Se activează semnalul radio..."</string>
<string name="emergency_enable_radio_dialog_retry" msgid="4329131876852608587">"Fără semnal. Se încearcă din nou..."</string>
<string name="radio_off_during_emergency_call" msgid="8011154134040481609">"Nu se poate intra în modul avion în timpul unui apel de urgență."</string>
<string name="dial_emergency_error" msgid="825822413209026039">"Nu se poate apela. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nu este un număr de urgență."</string>
- <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Nu se poate apela. Formați un număr de urgență."</string>
+ <string name="dial_emergency_empty_error" msgid="2785803395047793634">"Nu se poate apela. Formează un număr de urgență."</string>
<string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Apelurile de urgență nu sunt disponibile."</string>
<string name="pin_puk_system_user_only" msgid="1045147220686867922">"Numai proprietarul dispozitivului poate să introducă respectivele coduri PIN/PUK."</string>
<string name="police_type_description" msgid="2819533883972081757">"Poliție"</string>
<string name="ambulance_type_description" msgid="6798237503553180461">"Ambulanță"</string>
<string name="fire_type_description" msgid="6565200468934914930">"Pompieri"</string>
<string name="description_concat_format" msgid="2014471565101724088">"%1$s, %2$s"</string>
- <string name="dialerKeyboardHintText" msgid="1115266533703764049">"Utilizați tastatura pentru a forma"</string>
- <string name="onscreenHoldText" msgid="4025348842151665191">"Rețineți"</string>
+ <string name="dialerKeyboardHintText" msgid="1115266533703764049">"Utilizează tastatura pentru a forma"</string>
+ <string name="onscreenHoldText" msgid="4025348842151665191">"Reține"</string>
<string name="onscreenEndCallText" msgid="6138725377654842757">"Terminat"</string>
<string name="onscreenShowDialpadText" msgid="658465753816164079">"Tastatură numerică"</string>
- <string name="onscreenMuteText" msgid="5470306116733843621">"Dezactivați sunetul"</string>
- <string name="onscreenAddCallText" msgid="9075675082903611677">"Adăugați un apel"</string>
- <string name="onscreenMergeCallsText" msgid="3692389519611225407">"Îmbinați apelurile"</string>
- <string name="onscreenSwapCallsText" msgid="2682542150803377991">"Schimbați"</string>
- <string name="onscreenManageCallsText" msgid="1162047856081836469">"Gestionați apelurile"</string>
+ <string name="onscreenMuteText" msgid="5470306116733843621">"Dezactivează sunetul"</string>
+ <string name="onscreenAddCallText" msgid="9075675082903611677">"Adaugă un apel"</string>
+ <string name="onscreenMergeCallsText" msgid="3692389519611225407">"Îmbină apelurile"</string>
+ <string name="onscreenSwapCallsText" msgid="2682542150803377991">"Schimbă"</string>
+ <string name="onscreenManageCallsText" msgid="1162047856081836469">"Gestionează apelurile"</string>
<string name="onscreenManageConferenceText" msgid="4700574060601755137">"Gestion. conferința"</string>
<string name="onscreenAudioText" msgid="7224226735052019986">"Audio"</string>
<string name="onscreenVideoCallText" msgid="1743992456126258698">"Apel video"</string>
- <string name="importSimEntry" msgid="3892354284082689894">"Importați"</string>
- <string name="importAllSimEntries" msgid="2628391505643564007">"Importați-le pe toate"</string>
+ <string name="importSimEntry" msgid="3892354284082689894">"Importă"</string>
+ <string name="importAllSimEntries" msgid="2628391505643564007">"Importă-le pe toate"</string>
<string name="importingSimContacts" msgid="4995457122107888932">"Se importă persoanele din agenda de pe cardul SIM"</string>
- <string name="importToFDNfromContacts" msgid="5068664870738407341">"Importați din Agendă"</string>
+ <string name="importToFDNfromContacts" msgid="5068664870738407341">"Importă din Agendă"</string>
<string name="singleContactImportedMsg" msgid="3619804066300998934">"Persoana de contact a fost importată"</string>
<string name="failedToImportSingleContactMsg" msgid="228095510489830266">"Persoana de contact nu a fost importată"</string>
<string name="hac_mode_title" msgid="4127986689621125468">"Aparate auditive"</string>
- <string name="hac_mode_summary" msgid="7774989500136009881">"Activați compatibilitatea cu aparatele auditive"</string>
+ <string name="hac_mode_summary" msgid="7774989500136009881">"Activează compatibilitatea cu aparatele auditive"</string>
<string name="rtt_mode_title" msgid="3075948111362818043">"Apel de tipul Text în timp real (TTR)"</string>
- <string name="rtt_mode_summary" msgid="8631541375609989562">"Permiteți schimbul de mesaje în timpul unui apel vocal"</string>
- <string name="rtt_mode_more_information" msgid="587500128658756318">"TTR oferă asistență apelanților fără auz, cu deficiențe de auz, care au dizabilități de vorbire sau care au nevoie de mai mult decât de voce.<br> <a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>>Aflați mai multe</a>\n <br><br> - Apelurile RTT sunt salvate ca transcrierea unui mesaj\n <br> - Serviciul TTR nu este disponibil pentru apelurile video."</string>
- <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Notă: funcția TTR nu este disponibilă când sunteți în roaming"</string>
+ <string name="rtt_mode_summary" msgid="8631541375609989562">"Permite schimbul de mesaje în timpul unui apel vocal"</string>
+ <string name="rtt_mode_more_information" msgid="587500128658756318">"TTR oferă asistență apelanților fără auz, cu deficiențe de auz, care au dizabilități de vorbire sau care au nevoie de mai mult decât de voce.<br> <a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>>Află mai multe</a>\n <br><br> - Apelurile RTT sunt salvate ca transcrierea unui mesaj\n <br> - Serviciul TTR nu este disponibil pentru apelurile video."</string>
+ <string name="no_rtt_when_roaming" msgid="5268008247378355389">"Notă: funcția TTR nu este disponibilă când ești în roaming"</string>
<string-array name="tty_mode_entries">
<item msgid="3238070884803849303">"TTY dezactivat"</item>
<item msgid="1449091874731375214">"TTY integral"</item>
@@ -605,32 +605,32 @@
<item msgid="2131559553795606483">"TTY VCO"</item>
</string-array>
<string name="dtmf_tones_title" msgid="7874845461117175236">"Tonuri DTMF"</string>
- <string name="dtmf_tones_summary" msgid="2294822239899471201">"Setați lungimea tonurilor DTMF"</string>
+ <string name="dtmf_tones_summary" msgid="2294822239899471201">"Setează lungimea tonurilor DTMF"</string>
<string-array name="dtmf_tone_entries">
<item msgid="2271798469250155310">"Normală"</item>
<item msgid="6044210222666533564">"Lung"</item>
</string-array>
<string name="network_info_message" msgid="7599413947016532355">"Mesaj de rețea"</string>
<string name="network_error_message" msgid="4271579424089326618">"Mesaj de eroare"</string>
- <string name="ota_title_activate" msgid="4049645324841263423">"Activați-vă telefonul"</string>
- <string name="ota_touch_activate" msgid="838764494319694754">"Pentru a vă activa serviciul de telefonie, trebuie să efectuați un apel special. \n\nDupă ce apăsați „Activați”, ascultați instrucțiunile furnizate pentru a vă activa telefonul."</string>
+ <string name="ota_title_activate" msgid="4049645324841263423">"Activează-ți telefonul"</string>
+ <string name="ota_touch_activate" msgid="838764494319694754">"Pentru a-ți activa serviciul de telefonie, trebuie să efectuezi un apel special. \n\nDupă ce apeși „Activează”, ascultă instrucțiunile furnizate pentru a-ți activa telefonul."</string>
<string name="ota_hfa_activation_title" msgid="3300556778212729671">"Se activează..."</string>
- <string name="ota_hfa_activation_dialog_message" msgid="7921718445773342996">"Serviciul de date mobile este în curs de activare pe telefonul dvs.\n\nAcest proces poate dura până la 5 minute."</string>
- <string name="ota_skip_activation_dialog_title" msgid="7666611236789203797">"Omiteți activarea?"</string>
- <string name="ota_skip_activation_dialog_message" msgid="6691722887019708713">"Dacă omiteți activarea, nu puteți efectua apeluri și nici nu vă puteți conecta la o rețea de date mobilă (deși vă puteți conecta la rețele Wi-Fi). Până veți activa telefonul, vi se va solicita să-l activați de fiecare dată când îl porniți."</string>
- <string name="ota_skip_activation_dialog_skip_label" msgid="5908029466817825633">"Omiteți"</string>
- <string name="ota_activate" msgid="7939695753665438357">"Activați"</string>
+ <string name="ota_hfa_activation_dialog_message" msgid="7921718445773342996">"Serviciul de date mobile este în curs de activare pe telefonul tău.\n\nAcest proces poate dura până la 5 minute."</string>
+ <string name="ota_skip_activation_dialog_title" msgid="7666611236789203797">"Omiți activarea?"</string>
+ <string name="ota_skip_activation_dialog_message" msgid="6691722887019708713">"Dacă omiți activarea, nu poți efectua apeluri și nici nu te poți conecta la o rețea de date mobilă (deși te poți conecta la rețele Wi-Fi). Până vei activa telefonul, ți se va solicita să-l activezi de fiecare dată când îl pornești."</string>
+ <string name="ota_skip_activation_dialog_skip_label" msgid="5908029466817825633">"Omite"</string>
+ <string name="ota_activate" msgid="7939695753665438357">"Activează"</string>
<string name="ota_title_activate_success" msgid="1272135024761004889">"Telefonul este activat."</string>
<string name="ota_title_problem_with_activation" msgid="7019745985413368726">"Problemă de activare"</string>
- <string name="ota_listen" msgid="2772252405488894280">"Urmăriți instrucțiunile rostite până când veți auzi că activarea este finalizată."</string>
+ <string name="ota_listen" msgid="2772252405488894280">"Urmărește instrucțiunile rostite până când vei auzi că activarea este finalizată."</string>
<string name="ota_speaker" msgid="1086766980329820528">"Difuzor"</string>
<string name="ota_progress" msgid="8837259285255700132">"Se programează telefonul…"</string>
<string name="ota_failure" msgid="5674217489921481576">"Telefonul nu a putut fi programat"</string>
- <string name="ota_successful" msgid="1106825981548107774">"Telefonul dvs. este acum activat. Poate să dureze până la 15 minute până la pornirea serviciului."</string>
- <string name="ota_unsuccessful" msgid="8531037653803955754">"Telefonul dvs. nu s-a activat. \nVă recomandăm să găsiți o zonă cu acoperire mai bună (lângă fereastră sau afară). \n\nPentru mai multe opțiuni, încercați din nou sau apelați serviciul pentru clienți."</string>
+ <string name="ota_successful" msgid="1106825981548107774">"Telefonul tău este acum activat. Poate să dureze până la 15 minute până la pornirea serviciului."</string>
+ <string name="ota_unsuccessful" msgid="8531037653803955754">"Telefonul tău nu s-a activat. \nÎți recomandăm să găsești o zonă cu acoperire mai bună (lângă fereastră sau afară). \n\nPentru mai multe opțiuni, încearcă din nou sau apelează serviciul pentru clienți."</string>
<string name="ota_spc_failure" msgid="904092035241370080">"ERORI DE DEPĂȘIRE SPC"</string>
<string name="ota_call_end" msgid="8657746378290737034">"Înapoi"</string>
- <string name="ota_try_again" msgid="6914781945599998550">"Încercați din nou"</string>
+ <string name="ota_try_again" msgid="6914781945599998550">"Încearcă din nou"</string>
<string name="ota_next" msgid="2041016619313475914">"Înainte"</string>
<string name="ecm_exit_dialog" msgid="4200691880721429078">"EcmExitDialog"</string>
<string name="phone_entered_ecm_text" msgid="8431238297843035842">"S-a activat modul de apelare inversă de urgență"</string>
@@ -643,7 +643,7 @@
<string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Se iese din modul Apelare inversă de urgență"</string>
<string name="alert_dialog_yes" msgid="3532525979632841417">"Da"</string>
<string name="alert_dialog_no" msgid="1075632654085988420">"Nu"</string>
- <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Renunțați"</string>
+ <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Renunță"</string>
<string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Telefonul va fi în modul Apelare inversă de urgență"</string>
<string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Până la <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
<!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
@@ -657,17 +657,17 @@
<string name="selectContact" msgid="1527612842599767382">"selectarea unei persoane din agendă"</string>
<string name="not_voice_capable" msgid="2819996734252084253">"Apelarea vocală nu este acceptată"</string>
<string name="description_dial_button" msgid="8614631902795087259">"apelare"</string>
- <string name="description_dialpad_button" msgid="7395114120463883623">"afișați tastatura numerică"</string>
+ <string name="description_dialpad_button" msgid="7395114120463883623">"afișează tastatura numerică"</string>
<string name="pane_title_emergency_dialpad" msgid="3627372514638694401">"Tastatură pentru apeluri de urgență"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="6610414098912832120">"Mesagerie vocală vizuală"</string>
- <string name="voicemail_set_pin_dialog_title" msgid="7005128605986960003">"Setați codul PIN"</string>
- <string name="voicemail_change_pin_dialog_title" msgid="4633077715231764435">"Schimbați codul PIN"</string>
+ <string name="voicemail_set_pin_dialog_title" msgid="7005128605986960003">"Setează codul PIN"</string>
+ <string name="voicemail_change_pin_dialog_title" msgid="4633077715231764435">"Schimbă codul PIN"</string>
<string name="preference_category_ringtone" msgid="8787281191375434976">"Ton de apel și vibrare"</string>
<string name="pstn_connection_service_label" msgid="9200102709997537069">"Carduri SIM încorporate"</string>
- <string name="enable_video_calling_title" msgid="7246600931634161830">"Activați apelurile video"</string>
- <string name="enable_video_calling_dialog_msg" msgid="7141478720386203540">"Pentru a activa apelarea video, trebuie să activați Modul 4G LTE îmbunătățit în setările pentru rețea."</string>
+ <string name="enable_video_calling_title" msgid="7246600931634161830">"Activează apelurile video"</string>
+ <string name="enable_video_calling_dialog_msg" msgid="7141478720386203540">"Pentru a activa apelarea video, trebuie să activezi Modul 4G LTE îmbunătățit în setările pentru rețea."</string>
<string name="enable_video_calling_dialog_settings" msgid="8697890611305307110">"Setări de rețea"</string>
- <string name="enable_video_calling_dialog_close" msgid="4298929725917045270">"Închideți"</string>
+ <string name="enable_video_calling_dialog_close" msgid="4298929725917045270">"Închide"</string>
<string name="sim_label_emergency_calls" msgid="9078241989421522310">"Apeluri de urgență"</string>
<string name="sim_description_emergency_calls" msgid="5146872803938897296">"Numai apeluri de urgență"</string>
<string name="sim_description_default" msgid="7474671114363724971">"Cardul SIM, slotul: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
@@ -676,22 +676,22 @@
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Apel prin Wi-Fi"</string>
<string name="message_decode_error" msgid="1061856591500290887">"A apărut o eroare la decodificarea mesajului."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Un card SIM a activat serviciul și a actualizat funcțiile de roaming ale telefonului."</string>
- <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Prea multe apeluri active. Încheiați sau îmbinați apeluri existente înainte de a iniția unul nou."</string>
- <string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"Nu v-ați conectat. Inserați un card SIM valid."</string>
+ <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Prea multe apeluri active. Încheie sau îmbină apeluri existente înainte de a iniția unul nou."</string>
+ <string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"Nu te-ai conectat. Inserează un card SIM valid."</string>
<string name="callFailed_wifi_lost" msgid="1788036730589163141">"Conexiunea Wi-Fi s-a pierdut. Apelul a fost încheiat."</string>
<string name="dialFailed_low_battery" msgid="6857904237423407056">"Apelul video nu a putut fi inițiat din cauza epuizării bateriei."</string>
<string name="callFailed_low_battery" msgid="4056828320214416182">"Apelul video s-a încheiat din cauza epuizării bateriei."</string>
<string name="callFailed_emergency_call_over_wfc_not_available" msgid="5944309590693432042">"Apelurile de urgență inițiate prin apelarea prin Wi-Fi nu sunt disponibile în această locație."</string>
<string name="callFailed_wfc_service_not_available_in_this_location" msgid="3624536608369524988">"Apelarea prin Wi-fi nu este disponibilă în această locație."</string>
- <string name="change_pin_title" msgid="3564254326626797321">"Schimbați codul PIN pentru mesageria vocală"</string>
- <string name="change_pin_continue_label" msgid="5177011752453506371">"Continuați"</string>
- <string name="change_pin_cancel_label" msgid="2301711566758827936">"Anulați"</string>
+ <string name="change_pin_title" msgid="3564254326626797321">"Schimbă codul PIN pentru mesageria vocală"</string>
+ <string name="change_pin_continue_label" msgid="5177011752453506371">"Continuă"</string>
+ <string name="change_pin_cancel_label" msgid="2301711566758827936">"Anulează"</string>
<string name="change_pin_ok_label" msgid="6861082678817785330">"OK"</string>
- <string name="change_pin_enter_old_pin_header" msgid="853151335217594829">"Confirmați vechiul cod PIN"</string>
- <string name="change_pin_enter_old_pin_hint" msgid="8801292976275169367">"Introduceți codul PIN pentru mesageria vocală pentru a continua."</string>
- <string name="change_pin_enter_new_pin_header" msgid="4739465616733486118">"Setați un cod PIN nou"</string>
+ <string name="change_pin_enter_old_pin_header" msgid="853151335217594829">"Confirmă vechiul cod PIN"</string>
+ <string name="change_pin_enter_old_pin_hint" msgid="8801292976275169367">"Introdu codul PIN pentru mesageria vocală pentru a continua."</string>
+ <string name="change_pin_enter_new_pin_header" msgid="4739465616733486118">"Setează un cod PIN nou"</string>
<string name="change_pin_enter_new_pin_hint" msgid="2326038476516364210">"Codul PIN trebuie să aibă între <xliff:g id="MIN">%1$d</xliff:g> - <xliff:g id="MAX">%2$d</xliff:g> cifre."</string>
- <string name="change_pin_confirm_pin_header" msgid="2606303906320705726">"Confirmați codul PIN"</string>
+ <string name="change_pin_confirm_pin_header" msgid="2606303906320705726">"Confirmă codul PIN"</string>
<string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"Codurile PIN nu corespund"</string>
<string name="change_pin_succeeded" msgid="2504705600693014403">"Codul PIN pentru mesageria vocală a fost actualizat"</string>
<string name="change_pin_system_error" msgid="7772788809875146873">"Nu s-a putut seta codul PIN"</string>
@@ -699,21 +699,21 @@
<string name="mobile_data_status_roaming_turned_on_subtext" msgid="5615757897768777865">"Roamingul de date este activat."</string>
<string name="mobile_data_status_roaming_without_plan_subtext" msgid="6536671968072284677">"În prezent, se folosește roaming. Este necesar un abonament de date."</string>
<string name="mobile_data_status_roaming_with_plan_subtext" msgid="2576177169108123095">"În prezent, se folosește roaming. Abonamentul de date este activ."</string>
- <string name="mobile_data_status_no_plan_subtext" msgid="170331026419263657">"Ați epuizat abonamentul de date mobile."</string>
- <string name="mobile_data_activate_prepaid" msgid="4276738964416795596">"Ați epuizat abonamentul de date mobile."</string>
- <string name="mobile_data_activate_prepaid_summary" msgid="6846085278531605925">"Adăugați date mobile prin <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+ <string name="mobile_data_status_no_plan_subtext" msgid="170331026419263657">"Ai epuizat abonamentul de date mobile."</string>
+ <string name="mobile_data_activate_prepaid" msgid="4276738964416795596">"Ai epuizat abonamentul de date mobile."</string>
+ <string name="mobile_data_activate_prepaid_summary" msgid="6846085278531605925">"Adaugă date mobile prin <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
<string name="mobile_data_activate_roaming_plan" msgid="922290995866269366">"Niciun abonament de roaming"</string>
- <string name="mobile_data_activate_roaming_plan_summary" msgid="5379228493306235969">"Adăugați un abonament de roaming prin <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
- <string name="mobile_data_activate_footer" msgid="7895874069807204548">"Puteți adăuga un abonament de date mobile sau de roaming prin operatorul dvs., <xliff:g id="PROVIDER_NAME">%s</xliff:g>."</string>
- <string name="mobile_data_activate_diag_title" msgid="5401741936224757312">"Adăugați date?"</string>
- <string name="mobile_data_activate_diag_message" msgid="3527260988020415441">"Poate fi necesar să adăugați date prin <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
- <string name="mobile_data_activate_button" msgid="1139792516354374612">"ADĂUGAȚI DATE"</string>
- <string name="mobile_data_activate_cancel_button" msgid="3530174817572005860">"ANULAȚI"</string>
+ <string name="mobile_data_activate_roaming_plan_summary" msgid="5379228493306235969">"Adaugă un abonament de roaming prin <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+ <string name="mobile_data_activate_footer" msgid="7895874069807204548">"Poți adăuga un abonament de date mobile sau de roaming prin operatorul tău, <xliff:g id="PROVIDER_NAME">%s</xliff:g>."</string>
+ <string name="mobile_data_activate_diag_title" msgid="5401741936224757312">"Adaugi date?"</string>
+ <string name="mobile_data_activate_diag_message" msgid="3527260988020415441">"Poate fi necesar să adaugi date prin <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+ <string name="mobile_data_activate_button" msgid="1139792516354374612">"ADAUGĂ DATE"</string>
+ <string name="mobile_data_activate_cancel_button" msgid="3530174817572005860">"ANULEAZĂ"</string>
<string name="clh_card_title_call_ended_txt" msgid="5977978317527299698">"Apel încheiat"</string>
<string name="clh_callFailed_powerOff_txt" msgid="8279934912560765361">"Modul Avion este activat"</string>
<string name="clh_callFailed_simError_txt" msgid="5128538525762326413">"Nu se poate accesa cardul SIM"</string>
<string name="clh_incall_error_out_of_service_txt" msgid="2736010617446749869">"Rețeaua mobilă nu este disponibilă"</string>
- <string name="clh_callFailed_unassigned_number_txt" msgid="141967660286695682">"A apărut o problemă legată de numărul de telefon pe care încercați să-l apelați. Cod de eroare 1."</string>
+ <string name="clh_callFailed_unassigned_number_txt" msgid="141967660286695682">"A apărut o problemă legată de numărul de telefon pe care încerci să-l apelezi. Cod de eroare 1."</string>
<string name="clh_callFailed_no_route_to_destination_txt" msgid="4805015149822352308">"Nu s-a finalizat apelul. Cod de eroare 3."</string>
<string name="clh_callFailed_channel_unacceptable_txt" msgid="4062754579408613021">"Nu s-a finalizat apelul. Cod de eroare 6."</string>
<string name="clh_callFailed_operator_determined_barring_txt" msgid="4202077821465974286">"Nu s-a finalizat apelul. Cod de eroare 8."</string>
@@ -766,36 +766,36 @@
<string name="sum_call_barring_enabled" msgid="5184331188926370824">"Activat"</string>
<string name="sum_call_barring_disabled" msgid="5699448000600153096">"Dezactivat"</string>
<string name="call_barring_baoc" msgid="7400892586336429326">"Toate apelurile efectuate"</string>
- <string name="call_barring_baoc_enabled" msgid="3131509193386668182">"Dezactivați blocarea tuturor apelurilor efectuate?"</string>
- <string name="call_barring_baoc_disabled" msgid="8534224684091141509">"Blocați toate apelurile efectuate?"</string>
+ <string name="call_barring_baoc_enabled" msgid="3131509193386668182">"Dezactivezi blocarea tuturor apelurilor efectuate?"</string>
+ <string name="call_barring_baoc_disabled" msgid="8534224684091141509">"Blochezi toate apelurile efectuate?"</string>
<string name="call_barring_baoic" msgid="8668125428666851665">"Apeluri internaționale efectuate"</string>
- <string name="call_barring_baoic_enabled" msgid="1203758092657630123">"Dezactivați blocarea apelurilor internaționale efectuate?"</string>
- <string name="call_barring_baoic_disabled" msgid="5656889339002997449">"Blocați apelurile internaționale efectuate?"</string>
+ <string name="call_barring_baoic_enabled" msgid="1203758092657630123">"Dezactivezi blocarea apelurilor internaționale efectuate?"</string>
+ <string name="call_barring_baoic_disabled" msgid="5656889339002997449">"Blochezi apelurile internaționale efectuate?"</string>
<string name="call_barring_baoicr" msgid="8566167764432343487">"Roaming pentru apeluri internaționale efectuate"</string>
- <string name="call_barring_baoicr_enabled" msgid="1615324165512798478">"Dezactivați blocarea apelurilor internaționale efectuate prin roaming?"</string>
- <string name="call_barring_baoicr_disabled" msgid="172010175248142831">"Blocați apelurile internaționale efectuate prin roaming?"</string>
+ <string name="call_barring_baoicr_enabled" msgid="1615324165512798478">"Dezactivezi blocarea apelurilor internaționale efectuate prin roaming?"</string>
+ <string name="call_barring_baoicr_disabled" msgid="172010175248142831">"Blochează apelurile internaționale efectuate prin roaming?"</string>
<string name="call_barring_baic" msgid="7941393541678658566">"Toate primite"</string>
- <string name="call_barring_baic_enabled" msgid="4357332358020337470">"Dezactivați blocarea tuturor apelurilor primite?"</string>
- <string name="call_barring_baic_disabled" msgid="2355945245938240958">"Blocați toate apelurile primite?"</string>
+ <string name="call_barring_baic_enabled" msgid="4357332358020337470">"Dezactivezi blocarea tuturor apelurilor primite?"</string>
+ <string name="call_barring_baic_disabled" msgid="2355945245938240958">"Blochezi toate apelurile primite?"</string>
<string name="call_barring_baicr" msgid="8712249337313034226">"Roaming pentru apeluri internaționale primite"</string>
- <string name="call_barring_baicr_enabled" msgid="64774270234828175">"Dezactivați blocarea toate apelurile internaționale primite prin roaming?"</string>
- <string name="call_barring_baicr_disabled" msgid="3488129262744027262">"Blocați roamingul pentru apeluri internaționale primite?"</string>
- <string name="call_barring_deactivate_all" msgid="7837931580047157328">"Dezactivați tot"</string>
- <string name="call_barring_deactivate_all_description" msgid="4474119585042121604">"Dezactivați toate setările de restricționare a apelurilor"</string>
+ <string name="call_barring_baicr_enabled" msgid="64774270234828175">"Dezactivezi blocarea tuturor apelurilor internaționale primite prin roaming?"</string>
+ <string name="call_barring_baicr_disabled" msgid="3488129262744027262">"Blochează roamingul pentru apeluri internaționale primite?"</string>
+ <string name="call_barring_deactivate_all" msgid="7837931580047157328">"Dezactivează tot"</string>
+ <string name="call_barring_deactivate_all_description" msgid="4474119585042121604">"Dezactivează toate setările de restricționare a apelurilor"</string>
<string name="call_barring_deactivate_success" msgid="3545644320298275337">"Restricționarea apelurilor este dezactivată"</string>
- <string name="call_barring_change_pwd" msgid="1730691950940338387">"Schimbați parola"</string>
- <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Schimbați parola pentru restricționarea apelurilor"</string>
+ <string name="call_barring_change_pwd" msgid="1730691950940338387">"Schimbă parola"</string>
+ <string name="call_barring_change_pwd_description" msgid="1274245130382054227">"Schimbă parola pentru restricționarea apelurilor"</string>
<string name="call_barring_change_pwd_description_disabled" msgid="2911647051915343920">"Nu se poate schimba parola pentru restricționarea apelurilor"</string>
<string name="call_barring_pwd_not_match" msgid="7638198747579019826">"Parolele nu se potrivesc"</string>
- <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Introduceți o parolă cu 4 cifre"</string>
+ <string name="call_barring_right_pwd_number" msgid="3860630926460851330">"Introdu o parolă cu 4 cifre"</string>
<string name="call_barring_change_pwd_success" msgid="1837437691277936903">"Parola a fost modificată"</string>
<string name="call_barring_old_pwd" msgid="5500085633281388281">"Parolă veche"</string>
<string name="call_barring_new_pwd" msgid="2515524903813227732">"Parolă nouă"</string>
- <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmați parola"</string>
- <string name="messageCallBarring" msgid="5537730400652466912">"Introduceți parola"</string>
+ <string name="call_barring_confirm_pwd" msgid="7552526161616461858">"Confirmă parola"</string>
+ <string name="messageCallBarring" msgid="5537730400652466912">"Introdu parola"</string>
<string name="call_barring_settings" msgid="4616607285790258919">"Setări de restricționare a apelurilor"</string>
- <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Rețeaua este ocupată. Încercați să apelați din nou mai târziu."</string>
- <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Rețeaua este aglomerată. Contactați operatorul de telefonie mobilă pentru a cere asistență."</string>
+ <string name="callFailed_NetworkBusy" msgid="5437103975842913681">"Rețeaua este ocupată. Încearcă să apelezi din nou mai târziu."</string>
+ <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"Rețeaua este aglomerată. Contactează operatorul de telefonie mobilă pentru a cere asistență."</string>
<string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Apelul a fost deviat."</string>
<string name="supp_service_notification_call_forwarded" msgid="7102930311735433088">"Apelul a fost redirecționat."</string>
<string name="supp_service_notification_call_waiting" msgid="4577403881609445324">"Apelul este în așteptare."</string>
@@ -811,34 +811,36 @@
<string name="supp_service_call_resumed" msgid="3786864005920743546">"S-a reluat apelul."</string>
<string name="supp_service_deflected_call" msgid="7565979024562921707">"Apelul a fost deviat."</string>
<string name="supp_service_forwarded_call" msgid="6475776013771821457">"Apel redirecționat"</string>
- <string name="supp_service_conference_call" msgid="4004193534408317148">"Vă conectați la conferința telefonică."</string>
+ <string name="supp_service_conference_call" msgid="4004193534408317148">"Te conectezi la conferința telefonică."</string>
<string name="supp_service_held_call_released" msgid="2847835124639112410">"Apelul în așteptare a fost deconectat."</string>
<string name="callFailed_otasp_provisioning_in_process" msgid="3345666183602879326">"Nu se poate iniția un apel, deoarece, momentan, are loc provizionarea dispozitivului."</string>
<string name="callFailed_already_dialing" msgid="7250591188960691086">"Nu se poate iniția un apel când se efectuează deja alt apel."</string>
- <string name="callFailed_already_ringing" msgid="2376603543544289303">"Nu se poate iniția un apel când primiți un apel la care nu ați răspuns. Răspundeți sau respingeți apelul primit înainte de a iniția un apel nou."</string>
+ <string name="callFailed_already_ringing" msgid="2376603543544289303">"Nu se poate iniția un apel când primești un apel la care nu ai răspuns. Răspunde sau respinge apelul primit înainte de a iniția un apel nou."</string>
<string name="callFailed_calling_disabled" msgid="5010992739401206283">"Nu se poate iniția un apel deoarece apelarea a fost dezactivată folosindu-se funcția de sistem ro.telephony.disable-call."</string>
- <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Nu se poate iniția un apel când există deja două apeluri în desfășurare. Deconectați unul dintre ele sau îmbinați-le într-o conferință înainte de a iniția un apel nou."</string>
- <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%s</xliff:g>, datele mobile trebuie să fie activate. Puteți modifica acest lucru în setările rețelei mobile."</string>
- <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%s</xliff:g>, datele mobile și roamingul de date trebuie să fie activate. Puteți modifica acest lucru în setările rețelei mobile."</string>
- <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, datele mobile trebuie să fie activate pentru cardul SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puteți modifica acest lucru în setările rețelei mobile."</string>
- <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, datele mobile și roamingul de date trebuie să fie activate pentru cardul SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puteți modifica acest lucru în setările rețelei mobile."</string>
- <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Închideți"</string>
- <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Activați conexiunea de date"</string>
- <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Dezactivați conexiunea de date"</string>
+ <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Nu se poate iniția un apel când există deja două apeluri în desfășurare. Deconectează unul dintre ele sau îmbină-le într-o conferință înainte de a iniția un apel nou."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%s</xliff:g>, datele mobile trebuie să fie activate. Poți modifica acest lucru în setările rețelei mobile."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%s</xliff:g>, datele mobile și roamingul de date trebuie să fie activate. Poți modifica acest lucru în setările rețelei mobile."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, datele mobile trebuie să fie activate pentru cardul SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Poți modifica acest lucru în setările rețelei mobile."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, datele mobile și roamingul de date trebuie să fie activate pentru cardul SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Poți modifica acest lucru în setările rețelei mobile."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Închide"</string>
+ <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Activează conexiunea de date"</string>
+ <string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Dezactivează conexiunea de date"</string>
<string name="volte_provisioned_switch_string" msgid="4812874990480336178">"Oferit de VoLTE"</string>
<string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Apelarea video este configurată"</string>
<string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Apelarea prin Wi-Fi este configurată"</string>
<string name="eab_provisioned_switch_string" msgid="4449676720736033035">"Setări configurate pentru EAB/prezență"</string>
<string name="cbrs_data_switch_string" msgid="6060356430838077653">"Date CBRS"</string>
- <string name="dsds_switch_string" msgid="7564769822086764796">"Activați DSDS"</string>
- <string name="dsds_dialog_title" msgid="8494569893941847575">"Reporniți dispozitivul?"</string>
- <string name="dsds_dialog_message" msgid="4047480385678538850">"Trebuie să reporniți dispozitivul pentru a modifica setarea."</string>
- <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reporniți"</string>
- <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Anulați"</string>
+ <string name="dsds_switch_string" msgid="7564769822086764796">"Activează DSDS"</string>
+ <string name="dsds_dialog_title" msgid="8494569893941847575">"Repornești dispozitivul?"</string>
+ <string name="dsds_dialog_message" msgid="4047480385678538850">"Trebuie să repornești dispozitivul pentru a modifica setarea."</string>
+ <string name="dsds_dialog_confirm" msgid="9032004888134129885">"Repornește"</string>
+ <string name="dsds_dialog_cancel" msgid="3245958947099586655">"Anulează"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Setează cartela eSIM portabilă drept prestabilită"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Alimentare radio celular"</string>
- <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Afișați agenda de pe SIM"</string>
- <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Afișați numerele pentru apeluri restricționate"</string>
- <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Vedeți numere de apelare de serviciu"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulează modul în afara ariei de acoperire (numai în versiunea pentru remedierea erorilor)"</string>
+ <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Afișează agenda de pe SIM"</string>
+ <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Afișează numerele pentru apeluri restricționate"</string>
+ <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Vezi numere de apelare de serviciu"</string>
<string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"Starea serviciului IMS"</string>
<string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"Stare IMS"</string>
<string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Înregistrat"</string>
@@ -886,39 +888,36 @@
<string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"Date trimise:"</string>
<string name="radio_info_message_waiting_label" msgid="1886549432566952078">"Mesaj în așteptare:"</string>
<string name="radio_info_phone_number_label" msgid="2533852539562512203">"Număr de telefon:"</string>
- <string name="radio_info_band_mode_label" msgid="23480556225515290">"Selectați banda radio"</string>
+ <string name="radio_info_band_mode_label" msgid="23480556225515290">"Selectează banda radio"</string>
<string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Tipul rețelei de voce:"</string>
<string name="radio_info_data_network_type_label" msgid="8886597029237501929">"Tipul rețelei de date:"</string>
- <string name="radio_info_override_network_type_label" msgid="4176280017221092005">"Modificați tipul de rețea:"</string>
- <string name="phone_index_label" msgid="6222406512768964268">"Selectați indexul telefonului"</string>
+ <string name="radio_info_override_network_type_label" msgid="4176280017221092005">"Modifică tipul de rețea:"</string>
+ <string name="phone_index_label" msgid="6222406512768964268">"Selectează indexul telefonului"</string>
<string name="radio_info_set_perferred_label" msgid="7408131389363136210">"Setați tipul preferat de rețea:"</string>
- <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Dați ping adresei IPv4 a numelui de gazdă (www.google.com):"</string>
- <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Dați ping adresei IPv6 a numelui de gazdă (www.google.com):"</string>
+ <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"Dă ping adresei IPv4 a numelui de gazdă (www.google.com):"</string>
+ <string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"Dă ping adresei IPv6 a numelui de gazdă (www.google.com):"</string>
<string name="radio_info_http_client_test" msgid="1329583721088428238">"Test client HTTP:"</string>
- <string name="ping_test_label" msgid="448617502935719694">"Efectuați testul de ping"</string>
+ <string name="ping_test_label" msgid="448617502935719694">"Efectuează testul de ping"</string>
<string name="radio_info_smsc_label" msgid="3749927072726033763">"SMSC:"</string>
- <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Actualizați"</string>
- <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Actualizați"</string>
- <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Activați/dezactivați verificarea DNS"</string>
+ <string name="radio_info_smsc_update_label" msgid="5141996256097115753">"Actualizează"</string>
+ <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Actualizează"</string>
+ <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"Activează/dezactivează verificarea DNS"</string>
<string name="oem_radio_info_label" msgid="2914167475119997456">"Informații/Setări caracteristice OEM"</string>
<string name="radio_info_endc_available" msgid="2983767110681230019">"Disponibil EN-DC (NSA):"</string>
<string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"Restricționat DCNR (NSA):"</string>
<string name="radio_info_nr_available" msgid="3383388088451237182">"Disponibil NR (NSA):"</string>
<string name="radio_info_nr_state" msgid="4158805093187555149">"Stare NR (NSA):"</string>
<string name="radio_info_nr_frequency" msgid="1201156032796584128">"Frecvență NR:"</string>
- <string name="band_mode_title" msgid="7988822920724576842">"Setați Modul bandă radio"</string>
+ <string name="band_mode_title" msgid="7988822920724576842">"Setează Modul bandă radio"</string>
<string name="band_mode_loading" msgid="795923726636735967">"Se încarcă lista de benzi…"</string>
- <string name="band_mode_set" msgid="6657819412803771421">"Setați"</string>
+ <string name="band_mode_set" msgid="6657819412803771421">"Setează"</string>
<string name="band_mode_failed" msgid="1707488541847192924">"Nereușit"</string>
<string name="band_mode_succeeded" msgid="2230018000534761063">"Reușit"</string>
<string name="phone_info_label" product="tablet" msgid="7477478709388477397">"Informații tabletă"</string>
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Informații despre telefon"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Informații despre provizionarea operatorului"</string>
- <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Declanșați provizionarea operatorului"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Cod pentru dreptul de acces WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Actualizați"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Actualizați"</string>
- <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Semnalul Bluetooth este slab. Încercați să folosiți difuzorul."</string>
+ <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Declanșează provizionarea operatorului"</string>
+ <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Semnalul Bluetooth este slab. Încearcă să folosești difuzorul."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Notificare privind calitatea apelului"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Conturi SIP învechite"</string>
</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 7353539..9df5817 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -670,7 +670,7 @@
<string name="enable_video_calling_dialog_close" msgid="4298929725917045270">"Закрыть"</string>
<string name="sim_label_emergency_calls" msgid="9078241989421522310">"Экстренные вызовы"</string>
<string name="sim_description_emergency_calls" msgid="5146872803938897296">"Только экстренные вызовы"</string>
- <string name="sim_description_default" msgid="7474671114363724971">"SIM-карта, слот: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
+ <string name="sim_description_default" msgid="7474671114363724971">"SIM-карта <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Специальные возможности"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Вызов по Wi-Fi от"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi-звонок"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Чтобы изменить эту настройку, перезапустите устройство."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Перезапустить"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Отмена"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Установить съемную eSIM-карту в качестве используемой по умолчанию"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Мощность радиосигнала"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Моделирование нахождения вне зоны обслуживания (только отладочная сборка)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Посмотреть адресную книгу на SIM-карте"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Список разрешенных номеров"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Посмотреть номера служебного набора"</string>
@@ -915,12 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Информация о телефоне"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Сведения о синхронизации оператора"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Запустить синхронизацию оператора"</string>
- <!-- no translation found for provisioning_info_wfc_entitlement_id (8845188780811890910) -->
- <skip />
- <!-- no translation found for update_provisioning_info_wfc_entitlement_id (7044171908781134221) -->
- <skip />
- <!-- no translation found for refresh_provisioning_info_wfc_entitlement_id (738894335351353407) -->
- <skip />
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Слабый сигнал Bluetooth. Попробуйте переключиться на громкую связь."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Уведомление о качестве связи"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Неподдерживаемые SIP-аккаунты"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 2d387f4..97b09d7 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"මෙම සැකසීම වෙනස් කිරීමට ඔබ ඔබේ උපාංගය යළි ඇරඹීමට අවශ්යයි."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"යළි අරඹන්න"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"අවලංගු කරන්න"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"ඉවත් කළ හැකි eSIM පෙරනිමිය ලෙස සකසන්න"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"ජංගම රේඩියෝ බලය"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"සේවයෙන් බැහැරව අනුකරණය කරන්න (නිදොස් තැනුම පමණි)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM ලිපින පොත බලන්න"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ස්ථාවර ඇමතුම් අංක පෙන්වන්න"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"සේවා ඩයල් කිරීමේ අංක පෙන්වන්න"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"දුරකථන තොරතුරු"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"වාහක ප්රතිපාදන තතු"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"උත්ප්රේරක වාහක ප්රතිපාදන"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC හිමිකම් ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"යාවත්කාලීන කරන්න"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"නැවුම් කරන්න"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"ඔබේ බ්ලූටූත් සංඥාව දුර්වලයි. ස්පීකර් දුරකථනයට මාරු වීමට උත්සාහ කරන්න."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"ඇමතුම් ගුණත්ව දැනුම්දීම"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"අතහැර දැමූ SIP ගිණුම්"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index f4b13e7..b084876 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Ak chcete zmeniť nastavenie, musíte reštartovať zariadenie."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Reštartovať"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Zrušiť"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Nastaviť odoberateľnú eSIM kartu ako predvolenú"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Sila signálu GSM"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulácia nefungujúceho zariadenia (možné iba v ladiacej zostave)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Zobraziť adresár SIM karty"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Zobraziť povolené čísla"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Zobraziť čísla volaní služieb"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Informácie o telefóne"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Informácie o poskytovaní služieb operátorom"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Spustiť poskytovanie služieb operátorom"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Identifikátor oprávnenia služby WFC"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Aktualizovať"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Obnoviť"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Signál Bluetooth je slabý. Skúste prepnúť na reproduktor."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Upozornenie o kvalite hovoru"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Účty SIP s ukončenou podporou"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 89ca6d5..ff14a87 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Če želite spremeniti to nastavitev, znova zaženite napravo."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Vnovičen zagon"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Prekliči"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Nastavi izmenljivo kartico e-SIM kot privzeto"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Moč radia mobilne naprave"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulacija nedelovanja (samo za gradnjo za odpravljanje napak)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži imenik na kartici SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži številke za zaporo odhodnih klicev"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži številke za klicanje storitev"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacije o telefonu"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Podatki o omogočanju uporabe operaterja"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Sproži omogočanje uporabe operaterja"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID upravičenosti za WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Posodobi"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Osveži"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Signal povezave Bluetooth je šibek. Poskusite preklopiti na zvočnik."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Obvestilo o kakovosti klica"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Opuščeni računi SIP"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 11fa7a9..6866372 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -631,7 +631,7 @@
<string name="ota_spc_failure" msgid="904092035241370080">"DËSHTIME TË SHUMTA SPC"</string>
<string name="ota_call_end" msgid="8657746378290737034">"Prapa"</string>
<string name="ota_try_again" msgid="6914781945599998550">"Provo sërish"</string>
- <string name="ota_next" msgid="2041016619313475914">"Përpara"</string>
+ <string name="ota_next" msgid="2041016619313475914">"Para"</string>
<string name="ecm_exit_dialog" msgid="4200691880721429078">"EcmExitDialog"</string>
<string name="phone_entered_ecm_text" msgid="8431238297843035842">"Hyri në modalitetin e \"Kthimit të telefonatës së urgjencës\""</string>
<string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Modaliteti i \"Kthimit të telefonatës së urgjencës\""</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Duhet të rinisësh pajisjen tënde për të ndryshuar këtë cilësim."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Rinis"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Anulo"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Caktoje kartën e lëvizshme eSIM si të parazgjedhur"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Fuqia e radios së rrjetit celular"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulo gjendjen jashtë shërbimit (vetëm versioni i korrigjimit)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Shiko librin e adresave të kartës SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Shiko numrat me telefonim të përzgjedhur"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Shiko numrat e telefonit të shërbimit"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Informacioni i telefonit"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Informacionet e përgatitjes së operatorit celular"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktivizo përgatitjen e operatorit celular"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID-ja e të drejtës për WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Përditëso"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Rifresko"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Sinjali i Bluetooth-it është i dobët. Provo të kalosh te altoparlanti."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Njoftim për cilësinë e telefonatës"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Llogaritë e zhvlerësuara SIP"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index aefc325..5a409f1 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -305,7 +305,7 @@
<string name="carrier_settings_euicc_summary" msgid="2027941166597330117">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
<string name="mobile_data_settings_title" msgid="7228249980933944101">"Мобилни подаци"</string>
<string name="mobile_data_settings_summary" msgid="5012570152029118471">"Користи податке преко мобилне мреже"</string>
- <string name="data_usage_disable_mobile" msgid="5669109209055988308">"Желите ли да искључите мобилне податке?"</string>
+ <string name="data_usage_disable_mobile" msgid="5669109209055988308">"Желите да искључите мобилне податке?"</string>
<string name="sim_selection_required_pref" msgid="6985901872978341314">"Потребно је да изаберете нешто"</string>
<string name="sim_change_data_title" msgid="9142726786345906606">"Да променимо SIM за податке?"</string>
<string name="sim_change_data_message" msgid="3567358694255933280">"Желите ли да за мобилне податке користите <xliff:g id="NEW_SIM">%1$s</xliff:g> уместо <xliff:g id="OLD_SIM">%2$s</xliff:g>?"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Треба да рестартујте уређај да бисте променили ово подешавање."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Рестартуј"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Откажи"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Подеси преносиви eSIM као подразумевани"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Напајање за радио на мобилним уређајима"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Симулација не функционише (само верзија са отклоњеним грешкама)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Прикажи адресар SIM-а"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Прикажи бројеве за фиксно бирање"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Прикажи бројеве за сервисно бирање"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Информације о телефону"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Информације о додели мобилног оператера"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Покретање доделе мобилног оператера"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ИД права на WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Ажурирај"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Освежи"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth сигнал је слаб. Пробајте да пређете на спикерфон."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Обавештење о квалитету позива"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Застарели SIP налози"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 9c9f495..f64d1bc 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Du måste starta om enheten för att ändra den här inställningen."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Starta om"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Avbryt"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Ställ in Flyttbart eSIM som standard"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Strömförsörjning för mobilradio"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Simulera ur funktion (endast felsökningsversion)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Visa SIM-adressbok"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Visa Fasta nummer"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Visa tjänstenummer"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefoninformation"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Information om operatörsadministration"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Aktivera operatörsadministration"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC-berättigande-ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Uppdatera"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Uppdatera"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Svag Bluetooth-signal. Försök med att växla till högtalartelefon."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Avisering om samtalskvalitet"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Utfasade SIP-konton"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index c2db54a..849691e 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Unahitaji kuzima kifaa chako na ukiwashe tena ili ubadilishe mipangilio hii."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Zima kisha uwashe"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Ghairi"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Weka eSIM Inayoweza Kuondolewa kama Chaguomsingi"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Nishati ya Redio ya Vifaa vya Mkononi"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Kifaa cha Kuiga Hakifanyi Kazi (Muundo wa Utatuzi pekee)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Angalia Kitabu cha Anwani katika SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ona Nambari za Simu Zilizobainishwa"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Angalia Nambari Zilizowekwa na Mtoa Huduma"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Maelezo ya simu"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Maelezo ya Utaratibu wa Kutayarisha Mtandao"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Anzisha Utaratibu wa Kutayarisha Mtandao"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Kitambulisho cha Idhini ya WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Sasisha"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Onyesha upya"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Muunganisho wako wa bluetooth ni dhaifu. Jaribu kubadilisha ili utumie spika ya simu."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Arifa ya Ubora wa Simu"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Akaunti za SIP ambazo zimefungwa"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 5da0add..c782c0f 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"இந்த அமைப்பை மாற்ற சாதனத்தை மீண்டும் தொடங்க வேண்டும்."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"மீண்டும் தொடங்கு"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"ரத்துசெய்"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"அகற்றக்கூடிய eSIMமை இயல்பாக அமை"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"மொபைல் ரேடியோ பவர்"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"சாதனம் \'வேலை செய்யவில்லை\' என்பதை சிமுலேட் செய்தல் (பிழைதிருத்தப் பதிப்பில் மட்டும்)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"சிம் முகவரிப் புத்தகத்தைக் காட்டு"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"நிலையான அழைப்பு எண்களைக் காட்டு"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"சேவை அழைப்பு எண்களைக் காட்டு"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"மொபைலின் தகவல்"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Carrier Provisioning Info"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Trigger Carrier Provisioning"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC உரிமை வழங்கல் ஐடி:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"புதுப்பி"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ரெஃப்ரெஷ் செய்"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"புளூடூத் சிக்னல் வலுவற்றதாக உள்ளது. ஸ்பீக்கர் ஃபோனிற்கு மாற்றவும்."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"அழைப்பின் தரம் தொடர்பான அறிவிப்பு"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"நிறுத்தப்பட்ட SIP கணக்குகள்"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index ccb1a5a..85a8ded 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -47,12 +47,12 @@
<string name="no_vm_number" msgid="6623853880546176930">"వాయిస్ మెయిల్ నంబర్ లేదు"</string>
<string name="no_vm_number_msg" msgid="5165161462411372504">"సిమ్ కార్డులో వాయిస్ మెయిల్ నంబర్ ఏదీ నిల్వ చేయబడలేదు."</string>
<string name="add_vm_number_str" msgid="7368168964435881637">"నంబర్ను జోడించు"</string>
- <string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"వాయిస్ మెయిల్ సెట్టింగ్లను ప్రాథమిక వినియోగదారు మాత్రమే సవరించగలరు."</string>
+ <string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"వాయిస్ మెయిల్ సెట్టింగ్లను ప్రాథమిక వినియోగదారు మాత్రమే ఎడిట్ చేయగలరు."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"మీ SIM కార్డు అన్బ్లాక్ చేయబడింది. మీ ఫోన్ అన్లాక్ చేయబడుతోంది…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM నెట్వర్క్ అన్లాక్ పిన్"</string>
<string name="label_phoneid" msgid="8775611434123577808">"ఈ ఆపరేటర్కు సంబంధించి SIM లాక్ చేయబడింది"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"అన్లాక్ చేయి"</string>
- <string name="sim_ndp_dismiss_text" msgid="89667342248929777">"తీసివేయి"</string>
+ <string name="sim_ndp_dismiss_text" msgid="89667342248929777">"తీసివేయండి"</string>
<string name="requesting_unlock" msgid="930512210309437741">"నెట్వర్క్ అన్లాక్ను అభ్యర్థిస్తోంది…"</string>
<string name="unlock_failed" msgid="7103543844840661366">"నెట్వర్క్ అన్లాక్ రిక్వెస్ట్ విఫలమైంది."</string>
<string name="unlock_success" msgid="32681089371067565">"నెట్వర్క్ అన్లాక్ విజయవంతమైంది."</string>
@@ -105,23 +105,23 @@
<string name="labelCF" msgid="3578719437928476078">"కాల్ ఫార్వార్డింగ్"</string>
<string name="labelCFU" msgid="8870170873036279706">"ఎల్లప్పుడూ ఫార్వర్డ్ చేయి"</string>
<string name="messageCFU" msgid="1361806450979589744">"ఎల్లప్పుడూ ఈ నంబర్ను ఉపయోగించు"</string>
- <string name="sum_cfu_enabled_indicator" msgid="9030139213402432776">"అన్ని కాల్స్ను ఫార్వార్డ్ చేస్తోంది"</string>
- <string name="sum_cfu_enabled" msgid="5806923046528144526">"అన్ని కాల్స్ను <xliff:g id="PHONENUMBER">{0}</xliff:g>కి ఫార్వార్డ్ చేస్తోంది"</string>
+ <string name="sum_cfu_enabled_indicator" msgid="9030139213402432776">"అన్ని కాల్స్ను ఫార్వర్డ్ చేస్తోంది"</string>
+ <string name="sum_cfu_enabled" msgid="5806923046528144526">"అన్ని కాల్స్ను <xliff:g id="PHONENUMBER">{0}</xliff:g>కి ఫార్వర్డ్ చేస్తోంది"</string>
<string name="sum_cfu_enabled_no_number" msgid="7287752761743377930">"నంబర్ అందుబాటులో లేదు"</string>
<string name="sum_cfu_disabled" msgid="5010617134210809853">"ఆఫ్లో ఉంది"</string>
<string name="labelCFB" msgid="615265213360512768">"బిజీగా ఉన్నప్పుడు"</string>
<string name="messageCFB" msgid="1958017270393563388">"బిజీగా ఉన్నప్పుడు ఫార్వర్డ్ చేయాల్సిన నంబర్"</string>
- <string name="sum_cfb_enabled" msgid="332037613072049492">"<xliff:g id="PHONENUMBER">{0}</xliff:g>కి ఫార్వార్డ్ చేస్తోంది"</string>
+ <string name="sum_cfb_enabled" msgid="332037613072049492">"<xliff:g id="PHONENUMBER">{0}</xliff:g>కి ఫార్వర్డ్ చేస్తోంది"</string>
<string name="sum_cfb_disabled" msgid="3589913334164866035">"ఆఫ్లో ఉంది"</string>
<string name="disable_cfb_forbidden" msgid="4831494744351633961">"మీ ఫోన్ బిజీగా ఉన్నప్పుడు కాల్ ఫార్వర్డింగ్ను నిలిపివేయడానికి మీ ఆపరేటర్ మద్దతు ఇవ్వరు."</string>
<string name="labelCFNRy" msgid="3403533792248457946">"సమాధానం ఇవ్వనప్పుడు"</string>
<string name="messageCFNRy" msgid="7644434155765359009">"సమాధానం ఇవ్వనప్పుడు నంబర్"</string>
- <string name="sum_cfnry_enabled" msgid="3000500837493854799">"<xliff:g id="PHONENUMBER">{0}</xliff:g>కి ఫార్వార్డ్ చేస్తోంది"</string>
+ <string name="sum_cfnry_enabled" msgid="3000500837493854799">"<xliff:g id="PHONENUMBER">{0}</xliff:g>కి ఫార్వర్డ్ చేస్తోంది"</string>
<string name="sum_cfnry_disabled" msgid="1990563512406017880">"ఆఫ్లో ఉంది"</string>
<string name="disable_cfnry_forbidden" msgid="3174731413216550689">"మీ ఫోన్ సమాధానం ఇవ్వలేనప్పుడు కాల్ ఫార్వర్డింగ్ను నిలిపివేయడానికి మీ ఆపరేటర్ మద్దతు ఇవ్వరు."</string>
<string name="labelCFNRc" msgid="4163399350778066013">"చేరుకోలేనప్పుడు"</string>
<string name="messageCFNRc" msgid="6980340731313007250">"చేరుకోవడం సాధ్యపడనప్పుడు నంబర్"</string>
- <string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g>కి ఫార్వార్డ్ చేస్తోంది"</string>
+ <string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g>కి ఫార్వర్డ్ చేస్తోంది"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"ఆఫ్లో ఉంది"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"మీ ఫోన్ను చేరుకోవడం సాధ్యపడనప్పుడు కాల్ ఫార్వర్డింగ్ను నిలిపివేయడానికి మీ క్యారియర్ మద్దతు ఇవ్వదు."</string>
<string name="registration_cf_forbidden" msgid="4386482610771190420">"కాల్ ఫార్వర్డింగ్ను మీ క్యారియర్ సపోర్ట్ చేయదు."</string>
@@ -145,7 +145,7 @@
<string name="stk_cc_ss_to_ss_error" msgid="8297155544652134278">"కొత్త SS రిక్వెస్ట్కు మార్చబడింది"</string>
<string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"SS రిక్వెస్ట్ వీడియో కాల్కి మార్చబడింది"</string>
<string name="fdn_check_failure" msgid="1833769746374185247">"మీ ఫోన్ యాప్ యొక్క ఫిక్స్డ్ డయలింగ్ నంబర్ల సెట్టింగ్ ప్రారంభించబడింది. తత్ఫలితంగా, కాల్ సంబంధిత లక్షణాల్లో కొన్ని పని చేయడం లేదు."</string>
- <string name="radio_off_error" msgid="8321564164914232181">"ఈ సెట్టింగ్లను వీక్షించడానికి ముందు రేడియోను ప్రారంభించండి."</string>
+ <string name="radio_off_error" msgid="8321564164914232181">"ఈ సెట్టింగ్లను చూడటానికి ముందు రేడియోను ప్రారంభించండి."</string>
<string name="close_dialog" msgid="1074977476136119408">"సరే"</string>
<string name="enable" msgid="2636552299455477603">"ఆన్ చేయి"</string>
<string name="disable" msgid="1122698860799462116">"ఆఫ్ చేయి"</string>
@@ -167,7 +167,7 @@
<string name="vm_change_pin_progress_message" msgid="626015184502739044">"దయచేసి వేచి ఉండండి."</string>
<string name="vm_change_pin_error_too_short" msgid="1789139338449945483">"కొత్త PIN చాలా చిన్నదిగా ఉంది."</string>
<string name="vm_change_pin_error_too_long" msgid="3634907034310018954">"కొత్త PIN చాలా పొడవు ఉంది."</string>
- <string name="vm_change_pin_error_too_weak" msgid="8581892952627885719">"కొత్త PIN చాలా బలహీనంగా ఉంది. శక్తివంతమైన పాస్వర్డ్లో వరుస శ్రేణిలో అక్షరాలు/అంకెలు లేదా పునరావృత అంకెలు ఉండకూడదు."</string>
+ <string name="vm_change_pin_error_too_weak" msgid="8581892952627885719">"కొత్త PIN చాలా బలహీనంగా ఉంది. శక్తివంతమైన పాస్వర్డ్లో వరుస శ్రేణిలో అక్షరాలు/అంకెలు లేదా రిపీట్ అంకెలు ఉండకూడదు."</string>
<string name="vm_change_pin_error_mismatch" msgid="5364847280026257331">"పాత PIN సరిపోలలేదు."</string>
<string name="vm_change_pin_error_invalid" msgid="5230002671175580674">"కొత్త PIN చెల్లని అక్షరాలను కలిగి ఉంది."</string>
<string name="vm_change_pin_error_system_error" msgid="9116483527909681791">"PINని మార్చడం సాధ్యపడలేదు"</string>
@@ -199,8 +199,8 @@
<item msgid="4531933377509551889">"GSM/WCDMAకు ప్రాధాన్యత"</item>
<item msgid="5120532750027435355">"GSM మాత్రమే"</item>
<item msgid="8973311380798000102">"WCDMA మాత్రమే"</item>
- <item msgid="4139961027147085705">"GSM/WCDMA స్వయంచాలకం"</item>
- <item msgid="4024581977690585814">"CDMA/EvDo స్వయంచాలకం"</item>
+ <item msgid="4139961027147085705">"GSM/WCDMA ఆటోమేటిక్"</item>
+ <item msgid="4024581977690585814">"CDMA/EvDo ఆటోమేటిక్"</item>
<item msgid="7199560024080522581">"EvDo లేని CDMA"</item>
<item msgid="3160291725308400608">"EvDo మాత్రమే"</item>
<item msgid="2319217472852426965">"CDMA/EvDo/GSM/WCDMA"</item>
@@ -279,7 +279,7 @@
<!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (5262249464504131443) -->
<!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (6356974241850241718) -->
<string name="data_enabled" msgid="22525832097434368">"డేటా ప్రారంభించబడింది"</string>
- <string name="data_enable_summary" msgid="696860063456536557">"డేటా వినియోగాన్ని అనుమతించు"</string>
+ <string name="data_enable_summary" msgid="696860063456536557">"డేటా వినియోగాన్ని అనుమతించండి"</string>
<string name="dialog_alert_title" msgid="5260471806940268478">"హెచ్చరిక"</string>
<string name="roaming" msgid="1576180772877858949">"రోమింగ్"</string>
<string name="roaming_enable" msgid="6853685214521494819">"రోమింగ్లో ఉన్నప్పుడు డేటా సర్వీసులకు కనెక్ట్ చేయండి"</string>
@@ -305,7 +305,7 @@
<string name="carrier_settings_euicc_summary" msgid="2027941166597330117">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
<string name="mobile_data_settings_title" msgid="7228249980933944101">"మొబైల్ డేటా"</string>
<string name="mobile_data_settings_summary" msgid="5012570152029118471">"మొబైల్ నెట్వర్క్ను ఉపయోగించి డేటాను యాక్సెస్ చేయండి"</string>
- <string name="data_usage_disable_mobile" msgid="5669109209055988308">"మొబైల్ డేటాని ఆఫ్ చేయాలా?"</string>
+ <string name="data_usage_disable_mobile" msgid="5669109209055988308">"మొబైల్ డేటాను ఆఫ్ చేయాలా?"</string>
<string name="sim_selection_required_pref" msgid="6985901872978341314">"ఎంపిక అవసరం"</string>
<string name="sim_change_data_title" msgid="9142726786345906606">"డేటా SIMని మార్చాలా?"</string>
<string name="sim_change_data_message" msgid="3567358694255933280">"మొబైల్ డేటా కోసం <xliff:g id="OLD_SIM">%2$s</xliff:g>కి బదులుగా <xliff:g id="NEW_SIM">%1$s</xliff:g>ని ఉపయోగించాలా?"</string>
@@ -433,7 +433,7 @@
<item msgid="2953825013895327785">"0"</item>
<item msgid="7970797749269738435">"1"</item>
</string-array>
- <string name="cdma_activate_device" msgid="5914720276140097632">"పరికరాన్ని సక్రియం చేయండి"</string>
+ <string name="cdma_activate_device" msgid="5914720276140097632">"పరికరాన్ని యాక్టివేట్ చేయండి"</string>
<string name="cdma_lte_data_service" msgid="359786441782404562">"డేటా సేవను సెటప్ చేయండి"</string>
<string name="carrier_settings_title" msgid="6292869148169850220">"క్యారియర్ సెట్టింగ్లు"</string>
<string name="fdn" msgid="2545904344666098749">"ఫిక్సెడ్ డయలింగ్ నంబర్లు"</string>
@@ -471,13 +471,13 @@
<string name="fdn_contact_added" msgid="2840016151693394596">"ఫిక్స్డ్ డయలింగ్ నంబర్ జోడించబడింది."</string>
<string name="edit_fdn_contact" msgid="6030829994819587408">"ఫిక్స్డ్ డయలింగ్ నంబర్ను ఎడిట్ చేయండి"</string>
<string name="updating_fdn_contact" msgid="6989341376868227150">"ఫిక్స్డ్ డయలింగ్ నంబర్ను అప్డేట్ చేస్తోంది..."</string>
- <string name="fdn_contact_updated" msgid="6876330243323118937">"ఫిక్స్డ్ డయలింగ్ నంబర్ నవీకరించబడింది."</string>
+ <string name="fdn_contact_updated" msgid="6876330243323118937">"ఫిక్స్డ్ డయలింగ్ నంబర్ అప్డేట్ చేయబడింది."</string>
<string name="delete_fdn_contact" msgid="7027405651994507077">"ఫిక్స్డ్ డయలింగ్ నంబర్ను తొలగించండి"</string>
<string name="deleting_fdn_contact" msgid="6872320570844460428">"ఫిక్స్డ్ డయలింగ్ నంబర్ను తొలగిస్తోంది..."</string>
<string name="fdn_contact_deleted" msgid="1680714996763848838">"ఫిక్స్డ్ డయలింగ్ నంబర్ తొలగించబడింది."</string>
- <string name="pin2_invalid" msgid="2313954262684494442">"మీరు చెల్లని PINను టైప్ చేసినందున FDN నవీకరించబడలేదు."</string>
+ <string name="pin2_invalid" msgid="2313954262684494442">"మీరు చెల్లని PINను టైప్ చేసినందున FDN అప్డేట్ చేయబడలేదు."</string>
<string name="fdn_invalid_number" msgid="9067189814657840439">"నంబర్ <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> అంకెలను మించినందున FDN అప్డేట్ చేయబడలేదు."</string>
- <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN నవీకరించబడలేదు. PIN2 చెల్లదు లేదా ఫోన్ నంబర్ తిరస్కరించబడింది."</string>
+ <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN అప్డేట్ చేయబడలేదు. PIN2 చెల్లదు లేదా ఫోన్ నంబర్ తిరస్కరించబడింది."</string>
<string name="fdn_failed" msgid="216592346853420250">"FDN చర్య విఫలమైంది."</string>
<string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM కార్డు నుండి చదువుతోంది…"</string>
<string name="simContacts_empty" msgid="1135632055473689521">"మీ SIM కార్డులో కాంటాక్ట్లు ఏవీ లేవు."</string>
@@ -498,7 +498,7 @@
<string name="enable_pin_ok" msgid="2877428038280804256">"PIN సెట్ చేయబడింది"</string>
<string name="disable_pin_ok" msgid="888505244389647754">"PIN తీసివేయబడింది"</string>
<string name="pin_failed" msgid="4527347792881939652">"PIN చెల్లదు"</string>
- <string name="pin_changed" msgid="7291153750090452808">"PIN నవీకరించబడింది"</string>
+ <string name="pin_changed" msgid="7291153750090452808">"PIN అప్డేట్ చేయబడింది"</string>
<string name="puk_requested" msgid="2061337960609806851">"పాస్వర్డ్ చెల్లదు. PIN ఇప్పుడు బ్లాక్ చేయబడింది. PUK రిక్వెస్ట్ చేయబడింది."</string>
<string name="enter_pin2_text" msgid="7266379426804295979">"PIN2"</string>
<string name="oldPin2Label" msgid="4648543187859997203">"పాత PIN2"</string>
@@ -509,7 +509,7 @@
<string name="mismatchPin2" msgid="4952718725266700631">"PIN2లు సరిపోలలేదు. మళ్లీ ప్రయత్నించండి."</string>
<string name="invalidPin2" msgid="6467957903056379343">"4 నుండి 8 సంఖ్యలు ఉండే PIN2ని నమోదు చేయండి."</string>
<string name="invalidPuk2" msgid="713729511903849544">"8 సంఖ్యలు ఉండే PUK2ను నమోదు చేయండి."</string>
- <string name="pin2_changed" msgid="5710551850481287821">"PIN2 నవీకరించబడింది"</string>
+ <string name="pin2_changed" msgid="5710551850481287821">"PIN2 అప్డేట్ చేయబడింది"</string>
<string name="label_puk2_code" msgid="2852217004288085562">"PUK2 కోడ్ను నమోదు చేయండి"</string>
<string name="fdn_enable_puk2_requested" msgid="5793652792131588041">"పాస్వర్డ్ చెల్లదు. PIN2 ఇప్పుడు బ్లాక్ చేయబడింది. మళ్లీ ప్రయత్నించడానికి, PIN 2ను మార్చండి."</string>
<string name="puk2_requested" msgid="6992374450720307514">"పాస్వర్డ్ చెల్లదు. SIM ఇప్పుడు లాక్ చేయబడింది. PUK2ని నమోదు చేయండి."</string>
@@ -586,10 +586,10 @@
<string name="onscreenManageConferenceText" msgid="4700574060601755137">"కాన్ఫరెన్స్ను నిర్వహించు"</string>
<string name="onscreenAudioText" msgid="7224226735052019986">"ఆడియో"</string>
<string name="onscreenVideoCallText" msgid="1743992456126258698">"వీడియో కాల్"</string>
- <string name="importSimEntry" msgid="3892354284082689894">"దిగుమతి చేయి"</string>
- <string name="importAllSimEntries" msgid="2628391505643564007">"అన్నింటినీ దిగుమతి చేయి"</string>
+ <string name="importSimEntry" msgid="3892354284082689894">"దిగుమతి చేయండి"</string>
+ <string name="importAllSimEntries" msgid="2628391505643564007">"అన్నింటినీ దిగుమతి చేయండి"</string>
<string name="importingSimContacts" msgid="4995457122107888932">"SIM కాంటాక్ట్లను దిగుమతి చేస్తోంది"</string>
- <string name="importToFDNfromContacts" msgid="5068664870738407341">"కాంటాక్ట్ల నుండి దిగుమతి చేయి"</string>
+ <string name="importToFDNfromContacts" msgid="5068664870738407341">"కాంటాక్ట్ల నుండి దిగుమతి చేయండి"</string>
<string name="singleContactImportedMsg" msgid="3619804066300998934">"కాంటాక్ట్ దిగుమతి చేయబడింది"</string>
<string name="failedToImportSingleContactMsg" msgid="228095510489830266">"కాంటాక్ట్ను దిగుమతి చేయడంలో విఫలమైంది"</string>
<string name="hac_mode_title" msgid="4127986689621125468">"వినికిడి సహాయక సాధనాలు"</string>
@@ -612,13 +612,13 @@
</string-array>
<string name="network_info_message" msgid="7599413947016532355">"నెట్వర్క్ మెసేజ్"</string>
<string name="network_error_message" msgid="4271579424089326618">"లోప మెసేజ్"</string>
- <string name="ota_title_activate" msgid="4049645324841263423">"మీ ఫోన్ను సక్రియం చేయండి"</string>
- <string name="ota_touch_activate" msgid="838764494319694754">"మీ ఫోన్ సేవను సక్రియం చేయడానికి ప్రత్యేక కాల్ చేయాల్సి ఉంటుంది. \n\n“సక్రియం చేయి” నొక్కిన తర్వాత, మీ ఫోన్ను సక్రియం చేయడానికి అందించబడే సూచనలను వినండి."</string>
+ <string name="ota_title_activate" msgid="4049645324841263423">"మీ ఫోన్ను యాక్టివేట్ చేయండి"</string>
+ <string name="ota_touch_activate" msgid="838764494319694754">"మీ ఫోన్ సేవను సక్రియం చేయడానికి ప్రత్యేక కాల్ చేయాల్సి ఉంటుంది. \n\n“యాక్టివేట్ చేయండి” నొక్కిన తర్వాత, మీ ఫోన్ను సక్రియం చేయడానికి అందించబడే సూచనలను వినండి."</string>
<string name="ota_hfa_activation_title" msgid="3300556778212729671">"సక్రియం చేస్తోంది..."</string>
<string name="ota_hfa_activation_dialog_message" msgid="7921718445773342996">"ఫోన్ మీ మొబైల్ డేటా సేవను సక్రియం చేస్తోంది.\n\nదీనికి గరిష్టంగా 5 నిమిషాలు పట్టవచ్చు."</string>
<string name="ota_skip_activation_dialog_title" msgid="7666611236789203797">"సక్రియం చేయడాన్ని దాటవేయాలా?"</string>
<string name="ota_skip_activation_dialog_message" msgid="6691722887019708713">"మీరు సక్రియం చేయడాన్ని దాటవేస్తే, కాల్స్ చేయలేరు లేదా మొబైల్ డేటా నెట్వర్క్లకు కనెక్ట్ చేయలేరు (మీరు Wi-Fi నెట్వర్క్లకు కనెక్ట్ చేయగలిగినప్పటికీ). మీరు మీ ఫోన్ను సక్రియం చేసేవరకు, దాన్ని ప్రారంభించే ప్రతిసారీ సక్రియం చేయమని మిమ్మల్ని అడుగుతుంది."</string>
- <string name="ota_skip_activation_dialog_skip_label" msgid="5908029466817825633">"దాటవేయి"</string>
+ <string name="ota_skip_activation_dialog_skip_label" msgid="5908029466817825633">"స్కిప్ చేయండి"</string>
<string name="ota_activate" msgid="7939695753665438357">"యాక్టివేట్ చేయండి"</string>
<string name="ota_title_activate_success" msgid="1272135024761004889">"ఫోన్ సక్రియం చేయబడింది."</string>
<string name="ota_title_problem_with_activation" msgid="7019745985413368726">"సక్రియం చేయడంలో సమస్య"</string>
@@ -643,7 +643,7 @@
<string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"అత్యవసర కాల్బ్యాక్ మోడ్ నుండి నిష్క్రమిస్తోంది"</string>
<string name="alert_dialog_yes" msgid="3532525979632841417">"అవును"</string>
<string name="alert_dialog_no" msgid="1075632654085988420">"కాదు"</string>
- <string name="alert_dialog_dismiss" msgid="1336356286354517054">"తీసివేయి"</string>
+ <string name="alert_dialog_dismiss" msgid="1336356286354517054">"తీసివేయండి"</string>
<string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"ఫోన్ అత్యవసర కాల్బ్యాక్ మోడ్లో ఉంది"</string>
<string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"<xliff:g id="COMPLETETIME">%s</xliff:g> వరకు"</string>
<string name="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{ఫోన్ ఒక నిమిషం పాటు ఎమర్జెన్సీ కాల్బ్యాక్ మోడ్లో ఉంటుంది.\nమీరు ఇప్పుడే నిష్క్రమించాలనుకుంటున్నారా?}other{ఫోన్ %s నిమిషాల పాటు ఎమర్జెన్సీ కాల్బ్యాక్ మోడ్లో ఉంటుంది.\nమీరు ఇప్పుడే నిష్క్రమించాలనుకుంటున్నారా?}}"</string>
@@ -675,8 +675,8 @@
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"వీరి నుండి Wi-Fi కాల్"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi కాల్"</string>
<string name="message_decode_error" msgid="1061856591500290887">"మెసేజ్ను డీకోడ్ చేస్తున్నప్పుడు ఎర్రర్ ఏర్పడింది."</string>
- <string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM కార్డ్ మీ సేవను సక్రియం చేసింది మరియు మీ ఫోన్ రోమింగ్ సామర్థ్యాలను నవీకరించింది."</string>
- <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"చాలా ఎక్కువ కాల్స్ సక్రియంగా ఉన్నాయి. దయచేసి మరొక కొత్త కాల్ చేసే ముందు ఇప్పటికే ఉన్న కాల్స్ను ముగించండి లేదా విలీనం చేయండి."</string>
+ <string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM కార్డ్ మీ సేవను సక్రియం చేసింది మరియు మీ ఫోన్ రోమింగ్ సామర్థ్యాలను అప్డేట్ చేసింది."</string>
+ <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"చాలా ఎక్కువ కాల్స్ యాక్టివ్గా ఉన్నాయి. దయచేసి మరొక కొత్త కాల్ చేసే ముందు ఇప్పటికే ఉన్న కాల్స్ను ముగించండి లేదా విలీనం చేయండి."</string>
<string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"కనెక్ట్ చేయడం సాధ్యపడలేదు, దయచేసి చెల్లుబాటు అయ్యే SIM కార్డ్ను చొప్పించండి."</string>
<string name="callFailed_wifi_lost" msgid="1788036730589163141">"Wi-Fi కనెక్షన్ పోయింది. కాల్ ముగిసింది."</string>
<string name="dialFailed_low_battery" msgid="6857904237423407056">"తక్కువ బ్యాటరీ కారణంగా మీ వీడియో కాల్ చేయడం సాధ్యపడదు."</string>
@@ -693,12 +693,12 @@
<string name="change_pin_enter_new_pin_hint" msgid="2326038476516364210">"PIN తప్పనిసరిగా <xliff:g id="MIN">%1$d</xliff:g>-<xliff:g id="MAX">%2$d</xliff:g> అంకెల మధ్య ఉండాలి."</string>
<string name="change_pin_confirm_pin_header" msgid="2606303906320705726">"మీ PINని నిర్ధారించండి"</string>
<string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"PINలు సరిపోలలేదు"</string>
- <string name="change_pin_succeeded" msgid="2504705600693014403">"వాయిస్ మెయిల్ PIN నవీకరించబడింది"</string>
+ <string name="change_pin_succeeded" msgid="2504705600693014403">"వాయిస్ మెయిల్ PIN అప్డేట్ చేయబడింది"</string>
<string name="change_pin_system_error" msgid="7772788809875146873">"PINని సెట్ చేయడం సాధ్యపడలేదు"</string>
<string name="mobile_data_status_roaming_turned_off_subtext" msgid="6840673347416227054">"డేటా రోమింగ్ ఆఫ్ చేయబడింది"</string>
<string name="mobile_data_status_roaming_turned_on_subtext" msgid="5615757897768777865">"డేటా రోమింగ్ ఆన్ చేయబడింది"</string>
<string name="mobile_data_status_roaming_without_plan_subtext" msgid="6536671968072284677">"ప్రస్తుతం రోమింగ్లో ఉంది, డేటా ప్లాన్ అవసరం"</string>
- <string name="mobile_data_status_roaming_with_plan_subtext" msgid="2576177169108123095">"ప్రస్తుతం రోమింగ్లో ఉంది, డేటా ప్లాన్ సక్రియంగా ఉంది"</string>
+ <string name="mobile_data_status_roaming_with_plan_subtext" msgid="2576177169108123095">"ప్రస్తుతం రోమింగ్లో ఉంది, డేటా ప్లాన్ యాక్టివ్గా ఉంది"</string>
<string name="mobile_data_status_no_plan_subtext" msgid="170331026419263657">"మొబైల్ డేటా ఏదీ మిగిలి లేదు"</string>
<string name="mobile_data_activate_prepaid" msgid="4276738964416795596">"మొబైల్ డేటా ఏదీ మిగిలి లేదు"</string>
<string name="mobile_data_activate_prepaid_summary" msgid="6846085278531605925">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ద్వారా మొబైల్ డేటాను జోడించండి"</string>
@@ -797,20 +797,20 @@
<string name="callFailed_NetworkBusy" msgid="5437103975842913681">"నెట్వర్క్ బిజీగా ఉంది. దయచేసి తిరిగి తర్వాత కాల్ చేయండి."</string>
<string name="callFailed_NetworkCongested" msgid="6801283142342775380">"నెట్వర్క్లో అంతరాయం ఏర్పడింది. సహాయం కోసం మీ మొబైల్ ఆపరేటర్ను సంప్రదించండి."</string>
<string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"కాల్ మళ్లించబడింది."</string>
- <string name="supp_service_notification_call_forwarded" msgid="7102930311735433088">"కాల్ ఫార్వార్డ్ చేయబడింది."</string>
+ <string name="supp_service_notification_call_forwarded" msgid="7102930311735433088">"కాల్ ఫార్వర్డ్ చేయబడింది."</string>
<string name="supp_service_notification_call_waiting" msgid="4577403881609445324">"కాల్ నిరీక్షణలో ఉంది."</string>
<string name="supp_service_clir_suppression_rejected" msgid="6105737020194776121">"నంబర్ బ్లాకింగ్ తిరస్కరించబడింది."</string>
<string name="supp_service_closed_user_group_call" msgid="2811636666505250689">"దగ్గరి వినియోగదారు సమూహ కాల్."</string>
<string name="supp_service_incoming_calls_barred" msgid="2034627421274447674">"ఇన్కమింగ్ కాల్స్ నిరోధించబడ్డాయి"</string>
<string name="supp_service_outgoing_calls_barred" msgid="5205725332394087112">"అవుట్గోయింగ్ కాల్స్ నిరోధించబడ్డాయి."</string>
- <string name="supp_service_call_forwarding_active" msgid="7910162960395132464">"కాల్ ఫార్వర్డింగ్ సక్రియంగా ఉంది."</string>
- <string name="supp_service_additional_call_forwarded" msgid="8772753260008398632">"అదనపు కాల్ ఫార్వార్డ్ చేయబడింది."</string>
+ <string name="supp_service_call_forwarding_active" msgid="7910162960395132464">"కాల్ ఫార్వర్డింగ్ యాక్టివ్గా ఉంది."</string>
+ <string name="supp_service_additional_call_forwarded" msgid="8772753260008398632">"అదనపు కాల్ ఫార్వర్డ్ చేయబడింది."</string>
<string name="supp_service_additional_ect_connected" msgid="8525934162945220237">"అభ్యంతరకరమైన కాల్ బదిలీ పూర్తయింది."</string>
<string name="supp_service_additional_ect_connecting" msgid="7046240728781222753">"అభ్యంతరకరమైన కాల్ బదిలీ ప్రోగ్రెస్లో ఉంది."</string>
<string name="supp_service_call_on_hold" msgid="2836811319594503059">"కాల్ హోల్డ్లో ఉంది."</string>
<string name="supp_service_call_resumed" msgid="3786864005920743546">"కాల్ మళ్లీ ప్రారంభించబడింది."</string>
<string name="supp_service_deflected_call" msgid="7565979024562921707">"కాల్ మళ్లించబడింది."</string>
- <string name="supp_service_forwarded_call" msgid="6475776013771821457">"కాల్ ఫార్వార్డ్ చేయబడింది."</string>
+ <string name="supp_service_forwarded_call" msgid="6475776013771821457">"కాల్ ఫార్వర్డ్ చేయబడింది."</string>
<string name="supp_service_conference_call" msgid="4004193534408317148">"కాన్ఫరెన్స్ కాల్లో చేరుతున్నారు"</string>
<string name="supp_service_held_call_released" msgid="2847835124639112410">"హోల్డ్లో ఉంచిన కాల్ ప్రారంభించబడింది."</string>
<string name="callFailed_otasp_provisioning_in_process" msgid="3345666183602879326">"వినియోగదారుకు ప్రస్తుతం ఏ సేవలు అందుబాటులో ఉన్నాయనే విచారణ పనిలో పరికరం ఉన్నందున కాల్ చేయడం సాధ్యం కాదు."</string>
@@ -822,7 +822,7 @@
<string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>ని ఉపయోగించడానికి, మొబైల్ డేటా మరియు డేటా రోమింగ్ని తప్పకుండా ఆన్ చేసారని నిర్ధారించుకోండి. మీరు వీటిని మొబైల్ నెట్వర్క్ సెట్టింగ్లలో మార్చవచ్చు."</string>
<string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ని ఉపయోగించడానికి, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> కోసం మొబైల్ డేటాను తప్పకుండా ఆన్ చేసారని నిర్ధారించుకోండి. మీరు దీనిని మొబైల్ నెట్వర్క్ సెట్టింగ్లలో మార్చవచ్చు."</string>
<string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ని ఉపయోగించడానికి, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> కోసం మొబైల్ డేటా మరియు డేటా రోమింగ్ని తప్పకుండా ఆన్ చేసారని నిర్ధారించుకోండి. మీరు వీటిని మొబైల్ నెట్వర్క్ సెట్టింగ్లలో మార్చవచ్చు."</string>
- <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"తీసివేయి"</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"తీసివేయండి"</string>
<string name="radio_info_data_connection_enable" msgid="6183729739783252840">"డేటా కనెక్షన్ను ప్రారంభించండి"</string>
<string name="radio_info_data_connection_disable" msgid="6404751291511368706">"డేటా కనెక్షన్ను నిలిపివేయండి"</string>
<string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE సదుపాయం ఉంది"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"మీరు ఈ సెట్టింగ్ను మార్చడానికి మీ పరికరాన్ని మళ్లీ ప్రారంభించాలి."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"పునఃప్రారంభించు"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"రద్దు చేయండి"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"తీసివేయగలిగే eSIMని ఆటోమేటిక్ సెట్టింగ్గా సెట్ చేయండి"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"మొబైల్ రేడియో పవర్"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"పరికరాన్ని సిమ్యులేట్ చేయడం అందుబాటులో లేదు (డీబగ్ బిల్డ్ మోడ్లో మాత్రమే)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM అడ్రస్ పుస్తకాన్ని చూడండి"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ఫిక్స్డ్ డయలింగ్ నంబర్లను చూడండి"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"సర్వీస్ డయలింగ్ నంబర్లను చూడండి"</string>
@@ -914,10 +916,7 @@
<string name="phone_info_label" product="tablet" msgid="7477478709388477397">"టాబ్లెట్ సమాచారం"</string>
<string name="phone_info_label" product="default" msgid="1784175881556791433">"ఫోన్ సమాచారం"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"క్యారియర్ కేటాయింపు సమాచారం"</string>
- <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"క్యారియర్ కేటాయింపు సక్రియం చేయండి"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC ఎన్టైటిల్మెంట్ ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"అప్డేట్ చేయండి"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"రిఫ్రెష్ చేయండి"</string>
+ <string name="trigger_carrier_provisioning" msgid="1301829588620638234">"క్యారియర్ కేటాయింపు యాక్టివేట్ చేయండి"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"మీ బ్లూటూత్ సిగ్నల్ బలహీనంగా ఉంది. స్పీకర్ఫోన్కు స్విచ్ అవ్వడానికి ట్రై చేయండి."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"కాల్ క్వాలిటీ నోటిఫికేషన్"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"తీసివేయబడిన SIP ఖాతాలు"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index d58b5f9..d8640f8 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -585,7 +585,7 @@
<string name="onscreenManageCallsText" msgid="1162047856081836469">"จัดการการโทร"</string>
<string name="onscreenManageConferenceText" msgid="4700574060601755137">"จัดการการประชุม"</string>
<string name="onscreenAudioText" msgid="7224226735052019986">"เสียง"</string>
- <string name="onscreenVideoCallText" msgid="1743992456126258698">" Hangouts วิดีโอ"</string>
+ <string name="onscreenVideoCallText" msgid="1743992456126258698">"วิดีโอคอล"</string>
<string name="importSimEntry" msgid="3892354284082689894">"นำเข้า"</string>
<string name="importAllSimEntries" msgid="2628391505643564007">"นำเข้าทั้งหมด"</string>
<string name="importingSimContacts" msgid="4995457122107888932">"กำลังนำเข้าสมุดโทรศัพท์ในซิม"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"คุณต้องรีสตาร์ทอุปกรณ์เพื่อเปลี่ยนการตั้งค่านี้"</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"รีสตาร์ท"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"ยกเลิก"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"กำหนดให้ eSIM แบบนำออกได้เป็นค่าเริ่มต้น"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"กำลังส่งของวิทยุเครือข่ายมือถือ"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"จําลองความไม่พร้อมให้บริการ (บิลด์การแก้ไขข้อบกพร่องเท่านั้น)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ดูสมุดที่อยู่ของซิม"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ดูการจำกัดหมายเลขโทรออก"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ดูหมายเลขรับบริการโทรออก"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"ข้อมูลโทรศัพท์"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"ข้อมูลการจัดสรรผู้ให้บริการ"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ทริกเกอร์การจัดสรรผู้ให้บริการ"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"รหัสการให้สิทธิ์ WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"อัปเดต"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"รีเฟรช"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"สัญญาณบลูทูธอ่อน ลองเปลี่ยนไปใช้ลำโพงแทน"</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"การแจ้งเตือนคุณภาพการโทร"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"บัญชี SIP ที่เลิกใช้งาน"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index fb63129..08df78b 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Kailangan mong i-restart ang device para mabago ang setting."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"I-restart"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Kanselahin"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Itakda na Default ang Naaalis na eSIM"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobile Radio Power"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Mag-simulate ng Hindi Gumagana (Build sa Pag-debug lang)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Tingnan ang Address Book ng SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Tingnan ang Mga Fixed Dialing Number"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Tingnan ang Mga Service Dialing Number"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Impormasyon ng telepono"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Impormasyon sa Provisioning ng Carrier"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"I-trigger ang Provisioning ng Carrier"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC Entitlement ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"I-update"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"I-refresh"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Mahina ang signal ng iyong bluetooth. Subukang lumipat sa speakerphone."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Notification sa Kalidad ng Tawag"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Mga hindi na ginagamit na SIP account"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 41a997b..66ddb7f 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Bu ayarı değiştirmek için cihazınızı yeniden başlatın."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Yeniden başlat"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"İptal"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Çıkarılabilir eSIM\'i Varsayılan Yap"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobil Radyo Gücü"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Hizmet Dışı Simülasyonu (Yalnızca Hata Ayıklama Derlemesi)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM Adres Defterini Görüntüle"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Sabit Arama Numaralarını Görüntüle"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Hizmet Arama Numaralarını Görüntüle"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefon bilgileri"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Operatör Temel Hazırlık Bilgileri"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Tetikleyici Operatör Temel Hazırlığı"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC Yararlanma Hakkı Kimliği:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Güncelle"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Yenile"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth sinyaliniz zayıf. Hoparlöre geçmeyi deneyin."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Arama Kalitesiyle İlgili Bildirim"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Kullanımdan kaldırılan SIP hesapları"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 17c01a6..16322ba 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -52,7 +52,7 @@
<string name="label_ndp" msgid="7617392683877410341">"Розбл. PIN-код мережі SIM"</string>
<string name="label_phoneid" msgid="8775611434123577808">"Заблокована SIM-карта оператора"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Розблок."</string>
- <string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Відхилити"</string>
+ <string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Закрити"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Запитув. розблок. мережі..."</string>
<string name="unlock_failed" msgid="7103543844840661366">"Не здійсн. запит розблокування мережі"</string>
<string name="unlock_success" msgid="32681089371067565">"Мережу успішно розблоковано."</string>
@@ -643,7 +643,7 @@
<string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Вихід із режиму екстреного зворотного виклику"</string>
<string name="alert_dialog_yes" msgid="3532525979632841417">"Так"</string>
<string name="alert_dialog_no" msgid="1075632654085988420">"Ні"</string>
- <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Відхилити"</string>
+ <string name="alert_dialog_dismiss" msgid="1336356286354517054">"Закрити"</string>
<string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Телефон перебуває в режимі екстреного зворотного виклику"</string>
<string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"До <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
<!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Щоб змінити це налаштування, перезапустіть пристрій."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Перезапустити"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Скасувати"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Установити знімну eSIM-карту як карту за умовчанням"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Потужність мобільного радіо"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Імітація знаходження поза зоною обслуговування (лише складання для налагодження)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Переглянути адресну книгу SIM-карти"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Переглянути фіксовані номери"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Переглянути службові номери"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Інформація про телефон"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Інформація про ініціалізацію оператора"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Запустити ініціалізацію оператора"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Ідентифікатор доступу WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Оновити"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Оновити"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Сигнал Bluetooth заслабкий. Спробуйте переключитися на гучний зв\'язок."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Сповіщення про якість виклику"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Облікові записи SIP, що не підтримуються"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index e54b8eb..1b0fbbf 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"یہ ترتیب تبدیل کرنے کیلئے آپ کو اپنا آلہ ریسٹارٹ کرنا ہوگا۔"</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"دوبارہ شروع کریں"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"منسوخ کریں"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"ہٹانے لائق eSIM کو بطور ڈیفالٹ سیٹ کریں"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"موبائل ریڈیو پاور"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"\'سروس دستیاب نہیں ہے\' موڈ کو سمیولیٹ کریں (صرف ڈیبگ بلڈ کیلئے)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM ایڈریس بک دیکھیں"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"فکسڈ ڈائلنگ نمبرز دیکھیں"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"سروس ڈائلنگ نمبرز دیکھیں"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"فون کی معلومات"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"کیرئیر فراہمی معلومات"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"ٹرگر کیرئیر فراہمی"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC Entitlement ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"اپ ڈیٹ کریں"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ریفریش کریں"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"آپ کا بلوٹوتھ سگنل کمزور ہے۔ اسپیکر فون پر سوئچ کر کے آزمائیں۔"</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"کال کی کوالٹی کی اطلاع"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"فرسودہ SIP اکاؤنٹس"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 5803846..f8f663f 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Bu sozlamani o‘zgartirish uchun qurilmangizni o‘chirib yoqing."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"O‘chirib yoqish"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Bekor qilish"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Olinadigan eSIM kartani birlamchi qilib belgilash"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Radio signal quvvati"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Xizmatdan tashqari simulyatsiya (faqat nosozliklarni aniqlash dasturi uchun)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM kartadagi abonentlar ro‘yxatini ochish"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ruxsat etilgan raqamlar ro‘yxatini ochish"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Xizmatlarni terish raqamlarini ochish"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Telefon haqida"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Operator sinxronizatsiyasi haqida"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Operator sinxronizatsiyasini yoqish/o‘chirish"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC ruxsat identifikatori:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Yangilash"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Yangilash"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth signali kuchsiz. Baland ovoz rejimini yoqish tavsiya etiladi."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Chaqiruv sifati haqida bildirishnoma"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"To‘xtatilgan SIP hisoblar"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 4fcd4d8..186448a 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Bạn cần khởi động lại thiết bị để thay đổi chế độ cài đặt này."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Khởi động lại"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Hủy"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Đặt eSIM có thể tháo rời là Mặc định"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Cường độ của sóng di động"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Mô phỏng thiết bị không hoạt động (chỉ dành cho bản gỡ lỗi)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Xem sổ địa chỉ trên SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Xem số gọi định sẵn"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Xem số quay số dịch vụ"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Thông tin điện thoại"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Thông tin cấp phép của nhà mạng"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Kích hoạt dịch vụ cấp phép của nhà mạng"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Mã quyền đối với WFC:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Cập nhật"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Làm mới"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Tín hiệu Bluetooth của bạn đang yếu. Hãy thử chuyển sang loa ngoài."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Thông báo về chất lượng cuộc gọi"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Tài khoản SIP không dùng nữa"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index bea64da..acee999 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -575,7 +575,7 @@
<string name="fire_type_description" msgid="6565200468934914930">"火警"</string>
<string name="description_concat_format" msgid="2014471565101724088">"%1$s、%2$s"</string>
<string name="dialerKeyboardHintText" msgid="1115266533703764049">"使用键盘拨号"</string>
- <string name="onscreenHoldText" msgid="4025348842151665191">"保持"</string>
+ <string name="onscreenHoldText" msgid="4025348842151665191">"保持通话"</string>
<string name="onscreenEndCallText" msgid="6138725377654842757">"挂断"</string>
<string name="onscreenShowDialpadText" msgid="658465753816164079">"拨号键盘"</string>
<string name="onscreenMuteText" msgid="5470306116733843621">"静音"</string>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"您需要重启设备才能让这项设置更改生效。"</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"重启"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"取消"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"将可卸载的 eSIM 卡设为默认 eSIM 卡"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"移动无线装置电源"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"模拟服务终止(仅限调试 build)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"查看 SIM 卡通讯录"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"查看固定拨号号码"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"查看服务拨号号码"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"手机信息"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"运营商配置信息"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"触发运营商配置"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC 权限 ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"更新"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"刷新"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"您的蓝牙信号较弱。请尝试切换为扬声器模式。"</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"通话质量通知"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"已弃用的 SIP 帐号"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 6d42019..7923cbb 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"您需要重新啟動裝置,才可變更此設定。"</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"重新啟動"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"取消"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"將可移除的 eSIM 卡設為預設值"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"流動無線電的電源"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"模擬沒有服務 (僅限偵錯版本)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"查看 SIM 卡通訊錄"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"查看固定撥號"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"查看服務撥號"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"手機資訊"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"流動網絡供應商佈建資料"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"觸發流動網絡供應商佈建程序"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC 授權 ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"更新"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"重新整理"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"您的藍牙訊號微弱。請改用擴音器。"</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"通話品質通知"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"已停用的 SIP 帳戶"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index c3d4bf4..c43183c 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"你必須重新啟動裝置,才能變更這項設定。"</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"重新啟動"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"取消"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"將可移除的 eSIM 卡設為預設 eSIM 卡"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"行動無線電電源"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"模擬無法使用服務的情況 (僅限偵錯版本)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"查看 SIM 通訊錄"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"查看固定撥號"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"查看服務撥號號碼"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"手機資訊"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"電信業者佈建資訊"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"觸發電信業者佈建程序"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC 授權 ID:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"更新"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"重新整理"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"你的藍牙訊號微弱,建議你改用擴音模式。"</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"通話品質通知"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"不適用的 SIP 帳戶"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index fbedd2b..d111a5e 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -357,13 +357,13 @@
<string name="list_language_title" msgid="1850167908665485738">"Ulimi"</string>
<string name="list_language_summary" msgid="7921756070782277559">"Khetha ulimi lwezindaba"</string>
<string-array name="list_language_entries">
- <item msgid="2347238508726934281">"i-English"</item>
+ <item msgid="2347238508726934281">"English"</item>
<item msgid="5172468397620875174">"isi-French"</item>
<item msgid="3978110664146015398">"isi-Spanish"</item>
<item msgid="2637764545851526369">"isi-Japanese"</item>
- <item msgid="6103816221834932751">"isi-Korean"</item>
- <item msgid="3127367370005168399">"isi-Chinese"</item>
- <item msgid="9130651361816196355">"isi-Hebrew"</item>
+ <item msgid="6103816221834932751">"Korean"</item>
+ <item msgid="3127367370005168399">"Chinese"</item>
+ <item msgid="9130651361816196355">"Hebrew"</item>
</string-array>
<string-array name="list_language_values">
<item msgid="798673247233934667">"1"</item>
@@ -835,7 +835,9 @@
<string name="dsds_dialog_message" msgid="4047480385678538850">"Udinga ukuqalisa kabusha idivayisi yakho ukushintsha lesi silungiselelo."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Qala kabusha"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Khansela"</string>
+ <string name="removable_esim_string" msgid="7931369811671787649">"Setha i-eSim Esusekayo Njengezenzakalelayo"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Amandla erediyo yeselula"</string>
+ <string name="simulate_out_of_service_string" msgid="7787925611727597193">"Lingisa okuthi Ayikho Isevisi (Umakhiwo Wokususa Iphutha kuphela)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Buka incwadi yekheli le-SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Buka Izinombolo Zokudayela Okungaguquki"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Buka Izinombolo Zokudayela Isevisi"</string>
@@ -915,9 +917,6 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"Ulwazi lwefoni"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"Ulwazi lokuhlinzeka lenkampani yenethiwekhi"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Cupha ukunikezwa kwenkampani yenethiwekhi"</string>
- <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"I-ID WFC Entitlement:"</string>
- <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Vuselela"</string>
- <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Vuselela"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Isignali yakho ye-bluetooth ayiqinile. Zama ukushintshela kusipikhasefoni."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Isaziso Sekhwalithi"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"Ama-akhawunti we-SIP ehlisiwe"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 38a86f9..44151c5 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2010,6 +2010,9 @@
<!-- Title for controlling on/off for Mobile phone's radio power. Only shown in diagnostic screen, so precise translation is not needed. -->
<string name="radio_info_radio_power">Mobile Radio Power</string>
+ <!-- Title for simulating device out of service. -->
+ <string name="simulate_out_of_service_string">Simulate Out of Service (Debug Build only)</string>
+
<!-- Phone Info screen. Menu item label. Used for diagnostic info screens, precise translation isn't needed -->
<string name="radioInfo_menu_viewADN">View SIM Address Book</string>
<!-- Phone Info screen. Menu item label. Used for diagnostic info screens, precise translation isn't needed -->
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index 7bff98a..145df41 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -16,6 +16,7 @@
package com.android.phone;
+import android.app.ActionBar;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
@@ -268,6 +269,12 @@
getActionBar(), getResourcesForSubId(), R.string.call_settings_with_label);
mTelecomManager = getSystemService(TelecomManager.class);
mTelephonyCallback = new CallFeaturesTelephonyCallback();
+
+ ActionBar actionBar = getActionBar();
+ if (actionBar != null) {
+ // sets the talkback voice prompt to say "Back" instead of "Navigate Up"
+ actionBar.setHomeActionContentDescription(R.string.ota_call_end);
+ }
}
private void updateImsManager(Phone phone) {
@@ -456,11 +463,7 @@
CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL,
false);
boolean isDataEnabled;
- if (mPhone.isUsingNewDataStack()) {
- isDataEnabled = mPhone.getDataSettingsManager().isDataEnabled();
- } else {
- isDataEnabled = mPhone.getDataEnabledSettings().isDataEnabled();
- }
+ isDataEnabled = mPhone.getDataSettingsManager().isDataEnabled();
if (mImsMgr.isVtEnabledByPlatform() && mImsMgr.isVtProvisionedOnDevice()
&& (carrierConfig.getBoolean(
CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS)
diff --git a/src/com/android/phone/CallForwardEditPreference.java b/src/com/android/phone/CallForwardEditPreference.java
index 2cbb7c5..96915d4 100644
--- a/src/com/android/phone/CallForwardEditPreference.java
+++ b/src/com/android/phone/CallForwardEditPreference.java
@@ -28,6 +28,7 @@
import com.android.internal.telephony.Phone;
import java.util.HashMap;
+import java.util.Locale;
public class CallForwardEditPreference extends EditPhoneNumberPreference {
private static final String LOG_TAG = "CallForwardEditPreference";
@@ -287,7 +288,7 @@
if (telephonyManager == null) {
return "";
}
- return telephonyManager.getNetworkCountryIso().toUpperCase();
+ return telephonyManager.getNetworkCountryIso().toUpperCase(Locale.ROOT);
}
// Message protocol:
diff --git a/src/com/android/phone/CarrierConfigLoader.java b/src/com/android/phone/CarrierConfigLoader.java
index 307170a..5d9928e 100644
--- a/src/com/android/phone/CarrierConfigLoader.java
+++ b/src/com/android/phone/CarrierConfigLoader.java
@@ -1170,12 +1170,24 @@
});
if (packageFiles == null || packageFiles.length < 1) return false;
for (File f : packageFiles) {
- logd("Deleting " + f.getName());
+ logd("Deleting " + getFilePathForLogging(f.getName()));
f.delete();
}
return true;
}
+ private String getFilePathForLogging(String filePath) {
+ if (!TextUtils.isEmpty(filePath)) {
+ String[] fileTokens = filePath.split("-");
+ if (fileTokens != null && fileTokens.length > 2) {
+ String iccid = fileTokens[fileTokens.length -2];
+ return getFilePathForLogging(filePath, iccid);
+ }
+ return filePath;
+ }
+ return filePath;
+ }
+
/** Builds a canonical file name for a config file. */
@NonNull
private static String getFilenameForConfig(
@@ -1321,7 +1333,6 @@
boolean persistent) {
mContext.enforceCallingOrSelfPermission(
android.Manifest.permission.MODIFY_PHONE_STATE, null);
- //TODO: Also check for SHELL UID to restrict this method to testing only (b/131326259)
int phoneId = SubscriptionManager.getPhoneId(subscriptionId);
if (!SubscriptionManager.isValidPhoneId(phoneId)) {
logd("Ignore invalid phoneId: " + phoneId + " for subId: " + subscriptionId);
diff --git a/src/com/android/phone/ImsProvisioningController.java b/src/com/android/phone/ImsProvisioningController.java
index 696f567..6a6b155 100644
--- a/src/com/android/phone/ImsProvisioningController.java
+++ b/src/com/android/phone/ImsProvisioningController.java
@@ -41,6 +41,7 @@
import android.annotation.Nullable;
import android.content.Context;
import android.os.AsyncResult;
+import android.os.Binder;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
@@ -55,6 +56,7 @@
import android.telephony.ims.ProvisioningManager;
import android.telephony.ims.aidl.IFeatureProvisioningCallback;
import android.telephony.ims.aidl.IImsConfig;
+import android.telephony.ims.aidl.IImsConfigCallback;
import android.telephony.ims.feature.MmTelFeature.MmTelCapabilities;
import android.telephony.ims.feature.RcsFeature.RcsImsCapabilities;
import android.telephony.ims.stub.ImsConfigImplBase;
@@ -89,6 +91,7 @@
private static final int EVENT_PROVISIONING_CAPABILITY_CHANGED = 2;
@VisibleForTesting
protected static final int EVENT_MULTI_SIM_CONFIGURATION_CHANGE = 3;
+ private static final int EVENT_PROVISIONING_VALUE_CHANGED = 4;
// Provisioning Keys that are handled via AOSP cache and not sent to the ImsService
private static final int[] LOCAL_IMS_CONFIG_KEYS = {
@@ -245,6 +248,11 @@
int activeModemCount = (int) ((AsyncResult) msg.obj).result;
onMultiSimConfigChanged(activeModemCount);
break;
+ case EVENT_PROVISIONING_VALUE_CHANGED:
+ log("subId " + msg.arg1 + " changed provisioning value item : " + msg.arg2
+ + " value : " + (int) msg.obj);
+ updateCapabilityTechFromKey(msg.arg1, msg.arg2, (int) msg.obj);
+ break;
default:
log("unknown message " + msg);
break;
@@ -366,12 +374,15 @@
private boolean mRequiredNotify = false;
private int mSubId;
private int mSlotId;
+ private ConfigCallback mConfigCallback;
MmTelFeatureListener(int slotId) {
log(LOG_PREFIX, slotId, "created");
mSlotId = slotId;
mSubId = getSubId(slotId);
+ mConfigCallback = new ConfigCallback(mSubId);
+
mConnector = mMmTelFeatureConnector.create(
mApp, slotId, TAG, this, new HandlerExecutor(mHandler));
mConnector.connect();
@@ -389,10 +400,22 @@
mSubId = subId;
mSlotId = getSlotId(subId);
+ mConfigCallback.setSubId(subId);
}
public void destroy() {
log("destroy");
+ if (mImsManager != null) {
+ try {
+ ImsConfig imsConfig = getImsConfig(mImsManager);
+ if (imsConfig != null) {
+ imsConfig.removeConfigCallback(mConfigCallback);
+ }
+ } catch (ImsException e) {
+ logw(LOG_PREFIX, mSlotId, "destroy : " + e.getMessage());
+ }
+ }
+ mConfigCallback = null;
mConnector.disconnect();
mConnector = null;
mReady = false;
@@ -409,6 +432,17 @@
mReady = true;
mImsManager = manager;
+ if (mImsManager != null) {
+ try {
+ ImsConfig imsConfig = getImsConfig(mImsManager);
+ if (imsConfig != null) {
+ imsConfig.addConfigCallback(mConfigCallback);
+ }
+ } catch (ImsException e) {
+ logw(LOG_PREFIX, mSlotId, "addConfigCallback : " + e.getMessage());
+ }
+ }
+
onMmTelAvailable();
}
@@ -572,12 +606,15 @@
private boolean mRequiredNotify = false;
private int mSubId;
private int mSlotId;
+ private ConfigCallback mConfigCallback;
RcsFeatureListener(int slotId) {
log(LOG_PREFIX, slotId, "created");
mSlotId = slotId;
mSubId = getSubId(slotId);
+ mConfigCallback = new ConfigCallback(mSubId);
+
mConnector = mRcsFeatureConnector.create(
mApp, slotId, this, new HandlerExecutor(mHandler), TAG);
mConnector.connect();
@@ -595,10 +632,22 @@
mSubId = subId;
mSlotId = getSlotId(subId);
+ mConfigCallback.setSubId(subId);
}
public void destroy() {
log(LOG_PREFIX, mSlotId, "destroy");
+ if (mRcsFeatureManager != null) {
+ try {
+ ImsConfig imsConfig = getImsConfig(mRcsFeatureManager.getConfig());
+ if (imsConfig != null) {
+ imsConfig.removeConfigCallback(mConfigCallback);
+ }
+ } catch (ImsException e) {
+ logw(LOG_PREFIX, mSlotId, "destroy :" + e.getMessage());
+ }
+ }
+ mConfigCallback = null;
mConnector.disconnect();
mConnector = null;
mReady = false;
@@ -611,6 +660,17 @@
mReady = true;
mRcsFeatureManager = manager;
+ if (mRcsFeatureManager != null) {
+ try {
+ ImsConfig imsConfig = getImsConfig(mRcsFeatureManager.getConfig());
+ if (imsConfig != null) {
+ imsConfig.addConfigCallback(mConfigCallback);
+ }
+ } catch (ImsException e) {
+ logw(LOG_PREFIX, mSlotId, "addConfigCallback :" + e.getMessage());
+ }
+ }
+
onRcsAvailable();
}
@@ -726,6 +786,42 @@
}
}
+ // When vendor ImsService changed provisioning data, which should be updated in AOSP.
+ // Catch the event using IImsConfigCallback.
+ private final class ConfigCallback extends IImsConfigCallback.Stub {
+ private int mSubId;
+
+ ConfigCallback(int subId) {
+ mSubId = subId;
+ }
+
+ public void setSubId(int subId) {
+ mSubId = subId;
+ }
+
+ @Override
+ public void onIntConfigChanged(int item, int value) throws RemoteException {
+ if (!Arrays.stream(LOCAL_IMS_CONFIG_KEYS).anyMatch(keyValue -> keyValue == item)) {
+ return;
+ }
+
+ final long callingIdentity = Binder.clearCallingIdentity();
+ try {
+ if (mHandler != null) {
+ mHandler.sendMessage(mHandler.obtainMessage(
+ EVENT_PROVISIONING_VALUE_CHANGED, mSubId, item, (Object) value));
+ }
+ } finally {
+ Binder.restoreCallingIdentity(callingIdentity);
+ }
+ }
+
+ @Override
+ public void onStringConfigChanged(int item, String value) throws RemoteException {
+ // Ignore this callback.
+ }
+ }
+
/**
* Do NOT use this directly, instead use {@link #getInstance()}.
*/
diff --git a/src/com/android/phone/ImsRcsController.java b/src/com/android/phone/ImsRcsController.java
index bf55764..d4a0f1e 100644
--- a/src/com/android/phone/ImsRcsController.java
+++ b/src/com/android/phone/ImsRcsController.java
@@ -252,7 +252,7 @@
} catch (ImsException e) {
Log.e(TAG, "isCapable: sudId=" + subId
+ ", capability=" + capability + ", " + e.getMessage());
- return false;
+ throw new ServiceSpecificException(e.getCode(), e.getMessage());
} finally {
Binder.restoreCallingIdentity(token);
}
@@ -278,7 +278,7 @@
} catch (ImsException e) {
Log.e(TAG, "isAvailable: sudId=" + subId
+ ", capability=" + capability + ", " + e.getMessage());
- return false;
+ throw new ServiceSpecificException(e.getCode(), e.getMessage());
} finally {
Binder.restoreCallingIdentity(token);
}
@@ -786,16 +786,43 @@
int slotId = phone.getPhoneId();
if (!skipVerifyingConfig) {
verifyImsRcsConfiguredOrThrow(slotId);
+ verifyRcsSubIdActiveOrThrow(slotId, subId);
}
RcsFeatureController c = mRcsService.getFeatureController(slotId);
if (c == null) {
+ // If we hit this case, we have verified that TelephonyRcsService has processed any
+ // subId changes for the associated slot and applied configs. In this case, the configs
+ // do not have the RCS feature enabled.
throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
"The requested operation is not supported for subId " + subId);
}
+ if (!skipVerifyingConfig && c.getAssociatedSubId() != subId) {
+ // If we hit this case, the ImsFeature has not finished setting up the RCS feature yet
+ // or the RCS feature has crashed and is being set up again.
+ Log.w(TAG, "getRcsFeatureController: service unavailable on slot " + slotId
+ + " for subId " + subId);
+ throw new ServiceSpecificException(ImsException.CODE_ERROR_SERVICE_UNAVAILABLE,
+ "The ImsService is not currently available for subid " + subId
+ + ", please try again");
+ }
return c;
}
/**
+ * Ensure the TelephonyRcsService is tracking the supplied subId for the supplied slotId and has
+ * set up the stack.
+ */
+ private void verifyRcsSubIdActiveOrThrow(int slotId, int subId) {
+ if (mRcsService.verifyActiveSubId(slotId, subId)) return;
+
+ Log.w(TAG, "verifyRcsSubIdActiveOrThrow: verify failed, service not set up yet on "
+ + "slot " + slotId + " for subId " + subId);
+ throw new ServiceSpecificException(ImsException.CODE_ERROR_SERVICE_UNAVAILABLE,
+ "ImsService set up in progress for subId " + subId
+ + ", please try again");
+ }
+
+ /**
* Throw an ImsException if the IMS resolver does not have an ImsService configured for RCS
* for the given slot ID or no ImsResolver instance has been created.
* @param slotId The slot ID that the IMS service is created for.
diff --git a/src/com/android/phone/ImsStateCallbackController.java b/src/com/android/phone/ImsStateCallbackController.java
index 57c1787..edad754 100644
--- a/src/com/android/phone/ImsStateCallbackController.java
+++ b/src/com/android/phone/ImsStateCallbackController.java
@@ -68,6 +68,7 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executor;
/**
@@ -143,6 +144,10 @@
private final SparseArray<MmTelFeatureListener> mMmTelFeatureListeners = new SparseArray<>();
private final SparseArray<RcsFeatureListener> mRcsFeatureListeners = new SparseArray<>();
+ // Container to store ImsManager instance by subId
+ private final ConcurrentHashMap<Integer, ImsManager> mSubIdToImsManagerCache =
+ new ConcurrentHashMap<>();
+
private final SubscriptionManager mSubscriptionManager;
private final TelephonyRegistryManager mTelephonyRegistryManager;
private MmTelFeatureConnectorFactory mMmTelFeatureFactory;
@@ -282,6 +287,13 @@
if (mSubId == subId) return;
logd(mLogPrefix + "setSubId changed subId=" + subId);
+ // subId changed from valid to invalid
+ if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ if (VDBG) logv(mLogPrefix + "setSubId remove ImsManager " + mSubId);
+ // remove ImsManager reference associated with subId
+ mSubIdToImsManagerCache.remove(mSubId);
+ }
+
mSubId = subId;
}
@@ -298,6 +310,12 @@
mSubId = subId;
if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) return;
+ // store ImsManager reference associated with subId
+ if (manager != null) {
+ if (VDBG) logv(mLogPrefix + "connectionReady add ImsManager " + subId);
+ mSubIdToImsManagerCache.put(subId, manager);
+ }
+
mState = STATE_READY;
mReason = AVAILABLE;
mHasConfig = true;
@@ -311,6 +329,10 @@
reason = convertReasonType(reason);
if (mReason == reason) return;
+ // remove ImsManager reference associated with subId
+ if (VDBG) logv(mLogPrefix + "connectionUnavailable remove ImsManager " + mSubId);
+ mSubIdToImsManagerCache.remove(mSubId);
+
connectionUnavailableInternal(reason);
}
@@ -319,7 +341,7 @@
mReason = reason;
/* If having no IMS package for MMTEL,
- * dicard the reason except REASON_NO_IMS_SERVICE_CONFIGURED. */
+ * discard the reason except REASON_NO_IMS_SERVICE_CONFIGURED. */
if (!mHasConfig && reason != REASON_NO_IMS_SERVICE_CONFIGURED) return;
onFeatureStateChange(mSubId, FEATURE_MMTEL, mState, mReason);
@@ -973,6 +995,19 @@
mHandler.sendMessage(mHandler.obtainMessage(EVENT_UNREGISTER_CALLBACK, cb));
}
+ /**
+ * Get ImsManager reference associated with subId
+ *
+ * @param subId subscribe ID
+ * @return instance of ImsManager associated with subId, but if ImsService is not
+ * available return null
+ */
+ public ImsManager getImsManager(int subId) {
+ if (VDBG) logv("getImsManager subId = " + subId);
+
+ return mSubIdToImsManagerCache.get(subId);
+ }
+
private void removeInactiveCallbacks(
ArrayList<IBinder> inactiveCallbacks, String message) {
if (inactiveCallbacks == null || inactiveCallbacks.size() == 0) return;
diff --git a/src/com/android/phone/NotificationMgr.java b/src/com/android/phone/NotificationMgr.java
index 226664d..27e1606 100644
--- a/src/com/android/phone/NotificationMgr.java
+++ b/src/com/android/phone/NotificationMgr.java
@@ -59,6 +59,7 @@
import android.util.SparseArray;
import android.widget.Toast;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.RILConstants;
@@ -166,7 +167,8 @@
* Private constructor (this is a singleton).
* @see #init(PhoneGlobals)
*/
- private NotificationMgr(PhoneGlobals app) {
+ @VisibleForTesting
+ /* package */ NotificationMgr(PhoneGlobals app) {
mApp = app;
mContext = app;
mStatusBarManager =
@@ -904,15 +906,16 @@
// can be overridden to hide the network selection to the end user. In this case, the
// notification is not shown to avoid confusion to the end user.
if (!shouldDisplayNetworkSelectOptions(subId)) {
- logi("Skipping network selection unavailable notification due to carrier policy.");
+ logi("Carrier configs refuse to show network selection not available notification");
return;
}
- // In unstable network condition, the phone may go in and out of service. Add logic here to
- // debounce the network selection notification. The notification only shows after phone is
- // out of service, AND fulfills one of the two conditions below:
- // - Out of service lasts {@link #NETWORK_SELECTION_NOTIFICATION_MAX_PENDING_TIME_IN_MS}
- // - Or has checked {@link #NETWORK_SELECTION_NOTIFICATION_MAX_PENDING_TIMES} times
+ // In case network selection notification shows up repeatedly under
+ // unstable network condition. The logic is to check whether or not
+ // the service state keeps in no service condition for at least
+ // {@link #NETWORK_SELECTION_NOTIFICATION_MAX_PENDING_TIME_IN_MS}.
+ // And checking {@link #NETWORK_SELECTION_NOTIFICATION_MAX_PENDING_TIMES} times.
+ // To avoid the notification showing up for the momentary state.
if (serviceState == ServiceState.STATE_OUT_OF_SERVICE) {
if (mPreviousServiceState.get(subId, STATE_UNKNOWN_SERVICE)
!= ServiceState.STATE_OUT_OF_SERVICE) {
@@ -939,36 +942,10 @@
}
}
- private void startPendingNetworkSelectionNotification(int subId) {
- if (!mHandler.hasMessages(EVENT_PENDING_NETWORK_SELECTION_NOTIFICATION, subId)) {
- if (DBG) {
- log("startPendingNetworkSelectionNotification: subId = " + subId);
- }
- mHandler.sendMessageDelayed(
- mHandler.obtainMessage(EVENT_PENDING_NETWORK_SELECTION_NOTIFICATION, subId),
- NETWORK_SELECTION_NOTIFICATION_MAX_PENDING_TIME_IN_MS);
- mPendingEventCounter.put(subId, mPendingEventCounter.get(subId, 0) + 1);
- }
- }
-
- private void clearUpNetworkSelectionNotificationParam(int subId) {
- if (mHandler.hasMessages(EVENT_PENDING_NETWORK_SELECTION_NOTIFICATION, subId)) {
- mHandler.removeMessages(EVENT_PENDING_NETWORK_SELECTION_NOTIFICATION, subId);
- }
- mPreviousServiceState.remove(subId);
- mOOSTimestamp.remove(subId);
- mPendingEventCounter.remove(subId);
- mSelectedNetworkOperatorName.remove(subId);
- }
-
- private static long getTimeStamp() {
- return SystemClock.elapsedRealtime();
- }
-
// TODO(b/243010310): merge methods below with Settings#MobileNetworkUtils and optimize them.
// The methods below are copied from com.android.settings.network.telephony.MobileNetworkUtils
- // to make sure the network selection unavailable notification should not show when network
- // selection menu is not visible to the end user in Settings app.
+ // to make sure the network selection unavailable notification should not show when Network
+ // Selection menu is not present in Settings app.
private boolean shouldDisplayNetworkSelectOptions(int subId) {
final TelephonyManager telephonyManager = mTelephonyManager.createForSubscriptionId(subId);
final CarrierConfigManager carrierConfigManager = mContext.getSystemService(
@@ -1071,4 +1048,30 @@
return false;
}
// END of TODO:(b/243010310): merge methods above with Settings#MobileNetworkUtils and optimize.
+
+ private void startPendingNetworkSelectionNotification(int subId) {
+ if (!mHandler.hasMessages(EVENT_PENDING_NETWORK_SELECTION_NOTIFICATION, subId)) {
+ if (DBG) {
+ log("startPendingNetworkSelectionNotification: subId = " + subId);
+ }
+ mHandler.sendMessageDelayed(
+ mHandler.obtainMessage(EVENT_PENDING_NETWORK_SELECTION_NOTIFICATION, subId),
+ NETWORK_SELECTION_NOTIFICATION_MAX_PENDING_TIME_IN_MS);
+ mPendingEventCounter.put(subId, mPendingEventCounter.get(subId, 0) + 1);
+ }
+ }
+
+ private void clearUpNetworkSelectionNotificationParam(int subId) {
+ if (mHandler.hasMessages(EVENT_PENDING_NETWORK_SELECTION_NOTIFICATION, subId)) {
+ mHandler.removeMessages(EVENT_PENDING_NETWORK_SELECTION_NOTIFICATION, subId);
+ }
+ mPreviousServiceState.remove(subId);
+ mOOSTimestamp.remove(subId);
+ mPendingEventCounter.remove(subId);
+ mSelectedNetworkOperatorName.remove(subId);
+ }
+
+ private static long getTimeStamp() {
+ return SystemClock.elapsedRealtime();
+ }
}
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index f6ec75d..abbd816 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -49,7 +49,6 @@
import android.telephony.TelephonyCallback;
import android.telephony.TelephonyLocalConnection;
import android.telephony.TelephonyManager;
-import android.telephony.data.ApnSetting;
import android.util.LocalLog;
import android.util.Log;
import android.widget.Toast;
@@ -68,8 +67,6 @@
import com.android.internal.telephony.TelephonyComponentFactory;
import com.android.internal.telephony.TelephonyIntents;
import com.android.internal.telephony.data.DataEvaluation.DataDisallowedReason;
-import com.android.internal.telephony.dataconnection.DataConnectionReasons;
-import com.android.internal.telephony.dataconnection.DataConnectionReasons.DataDisallowedReasonType;
import com.android.internal.telephony.ims.ImsResolver;
import com.android.internal.telephony.imsphone.ImsPhone;
import com.android.internal.telephony.imsphone.ImsPhoneCallTracker;
@@ -891,22 +888,13 @@
boolean dataAllowed;
boolean notAllowedDueToRoamingOff;
- if (phone.isUsingNewDataStack()) {
- List<DataDisallowedReason> reasons = phone.getDataNetworkController()
- .getInternetDataDisallowedReasons();
- dataAllowed = reasons.isEmpty();
- notAllowedDueToRoamingOff = (reasons.size() == 1
- && reasons.contains(DataDisallowedReason.ROAMING_DISABLED));
- mDataRoamingNotifLog.log("dataAllowed=" + dataAllowed + ", reasons=" + reasons);
- if (VDBG) Log.v(LOG_TAG, "dataAllowed=" + dataAllowed + ", reasons=" + reasons);
- } else {
- DataConnectionReasons reasons = new DataConnectionReasons();
- dataAllowed = phone.isDataAllowed(ApnSetting.TYPE_DEFAULT, reasons);
- notAllowedDueToRoamingOff = reasons.containsOnly(
- DataDisallowedReasonType.ROAMING_DISABLED);
- mDataRoamingNotifLog.log("dataAllowed=" + dataAllowed + ", reasons=" + reasons);
- if (VDBG) Log.v(LOG_TAG, "dataAllowed=" + dataAllowed + ", reasons=" + reasons);
- }
+ List<DataDisallowedReason> reasons = phone.getDataNetworkController()
+ .getInternetDataDisallowedReasons();
+ dataAllowed = reasons.isEmpty();
+ notAllowedDueToRoamingOff = (reasons.size() == 1
+ && reasons.contains(DataDisallowedReason.ROAMING_DISABLED));
+ mDataRoamingNotifLog.log("dataAllowed=" + dataAllowed + ", reasons=" + reasons);
+ if (VDBG) Log.v(LOG_TAG, "dataAllowed=" + dataAllowed + ", reasons=" + reasons);
if (!dataAllowed && notAllowedDueToRoamingOff) {
// No need to show it again if we never cancelled it explicitly.
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index f8897e8..27d1de3 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -78,6 +78,7 @@
import android.telephony.Annotation.ApnType;
import android.telephony.Annotation.DataActivityType;
import android.telephony.Annotation.ThermalMitigationResult;
+import android.telephony.AnomalyReporter;
import android.telephony.CallForwardingInfo;
import android.telephony.CarrierConfigManager;
import android.telephony.CarrierRestrictionRules;
@@ -185,7 +186,6 @@
import com.android.internal.telephony.TelephonyIntents;
import com.android.internal.telephony.TelephonyPermissions;
import com.android.internal.telephony.data.DataUtils;
-import com.android.internal.telephony.dataconnection.ApnSettingUtils;
import com.android.internal.telephony.emergency.EmergencyNumberTracker;
import com.android.internal.telephony.euicc.EuiccConnector;
import com.android.internal.telephony.ims.ImsResolver;
@@ -211,6 +211,7 @@
import com.android.phone.callcomposer.CallComposerPictureTransfer;
import com.android.phone.callcomposer.ImageData;
import com.android.phone.settings.PickSmsSubscriptionActivity;
+import com.android.phone.slice.SlicePurchaseController;
import com.android.phone.vvm.PhoneAccountHandleConverter;
import com.android.phone.vvm.RemoteVvmTaskManager;
import com.android.phone.vvm.VisualVoicemailSettingsUtil;
@@ -236,6 +237,7 @@
import java.util.NoSuchElementException;
import java.util.Objects;
import java.util.Set;
+import java.util.UUID;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Consumer;
@@ -359,6 +361,8 @@
private static final int EVENT_ENABLE_VONR_DONE = 114;
private static final int CMD_IS_VONR_ENABLED = 115;
private static final int EVENT_IS_VONR_ENABLED_DONE = 116;
+ private static final int CMD_PURCHASE_PREMIUM_CAPABILITY = 117;
+ private static final int EVENT_PURCHASE_PREMIUM_CAPABILITY_DONE = 118;
// Parameters of select command.
private static final int SELECT_COMMAND = 0xA4;
@@ -408,6 +412,9 @@
private static final int SET_DATA_THROTTLING_MODEM_THREW_INVALID_PARAMS = -1;
private static final int MODEM_DOES_NOT_SUPPORT_DATA_THROTTLING_ERROR_CODE = -2;
+ private static final String PURCHASE_PREMIUM_CAPABILITY_ERROR_UUID =
+ "24bf97a6-e8a6-44d8-a6a4-255d7548733c";
+
/**
* Experiment flag to enable erase modem config on reset network, default value is false
*/
@@ -467,6 +474,19 @@
}
}
+ private static final class PurchasePremiumCapabilityArgument {
+ public @TelephonyManager.PremiumCapability int capability;
+ public @NonNull String appName;
+ public @NonNull IIntegerConsumer callback;
+
+ PurchasePremiumCapabilityArgument(@TelephonyManager.PremiumCapability int capability,
+ @NonNull String appName, @NonNull IIntegerConsumer callback) {
+ this.capability = capability;
+ this.appName = appName;
+ this.callback = callback;
+ }
+ }
+
/**
* A request object for use with {@link MainThreadHandler}. Requesters should wait() on the
* request after sending. The main thread will notify the request when it is complete.
@@ -2135,6 +2155,39 @@
break;
}
+ case CMD_PURCHASE_PREMIUM_CAPABILITY: {
+ request = (MainThreadRequest) msg.obj;
+ onCompleted = obtainMessage(EVENT_PURCHASE_PREMIUM_CAPABILITY_DONE, request);
+ PurchasePremiumCapabilityArgument arg =
+ (PurchasePremiumCapabilityArgument) request.argument;
+ SlicePurchaseController.getInstance(request.phone).purchasePremiumCapability(
+ arg.capability, arg.appName, onCompleted);
+ break;
+ }
+
+ case EVENT_PURCHASE_PREMIUM_CAPABILITY_DONE: {
+ ar = (AsyncResult) msg.obj;
+ request = (MainThreadRequest) ar.userObj;
+ PurchasePremiumCapabilityArgument arg =
+ (PurchasePremiumCapabilityArgument) request.argument;
+ try {
+ int result = (int) ar.result;
+ arg.callback.accept(result);
+ log("purchasePremiumCapability: capability="
+ + TelephonyManager.convertPremiumCapabilityToString(arg.capability)
+ + ", result= "
+ + TelephonyManager.convertPurchaseResultToString(result));
+ } catch (RemoteException e) {
+ String logStr = "Purchase premium capability "
+ + TelephonyManager.convertPremiumCapabilityToString(arg.capability)
+ + " failed: " + e;
+ if (DBG) log(logStr);
+ AnomalyReporter.reportAnomaly(
+ UUID.fromString(PURCHASE_PREMIUM_CAPABILITY_ERROR_UUID), logStr);
+ }
+ break;
+ }
+
case CMD_PREPARE_UNATTENDED_REBOOT:
request = (MainThreadRequest) msg.obj;
request.result =
@@ -2856,6 +2909,95 @@
}
}
+ /**
+ * Vote on powering off the radio for a reason. The radio will be turned on only when there is
+ * no reason to power it off. When any of the voters want to power it off, it will be turned
+ * off. In case of emergency, the radio will be turned on even if there are some reasons for
+ * powering it off, and these radio off votes will be cleared.
+ * Multiple apps can vote for the same reason and the last vote will take effect. Each app is
+ * responsible for its vote. A powering-off vote of a reason will be maintained until it is
+ * cleared by calling {@link clearRadioPowerOffForReason} for that reason, or an emergency call
+ * is made, or the device is rebooted. When an app comes backup from a crash, it needs to make
+ * sure if its vote is as expected. An app can use the API {@link getRadioPowerOffReasons} to
+ * check its vote.
+ *
+ * @param subId The subscription ID.
+ * @param reason The reason for powering off radio.
+ * @return true on success and false on failure.
+ */
+ public boolean requestRadioPowerOffForReason(int subId,
+ @TelephonyManager.RadioPowerReason int reason) {
+ enforceModifyPermission();
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ final Phone phone = getPhone(subId);
+ if (phone != null) {
+ phone.setRadioPowerForReason(false, reason);
+ return true;
+ } else {
+ return false;
+ }
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ /**
+ * Remove the vote on powering off the radio for a reason, as requested by
+ * {@link requestRadioPowerOffForReason}.
+ *
+ * @param subId The subscription ID.
+ * @param reason The reason for powering off radio.
+ * @return true on success and false on failure.
+ */
+ public boolean clearRadioPowerOffForReason(int subId,
+ @TelephonyManager.RadioPowerReason int reason) {
+ enforceModifyPermission();
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ final Phone phone = getPhone(subId);
+ if (phone != null) {
+ phone.setRadioPowerForReason(true, reason);
+ return true;
+ } else {
+ return false;
+ }
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ /**
+ * Get reasons for powering off radio, as requested by {@link requestRadioPowerOffForReason}.
+ *
+ * @param subId The subscription ID.
+ * @param callingPackage The package making the call.
+ * @param callingFeatureId The feature in the package.
+ * @return List of reasons for powering off radio.
+ */
+ public List getRadioPowerOffReasons(int subId, String callingPackage, String callingFeatureId) {
+ enforceReadPrivilegedPermission("getRadioPowerOffReasons");
+
+ final long identity = Binder.clearCallingIdentity();
+ List result = new ArrayList();
+ try {
+ if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp, subId,
+ callingPackage, callingFeatureId, "getRadioPowerOffReasons")) {
+ return result;
+ }
+
+ final Phone phone = getPhone(subId);
+ if (phone != null) {
+ result.addAll(phone.getRadioPowerOffReasons());
+ }
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ return result;
+ }
+
// FIXME: subId version needed
@Override
public boolean enableDataConnectivity(String callingPackage) {
@@ -2866,13 +3008,8 @@
int subId = mSubscriptionController.getDefaultDataSubId();
final Phone phone = getPhone(subId);
if (phone != null) {
- if (phone.isUsingNewDataStack()) {
- phone.getDataSettingsManager().setDataEnabled(
- TelephonyManager.DATA_ENABLED_REASON_USER, true, callingPackage);
- } else {
- phone.getDataEnabledSettings().setDataEnabled(
- TelephonyManager.DATA_ENABLED_REASON_USER, true);
- }
+ phone.getDataSettingsManager().setDataEnabled(
+ TelephonyManager.DATA_ENABLED_REASON_USER, true, callingPackage);
return true;
} else {
return false;
@@ -2892,13 +3029,8 @@
int subId = mSubscriptionController.getDefaultDataSubId();
final Phone phone = getPhone(subId);
if (phone != null) {
- if (phone.isUsingNewDataStack()) {
- phone.getDataSettingsManager().setDataEnabled(
- TelephonyManager.DATA_ENABLED_REASON_USER, false, callingPackage);
- } else {
- phone.getDataEnabledSettings().setDataEnabled(
- TelephonyManager.DATA_ENABLED_REASON_USER, false);
- }
+ phone.getDataSettingsManager().setDataEnabled(
+ TelephonyManager.DATA_ENABLED_REASON_USER, false, callingPackage);
return true;
} else {
return false;
@@ -3014,10 +3146,7 @@
try {
final Phone phone = getPhone(subId);
if (phone != null) {
- if (phone.isUsingNewDataStack()) {
- return phone.getDataNetworkController().getInternetDataNetworkState();
- }
- return PhoneConstantConversions.convertDataState(phone.getDataConnectionState());
+ return phone.getDataNetworkController().getInternetDataNetworkState();
} else {
return PhoneConstantConversions.convertDataState(
PhoneConstants.DataState.DISCONNECTED);
@@ -3283,13 +3412,18 @@
}
@Override
- public void setCellInfoListRate(int rateInMillis) {
+ public void setCellInfoListRate(int rateInMillis, int subId) {
enforceModifyPermission();
WorkSource workSource = getWorkSource(Binder.getCallingUid());
final long identity = Binder.clearCallingIdentity();
try {
- getDefaultPhone().setCellInfoListRate(rateInMillis, workSource);
+ Phone phone = getPhone(subId);
+ if (phone == null) {
+ getDefaultPhone().setCellInfoListRate(rateInMillis, workSource);
+ } else {
+ phone.setCellInfoListRate(rateInMillis, workSource);
+ }
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -4051,7 +4185,18 @@
try {
int slotId = getSlotIndexOrException(subId);
verifyImsMmTelConfiguredOrThrow(slotId);
- ImsManager.getInstance(mApp, slotId).addRegistrationCallbackForSubscription(c, subId);
+
+ ImsStateCallbackController controller = ImsStateCallbackController.getInstance();
+ if (controller != null) {
+ ImsManager imsManager = controller.getImsManager(subId);
+ if (imsManager != null) {
+ imsManager.addRegistrationCallbackForSubscription(c, subId);
+ } else {
+ throw new ServiceSpecificException(ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+ }
+ } else {
+ throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION);
+ }
} catch (ImsException e) {
throw new ServiceSpecificException(e.getCode());
} finally {
@@ -4072,14 +4217,20 @@
throw new IllegalArgumentException("Invalid Subscription ID: " + subId);
}
final long token = Binder.clearCallingIdentity();
+
try {
- ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
- .removeRegistrationCallbackForSubscription(c, subId);
- } catch (ImsException e) {
- Log.i(LOG_TAG, "unregisterImsRegistrationCallback: " + subId
- + "is inactive, ignoring unregister.");
- // If the subscription is no longer active, just return, since the callback
- // will already have been removed internally.
+ ImsStateCallbackController controller = ImsStateCallbackController.getInstance();
+ if (controller != null) {
+ ImsManager imsManager = controller.getImsManager(subId);
+ if (imsManager != null) {
+ imsManager.removeRegistrationCallbackForSubscription(c, subId);
+ } else {
+ Log.i(LOG_TAG, "unregisterImsRegistrationCallback: " + subId
+ + "is inactive, ignoring unregister.");
+ // If the ImsManager is not valid, just return, since the callback
+ // will already have been removed internally.
+ }
+ }
} finally {
Binder.restoreCallingIdentity(token);
}
@@ -5694,8 +5845,7 @@
// may happen if the does not support IMS.
return;
}
- mImsResolver.disableIms(slotIndex);
- mImsResolver.enableIms(slotIndex);
+ mImsResolver.resetIms(slotIndex);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -6597,10 +6747,10 @@
try {
mApp.enforceCallingOrSelfPermission(permission.READ_BASIC_PHONE_STATE,
functionName);
- } catch (Exception e) {
+ } catch (SecurityException e) {
mApp.enforceCallingOrSelfPermission(permission.ACCESS_NETWORK_STATE, functionName);
}
- } catch (Exception e) {
+ } catch (SecurityException e) {
TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
mApp, subId, functionName);
@@ -6639,17 +6789,17 @@
mApp.enforceCallingOrSelfPermission(
android.Manifest.permission.ACCESS_NETWORK_STATE,
functionName);
- } catch (Exception e) {
+ } catch (SecurityException e) {
try {
mApp.enforceCallingOrSelfPermission(
android.Manifest.permission.READ_PHONE_STATE,
functionName);
- } catch (Exception e2) {
+ } catch (SecurityException e2) {
mApp.enforceCallingOrSelfPermission(
permission.READ_BASIC_PHONE_STATE, functionName);
}
}
- } catch (Exception e) {
+ } catch (SecurityException e) {
enforceReadPrivilegedPermission(functionName);
}
@@ -6658,12 +6808,7 @@
int phoneId = mSubscriptionController.getPhoneId(subId);
Phone phone = PhoneFactory.getPhone(phoneId);
if (phone != null) {
- boolean retVal;
- if (phone.isUsingNewDataStack()) {
- retVal = phone.getDataSettingsManager().isDataEnabled();
- } else {
- retVal = phone.getDataEnabledSettings().isDataEnabled();
- }
+ boolean retVal = phone.getDataSettingsManager().isDataEnabled();
if (DBG) log("isDataEnabled: " + retVal + ", subId=" + subId);
return retVal;
} else {
@@ -6690,15 +6835,15 @@
mApp.enforceCallingOrSelfPermission(
android.Manifest.permission.ACCESS_NETWORK_STATE,
functionName);
- } catch (Exception e) {
+ } catch (SecurityException e) {
mApp.enforceCallingOrSelfPermission(permission.READ_BASIC_PHONE_STATE,
functionName);
}
- } catch (Exception e) {
+ } catch (SecurityException e) {
try {
mApp.enforceCallingOrSelfPermission(android.Manifest.permission.READ_PHONE_STATE,
functionName);
- } catch (Exception e2) {
+ } catch (SecurityException e2) {
TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
mApp, subId, functionName);
}
@@ -6715,15 +6860,7 @@
Phone phone = PhoneFactory.getPhone(phoneId);
if (phone != null) {
boolean retVal;
- if (phone.isUsingNewDataStack()) {
- retVal = phone.getDataSettingsManager().isDataEnabledForReason(reason);
- } else {
- if (reason == TelephonyManager.DATA_ENABLED_REASON_USER) {
- retVal = phone.isUserDataEnabled();
- } else {
- retVal = phone.getDataEnabledSettings().isDataEnabledForReason(reason);
- }
- }
+ retVal = phone.getDataSettingsManager().isDataEnabledForReason(reason);
if (DBG) log("isDataEnabledForReason: retVal=" + retVal);
return retVal;
} else {
@@ -7714,7 +7851,7 @@
if (!localeFromDefaultSim.getCountry().isEmpty()) {
if (DBG) log("Using locale from subId: " + subId + " locale: "
+ localeFromDefaultSim);
- return matchLocaleFromSupportedLocaleList(localeFromDefaultSim);
+ return matchLocaleFromSupportedLocaleList(phone, localeFromDefaultSim);
} else {
simLanguage = localeFromDefaultSim.getLanguage();
}
@@ -7727,7 +7864,7 @@
final Locale mccLocale = LocaleUtils.getLocaleFromMcc(mApp, mcc, simLanguage);
if (mccLocale != null) {
if (DBG) log("No locale from SIM, using mcc locale:" + mccLocale);
- return matchLocaleFromSupportedLocaleList(mccLocale);
+ return matchLocaleFromSupportedLocaleList(phone, mccLocale);
}
if (DBG) log("No locale found - returning null");
@@ -7738,13 +7875,12 @@
}
@VisibleForTesting
- String matchLocaleFromSupportedLocaleList(@NonNull Locale inputLocale) {
+ String matchLocaleFromSupportedLocaleList(Phone phone, @NonNull Locale inputLocale) {
String[] supportedLocale = com.android.internal.app.LocalePicker.getSupportedLocales(
- getDefaultPhone().getContext());
+ phone.getContext());
for (String localeTag : supportedLocale) {
- if (LocaleList.matchesLanguageAndScript(
- inputLocale, Locale.forLanguageTag(localeTag))
- && inputLocale.getCountry().equals(
+ if (LocaleList.matchesLanguageAndScript(inputLocale, Locale.forLanguageTag(localeTag))
+ && TextUtils.equals(inputLocale.getCountry(),
Locale.forLanguageTag(localeTag).getCountry())) {
return localeTag;
}
@@ -8476,12 +8612,8 @@
if (reason == TelephonyManager.DATA_ENABLED_REASON_CARRIER) {
phone.carrierActionSetMeteredApnsEnabled(enabled);
} else {
- if (phone.isUsingNewDataStack()) {
- phone.getDataSettingsManager().setDataEnabled(
- reason, enabled, callingPackage);
- } else {
- phone.getDataEnabledSettings().setDataEnabled(reason, enabled);
- }
+ phone.getDataSettingsManager().setDataEnabled(
+ reason, enabled, callingPackage);
}
}
} finally {
@@ -8692,11 +8824,11 @@
mApp.enforceCallingOrSelfPermission(
android.Manifest.permission.ACCESS_NETWORK_STATE,
functionName);
- } catch (Exception e) {
+ } catch (SecurityException e) {
mApp.enforceCallingOrSelfPermission(
permission.READ_BASIC_PHONE_STATE, functionName);
}
- } catch (Exception e) {
+ } catch (SecurityException e) {
TelephonyPermissions.enforceCallingOrSelfReadPhoneStatePermissionOrCarrierPrivilege(
mApp, subId, functionName);
}
@@ -9258,9 +9390,11 @@
final long identity = Binder.clearCallingIdentity();
try {
for (Phone phone: PhoneFactory.getPhones()) {
+ //Note: we ignore passed in param exactMatch. We can remove it once
+ // TelephonyManager#isPotentialEmergencyNumber is removed completely
if (phone.getEmergencyNumberTracker() != null
&& phone.getEmergencyNumberTracker()
- .isEmergencyNumber(number, exactMatch)) {
+ .isEmergencyNumber(number)) {
return true;
}
}
@@ -9691,15 +9825,10 @@
boolean isMetered;
boolean isDataEnabled;
- if (phone.isUsingNewDataStack()) {
- isMetered = phone.getDataNetworkController().getDataConfigManager()
- .isMeteredCapability(DataUtils.apnTypeToNetworkCapability(apnType),
- phone.getServiceState().getDataRoaming());
- isDataEnabled = phone.getDataSettingsManager().isDataEnabled(apnType);
- } else {
- isMetered = ApnSettingUtils.isMeteredApnType(apnType, phone);
- isDataEnabled = phone.getDataEnabledSettings().isDataEnabled(apnType);
- }
+ isMetered = phone.getDataNetworkController().getDataConfigManager()
+ .isMeteredCapability(DataUtils.apnTypeToNetworkCapability(apnType),
+ phone.getServiceState().getDataRoaming());
+ isDataEnabled = phone.getDataSettingsManager().isDataEnabled(apnType);
return !isMetered || isDataEnabled;
} finally {
Binder.restoreCallingIdentity(identity);
@@ -9715,13 +9844,9 @@
try {
Phone phone = getPhone(subId);
if (phone == null) return true; // By default return true.
- if (phone.isUsingNewDataStack()) {
- return phone.getDataNetworkController().getDataConfigManager().isMeteredCapability(
- DataUtils.apnTypeToNetworkCapability(apnType),
- phone.getServiceState().getDataRoaming());
- }
-
- return ApnSettingUtils.isMeteredApnType(apnType, phone);
+ return phone.getDataNetworkController().getDataConfigManager().isMeteredCapability(
+ DataUtils.apnTypeToNetworkCapability(apnType),
+ phone.getServiceState().getDataRoaming());
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -9851,22 +9976,7 @@
Phone phone = getPhone(subscriptionId);
if (phone == null) return false;
- switch (policy) {
- case TelephonyManager.MOBILE_DATA_POLICY_DATA_ON_NON_DEFAULT_DURING_VOICE_CALL:
- if (phone.isUsingNewDataStack()) {
- return phone.getDataSettingsManager().isDataAllowedInVoiceCall();
- } else {
- return phone.getDataEnabledSettings().isDataAllowedInVoiceCall();
- }
- case TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED:
- if (phone.isUsingNewDataStack()) {
- return phone.getDataSettingsManager().isMmsAlwaysAllowed();
- } else {
- return phone.getDataEnabledSettings().isMmsAlwaysAllowed();
- }
- default:
- throw new IllegalArgumentException(policy + " is not a valid policy");
- }
+ return phone.getDataSettingsManager().isMobileDataPolicyEnabled(policy);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -9882,24 +9992,7 @@
Phone phone = getPhone(subscriptionId);
if (phone == null) return;
- switch (policy) {
- case TelephonyManager.MOBILE_DATA_POLICY_DATA_ON_NON_DEFAULT_DURING_VOICE_CALL:
- if (phone.isUsingNewDataStack()) {
- phone.getDataSettingsManager().setAllowDataDuringVoiceCall(enabled);
- } else {
- phone.getDataEnabledSettings().setAllowDataDuringVoiceCall(enabled);
- }
- break;
- case TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED:
- if (phone.isUsingNewDataStack()) {
- phone.getDataSettingsManager().setAlwaysAllowMmsData(enabled);
- } else {
- phone.getDataEnabledSettings().setAlwaysAllowMmsData(enabled);
- }
- break;
- default:
- throw new IllegalArgumentException(policy + " is not a valid policy");
- }
+ phone.getDataSettingsManager().setMobileDataPolicy(policy, enabled);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -10175,7 +10268,7 @@
for (int i = 0; i < TelephonyManager.getDefault().getActiveModemCount(); i++) {
Phone phone = PhoneFactory.getPhone(i);
if (phone != null) {
- phone.setRadioPowerForReason(enable, Phone.RADIO_POWER_REASON_THERMAL);
+ phone.setRadioPowerForReason(enable, TelephonyManager.RADIO_POWER_REASON_THERMAL);
isPhoneAvailable = true;
}
}
@@ -11154,6 +11247,69 @@
}
/**
+ * Check whether the given premium capability is available for purchase from the carrier.
+ *
+ * @param capability The premium capability to check.
+ * @param subId The subId to check the premium capability for.
+ *
+ * @return Whether the given premium capability is available to purchase.
+ */
+ @Override
+ public boolean isPremiumCapabilityAvailableForPurchase(int capability, int subId) {
+ if (!TelephonyPermissions.checkCallingOrSelfReadNonDangerousPhoneStateNoThrow(
+ mApp, "isPremiumCapabilityAvailableForPurchase")) {
+ log("Premium capability "
+ + TelephonyManager.convertPremiumCapabilityToString(capability)
+ + " is not available for purchase due to missing permissions.");
+ throw new SecurityException("isPremiumCapabilityAvailableForPurchase requires "
+ + "permission READ_BASIC_PHONE_STATE.");
+ }
+
+ Phone phone = getPhone(subId);
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ return SlicePurchaseController.getInstance(phone)
+ .isPremiumCapabilityAvailableForPurchase(capability);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ /**
+ * Purchase the given premium capability from the carrier.
+ *
+ * @param capability The premium capability to purchase.
+ * @param callback The result of the purchase request.
+ * @param subId The subId to purchase the premium capability for.
+ */
+ @Override
+ public void purchasePremiumCapability(int capability, IIntegerConsumer callback, int subId) {
+ log("purchasePremiumCapability: capability="
+ + TelephonyManager.convertPremiumCapabilityToString(capability) + ", caller="
+ + getCurrentPackageName());
+
+ if (!TelephonyPermissions.checkCallingOrSelfReadNonDangerousPhoneStateNoThrow(
+ mApp, "purchasePremiumCapability")) {
+ log("purchasePremiumCapability "
+ + TelephonyManager.convertPremiumCapabilityToString(capability)
+ + " failed due to missing permissions.");
+ throw new SecurityException("purchasePremiumCapability requires permission "
+ + "READ_BASIC_PHONE_STATE.");
+ }
+
+ Phone phone = getPhone(subId);
+ String appName;
+ try {
+ appName = mApp.getPackageManager().getApplicationLabel(mApp.getPackageManager()
+ .getApplicationInfo(getCurrentPackageName(), 0)).toString();
+ } catch (PackageManager.NameNotFoundException e) {
+ appName = "An application";
+ }
+ sendRequestAsync(CMD_PURCHASE_PREMIUM_CAPABILITY,
+ new PurchasePremiumCapabilityArgument(capability, appName, callback), phone, null);
+ }
+
+ /**
* Register an IMS connection state callback
*/
@Override
@@ -11272,12 +11428,6 @@
}
}
- @Override
- public boolean isUsingNewDataStack() {
- TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "isUsingNewDataStack");
- return getDefaultPhone().isUsingNewDataStack();
- }
-
/**
* Sets the modem service class Name that Telephony will bind to.
*
diff --git a/src/com/android/phone/SubscriptionInfoHelper.java b/src/com/android/phone/SubscriptionInfoHelper.java
index 14faebc..f964f82 100644
--- a/src/com/android/phone/SubscriptionInfoHelper.java
+++ b/src/com/android/phone/SubscriptionInfoHelper.java
@@ -55,8 +55,8 @@
*/
public SubscriptionInfoHelper(Context context, Intent intent) {
mContext = context;
- PhoneAccountHandle phoneAccountHandle =
- intent.getParcelableExtra(TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE);
+ PhoneAccountHandle phoneAccountHandle = intent.getParcelableExtra(
+ TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE, PhoneAccountHandle.class);
if (phoneAccountHandle != null) {
mSubId = PhoneUtils.getSubIdForPhoneAccountHandle(phoneAccountHandle);
}
diff --git a/src/com/android/phone/TelephonyShellCommand.java b/src/com/android/phone/TelephonyShellCommand.java
index b4984ec..0cf120a 100644
--- a/src/com/android/phone/TelephonyShellCommand.java
+++ b/src/com/android/phone/TelephonyShellCommand.java
@@ -64,6 +64,7 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
@@ -168,12 +169,17 @@
private static final String ALLOW_THERMAL_MITIGATION_PACKAGE_SUBCOMMAND = "allow-package";
private static final String DISALLOW_THERMAL_MITIGATION_PACKAGE_SUBCOMMAND = "disallow-package";
+ private static final String INVALID_ENTRY_ERROR = "An emergency number (only allow '0'-'9', "
+ + "'*', '#' or '+') needs to be specified after -a in the command ";
+
+ private static final int[] ROUTING_TYPES = {EmergencyNumber.EMERGENCY_CALL_ROUTING_UNKNOWN,
+ EmergencyNumber.EMERGENCY_CALL_ROUTING_EMERGENCY,
+ EmergencyNumber.EMERGENCY_CALL_ROUTING_NORMAL};
+
private static final String GET_ALLOWED_NETWORK_TYPES_FOR_USER =
"get-allowed-network-types-for-users";
private static final String SET_ALLOWED_NETWORK_TYPES_FOR_USER =
"set-allowed-network-types-for-users";
- // Check if telephony new data stack is enabled.
- private static final String GET_DATA_MODE = "get-data-mode";
private static final String GET_IMEI = "get-imei";
private static final String GET_SIM_SLOTS_MAPPING = "get-sim-slots-mapping";
// Take advantage of existing methods that already contain permissions checks when possible.
@@ -329,8 +335,6 @@
case GET_ALLOWED_NETWORK_TYPES_FOR_USER:
case SET_ALLOWED_NETWORK_TYPES_FOR_USER:
return handleAllowedNetworkTypesCommand(cmd);
- case GET_DATA_MODE:
- return handleGetDataMode();
case GET_IMEI:
return handleGetImei();
case GET_SIM_SLOTS_MAPPING:
@@ -789,6 +793,24 @@
return 0;
}
+ private void removeEmergencyNumberTestMode(String emergencyNumber) {
+ PrintWriter errPw = getErrPrintWriter();
+ for (int routingType : ROUTING_TYPES) {
+ try {
+ mInterface.updateEmergencyNumberListTestMode(
+ EmergencyNumberTracker.REMOVE_EMERGENCY_NUMBER_TEST_MODE,
+ new EmergencyNumber(emergencyNumber, "", "",
+ EmergencyNumber.EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED,
+ new ArrayList<String>(),
+ EmergencyNumber.EMERGENCY_NUMBER_SOURCE_TEST,
+ routingType));
+ } catch (RemoteException ex) {
+ Log.w(LOG_TAG, "emergency-number-test-mode " + "error " + ex.getMessage());
+ errPw.println("Exception: " + ex.getMessage());
+ }
+ }
+ }
+
private int handleEmergencyNumberTestModeCommand() {
PrintWriter errPw = getErrPrintWriter();
String opt = getNextOption();
@@ -796,26 +818,52 @@
onHelpEmergencyNumber();
return 0;
}
-
switch (opt) {
case "-a": {
String emergencyNumberCmd = getNextArgRequired();
- if (emergencyNumberCmd == null
- || !EmergencyNumber.validateEmergencyNumberAddress(emergencyNumberCmd)) {
- errPw.println("An emergency number (only allow '0'-'9', '*', '#' or '+') needs"
- + " to be specified after -a in the command ");
+ if (emergencyNumberCmd == null){
+ errPw.println(INVALID_ENTRY_ERROR);
return -1;
}
+ String[] params = emergencyNumberCmd.split(":");
+ String emergencyNumber;
+ if (params[0] == null ||
+ !EmergencyNumber.validateEmergencyNumberAddress(params[0])){
+ errPw.println(INVALID_ENTRY_ERROR);
+ return -1;
+ } else {
+ emergencyNumber = params[0];
+ }
+ removeEmergencyNumberTestMode(emergencyNumber);
+ int emergencyCallRouting = EmergencyNumber.EMERGENCY_CALL_ROUTING_UNKNOWN;
+ if (params.length > 1) {
+ switch (params[1].toLowerCase(Locale.ROOT)) {
+ case "emergency":
+ emergencyCallRouting = EmergencyNumber.EMERGENCY_CALL_ROUTING_EMERGENCY;
+ break;
+ case "normal":
+ emergencyCallRouting = EmergencyNumber.EMERGENCY_CALL_ROUTING_NORMAL;
+ break;
+ case "unknown":
+ break;
+ default:
+ errPw.println("\"" + params[1] + "\" is not a valid specification for "
+ + "emergency call routing. Please enter either \"normal\", "
+ + "\"unknown\", or \"emergency\" for call routing. "
+ + "(-a 1234:normal)");
+ return -1;
+ }
+ }
try {
mInterface.updateEmergencyNumberListTestMode(
EmergencyNumberTracker.ADD_EMERGENCY_NUMBER_TEST_MODE,
- new EmergencyNumber(emergencyNumberCmd, "", "",
+ new EmergencyNumber(emergencyNumber, "", "",
EmergencyNumber.EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED,
new ArrayList<String>(),
EmergencyNumber.EMERGENCY_NUMBER_SOURCE_TEST,
- EmergencyNumber.EMERGENCY_CALL_ROUTING_UNKNOWN));
+ emergencyCallRouting));
} catch (RemoteException ex) {
- Log.w(LOG_TAG, "emergency-number-test-mode -a " + emergencyNumberCmd
+ Log.w(LOG_TAG, "emergency-number-test-mode -a " + emergencyNumber
+ ", error " + ex.getMessage());
errPw.println("Exception: " + ex.getMessage());
return -1;
@@ -841,20 +889,7 @@
+ " to be specified after -r in the command ");
return -1;
}
- try {
- mInterface.updateEmergencyNumberListTestMode(
- EmergencyNumberTracker.REMOVE_EMERGENCY_NUMBER_TEST_MODE,
- new EmergencyNumber(emergencyNumberCmd, "", "",
- EmergencyNumber.EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED,
- new ArrayList<String>(),
- EmergencyNumber.EMERGENCY_NUMBER_SOURCE_TEST,
- EmergencyNumber.EMERGENCY_CALL_ROUTING_UNKNOWN));
- } catch (RemoteException ex) {
- Log.w(LOG_TAG, "emergency-number-test-mode -r " + emergencyNumberCmd
- + ", error " + ex.getMessage());
- errPw.println("Exception: " + ex.getMessage());
- return -1;
- }
+ removeEmergencyNumberTestMode(emergencyNumberCmd);
break;
}
case "-p": {
@@ -1143,7 +1178,7 @@
return 0;
}
- boolean isEnabled = "true".equals(arg.toLowerCase());
+ boolean isEnabled = "true".equals(arg.toLowerCase(Locale.ROOT));
try {
mInterface.setDeviceToDeviceForceEnabled(isEnabled);
} catch (RemoteException e) {
@@ -2913,24 +2948,6 @@
}
}
- private int handleGetDataMode() {
- if (!checkShellUid()) {
- return -1;
- }
-
- boolean newDataStackEnabled = false;
- try {
- newDataStackEnabled = mInterface.isUsingNewDataStack();
- } catch (RemoteException e) {
- getOutPrintWriter().println("Something went wrong. " + e);
- return -1;
- }
-
- getOutPrintWriter().println("Telephony is running with the "
- + (newDataStackEnabled ? "new" : "old") + " data stack.");
- return 0;
- }
-
private int handleRadioSetModemServiceCommand() {
PrintWriter errPw = getErrPrintWriter();
String serviceName = null;
diff --git a/src/com/android/phone/callcomposer/DigestAuthUtils.java b/src/com/android/phone/callcomposer/DigestAuthUtils.java
index 2f081f7..770aadf 100644
--- a/src/com/android/phone/callcomposer/DigestAuthUtils.java
+++ b/src/com/android/phone/callcomposer/DigestAuthUtils.java
@@ -30,6 +30,7 @@
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.text.ParseException;
+import java.util.Locale;
public class DigestAuthUtils {
private static final String TAG = DigestAuthUtils.class.getSimpleName();
@@ -54,12 +55,12 @@
public static String generateAuthorizationHeader(WWWAuthenticate parsedHeader,
GbaCredentials credentials, String method, String uri) {
if (!TextUtils.isEmpty(parsedHeader.getAlgorithm())
- && !MD5_ALGORITHM.equals(parsedHeader.getAlgorithm().toLowerCase())) {
+ && !MD5_ALGORITHM.equals(parsedHeader.getAlgorithm().toLowerCase(Locale.ROOT))) {
Log.e(TAG, "This client only supports MD5 auth");
return "";
}
if (!TextUtils.isEmpty(parsedHeader.getQop())
- && !AUTH_QOP.equals(parsedHeader.getQop().toLowerCase())) {
+ && !AUTH_QOP.equals(parsedHeader.getQop().toLowerCase(Locale.ROOT))) {
Log.e(TAG, "This client only supports the auth qop");
return "";
}
@@ -137,7 +138,7 @@
}
private static String base16(byte[] input) {
- return BaseEncoding.base16().encode(input).toLowerCase();
+ return BaseEncoding.base16().encode(input).toLowerCase(Locale.ROOT);
}
private static MessageDigest getMd5Digest() {
diff --git a/src/com/android/phone/settings/RadioInfo.java b/src/com/android/phone/settings/RadioInfo.java
index 177be75..c6dbfc6 100644
--- a/src/com/android/phone/settings/RadioInfo.java
+++ b/src/com/android/phone/settings/RadioInfo.java
@@ -98,6 +98,7 @@
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.euicc.EuiccConnector;
+import com.android.internal.telephony.util.TelephonyUtils;
import com.android.phone.R;
import java.io.IOException;
@@ -264,6 +265,7 @@
private TextView mNetworkSlicingConfig;
private EditText mSmsc;
private Switch mRadioPowerOnSwitch;
+ private Switch mSimulateOutOfServiceSwitch;
private Button mCellInfoRefreshRateButton;
private Button mDnsCheckToggleButton;
private Button mPingTestButton;
@@ -299,6 +301,7 @@
private boolean mCfiValue = false;
private List<CellInfo> mCellInfoResult = null;
+ private final boolean[] mSimulateOos = new boolean[2];
private int mPreferredNetworkTypeResult;
private int mCellInfoRefreshRateIndex;
@@ -417,7 +420,7 @@
private void updatePhoneIndex(int phoneIndex, int subId) {
// unregister listeners on the old subId
unregisterPhoneStateListener();
- mTelephonyManager.setCellInfoListRate(sCellInfoListRateDisabled);
+ mTelephonyManager.setCellInfoListRate(sCellInfoListRateDisabled, mPhone.getSubId());
// update the subId
mTelephonyManager = mTelephonyManager.createForSubscriptionId(subId);
@@ -588,6 +591,11 @@
mRadioPowerOnSwitch = (Switch) findViewById(R.id.radio_power);
+ mSimulateOutOfServiceSwitch = (Switch) findViewById(R.id.simulate_out_of_service);
+ if (!TelephonyUtils.IS_DEBUGGABLE) {
+ mSimulateOutOfServiceSwitch.setVisibility(View.GONE);
+ }
+
mDownlinkKbps = (TextView) findViewById(R.id.dl_kbps);
mUplinkKbps = (TextView) findViewById(R.id.ul_kbps);
updateBandwidths(0, 0);
@@ -680,7 +688,8 @@
//set selection after registering listener to force update
mCellInfoRefreshRateSpinner.setSelection(mCellInfoRefreshRateIndex);
// Request cell information update from RIL.
- mTelephonyManager.setCellInfoListRate(CELL_INFO_REFRESH_RATES[mCellInfoRefreshRateIndex]);
+ mTelephonyManager.setCellInfoListRate(CELL_INFO_REFRESH_RATES[mCellInfoRefreshRateIndex],
+ mPhone.getSubId());
//set selection before registering to prevent update
mPreferredNetworkType.setSelection(mPreferredNetworkTypeResult, true);
@@ -697,6 +706,8 @@
mSelectPhoneIndex.setOnItemSelectedListener(mSelectPhoneIndexHandler);
mRadioPowerOnSwitch.setOnCheckedChangeListener(mRadioPowerOnChangeListener);
+ mSimulateOutOfServiceSwitch.setOnCheckedChangeListener(mSimulateOosOnChangeListener);
+ mSimulateOutOfServiceSwitch.setChecked(mSimulateOos[mPhone.getPhoneId()]);
mImsVolteProvisionedSwitch.setOnCheckedChangeListener(mImsVolteCheckedChangeListener);
mImsVtProvisionedSwitch.setOnCheckedChangeListener(mImsVtCheckedChangeListener);
mImsWfcProvisionedSwitch.setOnCheckedChangeListener(mImsWfcCheckedChangeListener);
@@ -725,7 +736,7 @@
log("onPause: unregister phone & data intents");
mTelephonyManager.unregisterTelephonyCallback(mTelephonyCallback);
- mTelephonyManager.setCellInfoListRate(sCellInfoListRateDisabled);
+ mTelephonyManager.setCellInfoListRate(sCellInfoListRateDisabled, mPhone.getSubId());
mConnectivityManager.unregisterNetworkCallback(mNetworkCallback);
}
@@ -1556,6 +1567,22 @@
}
};
+ private final OnCheckedChangeListener mSimulateOosOnChangeListener =
+ (buttonView, isChecked) -> {
+ Intent intent = new Intent("com.android.internal.telephony.TestServiceState");
+ if (isChecked) {
+ log("Send OOS override broadcast intent.");
+ intent.putExtra("data_reg_state", 1);
+ mSimulateOos[mPhone.getPhoneId()] = true;
+ } else {
+ log("Remove OOS override.");
+ intent.putExtra("action", "reset");
+ mSimulateOos[mPhone.getPhoneId()] = false;
+ }
+
+ mPhone.getTelephonyTester().setServiceStateTestIntent(intent);
+ };
+
private boolean isImsVolteProvisioned() {
if (mImsManager != null) {
return mImsManager.isVolteEnabledByPlatform()
@@ -1796,7 +1823,7 @@
public void onItemSelected(AdapterView parent, View v, int pos, long id) {
mCellInfoRefreshRateIndex = pos;
- mTelephonyManager.setCellInfoListRate(CELL_INFO_REFRESH_RATES[pos]);
+ mTelephonyManager.setCellInfoListRate(CELL_INFO_REFRESH_RATES[pos], mPhone.getSubId());
updateAllCellInfo();
}
diff --git a/src/com/android/phone/slice/SlicePurchaseController.java b/src/com/android/phone/slice/SlicePurchaseController.java
new file mode 100644
index 0000000..cdaba41
--- /dev/null
+++ b/src/com/android/phone/slice/SlicePurchaseController.java
@@ -0,0 +1,807 @@
+/*
+ * Copyright (C) 2022 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.slice;
+
+import android.annotation.IntDef;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.app.PendingIntent;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.net.ConnectivityManager;
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.Message;
+import android.os.PersistableBundle;
+import android.telephony.AnomalyReporter;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.telephony.data.NetworkSliceInfo;
+import android.telephony.data.NetworkSlicingConfig;
+import android.text.TextUtils;
+import android.util.Log;
+import android.webkit.WebView;
+
+import com.android.internal.telephony.Phone;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.Executor;
+import java.util.concurrent.TimeUnit;
+import java.util.function.Consumer;
+
+/**
+ * The SlicePurchaseController controls the purchase and availability of all cellular premium
+ * capabilities. Applications can check whether premium capabilities are available by calling
+ * {@link TelephonyManager#isPremiumCapabilityAvailableForPurchase(int)}. If this returns true,
+ * they can then call {@link TelephonyManager#purchasePremiumCapability(int, Executor, Consumer)}
+ * to purchase the premium capability. If all conditions are met, a notification will be displayed
+ * to the user prompting them to purchase the premium capability. If the user confirms on the
+ * notification, a {@link WebView} will open that allows the user to purchase the premium capability
+ * from the carrier. If the purchase is successful, the premium capability will be available for
+ * all applications to request through {@link ConnectivityManager#requestNetwork}.
+ */
+public class SlicePurchaseController extends Handler {
+ @NonNull private static final String TAG = "SlicePurchaseController";
+
+ /** Unknown failure code. */
+ public static final int FAILURE_CODE_UNKNOWN = 0;
+ /** Network boost purchase failed because the carrier URL is unavailable. */
+ public static final int FAILURE_CODE_CARRIER_URL_UNAVAILABLE = 1;
+ /** Network boost purchase failed because the server is unreachable. */
+ public static final int FAILURE_CODE_SERVER_UNREACHABLE = 2;
+ /** Network boost purchase failed because user authentication failed. */
+ public static final int FAILURE_CODE_AUTHENTICATION_FAILED = 3;
+ /** Network boost purchase failed because the payment failed. */
+ public static final int FAILURE_CODE_PAYMENT_FAILED = 4;
+
+ /**
+ * Failure codes that the carrier website can return when a premium capability purchase fails.
+ */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef(prefix = { "FAILURE_CODE_" }, value = {
+ FAILURE_CODE_UNKNOWN,
+ FAILURE_CODE_CARRIER_URL_UNAVAILABLE,
+ FAILURE_CODE_SERVER_UNREACHABLE,
+ FAILURE_CODE_AUTHENTICATION_FAILED,
+ FAILURE_CODE_PAYMENT_FAILED})
+ public @interface FailureCode {}
+
+ /** Value for an invalid premium capability. */
+ public static final int PREMIUM_CAPABILITY_INVALID = -1;
+
+ /** Purchasing the premium capability is no longer throttled. */
+ private static final int EVENT_PURCHASE_UNTHROTTLED = 1;
+ /** Slicing config changed. */
+ private static final int EVENT_SLICING_CONFIG_CHANGED = 2;
+ /** Display booster notification. */
+ private static final int EVENT_DISPLAY_BOOSTER_NOTIFICATION = 3;
+ /**
+ * Premium capability was not purchased within the timeout specified by
+ * {@link CarrierConfigManager#KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG}.
+ */
+ private static final int EVENT_PURCHASE_TIMEOUT = 4;
+ /**
+ * Network did not set up the slicing configuration within the timeout specified by
+ * {@link CarrierConfigManager#KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG}.
+ */
+ private static final int EVENT_SETUP_TIMEOUT = 5;
+
+ /** UUID to report an anomaly when a premium capability is throttled twice in a row. */
+ private static final String UUID_CAPABILITY_THROTTLED_TWICE =
+ "15574927-e2e2-4593-99d4-2f340d22b383";
+ /** UUID to report an anomaly when receiving an invalid phone ID. */
+ private static final String UUID_INVALID_PHONE_ID = "ced79f1a-8ac0-4260-8cf3-08b54c0494f3";
+ /** UUID to report an anomaly when receiving an unknown action. */
+ private static final String UUID_UNKNOWN_ACTION = "0197efb0-dab1-4b0a-abaf-ac9336ec7923";
+ /** UUID to report an anomaly when receiving an unknown failure code with a non-empty reason. */
+ private static final String UUID_UNKNOWN_FAILURE_CODE = "76943b23-4415-400c-9855-b534fc4fc62c";
+ /**
+ * UUID to report an anomaly when the network fails to set up a slicing configuration after
+ * the user purchases a premium capability.
+ */
+ private static final String UUID_NETWORK_SETUP_FAILED = "12eeffbf-08f8-40ed-9a00-d344199552fc";
+
+ /**
+ * Action to start the slice purchase application and display the network boost notification.
+ */
+ public static final String ACTION_START_SLICE_PURCHASE_APP =
+ "com.android.phone.slice.action.START_SLICE_PURCHASE_APP";
+ /** Action indicating the premium capability purchase was not completed in time. */
+ public static final String ACTION_SLICE_PURCHASE_APP_RESPONSE_TIMEOUT =
+ "com.android.phone.slice.action.SLICE_PURCHASE_APP_RESPONSE_TIMEOUT";
+ /** Action indicating the network boost notification or WebView was canceled. */
+ private static final String ACTION_SLICE_PURCHASE_APP_RESPONSE_CANCELED =
+ "com.android.phone.slice.action.SLICE_PURCHASE_APP_RESPONSE_CANCELED";
+ /** Action indicating a carrier error prevented premium capability purchase. */
+ private static final String ACTION_SLICE_PURCHASE_APP_RESPONSE_CARRIER_ERROR =
+ "com.android.phone.slice.action.SLICE_PURCHASE_APP_RESPONSE_CARRIER_ERROR";
+ /**
+ * Action indicating a Telephony or slice purchase application error prevented premium
+ * capability purchase.
+ */
+ private static final String ACTION_SLICE_PURCHASE_APP_RESPONSE_REQUEST_FAILED =
+ "com.android.phone.slice.action.SLICE_PURCHASE_APP_RESPONSE_REQUEST_FAILED";
+ /** Action indicating the purchase request was not made on the default data subscription. */
+ private static final String ACTION_SLICE_PURCHASE_APP_RESPONSE_NOT_DEFAULT_DATA_SUB =
+ "com.android.phone.slice.action.SLICE_PURCHASE_APP_RESPONSE_NOT_DEFAULT_DATA_SUB";
+ /** Action indicating the purchase request was successful. */
+ private static final String ACTION_SLICE_PURCHASE_APP_RESPONSE_SUCCESS =
+ "com.android.phone.slice.action.SLICE_PURCHASE_APP_RESPONSE_SUCCESS";
+
+ /** Extra for the phone index to send to the slice purchase application. */
+ public static final String EXTRA_PHONE_ID = "com.android.phone.slice.extra.PHONE_ID";
+ /** Extra for the subscription ID to send to the slice purchase application. */
+ public static final String EXTRA_SUB_ID = "com.android.phone.slice.extra.SUB_ID";
+ /**
+ * Extra for the requested premium capability to purchase from the slice purchase application.
+ */
+ public static final String EXTRA_PREMIUM_CAPABILITY =
+ "com.android.phone.slice.extra.PREMIUM_CAPABILITY";
+ /** Extra for the duration of the purchased premium capability. */
+ public static final String EXTRA_PURCHASE_DURATION =
+ "com.android.phone.slice.extra.PURCHASE_DURATION";
+ /** Extra for the {@link FailureCode} why the premium capability purchase failed. */
+ public static final String EXTRA_FAILURE_CODE = "com.android.phone.slice.extra.FAILURE_CODE";
+ /** Extra for the human-readable reason why the premium capability purchase failed. */
+ public static final String EXTRA_FAILURE_REASON =
+ "com.android.phone.slice.extra.FAILURE_REASON";
+ /**
+ * Extra for the application name requesting to purchase the premium capability
+ * from the slice purchase application.
+ */
+ public static final String EXTRA_REQUESTING_APP_NAME =
+ "com.android.phone.slice.extra.REQUESTING_APP_NAME";
+ /**
+ * Extra for the canceled PendingIntent that the slice purchase application can send as a
+ * response if the network boost notification or WebView was canceled by the user.
+ * Sends {@link #ACTION_SLICE_PURCHASE_APP_RESPONSE_CANCELED}.
+ */
+ public static final String EXTRA_INTENT_CANCELED =
+ "com.android.phone.slice.extra.INTENT_CANCELED";
+ /**
+ * Extra for the carrier error PendingIntent that the slice purchase application can send as a
+ * response if the premium capability purchase request failed due to a carrier error.
+ * Sends {@link #ACTION_SLICE_PURCHASE_APP_RESPONSE_CARRIER_ERROR}.
+ * Sender can modify the intent to specify the failure code and reason for failure with
+ * {@link #EXTRA_FAILURE_CODE} and {@link #EXTRA_FAILURE_REASON}.
+ */
+ public static final String EXTRA_INTENT_CARRIER_ERROR =
+ "com.android.phone.slice.extra.INTENT_CARRIER_ERROR";
+ /**
+ * Extra for the request failed PendingIntent that the slice purchase application can send as a
+ * response if the premium capability purchase request failed due to an error in Telephony or
+ * the slice purchase application.
+ * Sends {@link #ACTION_SLICE_PURCHASE_APP_RESPONSE_REQUEST_FAILED}.
+ */
+ public static final String EXTRA_INTENT_REQUEST_FAILED =
+ "com.android.phone.slice.extra.INTENT_REQUEST_FAILED";
+ /**
+ * Extra for the not-default data subscription ID PendingIntent that the slice purchase
+ * application can send as a response if the premium capability purchase request failed because
+ * it was not requested on the default data subscription.
+ * Sends {@link #ACTION_SLICE_PURCHASE_APP_RESPONSE_NOT_DEFAULT_DATA_SUB}.
+ */
+ public static final String EXTRA_INTENT_NOT_DEFAULT_DATA_SUB =
+ "com.android.phone.slice.extra.INTENT_NOT_DEFAULT_DATA_SUB";
+ /**
+ * Extra for the success PendingIntent that the slice purchase application can send as a
+ * response if the premium capability purchase request was successful.
+ * Sends {@link #ACTION_SLICE_PURCHASE_APP_RESPONSE_SUCCESS}.
+ * Sender can modify the intent to specify a purchase duration with
+ * {@link #EXTRA_PURCHASE_DURATION}.
+ */
+ public static final String EXTRA_INTENT_SUCCESS =
+ "com.android.phone.slice.extra.INTENT_SUCCESS";
+
+ /** Component name to send an explicit broadcast to SlicePurchaseBroadcastReceiver. */
+ private static final ComponentName SLICE_PURCHASE_APP_COMPONENT_NAME =
+ ComponentName.unflattenFromString(
+ "com.android.carrierdefaultapp/.SlicePurchaseBroadcastReceiver");
+
+ /** Map of phone ID -> SlicePurchaseController instances. */
+ @NonNull private static final Map<Integer, SlicePurchaseController> sInstances =
+ new HashMap<>();
+
+ /** The Phone instance used to create the SlicePurchaseController. */
+ @NonNull private final Phone mPhone;
+ /** The set of capabilities that are pending network setup. */
+ @NonNull private final Set<Integer> mPendingSetupCapabilities = new HashSet<>();
+ /** The set of throttled capabilities. */
+ @NonNull private final Set<Integer> mThrottledCapabilities = new HashSet<>();
+ /** A map of pending capabilities to the onComplete message for the purchase request. */
+ @NonNull private final Map<Integer, Message> mPendingPurchaseCapabilities = new HashMap<>();
+ /**
+ * A map of capabilities to the SlicePurchaseControllerBroadcastReceiver to handle
+ * slice purchase application responses.
+ */
+ @NonNull private final Map<Integer, SlicePurchaseControllerBroadcastReceiver>
+ mSlicePurchaseControllerBroadcastReceivers = new HashMap<>();
+ /** The current network slicing configuration. */
+ @Nullable private NetworkSlicingConfig mSlicingConfig;
+
+ private class SlicePurchaseControllerBroadcastReceiver extends BroadcastReceiver {
+ @TelephonyManager.PremiumCapability private final int mCapability;
+
+ SlicePurchaseControllerBroadcastReceiver(
+ @TelephonyManager.PremiumCapability int capability) {
+ mCapability = capability;
+ }
+
+ @Override
+ public void onReceive(@NonNull Context context, @NonNull Intent intent) {
+ String action = intent.getAction();
+ logd("SlicePurchaseControllerBroadcastReceiver("
+ + TelephonyManager.convertPremiumCapabilityToString(mCapability)
+ + ") received action: " + action);
+ int phoneId = intent.getIntExtra(EXTRA_PHONE_ID,
+ SubscriptionManager.INVALID_PHONE_INDEX);
+ int capability = intent.getIntExtra(EXTRA_PREMIUM_CAPABILITY,
+ PREMIUM_CAPABILITY_INVALID);
+ if (SlicePurchaseController.getInstance(phoneId) == null) {
+ reportAnomaly(UUID_INVALID_PHONE_ID, "SlicePurchaseControllerBroadcastReceiver( "
+ + TelephonyManager.convertPremiumCapabilityToString(mCapability)
+ + ") received invalid phoneId: " + phoneId);
+ return;
+ } else if (capability != mCapability) {
+ logd("SlicePurchaseControllerBroadcastReceiver("
+ + TelephonyManager.convertPremiumCapabilityToString(mCapability)
+ + ") ignoring intent for capability "
+ + TelephonyManager.convertPremiumCapabilityToString(capability));
+ return;
+ }
+ switch (action) {
+ case ACTION_SLICE_PURCHASE_APP_RESPONSE_CANCELED: {
+ logd("Slice purchase application canceled for capability: "
+ + TelephonyManager.convertPremiumCapabilityToString(capability));
+ SlicePurchaseController.getInstance(phoneId)
+ .sendPurchaseResultFromSlicePurchaseApp(capability,
+ TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_CANCELED,
+ true);
+ break;
+ }
+ case ACTION_SLICE_PURCHASE_APP_RESPONSE_CARRIER_ERROR: {
+ int failureCode = intent.getIntExtra(EXTRA_FAILURE_CODE, FAILURE_CODE_UNKNOWN);
+ String failureReason = intent.getStringExtra(EXTRA_FAILURE_REASON);
+ SlicePurchaseController.getInstance(phoneId).onCarrierError(
+ capability, failureCode, failureReason);
+ break;
+ }
+ case ACTION_SLICE_PURCHASE_APP_RESPONSE_REQUEST_FAILED: {
+ logd("Purchase premium capability request failed for capability: "
+ + TelephonyManager.convertPremiumCapabilityToString(capability));
+ SlicePurchaseController.getInstance(phoneId)
+ .sendPurchaseResultFromSlicePurchaseApp(capability,
+ TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_REQUEST_FAILED,
+ false);
+ break;
+ }
+ case ACTION_SLICE_PURCHASE_APP_RESPONSE_NOT_DEFAULT_DATA_SUB: {
+ logd("Purchase premium capability request was not made on the default data "
+ + "subscription for capability: "
+ + TelephonyManager.convertPremiumCapabilityToString(capability));
+ SlicePurchaseController.getInstance(phoneId)
+ .sendPurchaseResultFromSlicePurchaseApp(capability,
+ TelephonyManager
+ .PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA_SUB,
+ false);
+ break;
+ }
+ case ACTION_SLICE_PURCHASE_APP_RESPONSE_SUCCESS: {
+ long duration = intent.getLongExtra(EXTRA_PURCHASE_DURATION, 0);
+ SlicePurchaseController.getInstance(phoneId).onCarrierSuccess(
+ capability, duration);
+ break;
+ }
+ default:
+ reportAnomaly(UUID_UNKNOWN_ACTION, "SlicePurchaseControllerBroadcastReceiver("
+ + TelephonyManager.convertPremiumCapabilityToString(mCapability)
+ + ") received unknown action: " + action);
+ break;
+ }
+ }
+ }
+
+ /**
+ * Get the static SlicePurchaseController instance for the given phone or create one if it
+ * doesn't exist.
+ *
+ * @param phone The Phone to get the SlicePurchaseController for.
+ * @return The static SlicePurchaseController instance.
+ */
+ @NonNull public static synchronized SlicePurchaseController getInstance(@NonNull Phone phone) {
+ // TODO: Add listeners for multi sim setting changed (maybe carrier config changed too)
+ // that dismiss notifications and update SlicePurchaseController instance
+ int phoneId = phone.getPhoneId();
+ if (sInstances.get(phoneId) == null) {
+ sInstances.put(phoneId, new SlicePurchaseController(phone));
+ }
+ return sInstances.get(phoneId);
+ }
+
+ /**
+ * Get the static SlicePurchaseController instance for the given phone ID if it exists.
+ *
+ * @param phoneId The phone ID to get the SlicePurchaseController for.
+ * @return The static SlicePurchaseController instance or
+ * {@code null} if it hasn't been created yet.
+ */
+ @Nullable private static SlicePurchaseController getInstance(int phoneId) {
+ return sInstances.get(phoneId);
+ }
+
+ private SlicePurchaseController(@NonNull Phone phone) {
+ super(phone.getLooper());
+ mPhone = phone;
+ // TODO: Create a cached value for slicing config in DataIndication and initialize here
+ mPhone.mCi.registerForSlicingConfigChanged(this, EVENT_SLICING_CONFIG_CHANGED, null);
+ }
+
+ @Override
+ public void handleMessage(@NonNull Message msg) {
+ switch (msg.what) {
+ case EVENT_PURCHASE_UNTHROTTLED: {
+ int capability = (int) msg.obj;
+ logd("EVENT_PURCHASE_UNTHROTTLED: for capability "
+ + TelephonyManager.convertPremiumCapabilityToString(capability));
+ mThrottledCapabilities.remove(capability);
+ break;
+ }
+ case EVENT_SLICING_CONFIG_CHANGED: {
+ AsyncResult ar = (AsyncResult) msg.obj;
+ NetworkSlicingConfig config = (NetworkSlicingConfig) ar.result;
+ logd("EVENT_SLICING_CONFIG_CHANGED: from " + mSlicingConfig + " to " + config);
+ mSlicingConfig = config;
+ onSlicingConfigChanged();
+ break;
+ }
+ case EVENT_DISPLAY_BOOSTER_NOTIFICATION: {
+ int capability = msg.arg1;
+ String appName = (String) msg.obj;
+ logd("EVENT_DISPLAY_BOOSTER_NOTIFICATION: " + appName + " requests capability "
+ + TelephonyManager.convertPremiumCapabilityToString(capability));
+ onDisplayBoosterNotification(capability, appName);
+ break;
+ }
+ case EVENT_PURCHASE_TIMEOUT: {
+ int capability = (int) msg.obj;
+ logd("EVENT_PURCHASE_TIMEOUT: for capability "
+ + TelephonyManager.convertPremiumCapabilityToString(capability));
+ onTimeout(capability);
+ break;
+ }
+ case EVENT_SETUP_TIMEOUT:
+ int capability = (int) msg.obj;
+ logd("EVENT_SETUP_TIMEOUT: for capability "
+ + TelephonyManager.convertPremiumCapabilityToString(capability));
+ onSetupTimeout(capability);
+ break;
+ default:
+ loge("Unknown event: " + msg.obj);
+ }
+ }
+
+ /**
+ * Check whether the given premium capability is available for purchase from the carrier.
+ *
+ * @param capability The premium capability to check.
+ * @return Whether the given premium capability is available to purchase.
+ */
+ public boolean isPremiumCapabilityAvailableForPurchase(
+ @TelephonyManager.PremiumCapability int capability) {
+ if (!arePremiumCapabilitiesSupportedByDevice()) {
+ logd("Premium capabilities unsupported by the device.");
+ return false;
+ }
+ if (!isPremiumCapabilitySupportedByCarrier(capability)) {
+ logd("Premium capability "
+ + TelephonyManager.convertPremiumCapabilityToString(capability)
+ + " unsupported by the carrier.");
+ return false;
+ }
+ if (!isDefaultDataSub()) {
+ logd("Premium capability "
+ + TelephonyManager.convertPremiumCapabilityToString(capability)
+ + " unavailable on the non-default data subscription.");
+ return false;
+ }
+ logd("Premium capability "
+ + TelephonyManager.convertPremiumCapabilityToString(capability)
+ + " is available for purchase.");
+ return true;
+ }
+
+ /**
+ * Purchase the given premium capability from the carrier.
+ *
+ * @param capability The premium capability to purchase.
+ * @param appName The name of the application requesting premium capabilities.
+ * @param onComplete The callback message to send when the purchase request is complete.
+ */
+ public synchronized void purchasePremiumCapability(
+ @TelephonyManager.PremiumCapability int capability, @NonNull String appName,
+ @NonNull Message onComplete) {
+ logd("purchasePremiumCapability: " + appName + " requests capability "
+ + TelephonyManager.convertPremiumCapabilityToString(capability));
+ // Check whether the premium capability can be purchased.
+ if (!arePremiumCapabilitiesSupportedByDevice()) {
+ sendPurchaseResult(capability,
+ TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_FEATURE_NOT_SUPPORTED,
+ onComplete);
+ return;
+ }
+ if (!isPremiumCapabilitySupportedByCarrier(capability)) {
+ sendPurchaseResult(capability,
+ TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED,
+ onComplete);
+ return;
+ }
+ if (!isDefaultDataSub()) {
+ sendPurchaseResult(capability,
+ TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA_SUB,
+ onComplete);
+ return;
+ }
+ if (isSlicingConfigActive(capability)) {
+ sendPurchaseResult(capability,
+ TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED,
+ onComplete);
+ return;
+ }
+ if (mPendingSetupCapabilities.contains(capability)) {
+ sendPurchaseResult(capability,
+ TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP,
+ onComplete);
+ return;
+ }
+ if (mThrottledCapabilities.contains(capability)) {
+ sendPurchaseResult(capability,
+ TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED,
+ onComplete);
+ return;
+ }
+ if (!isNetworkAvailable()) {
+ sendPurchaseResult(capability,
+ TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE,
+ onComplete);
+ return;
+ }
+ if (isNetworkCongested(capability)) {
+ throttleCapability(capability, getThrottleDuration(
+ TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_CONGESTED));
+ sendPurchaseResult(capability,
+ TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_CONGESTED,
+ onComplete);
+ return;
+ }
+ if (mPendingPurchaseCapabilities.containsKey(capability)) {
+ sendPurchaseResult(capability,
+ TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS,
+ onComplete);
+ return;
+ }
+
+ // All state checks passed. Mark purchase pending and display the booster notification to
+ // prompt user purchase. Process through the handler since this method is synchronized.
+ mPendingPurchaseCapabilities.put(capability, onComplete);
+ sendMessage(obtainMessage(EVENT_DISPLAY_BOOSTER_NOTIFICATION, capability, 0 /* unused */,
+ appName));
+ }
+
+ private void sendPurchaseResult(@TelephonyManager.PremiumCapability int capability,
+ @TelephonyManager.PurchasePremiumCapabilityResult int result,
+ @NonNull Message onComplete) {
+ // Send the onComplete message with the purchase result.
+ logd("Purchase result for capability "
+ + TelephonyManager.convertPremiumCapabilityToString(capability)
+ + ": " + TelephonyManager.convertPurchaseResultToString(result));
+ AsyncResult.forMessage(onComplete, result, null);
+ onComplete.sendToTarget();
+ }
+
+ private void sendPurchaseResultFromSlicePurchaseApp(
+ @TelephonyManager.PremiumCapability int capability,
+ @TelephonyManager.PurchasePremiumCapabilityResult int result, boolean throttle) {
+ mPhone.getContext().unregisterReceiver(
+ mSlicePurchaseControllerBroadcastReceivers.remove(capability));
+ removeMessages(EVENT_PURCHASE_TIMEOUT, capability);
+ if (throttle) {
+ throttleCapability(capability, getThrottleDuration(result));
+ }
+ sendPurchaseResult(capability, result, mPendingPurchaseCapabilities.remove(capability));
+ }
+
+ private void throttleCapability(@TelephonyManager.PremiumCapability int capability,
+ long throttleDuration) {
+ // Throttle subsequent requests if necessary.
+ if (!mThrottledCapabilities.contains(capability)) {
+ if (throttleDuration > 0) {
+ logd("Throttle purchase requests for capability "
+ + TelephonyManager.convertPremiumCapabilityToString(capability) + " for "
+ + TimeUnit.MILLISECONDS.toMinutes(throttleDuration) + " minutes.");
+ mThrottledCapabilities.add(capability);
+ sendMessageDelayed(obtainMessage(EVENT_PURCHASE_UNTHROTTLED, capability),
+ throttleDuration);
+ }
+ } else {
+ reportAnomaly(UUID_CAPABILITY_THROTTLED_TWICE,
+ TelephonyManager.convertPremiumCapabilityToString(capability)
+ + " is already throttled.");
+ }
+ }
+
+ private void onSlicingConfigChanged() {
+ for (int capability : new int[] {TelephonyManager.PREMIUM_CAPABILITY_PRIORITIZE_LATENCY}) {
+ if (isSlicingConfigActive(capability) && hasMessages(EVENT_SETUP_TIMEOUT, capability)) {
+ logd("Successfully set up slicing configuration for "
+ + TelephonyManager.convertPremiumCapabilityToString(capability));
+ mPendingSetupCapabilities.remove(capability);
+ removeMessages(EVENT_SETUP_TIMEOUT, capability);
+ }
+ }
+ }
+
+ private void onDisplayBoosterNotification(@TelephonyManager.PremiumCapability int capability,
+ @NonNull String appName) {
+ // Start timeout for purchase completion.
+ long timeout = getCarrierConfigs().getLong(CarrierConfigManager
+ .KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG);
+ logd("Start purchase timeout for "
+ + TelephonyManager.convertPremiumCapabilityToString(capability) + " for "
+ + TimeUnit.MILLISECONDS.toMinutes(timeout) + " minutes.");
+ sendMessageDelayed(obtainMessage(EVENT_PURCHASE_TIMEOUT, capability), timeout);
+
+ // Broadcast start intent to start the slice purchase application
+ Intent intent = new Intent(ACTION_START_SLICE_PURCHASE_APP);
+ intent.setComponent(SLICE_PURCHASE_APP_COMPONENT_NAME);
+ intent.putExtra(EXTRA_PHONE_ID, mPhone.getPhoneId());
+ intent.putExtra(EXTRA_SUB_ID, mPhone.getSubId());
+ intent.putExtra(EXTRA_PREMIUM_CAPABILITY, capability);
+ intent.putExtra(EXTRA_REQUESTING_APP_NAME, appName);
+ intent.putExtra(EXTRA_INTENT_CANCELED, createPendingIntent(
+ ACTION_SLICE_PURCHASE_APP_RESPONSE_CANCELED, capability, false));
+ intent.putExtra(EXTRA_INTENT_CARRIER_ERROR, createPendingIntent(
+ ACTION_SLICE_PURCHASE_APP_RESPONSE_CARRIER_ERROR, capability, true));
+ intent.putExtra(EXTRA_INTENT_REQUEST_FAILED, createPendingIntent(
+ ACTION_SLICE_PURCHASE_APP_RESPONSE_REQUEST_FAILED, capability, false));
+ intent.putExtra(EXTRA_INTENT_NOT_DEFAULT_DATA_SUB, createPendingIntent(
+ ACTION_SLICE_PURCHASE_APP_RESPONSE_NOT_DEFAULT_DATA_SUB, capability, false));
+ intent.putExtra(EXTRA_INTENT_SUCCESS, createPendingIntent(
+ ACTION_SLICE_PURCHASE_APP_RESPONSE_SUCCESS, capability, true));
+ logd("Broadcasting start intent to SlicePurchaseBroadcastReceiver.");
+ mPhone.getContext().sendBroadcast(intent);
+
+ // Listen for responses from the slice purchase application
+ mSlicePurchaseControllerBroadcastReceivers.put(capability,
+ new SlicePurchaseControllerBroadcastReceiver(capability));
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(ACTION_SLICE_PURCHASE_APP_RESPONSE_CANCELED);
+ filter.addAction(ACTION_SLICE_PURCHASE_APP_RESPONSE_CARRIER_ERROR);
+ filter.addAction(ACTION_SLICE_PURCHASE_APP_RESPONSE_REQUEST_FAILED);
+ filter.addAction(ACTION_SLICE_PURCHASE_APP_RESPONSE_NOT_DEFAULT_DATA_SUB);
+ filter.addAction(ACTION_SLICE_PURCHASE_APP_RESPONSE_SUCCESS);
+ mPhone.getContext().registerReceiver(
+ mSlicePurchaseControllerBroadcastReceivers.get(capability), filter);
+ }
+
+ /**
+ * Create the PendingIntent to allow the slice purchase application to send back responses.
+ *
+ * @param action The action that will be sent for this PendingIntent
+ * @param capability The premium capability that was requested.
+ * @param mutable {@code true} if the PendingIntent should be mutable and
+ * {@code false} if it should be immutable.
+ * @return The PendingIntent for the given action and capability.
+ */
+ @NonNull private PendingIntent createPendingIntent(@NonNull String action,
+ @TelephonyManager.PremiumCapability int capability, boolean mutable) {
+ Intent intent = new Intent(action);
+ intent.putExtra(EXTRA_PHONE_ID, mPhone.getPhoneId());
+ intent.putExtra(EXTRA_PREMIUM_CAPABILITY, capability);
+ return PendingIntent.getBroadcast(mPhone.getContext(), capability, intent,
+ PendingIntent.FLAG_CANCEL_CURRENT
+ | (mutable ? PendingIntent.FLAG_MUTABLE : PendingIntent.FLAG_IMMUTABLE));
+ }
+
+ private void onTimeout(@TelephonyManager.PremiumCapability int capability) {
+ logd("onTimeout: " + TelephonyManager.convertPremiumCapabilityToString(capability));
+ // Broadcast timeout intent to clean up the slice purchase notification and activity
+ Intent intent = new Intent(ACTION_SLICE_PURCHASE_APP_RESPONSE_TIMEOUT);
+ intent.setComponent(SLICE_PURCHASE_APP_COMPONENT_NAME);
+ intent.putExtra(EXTRA_PHONE_ID, mPhone.getPhoneId());
+ intent.putExtra(EXTRA_PREMIUM_CAPABILITY, capability);
+ logd("Broadcasting timeout intent to SlicePurchaseBroadcastReceiver.");
+ mPhone.getContext().sendBroadcast(intent);
+
+ sendPurchaseResultFromSlicePurchaseApp(
+ capability, TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_TIMEOUT, true);
+ }
+
+ private void onCarrierError(@TelephonyManager.PremiumCapability int capability,
+ @FailureCode int failureCode, @Nullable String failureReason) {
+ logd("Carrier error for capability: "
+ + TelephonyManager.convertPremiumCapabilityToString(capability) + " with code: "
+ + convertFailureCodeToString(failureCode) + " and reason: " + failureReason);
+ if (failureCode == FAILURE_CODE_UNKNOWN && !TextUtils.isEmpty(failureReason)) {
+ reportAnomaly(UUID_UNKNOWN_FAILURE_CODE,
+ "Failure code needs to be added for: " + failureReason);
+ }
+ sendPurchaseResultFromSlicePurchaseApp(capability,
+ TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_ERROR, true);
+ }
+
+ private void onCarrierSuccess(@TelephonyManager.PremiumCapability int capability,
+ long duration) {
+ logd("Successfully purchased premium capability "
+ + TelephonyManager.convertPremiumCapabilityToString(capability) + (duration > 0
+ ? " for " + TimeUnit.MILLISECONDS.toMinutes(duration) + " minutes." : "."));
+ mPendingSetupCapabilities.add(capability);
+ long setupDuration = getCarrierConfigs().getLong(
+ CarrierConfigManager.KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG);
+ logd("Waiting " + TimeUnit.MILLISECONDS.toMinutes(setupDuration) + " minutes for the "
+ + "network to set up the slicing configuration.");
+ sendMessageDelayed(obtainMessage(EVENT_SETUP_TIMEOUT, capability), setupDuration);
+ sendPurchaseResultFromSlicePurchaseApp(
+ capability, TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_SUCCESS, false);
+ }
+
+ private void onSetupTimeout(@TelephonyManager.PremiumCapability int capability) {
+ logd("onSetupTimeout: " + TelephonyManager.convertPremiumCapabilityToString(capability));
+ mPendingSetupCapabilities.remove(capability);
+ if (!isSlicingConfigActive(capability)) {
+ reportAnomaly(UUID_NETWORK_SETUP_FAILED,
+ "Failed to set up slicing configuration for capability "
+ + TelephonyManager.convertPremiumCapabilityToString(capability)
+ + " within the time specified.");
+ }
+ }
+
+ @Nullable private PersistableBundle getCarrierConfigs() {
+ return mPhone.getContext().getSystemService(CarrierConfigManager.class)
+ .getConfigForSubId(mPhone.getSubId());
+ }
+
+ private long getThrottleDuration(@TelephonyManager.PurchasePremiumCapabilityResult int result) {
+ if (result == TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_CANCELED
+ || result == TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_TIMEOUT) {
+ return getCarrierConfigs().getLong(CarrierConfigManager
+ .KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG);
+ }
+ if (result == TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_CONGESTED
+ || result == TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_ERROR) {
+ return getCarrierConfigs().getLong(CarrierConfigManager
+ .KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG);
+ }
+ return 0;
+ }
+
+ private boolean isPremiumCapabilitySupportedByCarrier(
+ @TelephonyManager.PremiumCapability int capability) {
+ String url = getCarrierConfigs().getString(
+ CarrierConfigManager.KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING);
+ if (TextUtils.isEmpty(url)) {
+ return false;
+ } else {
+ try {
+ new URL(url);
+ } catch (MalformedURLException e) {
+ return false;
+ }
+ }
+ int[] supportedCapabilities = getCarrierConfigs().getIntArray(
+ CarrierConfigManager.KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY);
+ if (supportedCapabilities == null) {
+ return false;
+ }
+ return Arrays.stream(supportedCapabilities)
+ .anyMatch(supportedCapability -> supportedCapability == capability);
+ }
+
+ private boolean arePremiumCapabilitiesSupportedByDevice() {
+ // TODO: Add more checks?
+ // Maybe device resource overlay to enable/disable in addition to carrier configs
+ return (mPhone.getCachedAllowedNetworkTypesBitmask()
+ & TelephonyManager.NETWORK_TYPE_BITMASK_NR) != 0;
+ }
+
+ private boolean isDefaultDataSub() {
+ return mPhone.getSubId() == SubscriptionManager.getDefaultDataSubscriptionId();
+ }
+
+ private boolean isSlicingConfigActive(@TelephonyManager.PremiumCapability int capability) {
+ if (mSlicingConfig == null) {
+ return false;
+ }
+ int capabilityServiceType = getSliceServiceType(capability);
+ for (NetworkSliceInfo sliceInfo : mSlicingConfig.getSliceInfo()) {
+ // TODO: check if TrafficDescriptor has realtime capability slice
+ if (sliceInfo.getSliceServiceType() == capabilityServiceType
+ && sliceInfo.getStatus() == NetworkSliceInfo.SLICE_STATUS_ALLOWED) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @NetworkSliceInfo.SliceServiceType private int getSliceServiceType(
+ @TelephonyManager.PremiumCapability int capability) {
+ // TODO: Implement properly -- potentially need to add new slice service types?
+ return NetworkSliceInfo.SLICE_SERVICE_TYPE_NONE;
+ }
+
+ private boolean isNetworkAvailable() {
+ // TODO (b/251558673): Create a listener for data network type changed to dismiss
+ // notification and activity when the network is no longer available.
+ switch (mPhone.getServiceState().getDataNetworkType()) {
+ case TelephonyManager.NETWORK_TYPE_NR:
+ return true;
+ case TelephonyManager.NETWORK_TYPE_LTE:
+ case TelephonyManager.NETWORK_TYPE_LTE_CA:
+ return getCarrierConfigs().getBoolean(
+ CarrierConfigManager.KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL);
+ }
+ return false;
+ }
+
+ private boolean isNetworkCongested(@TelephonyManager.PremiumCapability int capability) {
+ // TODO: Implement TS43
+ return true;
+ }
+
+ /**
+ * Returns the failure code {@link FailureCode} as a String.
+ *
+ * @param failureCode The failure code.
+ * @return The failure code as a String.
+ */
+ @NonNull private static String convertFailureCodeToString(@FailureCode int failureCode) {
+ switch (failureCode) {
+ case FAILURE_CODE_UNKNOWN: return "UNKNOWN";
+ case FAILURE_CODE_CARRIER_URL_UNAVAILABLE: return "CARRIER_URL_UNAVAILABLE";
+ case FAILURE_CODE_SERVER_UNREACHABLE: return "SERVER_UNREACHABLE";
+ case FAILURE_CODE_AUTHENTICATION_FAILED: return "AUTHENTICATION_FAILED";
+ case FAILURE_CODE_PAYMENT_FAILED: return "PAYMENT_FAILED";
+ default:
+ return "UNKNOWN(" + failureCode + ")";
+ }
+ }
+
+ private void reportAnomaly(@NonNull String uuid, @NonNull String log) {
+ loge(log);
+ AnomalyReporter.reportAnomaly(UUID.fromString(uuid), log);
+ }
+
+ private void logd(String s) {
+ Log.d(TAG + "-" + mPhone.getPhoneId(), s);
+ }
+
+ private void loge(String s) {
+ Log.e(TAG + "-" + mPhone.getPhoneId(), s);
+ }
+}
diff --git a/src/com/android/services/telephony/ConferenceParticipantConnection.java b/src/com/android/services/telephony/ConferenceParticipantConnection.java
index b7ecd48..92e95cc 100644
--- a/src/com/android/services/telephony/ConferenceParticipantConnection.java
+++ b/src/com/android/services/telephony/ConferenceParticipantConnection.java
@@ -27,6 +27,8 @@
import com.android.internal.telephony.PhoneConstants;
import com.android.telephony.Rlog;
+import java.util.Locale;
+
/**
* Represents a participant in a conference call.
*/
@@ -189,7 +191,7 @@
// The SubscriptionInfo reports ISO country codes in lower case. Convert to upper case,
// since ultimately we use this ISO when formatting the CEP phone number, and the phone
// number formatting library expects uppercase ISO country codes.
- return subInfo.getCountryIso().toUpperCase();
+ return subInfo.getCountryIso().toUpperCase(Locale.ROOT);
}
/**
diff --git a/src/com/android/services/telephony/TelecomAccountRegistry.java b/src/com/android/services/telephony/TelecomAccountRegistry.java
index a9b4c71..115c32b 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -72,6 +72,7 @@
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
+import java.util.Locale;
import java.util.Optional;
import java.util.function.Predicate;
@@ -924,7 +925,7 @@
// Next check whether we're in or near a country that supports it
String country =
mPhone.getServiceStateTracker().getLocaleTracker()
- .getLastKnownCountryIso().toLowerCase();
+ .getLastKnownCountryIso().toLowerCase(Locale.ROOT);
String[] supportedCountries = mContext.getResources().getStringArray(
R.array.config_simless_emergency_rtt_supported_countries);
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index ed07726..962053c 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -95,6 +95,7 @@
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
@@ -1673,7 +1674,8 @@
if (filteredCnapNames != null) {
long cnapNameMatches = Arrays.asList(filteredCnapNames)
.stream()
- .filter(filteredCnapName -> filteredCnapName.equals(cnapName.toUpperCase()))
+ .filter(filteredCnapName -> filteredCnapName.equals(
+ cnapName.toUpperCase(Locale.ROOT)))
.count();
if (cnapNameMatches > 0) {
Log.i(this, "filterCnapName: Filtered CNAP Name: " + cnapName);
@@ -2016,32 +2018,47 @@
}
@VisibleForTesting
- public PersistableBundle getCarrierConfig() {
+ public @NonNull PersistableBundle getCarrierConfig() {
Phone phone = getPhone();
if (phone == null) {
- return null;
+ Log.w(this,
+ "getCarrierConfig: phone is null. Returning CarrierConfigManager"
+ + ".getDefaultConfig()");
+ return CarrierConfigManager.getDefaultConfig();
}
- return PhoneGlobals.getInstance().getCarrierConfigForSubId(phone.getSubId());
+
+ // potential null returned from .getCarrierConfigForSubId() and method guarantees non-null.
+ // hence, need for try/finally block
+ PersistableBundle pb = null;
+ try {
+ pb = PhoneGlobals.getInstance().getCarrierConfigForSubId(phone.getSubId());
+ } catch (Exception e) {
+ Log.e(this, e,
+ "getCarrierConfig: caught Exception when calling "
+ + "PhoneGlobals.getCarrierConfigForSubId(phone.getSubId()). Returning "
+ + "CarrierConfigManager.getDefaultConfig()");
+ } finally {
+ if (pb == null) {
+ pb = CarrierConfigManager.getDefaultConfig();
+ }
+ }
+ return pb;
+ }
+
+ @VisibleForTesting
+ public boolean isRttMergeSupported(@NonNull PersistableBundle pb) {
+ return pb.getBoolean(CarrierConfigManager.KEY_ALLOW_MERGING_RTT_CALLS_BOOL);
}
private boolean canDeflectImsCalls() {
- PersistableBundle b = getCarrierConfig();
- // Return false if the CarrierConfig is unavailable
- if (b != null) {
- return b.getBoolean(
- CarrierConfigManager.KEY_CARRIER_ALLOW_DEFLECT_IMS_CALL_BOOL) &&
- isValidRingingCall();
- }
- return false;
+ return getCarrierConfig().getBoolean(
+ CarrierConfigManager.KEY_CARRIER_ALLOW_DEFLECT_IMS_CALL_BOOL)
+ && isValidRingingCall();
}
private boolean isCallTransferSupported() {
- PersistableBundle b = getCarrierConfig();
- // Return false if the CarrierConfig is unavailable
- if (b != null) {
- return b.getBoolean(CarrierConfigManager.KEY_CARRIER_ALLOW_TRANSFER_IMS_CALL_BOOL);
- }
- return false;
+ return getCarrierConfig().getBoolean(
+ CarrierConfigManager.KEY_CARRIER_ALLOW_TRANSFER_IMS_CALL_BOOL);
}
private boolean canTransfer(TelephonyConnection c) {
@@ -3038,8 +3055,6 @@
if (isIms) {
isVoWifiEnabled = isWfcEnabled(phone);
}
- boolean isRttMergeSupported = getCarrierConfig()
- .getBoolean(CarrierConfigManager.KEY_ALLOW_MERGING_RTT_CALLS_BOOL);
PhoneAccountHandle phoneAccountHandle = isIms ? PhoneUtils
.makePstnPhoneAccountHandle(phone.getDefaultPhone())
: PhoneUtils.makePstnPhoneAccountHandle(phone);
@@ -3077,7 +3092,7 @@
if (mTreatAsEmergencyCall) {
isConferenceSupported = false;
Log.d(this, "refreshConferenceSupported = false; emergency call");
- } else if (isRtt() && !isRttMergeSupported) {
+ } else if (isRtt() && !isRttMergeSupported(getCarrierConfig())) {
isConferenceSupported = false;
Log.d(this, "refreshConferenceSupported = false; rtt call");
} else if (!isConferencingSupported || isIms && !isImsConferencingSupported) {
@@ -3134,12 +3149,9 @@
Phone phone = getPhone();
if (phone != null && (phone.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA)
&& !mOriginalConnection.isIncoming()) {
- PersistableBundle pb = getCarrierConfig();
- if (pb != null) {
- showOrigDialString = pb.getBoolean(CarrierConfigManager
- .KEY_CONFIG_SHOW_ORIG_DIAL_STRING_FOR_CDMA_BOOL);
- Log.d(this, "showOrigDialString: " + showOrigDialString);
- }
+ showOrigDialString = getCarrierConfig().getBoolean(CarrierConfigManager
+ .KEY_CONFIG_SHOW_ORIG_DIAL_STRING_FOR_CDMA_BOOL);
+ Log.d(this, "showOrigDialString: " + showOrigDialString);
}
return showOrigDialString;
}
@@ -3716,8 +3728,7 @@
if (mOriginalConnection.isIncoming()
&& !TextUtils.isEmpty(mOriginalConnection.getAddress())
&& mOriginalConnection.getAddress().startsWith(JAPAN_COUNTRY_CODE_WITH_PLUS_SIGN)) {
- PersistableBundle b = getCarrierConfig();
- return b != null && b.getBoolean(
+ return getCarrierConfig().getBoolean(
CarrierConfigManager.KEY_FORMAT_INCOMING_NUMBER_TO_NATIONAL_FOR_JP_BOOL);
}
return false;
@@ -3742,8 +3753,7 @@
* otherwise.
*/
private boolean supportsD2DUsingRtp() {
- PersistableBundle b = getCarrierConfig();
- return b != null && b.getBoolean(
+ return getCarrierConfig().getBoolean(
CarrierConfigManager.KEY_SUPPORTS_DEVICE_TO_DEVICE_COMMUNICATION_USING_RTP_BOOL);
}
@@ -3751,8 +3761,7 @@
* @return {@code true} if the carrier supports D2D using DTMF digits, {@code false} otherwise.
*/
private boolean supportsD2DUsingDtmf() {
- PersistableBundle b = getCarrierConfig();
- return b != null && b.getBoolean(
+ return getCarrierConfig().getBoolean(
CarrierConfigManager.KEY_SUPPORTS_DEVICE_TO_DEVICE_COMMUNICATION_USING_DTMF_BOOL);
}
@@ -3761,8 +3770,7 @@
* extensions used in D2D comms, {@code false} otherwise.
*/
private boolean supportsSdpNegotiationOfRtpHeaderExtensions() {
- PersistableBundle b = getCarrierConfig();
- return b != null && b.getBoolean(
+ return getCarrierConfig().getBoolean(
CarrierConfigManager
.KEY_SUPPORTS_SDP_NEGOTIATION_OF_D2D_RTP_HEADER_EXTENSIONS_BOOL);
}
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index bb96c7c..da918ad 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -181,18 +181,27 @@
*/
private static class SlotStatus {
public int slotId;
+ public int activeSubId;
// RAT capabilities
public int capabilities;
// By default, we will assume that the slots are not locked.
public boolean isLocked = false;
// Is the emergency number associated with the slot
public boolean hasDialedEmergencyNumber = false;
- //SimState
+ //SimState.
public int simState;
- public SlotStatus(int slotId, int capabilities) {
+ //helper to check if sim is really 'present' in the traditional sense.
+ // since eSIM always reports SIM_STATE_READY
+ public boolean isSubActiveAndSimPresent() {
+ return (simState != TelephonyManager.SIM_STATE_ABSENT
+ && activeSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ }
+
+ public SlotStatus(int slotId, int capabilities, int activeSubId) {
this.slotId = slotId;
this.capabilities = capabilities;
+ this.activeSubId = activeSubId;
}
}
@@ -221,6 +230,7 @@
public int getPhoneId(int subId) {
return SubscriptionManager.getPhoneId(subId);
}
+
};
/**
@@ -229,10 +239,20 @@
@VisibleForTesting
public interface TelephonyManagerProxy {
int getPhoneCount();
- boolean hasIccCard(int slotId);
boolean isCurrentEmergencyNumber(String number);
Map<Integer, List<EmergencyNumber>> getCurrentEmergencyNumberList();
+
+ /**
+ * Determines whether concurrent IMS calls across both SIMs are possible, based on whether
+ * the device is DSDA capable, or if the DSDS device supports virtual DSDA.
+ */
boolean isConcurrentCallsPossible();
+
+ /**
+ * Gets the maximum number of SIMs that can be active, based on the device's multisim
+ * configuration. Returns 1 for DSDS, 2 for DSDA.
+ */
+ int getMaxNumberOfSimultaneouslyActiveSims();
}
private TelephonyManagerProxy mTelephonyManagerProxy;
@@ -251,11 +271,6 @@
}
@Override
- public boolean hasIccCard(int slotId) {
- return mTelephonyManager.hasIccCard(slotId);
- }
-
- @Override
public boolean isCurrentEmergencyNumber(String number) {
try {
return mTelephonyManager.isEmergencyNumber(number);
@@ -274,9 +289,22 @@
}
@Override
+ public int getMaxNumberOfSimultaneouslyActiveSims() {
+ try {
+ return mTelephonyManager.getMaxNumberOfSimultaneouslyActiveSims();
+ } catch (IllegalStateException ise) {
+ return 1;
+ }
+ }
+
+ @Override
public boolean isConcurrentCallsPossible() {
- // Under DSDA, need to be determined by voice capabilities
- return mTelephonyManager.getMaxNumberOfSimultaneouslyActiveSims() > 1;
+ try {
+ return getMaxNumberOfSimultaneouslyActiveSims() > 1
+ || mTelephonyManager.getPhoneCapability().getMaxActiveVoiceSubscriptions() > 1;
+ } catch (IllegalStateException ise) {
+ return false;
+ }
}
}
@@ -1649,7 +1677,7 @@
Log.i(this, "retryOutgoingOriginalConnection, redialing on Phone Id: " + newPhoneToUse);
c.clearOriginalConnection();
if (phoneId != newPhoneToUse.getPhoneId()) {
- if (!mTelephonyManagerProxy.isConcurrentCallsPossible()) {
+ if (mTelephonyManagerProxy.getMaxNumberOfSimultaneouslyActiveSims() < 2) {
disconnectAllCallsOnOtherSubs(
mPhoneUtilsProxy.makePstnPhoneAccountHandle(newPhoneToUse));
}
@@ -1852,6 +1880,9 @@
case CallStateException.ERROR_OTASP_PROVISIONING_IN_PROCESS:
cause = android.telephony.DisconnectCause.OTASP_PROVISIONING_IN_PROCESS;
break;
+ case CallStateException.ERROR_FDN_BLOCKED:
+ cause = android.telephony.DisconnectCause.FDN_BLOCKED;
+ break;
}
connection.setTelephonyConnectionDisconnected(
DisconnectCauseUtil.toTelecomDisconnectCause(cause, e.getMessage(),
@@ -2103,7 +2134,7 @@
for (Phone phone : mPhoneFactoryProxy.getPhones()) {
if (phone.getEmergencyNumberTracker() != null) {
if (phone.getEmergencyNumberTracker().isEmergencyNumber(
- emergencyNumberAddress, true)) {
+ emergencyNumberAddress)) {
if (isAvailableForEmergencyCalls(phone)) {
// a)
if (phone.getPhoneId() == defaultVoicePhoneId) {
@@ -2179,10 +2210,11 @@
// 5)
// Store the RAF Capabilities for sorting later.
int radioAccessFamily = phone.getRadioAccessFamily();
- SlotStatus status = new SlotStatus(i, radioAccessFamily);
+ SlotStatus status = new SlotStatus(i, radioAccessFamily, phone.getSubId());
phoneSlotStatus.add(status);
Log.i(this, "getFirstPhoneForEmergencyCall, RAF:" +
- Integer.toHexString(radioAccessFamily) + " saved for Phone Id:" + i);
+ Integer.toHexString(radioAccessFamily) + " saved for Phone Id:" + i + " subId:"
+ + phone.getSubId());
// 4)
// Report Slot's PIN/PUK lock status for sorting later.
int simState = mSubscriptionManagerProxy.getSimStateForSlotIdx(i);
@@ -2192,6 +2224,7 @@
simState == TelephonyManager.SIM_STATE_PUK_REQUIRED) {
status.isLocked = true;
}
+
// 3) Store if the Phone has the corresponding emergency number
if (phonesWithEmergencyNumber != null) {
for (Phone phoneWithEmergencyNumber : phonesWithEmergencyNumber) {
@@ -2202,13 +2235,15 @@
}
}
// 6)
- if (firstPhoneWithSim == null && mTelephonyManagerProxy.hasIccCard(i)) {
- // The slot has a SIM card inserted, but is not in service, so keep track of this
- // Phone. Do not return because we want to make sure that none of the other Phones
+ if (firstPhoneWithSim == null &&
+ (phone.getSubId() != SubscriptionManager.INVALID_SIM_SLOT_INDEX)) {
+ // The slot has a SIM card inserted (and an active subscription), but is not in
+ // service, so keep track of this Phone.
+ // Do not return because we want to make sure that none of the other Phones
// are in service (because that is always faster).
firstPhoneWithSim = phone;
- Log.i(this, "getFirstPhoneForEmergencyCall, SIM card inserted, Phone Id:" +
- firstPhoneWithSim.getPhoneId());
+ Log.i(this, "getFirstPhoneForEmergencyCall, SIM with active sub, Phone Id:" +
+ firstPhoneWithSim.getPhoneId());
}
}
// 7)
@@ -2224,18 +2259,19 @@
final int defaultPhoneId = mPhoneFactoryProxy.getDefaultPhone().getPhoneId();
final Phone firstOccupiedSlot = firstPhoneWithSim;
if (!phoneSlotStatus.isEmpty()) {
+ Log.i(this, "getFirstPhoneForEmergencyCall, list size: " + phoneSlotStatus.size()
+ + " defaultPhoneId: " + defaultPhoneId + " firstOccupiedSlot: "
+ + firstOccupiedSlot);
// Only sort if there are enough elements to do so.
if (phoneSlotStatus.size() > 1) {
Collections.sort(phoneSlotStatus, (o1, o2) -> {
- // Sort by non-absent SIM.
- if (o1.simState == TelephonyManager.SIM_STATE_ABSENT
- && o2.simState != TelephonyManager.SIM_STATE_ABSENT) {
- return -1;
- }
- if (o2.simState == TelephonyManager.SIM_STATE_ABSENT
- && o1.simState != TelephonyManager.SIM_STATE_ABSENT) {
+ // Sort by non-absent SIM (SIM without active sub is considered absent).
+ if (o1.isSubActiveAndSimPresent() && !o2.isSubActiveAndSimPresent()) {
return 1;
}
+ if (o2.isSubActiveAndSimPresent() && !o1.isSubActiveAndSimPresent()) {
+ return -1;
+ }
// First start by seeing if either of the phone slots are locked. If they
// are, then sort by non-locked SIM first. If they are both locked, sort
// by capability instead.
@@ -2585,8 +2621,8 @@
}
/**
- * For the passed in incoming {@link TelephonyConnection}, add
- * {@link Connection#EXTRA_ANSWERING_DROPS_FG_CALL} if there are ongoing calls on another
+ * For the passed in incoming {@link TelephonyConnection}, for non- dual active voice devices,
+ * adds {@link Connection#EXTRA_ANSWERING_DROPS_FG_CALL} if there are ongoing calls on another
* subscription (ie phone account handle) than the one passed in.
* @param connection The connection.
* @param phoneAccountHandle The {@link PhoneAccountHandle} the incoming call originated on;
@@ -2597,6 +2633,9 @@
*/
public void maybeIndicateAnsweringWillDisconnect(@NonNull TelephonyConnection connection,
@NonNull PhoneAccountHandle phoneAccountHandle) {
+ if (mTelephonyManagerProxy.isConcurrentCallsPossible()) {
+ return;
+ }
if (isCallPresentOnOtherSub(phoneAccountHandle)) {
Log.i(this, "maybeIndicateAnsweringWillDisconnect; answering call %s will cause a call "
+ "on another subscription to drop.", connection.getTelecomCallId());
@@ -2622,37 +2661,46 @@
/**
* Where there are ongoing calls on another subscription other than the one specified,
- * disconnect these calls. This is used where there is an incoming call on one sub, but there
- * are ongoing calls on another sub which need to be disconnected.
+ * disconnect these calls for non-DSDA devices. This is used where there is an incoming call on
+ * one sub, but there are ongoing calls on another sub which need to be disconnected.
* @param incomingHandle The incoming {@link PhoneAccountHandle}.
*/
public void maybeDisconnectCallsOnOtherSubs(@NonNull PhoneAccountHandle incomingHandle) {
Log.i(this, "maybeDisconnectCallsOnOtherSubs: check for calls not on %s", incomingHandle);
- maybeDisconnectCallsOnOtherSubs(getAllConnections(), incomingHandle);
+ maybeDisconnectCallsOnOtherSubs(getAllConnections(), incomingHandle,
+ mTelephonyManagerProxy);
}
/**
- * Used by {@link #maybeDisconnectCallsOnOtherSubs(PhoneAccountHandle)} to perform call
- * disconnection. This method exists as a convenience so that it is possible to unit test
+ * Used by {@link #maybeDisconnectCallsOnOtherSubs(PhoneAccountHandle)} to evaluate and perform
+ * call disconnection. This method exists as a convenience so that it is possible to unit test
* the core functionality.
* @param connections the calls to check.
* @param incomingHandle the incoming handle.
+ * @param telephonyManagerProxy the proxy to the {@link TelephonyManager} instance.
*/
@VisibleForTesting
public static void maybeDisconnectCallsOnOtherSubs(@NonNull Collection<Connection> connections,
- @NonNull PhoneAccountHandle incomingHandle) {
+ @NonNull PhoneAccountHandle incomingHandle,
+ TelephonyManagerProxy telephonyManagerProxy) {
+ if (telephonyManagerProxy.isConcurrentCallsPossible()) {
+ return;
+ }
connections.stream()
.filter(c ->
// Exclude multiendpoint calls as they're not on this device.
- (c.getConnectionProperties() & Connection.PROPERTY_IS_EXTERNAL_CALL) == 0
+ (c.getConnectionProperties() & Connection.PROPERTY_IS_EXTERNAL_CALL)
+ == 0
// Include any calls not on same sub as current connection.
&& !Objects.equals(c.getPhoneAccountHandle(), incomingHandle))
.forEach(c -> {
if (c instanceof TelephonyConnection) {
TelephonyConnection tc = (TelephonyConnection) c;
if (!tc.shouldTreatAsEmergencyCall()) {
- Log.i(LOG_TAG, "maybeDisconnectCallsOnOtherSubs: disconnect %s due to "
- + "incoming call on other sub.", tc.getTelecomCallId());
+ Log.i(LOG_TAG,
+ "maybeDisconnectCallsOnOtherSubs: disconnect %s due to "
+ + "incoming call on other sub.",
+ tc.getTelecomCallId());
// Note: intentionally calling hangup instead of onDisconnect.
// onDisconnect posts the disconnection to a handle which means that the
// disconnection will take place AFTER we answer the incoming call.
diff --git a/src/com/android/services/telephony/rcs/RcsFeatureController.java b/src/com/android/services/telephony/rcs/RcsFeatureController.java
index 0e1cb4b..48c84b1 100644
--- a/src/com/android/services/telephony/rcs/RcsFeatureController.java
+++ b/src/com/android/services/telephony/rcs/RcsFeatureController.java
@@ -19,6 +19,7 @@
import android.annotation.AnyThread;
import android.content.Context;
import android.net.Uri;
+import android.telephony.SubscriptionManager;
import android.telephony.ims.ImsException;
import android.telephony.ims.ImsReasonInfo;
import android.telephony.ims.aidl.IImsCapabilityCallback;
@@ -402,6 +403,17 @@
callback.accept(mImsRcsRegistrationHelper.getImsRegistrationState());
}
+ /**
+ * @return the subscription ID that is currently associated with this RCS feature.
+ */
+ public int getAssociatedSubId() {
+ RcsFeatureManager manager = getFeatureManager();
+ if (manager != null) {
+ return manager.getSubId();
+ }
+ return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+
private void updateCapabilities() {
RcsFeatureManager manager = getFeatureManager();
if (manager != null) {
diff --git a/src/com/android/services/telephony/rcs/SipTransportController.java b/src/com/android/services/telephony/rcs/SipTransportController.java
index 0aa3aa0..1fc1349 100644
--- a/src/com/android/services/telephony/rcs/SipTransportController.java
+++ b/src/com/android/services/telephony/rcs/SipTransportController.java
@@ -56,6 +56,7 @@
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
+import java.util.Locale;
import java.util.Set;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletableFuture;
@@ -917,7 +918,7 @@
it.remove();
deniedTags.add(new FeatureTagState(tag,
SipDelegateManager.DENIED_REASON_IN_USE_BY_ANOTHER_DELEGATE));
- } else if (!mFeatureTagsAllowed.contains(tag.trim().toLowerCase())) {
+ } else if (!mFeatureTagsAllowed.contains(tag.trim().toLowerCase(Locale.ROOT))) {
logi(tag + " is not allowed per config.");
it.remove();
deniedTags.add(new FeatureTagState(tag,
@@ -1032,7 +1033,7 @@
CarrierConfigManager.Ims.KEY_RCS_FEATURE_TAG_ALLOWED_STRING_ARRAY);
if (tagConfigs != null && tagConfigs.length > 0) {
for (String tag : tagConfigs) {
- mFeatureTagsAllowed.add(tag.trim().toLowerCase());
+ mFeatureTagsAllowed.add(tag.trim().toLowerCase(Locale.ROOT));
}
}
}
diff --git a/src/com/android/services/telephony/rcs/TelephonyRcsService.java b/src/com/android/services/telephony/rcs/TelephonyRcsService.java
index dfcea74..13b3a7d 100644
--- a/src/com/android/services/telephony/rcs/TelephonyRcsService.java
+++ b/src/com/android/services/telephony/rcs/TelephonyRcsService.java
@@ -244,6 +244,22 @@
}
/**
+ * Verifies the subId supplied is the active subId for the slotId specified.
+ * If we have not processed a CARRIER_CONFIG_CHANGED indication for this subscription yet,
+ * either the subscription is not active or we have not finished setting up the feature yet.
+ * @param slotId The slotId we are verifying
+ * @param subId The subId we are verifying
+ * @return true if the subId is the active subId we are tracking for the slotId specified.
+ */
+ public boolean verifyActiveSubId(int slotId, int subId) {
+ synchronized (mLock) {
+ int currId = mSlotToAssociatedSubIds.get(slotId,
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ return subId == currId;
+ }
+ }
+
+ /**
* ACTION_CARRIER_CONFIG_CHANGED was received by this service for a specific slot.
* @param slotId The slotId associated with the event.
* @param subId The subId associated with the event. May cause the subId associated with the
diff --git a/src/com/android/services/telephony/rcs/validator/OutgoingTransportStateValidator.java b/src/com/android/services/telephony/rcs/validator/OutgoingTransportStateValidator.java
index 72d22f8..d532ea9 100644
--- a/src/com/android/services/telephony/rcs/validator/OutgoingTransportStateValidator.java
+++ b/src/com/android/services/telephony/rcs/validator/OutgoingTransportStateValidator.java
@@ -29,6 +29,7 @@
import java.util.Arrays;
import java.util.Collections;
+import java.util.Locale;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -166,7 +167,7 @@
}
// Only need to validate requests that start dialogs.
boolean startsDialog = Arrays.stream(SipSessionTracker.SIP_REQUEST_DIALOG_START_METHODS)
- .anyMatch(req -> req.equals(segments[0].trim().toLowerCase()));
+ .anyMatch(req -> req.equals(segments[0].trim().toLowerCase(Locale.ROOT)));
// If part of an existing dialog, then no need to validate.
boolean needsFeatureValidation = startsDialog && !getAllowedCallIds()
.contains(m.getCallIdParameter());
diff --git a/src/com/android/services/telephony/rcs/validator/RestrictedOutgoingSipRequestValidator.java b/src/com/android/services/telephony/rcs/validator/RestrictedOutgoingSipRequestValidator.java
index 2c2632f..afb86a0 100644
--- a/src/com/android/services/telephony/rcs/validator/RestrictedOutgoingSipRequestValidator.java
+++ b/src/com/android/services/telephony/rcs/validator/RestrictedOutgoingSipRequestValidator.java
@@ -22,6 +22,7 @@
import com.android.internal.telephony.SipMessageParsingUtils;
import java.util.Arrays;
+import java.util.Locale;
/**
* Validate that any outgoing SIP request message does not contain methods that are only generated
@@ -47,7 +48,7 @@
"malformed start line: " + message.getStartLine());
}
if (Arrays.stream(IMS_SERVICE_HANDLED_REQUEST_METHODS).anyMatch(
- s -> segments[0].toLowerCase().contains(s))) {
+ s -> segments[0].toLowerCase(Locale.ROOT).contains(s))) {
return new ValidationResult(
SipDelegateManager.MESSAGE_FAILURE_REASON_INVALID_START_LINE,
"restricted method: " + segments[0]);
diff --git a/src/com/android/services/telephony/rcs/validator/RestrictedOutgoingSubscribeValidator.java b/src/com/android/services/telephony/rcs/validator/RestrictedOutgoingSubscribeValidator.java
index 41074ed..de6bfe7 100644
--- a/src/com/android/services/telephony/rcs/validator/RestrictedOutgoingSubscribeValidator.java
+++ b/src/com/android/services/telephony/rcs/validator/RestrictedOutgoingSubscribeValidator.java
@@ -24,6 +24,7 @@
import java.util.Arrays;
import java.util.List;
+import java.util.Locale;
import java.util.stream.Collectors;
/**
@@ -60,7 +61,8 @@
return ValidationResult.SUCCESS;
}
boolean isRestricted = eventHeaders.stream().map(e -> e.second)
- .anyMatch(e -> Arrays.asList(RESTRICTED_EVENTS).contains(e.trim().toLowerCase()));
+ .anyMatch(e -> Arrays.asList(RESTRICTED_EVENTS).contains(e.trim().toLowerCase(
+ Locale.ROOT)));
return isRestricted ? new ValidationResult(
SipDelegateManager.MESSAGE_FAILURE_REASON_INVALID_HEADER_FIELDS,
diff --git a/testapps/GbaTestApp/res/values-ro/strings.xml b/testapps/GbaTestApp/res/values-ro/strings.xml
index d7f9e7b..dd44364 100644
--- a/testapps/GbaTestApp/res/values-ro/strings.xml
+++ b/testapps/GbaTestApp/res/values-ro/strings.xml
@@ -7,9 +7,9 @@
<string name="label_service" msgid="2668963955237345578">"Configurația serviciului"</string>
<string name="label_test" msgid="8425079572898571918">"Configurație de testare"</string>
<string name="button_name_running" msgid="4557363091224858010">"Rulează"</string>
- <string name="button_name_exit" msgid="8025683733431538975">"Ieșiți"</string>
+ <string name="button_name_exit" msgid="8025683733431538975">"Ieși"</string>
<string name="label_test_result" msgid="892984695972956196">"Rezultatul testului"</string>
- <string name="button_name_clear" msgid="436313515327318537">"Resetați"</string>
+ <string name="button_name_clear" msgid="436313515327318537">"Resetează"</string>
<string name="button_name_done" msgid="6030406534322497491">"Terminat"</string>
<string name="title_activity_carrier_config" msgid="7807803900475957717">"CarrierConfigActivity"</string>
<string name="title_activity_service_config" msgid="5394662739555577279">"ServiceConfigActivity"</string>
@@ -18,7 +18,7 @@
<string name="service_release_time" msgid="532937496122890892">"Durata până la lansarea serviciului după apel"</string>
<string name="request_app_type" msgid="3975978141673475612">"Tipul aplicației UICC"</string>
<string name="request_naf_url" msgid="4487793541217737042">"Adresa URL pentru funcția aplicației pentru rețea (NAF)"</string>
- <string name="request_force_bootstrapping" msgid="206043602616214325">"Forțați inițializarea?"</string>
+ <string name="request_force_bootstrapping" msgid="206043602616214325">"Forțezi inițializarea?"</string>
<string name="request_org" msgid="8416693445448308975">"Cod organizațional"</string>
<string name="request_security_protocol" msgid="1444164827561010482">"ID-ul protocolului de securitate pentru Google Analytics universal"</string>
<string name="request_tls_cipher_suite" msgid="6659854717595308404">"ID-ul suitei TLS Cipher"</string>
diff --git a/testapps/GbaTestApp/res/values-te/strings.xml b/testapps/GbaTestApp/res/values-te/strings.xml
index 72bd28b..28b0489 100644
--- a/testapps/GbaTestApp/res/values-te/strings.xml
+++ b/testapps/GbaTestApp/res/values-te/strings.xml
@@ -7,7 +7,7 @@
<string name="label_service" msgid="2668963955237345578">"సర్వీస్ కాన్ఫిగరేషన్"</string>
<string name="label_test" msgid="8425079572898571918">"పరీక్ష కాన్ఫిగరేషన్"</string>
<string name="button_name_running" msgid="4557363091224858010">"రన్ అవుతోంది"</string>
- <string name="button_name_exit" msgid="8025683733431538975">"నిష్క్రమించు"</string>
+ <string name="button_name_exit" msgid="8025683733431538975">"నిష్క్రమించండి"</string>
<string name="label_test_result" msgid="892984695972956196">"పరీక్ష ఫలితం"</string>
<string name="button_name_clear" msgid="436313515327318537">"రీసెట్ చేయండి"</string>
<string name="button_name_done" msgid="6030406534322497491">"పూర్తయింది"</string>
diff --git a/testapps/TelephonyManagerTestApp/src/com/android/phone/testapps/telephonymanagertestapp/TelephonyManagerTestApp.java b/testapps/TelephonyManagerTestApp/src/com/android/phone/testapps/telephonymanagertestapp/TelephonyManagerTestApp.java
index 760c3bd..815c7e8 100644
--- a/testapps/TelephonyManagerTestApp/src/com/android/phone/testapps/telephonymanagertestapp/TelephonyManagerTestApp.java
+++ b/testapps/TelephonyManagerTestApp/src/com/android/phone/testapps/telephonymanagertestapp/TelephonyManagerTestApp.java
@@ -35,6 +35,7 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.Locale;
/**
* Main activity.
@@ -158,7 +159,8 @@
mFilteredMethods.addAll(mMethods);
} else {
for (Method method : mMethods) {
- if (method.getName().toLowerCase().contains(text.toLowerCase())) {
+ if (method.getName().toLowerCase(Locale.ROOT)
+ .contains(text.toLowerCase(Locale.ROOT))) {
mFilteredMethods.add(method);
}
}
diff --git a/testapps/TestRcsApp/TestApp/src/com/google/android/sample/rcsclient/util/NumberUtils.java b/testapps/TestRcsApp/TestApp/src/com/google/android/sample/rcsclient/util/NumberUtils.java
index 14d3b9c..4a47718 100644
--- a/testapps/TestRcsApp/TestApp/src/com/google/android/sample/rcsclient/util/NumberUtils.java
+++ b/testapps/TestRcsApp/TestApp/src/com/google/android/sample/rcsclient/util/NumberUtils.java
@@ -24,6 +24,8 @@
import com.android.i18n.phonenumbers.PhoneNumberUtil;
import com.android.i18n.phonenumbers.Phonenumber;
+import java.util.Locale;
+
public class NumberUtils {
/**
@@ -33,7 +35,7 @@
*/
public static String formatNumber(Context context, String number) {
TelephonyManager manager = context.getSystemService(TelephonyManager.class);
- String simCountryIso = manager.getSimCountryIso().toUpperCase();
+ String simCountryIso = manager.getSimCountryIso().toUpperCase(Locale.ROOT);
PhoneNumberUtil util = PhoneNumberUtil.getInstance();
try {
Phonenumber.PhoneNumber phoneNumber = util.parse(number, simCountryIso);
diff --git a/testapps/TestSliceApp/.idea/.gitignore b/testapps/TestSliceApp/.idea/.gitignore
deleted file mode 100644
index 26d3352..0000000
--- a/testapps/TestSliceApp/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/testapps/TestSliceApp/.idea/compiler.xml b/testapps/TestSliceApp/.idea/compiler.xml
deleted file mode 100644
index fb7f4a8..0000000
--- a/testapps/TestSliceApp/.idea/compiler.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="CompilerConfiguration">
- <bytecodeTargetLevel target="11" />
- </component>
-</project>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/.idea/gradle.xml b/testapps/TestSliceApp/.idea/gradle.xml
deleted file mode 100644
index 526b4c2..0000000
--- a/testapps/TestSliceApp/.idea/gradle.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="GradleMigrationSettings" migrationVersion="1" />
- <component name="GradleSettings">
- <option name="linkedExternalProjectsSettings">
- <GradleProjectSettings>
- <option name="testRunner" value="GRADLE" />
- <option name="distributionType" value="DEFAULT_WRAPPED" />
- <option name="externalProjectPath" value="$PROJECT_DIR$" />
- <option name="modules">
- <set>
- <option value="$PROJECT_DIR$" />
- <option value="$PROJECT_DIR$/app" />
- </set>
- </option>
- <option name="resolveModulePerSourceSet" value="false" />
- </GradleProjectSettings>
- </option>
- </component>
-</project>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/.idea/misc.xml b/testapps/TestSliceApp/.idea/misc.xml
deleted file mode 100644
index a329266..0000000
--- a/testapps/TestSliceApp/.idea/misc.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="DesignSurface">
- <option name="filePathToZoomLevelMap">
- <map>
- <entry key="app/src/main/res/drawable/ic_launcher_background.xml" value="0.38177083333333334" />
- <entry key="app/src/main/res/layout/_copy.xml" value="0.365625" />
- <entry key="app/src/main/res/layout/activity_main.xml" value="0.4891304347826087" />
- <entry key="app/src/main/res/layout/copy.xml" value="0.37135416666666665" />
- <entry key="app/src/main/res/layout/fragment_c_b_s.xml" value="0.473731884057971" />
- <entry key="app/src/main/res/layout/fragment_c_b_s_copy.xml" value="0.365625" />
- <entry key="app/src/main/res/layout/fragment_main.xml" value="0.46693840579710144" />
- <entry key="app/src/main/res/layout/fragment_prioritize_bandwidth.xml" value="0.473731884057971" />
- <entry key="app/src/main/res/layout/fragment_prioritize_bandwidth2.xml" value="0.365625" />
- <entry key="app/src/main/res/layout/fragment_prioritize_latency.xml" value="0.473731884057971" />
- <entry key="app/src/main/res/layout/fragment_prioritize_latency2.xml" value="0.365625" />
- </map>
- </option>
- </component>
- <component name="NullableNotNullManager">
- <option name="myDefaultNullable" value="androidx.annotation.Nullable" />
- <option name="myDefaultNotNull" value="androidx.annotation.NonNull" />
- <option name="myNullables">
- <value>
- <list size="17">
- <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
- <item index="1" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
- <item index="2" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
- <item index="3" class="java.lang.String" itemvalue="androidx.annotation.Nullable" />
- <item index="4" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" />
- <item index="5" class="java.lang.String" itemvalue="com.android.annotations.Nullable" />
- <item index="6" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
- <item index="7" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
- <item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" />
- <item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" />
- <item index="10" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
- <item index="11" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.Nullable" />
- <item index="12" class="java.lang.String" itemvalue="io.reactivex.annotations.Nullable" />
- <item index="13" class="java.lang.String" itemvalue="io.reactivex.rxjava3.annotations.Nullable" />
- <item index="14" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" />
- <item index="15" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
- <item index="16" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" />
- </list>
- </value>
- </option>
- <option name="myNotNulls">
- <value>
- <list size="17">
- <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
- <item index="1" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
- <item index="2" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
- <item index="3" class="java.lang.String" itemvalue="androidx.annotation.NonNull" />
- <item index="4" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNonNull" />
- <item index="5" class="java.lang.String" itemvalue="com.android.annotations.NonNull" />
- <item index="6" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
- <item index="7" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" />
- <item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" />
- <item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
- <item index="10" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.NonNull" />
- <item index="11" class="java.lang.String" itemvalue="io.reactivex.annotations.NonNull" />
- <item index="12" class="java.lang.String" itemvalue="io.reactivex.rxjava3.annotations.NonNull" />
- <item index="13" class="java.lang.String" itemvalue="lombok.NonNull" />
- <item index="14" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" />
- <item index="15" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
- <item index="16" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" />
- </list>
- </value>
- </option>
- </component>
- <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="JDK" project-jdk-type="JavaSDK">
- <output url="file://$PROJECT_DIR$/build/classes" />
- </component>
- <component name="ProjectType">
- <option name="id" value="Android" />
- </component>
-</project>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/.idea/vcs.xml b/testapps/TestSliceApp/.idea/vcs.xml
deleted file mode 100644
index 498ba99..0000000
--- a/testapps/TestSliceApp/.idea/vcs.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="IssueNavigationConfiguration">
- <option name="links">
- <list>
- <IssueNavigationLink>
- <option name="issueRegexp" value="\bb/(\d+)(#\w+)?\b" />
- <option name="linkRegexp" value="https://buganizer.corp.google.com/issues/$1$2" />
- </IssueNavigationLink>
- <IssueNavigationLink>
- <option name="issueRegexp" value="\b(?:BUG=|FIXED=)(\d+)\b" />
- <option name="linkRegexp" value="https://buganizer.corp.google.com/issues/$1" />
- </IssueNavigationLink>
- <IssueNavigationLink>
- <option name="issueRegexp" value="\b(?:cl/|cr/|OCL=|DIFFBASE=|ROLLBACK_OF=)(\d+)\b" />
- <option name="linkRegexp" value="https://critique.corp.google.com/$1" />
- </IssueNavigationLink>
- <IssueNavigationLink>
- <option name="issueRegexp" value="\bomg/(\d+)\b" />
- <option name="linkRegexp" value="https://omg.corp.google.com/$1" />
- </IssueNavigationLink>
- <IssueNavigationLink>
- <option name="issueRegexp" value="\b(?:go/|goto/)([^,.<>()"\s]+(?:[.,][^,.<>()"\s]+)*)" />
- <option name="linkRegexp" value="https://goto.google.com/$1" />
- </IssueNavigationLink>
- <IssueNavigationLink>
- <option name="issueRegexp" value="\bcs/([^\s]+[\w$])" />
- <option name="linkRegexp" value="https://cs.corp.google.com/search/?q=$1" />
- </IssueNavigationLink>
- <IssueNavigationLink>
- <option name="issueRegexp" value="(LINT\.IfChange)|(LINT\.ThenChange)" />
- <option name="linkRegexp" value="https://goto.google.com/ifthisthenthatlint" />
- </IssueNavigationLink>
- </list>
- </option>
- </component>
- <component name="VcsDirectoryMappings">
- <mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
- </component>
-</project>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/AndroidManifest.xml b/testapps/TestSliceApp/app/src/main/AndroidManifest.xml
index d28bbb0..53754de 100644
--- a/testapps/TestSliceApp/app/src/main/AndroidManifest.xml
+++ b/testapps/TestSliceApp/app/src/main/AndroidManifest.xml
@@ -3,6 +3,9 @@
package="com.google.android.sample.testsliceapp">
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
+ <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
+ <uses-permission android:name="android.permission.READ_BASIC_PHONE_STATE" />
+ <uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
@@ -10,7 +13,8 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat"
- android:versionCode="34">
+ android:versionCode="34"
+ android:usesCleartextTraffic="true">
<activity
android:name=".MainActivity"
android:exported="true">
@@ -29,4 +33,4 @@
android:value="true" />
</service>
</application>
-</manifest>
\ No newline at end of file
+</manifest>
diff --git a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/CBS.java b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/CBS.java
index a555ce6..c85f830 100644
--- a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/CBS.java
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/CBS.java
@@ -20,7 +20,10 @@
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkRequest;
+import android.net.TelephonyNetworkSpecifier;
import android.os.Bundle;
+import android.telephony.SubscriptionManager;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
@@ -62,6 +65,7 @@
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ mConnectivityManager = getContext().getSystemService(ConnectivityManager.class);
}
@Override
@@ -80,23 +84,33 @@
mRelease.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
- mConnectivityManager.unregisterNetworkCallback(
+ try {
+ mConnectivityManager.unregisterNetworkCallback(
mProfileCheckNetworkCallback);
+ } catch (Exception e) {
+ Log.d("SliceTest", "Exception: " + e);
+ }
}
});
mRequest = view.findViewById(R.id.requestcbs);
mRequest.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
- NetworkCallback mProfileCheckNetworkCallback = new NetworkCallback() {
+ mProfileCheckNetworkCallback = new NetworkCallback() {
@Override
public void onAvailable(final Network network) {
mNetwork = network;
+ Log.d("CBS", "onAvailable + " + network);
}
};
NetworkRequest.Builder builder = new NetworkRequest.Builder();
builder.addCapability(NetworkCapabilities.NET_CAPABILITY_CBS);
+ builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
+ int subId = SubscriptionManager.getDefaultDataSubscriptionId();
+ builder.setNetworkSpecifier(new TelephonyNetworkSpecifier.Builder()
+ .setSubscriptionId(subId).build());
mConnectivityManager.requestNetwork(builder.build(), mProfileCheckNetworkCallback);
+ Log.d("CBS", "onClick + " + builder.build());
}
});
mPing = view.findViewById(R.id.pingcbs);
@@ -106,8 +120,9 @@
if (mNetwork != null) {
//mNetwork.
try {
- new RequestTask().ping(mNetwork);
+ new RequestTask().execute(mNetwork);
} catch (Exception e) {
+ Log.d("SliceTest", "Exception: " + e);
}
}
}
diff --git a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeBandwidth.java b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeBandwidth.java
index d997178..6812ddc 100644
--- a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeBandwidth.java
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeBandwidth.java
@@ -21,6 +21,7 @@
import android.net.NetworkCapabilities;
import android.net.NetworkRequest;
import android.os.Bundle;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
@@ -73,6 +74,7 @@
new NetworkCallback() {
@Override
public void onAvailable(final Network network) {
+ Log.d("SliceTest", "onAvailable: " + network);
mNetwork = network;
}
};
@@ -80,23 +82,30 @@
mRelease.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
- mConnectivityManager.unregisterNetworkCallback(mProfileCheckNetworkCallback);
+ try {
+ mConnectivityManager.unregisterNetworkCallback(
+ mProfileCheckNetworkCallback);
+ } catch (Exception e) {
+ Log.d("SliceTest", "Exception: " + e);
+ }
}
});
mRequest = view.findViewById(R.id.requestbw);
mRequest.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
- NetworkCallback mProfileCheckNetworkCallback =
+ mProfileCheckNetworkCallback =
new NetworkCallback() {
@Override
public void onAvailable(final Network network) {
+ Log.d("PrioritizeBandwidth", "onAvailable + " + network);
mNetwork = network;
}
};
NetworkRequest.Builder builder = new NetworkRequest.Builder();
builder.addCapability(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH);
mConnectivityManager.requestNetwork(builder.build(), mProfileCheckNetworkCallback);
+ Log.d("PrioritizeBandwidth", "onClick + " + builder.build());
}
});
mPing = view.findViewById(R.id.pingbw);
@@ -104,10 +113,10 @@
@Override
public void onClick(View view) {
if (mNetwork != null) {
- //mNetwork.
try {
- new RequestTask().ping(mNetwork);
+ new RequestTask().execute(mNetwork);
} catch (Exception e) {
+ Log.d("SliceTest", "Exception: " + e);
}
}
}
diff --git a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeLatency.java b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeLatency.java
index b45362c..2eeed30 100644
--- a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeLatency.java
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeLatency.java
@@ -15,31 +15,64 @@
*/
package com.google.android.sample.testsliceapp;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_ERROR;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_FEATURE_NOT_SUPPORTED;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_CONGESTED;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA_SUB;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_OVERRIDDEN;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_SUCCESS;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_TIMEOUT;
+import static android.telephony.TelephonyManager.PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_CANCELED;
+
+import android.annotation.TargetApi;
+import android.content.Context;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager.NetworkCallback;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkRequest;
import android.os.Bundle;
+import android.telephony.TelephonyManager;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.TextView;
import androidx.fragment.app.Fragment;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.TimeUnit;
+
/**
* A simple {@link Fragment} subclass. Use the {@link PrioritizeLatency#newInstance} factory method
* to create an instance of this fragment.
*/
public class PrioritizeLatency extends Fragment {
- Button mRelease, mRequest, mPing;
- Network mNetwork;
+ Button mPurchase, mNetworkRequestRelease, mPing;
+ TextView mResultTextView;
+ Network mNetwork = null;
ConnectivityManager mConnectivityManager;
NetworkCallback mProfileCheckNetworkCallback;
+ TelephonyManager mTelephonyManager;
+ Context mContext;
+ private final ExecutorService mFixedThreadPool = Executors.newFixedThreadPool(3);
+
+ private static final String LOG_TAG = "PrioritizeLatency";
+ private static final int TIMEOUT_FOR_PURCHASE = 5 * 60; // 5 minutes
+
public PrioritizeLatency() {
- // Required empty public constructor
+ // Required empty public constructor
}
/**
@@ -61,6 +94,9 @@
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ mContext = getContext();
+ mConnectivityManager = mContext.getSystemService(ConnectivityManager.class);
+ mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
}
@Override
@@ -68,48 +104,190 @@
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_prioritize_latency, container, false);
- mProfileCheckNetworkCallback =
- new NetworkCallback() {
- @Override
- public void onAvailable(final Network network) {
- mNetwork = network;
- }
- };
- mRelease = view.findViewById(R.id.releaselatency);
- mRelease.setOnClickListener(new OnClickListener() {
+ mResultTextView = view.findViewById(R.id.resultTextView);
+
+ mPurchase = view.findViewById(R.id.purchaseButton);
+ mPurchase.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
- mConnectivityManager.unregisterNetworkCallback(mProfileCheckNetworkCallback);
+ Log.d(LOG_TAG, "Clicking purchase button");
+ onPurchaseButtonClick();
}
});
- mRequest = view.findViewById(R.id.requestlatency);
- mRequest.setOnClickListener(new OnClickListener() {
+
+ mNetworkRequestRelease = view.findViewById(R.id.requestReleaseButton);
+ mNetworkRequestRelease.setEnabled(false);
+ mNetworkRequestRelease.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
- NetworkCallback mProfileCheckNetworkCallback = new NetworkCallback() {
- @Override
- public void onAvailable(final Network network) {
- mNetwork = network;
- }
- };
- NetworkRequest.Builder builder = new NetworkRequest.Builder();
- builder.addCapability(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY);
- mConnectivityManager.requestNetwork(builder.build(), mProfileCheckNetworkCallback);
+ Log.d(LOG_TAG, "Clicking Request/Release Network button");
+ onNetworkRequestReleaseClick();
}
});
+
mPing = view.findViewById(R.id.pinglatency);
+ mPing.setEnabled(false);
mPing.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if (mNetwork != null) {
- //mNetwork.
try {
new RequestTask().ping(mNetwork);
} catch (Exception e) {
+ Log.e(LOG_TAG, "Exception at ping: " + e);
}
}
}
});
return view;
}
+
+ private void onNetworkRequestReleaseClick() {
+ if (mNetwork == null) {
+ mProfileCheckNetworkCallback = new NetworkCallback() {
+ @Override
+ public void onAvailable(final Network network) {
+ Log.d(LOG_TAG, "onAvailable + " + network);
+ mNetwork = network;
+ mPing.setEnabled(true);
+ mNetworkRequestRelease.setText(R.string.release_network);
+ mResultTextView.setText(R.string.network_available);
+ }
+ };
+ NetworkRequest.Builder builder = new NetworkRequest.Builder();
+ builder.addCapability(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY);
+ mConnectivityManager.requestNetwork(builder.build(),
+ mProfileCheckNetworkCallback);
+ Log.d(LOG_TAG, "Network Request/Release onClick + " + builder.build());
+ mResultTextView.setText(R.string.network_requested);
+ } else {
+ try {
+ mConnectivityManager.unregisterNetworkCallback(
+ mProfileCheckNetworkCallback);
+ mNetwork = null;
+ mNetworkRequestRelease.setText(R.string.request_network);
+ mResultTextView.setText(R.string.network_released);
+ } catch (Exception e) {
+ Log.e(LOG_TAG, "Exception when releasing network: " + e);
+ mResultTextView.setText(R.string.network_release_failed);
+ }
+ }
+ }
+
+ @TargetApi(34)
+ private void onPurchaseButtonClick() {
+ try {
+ if (mTelephonyManager.isPremiumCapabilityAvailableForPurchase(
+ TelephonyManager.PREMIUM_CAPABILITY_PRIORITIZE_LATENCY)) {
+ LinkedBlockingQueue<Integer> purchaseRequest = new LinkedBlockingQueue<>(1);
+
+ // Try to purchase the capability
+ mTelephonyManager.purchasePremiumCapability(
+ TelephonyManager.PREMIUM_CAPABILITY_PRIORITIZE_LATENCY,
+ mFixedThreadPool, purchaseRequest::offer);
+ mResultTextView.setText(R.string.purchase_in_progress);
+
+ mFixedThreadPool.execute(() -> {
+ try {
+ Integer result = purchaseRequest.poll(
+ TIMEOUT_FOR_PURCHASE, TimeUnit.SECONDS);
+ if (result == null) {
+ updateResultTextView(R.string.purchase_empty_result);
+ Log.d(LOG_TAG, "Got null result at purchasePremiumCapability");
+ return;
+ }
+
+ String purchaseResultText = "Result: "
+ + purchasePremiumResultToText(result.intValue());
+ updateResultTextView(purchaseResultText);
+ Log.d(LOG_TAG, purchaseResultText);
+
+ if (isPremiumCapacityAvailableForUse(result.intValue())) {
+ updateNetworkRequestReleaseButton(true);
+ }
+ } catch (InterruptedException e) {
+ Log.e(LOG_TAG, "InterruptedException at onPurchaseButtonClick: " + e);
+ updateResultTextView(R.string.purchase_exception);
+ }
+ });
+ } else {
+ mResultTextView.setText(R.string.premium_not_available);
+ }
+ } catch (Exception e) {
+ Log.e(LOG_TAG, "Exception when purchasing network premium: " + e);
+ mResultTextView.setText(R.string.purchase_exception);
+ }
+ }
+
+ private void updateNetworkRequestReleaseButton(boolean enabled) {
+ getActivity().runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ mNetworkRequestRelease.setEnabled(enabled);
+ }
+ });
+ }
+
+ private void updateResultTextView(int status) {
+ getActivity().runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ mResultTextView.setText(status);
+ }
+ });
+ }
+
+ private void updateResultTextView(String status) {
+ getActivity().runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ mResultTextView.setText(status);
+ }
+ });
+ }
+
+ private String purchasePremiumResultToText(int result) {
+ switch (result) {
+ case PURCHASE_PREMIUM_CAPABILITY_RESULT_SUCCESS:
+ return "Success";
+ case PURCHASE_PREMIUM_CAPABILITY_RESULT_THROTTLED:
+ return "Throttled";
+ case PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED:
+ return "Already purchased";
+ case PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_IN_PROGRESS:
+ return "Already in progress";
+ case PURCHASE_PREMIUM_CAPABILITY_RESULT_OVERRIDDEN:
+ return "Overridden";
+ case PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_CANCELED:
+ return "User canceled";
+ case PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_DISABLED:
+ return "Carrier disabled";
+ case PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_ERROR:
+ return "Carrier error";
+ case PURCHASE_PREMIUM_CAPABILITY_RESULT_TIMEOUT:
+ return "Timeout";
+ case PURCHASE_PREMIUM_CAPABILITY_RESULT_FEATURE_NOT_SUPPORTED:
+ return "Feature not supported";
+ case PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_NOT_AVAILABLE:
+ return "Network not available";
+ case PURCHASE_PREMIUM_CAPABILITY_RESULT_NETWORK_CONGESTED:
+ return "Network congested";
+ case PURCHASE_PREMIUM_CAPABILITY_RESULT_NOT_DEFAULT_DATA_SUB:
+ return "No default data";
+ case PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP:
+ return "Pending network setup";
+ default:
+ String errorStr = "Unknown purchasing result " + result;
+ Log.e(LOG_TAG, errorStr);
+ return errorStr;
+ }
+ }
+
+ private boolean isPremiumCapacityAvailableForUse(int purchaseResult) {
+ if (purchaseResult == PURCHASE_PREMIUM_CAPABILITY_RESULT_SUCCESS
+ || purchaseResult == PURCHASE_PREMIUM_CAPABILITY_RESULT_ALREADY_PURCHASED) {
+ return true;
+ }
+ return false;
+ }
}
diff --git a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/RequestTask.java b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/RequestTask.java
index b12939e..1521a14 100644
--- a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/RequestTask.java
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/RequestTask.java
@@ -16,6 +16,8 @@
package com.google.android.sample.testsliceapp;
import android.net.Network;
+import android.os.AsyncTask;
+import android.util.Log;
import java.io.BufferedInputStream;
import java.io.IOException;
@@ -23,17 +25,26 @@
import java.net.HttpURLConnection;
import java.net.URL;
-class RequestTask{
+class RequestTask extends AsyncTask<Network, Integer, Integer> {
+ protected Integer doInBackground(Network... network) {
+ ping(network[0]);
+ return 0;
+ }
String ping(Network network) {
URL url = null;
try {
url = new URL("http://www.google.com");
} catch (Exception e) {
+ Log.d("SliceTest", "exception: " + e);
}
if (url != null) {
try {
- return httpGet(network, url);
+ Log.d("SliceTest", "ping " + url);
+ String result = httpGet(network, url);
+ Log.d("SliceTest", "result " + result);
+ return result;
} catch (Exception e) {
+ Log.d("SliceTest", "exception: " + e);
}
}
return "";
@@ -47,6 +58,7 @@
HttpURLConnection connection = (HttpURLConnection) network.openConnection(httpUrl);
try {
InputStream inputStream = connection.getInputStream();
+ Log.d("httpGet", "httpUrl + " + httpUrl);
return new BufferedInputStream(inputStream).toString();
} finally {
connection.disconnect();
diff --git a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/TestCarrierService.java b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/TestCarrierService.java
index b1d019e..daa1d17 100644
--- a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/TestCarrierService.java
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/TestCarrierService.java
@@ -21,6 +21,7 @@
import android.service.carrier.CarrierService;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
+import android.util.Log;
/**
* Carrier Service that sets the carrier config upon being bound by the system. Requires UICC
@@ -32,11 +33,13 @@
CarrierConfigManager cfgMgr =
(CarrierConfigManager) getSystemService(Context.CARRIER_CONFIG_SERVICE);
cfgMgr.notifyConfigChangedForSubId(SubscriptionManager.getDefaultSubscriptionId());
+ Log.d("TestCarrierService", "onCreate + ");
}
@Override
public PersistableBundle onLoadConfig(CarrierIdentifier carrierIdentifier) {
PersistableBundle config = new PersistableBundle();
+ Log.d("TestCarrierService", "onLoadConfig + ");
return config;
}
}
diff --git a/testapps/TestSliceApp/app/src/main/res/layout/activity_main.xml b/testapps/TestSliceApp/app/src/main/res/layout/activity_main.xml
index a723e6f..8a7d991 100644
--- a/testapps/TestSliceApp/app/src/main/res/layout/activity_main.xml
+++ b/testapps/TestSliceApp/app/src/main/res/layout/activity_main.xml
@@ -6,7 +6,6 @@
android:layout_height="match_parent"
tools:context=".MainActivity" >
<androidx.fragment.app.FragmentContainerView
- xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/frameLayoutMainFrag"
diff --git a/testapps/TestSliceApp/app/src/main/res/layout/fragment_c_b_s.xml b/testapps/TestSliceApp/app/src/main/res/layout/fragment_c_b_s.xml
index ac2ef9d..eff68ac 100644
--- a/testapps/TestSliceApp/app/src/main/res/layout/fragment_c_b_s.xml
+++ b/testapps/TestSliceApp/app/src/main/res/layout/fragment_c_b_s.xml
@@ -8,9 +8,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/frameLayoutCBS">
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
+<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/frameLayout3"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -19,30 +17,33 @@
android:id="@+id/textView3"
android:layout_width="342dp"
android:layout_height="49dp"
- android:text="CBS"
+ android:text="@string/cbs_title"
tools:layout_editor_absoluteX="19dp"
tools:layout_editor_absoluteY="7dp" />
<Button
android:id="@+id/requestcbs"
android:layout_width="186dp"
android:layout_height="57dp"
- android:text="Request Network"
- tools:layout_editor_absoluteX="120dp"
- tools:layout_editor_absoluteY="154dp" />
+ android:layout_marginTop="164dp"
+ android:text="@string/request_network"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:layout_editor_absoluteX="112dp" />
<Button
android:id="@+id/releasecbs"
android:layout_width="187dp"
android:layout_height="61dp"
- android:text="Release Network"
- tools:layout_editor_absoluteX="119dp"
- tools:layout_editor_absoluteY="273dp" />
+ android:layout_marginTop="124dp"
+ android:text="@string/release_network"
+ app:layout_constraintTop_toBottomOf="@+id/requestcbs"
+ tools:layout_editor_absoluteX="119dp" />
<Button
android:id="@+id/pingcbs"
android:layout_width="186dp"
android:layout_height="55dp"
- android:text="Ping"
- tools:layout_editor_absoluteX="120dp"
- tools:layout_editor_absoluteY="379dp" />
+ android:text="@string/ping"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/releasecbs"
+ tools:layout_editor_absoluteX="120dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</RelativeLayout>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/res/layout/fragment_main.xml b/testapps/TestSliceApp/app/src/main/res/layout/fragment_main.xml
index 11e95a8..5c12075 100644
--- a/testapps/TestSliceApp/app/src/main/res/layout/fragment_main.xml
+++ b/testapps/TestSliceApp/app/src/main/res/layout/fragment_main.xml
@@ -5,18 +5,17 @@
android:layout_height="match_parent"
tools:context=".MainFragment">
- <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ <androidx.constraintlayout.widget.ConstraintLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/frameLayoutMain"
tools:context=".MainActivity">
<Button
android:id="@+id/cbs"
- android:layout_width="222dp"
- android:layout_height="51dp"
- android:text="CBS"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/cbs_title"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.493"
@@ -25,9 +24,9 @@
app:layout_constraintVertical_bias="0.751" />
<Button
android:id="@+id/latency"
- android:layout_width="222dp"
- android:layout_height="46dp"
- android:text="PRIORITIZE LATENCY"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/latency_title"
app:layout_constraintBottom_toTopOf="@+id/cbs"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.497"
@@ -38,7 +37,7 @@
android:id="@+id/bw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="PRIORITIZE BANDWIDTH"
+ android:text="@string/bw_title"
app:layout_constraintBottom_toTopOf="@+id/latency"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.497"
diff --git a/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_bandwidth.xml b/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_bandwidth.xml
index 8933e7a..412ec39 100644
--- a/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_bandwidth.xml
+++ b/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_bandwidth.xml
@@ -8,9 +8,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/frameLayoutBW">
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
+<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/frameLayout2"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -19,7 +17,7 @@
android:id="@+id/textView2"
android:layout_width="371dp"
android:layout_height="52dp"
- android:text="Prioritize Bandwidth"
+ android:text="@string/bw_title"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="4dp" />
<Button
@@ -27,7 +25,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="64dp"
- android:text="Release Network"
+ android:text="@string/release_network"
app:layout_constraintBottom_toTopOf="@+id/requestbw"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -38,7 +36,7 @@
android:layout_width="182dp"
android:layout_height="42dp"
android:layout_marginBottom="228dp"
- android:text="Ping"
+ android:text="@string/ping"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.493"
@@ -48,7 +46,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="308dp"
- android:text="RequestNetwork"
+ android:text="@string/request_network"
app:layout_constraintBottom_toTopOf="@+id/pingbw"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.495"
diff --git a/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_latency.xml b/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_latency.xml
index 9527d69..37a519f 100644
--- a/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_latency.xml
+++ b/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_latency.xml
@@ -8,51 +8,60 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/frameLayoutLatency">
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
- android:id="@+id/frameLayout"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context=".PrioritizeLatency" >
- <Button
- android:id="@+id/requestlatency"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="RequestNetwork"
- app:layout_constraintBottom_toTopOf="@+id/button6"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.461"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintVertical_bias="0.717" />
- <Button
- android:id="@+id/releaselatency"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginBottom="76dp"
- android:text="Release Network"
- app:layout_constraintBottom_toTopOf="@+id/button7"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.478"
- app:layout_constraintStart_toStartOf="parent" />
- <Button
- android:id="@+id/pinglatency"
- android:layout_width="182dp"
- android:layout_height="42dp"
- android:layout_marginBottom="308dp"
- android:text="Ping"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.471"
- app:layout_constraintStart_toStartOf="parent" />
- <TextView
- android:id="@+id/textView"
- android:layout_width="371dp"
- android:layout_height="52dp"
- android:text="Prioritize Latency"
- tools:layout_editor_absoluteX="21dp"
- tools:layout_editor_absoluteY="1dp" />
-</androidx.constraintlayout.widget.ConstraintLayout>
- </FrameLayout>
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/frameLayout"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".PrioritizeLatency">
+ <Button
+ android:id="@+id/purchaseButton"
+ android:layout_width="233dp"
+ android:layout_height="50dp"
+ android:layout_marginTop="176dp"
+ android:text="@string/purchase"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.495"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="0.717" />
+ <Button
+ android:id="@+id/requestReleaseButton"
+ android:layout_width="183dp"
+ android:layout_height="50dp"
+ android:layout_marginTop="84dp"
+ android:text="@string/request_network"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/purchaseButton"
+ app:layout_constraintVertical_bias="0.717" />
+ <Button
+ android:id="@+id/pinglatency"
+ android:layout_width="182dp"
+ android:layout_height="42dp"
+ android:layout_marginBottom="92dp"
+ android:text="@string/ping"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.493"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/requestReleaseButton" />
+ <TextView
+ android:id="@+id/resultTextView"
+ android:layout_width="283dp"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="84dp"
+ android:text="@string/result_prefix"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/pinglatency"
+ app:layout_constraintVertical_bias="0.717" />
+ <TextView
+ android:id="@+id/textView"
+ android:layout_width="371dp"
+ android:layout_height="52dp"
+ android:text="@string/latency_title"
+ tools:layout_editor_absoluteX="16dp"
+ tools:layout_editor_absoluteY="16dp" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+ </FrameLayout>
</RelativeLayout>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/res/values-af/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-af/strings.xml
deleted file mode 100644
index d172f0f..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-af/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hallo leë fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-am/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-am/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-am/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ar/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ar/strings.xml
deleted file mode 100644
index 0cadb81..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-ar/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"جزء فارغ للترحيب"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-as/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-as/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-as/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-az/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-az/strings.xml
deleted file mode 100644
index 3702d56..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-az/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Boş salamlama fraqmenti"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-b+sr+Latn/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-b+sr+Latn/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-b+sr+Latn/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-be/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-be/strings.xml
deleted file mode 100644
index 385f84e..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-be/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Вітаем,"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-bg/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-bg/strings.xml
deleted file mode 100644
index 943a70d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-bg/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Здравей, празен фрагмент"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-bn/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-bn/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-bn/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-bs/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-bs/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-bs/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ca/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ca/strings.xml
deleted file mode 100644
index 9799d39..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-ca/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Fragment de benvinguda en blanc"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-cs/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-cs/strings.xml
deleted file mode 100644
index 793ab6f..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-cs/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Prázdný fragment pro pozdrav"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-da/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-da/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-da/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-de/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-de/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-de/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-el/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-el/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-el/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-en-rAU/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-en-rAU/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-en-rAU/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-en-rCA/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-en-rCA/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-en-rCA/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-en-rGB/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-en-rGB/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-en-rGB/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-en-rIN/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-en-rIN/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-en-rIN/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-en-rXC/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-en-rXC/strings.xml
deleted file mode 100644
index dafc7d2..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-en-rXC/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-es-rUS/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-es-rUS/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-es-rUS/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-es/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-es/strings.xml
deleted file mode 100644
index 355b912..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-es/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hola, (segmento en blanco):"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-et/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-et/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-et/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-eu/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-eu/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-eu/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-fa/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-fa/strings.xml
deleted file mode 100644
index 6f35108..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-fa/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"سلام بخش خالی"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-fi/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-fi/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-fi/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-fr-rCA/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-fr-rCA/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-fr-rCA/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-fr/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-fr/strings.xml
deleted file mode 100644
index e9b3b45..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-fr/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Bonjour fragment vierge"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-gl/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-gl/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-gl/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-gu/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-gu/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-gu/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-hi/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-hi/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-hi/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-hr/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-hr/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-hr/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-hu/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-hu/strings.xml
deleted file mode 100644
index 0e73dba..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-hu/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Üres üdvözlő rész"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-hy/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-hy/strings.xml
deleted file mode 100644
index 31a60c6..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-hy/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Դատարկ հատված"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-in/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-in/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-in/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-is/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-is/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-is/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-it/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-it/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-it/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-iw/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-iw/strings.xml
deleted file mode 100644
index 4287a40..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-iw/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"שלום קטע ריק"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ja/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ja/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-ja/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ka/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ka/strings.xml
deleted file mode 100644
index 8d91ed0..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-ka/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"მოგესალმებით, ეს ცარიელი ფრაგმენტია"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-kk/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-kk/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-kk/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-km/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-km/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-km/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-kn/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-kn/strings.xml
deleted file mode 100644
index 13a202b..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-kn/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"ಹಲೋ, ಖಾಲಿ ಫ್ರಾಗ್ಮೆಂಟ್"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ko/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ko/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-ko/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ky/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ky/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-ky/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-lo/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-lo/strings.xml
deleted file mode 100644
index 3d47ad6..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-lo/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"ສະບາຍດີຈຸດແຕກທີ່ຫວ່າງເປົ່າ"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-lt/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-lt/strings.xml
deleted file mode 100644
index 509fd2d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-lt/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Sveiki, tuščias fragmentas"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-lv/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-lv/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-lv/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-mk/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-mk/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-mk/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ml/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ml/strings.xml
deleted file mode 100644
index 47ca9c8..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-ml/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"ഹലോ ബ്ലാങ്ക് ഫ്രാഗ്മെന്റ്"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-mn/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-mn/strings.xml
deleted file mode 100644
index 1aa5138..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-mn/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Сайн байна уу хоосон хэсэг"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-mr/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-mr/strings.xml
deleted file mode 100644
index 7fbe792..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-mr/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"हॅलो ब्लँक फ्रॅग्मेंट"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ms/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ms/strings.xml
deleted file mode 100644
index b928cd6..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-ms/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Helo cebisan kosong"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-my/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-my/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-my/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-nb/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-nb/strings.xml
deleted file mode 100644
index 3d601ab..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-nb/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hei, tomt fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ne/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ne/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-ne/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-nl/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-nl/strings.xml
deleted file mode 100644
index 5d10fc6..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-nl/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hallo leeg fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-or/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-or/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-or/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-pa/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-pa/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-pa/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-pl/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-pl/strings.xml
deleted file mode 100644
index 0bf147b..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-pl/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Tutaj jest pusty fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-pt-rPT/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-pt-rPT/strings.xml
deleted file mode 100644
index b94a687..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-pt-rPT/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Olá, fragmento em branco"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-pt/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-pt/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-pt/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ro/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ro/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-ro/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ru/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ru/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-ru/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-si/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-si/strings.xml
deleted file mode 100644
index 7c88afe..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-si/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"ආයුබෝවන් හිස් කොටස"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sk/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sk/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-sk/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sl/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sl/strings.xml
deleted file mode 100644
index b3fd35a..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-sl/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Prazen del za pozdrav"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sq/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sq/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-sq/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sr/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sr/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-sr/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sv/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sv/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-sv/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sw/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sw/strings.xml
deleted file mode 100644
index 5cc6a6a..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-sw/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Kipande cha salamu kisichokuwa na kitu"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ta/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ta/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-ta/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-te/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-te/strings.xml
deleted file mode 100644
index ad9cef8..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-te/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"హలో ఖాళీ విడిభాగము"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-th/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-th/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-th/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-tl/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-tl/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-tl/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-tr/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-tr/strings.xml
deleted file mode 100644
index 1e18a88..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-tr/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Merhaba boş bölüm"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-uk/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-uk/strings.xml
deleted file mode 100644
index 0219615..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-uk/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Пустий фрагмент із привітанням"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ur/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ur/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-ur/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-uz/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-uz/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-uz/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-vi/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-vi/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-vi/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-zh-rCN/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-zh-rCN/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-zh-rCN/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-zh-rHK/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-zh-rHK/strings.xml
deleted file mode 100644
index 93c0492..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-zh-rHK/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"歡迎詞空白片段"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-zh-rTW/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-zh-rTW/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-zh-rTW/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-zu/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-zu/strings.xml
deleted file mode 100644
index 229ff5d..0000000
--- a/testapps/TestSliceApp/app/src/main/res/values-zu/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
- <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
-</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values/strings.xml b/testapps/TestSliceApp/app/src/main/res/values/strings.xml
index c2bb089..4990cec 100644
--- a/testapps/TestSliceApp/app/src/main/res/values/strings.xml
+++ b/testapps/TestSliceApp/app/src/main/res/values/strings.xml
@@ -1,5 +1,20 @@
-<resources>
+<resources xmlns:tools="http://schemas.android.com/tools">
<string name="app_name">TestSliceApp</string>
- <!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
+ <string name="request_network">Request Network</string>
+ <string name="release_network">Release Network</string>
+ <string name="ping">Ping</string>
+ <string name="result_prefix">Result: </string>
+ <string name="latency_title">Prioritize Latency</string>
+ <string name="bw_title">Prioritize Bandwidth</string>
+ <string name="cbs_title">CBS</string>
+ <string name="purchase">Purchase Network Premium</string>
+ <string name="network_available">Result: The requested network is available now!</string>
+ <string name="network_requested">Result: The network has been requested!</string>
+ <string name="network_released">Result: The network has been released!</string>
+ <string name="network_release_failed">Result: Failed to release the network!!!</string>
+ <string name="purchase_exception">Result: Exception when purchasing network premium!!!</string>
+ <string name="purchase_empty_result">Result: Got empty result when purchasing network premium!!!</string>
+ <string name="premium_not_available">Result: The network premium is not available for purchase!!!</string>
+ <string name="purchase_in_progress">Result: The network premium purchase is in progress ...</string>
</resources>
\ No newline at end of file
diff --git a/tests/src/com/android/TelephonyTestBase.java b/tests/src/com/android/TelephonyTestBase.java
index ffda81b..d72d85e 100644
--- a/tests/src/com/android/TelephonyTestBase.java
+++ b/tests/src/com/android/TelephonyTestBase.java
@@ -24,10 +24,16 @@
import com.android.internal.telephony.PhoneConfigurationManager;
+import org.junit.After;
+import org.junit.Before;
import org.junit.Rule;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
@@ -40,6 +46,10 @@
protected TestContext mContext;
+ private final HashMap<InstanceKey, Object> mOldInstances = new HashMap<>();
+ private final LinkedList<InstanceKey> mInstanceKeys = new LinkedList<>();
+
+ @Before
public void setUp() throws Exception {
mContext = spy(new TestContext());
// Set up the looper if it does not exist on the test thread.
@@ -56,9 +66,11 @@
}
}
+ @After
public void tearDown() throws Exception {
// Ensure there are no static references to handlers after test completes.
PhoneConfigurationManager.unregisterAllMultiSimConfigChangeRegistrants();
+ restoreInstances();
}
protected final boolean waitForExecutorAction(Executor executor, long timeoutMillis) {
@@ -108,6 +120,61 @@
}
}
+ protected synchronized void replaceInstance(final Class c, final String instanceName,
+ final Object obj, final Object newValue)
+ throws Exception {
+ Field field = c.getDeclaredField(instanceName);
+ field.setAccessible(true);
+
+ InstanceKey key = new InstanceKey(c, instanceName, obj);
+ if (!mOldInstances.containsKey(key)) {
+ mOldInstances.put(key, field.get(obj));
+ mInstanceKeys.add(key);
+ }
+ field.set(obj, newValue);
+ }
+
+ private synchronized void restoreInstances() throws Exception {
+ Iterator<InstanceKey> it = mInstanceKeys.descendingIterator();
+
+ while (it.hasNext()) {
+ InstanceKey key = it.next();
+ Field field = key.mClass.getDeclaredField(key.mInstName);
+ field.setAccessible(true);
+ field.set(key.mObj, mOldInstances.get(key));
+ }
+
+ mInstanceKeys.clear();
+ mOldInstances.clear();
+ }
+
+ private static class InstanceKey {
+ public final Class mClass;
+ public final String mInstName;
+ public final Object mObj;
+ InstanceKey(final Class c, final String instName, final Object obj) {
+ mClass = c;
+ mInstName = instName;
+ mObj = obj;
+ }
+
+ @Override
+ public int hashCode() {
+ return (mClass.getName().hashCode() * 31 + mInstName.hashCode()) * 31;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || obj.getClass() != getClass()) {
+ return false;
+ }
+
+ InstanceKey other = (InstanceKey) obj;
+ return (other.mClass == mClass && other.mInstName.equals(mInstName)
+ && other.mObj == mObj);
+ }
+ }
+
protected TestContext getTestContext() {
return mContext;
}
diff --git a/tests/src/com/android/phone/CarrierConfigLoaderTest.java b/tests/src/com/android/phone/CarrierConfigLoaderTest.java
index 60c3a84..9c425d6 100644
--- a/tests/src/com/android/phone/CarrierConfigLoaderTest.java
+++ b/tests/src/com/android/phone/CarrierConfigLoaderTest.java
@@ -192,6 +192,7 @@
* will return the right config in the XML.
*/
@Test
+ @Ignore("b/257169357")
public void testUpdateConfigForPhoneId_simLoaded_withCachedConfigInXml() throws Exception {
// Bypass case if default subId is not supported by device to reduce flakiness
if (!SubscriptionManager.isValidPhoneId(SubscriptionManager.getPhoneId(DEFAULT_SUB_ID))) {
diff --git a/tests/src/com/android/phone/ImsProvisioningControllerTest.java b/tests/src/com/android/phone/ImsProvisioningControllerTest.java
index 2094e20..db83cca 100644
--- a/tests/src/com/android/phone/ImsProvisioningControllerTest.java
+++ b/tests/src/com/android/phone/ImsProvisioningControllerTest.java
@@ -63,6 +63,7 @@
import android.telephony.ims.ProvisioningManager;
import android.telephony.ims.aidl.IFeatureProvisioningCallback;
import android.telephony.ims.aidl.IImsConfig;
+import android.telephony.ims.aidl.IImsConfigCallback;
import android.telephony.ims.feature.MmTelFeature.MmTelCapabilities;
import android.telephony.ims.feature.RcsFeature.RcsImsCapabilities;
import android.telephony.ims.stub.ImsConfigImplBase;
@@ -159,6 +160,9 @@
@Mock
IFeatureProvisioningCallback mIFeatureProvisioningCallback1;
+ @Captor
+ ArgumentCaptor<IImsConfigCallback> mIImsConfigCallback;
+
@Mock
IBinder mIbinder0;
@Mock
@@ -347,6 +351,8 @@
mSubChangedListener.onSubscriptionsChanged();
processAllMessages();
+ verify(mImsConfig, times(1)).addConfigCallback((IImsConfigCallback) any());
+
int[] keys = {
ProvisioningManager.KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE,
ProvisioningManager.KEY_VOLTE_PROVISIONING_STATUS,
@@ -390,6 +396,8 @@
mRcsConnectorListener0.getValue().connectionReady(mRcsFeatureManager, mSubId0);
processAllMessages();
+ verify(mImsConfig, times(1)).addConfigCallback((IImsConfigCallback) any());
+
// verify # of read data times from storage : # of Rcs storage length
verify(mImsProvisioningLoader, times(1))
.getProvisioningStatus(eq(mSubId0), eq(FEATURE_RCS), anyInt(), anyInt());
@@ -1736,6 +1744,110 @@
verifyNoMoreInteractions(mImsProvisioningLoader);
}
+ @Test
+ @SmallTest
+ public void changedProvisioningValue_withMmTel() throws Exception {
+ createImsProvisioningController();
+
+ // provisioning required capability
+ // voice, all tech
+ // video, all tech
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VOICE_INT_ARRAY,
+ RADIO_TECHS);
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VIDEO_INT_ARRAY,
+ RADIO_TECHS);
+
+ try {
+ mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+ mSubId0, mIFeatureProvisioningCallback0);
+ } catch (Exception e) {
+ throw new AssertionError("not expected exception", e);
+ }
+
+ mMmTelConnectorListener0.getValue().connectionReady(mImsManager, mSubId0);
+
+ // clear interactions
+ clearInvocations(mIFeatureProvisioningCallback0);
+ clearInvocations(mImsConfig);
+ clearInvocations(mImsProvisioningLoader);
+
+ // MmTel valid
+ int[] keys = {
+ ProvisioningManager.KEY_VOLTE_PROVISIONING_STATUS,
+ ProvisioningManager.KEY_VT_PROVISIONING_STATUS,
+ ProvisioningManager.KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE
+ };
+ int[] capas = {
+ MmTelCapabilities.CAPABILITY_TYPE_VOICE,
+ MmTelCapabilities.CAPABILITY_TYPE_VIDEO,
+ MmTelCapabilities.CAPABILITY_TYPE_VOICE
+ };
+ int[] techs = {
+ ImsRegistrationImplBase.REGISTRATION_TECH_LTE,
+ ImsRegistrationImplBase.REGISTRATION_TECH_LTE,
+ ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN
+ };
+
+ for (int index = 0; index < keys.length; index++) {
+ mIImsConfigCallback.getValue().onIntConfigChanged(keys[index],
+ PROVISIONING_VALUE_DISABLED);
+ processAllMessages();
+
+ // verify # of read data times from storage : # of MmTel storage length
+ verify(mImsProvisioningLoader, times(1))
+ .setProvisioningStatus(eq(mSubId0), eq(FEATURE_MMTEL), eq(capas[index]),
+ eq(techs[index]), eq(false));
+
+ verify(mIFeatureProvisioningCallback0, times(1))
+ .onFeatureProvisioningChanged(eq(capas[index]), eq(techs[index]), eq(false));
+ }
+
+ verifyNoMoreInteractions(mImsProvisioningLoader);
+ verifyNoMoreInteractions(mIFeatureProvisioningCallback0);
+ verifyNoMoreInteractions(mImsConfig);
+ }
+
+ @Test
+ @SmallTest
+ public void changedProvisioningValue_withRcs() throws Exception {
+ createImsProvisioningController();
+
+ // provisioning required capability : PRESENCE, tech : all
+ setCarrierConfig(mSubId0,
+ CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_PRESENCE_UCE_INT_ARRAY, RADIO_TECHS);
+
+ try {
+ mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+ mSubId0, mIFeatureProvisioningCallback0);
+ } catch (Exception e) {
+ throw new AssertionError("not expected exception", e);
+ }
+
+ mRcsConnectorListener0.getValue().connectionReady(mRcsFeatureManager, mSubId0);
+
+ // clear interactions
+ clearInvocations(mIFeatureProvisioningCallback0);
+ clearInvocations(mImsConfig);
+ clearInvocations(mImsProvisioningLoader);
+
+ mIImsConfigCallback.getValue().onIntConfigChanged(KEY_EAB_PROVISIONING_STATUS,
+ PROVISIONING_VALUE_DISABLED);
+ processAllMessages();
+
+ // verify # of read data times from storage : # of MmTel storage length
+ verify(mImsProvisioningLoader, times(RADIO_TECHS.length))
+ .setProvisioningStatus(eq(mSubId0), eq(FEATURE_RCS),
+ eq(CAPABILITY_TYPE_PRESENCE_UCE), anyInt(), eq(false));
+
+ verify(mIFeatureProvisioningCallback0, times(RADIO_TECHS.length))
+ .onRcsFeatureProvisioningChanged(eq(CAPABILITY_TYPE_PRESENCE_UCE), anyInt(),
+ eq(false));
+
+ verifyNoMoreInteractions(mImsProvisioningLoader);
+ verifyNoMoreInteractions(mIFeatureProvisioningCallback0);
+ verifyNoMoreInteractions(mImsConfig);
+ }
+
private void createImsProvisioningController() throws Exception {
if (Looper.myLooper() == null) {
Looper.prepare();
@@ -1755,6 +1867,9 @@
.create(any(), eq(1), mRcsConnectorListener1.capture(), any(), any()))
.thenReturn(mRcsFeatureConnector1);
+ doNothing().when(mImsConfig).addConfigCallback(mIImsConfigCallback.capture());
+ doNothing().when(mImsConfig).removeConfigCallback(any());
+
when(mImsConfig.getConfigInt(anyInt()))
.thenAnswer(invocation -> {
int i = (Integer) (invocation.getArguments()[0]);
diff --git a/tests/src/com/android/phone/ImsStateCallbackControllerTest.java b/tests/src/com/android/phone/ImsStateCallbackControllerTest.java
index cb4321c..2bd87be 100644
--- a/tests/src/com/android/phone/ImsStateCallbackControllerTest.java
+++ b/tests/src/com/android/phone/ImsStateCallbackControllerTest.java
@@ -28,6 +28,8 @@
import static com.android.ims.FeatureConnector.UNAVAILABLE_REASON_NOT_READY;
import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertNotNull;
+import static junit.framework.Assert.assertNull;
import static junit.framework.Assert.assertTrue;
import static org.mockito.Matchers.any;
@@ -50,6 +52,7 @@
import android.testing.TestableLooper;
import android.util.Log;
+import com.android.TelephonyTestBase;
import com.android.ims.FeatureConnector;
import com.android.ims.ImsManager;
import com.android.ims.RcsFeatureManager;
@@ -68,13 +71,12 @@
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
-import java.lang.reflect.Field;
import java.util.concurrent.Executor;
/**
* Unit tests for RcsProvisioningMonitor
*/
-public class ImsStateCallbackControllerTest {
+public class ImsStateCallbackControllerTest extends TelephonyTestBase {
private static final String TAG = "ImsStateCallbackControllerTest";
private static final int FAKE_SUB_ID_BASE = 0x0FFFFFF0;
@@ -187,6 +189,7 @@
mLooper.destroy();
mLooper = null;
}
+ super.tearDown();
}
@Test
@@ -874,6 +877,36 @@
assertFalse(mImsStateCallbackController.isRegistered(mCallback1));
}
+ @Test
+ @SmallTest
+ public void testImsManagerInstance() throws Exception {
+ createController(1);
+
+ // MmTelConnection not ready
+ // check ImsManager instance
+ ImsManager imsManager = mImsStateCallbackController.getImsManager(SLOT_0_SUB_ID);
+ assertNull(imsManager);
+
+ // MmTelConnection ready
+ mMmTelConnectorListenerSlot0.getValue()
+ .connectionReady(mMmTelFeatureManager, SLOT_0_SUB_ID);
+ processAllMessages();
+
+ // check ImsManager instance
+ imsManager = mImsStateCallbackController.getImsManager(SLOT_0_SUB_ID);
+ assertNotNull(imsManager);
+
+ // MmTelConnection unavailable
+ mMmTelConnectorListenerSlot0.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+ processAllMessages();
+
+ // MmTelConnection unavailable
+ // check ImsManager instance
+ imsManager = mImsStateCallbackController.getImsManager(SLOT_0_SUB_ID);
+ assertNull(imsManager);
+ }
+
private void createController(int slotCount) throws Exception {
if (Looper.myLooper() == null) {
Looper.prepare();
@@ -920,13 +953,6 @@
}
}
- private static void replaceInstance(final Class c,
- final String instanceName, final Object obj, final Object newValue) throws Exception {
- Field field = c.getDeclaredField(instanceName);
- field.setAccessible(true);
- field.set(obj, newValue);
- }
-
private void makeFakeActiveSubIds(int count) {
final int[] subIds = new int[count];
for (int i = 0; i < count; i++) {
diff --git a/tests/src/com/android/phone/NotificationMgrTest.java b/tests/src/com/android/phone/NotificationMgrTest.java
new file mode 100644
index 0000000..3e8cf28
--- /dev/null
+++ b/tests/src/com/android/phone/NotificationMgrTest.java
@@ -0,0 +1,664 @@
+/*
+ * Copyright (C) 2022 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;
+
+import static android.telephony.RadioAccessFamily.RAF_1xRTT;
+import static android.telephony.RadioAccessFamily.RAF_EDGE;
+import static android.telephony.RadioAccessFamily.RAF_EHRPD;
+import static android.telephony.RadioAccessFamily.RAF_EVDO_0;
+import static android.telephony.RadioAccessFamily.RAF_EVDO_A;
+import static android.telephony.RadioAccessFamily.RAF_EVDO_B;
+import static android.telephony.RadioAccessFamily.RAF_GPRS;
+import static android.telephony.RadioAccessFamily.RAF_GSM;
+import static android.telephony.RadioAccessFamily.RAF_HSDPA;
+import static android.telephony.RadioAccessFamily.RAF_HSPA;
+import static android.telephony.RadioAccessFamily.RAF_HSPAP;
+import static android.telephony.RadioAccessFamily.RAF_HSUPA;
+import static android.telephony.RadioAccessFamily.RAF_IS95A;
+import static android.telephony.RadioAccessFamily.RAF_IS95B;
+import static android.telephony.RadioAccessFamily.RAF_LTE;
+import static android.telephony.RadioAccessFamily.RAF_LTE_CA;
+import static android.telephony.RadioAccessFamily.RAF_TD_SCDMA;
+import static android.telephony.RadioAccessFamily.RAF_UMTS;
+import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+
+import static com.android.phone.NotificationMgr.DATA_ROAMING_NOTIFICATION;
+import static com.android.phone.NotificationMgr.LIMITED_SIM_FUNCTION_NOTIFICATION;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.anyInt;
+import static org.mockito.Mockito.anyString;
+import static org.mockito.Mockito.eq;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.StatusBarManager;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.content.pm.ApplicationInfo;
+import android.content.res.Resources;
+import android.os.Build;
+import android.os.PersistableBundle;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.telecom.TelecomManager;
+import android.telephony.CarrierConfigManager;
+import android.telephony.NetworkRegistrationInfo;
+import android.telephony.ServiceState;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.testing.AndroidTestingRunner;
+import android.testing.TestableLooper;
+
+import com.android.TelephonyTestBase;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.PhoneFactory;
+import com.android.internal.telephony.ServiceStateTracker;
+import com.android.internal.telephony.SignalStrengthController;
+import com.android.internal.telephony.data.DataConfigManager;
+import com.android.internal.telephony.data.DataNetworkController;
+import com.android.internal.telephony.data.DataSettingsManager;
+import com.android.internal.telephony.util.NotificationChannelController;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.Collections;
+
+/**
+ * Unit Test for NotificationMgr
+ */
+@RunWith(AndroidTestingRunner.class)
+@TestableLooper.RunWithLooper
+public class NotificationMgrTest extends TelephonyTestBase {
+ private static final int TEST_SUB_ID = 1;
+ private static final long SERIAL_NUMBER_OF_USER = 1234567L;
+ private static final String TEST_LABEL_CF = "test_call_forwarding";
+ private static final String TEST_SUB_INFO_DISPLAY_NAME = "display_name";
+ private static final String TEST_PACKAGE_NAME = "com.android.phone";
+ private static final String TEST_SELECTED_NETWORK_OPERATOR_NAME = "TheOperator";
+ private static final String MOBILE_NETWORK_SELECTION_PACKAGE = "com.android.phone";
+ private static final String MOBILE_NETWORK_SELECTION_CLASS = ".testClass";
+ private static final String CARRIER_NAME = "CoolCarrier";
+
+ @Mock PhoneGlobals mApp;
+ @Mock StatusBarManager mStatusBarManager;
+ @Mock UserManager mUserManager;
+ @Mock SubscriptionManager mSubscriptionManager;
+ @Mock TelecomManager mTelecomManager;
+ @Mock TelephonyManager mTelephonyManager;
+ @Mock Phone mPhone;
+ @Mock SharedPreferences mSharedPreferences;
+ @Mock NotificationManager mNotificationManager;
+ @Mock SubscriptionInfo mSubscriptionInfo;
+ @Mock Resources mResources;
+ @Mock Context mMockedContext;
+ @Mock ServiceStateTracker mServiceStateTracker;
+ @Mock ServiceState mServiceState;
+ @Mock CarrierConfigManager mCarrierConfigManager;
+ @Mock DataNetworkController mDataNetworkController;
+ @Mock DataSettingsManager mDataSettingsManager;
+ @Mock DataConfigManager mDataConfigManager;
+ @Mock SignalStrengthController mSignalStrengthController;
+
+ private Phone[] mPhones;
+ private NotificationMgr mNotificationMgr;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ mPhones = new Phone[]{mPhone};
+ replaceInstance(PhoneFactory.class, "sPhones", null, mPhones);
+ when(mPhone.getPhoneType()).thenReturn(PhoneConstants.PHONE_TYPE_GSM);
+ when(mPhone.getContext()).thenReturn(mMockedContext);
+ when(mMockedContext.getResources()).thenReturn(mResources);
+ when(mPhone.getServiceState()).thenReturn(mServiceState);
+ when(mServiceState.getNetworkRegistrationInfo(anyInt(), anyInt())).thenReturn(
+ new NetworkRegistrationInfo.Builder()
+ .setAccessNetworkTechnology(TelephonyManager.NETWORK_TYPE_LTE)
+ .setRegistrationState(NetworkRegistrationInfo.REGISTRATION_STATE_HOME)
+ .build());
+ when(mPhone.getServiceStateTracker()).thenReturn(mServiceStateTracker);
+ mServiceStateTracker.mSS = mServiceState;
+ when(mPhone.getSignalStrengthController()).thenReturn(mSignalStrengthController);
+ when(mPhone.getDataNetworkController()).thenReturn(mDataNetworkController);
+ when(mDataNetworkController.getInternetDataDisallowedReasons()).thenReturn(
+ Collections.emptyList());
+ when(mDataNetworkController.getDataConfigManager()).thenReturn(mDataConfigManager);
+ when(mPhone.getDataSettingsManager()).thenReturn(mDataSettingsManager);
+ when(mDataSettingsManager.isDataEnabledForReason(anyInt())).thenReturn(true);
+ when(mApp.getSharedPreferences(anyString(), anyInt())).thenReturn(mSharedPreferences);
+
+ when(mApp.getPackageName()).thenReturn(TEST_PACKAGE_NAME);
+ when(mApp.getSystemService(Context.STATUS_BAR_SERVICE)).thenReturn(mStatusBarManager);
+ when(mApp.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+ when(mApp.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE)).thenReturn(
+ mSubscriptionManager);
+ when(mApp.getSystemServiceName(TelecomManager.class)).thenReturn(Context.TELECOM_SERVICE);
+ when(mApp.getSystemService(TelecomManager.class)).thenReturn(mTelecomManager);
+ when(mApp.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+ when(mApp.getSystemServiceName(CarrierConfigManager.class)).thenReturn(
+ Context.CARRIER_CONFIG_SERVICE);
+ when(mApp.getSystemService(CarrierConfigManager.class)).thenReturn(mCarrierConfigManager);
+ when(mApp.getSystemServiceName(CarrierConfigManager.class)).thenReturn(
+ Context.CARRIER_CONFIG_SERVICE);
+ when(mApp.getSystemService(CarrierConfigManager.class)).thenReturn(mCarrierConfigManager);
+
+ when(mApp.createPackageContextAsUser(any(), eq(0), any())).thenReturn(mApp);
+ when(mApp.getSystemService(Context.NOTIFICATION_SERVICE)).thenReturn(mNotificationManager);
+ when(mUserManager.getSerialNumbersOfUsers(true)).thenReturn(
+ new long[]{SERIAL_NUMBER_OF_USER});
+ when(mUserManager.getUserForSerialNumber(eq(SERIAL_NUMBER_OF_USER))).thenReturn(
+ UserHandle.SYSTEM);
+ when(mApp.getResources()).thenReturn(mResources);
+ when(mResources.getString(R.string.labelCF)).thenReturn(TEST_LABEL_CF);
+ ApplicationInfo appWithSdkS = buildApplicationInfo(Build.VERSION_CODES.S);
+ when(mApp.getApplicationInfo()).thenReturn(appWithSdkS);
+ when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
+ when(mTelephonyManager.getServiceState()).thenReturn(mServiceState);
+
+ mNotificationMgr = new NotificationMgr(mApp);
+ }
+
+ @Test
+ public void testUpdateCfi_visible_noActiveSubscription_notificationNeverSent() {
+ // Given no active subscription available
+ when(mSubscriptionManager.getActiveSubscriptionInfo(eq(TEST_SUB_ID))).thenReturn(null);
+
+ // When updateCfi method is called
+ mNotificationMgr.updateCfi(TEST_SUB_ID, /*visible=*/true, /*isFresh=*/false);
+
+ // Then the notification should never be sent
+ verify(mNotificationManager, never()).notify(any(), anyInt(), any());
+ }
+
+ @Test
+ public void testUpdateCfi_visible_hasActiveSub_singleSIM_notificationSent() {
+ when(mTelephonyManager.getPhoneCount()).thenReturn(1);
+ when(mSubscriptionManager.getActiveSubscriptionInfo(eq(TEST_SUB_ID))).thenReturn(
+ mSubscriptionInfo);
+
+ mNotificationMgr.updateCfi(TEST_SUB_ID, /*visible=*/true, /*isFresh=*/false);
+
+ verifyNotificationSentWithChannelId(NotificationChannelController.CHANNEL_ID_CALL_FORWARD);
+ }
+
+ @Test
+ public void testUpdateCfi_visible_hasActiveSub_multiSIM_notificationSentWithoutDisplayName() {
+ when(mTelephonyManager.getPhoneCount()).thenReturn(2);
+ when(mSubscriptionManager.getActiveSubscriptionInfo(eq(TEST_SUB_ID))).thenReturn(
+ mSubscriptionInfo);
+ when(mSubscriptionInfo.getDisplayName()).thenReturn(null);
+
+ mNotificationMgr.updateCfi(TEST_SUB_ID, /*visible=*/true, /*isFresh=*/false);
+
+ verifyNotificationSentWithChannelId(NotificationChannelController.CHANNEL_ID_CALL_FORWARD);
+ }
+
+ @Test
+ public void testUpdateCfi_visible_hasActiveSub_multiSIM_notificationSentWithDisplayName() {
+ when(mTelephonyManager.getPhoneCount()).thenReturn(2);
+ when(mSubscriptionManager.getActiveSubscriptionInfo(eq(TEST_SUB_ID))).thenReturn(
+ mSubscriptionInfo);
+ when(mSubscriptionInfo.getDisplayName()).thenReturn(TEST_SUB_INFO_DISPLAY_NAME);
+
+ mNotificationMgr.updateCfi(TEST_SUB_ID, /*visible=*/true, /*isFresh=*/false);
+
+ verifyNotificationSentWithChannelId(NotificationChannelController.CHANNEL_ID_CALL_FORWARD);
+ }
+
+ @Test
+ public void testUpdateCfi_invisible_hasUnmanagedProfile_notificationCanceled() {
+ when(mUserManager.isManagedProfile(anyInt())).thenReturn(false);
+
+ mNotificationMgr.updateCfi(TEST_SUB_ID, /*visible=*/false, /*isFresh=*/false);
+
+ verify(mNotificationManager).cancel(any(), anyInt());
+ }
+
+ @Test
+ public void testUpdateCfi_invisible_allProfilesAreManaged_notificationNeverCanceled() {
+ when(mUserManager.isManagedProfile(anyInt())).thenReturn(true);
+
+ mNotificationMgr.updateCfi(TEST_SUB_ID, /*visible=*/false, /*isFresh=*/false);
+
+ verify(mNotificationManager, never()).cancel(any(), anyInt());
+ }
+
+ @Test
+ public void testShowDataRoamingNotification_roamingOn() {
+ mNotificationMgr.showDataRoamingNotification(TEST_SUB_ID, /*roamingOn=*/true);
+
+ verifyNotificationSentWithChannelId(
+ NotificationChannelController.CHANNEL_ID_MOBILE_DATA_STATUS);
+ }
+
+ @Test
+ public void testShowDataRoamingNotification_roamingOff() {
+ mNotificationMgr.showDataRoamingNotification(TEST_SUB_ID, /*roamingOn=*/false);
+
+ verifyNotificationSentWithChannelId(
+ NotificationChannelController.CHANNEL_ID_MOBILE_DATA_STATUS);
+ }
+
+ @Test
+ public void testHideDataRoamingNotification() {
+ mNotificationMgr.hideDataRoamingNotification();
+
+ verify(mNotificationManager).cancel(any(), eq(DATA_ROAMING_NOTIFICATION));
+ }
+
+ @Test
+ public void testUpdateNetworkSelection_justOutOfService_notificationNeverSent() {
+ prepareResourcesForNetworkSelection();
+
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException ignored) {
+ }
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+
+ verify(mNotificationManager, never()).notify(any(), anyInt(), any());
+ }
+
+ @Test
+ public void testUpdateNetworkSelection_oosEnoughTime_selectionVisibleToUser_notificationSent() {
+ prepareResourcesForNetworkSelection();
+ when(mTelephonyManager.isManualNetworkSelectionAllowed()).thenReturn(true);
+ PersistableBundle config = new PersistableBundle();
+ config.putBoolean(CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL, true);
+ config.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, false);
+ config.putBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL, false);
+ config.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true);
+ when(mCarrierConfigManager.getConfigForSubId(TEST_SUB_ID)).thenReturn(config);
+
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+ // TODO: use effective TestLooper time eclipse instead of sleeping
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException ignored) {
+ }
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+
+ verifyNotificationSentWithChannelId(NotificationChannelController.CHANNEL_ID_ALERT);
+ }
+
+ @Test
+ public void testUpdateNetworkSelection_invalidSubscription_notificationNotSent() {
+ prepareResourcesForNetworkSelection();
+ when(mTelephonyManager.isManualNetworkSelectionAllowed()).thenReturn(true);
+ PersistableBundle config = new PersistableBundle();
+ config.putBoolean(CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL, true);
+ config.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, false);
+ config.putBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL, false);
+ config.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true);
+ when(mCarrierConfigManager.getConfigForSubId(TEST_SUB_ID)).thenReturn(config);
+
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE,
+ INVALID_SUBSCRIPTION_ID);
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException ignored) {
+ }
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE,
+ INVALID_SUBSCRIPTION_ID);
+
+ verify(mNotificationManager, never()).notify(any(), anyInt(), any());
+ }
+
+ @Test
+ public void testUpdateNetworkSelection_nullCarrierConfig_notificationNotSent() {
+ prepareResourcesForNetworkSelection();
+
+ when(mCarrierConfigManager.getConfigForSubId(TEST_SUB_ID)).thenReturn(null);
+
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException ignored) {
+ }
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+
+ verify(mNotificationManager, never()).notify(any(), anyInt(), any());
+ }
+
+ @Test
+ public void testUpdateNetworkSelection_userNotAllowedToChooseOperator_notificationNotSent() {
+ prepareResourcesForNetworkSelection();
+
+ PersistableBundle config = new PersistableBundle();
+ // User is NOT allowed to choose operator
+ config.putBoolean(CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL, false);
+ config.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, false);
+ config.putBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL, false);
+ when(mTelephonyManager.isManualNetworkSelectionAllowed()).thenReturn(false);
+ config.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true);
+ when(mCarrierConfigManager.getConfigForSubId(TEST_SUB_ID)).thenReturn(config);
+
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException ignored) {
+ }
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+
+ verify(mNotificationManager, never()).notify(any(), anyInt(), any());
+ }
+
+ @Test
+ public void
+ testUpdateNetworkSelection_OverrideHideCarrierNetworkSelection_notificationNotSent() {
+ prepareResourcesForNetworkSelection();
+
+ PersistableBundle config = new PersistableBundle();
+ // Hide network selection menu
+ config.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, true);
+ config.putBoolean(CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL, true);
+ config.putBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL, false);
+ when(mTelephonyManager.isManualNetworkSelectionAllowed()).thenReturn(false);
+ config.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true);
+ when(mCarrierConfigManager.getConfigForSubId(TEST_SUB_ID)).thenReturn(config);
+
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException ignored) {
+ }
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+
+ verify(mNotificationManager, never()).notify(any(), anyInt(), any());
+ }
+
+ @Test
+ public void testUpdateNetworkSelection_simPreventManualSelection_notificationNotSent()
+ throws Exception {
+ prepareResourcesForNetworkSelection();
+
+ PersistableBundle config = new PersistableBundle();
+ config.putBoolean(CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL, true);
+ config.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, false);
+ // SIM card can prevent manual network selection which is forbidden
+ config.putBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL, true);
+ when(mTelephonyManager.isManualNetworkSelectionAllowed()).thenReturn(false);
+ config.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true);
+ when(mCarrierConfigManager.getConfigForSubId(TEST_SUB_ID)).thenReturn(config);
+
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException ignored) {
+ }
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+
+ verify(mNotificationManager, never()).notify(any(), anyInt(), any());
+ }
+
+ @Test
+ public void testUpdateNetworkSelection_worldMode_userSetLTE_notificationNotSent() {
+ prepareResourcesForNetworkSelection();
+
+ PersistableBundle config = new PersistableBundle();
+ config.putBoolean(CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL, true);
+ config.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, false);
+ config.putBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL, false);
+ config.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true);
+
+ // World mode is on
+ config.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
+ // User set Network mode as LTE
+ when(mTelephonyManager.getAllowedNetworkTypesForReason(
+ TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
+ (long) (RAF_LTE | RAF_LTE_CA | RAF_IS95A | RAF_IS95B | RAF_1xRTT | RAF_EVDO_0
+ | RAF_EVDO_A | RAF_EVDO_B | RAF_EHRPD));
+ when(mCarrierConfigManager.getConfigForSubId(TEST_SUB_ID)).thenReturn(config);
+
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException ignored) {
+ }
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+
+ verify(mNotificationManager, never()).notify(any(), anyInt(), any());
+ }
+
+ @Test
+ public void testUpdateNetworkSelection_worldMode_userSetTDSCDMA_notSupported_notifNotSent() {
+ prepareResourcesForNetworkSelection();
+
+ PersistableBundle config = new PersistableBundle();
+ config.putBoolean(CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL, true);
+ config.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, false);
+ config.putBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL, false);
+ config.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true);
+
+ // World mode is on
+ config.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
+ // User set Network mode as NETWORK_MODE_LTE_TDSCDMA_GSM
+ when(mTelephonyManager.getAllowedNetworkTypesForReason(
+ TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
+ (long) (RAF_LTE | RAF_LTE_CA | RAF_TD_SCDMA | RAF_GSM | RAF_GPRS | RAF_EDGE));
+ // But TDSCDMA is NOT supported
+ config.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, false);
+ when(mCarrierConfigManager.getConfigForSubId(TEST_SUB_ID)).thenReturn(config);
+
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException ignored) {
+ }
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+
+ verify(mNotificationManager, never()).notify(any(), anyInt(), any());
+ }
+
+ @Test
+ public void testUpdateNetworkSelection_worldMode_userSetWCDMA_notificationSent() {
+ prepareResourcesForNetworkSelection();
+
+ PersistableBundle config = new PersistableBundle();
+ config.putBoolean(CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL, true);
+ config.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, false);
+ config.putBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL, false);
+ config.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true);
+
+ // World mode is on
+ config.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
+ // User set Network mode as NETWORK_MODE_LTE_TDSCDMA_GSM
+ when(mTelephonyManager.getAllowedNetworkTypesForReason(
+ TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
+ (long) (RAF_LTE | RAF_LTE_CA | RAF_GSM | RAF_GPRS | RAF_EDGE | RAF_HSUPA | RAF_HSDPA
+ | RAF_HSPA | RAF_HSPAP | RAF_UMTS));
+ // But TDSCDMA is NOT supported
+ config.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, false);
+ when(mCarrierConfigManager.getConfigForSubId(TEST_SUB_ID)).thenReturn(config);
+
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException ignored) {
+ }
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+
+ verifyNotificationSentWithChannelId(NotificationChannelController.CHANNEL_ID_ALERT);
+ }
+
+ @Test
+ public void testUpdateNetworkSelection_worldPhone_networkSelectionNotHide_notificationSent() {
+ prepareResourcesForNetworkSelection();
+
+ PersistableBundle config = new PersistableBundle();
+ config.putBoolean(CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL, true);
+ config.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, false);
+ config.putBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL, false);
+ // World mode is off
+ config.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, false);
+ // World phone is on
+ config.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true);
+ when(mCarrierConfigManager.getConfigForSubId(TEST_SUB_ID)).thenReturn(config);
+
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException ignored) {
+ }
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+
+ verifyNotificationSentWithChannelId(NotificationChannelController.CHANNEL_ID_ALERT);
+ }
+
+ @Test
+ public void testUpdateNetworkSelection_gsmBasicOptionOn_notificationSent() {
+ prepareResourcesForNetworkSelection();
+
+ PersistableBundle config = new PersistableBundle();
+ config.putBoolean(CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL, true);
+ config.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, false);
+ config.putBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL, false);
+ // World phone is on
+ config.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true);
+ // World mode is off
+ config.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, false);
+ when(mTelephonyManager.getPhoneType()).thenReturn(TelephonyManager.PHONE_TYPE_GSM);
+ when(mCarrierConfigManager.getConfigForSubId(TEST_SUB_ID)).thenReturn(config);
+
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException ignored) {
+ }
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+
+ verifyNotificationSentWithChannelId(NotificationChannelController.CHANNEL_ID_ALERT);
+ }
+
+ @Test
+ public void testUpdateNetworkSelection_gsmBasicOptionOff_notificationNotSent() {
+ prepareResourcesForNetworkSelection();
+
+ PersistableBundle config = new PersistableBundle();
+ config.putBoolean(CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL, true);
+ config.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, false);
+ config.putBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL, false);
+ // World mode is off
+ config.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, false);
+ when(mCarrierConfigManager.getConfigForSubId(TEST_SUB_ID)).thenReturn(config);
+ when(mTelephonyManager.getPhoneType()).thenReturn(TelephonyManager.PHONE_TYPE_CDMA);
+
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException ignored) {
+ }
+ mNotificationMgr.updateNetworkSelection(ServiceState.STATE_OUT_OF_SERVICE, TEST_SUB_ID);
+
+ verify(mNotificationManager, never()).notify(any(), anyInt(), any());
+ }
+
+ @Test
+ public void testShowLimitedSimFunctionWarningNotification_forTheFirstTime_notificationSent() {
+ when(mResources.getText(R.string.limited_sim_function_notification_message)).thenReturn(
+ CARRIER_NAME);
+ when(mResources.getText(
+ R.string.limited_sim_function_with_phone_num_notification_message)).thenReturn(
+ "123");
+
+ mNotificationMgr.showLimitedSimFunctionWarningNotification(TEST_SUB_ID, CARRIER_NAME);
+
+ verifyNotificationSentWithChannelId(
+ NotificationChannelController.CHANNEL_ID_SIM_HIGH_PRIORITY);
+ }
+
+ @Test
+ public void
+ testShowLimitedSimFunctionWarningNotification_consecutiveCall_notificationSentOnce() {
+ when(mResources.getText(R.string.limited_sim_function_notification_message)).thenReturn(
+ CARRIER_NAME);
+ when(mResources.getText(
+ R.string.limited_sim_function_with_phone_num_notification_message)).thenReturn(
+ "123");
+
+ // Call the method TWICE with the same subscription
+ mNotificationMgr.showLimitedSimFunctionWarningNotification(TEST_SUB_ID, CARRIER_NAME);
+ mNotificationMgr.showLimitedSimFunctionWarningNotification(TEST_SUB_ID, CARRIER_NAME);
+
+ // Verify the notification is only sent ONCE
+ verifyNotificationSentWithChannelId(
+ NotificationChannelController.CHANNEL_ID_SIM_HIGH_PRIORITY);
+ }
+
+ @Test
+ public void testDismissLimitedSimFunctionWarningNotification_noShowCalledBefore_noCancelSent() {
+ // showLimitedSimFunctionWarningNotification was never called before
+
+ mNotificationMgr.dismissLimitedSimFunctionWarningNotification(TEST_SUB_ID);
+
+ verify(mNotificationManager, never()).cancel(any(), anyInt());
+ }
+
+ @Test
+ public void testDismissLimitedSimFunctionWarningNotification_showCalledBefore_cancelSent() {
+ when(mResources.getText(R.string.limited_sim_function_notification_message)).thenReturn(
+ CARRIER_NAME);
+ when(mResources.getText(
+ R.string.limited_sim_function_with_phone_num_notification_message)).thenReturn(
+ "123");
+ mNotificationMgr.showLimitedSimFunctionWarningNotification(TEST_SUB_ID, CARRIER_NAME);
+
+ mNotificationMgr.dismissLimitedSimFunctionWarningNotification(TEST_SUB_ID);
+
+ verify(mNotificationManager).cancel(any(), eq(LIMITED_SIM_FUNCTION_NOTIFICATION));
+ }
+
+ private ApplicationInfo buildApplicationInfo(int targetSdkVersion) {
+ ApplicationInfo applicationInfo = new ApplicationInfo();
+ applicationInfo.targetSdkVersion = targetSdkVersion;
+ return applicationInfo;
+ }
+
+ private void verifyNotificationSentWithChannelId(String expectedNotificationChannelId) {
+ ArgumentCaptor<Notification> notificationArgumentCaptor = ArgumentCaptor.forClass(
+ Notification.class);
+ verify(mNotificationManager).notify(any(), anyInt(), notificationArgumentCaptor.capture());
+ Notification capturedNotification = notificationArgumentCaptor.getAllValues().get(0);
+ assertThat(capturedNotification.getChannelId()).isEqualTo(expectedNotificationChannelId);
+ }
+
+ private void prepareResourcesForNetworkSelection() {
+ when(mSharedPreferences.getString(Phone.NETWORK_SELECTION_NAME_KEY + TEST_SUB_ID,
+ "")).thenReturn(TEST_SELECTED_NETWORK_OPERATOR_NAME);
+ when(mResources.getBoolean(
+ com.android.internal.R.bool.skip_restoring_network_selection)).thenReturn(false);
+ when(mServiceState.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
+ when(mApp.getString(R.string.mobile_network_settings_package)).thenReturn(
+ MOBILE_NETWORK_SELECTION_PACKAGE);
+ when(mApp.getString(R.string.mobile_network_settings_class)).thenReturn(
+ MOBILE_NETWORK_SELECTION_CLASS);
+ }
+}
diff --git a/tests/src/com/android/phone/PhoneInterfaceManagerTest.java b/tests/src/com/android/phone/PhoneInterfaceManagerTest.java
index ffc0177..3b6d5ee 100644
--- a/tests/src/com/android/phone/PhoneInterfaceManagerTest.java
+++ b/tests/src/com/android/phone/PhoneInterfaceManagerTest.java
@@ -17,11 +17,16 @@
package com.android.phone;
import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import android.content.Context;
import android.content.pm.PackageManager;
+import android.content.res.Resources;
import android.telephony.RadioAccessFamily;
import android.telephony.TelephonyManager;
@@ -36,7 +41,6 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
import java.util.Locale;
@@ -58,7 +62,6 @@
@UiThreadTest
public void setUp() throws Exception {
super.setUp();
- MockitoAnnotations.initMocks(this);
doReturn(mPackageManager).when(mPhoneGlobals).getPackageManager();
doReturn(false).when(mPackageManager).hasSystemFeature(
PackageManager.FEATURE_TELEPHONY_IMS);
@@ -90,17 +93,49 @@
}
@Test
+ public void matchLocaleFromSupportedLocaleList_inputLocaleChangeToSupportedLocale_notMatched() {
+ Context context = mock(Context.class);
+ when(mPhone.getContext()).thenReturn(context);
+ Resources resources = mock(Resources.class);
+ when(context.getResources()).thenReturn(resources);
+ when(resources.getStringArray(anyInt()))
+ .thenReturn(new String[]{"fi-FI", "ff-Adlm-BF", "en-US"});
+
+ // Input empty string, then return default locale of ICU.
+ String resultInputEmpty = mPhoneInterfaceManager.matchLocaleFromSupportedLocaleList(mPhone,
+ Locale.forLanguageTag(""));
+
+ assertEquals("und", resultInputEmpty);
+
+ // Input en, then look up the matched supported locale. No matched, so return input locale.
+ String resultOnlyLanguage = mPhoneInterfaceManager.matchLocaleFromSupportedLocaleList(
+ mPhone,
+ Locale.forLanguageTag("en"));
+
+ assertEquals("en", resultOnlyLanguage);
+ }
+
+ @Test
public void matchLocaleFromSupportedLocaleList_inputLocaleChangeToSupportedLocale() {
+ Context context = mock(Context.class);
+ when(mPhone.getContext()).thenReturn(context);
+ Resources resources = mock(Resources.class);
+ when(context.getResources()).thenReturn(resources);
+ when(resources.getStringArray(anyInt())).thenReturn(new String[]{"zh-Hant-TW"});
+
// Input zh-TW, then look up the matched supported locale, zh-Hant-TW, instead.
- String result1 = mPhoneInterfaceManager.matchLocaleFromSupportedLocaleList(
+ String resultInputZhTw = mPhoneInterfaceManager.matchLocaleFromSupportedLocaleList(mPhone,
Locale.forLanguageTag("zh-TW"));
- assertEquals(result1, "zh-Hant-TW");
+ assertEquals("zh-Hant-TW", resultInputZhTw);
+
+ when(resources.getStringArray(anyInt())).thenReturn(
+ new String[]{"fi-FI", "ff-Adlm-BF", "ff-Latn-BF"});
// Input ff-BF, then find the matched supported locale, ff-Latn-BF, instead.
- String result2 = mPhoneInterfaceManager.matchLocaleFromSupportedLocaleList(
+ String resultFfBf = mPhoneInterfaceManager.matchLocaleFromSupportedLocaleList(mPhone,
Locale.forLanguageTag("ff-BF"));
- assertEquals(result2, "ff-Latn-BF");
+ assertEquals("ff-Latn-BF", resultFfBf);
}
}
diff --git a/tests/src/com/android/phone/PhoneUtilsTest.java b/tests/src/com/android/phone/PhoneUtilsTest.java
index eb4c248..521a0bb 100644
--- a/tests/src/com/android/phone/PhoneUtilsTest.java
+++ b/tests/src/com/android/phone/PhoneUtilsTest.java
@@ -28,23 +28,19 @@
import androidx.test.runner.AndroidJUnit4;
+import com.android.TelephonyTestBase;
import com.android.internal.telephony.GsmCdmaPhone;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
-import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.HashMap;
-
@RunWith(AndroidJUnit4.class)
-public class PhoneUtilsTest {
+public class PhoneUtilsTest extends TelephonyTestBase {
@Mock
private SubscriptionManager mMockSubscriptionManager;
@Mock
@@ -59,37 +55,6 @@
private PhoneAccountHandle mPhoneAccountHandleTest = new PhoneAccountHandle(
PSTN_CONNECTION_SERVICE_COMPONENT, mPhoneAccountHandleIdString);
- private HashMap<InstanceKey, Object> mOldInstances = new HashMap<InstanceKey, Object>();
-
- private ArrayList<InstanceKey> mInstanceKeys = new ArrayList<InstanceKey>();
-
- private static class InstanceKey {
- public final Class mClass;
- public final String mInstName;
- public final Object mObj;
- InstanceKey(final Class c, final String instName, final Object obj) {
- mClass = c;
- mInstName = instName;
- mObj = obj;
- }
-
- @Override
- public int hashCode() {
- return (mClass.getName().hashCode() * 31 + mInstName.hashCode()) * 31;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj == null || !(obj instanceof InstanceKey)) {
- return false;
- }
-
- InstanceKey other = (InstanceKey) obj;
- return (other.mClass == mClass && other.mInstName.equals(mInstName)
- && other.mObj == mObj);
- }
- }
-
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
@@ -100,37 +65,6 @@
replaceInstance(PhoneFactory.class, "sPhones", null, mPhones);
}
- @After
- public void tearDown() throws Exception {
- restoreInstance(PhoneFactory.class, "sPhones", null);
- }
-
- protected synchronized void replaceInstance(final Class c, final String instanceName,
- final Object obj, final Object newValue)
- throws Exception {
- Field field = c.getDeclaredField(instanceName);
- field.setAccessible(true);
-
- InstanceKey key = new InstanceKey(c, instanceName, obj);
- if (!mOldInstances.containsKey(key)) {
- mOldInstances.put(key, field.get(obj));
- mInstanceKeys.add(key);
- }
- field.set(obj, newValue);
- }
-
- protected synchronized void restoreInstance(final Class c, final String instanceName,
- final Object obj) throws Exception {
- InstanceKey key = new InstanceKey(c, instanceName, obj);
- if (mOldInstances.containsKey(key)) {
- Field field = c.getDeclaredField(instanceName);
- field.setAccessible(true);
- field.set(obj, mOldInstances.get(key));
- mOldInstances.remove(key);
- mInstanceKeys.remove(key);
- }
- }
-
@Test
public void testIsPhoneAccountActive() throws Exception {
assertTrue(PhoneUtils.isPhoneAccountActive(
diff --git a/tests/src/com/android/phone/ecc/EccDataTest.java b/tests/src/com/android/phone/ecc/EccDataTest.java
index 911d3c5..a52e2e7 100644
--- a/tests/src/com/android/phone/ecc/EccDataTest.java
+++ b/tests/src/com/android/phone/ecc/EccDataTest.java
@@ -32,6 +32,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.util.HashSet;
+import java.util.Locale;
import java.util.zip.GZIPInputStream;
/**
@@ -49,10 +50,12 @@
HashSet loadedIsos = new HashSet(300);
HashSet loadedNumbers = new HashSet(5);
+ HashSet loadedMncs = new HashSet(5);
for (ProtobufEccData.CountryInfo countryInfo : allEccMessages.countries) {
assertThat(countryInfo.isoCode).isNotEmpty();
- assertThat(countryInfo.isoCode).isEqualTo(countryInfo.isoCode.toUpperCase().trim());
+ assertThat(countryInfo.isoCode).isEqualTo(countryInfo.isoCode.toUpperCase(
+ Locale.ROOT).trim());
assertThat(loadedIsos.contains(countryInfo.isoCode)).isFalse();
loadedIsos.add(countryInfo.isoCode);
@@ -63,6 +66,17 @@
assertThat(loadedNumbers.contains(eccInfo.phoneNumber)).isFalse();
assertThat(eccInfo.types).isNotEmpty();
loadedNumbers.add(eccInfo.phoneNumber);
+ if (eccInfo.isNormalRouted) {
+ loadedMncs.clear();
+ for (String mnc : eccInfo.normalRoutingMncs) {
+ assertThat(mnc).isNotEmpty();
+ assertThat(mnc).isEqualTo(mnc.trim());
+ assertThat(loadedMncs.contains(mnc)).isFalse();
+ assertThat(mnc.length()).isGreaterThan(1);
+ assertThat(mnc.length()).isLessThan(4);
+ loadedMncs.add(mnc);
+ }
+ }
}
}
}
diff --git a/tests/src/com/android/services/telephony/DisconnectCauseUtilTest.java b/tests/src/com/android/services/telephony/DisconnectCauseUtilTest.java
index 28a7b02..969622a 100644
--- a/tests/src/com/android/services/telephony/DisconnectCauseUtilTest.java
+++ b/tests/src/com/android/services/telephony/DisconnectCauseUtilTest.java
@@ -38,19 +38,14 @@
import com.android.internal.telephony.PhoneFactory;
import com.android.phone.common.R;
-import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.HashMap;
import java.util.Locale;
-
@RunWith(AndroidJUnit4.class)
public class DisconnectCauseUtilTest extends TelephonyTestBase {
@@ -60,42 +55,11 @@
// dynamic
private Context mContext;
- private HashMap<InstanceKey, Object> mOldInstances = new HashMap<InstanceKey, Object>();
- private ArrayList<InstanceKey> mInstanceKeys = new ArrayList<InstanceKey>();
//Mocks
@Mock
private GsmCdmaPhone mMockPhone;
- // inner classes
- private static class InstanceKey {
- public final Class mClass;
- public final String mInstName;
- public final Object mObj;
-
- InstanceKey(final Class c, final String instName, final Object obj) {
- mClass = c;
- mInstName = instName;
- mObj = obj;
- }
-
- @Override
- public int hashCode() {
- return (mClass.getName().hashCode() * 31 + mInstName.hashCode()) * 31;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj == null || !(obj instanceof InstanceKey)) {
- return false;
- }
-
- InstanceKey other = (InstanceKey) obj;
- return (other.mClass == mClass && other.mInstName.equals(mInstName)
- && other.mObj == mObj);
- }
- }
-
@Before
public void setUp() throws Exception {
super.setUp();
@@ -106,15 +70,6 @@
setSinglePhone();
}
- @After
- public void tearDown() throws Exception {
- // restoreInstance.
- // Not doing so will potentially "confuse" other tests with the mocked instance
- restoreInstance(PhoneFactory.class, "sPhones", null);
- super.tearDown();
- }
-
-
/**
* Verifies that a call drop due to loss of WIFI results in a disconnect cause of error and that
* the label, description and tone are all present.
@@ -176,33 +131,6 @@
replaceInstance(PhoneFactory.class, "sPhones", null, mPhones);
}
-
- protected synchronized void replaceInstance(final Class c, final String instanceName,
- final Object obj, final Object newValue)
- throws Exception {
- Field field = c.getDeclaredField(instanceName);
- field.setAccessible(true);
-
- InstanceKey key = new InstanceKey(c, instanceName, obj);
- if (!mOldInstances.containsKey(key)) {
- mOldInstances.put(key, field.get(obj));
- mInstanceKeys.add(key);
- }
- field.set(obj, newValue);
- }
-
- protected synchronized void restoreInstance(final Class c, final String instanceName,
- final Object obj) throws Exception {
- InstanceKey key = new InstanceKey(c, instanceName, obj);
- if (mOldInstances.containsKey(key)) {
- Field field = c.getDeclaredField(instanceName);
- field.setAccessible(true);
- field.set(obj, mOldInstances.get(key));
- mOldInstances.remove(key);
- mInstanceKeys.remove(key);
- }
- }
-
private Resources getResourcesForLocale(Context context, Locale locale) {
Configuration config = new Configuration();
config.setToDefaults();
diff --git a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
index efa906e..f2209db 100644
--- a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
@@ -49,6 +49,7 @@
import android.telephony.CarrierConfigManager;
import android.telephony.RadioAccessFamily;
import android.telephony.ServiceState;
+import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.emergency.EmergencyNumber;
import android.test.suitebuilder.annotation.SmallTest;
@@ -396,9 +397,6 @@
// Slot 1 has more capabilities
setPhoneRadioAccessFamily(slot0Phone, RadioAccessFamily.RAF_GSM);
setPhoneRadioAccessFamily(slot1Phone, RadioAccessFamily.RAF_LTE);
- // Slot 1 has SIM inserted.
- setSlotHasIccCard(SLOT_0_PHONE_ID, false /*isInserted*/);
- setSlotHasIccCard(SLOT_1_PHONE_ID, true /*isInserted*/);
Phone resultPhone = mTestConnectionService.getFirstPhoneForEmergencyCall();
@@ -511,9 +509,6 @@
// Make Capability the same
setPhoneRadioAccessFamily(slot0Phone, RadioAccessFamily.RAF_LTE);
setPhoneRadioAccessFamily(slot1Phone, RadioAccessFamily.RAF_LTE);
- // Two SIMs inserted
- setSlotHasIccCard(SLOT_0_PHONE_ID, true /*isInserted*/);
- setSlotHasIccCard(SLOT_1_PHONE_ID, true /*isInserted*/);
Phone resultPhone = mTestConnectionService.getFirstPhoneForEmergencyCall();
@@ -542,9 +537,6 @@
// Make Capability the same
setPhoneRadioAccessFamily(slot0Phone, RadioAccessFamily.RAF_LTE);
setPhoneRadioAccessFamily(slot1Phone, RadioAccessFamily.RAF_LTE);
- // Slot 0 has SIM inserted.
- setSlotHasIccCard(SLOT_0_PHONE_ID, true /*isInserted*/);
- setSlotHasIccCard(SLOT_1_PHONE_ID, false /*isInserted*/);
Phone resultPhone = mTestConnectionService.getFirstPhoneForEmergencyCall();
@@ -573,9 +565,35 @@
// Make Capability the same
setPhoneRadioAccessFamily(slot0Phone, RadioAccessFamily.RAF_LTE);
setPhoneRadioAccessFamily(slot1Phone, RadioAccessFamily.RAF_LTE);
- // Slot 1 has SIM inserted.
- setSlotHasIccCard(SLOT_0_PHONE_ID, false /*isInserted*/);
- setSlotHasIccCard(SLOT_1_PHONE_ID, true /*isInserted*/);
+
+ Phone resultPhone = mTestConnectionService.getFirstPhoneForEmergencyCall();
+
+ assertEquals(slot1Phone, resultPhone);
+ }
+
+ /**
+ * Prerequisites:
+ * - MSIM Device with one ESIM, only slot 1 inserted has PSIM inserted
+ * - Both phones have the same capability
+ *
+ * Result: getFirstPhoneForEmergencyCall returns the slot 1 phone because it is the only one
+ * with a SIM inserted
+ */
+ @Test
+ @SmallTest
+ public void testEqualCapabilitySim1Inserted_WithOneEsim() {
+ Phone slot0Phone = makeTestPhone(SLOT_0_PHONE_ID, ServiceState.STATE_OUT_OF_SERVICE,
+ false /*isEmergencyOnly*/);
+ Phone slot1Phone = makeTestPhone(SLOT_1_PHONE_ID, ServiceState.STATE_OUT_OF_SERVICE,
+ false /*isEmergencyOnly*/);
+ setDefaultPhone(slot0Phone);
+ setupDeviceConfig(slot0Phone, slot1Phone, SLOT_0_PHONE_ID);
+ when(slot0Phone.getSubId()).thenReturn(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ setPhoneSlotState(SLOT_0_PHONE_ID, TelephonyManager.SIM_STATE_READY);
+ setPhoneSlotState(SLOT_1_PHONE_ID, TelephonyManager.SIM_STATE_READY);
+ // Make Capability the same
+ setPhoneRadioAccessFamily(slot0Phone, RadioAccessFamily.RAF_LTE);
+ setPhoneRadioAccessFamily(slot1Phone, RadioAccessFamily.RAF_LTE);
Phone resultPhone = mTestConnectionService.getFirstPhoneForEmergencyCall();
@@ -604,9 +622,6 @@
// Make Capability the same
setPhoneRadioAccessFamily(slot0Phone, RadioAccessFamily.RAF_GSM);
setPhoneRadioAccessFamily(slot1Phone, RadioAccessFamily.RAF_LTE);
- // No SIMs inserted
- setSlotHasIccCard(SLOT_0_PHONE_ID, false /*isInserted*/);
- setSlotHasIccCard(SLOT_1_PHONE_ID, false /*isInserted*/);
Phone resultPhone = mTestConnectionService.getFirstPhoneForEmergencyCall();
@@ -634,9 +649,63 @@
// Make Capability the same
setPhoneRadioAccessFamily(slot0Phone, RadioAccessFamily.RAF_UNKNOWN);
setPhoneRadioAccessFamily(slot1Phone, RadioAccessFamily.RAF_UNKNOWN);
- // No SIMs inserted
- setSlotHasIccCard(SLOT_0_PHONE_ID, false /*isInserted*/);
- setSlotHasIccCard(SLOT_1_PHONE_ID, false /*isInserted*/);
+
+ Phone resultPhone = mTestConnectionService.getFirstPhoneForEmergencyCall();
+
+ assertEquals(slot0Phone, resultPhone);
+ }
+
+ /**
+ * Prerequisites:
+ * - MSIM Device, no SIMs inserted (one ESIM)
+ * - Both SIMs have the same capability (Unknown)
+ *
+ * Result: getFirstPhoneForEmergencyCall returns the slot 0 phone, since it is the first slot.
+ */
+ @Test
+ @SmallTest
+ public void testEqualCapabilityNoSimsInserted_WithOneESim() {
+ Phone slot0Phone = makeTestPhone(SLOT_0_PHONE_ID, ServiceState.STATE_OUT_OF_SERVICE,
+ false /*isEmergencyOnly*/);
+ Phone slot1Phone = makeTestPhone(SLOT_1_PHONE_ID, ServiceState.STATE_OUT_OF_SERVICE,
+ false /*isEmergencyOnly*/);
+ setDefaultPhone(slot0Phone);
+ setupDeviceConfig(slot0Phone, slot1Phone, SLOT_0_PHONE_ID);
+ setPhoneSlotState(SLOT_0_PHONE_ID, TelephonyManager.SIM_STATE_ABSENT);
+ when(slot1Phone.getSubId()).thenReturn(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ setPhoneSlotState(SLOT_1_PHONE_ID, TelephonyManager.SIM_STATE_READY);
+ // Make Capability the samesvim
+ setPhoneRadioAccessFamily(slot0Phone, RadioAccessFamily.RAF_UNKNOWN);
+ setPhoneRadioAccessFamily(slot1Phone, RadioAccessFamily.RAF_UNKNOWN);
+
+ Phone resultPhone = mTestConnectionService.getFirstPhoneForEmergencyCall();
+
+ assertEquals(slot0Phone, resultPhone);
+ }
+
+ /**
+ * Prerequisites:
+ * - MSIM Device, both ESIMS (no profile activated)
+ * - Both phones have the same capability (Unknown)
+ *
+ * Result: getFirstPhoneForEmergencyCall returns the slot 0 phone, since it is the first slot.
+ */
+ @Test
+ @SmallTest
+ public void testEqualCapabilityNoSimsInserted_WithTwoESims() {
+ Phone slot0Phone = makeTestPhone(SLOT_0_PHONE_ID, ServiceState.STATE_OUT_OF_SERVICE,
+ false /*isEmergencyOnly*/);
+ Phone slot1Phone = makeTestPhone(SLOT_1_PHONE_ID, ServiceState.STATE_OUT_OF_SERVICE,
+ false /*isEmergencyOnly*/);
+ setDefaultPhone(slot0Phone);
+ setupDeviceConfig(slot0Phone, slot1Phone, SLOT_0_PHONE_ID);
+ when(slot0Phone.getSubId()).thenReturn(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ setPhoneSlotState(SLOT_0_PHONE_ID, TelephonyManager.SIM_STATE_READY);
+ when(slot1Phone.getSubId()).thenReturn(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ setPhoneSlotState(SLOT_1_PHONE_ID, TelephonyManager.SIM_STATE_READY);
+ // Make Capability the sames
+ setPhoneRadioAccessFamily(slot0Phone, RadioAccessFamily.RAF_UNKNOWN);
+ setPhoneRadioAccessFamily(slot1Phone, RadioAccessFamily.RAF_UNKNOWN);
Phone resultPhone = mTestConnectionService.getFirstPhoneForEmergencyCall();
@@ -1213,7 +1282,7 @@
}
/**
- * Verifies where there is another call on the same sub, we don't set
+ * Verifies where there is another call on a different sub, we set
* {@link android.telecom.Connection#EXTRA_ANSWERING_DROPS_FG_CALL} on the incoming call extras.
* @throws Exception
*/
@@ -1244,6 +1313,40 @@
.count());
}
+ /**
+ * For virtual DSDA-enabled devices, verifies where there is another call on the same sub, we
+ * don't set {@link android.telecom.Connection#EXTRA_ANSWERING_DROPS_FG_CALL} on the incoming
+ * call extras.
+ * @throws Exception
+ */
+ @Test
+ @SmallTest
+ public void testSecondCallDifferentSubWontDisconnectForDsdaDevice() throws Exception {
+ // Re-uses existing test for setup, then configures device as virtual DSDA for test duration
+ testIncomingDoesntRequestDisconnect();
+ when(mTelephonyManagerProxy.isConcurrentCallsPossible()).thenReturn(true);
+
+ when(mCall.getState()).thenReturn(Call.State.ACTIVE);
+ when(mCall2.getState()).thenReturn(Call.State.WAITING);
+ when(mCall2.getLatestConnection()).thenReturn(mInternalConnection2);
+ // At this point the call is ringing on the second phone.
+ when(mPhone0.getRingingCall()).thenReturn(null);
+ when(mPhone1.getRingingCall()).thenReturn(mCall2);
+
+ mBinderStub.createConnection(PHONE_ACCOUNT_HANDLE_2, "TC@2",
+ new ConnectionRequest(PHONE_ACCOUNT_HANDLE_2, Uri.parse("tel:16505551213"),
+ new Bundle()),
+ true, false, null);
+ waitForHandlerAction(mTestConnectionService.getHandler(), TIMEOUT_MS);
+ assertEquals(2, mTestConnectionService.getAllConnections().size());
+
+ // None of the connections should have the extra set.
+ assertEquals(0, mTestConnectionService.getAllConnections().stream()
+ .filter(c -> c.getExtras() != null && c.getExtras().containsKey(
+ android.telecom.Connection.EXTRA_ANSWERING_DROPS_FG_CALL))
+ .count());
+ }
+
private static final PhoneAccountHandle SUB1_HANDLE = new PhoneAccountHandle(
new ComponentName("test", "class"), "1");
private static final PhoneAccountHandle SUB2_HANDLE = new PhoneAccountHandle(
@@ -1255,7 +1358,8 @@
ArrayList<android.telecom.Connection> tcs = new ArrayList<>();
SimpleTelephonyConnection tc1 = createTestConnection(SUB1_HANDLE, 0, false);
tcs.add(tc1);
- TelephonyConnectionService.maybeDisconnectCallsOnOtherSubs(tcs, SUB1_HANDLE);
+ TelephonyConnectionService.maybeDisconnectCallsOnOtherSubs(
+ tcs, SUB1_HANDLE, mTelephonyManagerProxy);
// Would've preferred to use mockito, but can't mock out TelephonyConnection/Connection
// easily.
assertFalse(tc1.wasDisconnected);
@@ -1267,7 +1371,8 @@
ArrayList<android.telecom.Connection> tcs = new ArrayList<>();
SimpleTelephonyConnection tc1 = createTestConnection(SUB1_HANDLE, 0, true);
tcs.add(tc1);
- TelephonyConnectionService.maybeDisconnectCallsOnOtherSubs(tcs, SUB2_HANDLE);
+ TelephonyConnectionService.maybeDisconnectCallsOnOtherSubs(
+ tcs, SUB2_HANDLE, mTelephonyManagerProxy);
// Other call is an emergency call, so don't disconnect it.
assertFalse(tc1.wasDisconnected);
}
@@ -1279,7 +1384,8 @@
SimpleTelephonyConnection tc1 = createTestConnection(SUB1_HANDLE,
android.telecom.Connection.PROPERTY_IS_EXTERNAL_CALL, false);
tcs.add(tc1);
- TelephonyConnectionService.maybeDisconnectCallsOnOtherSubs(tcs, SUB2_HANDLE);
+ TelephonyConnectionService.maybeDisconnectCallsOnOtherSubs(
+ tcs, SUB2_HANDLE, mTelephonyManagerProxy);
// Other call is an external call, so don't disconnect it.
assertFalse(tc1.wasDisconnected);
}
@@ -1290,7 +1396,8 @@
ArrayList<android.telecom.Connection> tcs = new ArrayList<>();
SimpleTelephonyConnection tc1 = createTestConnection(SUB1_HANDLE, 0, false);
tcs.add(tc1);
- TelephonyConnectionService.maybeDisconnectCallsOnOtherSubs(tcs, SUB2_HANDLE);
+ TelephonyConnectionService.maybeDisconnectCallsOnOtherSubs(
+ tcs, SUB2_HANDLE, mTelephonyManagerProxy);
assertTrue(tc1.wasDisconnected);
}
@@ -1303,11 +1410,29 @@
tcs.add(tc1);
tcs.add(tc2);
- TelephonyConnectionService.maybeDisconnectCallsOnOtherSubs(tcs, SUB2_HANDLE);
+ TelephonyConnectionService.maybeDisconnectCallsOnOtherSubs(
+ tcs, SUB2_HANDLE, mTelephonyManagerProxy);
assertTrue(tc1.wasDisconnected);
assertTrue(tc2.wasDisconnected);
}
+ /**
+ * Verifies that DSDA or virtual DSDA-enabled devices can support active non-emergency calls on
+ * separate subs.
+ */
+ @Test
+ @SmallTest
+ public void testDontDisconnectDifferentSubForVirtualDsdaDevice() {
+ when(mTelephonyManagerProxy.isConcurrentCallsPossible()).thenReturn(true);
+
+ ArrayList<android.telecom.Connection> tcs = new ArrayList<>();
+ SimpleTelephonyConnection tc1 = createTestConnection(SUB1_HANDLE, 0, false);
+ tcs.add(tc1);
+ TelephonyConnectionService.maybeDisconnectCallsOnOtherSubs(
+ tcs, SUB2_HANDLE, mTelephonyManagerProxy);
+ assertFalse(tc1.wasDisconnected);
+ }
+
private SimpleTelephonyConnection createTestConnection(PhoneAccountHandle handle,
int properties, boolean isEmergency) {
SimpleTelephonyConnection connection = new SimpleTelephonyConnection();
@@ -1484,6 +1609,7 @@
// Setup 2 SIM device
private void setupDeviceConfig(Phone slot0Phone, Phone slot1Phone, int defaultVoicePhoneId) {
when(mTelephonyManagerProxy.getPhoneCount()).thenReturn(2);
+ when(mTelephonyManagerProxy.isConcurrentCallsPossible()).thenReturn(false);
when(mSubscriptionManagerProxy.getDefaultVoicePhoneId()).thenReturn(defaultVoicePhoneId);
when(mPhoneFactoryProxy.getPhone(eq(SLOT_0_PHONE_ID))).thenReturn(slot0Phone);
when(mPhoneFactoryProxy.getPhone(eq(SLOT_1_PHONE_ID))).thenReturn(slot1Phone);
@@ -1497,10 +1623,6 @@
when(mSubscriptionManagerProxy.getSimStateForSlotIdx(slotId)).thenReturn(slotState);
}
- private void setSlotHasIccCard(int slotId, boolean isInserted) {
- when(mTelephonyManagerProxy.hasIccCard(slotId)).thenReturn(isInserted);
- }
-
private void setDefaultPhone(Phone phone) {
when(mPhoneFactoryProxy.getDefaultPhone()).thenReturn(phone);
}
diff --git a/tests/src/com/android/services/telephony/TelephonyConnectionTest.java b/tests/src/com/android/services/telephony/TelephonyConnectionTest.java
index 388fd29..c996e5f 100644
--- a/tests/src/com/android/services/telephony/TelephonyConnectionTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyConnectionTest.java
@@ -14,6 +14,7 @@
import static org.mockito.Mockito.when;
import android.os.Bundle;
+import android.os.PersistableBundle;
import android.telecom.Connection;
import android.telephony.CarrierConfigManager;
import android.telephony.DisconnectCause;
@@ -25,6 +26,7 @@
import com.android.internal.telephony.d2d.DtmfTransport;
import com.android.internal.telephony.d2d.RtpTransport;
import com.android.internal.telephony.imsphone.ImsPhoneConnection;
+import com.android.phone.PhoneGlobals;
import com.android.phone.R;
import org.junit.Before;
@@ -212,4 +214,47 @@
fail("refreshConferenceSupported threw ClassCastException");
}
}
+
+ /**
+ * Tests TelephonyConnection#getCarrierConfig never returns a null given all cases that can
+ * cause a potential null.
+ */
+ @Test
+ public void testGetCarrierConfigBehaviorWithNull() throws Exception {
+ TestTelephonyConnectionSimple c = new TestTelephonyConnectionSimple();
+
+ // case: return a valid carrier config (good case)
+ when(c.mPhoneGlobals.getCarrierConfigForSubId(c.getPhone().getSubId())).
+ thenReturn(CarrierConfigManager.getDefaultConfig());
+ assertNotNull(c.getCarrierConfig());
+
+ // case: PhoneGlobals.getInstance().getCarrierConfigForSubId(int) returns null
+ when(c.mPhoneGlobals.getCarrierConfigForSubId(c.getPhone().getSubId()))
+ .thenReturn(null);
+ assertNotNull(c.getCarrierConfig());
+
+ // case: phone is null
+ c.setMockPhone(null);
+ assertNull(c.getPhone());
+ assertNotNull(c.getCarrierConfig());
+ }
+
+ /**
+ * Tests the behavior of TelephonyConnection#isRttMergeSupported(@NonNull PersistableBundle).
+ * Note, the function should be able to handle an empty PersistableBundle and should NEVER
+ * receive a null object as denoted in by @NonNull annotation.
+ */
+ @Test
+ public void testIsRttMergeSupportedBehavior() {
+ TestTelephonyConnection c = new TestTelephonyConnection();
+ // ensure isRttMergeSupported(PersistableBundle) does not throw NPE when given an Empty PB
+ assertFalse(c.isRttMergeSupported(new PersistableBundle()));
+
+ // simulate the passing situation
+ c.getCarrierConfigBundle().putBoolean(
+ CarrierConfigManager.KEY_ALLOW_MERGING_RTT_CALLS_BOOL,
+ true);
+ assertTrue(c.isRttMergeSupported(c.getCarrierConfig()));
+ }
+
}
diff --git a/tests/src/com/android/services/telephony/TelephonyManagerTest.java b/tests/src/com/android/services/telephony/TelephonyManagerTest.java
index cf1ae8f..89b558c 100644
--- a/tests/src/com/android/services/telephony/TelephonyManagerTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyManagerTest.java
@@ -15,11 +15,14 @@
*/
package com.android.services.telephony;
-
+import static org.junit.Assume.assumeFalse;
+import static org.junit.Assume.assumeTrue;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -28,6 +31,8 @@
import android.app.PropertyInvalidatedCache;
import android.content.ComponentName;
import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.RemoteException;
import android.telecom.PhoneAccountHandle;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -37,6 +42,8 @@
import androidx.test.runner.AndroidJUnit4;
import com.android.internal.telephony.ITelephony;
+import com.android.internal.telephony.IPhoneSubInfo;
+import com.android.internal.telephony.PhoneConstants;
import org.junit.After;
import org.junit.Before;
@@ -61,8 +68,10 @@
private static final int TEST_SUBID_2 = 2;
private ITelephony mMockITelephony;
+ private IPhoneSubInfo mMockIPhoneSubInfo;
private SubscriptionManager mMockSubscriptionManager;
private Context mMockContext;
+ private final PackageManager mPackageManager = mock(PackageManager.class);
private TelephonyManager mTelephonyManager;
@@ -89,18 +98,23 @@
}
return null;
}
+ @Override
+ public PackageManager getPackageManager() {
+ return mPackageManager;
+ }
};
@Before
public void setUp() throws Exception {
mMockITelephony = mock(ITelephony.class);
+ mMockIPhoneSubInfo = mock(IPhoneSubInfo.class);
mMockSubscriptionManager = mock(SubscriptionManager.class);
mMockContext = mock(Context.class);
when(mMockContext.getSystemService(eq(Context.TELEPHONY_SUBSCRIPTION_SERVICE)))
.thenReturn(mMockSubscriptionManager);
-
mTelephonyManager = new TelephonyManager(mContext);
TelephonyManager.setupITelephonyForTest(mMockITelephony);
+ TelephonyManager.setupIPhoneSubInfoForTest(mMockIPhoneSubInfo);
TelephonyManager.enableServiceHandleCaching();
}
@@ -218,4 +232,32 @@
verify(mMockITelephony, times(1)).getSubIdForPhoneAccountHandle(eq(TEST_HANDLE2),
anyString(), anyString());
}
+
+ @Test
+ public void testGetSimServiceTable_USIM() throws RemoteException {
+ assumeTrue(hasFeature(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION, true));
+ when(mMockIPhoneSubInfo.getSimServiceTable(anyInt(), anyInt())).thenReturn("12345");
+ assertEquals("12345", mTelephonyManager.getSimServiceTable(PhoneConstants.APPTYPE_USIM));
+ verify(mMockIPhoneSubInfo, times(1)).getSimServiceTable(anyInt(), anyInt());
+ }
+
+ @Test
+ public void testGetSimServiceTable_ISIM() throws RemoteException {
+ when(mMockIPhoneSubInfo.getIsimIst(anyInt())).thenReturn("12345");
+ assertEquals("12345", mTelephonyManager.getSimServiceTable(PhoneConstants.APPTYPE_ISIM));
+ verify(mMockIPhoneSubInfo, times(1)).getIsimIst(anyInt());
+ }
+
+ @Test
+ public void testGetSimServiceTable_RUSIM() throws RemoteException {
+ assumeFalse(hasFeature(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION, false));
+ assertEquals(null, mTelephonyManager.getSimServiceTable(PhoneConstants.APPTYPE_RUIM));
+ }
+
+ private boolean hasFeature(String feature, boolean status) {
+ doReturn(status)
+ .when(mPackageManager).hasSystemFeature(
+ PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION);
+ return mContext.getPackageManager().hasSystemFeature(feature);
+ }
}
diff --git a/tests/src/com/android/services/telephony/TestTelephonyConnectionSimple.java b/tests/src/com/android/services/telephony/TestTelephonyConnectionSimple.java
new file mode 100644
index 0000000..9dc2551
--- /dev/null
+++ b/tests/src/com/android/services/telephony/TestTelephonyConnectionSimple.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2022 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.services.telephony;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.content.AttributionSource;
+import android.content.Context;
+import android.os.Process;
+import android.telephony.TelephonyManager;
+
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.phone.PhoneGlobals;
+
+import org.mockito.ArgumentMatchers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+public class TestTelephonyConnectionSimple extends TelephonyConnection{
+
+ @Mock
+ Context mMockContext;
+
+ @Mock
+ PhoneGlobals mPhoneGlobals;
+
+ private Phone mMockPhone;
+
+ public TelephonyConnection cloneConnection() {
+ return this;
+ }
+
+ public TestTelephonyConnectionSimple(){
+ super(null, null, android.telecom.Call.Details.DIRECTION_INCOMING);
+ MockitoAnnotations.initMocks(this);
+
+ AttributionSource attributionSource = new AttributionSource.Builder(
+ Process.myUid()).build();
+
+ mMockPhone = mock(Phone.class);
+ mMockContext = mock(Context.class);
+ mPhoneGlobals = mock(PhoneGlobals.class);
+
+ when(mMockPhone.getSubId()).thenReturn(1);
+ }
+
+ public void setMockPhone(Phone newPhone) {
+ mMockPhone = newPhone;
+ }
+
+ @Override
+ public Phone getPhone() {
+ return mMockPhone;
+ }
+
+}