Merge "Remove extra text from AndroidManifest.xml" am: d117b2343e
Original change: https://android-review.googlesource.com/c/platform/packages/services/Telephony/+/2140047
Change-Id: I2a6aae92928e03bd35d7f1a512d89ae4c074c79a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index afa507e..5a3c017 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -23,95 +23,6 @@
>
<original-package android:name="com.android.phone" />
-
- <protected-broadcast android:name="android.telecom.action.CURRENT_TTY_MODE_CHANGED" />
- <protected-broadcast android:name="android.intent.action.SERVICE_STATE" />
- <protected-broadcast android:name="android.intent.action.RADIO_TECHNOLOGY" />
- <protected-broadcast android:name="android.intent.action.EMERGENCY_CALLBACK_MODE_CHANGED" />
- <protected-broadcast android:name="android.intent.action.EMERGENCY_CALL_STATE_CHANGED" />
- <protected-broadcast android:name="android.intent.action.SIG_STR" />
- <protected-broadcast android:name="android.intent.action.ANY_DATA_STATE" />
- <protected-broadcast android:name="android.intent.action.DATA_STALL_DETECTED" />
- <protected-broadcast android:name="android.intent.action.SIM_STATE_CHANGED" />
- <protected-broadcast android:name="android.intent.action.USER_ACTIVITY_NOTIFICATION" />
- <protected-broadcast android:name="android.telephony.action.SHOW_NOTICE_ECM_BLOCK_OTHERS" />
- <protected-broadcast android:name="android.intent.action.ACTION_MDN_STATE_CHANGED" />
- <protected-broadcast android:name="android.telephony.action.SERVICE_PROVIDERS_UPDATED" />
- <protected-broadcast android:name="android.provider.Telephony.SIM_FULL" />
- <protected-broadcast android:name="com.android.internal.telephony.carrier_key_download_alarm" />
- <protected-broadcast android:name="com.android.internal.telephony.data-restart-trysetup" />
- <protected-broadcast android:name="com.android.internal.telephony.data-stall" />
- <protected-broadcast android:name="com.android.internal.telephony.provisioning_apn_alarm" />
- <protected-broadcast android:name="android.intent.action.DATA_SMS_RECEIVED" />
- <protected-broadcast android:name="android.provider.Telephony.SMS_RECEIVED" />
- <protected-broadcast android:name="android.provider.Telephony.SMS_DELIVER" />
- <protected-broadcast android:name="android.provider.Telephony.SMS_REJECTED" />
- <protected-broadcast android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
- <protected-broadcast android:name="android.provider.Telephony.WAP_PUSH_RECEIVED" />
- <protected-broadcast android:name="android.provider.Telephony.SMS_CB_RECEIVED" />
- <protected-broadcast android:name="android.provider.action.SMS_EMERGENCY_CB_RECEIVED" />
- <protected-broadcast android:name="android.provider.Telephony.SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED" />
- <protected-broadcast android:name="android.provider.Telephony.SECRET_CODE" />
- <protected-broadcast android:name= "com.android.internal.stk.command" />
- <protected-broadcast android:name= "com.android.internal.stk.session_end" />
- <protected-broadcast android:name= "com.android.internal.stk.icc_status_change" />
- <protected-broadcast android:name= "com.android.internal.stk.alpha_notify" />
- <protected-broadcast android:name= "com.android.internal.telephony.CARRIER_SIGNAL_REDIRECTED" />
- <protected-broadcast android:name= "com.android.internal.telephony.CARRIER_SIGNAL_REQUEST_NETWORK_FAILED" />
- <protected-broadcast android:name= "com.android.internal.telephony.CARRIER_SIGNAL_PCO_VALUE" />
- <protected-broadcast android:name= "com.android.internal.telephony.CARRIER_SIGNAL_RESET" />
- <protected-broadcast android:name= "com.android.internal.telephony.CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE" />
- <protected-broadcast android:name= "com.android.internal.telephony.PROVISION" />
- <protected-broadcast android:name= "com.android.internal.telephony.ACTION_LINE1_NUMBER_ERROR_DETECTED" />
- <protected-broadcast android:name= "com.android.internal.provider.action.VOICEMAIL_SMS_RECEIVED" />
- <protected-broadcast android:name= "com.android.intent.isim_refresh" />
- <protected-broadcast android:name= "com.android.ims.ACTION_RCS_SERVICE_AVAILABLE" />
- <protected-broadcast android:name= "com.android.ims.ACTION_RCS_SERVICE_UNAVAILABLE" />
- <protected-broadcast android:name= "com.android.ims.ACTION_RCS_SERVICE_DIED" />
- <protected-broadcast android:name= "com.android.ims.ACTION_PRESENCE_CHANGED" />
- <protected-broadcast android:name= "com.android.ims.ACTION_PUBLISH_STATUS_CHANGED" />
- <protected-broadcast android:name= "com.android.ims.IMS_SERVICE_UP" />
- <protected-broadcast android:name= "com.android.ims.IMS_SERVICE_DOWN" />
- <protected-broadcast android:name= "com.android.ims.IMS_INCOMING_CALL" />
- <protected-broadcast android:name= "com.android.ims.internal.uce.UCE_SERVICE_UP" />
- <protected-broadcast android:name= "com.android.ims.internal.uce.UCE_SERVICE_DOWN" />
- <protected-broadcast android:name= "com.android.imsconnection.DISCONNECTED" />
- <protected-broadcast android:name= "com.android.intent.action.IMS_FEATURE_CHANGED" />
- <protected-broadcast android:name= "com.android.intent.action.IMS_CONFIG_CHANGED" />
- <protected-broadcast android:name= "android.telephony.ims.action.WFC_IMS_REGISTRATION_ERROR" />
- <protected-broadcast android:name= "com.android.phone.vvm.omtp.sms.REQUEST_SENT" />
- <protected-broadcast android:name= "com.android.phone.vvm.ACTION_VISUAL_VOICEMAIL_SERVICE_EVENT" />
- <protected-broadcast android:name= "com.android.internal.telephony.CARRIER_VVM_PACKAGE_INSTALLED" />
- <protected-broadcast android:name= "com.android.cellbroadcastreceiver.GET_LATEST_CB_AREA_INFO" />
- <protected-broadcast android:name= "com.android.internal.telephony.ACTION_CARRIER_CERTIFICATE_DOWNLOAD" />
- <protected-broadcast android:name= "com.android.internal.telephony.action.COUNTRY_OVERRIDE" />
- <protected-broadcast android:name= "com.android.internal.telephony.OPEN_DEFAULT_SMS_APP" />
- <protected-broadcast android:name= "com.android.internal.telephony.ACTION_TEST_OVERRIDE_CARRIER_ID" />
- <protected-broadcast android:name= "android.telephony.action.SIM_CARD_STATE_CHANGED" />
- <protected-broadcast android:name= "android.telephony.action.SIM_APPLICATION_STATE_CHANGED" />
- <protected-broadcast android:name= "android.telephony.action.SIM_SLOT_STATUS_CHANGED" />
- <protected-broadcast android:name= "android.telephony.action.SUBSCRIPTION_CARRIER_IDENTITY_CHANGED" />
- <protected-broadcast android:name= "android.telephony.action.SUBSCRIPTION_SPECIFIC_CARRIER_IDENTITY_CHANGED" />
- <protected-broadcast android:name= "android.telephony.action.TOGGLE_PROVISION" />
- <protected-broadcast android:name= "android.telephony.action.NETWORK_COUNTRY_CHANGED" />
- <protected-broadcast android:name= "android.telephony.action.PRIMARY_SUBSCRIPTION_LIST_CHANGED" />
- <protected-broadcast android:name= "android.telephony.action.MULTI_SIM_CONFIG_CHANGED" />
- <protected-broadcast android:name= "android.telephony.action.CARRIER_SIGNAL_RESET" />
- <protected-broadcast android:name= "android.telephony.action.CARRIER_SIGNAL_PCO_VALUE" />
- <protected-broadcast android:name= "android.telephony.action.CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE" />
- <protected-broadcast android:name= "android.telephony.action.CARRIER_SIGNAL_REDIRECTED" />
- <protected-broadcast android:name= "android.telephony.action.CARRIER_SIGNAL_REQUEST_NETWORK_FAILED" />
-
- <protected-broadcast android:name= "com.android.phone.settings.CARRIER_PROVISIONING" />
- <protected-broadcast android:name= "com.android.phone.settings.TRIGGER_CARRIER_PROVISIONING" />
-
- <!-- For Vendor Debugging in Telephony -->
- <protected-broadcast android:name="android.telephony.action.ANOMALY_REPORTED" />
-
- <protected-broadcast android:name= "android.intent.action.SUBSCRIPTION_INFO_RECORD_ADDED" />
- <protected-broadcast android:name= "android.intent.action.ACTION_MANAGED_ROAMING_IND" />
- <protected-broadcast android:name= "android.telephony.ims.action.RCS_SINGLE_REGISTRATION_CAPABILITY_UPDATE" />
-
<!-- Allows granting runtime permissions to telephony related components. -->
<uses-permission android:name="android.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS" />
@@ -147,7 +58,6 @@
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.SEND_RESPOND_VIA_MESSAGE" />
- <uses-permission android:name="android.permission.SET_TIME_ZONE" />
<uses-permission android:name="android.permission.SUGGEST_TELEPHONY_TIME_AND_ZONE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
@@ -156,7 +66,6 @@
<uses-permission android:name="android.permission.DEVICE_POWER" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
@@ -189,8 +98,6 @@
<uses-permission android:name="android.permission.REGISTER_SIM_SUBSCRIPTION" />
<uses-permission android:name="android.permission.BIND_IMS_SERVICE" />
<uses-permission android:name="android.permission.BIND_CARRIER_SERVICES" />
- <!-- BIND_CARRIER_MESSAGING_SERVICE has been deprecated in favor of BIND_CARRIER_SERVICES. -->
- <uses-permission android:name="android.permission.BIND_CARRIER_MESSAGING_SERVICE" />
<uses-permission android:name="android.permission.BIND_EUICC_SERVICE" />
<uses-permission android:name="android.permission.BIND_TELEPHONY_NETWORK_SERVICE" />
<uses-permission android:name="android.permission.BIND_CELL_BROADCAST_SERVICE" />
@@ -207,6 +114,7 @@
<uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS" />
<uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
<uses-permission android:name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST" />
+ <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<!-- Needed to block messages. -->
<uses-permission android:name="android.permission.READ_BLOCKED_NUMBERS" />
<!-- Needed for emergency contact notification. -->
@@ -241,6 +149,9 @@
<!-- Needed to listen to changes in projection state. -->
<uses-permission android:name="android.permission.READ_PROJECTION_STATE"/>
+ <!-- Needed to access TelephonyProvider SIMINFO table. -->
+ <uses-permission android:name="android.permission.ACCESS_TELEPHONY_SIMINFO_DB"/>
+ <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<permission android:name="com.android.phone.permission.ACCESS_LAST_KNOWN_CELL_ID"
android:label="Access last known cell identity."
@@ -354,7 +265,7 @@
android:label="@string/labelCF"
android:configChanges="orientation|screenSize|keyboardHidden"
android:exported="true"
- android:theme="@style/DialerSettingsLight">
+ android:theme="@style/CallSettingsWithoutDividerTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
@@ -364,7 +275,7 @@
android:label="@string/labelCF"
android:configChanges="orientation|screenSize|keyboardHidden"
android:exported="true"
- android:theme="@style/DialerSettingsLight">
+ android:theme="@style/CallSettingsWithoutDividerTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
@@ -384,7 +295,7 @@
android:label="@string/labelGSMMore"
android:configChanges="orientation|screenSize|keyboardHidden"
android:exported="true"
- android:theme="@style/DialerSettingsLight">
+ android:theme="@style/CallSettingsWithoutDividerTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
@@ -394,7 +305,7 @@
<activity android:name="com.android.phone.settings.fdn.FdnSetting"
android:label="@string/fdn"
android:exported="true"
- android:theme="@style/DialerSettingsLight">
+ android:theme="@style/CallSettingsWithoutDividerTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
@@ -442,7 +353,7 @@
android:label="@string/call_settings"
android:configChanges="orientation|screenSize|keyboardHidden"
android:exported="true"
- android:theme="@style/DialerSettingsLight">
+ android:theme="@style/CallSettingsWithoutDividerTheme">
<intent-filter android:priority="1">
<action android:name="android.intent.action.MAIN" />
<action android:name="android.telecom.action.SHOW_CALL_SETTINGS" />
@@ -597,7 +508,7 @@
android:configChanges="orientation|screenSize|keyboardHidden|screenLayout"
android:screenOrientation="portrait"
android:exported="true"
- android:theme="@style/DialerSettingsLight">
+ android:theme="@style/CallSettingsWithoutDividerTheme">
<intent-filter >
<!-- DO NOT RENAME. There are existing apps which use this string. -->
<action android:name="com.android.phone.CallFeaturesSetting.ADD_VOICEMAIL" />
diff --git a/TEST_MAPPING b/TEST_MAPPING
index da61c80..3831b6b 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -12,14 +12,6 @@
"name": "CarrierAppIntegrationTestCases"
},
{
- "name": "CtsTelephonySdk28TestCases",
- "options": [
- {
- "exclude-annotation": "androidx.test.filters.FlakyTest"
- }
- ]
- },
- {
"name": "CtsSimRestrictedApisTestCases",
"options": [
{
diff --git a/res/layout/emergency_dialer.xml b/res/layout/emergency_dialer.xml
index ab32c62..3eaeb19 100644
--- a/res/layout/emergency_dialer.xml
+++ b/res/layout/emergency_dialer.xml
@@ -66,94 +66,7 @@
android:layout_gravity="bottom"
android:orientation="vertical">
- <!-- FrameLayout -->
- <com.android.phone.EmergencyActionGroup
- android:id="@+id/emergency_action_group"
- android:layout_height="64dp"
- android:layout_width="match_parent"
- android:layout_marginHorizontal="36dp"
- android:layout_marginTop="16dp"
- android:layout_marginBottom="24dp">
-
- <!-- Button that says: Emergency Information -->
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- <Button android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:background="@drawable/btn_emergency"
- android:id="@+id/action1" />
- <Button android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:background="@drawable/btn_emergency"
- android:id="@+id/action2" />
- <Button android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="1"
- android:background="@drawable/btn_emergency"
- android:id="@+id/action3" />
- </LinearLayout>
-
- <!-- View that shows up on top of "emergency information" button
- and asks you to tap again to confirm the action -->
- <FrameLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:id="@+id/selected_container"
- android:visibility="invisible"
- android:focusable="true"
- android:clickable="true">
-
- <View
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:backgroundTint="#ffe32926"
- android:focusable="false"
- android:clickable="false"
- style="?android:attr/buttonStyle"/>
-
- <View
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:id="@+id/ripple_view"
- android:backgroundTint="#22ffffff"
- android:visibility="invisible"
- android:focusable="false"
- android:clickable="false"
- style="?android:attr/buttonStyle"/>
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical"
- android:focusable="false"
- android:clickable="false"
- android:backgroundTint="#00000000"
- style="?android:attr/buttonStyle">
- <TextView
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:maxLines="1"
- android:id="@+id/selected_label"
- android:textColor="@android:color/white"
- android:textAppearance="?android:attr/textAppearanceButton" />
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/launch_hint"
- android:maxLines="1"
- android:autoSizeTextType="uniform"
- android:text="@string/emergency_action_launch_hint"
- android:textColor="@android:color/white"
- android:textStyle="italic" />
- </LinearLayout>
-
- </FrameLayout>
-
- </com.android.phone.EmergencyActionGroup>
+ <include layout="@layout/emergency_information"/>
<Space
android:id="@+id/emergency_info_dialpad_spacer"
android:layout_width="match_parent"
diff --git a/res/layout/radio_info.xml b/res/layout/radio_info.xml
index 1f137b0..2a2ad89 100644
--- a/res/layout/radio_info.xml
+++ b/res/layout/radio_info.xml
@@ -258,6 +258,15 @@
android:layout_height="wrap_content"
android:text="@string/dsds_switch_string" />
+ <!-- Set removable eSIM as default eUICC. -->
+ <Switch android:id="@+id/removable_esim_switch"
+ android:textSize="14sp"
+ android:layout_marginTop="8dip"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:enabled="false"
+ android:text="@string/removable_esim_string" />
+
<!-- Horizontal Rule -->
<View
android:layout_width="fill_parent"
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 7d98490..3d1eac7 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Toeganklikheid"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi-oproep vanaf"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi-oproep"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tik weer om oop te maak"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Kon nie die boodskap dekodeer nie."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"\'n SIM-kaart het jou diens geaktiveer en jou foon se swerwingvermoëns opgedateer."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Daar is te veel aktiewe oproepe. Beëindig of voeg asseblief bestaande oproepe saam voordat jy \'n nuwe een maak."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 cce627a..de4a5e7 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"ለመክፈት ዳግም ነካ ያድርጉ"</string>
<string name="message_decode_error" msgid="1061856591500290887">"መልዕክቱን በማመሳጠር ላይ ስህተት ነበር።"</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"አንድ ሲም ካርድ አገልግሎትዎን ገቢር አድርጎታል፣ እንዲሁም የስልክዎን የማስተላለፍ ችሎታዎችን አዘምኗል።"</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"እጅግ በጣም ብዙ ንቁ ጥሪዎች አሉ። እባክዎ አዲስ ከማስቀመጥዎ በፊት ያሉትን ጥሪዎች ይጨርሱ ወይም ያዋህዱ።"</string>
@@ -916,6 +915,12 @@
<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-ar/strings.xml b/res/values-ar/strings.xml
index 1cce310..dc4fa77 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"انقر مرة أخرى للفتح."</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>
@@ -693,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>
@@ -916,6 +915,12 @@
<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-as/strings.xml b/res/values-as/strings.xml
index 2e6f16f..bfc5c1d 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"সাধ্য সুবিধাসমূহ"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"এওঁৰ পৰা ৱাই-ফাই কল আহিছে"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"ৱাই-ফাই কল"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"খুলিবলৈ পুনৰাই টিপক"</string>
<string name="message_decode_error" msgid="1061856591500290887">"বাৰ্তাটো ডিক\'ড কৰোঁতে আসোঁৱাহৰ সৃষ্টি হৈছিল।"</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"এখন ছিম কাৰ্ডে আপোনাৰ সেৱাসমূহ সক্ৰিয় কৰিছে আৰু আপোনাৰ ফ\'নটোৰ ৰ\'মিং সক্ষমতাসমূহো আপডে’ট কৰিছে।"</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"কেইবাটাও কল ইতিমধ্যে সক্ৰিয় হৈ আছে। নতুন কল এটা কৰাৰ আগেয়ে অনুগ্ৰহ কৰি সেইবোৰ একেলগ কৰক বা সমাপ্ত কৰক।"</string>
@@ -916,6 +915,12 @@
<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-az/strings.xml b/res/values-az/strings.xml
index 20ae6f5..12310bc 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Keçərlik"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi zəngi"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi zəng"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Açmaq üçün yenidən tıklayın"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Mesaj dekod edilən zaman xəta oldu."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM kart xidmətinizi aktivləşdirdi və telefonunuzun rominq imkanlarını güncəlləşdi."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Burada həddindən çox aktiv zəng var. Yeni birini yerləşdirmək üçün mövcud zəngləri sonlandırın və ya birləşdirin."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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 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 c173f2d..347c832 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 da isključite mobilne podatke?"</string>
+ <string name="data_usage_disable_mobile" msgid="5669109209055988308">"Želite li 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>
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Pristupačnost"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"WiFi poziv od"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"WiFi poziv"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Dodirnite ponovo da biste otvorili"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Došlo je do greške pri dekodiranju poruke."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM kartica je aktivirala uslugu i ažurirala funkcije rominga na telefonu."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Ima previše aktivnih poziva. Završite ili objedinite postojeće pozive pre nego što uputite novi."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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 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 db4d214..d13be56 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Дакраніцеся яшчэ раз, каб адкрыць"</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>
@@ -916,6 +915,9 @@
<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 fa5aa28..9877b9a 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Докоснете отново, за да отворите"</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>
@@ -916,6 +915,12 @@
<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-bn/strings.xml b/res/values-bn/strings.xml
index 6d536ce..fd8cbaa 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -674,7 +674,6 @@
<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">"ওয়াই-ফাই কল"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"খোলার জন্য আবার আলতো চাপুন"</string>
<string name="message_decode_error" msgid="1061856591500290887">"বার্তাটি ডিকোড করার সময় একটি ত্রুটি ঘটেছে৷"</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"একটি সিম কার্ড আপনার পরিষেবা সক্রিয় করেছে এবং আপনার ফোনের রোমিং ক্ষমতা আপডেট করা হয়েছে৷"</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"অনেকগুলি কল সক্রিয় রয়েছে। অনুগ্রহ করে একটি নতুন কল করার আগে বিদ্যমান কলগুলি কেটে দিন বা এটিকে সেই কলগুলিতে অন্তর্ভুক্ত করুন।"</string>
@@ -916,6 +915,12 @@
<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 ff69b85..910cc33 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Pristupačnost"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"WiFi poziv od"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"WiFi poziv"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Dodirnite ponovo da otvorite"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Došlo je do greške prilikom dekodiranja poruke."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM kartica je aktivirala vašu uslugu i ažurirala mogućnosti rominga za telefon."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Previše aktivnih poziva. Prekinite ili spojite postojeće pozive prije upućivanja novog poziva."</string>
@@ -916,6 +915,9 @@
<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 97684cd..4d0b99c 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accessibilitat"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Trucada per Wi-Fi de"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Trucada per Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Torna a tocar per obrir"</string>
<string name="message_decode_error" msgid="1061856591500290887">"S\'ha produït un error en descodificar el missatge."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Una targeta SIM ha activat el servei, i s\'ha actualitzat la funció d\'itinerància del telèfon."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Hi ha massa trucades actives. Finalitza\'n alguna o combina-les abans de fer-ne una de nova."</string>
@@ -916,6 +915,9 @@
<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 e3a4113..2c22e5a 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Přístupnost"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Hovor přes Wi-Fi:"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Volání přes Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Akci provedete opětovným klepnutím"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Při dekódování zprávy došlo k chybě."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM karta aktivovala vaši službu a byly aktualizovány roamingové možnosti telefonu."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Máte příliš mnoho aktivních hovorů. Ukončete nebo spojte stávající hovory, než zahájíte nový."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 6e39691..412c4ac 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Hjælpefunktioner"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi-opkald fra"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi-opkald"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tryk igen for at åbne"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Der opstod en fejl under afkodning af beskeden."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Et SIM-kort har aktiveret din tjeneste og opdateret telefonens roamingmuligheder."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Der er for mange aktive opkald. Afslut et opkald, eller flet eksisterende opkald, inden du foretager et nyt."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 06372be..057e380 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">"Sprachanruf wird nicht unterstützt."</string>
+ <string name="not_voice_capable" msgid="2819996734252084253">"Audioanruf 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>
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Bedienungshilfen"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"WLAN-Anruf von"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"WLAN-Anruf"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Zum Öffnen erneut tippen"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Beim Entschlüsseln der Nachricht ist ein Fehler aufgetreten."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Eine SIM-Karte hat deinen Dienst aktiviert und die Roamingfunktionen deines Smartphones aktualisiert."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Zu viele aktive Anrufe. Beende aktive Anrufe oder führe sie zusammen, bevor du einen neuen Anruf tätigst."</string>
@@ -883,7 +882,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 Sprachanruf:"</string>
+ <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status für Audioanruf:"</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>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 fd57b8e..73c0536 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Πατήστε ξανά για άνοιγμα"</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>
@@ -916,6 +915,12 @@
<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-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index b8af3fc..cede509 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accessibility"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi call from"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi call"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tap again to open"</string>
<string name="message_decode_error" msgid="1061856591500290887">"There was an error while decoding the message."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"A SIM card has activated your service and updated your phone\'s roaming capabilities."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"There are too many active calls. Please end or merge existing calls before placing a new one."</string>
@@ -916,6 +915,9 @@
<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 4140080..6e5e368 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accessibility"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi call from"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi call"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tap again to open"</string>
<string name="message_decode_error" msgid="1061856591500290887">"There was an error while decoding the message."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"A SIM card has activated your service and updated your phone\'s roaming capabilities."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"There are too many active calls. Please end or merge existing calls before placing a new one."</string>
@@ -916,6 +915,9 @@
<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 b8af3fc..cede509 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accessibility"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi call from"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi call"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tap again to open"</string>
<string name="message_decode_error" msgid="1061856591500290887">"There was an error while decoding the message."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"A SIM card has activated your service and updated your phone\'s roaming capabilities."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"There are too many active calls. Please end or merge existing calls before placing a new one."</string>
@@ -916,6 +915,9 @@
<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 b8af3fc..cede509 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accessibility"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi call from"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi call"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tap again to open"</string>
<string name="message_decode_error" msgid="1061856591500290887">"There was an error while decoding the message."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"A SIM card has activated your service and updated your phone\'s roaming capabilities."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"There are too many active calls. Please end or merge existing calls before placing a new one."</string>
@@ -916,6 +915,9 @@
<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 feca079..09d28cf 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accessibility"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi call from"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi call"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tap again to open"</string>
<string name="message_decode_error" msgid="1061856591500290887">"There was an error while decoding the message."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"A SIM card has activated your service and updated your phone\'s roaming capabilities."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"There are too many active calls. Please end or merge existing calls before placing a new one."</string>
@@ -916,6 +915,9 @@
<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 2e6577e..882900c 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 hay respuesta"</string>
+ <string name="messageCFNRy" msgid="7644434155765359009">"Número cuando no contesta"</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>
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accesibilidad"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Llamada con Wi-Fi de"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Llamada por Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Presionar de nuevo para abrir"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Se produjo un error al decodificar el mensaje."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Una tarjeta SIM activó tu servicio y actualizó las capacidades de roaming del teléfono."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Hay demasiadas llamadas activas. Finaliza o combina las llamadas existentes antes de realizar una llamada nueva."</string>
@@ -916,6 +915,9 @@
<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 6b103d3..df63e03 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -482,7 +482,7 @@
<string name="simContacts_emptyLoading" msgid="4989040293858675483">"Leyendo desde tarjeta SIM…"</string>
<string name="simContacts_empty" msgid="1135632055473689521">"No hay ningún contacto en la tarjeta SIM."</string>
<string name="simContacts_title" msgid="2714029230160136647">"Seleccionar contactos para importar"</string>
- <string name="simContacts_airplaneMode" msgid="4654884030631503808">"Desactiva el modo Avión para importar contactos de la tarjeta SIM."</string>
+ <string name="simContacts_airplaneMode" msgid="4654884030631503808">"Desactiva el modo avión para importar contactos de la tarjeta SIM."</string>
<string name="enable_pin" msgid="967674051730845376">"Habilitar/Inhabilitar PIN de tarjeta SIM"</string>
<string name="change_pin" msgid="3657869530942905790">"Cambiar PIN de tarjeta SIM"</string>
<string name="enter_pin_text" msgid="3182311451978663356">"PIN de la tarjeta SIM:"</string>
@@ -534,9 +534,9 @@
<string name="notification_voicemail_no_vm_number" msgid="3423686009815186750">"Número del buzón de voz desconocido"</string>
<string name="notification_network_selection_title" msgid="255595526707809121">"Sin servicio"</string>
<string name="notification_network_selection_text" msgid="553288408722427659">"La red seleccionada (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) no está disponible"</string>
- <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Activa la red móvil o desactiva el modo Avión o el modo de ahorro de batería para hacer una llamada."</string>
- <string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Desactiva el modo Avión parra hacer llamadas."</string>
- <string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Desactiva el modo Avión o conéctate a una red inalámbrica para hacer llamadas."</string>
+ <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Activa la red móvil o desactiva el modo avión o el modo de ahorro de batería para hacer una llamada."</string>
+ <string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Desactiva el modo avión parra hacer llamadas."</string>
+ <string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Desactiva el modo avión o conéctate a una red inalámbrica para hacer llamadas."</string>
<string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"El teléfono está demasiado caliente"</b>\n\n"No se ha podido completar esta llamada. Vuelve a intentarlo cuando el teléfono se enfríe.\n\nNo obstante, puedes hacer llamadas de emergencia."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Sal del modo de devolución de llamada de emergencia para hacer otro tipo de llamada."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"No se ha podido conectar a la red"</string>
@@ -565,7 +565,7 @@
<string name="emergency_call_shortcut_hint" msgid="1290485125107779500">"Tocar de nuevo para llamar al <xliff:g id="EMERGENCY_NUMBER">%s</xliff:g>"</string>
<string name="emergency_enable_radio_dialog_message" msgid="1695305158151408629">"Activando señal móvil…"</string>
<string name="emergency_enable_radio_dialog_retry" msgid="4329131876852608587">"Sin servicio. Reintentado…"</string>
- <string name="radio_off_during_emergency_call" msgid="8011154134040481609">"Durante una llamada de emergencia no se puede entrar en el modo Avión."</string>
+ <string name="radio_off_during_emergency_call" msgid="8011154134040481609">"Durante una llamada de emergencia no se puede entrar en el modo avión."</string>
<string name="dial_emergency_error" msgid="825822413209026039">"No se puede establecer la llamada. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> no es un número de emergencia."</string>
<string name="dial_emergency_empty_error" msgid="2785803395047793634">"No se puede establecer la llamada. Marca un número de emergencia."</string>
<string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"No se pueden hacer llamadas de emergencia"</string>
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accesibilidad"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Llamada por Wi-Fi de"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Llamada Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Toca de nuevo para abrir"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Se ha producido un error al decodificar el mensaje."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Una tarjeta SIM ha activado tu servicio y actualizado la función de roaming del teléfono."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Hay demasiadas llamadas activas. Finaliza o combina las llamadas que tienes antes de iniciar otra."</string>
@@ -711,7 +710,7 @@
<string name="mobile_data_activate_button" msgid="1139792516354374612">"AÑADIR DATOS"</string>
<string name="mobile_data_activate_cancel_button" msgid="3530174817572005860">"CANCELAR"</string>
<string name="clh_card_title_call_ended_txt" msgid="5977978317527299698">"Llamada finalizada"</string>
- <string name="clh_callFailed_powerOff_txt" msgid="8279934912560765361">"Está activado el modo Avión"</string>
+ <string name="clh_callFailed_powerOff_txt" msgid="8279934912560765361">"Está activado el modo avión"</string>
<string name="clh_callFailed_simError_txt" msgid="5128538525762326413">"No se puede acceder a la tarjeta SIM"</string>
<string name="clh_incall_error_out_of_service_txt" msgid="2736010617446749869">"Red móvil no disponible"</string>
<string name="clh_callFailed_unassigned_number_txt" msgid="141967660286695682">"No se ha podido conectar con el número de teléfono al que estás llamando. Código de error 1."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 89fde3b..b899dad 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Juurdepääsetavus"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"WiFi-kõne:"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"WiFi-kõne"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Avamiseks puudutage uuesti"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Sõnumi dekodeerimisel ilmnes viga."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM-kaart aktiveeris teenuse ja värskendas telefoni rändlusvõimeid."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Liiga palju aktiivseid kõnesid. Enne uue kõne tegemist lõpetage mõni olemasolev kõne või ühendage mitu kõnet omavahel."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 8c1bbc0..8cd89f6 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -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 bideodeira aldatu da"</string>
+ <string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"SS eskaera bideo-deira 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>
@@ -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 bideodeiak"</string>
+ <string name="video_calling_settings_title" msgid="342829454913266078">"Operadorearen bideo-deiak"</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 bideodeiak abian direnean"</string>
+ <string name="tty_mode_not_allowed_video_call" msgid="6551976083652752815">"Ezin da aldatu TTY modua bideo-deiak 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>
@@ -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">"Bideodeia"</string>
+ <string name="onscreenVideoCallText" msgid="1743992456126258698">"Bideo-deia"</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 bideodeiekin."</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="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 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_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_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>
@@ -674,14 +674,13 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Erabilerraztasuna"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi bidezko deia:"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi deia"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Irekitzeko, sakatu berriro"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Errore bat gertatu mezua deskodetzean."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM txartel batek zerbitzua aktibatu du eta telefonoaren ibiltaritza-gaitasunak eguneratu ditu."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Dei gehiegi daude aktibo. Amaitu edo bateratu abian diren deiak beste bat egin aurretik."</string>
<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">"Bideodeia amaitu egin da 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_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>
@@ -827,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">"Bideodeiak aktibatuta"</string>
+ <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Bideo-deiak 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>
@@ -846,7 +845,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>\nBideodeiak: <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>\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="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>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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 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 f850336..f5e9968 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"دوباره ضربه بزنید تا باز شود"</string>
<string name="message_decode_error" msgid="1061856591500290887">"هنگام رمزگشایی پیام، خطایی روی داد."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"یک سیمکارت سرویس شما را فعال کرده است و قابلیتهای فراگردی تلفنتان را بهروز کرده است."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"تعداد زیادی تماس فعال وجود دارد. قبل از برقراری تماس جدید، لطفاً به تماسهای موجود پایان دهید یا آنها را ادغام کنید."</string>
@@ -916,6 +915,9 @@
<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 7eaa56e..1321189 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Esteettömyys"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi-puhelu henkilöltä"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi-puhelu"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Avaa koskettamalla uudelleen."</string>
<string name="message_decode_error" msgid="1061856591500290887">"Virhe purettaessa viestiä."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM-kortti on aktivoinut palvelusi ja päivittänyt puhelimesi roaming-toiminnot."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Aktiivisia puheluja on liian monta. Lopeta puheluita tai yhdistä niitä ennen uuden puhelun aloittamista."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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-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 68087dd..405c9a3 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accessibilité"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Appel Wi-Fi de"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Appel Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Touchez à nouveau pour ouvrir"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Une erreur s\'est produite lors du décodage du message."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Une carte SIM a activé votre service et mis à jour les fonctionnalités d\'itinérance de votre téléphone."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Il y a trop d\'appels actifs. Veuillez mettre fin aux appels existants ou les fusionner avant d\'en passer un nouveau."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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 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 0cc6604..084f5ad 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accessibilité"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Appel Wi-Fi de"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Appel Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Appuyez à nouveau pour ouvrir."</string>
<string name="message_decode_error" msgid="1061856591500290887">"Une erreur s\'est produite lors du décodage du message."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Votre service a été activé et les fonctionnalités d\'itinérance de votre téléphone ont été mises à jour via une carte SIM."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Il y a trop d\'appels actifs. Pour passer un autre appel, vous devez mettre fin aux appels existants ou fusionner ces derniers."</string>
@@ -916,6 +915,12 @@
<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 db347cd..cb8a3b1 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accesibilidade"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Chamada por wifi de"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Chamada wifi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Toca de novo para abrir"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Produciuse un erro durante a descodificación da mensaxe."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"A tarxeta SIM activou o teu servizo e actualizou as funcións de itinerancia do teléfono."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Hai moitas chamadas activas. Finaliza as chamadas existentes ou combínaas antes de facer unha nova."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 7e9e7e6..81b1a35 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"ખોલવા માટે ફરીથી ટૅપ કરો"</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>
@@ -916,6 +915,12 @@
<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-hi/strings.xml b/res/values-hi/strings.xml
index 56c0334..49dd7cd 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"सुलभता"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"इससे वाई-फ़ाई कॉल"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"वाई-फ़ाई कॉल"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"खोलने के लिए फिर से टैप करें"</string>
<string name="message_decode_error" msgid="1061856591500290887">"संदेश डीकोड करते समय कोई गड़बड़ी हुई थी."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"सिम कार्ड द्वारा आपकी सेवा को सक्रिय किया गया है और आपके फ़ोन की रोमिंग क्षमताओं को अपडेट किया गया है."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"बहुत ज़्यादा कॉल सक्रिय हैं. नया कॉल करने से पहले कृपया मौजूदा कॉल खत्म करें या उन्हें मिला दें."</string>
@@ -916,6 +915,12 @@
<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-hr/strings.xml b/res/values-hr/strings.xml
index bc64a99..ccb2757 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Pristupačnost"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi poziv s broja"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi poziv"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Dodirnite opet za otvaranje"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Došlo je do pogreške prilikom dekodiranja poruke."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM kartica aktivirala je vašu uslugu i ažurirala mogućnosti telefona za roaming."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Postoji previše aktivnih poziva. Prekinite ili spojite postojeće pozive prije uspostavljanja novog poziva."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 52e4288..51c66e4 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Kisegítő lehetőségek"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi-hívás tőle:"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi-hívás"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Koppintson rá ismét a megnyitáshoz"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Hiba történt az üzenet dekódolása közben."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Egy SIM kártya aktiválta a szolgáltatást, valamint frissítette a telefon barangolási képességeit."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Túl sok aktív hívás van. Új hívás indítása előtt fejezzen be vagy vonjon össze meglévő hívásokat."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 90dcdf1..a54f7e3 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>
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Կրկին հպեք՝ բացելու համար"</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>
@@ -916,6 +915,12 @@
<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-in/strings.xml b/res/values-in/strings.xml
index dcec511..869a0f1 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -674,7 +674,6 @@
<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="emergency_action_launch_hint" msgid="2762016865340891314">"Ketuk lagi untuk membuka"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Terjadi kesalahan 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>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 aed35e5..fa901bc 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Aðgengi"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi símtal frá"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi símtal"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Ýttu aftur til að opna"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Villa kom upp við að afkóða skeytið."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM-kort hefur virkjað þjónustuna þína og uppfært reikigetu símans."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Of mörg símtöl eru virk. Ljúktu eða sameinaðu fyrirliggjandi símtöl áður en þú hringir nýtt."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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-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 ae7fce8..da85868 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -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">"Pompieri"</string>
+ <string name="fire_type_description" msgid="6565200468934914930">"Vigili del fuoco"</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>
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accessibilità"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Chiamata Wi-Fi da"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Chiamata Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tocca di nuovo per aprire"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Si è verificato un errore durante la decodifica del messaggio."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Una scheda SIM ha attivato il tuo servizio e ha aggiornato le funzionalità di roaming del telefono."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Ci sono troppe chiamate attive. Termina o unisci le chiamate esistenti prima di effettuarne una nuova."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 ab509bf..3626c66 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"יש להקיש שוב כדי לפתוח"</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>
@@ -916,6 +915,9 @@
<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 89cf0fc..84c6041 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"開くにはもう一度タップしてください"</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>
@@ -916,6 +915,12 @@
<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-ka/strings.xml b/res/values-ka/strings.xml
index 8f84a7f..407092a 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"გასახსნელად, შეეხეთ ხელახლა"</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>
@@ -916,6 +915,12 @@
<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-kk/strings.xml b/res/values-kk/strings.xml
index 6693aad..4c01c18 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Ашу үшін қайта түртіңіз"</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>
@@ -916,6 +915,12 @@
<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-km/strings.xml b/res/values-km/strings.xml
index b457a14..3b80253 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"ប៉ះម្ដងទៀតដើម្បីបើក"</string>
<string name="message_decode_error" msgid="1061856591500290887">"មានកំហុសខណៈពេលឌិកូដសារ។"</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"ស៊ីមកាតបានធ្វើឲ្យសេវាកម្មរបស់អ្នកសកម្ម និងបានធ្វើបច្ចុប្បន្នភាពសមត្ថភាពរ៉ូមីងសម្រាប់ទូរស័ព្ទរបស់អ្នក។"</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"មានការហៅដែលសកម្មច្រើនពេក។ សូមបញ្ចប់ ឬដាក់បញ្ចូលគ្នាការហៅដែលមានស្រាប់មុនពេលដាក់ការហៅថ្មី។"</string>
@@ -916,6 +915,12 @@
<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-kn/strings.xml b/res/values-kn/strings.xml
index ad6fc4e..255f322 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>
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"ಪ್ರವೇಶಿಸುವಿಕೆ"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"ಅವರಿಂದ ವೈ-ಫೈ ಕರೆ"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"ವೈ-ಫೈ ಕರೆ"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"ತೆರೆಯಲು ಮತ್ತೆ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
<string name="message_decode_error" msgid="1061856591500290887">"ಸಂದೇಶವನ್ನು ಡೀಕೋಡ್ ಮಾಡುವಾಗ ದೋಷವುಂಟಾಗಿದೆ."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"ನಿಮ್ಮ ಸೇವೆಯನ್ನು ಸಿಮ್ ಕಾರ್ಡ್ ಸಕ್ರಿಯಗೊಳಿಸಿದೆ ಮತ್ತು ನಿಮ್ಮ ಫೋನ್ನ ರೋಮಿಂಗ್ ಸಾಮರ್ಥ್ಯವನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಲಾಗಿದೆ."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"ಹಲವಾರು ಸಕ್ರಿಯ ಕರೆಗಳು. ಹೊಸ ಕರೆ ಮಾಡುವ ಮೊದಲು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕರೆಗಳನ್ನು ಅಂತ್ಯಗೊಳಿಸಿ ಅಥವಾ ವಿಲೀನಗೊಳಿಸಿ."</string>
@@ -685,7 +684,7 @@
<string name="callFailed_emergency_call_over_wfc_not_available" msgid="5944309590693432042">"ಈ ಸ್ಥಳದಲ್ಲಿ ವೈ-ಫೈ ಕರೆ ಮಾಡುವಿಕೆ ಮೂಲಕ ತುರ್ತು ಕರೆಗಳು ಲಭ್ಯವಿರುವುದಿಲ್ಲ."</string>
<string name="callFailed_wfc_service_not_available_in_this_location" msgid="3624536608369524988">"ಈ ಸ್ಥಳದಲ್ಲಿ ವೈ-ಫೈ ಕರೆಮಾಡುವಿಕೆ ಲಭ್ಯವಿಲ್ಲ."</string>
<string name="change_pin_title" msgid="3564254326626797321">"ಧ್ವನಿಮೇಲ್ ಪಿನ್ ಬದಲಾಯಿಸಿ"</string>
- <string name="change_pin_continue_label" msgid="5177011752453506371">"ಮುಂದುವರಿಸಿ"</string>
+ <string name="change_pin_continue_label" msgid="5177011752453506371">"ಮುಂದುವರಿಸು"</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">"ನಿಮ್ಮ ಹಳೆಯ ಪಿನ್ ಅನ್ನು ದೃಢೀಕರಿಸಿ"</string>
@@ -916,6 +915,12 @@
<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-ko/strings.xml b/res/values-ko/strings.xml
index 5e5a3df..628b6e8 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"다시 탭하여 열기"</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>
@@ -916,6 +915,12 @@
<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-ky/strings.xml b/res/values-ky/strings.xml
index 038fef9..851b8e9 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -170,7 +170,7 @@
<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>
+ <string name="vm_change_pin_error_system_error" msgid="9116483527909681791">"PIN код өзгөртүлгөн жок"</string>
<string name="vvm_unsupported_message_format" msgid="4206402558577739713">"Колдоого алынбаган билдирүү, угуу үчүн <xliff:g id="NUMBER">%s</xliff:g> чалыңыз."</string>
<string name="network_settings_title" msgid="7560807107123171541">"Мобилдик тармак"</string>
<string name="label_available" msgid="1316084116670821258">"Жеткиликтүү тармактар"</string>
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Ачуу үчүн кайра таптап коюңуз"</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>
@@ -916,6 +915,9 @@
<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 2662394..79d8899 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"ແຕະອີກຄັ້ງເພື່ອເປີດ"</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>
@@ -916,6 +915,9 @@
<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 16eef88..2d2955b 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Pritaikymas neįgaliesiems"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"„Wi-Fi“ skambutis nuo"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"„Wi-Fi“ skambutis"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Palieskite dar kartą, kad atidarytumėte"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Iškoduojant pranešimą įvyko klaida."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM kortelė suaktyvino paslaugą ir atnaujino telefono tarptinklinio duomenų ryšio funkcijas."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Yra per daug aktyvių skambučių. Prieš skambindami kitu numeriu, užbaikite ar sujunkite esamus skambučius."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 d207672..1e64090 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Pieejamība"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi zvans no:"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi zvans"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Pieskarieties vēlreiz, lai atvērtu."</string>
<string name="message_decode_error" msgid="1061856591500290887">"Atšifrējot ziņojumu, radās kļūda."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM kartē ir aktivizēts jūsu pakalpojums un atjauninātas tālruņa viesabonēšanas iespējas."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Ir pārāk daudz aktīvu zvanu. Pirms jauna zvana veikšanas pabeidziet vai apvienojiet esošos zvanus."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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 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 bbbbb61..6e85bc2 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Допрете повторно за да се отвори"</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>
@@ -916,6 +915,12 @@
<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-ml/strings.xml b/res/values-ml/strings.xml
index 29d7d12..4533385 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -674,7 +674,6 @@
<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">"വൈഫൈ കോൾ"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"തുറക്കുന്നതിന് വീണ്ടും ടാപ്പുചെയ്യുക"</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>
@@ -916,6 +915,9 @@
<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 f5d6037..c5878a8 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Нээхийн тулд дахин дарна уу"</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>
@@ -916,6 +915,12 @@
<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-mr/strings.xml b/res/values-mr/strings.xml
index e222a45..be23808 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>
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"प्रवेशयोग्यता"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"कडून वाय-फाय कॉल"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"वाय-फाय कॉल"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"उघडण्यासाठी पुन्हा टॅप करा"</string>
<string name="message_decode_error" msgid="1061856591500290887">"मेसेज डीकोड करताना एक एरर आली."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"सिम कार्डने तुमची सेवा सक्रिय केली आहे आणि आपल्या फोनच्या रोमिंग क्षमता अपडेट केल्या."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"बरेच सक्रिय कॉल आहेत. कृपया नवीन एक कॉल करण्यापूर्वी विद्यमान कॉल समाप्त करा किंवा विलीन करा."</string>
@@ -802,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>
@@ -916,6 +915,12 @@
<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-ms/strings.xml b/res/values-ms/strings.xml
index 2287bda..0f7ad22 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Kebolehaksesan"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Panggilan Wi-Fi daripada"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Panggilan Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Ketik lagi untuk membuka"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Terdapat ralat semasa menyahkodkan mesej."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Kad SIM telah mengaktifkan perkhidmatan anda dan mengemas kini keupayaan perayauan telefon anda."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Terlalu banyak panggilan aktif. Sila tamatkan atau gabungkan panggilan yang sedia ada sebelum membuat panggilan baharu."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 2fa7e47..1c2c7d0 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>
@@ -674,7 +674,6 @@
<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">"ဝိုင်ဖိုင်ခေါ်ဆိုမှု"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"ဖွင့်ရန် ထပ်တို့ပါ"</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>
@@ -916,6 +915,12 @@
<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-nb/strings.xml b/res/values-nb/strings.xml
index dcb4902..06ec444 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -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 på nytt 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 igjen 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>
@@ -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 på nytt"</string>
+ <string name="ota_try_again" msgid="6914781945599998550">"Prøv igjen"</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>
@@ -674,7 +674,6 @@
<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="emergency_action_launch_hint" msgid="2762016865340891314">"Trykk på nytt for å åpne"</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>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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-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 6c82f80..f8d32b6 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"खोल्न पुनः ट्याप गर्नुहोस्"</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>
@@ -916,6 +915,12 @@
<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-nl/strings.xml b/res/values-nl/strings.xml
index 84862ef..8d16145 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Toegankelijkheid"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wifi-gesprek van"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wifi-gesprek"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tik nogmaals om te openen"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Er is een fout opgetreden tijdens het decoderen van het bericht."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Een simkaart heeft je service geactiveerd en heeft de roaming-mogelijkheden van je telefoon geüpdatet."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Er zijn te veel actieve gesprekken. Beëindig bestaande gesprekken of voeg ze samen voordat je een nieuw gesprek start."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 85e9755..57790ab 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"ଆକ୍ସେସିବିଲିଟୀ"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"ଠାରୁ ୱାଇ-ଫାଇ କଲ୍ କରନ୍ତୁ"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"ୱାଇ-ଫାଇ କଲ୍"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"ଖୋଲିବା ପାଇଁ ପୁଣି ଟାପ୍ କରନ୍ତୁ"</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>
@@ -916,6 +915,9 @@
<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 dc35b3d..d537e32 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"ਖੋਲ੍ਹਣ ਲਈ ਦੁਬਾਰਾ ਟੈਪ ਕਰੋ"</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>
@@ -916,6 +915,12 @@
<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-pl/strings.xml b/res/values-pl/strings.xml
index 73b32ed..932d8d8 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Ułatwienia dostępu"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Połączenie przez Wi-Fi od:"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Połączenie przez Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Dotknij ponownie, by otworzyć"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Podczas dekodowania wiadomości wystąpił błąd."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Karta SIM aktywowała usługę i zaktualizowała funkcje roamingowe telefonu."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Masz za dużo aktywnych połączeń. Scal lub zakończ istniejące połączenia, aby nawiązać nowe."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 39c18ac..77ba9eb 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Acessibilidade"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Chamada a partir da rede Wi-Fi de"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Chamada Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Toque novamente para abrir"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Ocorreu um erro durante a descodificação da mensagem."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Um cartão SIM ativou o seu serviço e atualizou as capacidades de roaming do seu telemóvel."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Existem demasiadas chamadas ativas. Termine ou intercale as chamadas existentes antes de efetuar uma nova chamada."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 2752eda..0f31a4c 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -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 ligação"</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_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">"Ligação não compatível"</string>
+ <string name="not_voice_capable" msgid="2819996734252084253">"Chamada de voz 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>
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Acessibilidade"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Chamada via Wi-Fi de"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Chamada por Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Toque novamente para abrir"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Ocorreu um erro ao decodificar a mensagem."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Um chip ativou seu serviço e atualizou os recursos de roaming do smartphone."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Há muitas chamadas ativas. Finalize ou mescle as chamadas existentes antes de fazer uma nova."</string>
@@ -816,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 ligação 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 chamada 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>
@@ -883,7 +882,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 ligação:"</string>
+ <string name="radio_info_call_status_label" msgid="7693575431923095487">"Status da chamada de voz:"</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>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 88755b6..a3de854 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accesibilitate"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Apel prin Wi-Fi de la"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Apel prin Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Atingeți din nou pentru a deschide"</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>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"Semnalul Bluetooth este slab. Încercați să folosiți 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>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index f6636b1..7353539 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -670,11 +670,10 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Чтобы открыть, нажмите ещё раз"</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>
@@ -916,6 +915,12 @@
<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 b61e5f9..422c881 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"විවෘත කිරීමට නැවත තට්ටු කරන්න"</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>
@@ -916,6 +915,12 @@
<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-sk/strings.xml b/res/values-sk/strings.xml
index 58c11e8..361b7bc 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Dostupnosť"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Hovor cez Wi‑Fi od:"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Hovor cez Wi‑Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Otvoríte opätovným klepnutím"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Pri dekódovaní správy sa vyskytla chyba"</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM karta aktivovala vašu službu a aktualizovala možnosti roamingu vášho telefónu"</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Prebieha príliš veľa aktívnych hovorov. Skôr ako uskutočníte nový hovor, ukončite existujúce hovory alebo ich zlúčte."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 8a663fe..89ca6d5 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Funkcije za ljudi s posebnimi potrebami"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Klic prek Wi-Fi-ja osebe"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Klic Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Znova se dotaknite, če želite odpreti"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Napaka pri dekodiranju sporočila."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Kartica SIM je aktivirala vašo storitev in posodobila zmožnosti telefona za gostovanje."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Preveč aktivnih klicev. Preden začnete nov klic, končajte ali združite obstoječe klice."</string>
@@ -916,6 +915,9 @@
<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 405f7c7..5ee0022 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">"Para"</string>
+ <string name="ota_next" msgid="2041016619313475914">"Përpara"</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>
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Qasshmëria"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Telefonatë Wi-Fi nga"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Telefonatë me Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Trokit përsëri për ta hapur"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Ndodhi një gabim gjatë dekodimit të mesazhit."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Një kartë SIM ka aktivizuar shërbimin tënd dhe ka përditësuar aftësitë e roaming-ut të telefonit tënd."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Ka shumë thirrje aktive. Përfundo ose të bashko thirrjet ekzistuese para kryerjes së një thirrjeje të re."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 003a6be..4ae2696 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>
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Приступачност"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"WiFi позив од"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"WiFi позив"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Додирните поново да бисте отворили"</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>
@@ -916,6 +915,12 @@
<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-sv/strings.xml b/res/values-sv/strings.xml
index adb8482..f391892 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Tillgänglighet"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"wifi-samtal från"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"wifi-samtal"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tryck igen för att öppna"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Ett fel inträffade när meddelandet avkodades."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Ett SIM-kort har använts för att aktivera tjänsten och uppdatera roamingfunktionerna i mobilen."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Det finns för många aktiva samtal. Avsluta eller slå samman pågående samtal innan du ringer ett nytt."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 b38ebe3..7f44dc6 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Zana za ufikivu"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Simu ya Wi-Fi kutoka kwa"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Simu ya Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Gusa tena ili ufungue"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Hitilafu imetokea wakati wa usimbuaji wa ujumbe."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM kadi yako imeanzisha huduma yako na kusasisha uwezo wa simu yako wa kutumia mitandao mingine."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Kuna simu nyingi mno zinazoendelea. Tafadhali kata au uunganishe simu zinazoendelea kabla hujapiga nyingine."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 4fc4b3f..0a2530e 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"அணுகல் தன்மை"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"வைஃபை அழைப்பு:"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"வைஃபை அழைப்பு"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"திறக்க, மீண்டும் தட்டவும்"</string>
<string name="message_decode_error" msgid="1061856591500290887">"செய்தியைக் குறிவிலக்கும்போது பிழை ஏற்பட்டது."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"ஏற்கனவே சிம் கார்டைப் பயன்படுத்தி சேவை இயக்கப்பட்டது மற்றும் மொபைலின் ரோமிங் செயல்திறன்கள் புதுப்பிக்கப்பட்டன."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"மிகவும் அதிக அளவிலான அழைப்புகள் செயலில் உள்ளன. புதிய அழைப்பை மேற்கொள்ளும் முன், ஏற்கனவேயுள்ள அழைப்புகளைத் துண்டிக்கவும் அல்லது ஒன்றாகப் பிணைக்கவும்."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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-te/strings.xml b/res/values-te/strings.xml
index 546c977..e43c763 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -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>
@@ -618,7 +618,7 @@
<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>
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"తెరవడానికి మళ్లీ నొక్కండి"</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>
@@ -916,6 +915,12 @@
<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-th/strings.xml b/res/values-th/strings.xml
index 601d72a..a3751e4 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"แตะอีกครั้งเพื่อเปิด"</string>
<string name="message_decode_error" msgid="1061856591500290887">"เกิดข้อผิดพลาดขณะถอดรหัสข้อความ"</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"ซิมการ์ดได้เปิดใช้บริการของคุณและอัปเดตความสามารถในการโรมมิ่งของโทรศัพท์"</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"มีสายที่ใช้งานอยู่มากเกินไป โปรดวางสายหรือรวมสายที่มีก่อนโทรออกครั้งใหม่"</string>
@@ -916,6 +915,12 @@
<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-tl/strings.xml b/res/values-tl/strings.xml
index 7c6e68a..bc45a93 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Pagiging Accessible"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Tawag sa Wi-Fi mula kay"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Tawag sa Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"I-tap muli upang buksan"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Nagkaroon ng error habang dine-decode ang mensahe."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Na-activate ng isang SIM card ang iyong serbisyo at na-update ang mga kakayahang roaming ng iyong telepono."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Masyadong maraming aktibong tawag. Mangyaring tapusin o pagsamahin ang mga umiiral na tawag bago gumawa ng bago."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 9e86f5d..3cc917b 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Erişilebilirlik"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Gelen çağrı (kablosuz):"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Kablosuz çağrı"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Açmak için tekrar dokunun"</string>
<string name="message_decode_error" msgid="1061856591500290887">"İletinin kodu çözülürken bir hata oluştu."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Bir SIM kart, hizmetinizi etkinleştirdi ve telefonunuzun dolaşım özelliklerini güncelledi."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Etkin çağrıların sayısı çok fazla. Yeni bir çağrı yapmadan önce lütfen mevcut çağrıları sonlandırın veya birleştirin."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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 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 4f5a170..e1902e9 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) -->
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Торкніться знову, щоб відкрити"</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>
@@ -916,6 +915,12 @@
<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-ur/strings.xml b/res/values-ur/strings.xml
index 60ca85a..2998f87 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"کھولنے کیلئے دوبارہ تھپتھپائیں"</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>
@@ -916,6 +915,12 @@
<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-uz/strings.xml b/res/values-uz/strings.xml
index 1f87dc4..d761cfe 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Maxsus imkoniyatlar"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi orqali qo‘ng‘iroq:"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi qo‘ng‘irog‘i"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Ochish uchun yana bosing"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Xabarni kodsizlashda xatolik yuz berdi."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Telefoningizda rouming xizmati sozlangan va SIM karta faollashtirilgan."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Hozir bir nechta chaqiruv amalda. Boshqa abonentga telefon qilishdan avval amaldagi chaqiruvlarni tugating yoki ularni konferens-aloqaga birlashtiring."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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 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 027c3b6..45275e0 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Hỗ trợ tiếp cận"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Cuộc gọi qua Wi-Fi từ"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Cuộc gọi qua Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Nhấn lại để mở"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Đã xảy ra lỗi khi giải mã tin nhắn."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Thẻ SIM đã kích hoạt dịch vụ của bạn và đã cập nhật chức năng chuyển vùng của điện thoại."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Có quá nhiều cuộc gọi hiện hoạt. Vui lòng kết thúc hoặc hợp nhất các cuộc gọi hiện có trước khi thực hiện cuộc gọi mới."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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 73c5141..d460333 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"无障碍功能"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"WLAN 通话来电:"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"WLAN 通话"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"再次点按即可打开"</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>
@@ -916,6 +915,12 @@
<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-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index b457a80..581464f 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"再次輕按即可開啟"</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>
@@ -916,6 +915,12 @@
<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-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 4818d63..fa7d168 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -674,7 +674,6 @@
<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>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"再次輕觸即可開啟"</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>
@@ -916,6 +915,12 @@
<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-zu/strings.xml b/res/values-zu/strings.xml
index 79965ad..77371ec 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -674,7 +674,6 @@
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Ukufinyeleleka"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Ikholi ye-Wi-Fi kusukela ku-"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Ikholi ye-Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Thepha futhi ukuze uvule"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Kube nephutha ngenkathi kukhishwa ikhodi kumlayezo."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Ikhadi le-SIM lenze kwasebenza isevisi yakho laphinde labuyekeza amakhono okuzula wefoni yakho."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Kunamakholi amaningi asebenzayo. Sicela uphelise noma uhlanganise amakholi akhona ngaphambi kokubeka eyodwa."</string>
@@ -916,6 +915,12 @@
<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>
+ <!-- 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">"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/config.xml b/res/values/config.xml
index 9f8cc81..19252c0 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -156,7 +156,7 @@
<!-- Package name for the mobile network settings [DO NOT TRANSLATE] -->
<string name="mobile_network_settings_package" translatable="false">com.android.settings</string>
<!-- Class name for the mobile network settings activity [DO NOT TRANSLATE] -->
- <string name="mobile_network_settings_class" translatable="false">com.android.settings.network.telephony.MobileNetworkActivity</string>
+ <string name="mobile_network_settings_class" translatable="false">com.android.settings.Settings$MobileNetworkActivity</string>
<!-- CDMA activation goes through HFA -->
<!-- DEPRECATED: Use CarrierConfigManager#KEY_USE_HFA_FOR_PROVISIONING_BOOL -->
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 25d28de..38a86f9 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1601,9 +1601,6 @@
<!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
<string name="wifi_calling_settings_key">button_wifi_calling_settings_key</string>
- <!-- Hint appearing below a selected action on the emergency dialer telling user to tap again to execute the action [CHAR LIMIT=NONE] -->
- <string name="emergency_action_launch_hint">Tap again to open</string>
-
<!-- Strings for IMAP -->
<!-- String used in place of a message that could not be properly decoded (e.g. bad base64
@@ -2007,6 +2004,9 @@
<!-- UI debug setting: Enable/Disable DSDS [CHAR LIMIT=none] -->
<string name="dsds_dialog_cancel">Cancel</string>
+ <!-- Setting Removable esim as default. Only shown in diagnostic screen, so precise translation is not needed -->
+ <string name="removable_esim_string">Set Removable eSIM as Default</string>
+
<!-- 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>
diff --git a/src/com/android/phone/CallBarringEditPreference.java b/src/com/android/phone/CallBarringEditPreference.java
index 757600e..34c017c 100644
--- a/src/com/android/phone/CallBarringEditPreference.java
+++ b/src/com/android/phone/CallBarringEditPreference.java
@@ -101,9 +101,8 @@
}
void init(TimeConsumingPreferenceListener listener, boolean skipReading, Phone phone) {
- if (DBG) {
- Log.d(LOG_TAG, "init: phone id = " + phone.getPhoneId());
- }
+ Log.d(LOG_TAG, "init: phone id = " + phone.getPhoneId());
+
mPhone = phone;
mTcpListener = listener;
@@ -184,10 +183,9 @@
@Override
protected void onDialogClosed(boolean positiveResult) {
super.onDialogClosed(positiveResult);
- if (DBG) {
- Log.d(LOG_TAG, "onDialogClosed: mButtonClicked=" + mButtonClicked + ", positiveResult="
- + positiveResult);
- }
+ Log.d(LOG_TAG, "onDialogClosed: mButtonClicked=" + mButtonClicked + ", positiveResult="
+ + positiveResult);
+
if (mButtonClicked != DialogInterface.BUTTON_NEGATIVE) {
String password = getEditText().getText().toString();
@@ -199,9 +197,8 @@
return;
}
- if (DBG) {
- Log.d(LOG_TAG, "onDialogClosed: password=" + password);
- }
+ Log.d(LOG_TAG, "onDialogClosed");
+
// Send set call barring message to RIL layer.
mPhone.setCallBarring(mFacility, !mIsActivated, password,
mHandler.obtainMessage(MyHandler.MESSAGE_SET_CALL_BARRING),
@@ -214,9 +211,7 @@
void handleCallBarringResult(boolean status) {
mIsActivated = status;
- if (DBG) {
- Log.d(LOG_TAG, "handleCallBarringResult: mIsActivated=" + mIsActivated);
- }
+ Log.i(LOG_TAG, "handleCallBarringResult: mIsActivated=" + mIsActivated);
}
private static int getServiceClassForCallBarring(Phone phone) {
@@ -277,9 +272,7 @@
return;
}
- if (DBG) {
- Log.d(LOG_TAG, "handleGetCallBarringResponse: done");
- }
+ Log.i(LOG_TAG, "handleGetCallBarringResponse: done");
AsyncResult ar = (AsyncResult) msg.obj;
@@ -291,9 +284,7 @@
// Unsuccessful query for call barring.
if (ar.exception != null) {
- if (DBG) {
- Log.d(LOG_TAG, "handleGetCallBarringResponse: ar.exception=" + ar.exception);
- }
+ Log.i(LOG_TAG, "handleGetCallBarringResponse: ar.exception=" + ar.exception);
pref.mTcpListener.onException(pref, (CommandException) ar.exception);
} else {
if (ar.userObj instanceof Throwable) {
@@ -301,18 +292,14 @@
}
int[] ints = (int[]) ar.result;
if (ints.length == 0) {
- if (DBG) {
- Log.d(LOG_TAG, "handleGetCallBarringResponse: ar.result.length==0");
- }
+ Log.i(LOG_TAG, "handleGetCallBarringResponse: ar.result.length==0");
pref.setEnabled(false);
pref.mTcpListener.onError(pref, RESPONSE_ERROR);
} else {
pref.handleCallBarringResult(ints[0] != 0);
- if (DBG) {
- Log.d(LOG_TAG,
- "handleGetCallBarringResponse: CB state successfully queried: "
- + ints[0]);
- }
+ Log.i(LOG_TAG,
+ "handleGetCallBarringResponse: CB state successfully queried: "
+ + ints[0]);
}
}
// Update call barring status.
@@ -329,13 +316,9 @@
AsyncResult ar = (AsyncResult) msg.obj;
if (ar.exception != null || ar.userObj instanceof Throwable) {
- if (DBG) {
- Log.d(LOG_TAG, "handleSetCallBarringResponse: ar.exception=" + ar.exception);
- }
+ Log.i(LOG_TAG, "handleSetCallBarringResponse: ar.exception=" + ar.exception);
}
- if (DBG) {
- Log.d(LOG_TAG, "handleSetCallBarringResponse: re-get call barring option");
- }
+ Log.i(LOG_TAG, "handleSetCallBarringResponse: re-get call barring option");
pref.mPhone.getCallBarring(
pref.mFacility,
"",
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index e64c81c..7bff98a 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -225,7 +225,7 @@
new Dialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- Intent intent = new Intent(Intent.ACTION_MAIN);
+ Intent intent = new Intent();
ComponentName mobileNetworkSettingsComponent = new ComponentName(
getString(R.string.mobile_network_settings_package),
getString(R.string.mobile_network_settings_class));
diff --git a/src/com/android/phone/CallWaitingSwitchPreference.java b/src/com/android/phone/CallWaitingSwitchPreference.java
index 609488c..00407f3 100644
--- a/src/com/android/phone/CallWaitingSwitchPreference.java
+++ b/src/com/android/phone/CallWaitingSwitchPreference.java
@@ -1,6 +1,7 @@
package com.android.phone;
import static com.android.phone.TimeConsumingPreferenceActivity.EXCEPTION_ERROR;
+import static com.android.phone.TimeConsumingPreferenceActivity.FDN_CHECK_FAILURE;
import static com.android.phone.TimeConsumingPreferenceActivity.RESPONSE_ERROR;
import android.content.Context;
@@ -128,17 +129,27 @@
}
}
- if (mIsDuringUpdateProcess && (
- mUpdateStatus == TelephonyManager.CALL_WAITING_STATUS_NOT_SUPPORTED
- || mUpdateStatus
- == TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR)) {
- Log.d(LOG_TAG, "handleSetCallWaitingResponse: Exception");
- if (mTcpListener != null) {
- mTcpListener.onError(CallWaitingSwitchPreference.this, EXCEPTION_ERROR);
+ if (mQueryStatus != TelephonyManager.CALL_WAITING_STATUS_ENABLED
+ && mQueryStatus != TelephonyManager.CALL_WAITING_STATUS_DISABLED
+ && mQueryStatus != TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR) {
+ Log.d(LOG_TAG, "handleGetCallWaitingResponse: Exception:" + mQueryStatus);
+ int error = EXCEPTION_ERROR;
+ switch (mQueryStatus) {
+ case TelephonyManager.CALL_WAITING_STATUS_FDN_CHECK_FAILURE:
+ error = FDN_CHECK_FAILURE;
+ break;
+ default:
+ error = EXCEPTION_ERROR;
+ break;
}
- } else if (mQueryStatus == TelephonyManager.CALL_WAITING_STATUS_NOT_SUPPORTED
- || mQueryStatus == TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR) {
- Log.d(LOG_TAG, "handleGetCallWaitingResponse: Exception");
+ if (mTcpListener != null) {
+ mTcpListener.onError(CallWaitingSwitchPreference.this, error);
+ }
+ } else if (mQueryStatus == TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR
+ || (mIsDuringUpdateProcess && (
+ mUpdateStatus != TelephonyManager.CALL_WAITING_STATUS_ENABLED
+ && mUpdateStatus != TelephonyManager.CALL_WAITING_STATUS_DISABLED))) {
+ Log.d(LOG_TAG, "handleSetCallWaitingResponse: Exception");
if (mTcpListener != null) {
mTcpListener.onError(CallWaitingSwitchPreference.this, RESPONSE_ERROR);
}
diff --git a/src/com/android/phone/EmergencyActionGroup.java b/src/com/android/phone/EmergencyActionGroup.java
deleted file mode 100644
index 4961a69..0000000
--- a/src/com/android/phone/EmergencyActionGroup.java
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
- * Copyright (C) 2015 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 android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.annotation.Nullable;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.ResolveInfo;
-import android.telephony.TelephonyManager;
-import android.text.Layout;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.util.TypedValue;
-import android.view.Gravity;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.ViewAnimationUtils;
-import android.view.ViewGroup;
-import android.view.accessibility.AccessibilityManager;
-import android.view.animation.AnimationUtils;
-import android.view.animation.Interpolator;
-import android.widget.Button;
-import android.widget.FrameLayout;
-import android.widget.TextView;
-
-import java.util.List;
-
-public class EmergencyActionGroup extends FrameLayout implements View.OnClickListener {
-
- private static final long HIDE_DELAY = 3000;
- private static final int RIPPLE_DURATION = 600;
- private static final long RIPPLE_PAUSE = 1000;
-
- private final Interpolator mFastOutLinearInInterpolator;
-
- private ViewGroup mSelectedContainer;
- private TextView mSelectedLabel;
- private View mRippleView;
- private View mLaunchHint;
-
- private View mLastRevealed;
-
- private MotionEvent mPendingTouchEvent;
-
- private boolean mHiding;
-
- public EmergencyActionGroup(Context context, @Nullable AttributeSet attrs) {
- super(context, attrs);
- mFastOutLinearInInterpolator = AnimationUtils.loadInterpolator(context,
- android.R.interpolator.fast_out_linear_in);
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- }
-
- @Override
- protected void onFinishInflate() {
- super.onFinishInflate();
-
- mSelectedContainer = (ViewGroup) findViewById(R.id.selected_container);
- mSelectedContainer.setOnClickListener(this);
- mSelectedLabel = (TextView) findViewById(R.id.selected_label);
- mSelectedLabel.addOnLayoutChangeListener(mLayoutChangeListener);
- mRippleView = findViewById(R.id.ripple_view);
- mLaunchHint = findViewById(R.id.launch_hint);
- mLaunchHint.addOnLayoutChangeListener(mLayoutChangeListener);
- }
-
- @Override
- protected void onWindowVisibilityChanged(int visibility) {
- super.onWindowVisibilityChanged(visibility);
- if (visibility == View.VISIBLE) {
- setupAssistActions();
- }
- }
-
- /**
- * Called by the activity before a touch event is dispatched to the view hierarchy.
- */
- public void onPreTouchEvent(MotionEvent event) {
- mPendingTouchEvent = event;
- }
-
- @Override
- public boolean dispatchTouchEvent(MotionEvent event) {
- boolean handled = super.dispatchTouchEvent(event);
- if (mPendingTouchEvent == event && handled) {
- mPendingTouchEvent = null;
- }
- return handled;
- }
-
- /**
- * Called by the activity after a touch event is dispatched to the view hierarchy.
- */
- public void onPostTouchEvent(MotionEvent event) {
- // Hide the confirmation button if a touch event was delivered to the activity but not to
- // this view.
- if (mPendingTouchEvent != null) {
- hideTheButton();
- }
- mPendingTouchEvent = null;
- }
-
- private void setupAssistActions() {
- int[] buttonIds = new int[] {R.id.action1, R.id.action2, R.id.action3};
-
- List<ResolveInfo> infos;
-
- if (TelephonyManager.EMERGENCY_ASSISTANCE_ENABLED) {
- infos = EmergencyAssistanceHelper.resolveAssistPackageAndQueryActivities(getContext());
- } else {
- infos = null;
- }
-
- for (int i = 0; i < 3; i++) {
- Button button = (Button) findViewById(buttonIds[i]);
- boolean visible = false;
-
- button.setOnClickListener(this);
-
- if (infos != null && infos.size() > i && infos.get(i) != null) {
- ResolveInfo info = infos.get(i);
- ComponentName name = EmergencyAssistanceHelper.getComponentName(info);
-
- button.setTag(R.id.tag_intent,
- new Intent(EmergencyAssistanceHelper.getIntentAction())
- .setComponent(name));
- button.setText(info.loadLabel(getContext().getPackageManager()));
- visible = true;
- }
-
- button.setVisibility(visible ? View.VISIBLE : View.GONE);
- }
- }
-
- @Override
- public void onClick(View v) {
- Intent intent = (Intent) v.getTag(R.id.tag_intent);
-
- if (v.getId() == R.id.action1 || v.getId() == R.id.action2 || v.getId() == R.id.action3) {
- AccessibilityManager accessibilityMgr =
- (AccessibilityManager) getContext().getSystemService(
- Context.ACCESSIBILITY_SERVICE);
- if (accessibilityMgr.isTouchExplorationEnabled()) {
- getContext().startActivity(intent);
- } else {
- revealTheButton(v);
- }
- } else if (v.getId() == R.id.selected_container) {
- if (!mHiding) {
- getContext().startActivity(intent);
- }
- }
- }
-
- private void revealTheButton(View v) {
- CharSequence buttonText = ((Button) v).getText();
- mSelectedLabel.setText(buttonText);
- mSelectedLabel.setAutoSizeTextTypeWithDefaults(TextView.AUTO_SIZE_TEXT_TYPE_UNIFORM);
-
- // In order to trigger OnLayoutChangeListener for reset default minimum font size.
- mSelectedLabel.requestLayout();
- mLaunchHint.requestLayout();
-
- mSelectedContainer.setVisibility(VISIBLE);
- int centerX = v.getLeft() + v.getWidth() / 2;
- int centerY = v.getTop() + v.getHeight() / 2;
- Animator reveal = ViewAnimationUtils.createCircularReveal(
- mSelectedContainer,
- centerX,
- centerY,
- 0,
- Math.max(centerX, mSelectedContainer.getWidth() - centerX)
- + Math.max(centerY, mSelectedContainer.getHeight() - centerY));
- reveal.start();
-
- animateHintText(mSelectedLabel, v, reveal);
- animateHintText(mLaunchHint, v, reveal);
-
- mSelectedContainer.setTag(R.id.tag_intent, v.getTag(R.id.tag_intent));
- mLastRevealed = v;
- postDelayed(mHideRunnable, HIDE_DELAY);
- postDelayed(mRippleRunnable, RIPPLE_PAUSE / 2);
-
- // Transfer focus from the originally clicked button to the expanded button.
- mSelectedContainer.requestFocus();
- }
-
-
- private final OnLayoutChangeListener mLayoutChangeListener = new OnLayoutChangeListener() {
- @Override
- public void onLayoutChange(View v, int left, int top, int right, int bottom,
- int oldLeft,
- int oldTop, int oldRight, int oldBottom) {
- decreaseAutoSizeMinTextSize(v);
- }
- };
-
- /**
- * Prevent some localization string will be truncated if there is low resolution screen
- * or font size and display size of setting is largest.
- */
- private void decreaseAutoSizeMinTextSize(View selectedView) {
- if (selectedView != null) {
- if (selectedView instanceof TextView) {
- TextView textView = (TextView) selectedView;
- textView.setEllipsize(TextUtils.TruncateAt.END);
-
- // The textView layout will be null due to it's property is hiding when
- // initialization.
- Layout layout = textView.getLayout();
- if (layout != null) {
- if (layout.getEllipsisCount(textView.getMaxLines() - 1) > 0) {
- textView.setAutoSizeTextTypeUniformWithConfiguration(
- 8,
- textView.getAutoSizeMaxTextSize(),
- textView.getAutoSizeStepGranularity(),
- TypedValue.COMPLEX_UNIT_SP);
- textView.setGravity(Gravity.CENTER);
- }
- }
- }
- }
- }
-
- private void animateHintText(View selectedView, View v, Animator reveal) {
- selectedView.setTranslationX(
- (v.getLeft() + v.getWidth() / 2 - mSelectedContainer.getWidth() / 2) / 5);
- selectedView.animate()
- .setDuration(reveal.getDuration() / 3)
- .setStartDelay(reveal.getDuration() / 5)
- .translationX(0)
- .setInterpolator(mFastOutLinearInInterpolator)
- .start();
- }
-
- private void hideTheButton() {
- if (mHiding || mSelectedContainer.getVisibility() != VISIBLE) {
- return;
- }
-
- mHiding = true;
-
- removeCallbacks(mHideRunnable);
-
- View v = mLastRevealed;
- int centerX = v.getLeft() + v.getWidth() / 2;
- int centerY = v.getTop() + v.getHeight() / 2;
- Animator reveal = ViewAnimationUtils.createCircularReveal(
- mSelectedContainer,
- centerX,
- centerY,
- Math.max(centerX, mSelectedContainer.getWidth() - centerX)
- + Math.max(centerY, mSelectedContainer.getHeight() - centerY),
- 0);
- reveal.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- mSelectedContainer.setVisibility(INVISIBLE);
- removeCallbacks(mRippleRunnable);
- mHiding = false;
- }
- });
- reveal.start();
-
- // Transfer focus back to the originally clicked button.
- if (mSelectedContainer.isFocused()) {
- v.requestFocus();
- }
- }
-
- private void startRipple() {
- final View ripple = mRippleView;
- ripple.animate().cancel();
- ripple.setVisibility(VISIBLE);
- Animator reveal = ViewAnimationUtils.createCircularReveal(
- ripple,
- ripple.getLeft() + ripple.getWidth() / 2,
- ripple.getTop() + ripple.getHeight() / 2,
- 0,
- ripple.getWidth() / 2);
- reveal.setDuration(RIPPLE_DURATION);
- reveal.start();
-
- ripple.setAlpha(0);
- ripple.animate().alpha(1).setDuration(RIPPLE_DURATION / 2)
- .withEndAction(new Runnable() {
- @Override
- public void run() {
- ripple.animate().alpha(0).setDuration(RIPPLE_DURATION / 2)
- .withEndAction(new Runnable() {
- @Override
- public void run() {
- ripple.setVisibility(INVISIBLE);
- postDelayed(mRippleRunnable, RIPPLE_PAUSE);
- }
- }).start();
- }
- }).start();
- }
-
- private final Runnable mHideRunnable = new Runnable() {
- @Override
- public void run() {
- if (!isAttachedToWindow()) return;
- hideTheButton();
- }
- };
-
- private final Runnable mRippleRunnable = new Runnable() {
- @Override
- public void run() {
- if (!isAttachedToWindow()) return;
- startRipple();
- }
- };
-}
diff --git a/src/com/android/phone/EmergencyDialer.java b/src/com/android/phone/EmergencyDialer.java
index 42bfb24..9b7a43e 100644
--- a/src/com/android/phone/EmergencyDialer.java
+++ b/src/com/android/phone/EmergencyDialer.java
@@ -173,9 +173,8 @@
// determines if we want to playback local DTMF tones.
private boolean mDTMFToneEnabled;
- private EmergencyActionGroup mEmergencyActionGroup;
-
- private EmergencyInfoGroup mEmergencyInfoGroup;
+ private EmergencyInfoGroup mEmergencyInfoInDialpad;
+ private EmergencyInfoGroup mEmergencyInfoInShortcut;
// close activity when screen turns off
private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@@ -357,9 +356,13 @@
intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
registerReceiver(mBroadcastReceiver, intentFilter);
- mEmergencyActionGroup = (EmergencyActionGroup) findViewById(R.id.emergency_action_group);
+ mEmergencyInfoInDialpad = findViewById(R.id.emergency_dialer)
+ .findViewById(R.id.emergency_info_button);
- mEmergencyInfoGroup = (EmergencyInfoGroup) findViewById(R.id.emergency_info_button);
+ mEmergencyInfoInShortcut = findViewById(R.id.emergency_dialer_shortcuts)
+ .findViewById(R.id.emergency_info_button);
+
+ setupEmergencyDialpadViews();
if (mShortcutViewConfig.isEnabled()) {
setupEmergencyShortcutsView();
@@ -968,6 +971,10 @@
}
}
+ private void setupEmergencyDialpadViews() {
+ mEmergencyInfoInDialpad.setOnConfirmClickListener(this);
+ }
+
private void setupEmergencyShortcutsView() {
mEmergencyShortcutView = findViewById(R.id.emergency_dialer_shortcuts);
mDialpadView = findViewById(R.id.emergency_dialer);
@@ -978,7 +985,7 @@
final View dialpadButton = findViewById(R.id.floating_action_button_dialpad);
dialpadButton.setOnClickListener(this);
- mEmergencyInfoGroup.setOnConfirmClickListener(this);
+ mEmergencyInfoInShortcut.setOnConfirmClickListener(this);
mEmergencyShortcutButtonList = new ArrayList<>();
setupEmergencyCallShortcutButton();
@@ -1076,8 +1083,8 @@
* Called by the activity before a touch event is dispatched to the view hierarchy.
*/
private void onPreTouchEvent(MotionEvent event) {
- mEmergencyActionGroup.onPreTouchEvent(event);
- mEmergencyInfoGroup.onPreTouchEvent(event);
+ mEmergencyInfoInDialpad.onPreTouchEvent(event);
+ mEmergencyInfoInShortcut.onPreTouchEvent(event);
if (mEmergencyShortcutButtonList != null) {
for (EmergencyShortcutButton button : mEmergencyShortcutButtonList) {
@@ -1090,8 +1097,8 @@
* Called by the activity after a touch event is dispatched to the view hierarchy.
*/
private void onPostTouchEvent(MotionEvent event) {
- mEmergencyActionGroup.onPostTouchEvent(event);
- mEmergencyInfoGroup.onPostTouchEvent(event);
+ mEmergencyInfoInDialpad.onPostTouchEvent(event);
+ mEmergencyInfoInShortcut.onPostTouchEvent(event);
if (mEmergencyShortcutButtonList != null) {
for (EmergencyShortcutButton button : mEmergencyShortcutButtonList) {
diff --git a/src/com/android/phone/ImsProvisioningController.java b/src/com/android/phone/ImsProvisioningController.java
index d78e565..1de2dcd 100644
--- a/src/com/android/phone/ImsProvisioningController.java
+++ b/src/com/android/phone/ImsProvisioningController.java
@@ -16,6 +16,8 @@
package com.android.phone;
+import static android.telephony.ims.ImsRcsManager.CAPABILITY_TYPE_OPTIONS_UCE;
+import static android.telephony.ims.ImsRcsManager.CAPABILITY_TYPE_PRESENCE_UCE;
import static android.telephony.ims.ProvisioningManager.KEY_EAB_PROVISIONING_STATUS;
import static android.telephony.ims.ProvisioningManager.KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE;
import static android.telephony.ims.ProvisioningManager.KEY_VOLTE_PROVISIONING_STATUS;
@@ -29,8 +31,6 @@
import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_UT;
import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO;
import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE;
-import static android.telephony.ims.feature.RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_OPTIONS_UCE;
-import static android.telephony.ims.feature.RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE;
import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM;
import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN;
import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_LTE;
@@ -202,7 +202,7 @@
/**
* This class contains the provisioning status to notify changes.
* {{@link MmTelCapabilities.MmTelCapability} for MMTel services}
- * {{@link RcsImsCapabilities.RcsImsCapabilityFlag} for RCS services}
+ * {{@link android.telephony.ims.ImsRcsManager.RcsImsCapabilityFlag} for RCS services}
* {{@link ImsRegistrationImplBase.ImsRegistrationTech} for Registration tech}
*/
private static final class FeatureProvisioningData {
@@ -496,8 +496,15 @@
int value = ImsProvisioningLoader.STATUS_NOT_SET;
// updating KEY_VOLTE_PROVISIONING_STATUS
- required = isProvisioningRequired(subId, CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE,
- /*isMmTel*/true);
+ try {
+ required = isImsProvisioningRequiredForCapability(subId, CAPABILITY_TYPE_VOICE,
+ REGISTRATION_TECH_LTE);
+ } catch (IllegalArgumentException e) {
+ logw("setInitialProvisioningKeys: KEY_VOLTE_PROVISIONING_STATUS failed for"
+ + " subId=" + subId + ", exception: " + e.getMessage());
+ return;
+ }
+
log(LOG_PREFIX, mSlotId,
"setInitialProvisioningKeys provisioning required(voice, lte) " + required);
if (required) {
@@ -511,8 +518,15 @@
}
// updating KEY_VT_PROVISIONING_STATUS
- required = isProvisioningRequired(subId, CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_LTE,
- /*isMmTel*/true);
+ try {
+ required = isImsProvisioningRequiredForCapability(subId, CAPABILITY_TYPE_VIDEO,
+ REGISTRATION_TECH_LTE);
+ } catch (IllegalArgumentException e) {
+ logw("setInitialProvisioningKeys: KEY_VT_PROVISIONING_STATUS failed for"
+ + " subId=" + subId + ", exception: " + e.getMessage());
+ return;
+ }
+
log(LOG_PREFIX, mSlotId,
"setInitialProvisioningKeys provisioning required(video, lte) " + required);
if (required) {
@@ -526,8 +540,15 @@
}
// updating KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE
- required = isProvisioningRequired(subId, CAPABILITY_TYPE_VOICE,
- REGISTRATION_TECH_IWLAN, /*isMmTel*/true);
+ try {
+ required = isImsProvisioningRequiredForCapability(subId, CAPABILITY_TYPE_VOICE,
+ REGISTRATION_TECH_IWLAN);
+ } catch (IllegalArgumentException e) {
+ logw("setInitialProvisioningKeys: KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE failed"
+ + " for subId=" + subId + ", exception: " + e.getMessage());
+ return;
+ }
+
log(LOG_PREFIX, mSlotId,
"setInitialProvisioningKeys provisioning required(voice, iwlan) " + required);
if (required) {
@@ -681,7 +702,14 @@
// Assume that all radio techs have the same provisioning value
int tech = REGISTRATION_TECH_LTE;
- required = isProvisioningRequired(subId, capability, tech, /*isMmTel*/false);
+ try {
+ required = isRcsProvisioningRequiredForCapability(subId, capability, tech);
+ } catch (IllegalArgumentException e) {
+ logw("setInitialProvisioningKeys: KEY_EAB_PROVISIONING_STATUS failed for"
+ + " subId=" + subId + ", exception: " + e.getMessage());
+ return;
+ }
+
if (required) {
value = mImsProvisioningLoader.getProvisioningStatus(subId, FEATURE_RCS,
capability, tech);
@@ -889,8 +917,27 @@
throw new IllegalArgumentException("Registration technology '" + tech + "' is invalid");
}
+ // check new carrier config first KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
boolean retVal = isProvisioningRequired(subId, capability, tech, /*isMmTel*/true);
+ // if that returns false, check deprecated carrier config
+ // KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL, KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL
+ if (!retVal && (capability == CAPABILITY_TYPE_VOICE
+ || capability == CAPABILITY_TYPE_VIDEO
+ || capability == CAPABILITY_TYPE_UT)) {
+ String key = CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL;
+ if (capability == CAPABILITY_TYPE_UT) {
+ key = CarrierConfigManager.KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL;
+ }
+
+ PersistableBundle imsCarrierConfigs = mCarrierConfigManager.getConfigForSubId(subId);
+ if (imsCarrierConfigs != null) {
+ retVal = imsCarrierConfigs.getBoolean(key);
+ } else {
+ retVal = CarrierConfigManager.getDefaultConfig().getBoolean(key);
+ }
+ }
+
log("isImsProvisioningRequiredForCapability capability " + capability
+ " tech " + tech + " return value " + retVal);
@@ -920,8 +967,22 @@
throw new IllegalArgumentException("Registration technology '" + tech + "' is invalid");
}
+ // check new carrier config first KEY_RCS_REQUIRES_PROVISIONING_BUNDLE
boolean retVal = isProvisioningRequired(subId, capability, tech, /*isMmTel*/false);
+ // if that returns false, check deprecated carrier config
+ // KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL
+ if (!retVal) {
+ PersistableBundle imsCarrierConfigs = mCarrierConfigManager.getConfigForSubId(subId);
+ if (imsCarrierConfigs != null) {
+ retVal = imsCarrierConfigs.getBoolean(
+ CarrierConfigManager.KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL);
+ } else {
+ retVal = CarrierConfigManager.getDefaultConfig().getBoolean(
+ CarrierConfigManager.KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL);
+ }
+ }
+
log("isRcsProvisioningRequiredForCapability capability " + capability
+ " tech " + tech + " return value " + retVal);
@@ -1212,8 +1273,7 @@
return false;
}
- @VisibleForTesting
- protected int[] getTechsFromCarrierConfig(int subId, int capability, boolean isMmTel) {
+ private int[] getTechsFromCarrierConfig(int subId, int capability, boolean isMmTel) {
String featureKey;
String capabilityKey;
if (isMmTel) {
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index 426c473..99e73ff 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -32,7 +32,6 @@
import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.AsyncResult;
-import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.PersistableBundle;
@@ -47,6 +46,7 @@
import android.telephony.ServiceState;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyCallback;
import android.telephony.TelephonyLocalConnection;
import android.telephony.TelephonyManager;
import android.telephony.data.ApnSetting;
@@ -60,6 +60,7 @@
import com.android.internal.telephony.IccCardConstants;
import com.android.internal.telephony.MmiCode;
import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConfigurationManager;
import com.android.internal.telephony.PhoneConstants;
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.SettingsObserver;
@@ -124,6 +125,7 @@
private static final int EVENT_DATA_ROAMING_SETTINGS_CHANGED = 15;
private static final int EVENT_MOBILE_DATA_SETTINGS_CHANGED = 16;
private static final int EVENT_CARRIER_CONFIG_CHANGED = 17;
+ private static final int EVENT_MULTI_SIM_CONFIG_CHANGED = 18;
// The MMI codes are also used by the InCallScreen.
public static final int MMI_INITIATE = 51;
@@ -208,6 +210,30 @@
private final SettingsObserver mSettingsObserver;
private BinderCallsStats.SettingsObserver mBinderCallsSettingsObserver;
+ // Mapping of phone ID to the associated TelephonyCallback. These should be registered without
+ // fine or coarse location since we only use ServiceState for
+ private PhoneAppCallback[] mTelephonyCallbacks;
+
+ private class PhoneAppCallback extends TelephonyCallback implements
+ TelephonyCallback.ServiceStateListener {
+ private final int mSubId;
+
+ PhoneAppCallback(int subId) {
+ mSubId = subId;
+ }
+
+ @Override
+ public void onServiceStateChanged(ServiceState serviceState) {
+ // Note when registering that we should be registering with INCLUDE_LOCATION_DATA_NONE.
+ // PhoneGlobals only uses the state and roaming status, which does not require location.
+ handleServiceStateChanged(serviceState, mSubId);
+ }
+
+ public int getSubId() {
+ return mSubId;
+ }
+ }
+
private static class EventSimStateChangedBag {
final int mPhoneId;
final String mIccStatus;
@@ -339,10 +365,44 @@
// refresh the message waiting (voicemail) indicator.
refreshMwiIndicator(subId);
phone = getPhone(subId);
- if (phone != null && isSimLocked(phone)) {
- // pass in subType=-1 so handleSimLock can find the actual subType if
- // needed. This is safe as valid values for subType are >= 0
- handleSimLock(-1, phone);
+ if (phone != null) {
+ if (isSimLocked(phone)) {
+ // pass in subType=-1 so handleSimLock can find the actual subType if
+ // needed. This is safe as valid values for subType are >= 0
+ handleSimLock(-1, phone);
+ }
+ TelephonyManager tm = getSystemService(TelephonyManager.class);
+ PhoneAppCallback callback = mTelephonyCallbacks[phone.getPhoneId()];
+ // TODO: We may need to figure out a way to unregister if subId is invalid
+ tm.createForSubscriptionId(callback.getSubId())
+ .unregisterTelephonyCallback(callback);
+ callback = new PhoneAppCallback(subId);
+ tm.createForSubscriptionId(subId).registerTelephonyCallback(
+ TelephonyManager.INCLUDE_LOCATION_DATA_NONE, mHandler::post,
+ callback);
+ mTelephonyCallbacks[phone.getPhoneId()] = callback;
+ }
+ break;
+ case EVENT_MULTI_SIM_CONFIG_CHANGED:
+ int activeModems = (int) ((AsyncResult) msg.obj).result;
+ TelephonyManager tm = getSystemService(TelephonyManager.class);
+ // Unregister all previous callbacks
+ for (int phoneId = 0; phoneId < mTelephonyCallbacks.length; phoneId++) {
+ PhoneAppCallback callback = mTelephonyCallbacks[phoneId];
+ if (callback != null) {
+ tm.createForSubscriptionId(callback.getSubId())
+ .unregisterTelephonyCallback(callback);
+ mTelephonyCallbacks[phoneId] = null;
+ }
+ }
+ // Register callbacks for all active modems
+ for (int phoneId = 0; phoneId < activeModems; phoneId++) {
+ int sub = PhoneFactory.getPhone(phoneId).getSubId();
+ PhoneAppCallback callback = new PhoneAppCallback(sub);
+ tm.createForSubscriptionId(sub).registerTelephonyCallback(
+ TelephonyManager.INCLUDE_LOCATION_DATA_NONE, mHandler::post,
+ callback);
+ mTelephonyCallbacks[phoneId] = callback;
}
break;
}
@@ -363,11 +423,11 @@
// Initialize the shim from frameworks/opt/telephony into packages/services/Telephony.
TelephonyLocalConnection.setInstance(new LocalConnectionImpl(this));
+ TelephonyManager tm = getSystemService(TelephonyManager.class);
// Cache the "voice capable" flag.
// This flag currently comes from a resource (which is
// overrideable on a per-product basis):
- sVoiceCapable = ((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE))
- .isVoiceCapable();
+ sVoiceCapable = tm.isVoiceCapable();
// ...but this might eventually become a PackageManager "system
// feature" instead, in which case we'd do something like:
// sVoiceCapable =
@@ -480,12 +540,24 @@
new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED);
intentFilter.addAction(TelephonyIntents.ACTION_SIM_STATE_CHANGED);
intentFilter.addAction(TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
- intentFilter.addAction(TelephonyIntents.ACTION_SERVICE_STATE_CHANGED);
intentFilter.addAction(TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED);
intentFilter.addAction(TelephonyIntents.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
intentFilter.addAction(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
registerReceiver(mReceiver, intentFilter);
+ PhoneConfigurationManager.registerForMultiSimConfigChange(
+ mHandler, EVENT_MULTI_SIM_CONFIG_CHANGED, null);
+
+ mTelephonyCallbacks = new PhoneAppCallback[tm.getSupportedModemCount()];
+
+ for (Phone phone : PhoneFactory.getPhones()) {
+ int subId = phone.getSubId();
+ PhoneAppCallback callback = new PhoneAppCallback(subId);
+ tm.createForSubscriptionId(subId).registerTelephonyCallback(
+ TelephonyManager.INCLUDE_LOCATION_DATA_NONE, mHandler::post, callback);
+ mTelephonyCallbacks[phone.getPhoneId()] = callback;
+ }
+
mCarrierVvmPackageInstalledReceiver.register(this);
//set the default values for the preferences in the phone.
@@ -731,8 +803,6 @@
String newPhone = intent.getStringExtra(PhoneConstants.PHONE_NAME_KEY);
Log.d(LOG_TAG, "Radio technology switched. Now " + newPhone + " is active.");
initForNewRadioTechnology();
- } else if (action.equals(TelephonyIntents.ACTION_SERVICE_STATE_CHANGED)) {
- handleServiceStateChanged(intent);
} else if (action.equals(TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED)) {
int phoneId = intent.getIntExtra(PhoneConstants.PHONE_KEY, 0);
phoneInEcm = PhoneFactory.getPhone(phoneId);
@@ -782,33 +852,17 @@
}
}
- private void handleServiceStateChanged(Intent intent) {
- /**
- * This used to handle updating EriTextWidgetProvider this routine
- * and and listening for ACTION_SERVICE_STATE_CHANGED intents could
- * be removed. But leaving just in case it might be needed in the near
- * future.
- */
-
+ private void handleServiceStateChanged(ServiceState serviceState, int subId) {
if (VDBG) Log.v(LOG_TAG, "handleServiceStateChanged");
- // If service just returned, start sending out the queued messages
- Bundle extras = intent.getExtras();
- if (extras != null) {
- ServiceState ss = ServiceState.newFromBundle(extras);
- if (ss != null) {
- int state = ss.getState();
- int subId = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY,
- SubscriptionManager.INVALID_SUBSCRIPTION_ID);
- notificationMgr.updateNetworkSelection(state, subId);
+ int state = serviceState.getState();
+ notificationMgr.updateNetworkSelection(state, subId);
- if (VDBG) {
- Log.v(LOG_TAG, "subId=" + subId + ",mDefaultDataSubId="
- + mDefaultDataSubId + ",ss roaming=" + ss.getDataRoaming());
- }
- if (subId == mDefaultDataSubId) {
- updateDataRoamingStatus();
- }
- }
+ if (VDBG) {
+ Log.v(LOG_TAG, "subId=" + subId + ", mDefaultDataSubId="
+ + mDefaultDataSubId + ", ss roaming=" + serviceState.getDataRoaming());
+ }
+ if (subId == mDefaultDataSubId) {
+ updateDataRoamingStatus();
}
}
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 1947d91..66cef64 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -31,9 +31,9 @@
import android.annotation.RequiresPermission;
import android.app.AppOpsManager;
import android.app.PendingIntent;
+import android.app.PropertyInvalidatedCache;
import android.app.compat.CompatChanges;
import android.app.role.RoleManager;
-import android.compat.Compatibility;
import android.compat.annotation.ChangeId;
import android.compat.annotation.EnabledSince;
import android.content.ComponentName;
@@ -72,6 +72,8 @@
import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
+import android.telephony.AccessNetworkConstants;
+import android.telephony.ActivityStatsTechSpecificInfo;
import android.telephony.Annotation.ApnType;
import android.telephony.Annotation.DataActivityType;
import android.telephony.Annotation.ThermalMitigationResult;
@@ -131,8 +133,6 @@
import android.telephony.ims.aidl.IImsRegistrationCallback;
import android.telephony.ims.aidl.IRcsConfigCallback;
import android.telephony.ims.feature.ImsFeature;
-import android.telephony.ims.feature.MmTelFeature;
-import android.telephony.ims.feature.RcsFeature;
import android.telephony.ims.stub.ImsConfigImplBase;
import android.telephony.ims.stub.ImsRegistrationImplBase;
import android.text.TextUtils;
@@ -544,7 +544,7 @@
request = (MainThreadRequest) msg.obj;
final Phone phone = getPhoneFromRequest(request);
Pair<String, ResultReceiver> ussdObject = (Pair) request.argument;
- String ussdRequest = ussdObject.first;
+ String ussdRequest = ussdObject.first;
ResultReceiver wrappedCallback = ussdObject.second;
if (!isUssdApiAllowed(request.subId)) {
@@ -588,15 +588,15 @@
uiccPort = getUiccPortFromRequest(request);
if (uiccPort == null) {
loge("iccTransmitApduLogicalChannel: No UICC");
- request.result = new IccIoResult(0x6F, 0, (byte[])null);
+ request.result = new IccIoResult(0x6F, 0, (byte[]) null);
notifyRequester(request);
} else {
onCompleted = obtainMessage(EVENT_TRANSMIT_APDU_LOGICAL_CHANNEL_DONE,
- request);
+ request);
uiccPort.iccTransmitApduLogicalChannel(
- iccArgument.channel, iccArgument.cla, iccArgument.command,
- iccArgument.p1, iccArgument.p2, iccArgument.p3, iccArgument.data,
- onCompleted);
+ iccArgument.channel, iccArgument.cla, iccArgument.command,
+ iccArgument.p1, iccArgument.p2, iccArgument.p3, iccArgument.data,
+ onCompleted);
}
break;
@@ -606,7 +606,7 @@
if (ar.exception == null && ar.result != null) {
request.result = ar.result;
} else {
- request.result = new IccIoResult(0x6F, 0, (byte[])null);
+ request.result = new IccIoResult(0x6F, 0, (byte[]) null);
if (ar.result == null) {
loge("iccTransmitApduLogicalChannel: Empty response");
} else if (ar.exception instanceof CommandException) {
@@ -625,14 +625,15 @@
uiccPort = getUiccPortFromRequest(request);
if (uiccPort == null) {
loge("iccTransmitApduBasicChannel: No UICC");
- request.result = new IccIoResult(0x6F, 0, (byte[])null);
+ request.result = new IccIoResult(0x6F, 0, (byte[]) null);
notifyRequester(request);
} else {
onCompleted = obtainMessage(EVENT_TRANSMIT_APDU_BASIC_CHANNEL_DONE,
- request);
+ request);
uiccPort.iccTransmitApduBasicChannel(
- iccArgument.cla, iccArgument.command, iccArgument.p1, iccArgument.p2,
- iccArgument.p3, iccArgument.data, onCompleted);
+ iccArgument.cla, iccArgument.command, iccArgument.p1,
+ iccArgument.p2,
+ iccArgument.p3, iccArgument.data, onCompleted);
}
break;
@@ -642,7 +643,7 @@
if (ar.exception == null && ar.result != null) {
request.result = ar.result;
} else {
- request.result = new IccIoResult(0x6F, 0, (byte[])null);
+ request.result = new IccIoResult(0x6F, 0, (byte[]) null);
if (ar.result == null) {
loge("iccTransmitApduBasicChannel: Empty response");
} else if (ar.exception instanceof CommandException) {
@@ -661,7 +662,7 @@
uiccPort = getUiccPortFromRequest(request);
if (uiccPort == null) {
loge("iccExchangeSimIO: No UICC");
- request.result = new IccIoResult(0x6F, 0, (byte[])null);
+ request.result = new IccIoResult(0x6F, 0, (byte[]) null);
notifyRequester(request);
} else {
onCompleted = obtainMessage(EVENT_EXCHANGE_SIM_IO_DONE,
@@ -678,7 +679,7 @@
if (ar.exception == null && ar.result != null) {
request.result = ar.result;
} else {
- request.result = new IccIoResult(0x6f, 0, (byte[])null);
+ request.result = new IccIoResult(0x6f, 0, (byte[]) null);
}
notifyRequester(request);
break;
@@ -688,11 +689,11 @@
uiccPort = getUiccPortFromRequest(request);
if (uiccPort == null) {
loge("sendEnvelopeWithStatus: No UICC");
- request.result = new IccIoResult(0x6F, 0, (byte[])null);
+ request.result = new IccIoResult(0x6F, 0, (byte[]) null);
notifyRequester(request);
} else {
onCompleted = obtainMessage(EVENT_SEND_ENVELOPE_DONE, request);
- uiccPort.sendEnvelopeWithStatus((String)request.argument, onCompleted);
+ uiccPort.sendEnvelopeWithStatus((String) request.argument, onCompleted);
}
break;
@@ -702,7 +703,7 @@
if (ar.exception == null && ar.result != null) {
request.result = ar.result;
} else {
- request.result = new IccIoResult(0x6F, 0, (byte[])null);
+ request.result = new IccIoResult(0x6F, 0, (byte[]) null);
if (ar.result == null) {
loge("sendEnvelopeWithStatus: Empty response");
} else if (ar.exception instanceof CommandException) {
@@ -723,7 +724,7 @@
if (uiccPort == null) {
loge("iccOpenLogicalChannel: No UICC");
request.result = new IccOpenLogicalChannelResponse(-1,
- IccOpenLogicalChannelResponse.STATUS_MISSING_RESOURCE, null);
+ IccOpenLogicalChannelResponse.STATUS_MISSING_RESOURCE, null);
notifyRequester(request);
} else {
onCompleted = obtainMessage(EVENT_OPEN_CHANNEL_DONE, request);
@@ -747,7 +748,7 @@
}
}
openChannelResp = new IccOpenLogicalChannelResponse(channelId,
- IccOpenLogicalChannelResponse.STATUS_NO_ERROR, selectResponse);
+ IccOpenLogicalChannelResponse.STATUS_NO_ERROR, selectResponse);
uiccPort = getUiccPortFromRequest(request);
if (uiccPort == null) {
@@ -769,7 +770,7 @@
int errorCode = IccOpenLogicalChannelResponse.STATUS_UNKNOWN_ERROR;
if (ar.exception instanceof CommandException) {
CommandException.Error error =
- ((CommandException) (ar.exception)).getCommandError();
+ ((CommandException) (ar.exception)).getCommandError();
if (error == CommandException.Error.MISSING_RESOURCE) {
errorCode = IccOpenLogicalChannelResponse.STATUS_MISSING_RESOURCE;
} else if (error == CommandException.Error.NO_SUCH_ELEMENT) {
@@ -777,7 +778,7 @@
}
}
openChannelResp = new IccOpenLogicalChannelResponse(
- IccOpenLogicalChannelResponse.INVALID_CHANNEL, errorCode, null);
+ IccOpenLogicalChannelResponse.INVALID_CHANNEL, errorCode, null);
}
request.result = openChannelResp;
notifyRequester(request);
@@ -788,7 +789,9 @@
uiccPort = getUiccPortFromRequest(request);
if (uiccPort == null) {
loge("iccCloseLogicalChannel: No UICC");
- throw new IllegalArgumentException("iccCloseLogicalChannel: No UICC");
+ request.result = new IllegalArgumentException(
+ "iccCloseLogicalChannel: No UICC");
+ notifyRequester(request);
} else {
onCompleted = obtainMessage(EVENT_CLOSE_CHANNEL_DONE, request);
uiccPort.iccCloseLogicalChannel((Integer) request.argument, onCompleted);
@@ -809,26 +812,22 @@
}
} else {
request.result = false;
+ Exception exception = null;
if (ar.exception instanceof CommandException) {
loge("iccCloseLogicalChannel: CommandException: " + ar.exception);
CommandException.Error error =
((CommandException) (ar.exception)).getCommandError();
- // before this feature is enabled, this API should only return false if
- // the operation fails instead of throwing runtime exception for
- // backward-compatibility.
- if (Compatibility.isChangeEnabled(
- ICC_CLOSE_CHANNEL_EXCEPTION_ON_FAILURE)
- && error == CommandException.Error.INVALID_ARGUMENTS) {
- throw new IllegalArgumentException(
+ if (error == CommandException.Error.INVALID_ARGUMENTS) {
+ // should only throw exceptions from the binder threads.
+ exception = new IllegalArgumentException(
"iccCloseLogicalChannel: invalid argument ");
}
} else {
loge("iccCloseLogicalChannel: Unknown exception");
}
- if (Compatibility.isChangeEnabled(ICC_CLOSE_CHANNEL_EXCEPTION_ON_FAILURE)) {
- throw new IllegalStateException(
- "exception from modem to close iccLogical Channel");
- }
+ request.result = (exception != null) ? exception :
+ new IllegalStateException(
+ "exception from modem to close iccLogical Channel");
}
notifyRequester(request);
break;
@@ -1268,7 +1267,7 @@
ar = (AsyncResult) msg.obj;
request = (MainThreadRequest) ar.userObj;
Consumer<Integer> callback = (Consumer<Integer>) request.argument;
- int callForwardingStatus = TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR;
+ int callWaitingStatus = TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR;
if (ar.exception == null && ar.result != null) {
int[] callForwardResults = (int[]) ar.result;
// Service Class is a bit mask per 3gpp 27.007.
@@ -1276,11 +1275,11 @@
if (callForwardResults.length > 1
&& ((callForwardResults[1]
& CommandsInterface.SERVICE_CLASS_VOICE) > 0)) {
- callForwardingStatus = callForwardResults[0] == 0
+ callWaitingStatus = callForwardResults[0] == 0
? TelephonyManager.CALL_WAITING_STATUS_DISABLED
: TelephonyManager.CALL_WAITING_STATUS_ENABLED;
} else {
- callForwardingStatus = TelephonyManager.CALL_WAITING_STATUS_DISABLED;
+ callWaitingStatus = TelephonyManager.CALL_WAITING_STATUS_DISABLED;
}
} else {
if (ar.result == null) {
@@ -1293,12 +1292,15 @@
CommandException.Error error =
((CommandException) (ar.exception)).getCommandError();
if (error == CommandException.Error.REQUEST_NOT_SUPPORTED) {
- callForwardingStatus =
+ callWaitingStatus =
TelephonyManager.CALL_WAITING_STATUS_NOT_SUPPORTED;
+ } else if (error == CommandException.Error.FDN_CHECK_FAILURE) {
+ callWaitingStatus =
+ TelephonyManager.CALL_WAITING_STATUS_FDN_CHECK_FAILURE;
}
}
}
- callback.accept(callForwardingStatus);
+ callback.accept(callWaitingStatus);
break;
}
@@ -1323,6 +1325,9 @@
((CommandException) (ar.exception)).getCommandError();
if (error == CommandException.Error.REQUEST_NOT_SUPPORTED) {
callback.accept(TelephonyManager.CALL_WAITING_STATUS_NOT_SUPPORTED);
+ } else if (error == CommandException.Error.FDN_CHECK_FAILURE) {
+ callback.accept(
+ TelephonyManager.CALL_WAITING_STATUS_FDN_CHECK_FAILURE);
} else {
callback.accept(TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR);
}
@@ -1408,43 +1413,39 @@
ar = (AsyncResult) msg.obj;
request = (MainThreadRequest) ar.userObj;
ResultReceiver result = (ResultReceiver) request.argument;
-
- ModemActivityInfo ret = null;
int error = 0;
+ if (mLastModemActivityInfo == null) {
+ mLastModemActivitySpecificInfo = new ActivityStatsTechSpecificInfo[1];
+ mLastModemActivitySpecificInfo[0] =
+ new ActivityStatsTechSpecificInfo(
+ 0,
+ 0,
+ new int[ModemActivityInfo.getNumTxPowerLevels()],
+ 0);
+ mLastModemActivityInfo =
+ new ModemActivityInfo(0, 0, 0, mLastModemActivitySpecificInfo);
+ }
+
if (ar.exception == null && ar.result != null) {
// Update the last modem activity info and the result of the request.
ModemActivityInfo info = (ModemActivityInfo) ar.result;
if (isModemActivityInfoValid(info)) {
- int[] mergedTxTimeMs = new int[ModemActivityInfo.getNumTxPowerLevels()];
- int[] txTimeMs = info.getTransmitTimeMillis();
- int[] lastModemTxTimeMs = mLastModemActivityInfo
- .getTransmitTimeMillis();
- for (int i = 0; i < mergedTxTimeMs.length; i++) {
- mergedTxTimeMs[i] = txTimeMs[i] + lastModemTxTimeMs[i];
- }
- mLastModemActivityInfo.setTimestamp(info.getTimestampMillis());
- mLastModemActivityInfo.setSleepTimeMillis(info.getSleepTimeMillis()
- + mLastModemActivityInfo.getSleepTimeMillis());
- mLastModemActivityInfo.setIdleTimeMillis(info.getIdleTimeMillis()
- + mLastModemActivityInfo.getIdleTimeMillis());
- mLastModemActivityInfo.setTransmitTimeMillis(mergedTxTimeMs);
- mLastModemActivityInfo.setReceiveTimeMillis(
- info.getReceiveTimeMillis()
- + mLastModemActivityInfo.getReceiveTimeMillis());
+ mergeModemActivityInfo(info);
}
- ret = new ModemActivityInfo(mLastModemActivityInfo.getTimestampMillis(),
- mLastModemActivityInfo.getSleepTimeMillis(),
- mLastModemActivityInfo.getIdleTimeMillis(),
- mLastModemActivityInfo.getTransmitTimeMillis(),
- mLastModemActivityInfo.getReceiveTimeMillis());
+ mLastModemActivityInfo =
+ new ModemActivityInfo(
+ mLastModemActivityInfo.getTimestampMillis(),
+ mLastModemActivityInfo.getSleepTimeMillis(),
+ mLastModemActivityInfo.getIdleTimeMillis(),
+ mLastModemActivitySpecificInfo);
+
} else {
if (ar.result == null) {
loge("queryModemActivityInfo: Empty response");
error = TelephonyManager.ModemActivityInfoException
.ERROR_INVALID_INFO_RECEIVED;
} else if (ar.exception instanceof CommandException) {
- loge("queryModemActivityInfo: CommandException: " +
- ar.exception);
+ loge("queryModemActivityInfo: CommandException: " + ar.exception);
error = TelephonyManager.ModemActivityInfoException
.ERROR_MODEM_RESPONSE_ERROR;
} else {
@@ -1454,8 +1455,10 @@
}
}
Bundle bundle = new Bundle();
- if (ret != null) {
- bundle.putParcelable(TelephonyManager.MODEM_ACTIVITY_RESULT_KEY, ret);
+ if (mLastModemActivityInfo != null) {
+ bundle.putParcelable(
+ TelephonyManager.MODEM_ACTIVITY_RESULT_KEY,
+ mLastModemActivityInfo);
} else {
bundle.putInt(TelephonyManager.EXCEPTION_RESULT_KEY, error);
}
@@ -2133,7 +2136,8 @@
case CMD_PREPARE_UNATTENDED_REBOOT:
request = (MainThreadRequest) msg.obj;
request.result =
- UiccController.getInstance().getPinStorage().prepareUnattendedReboot();
+ UiccController.getInstance().getPinStorage()
+ .prepareUnattendedReboot(request.workSource);
notifyRequester(request);
break;
@@ -2342,7 +2346,7 @@
mPhoneConfigurationManager = PhoneConfigurationManager.getInstance();
mRadioInterfaceCapabilities = RadioInterfaceCapabilityController.getInstance();
mNotifyUserActivity = new AtomicBoolean(false);
-
+ PropertyInvalidatedCache.invalidateCache(TelephonyManager.CACHE_KEY_PHONE_ACCOUNT_TO_SUBID);
publish();
}
@@ -4644,10 +4648,16 @@
throw new IllegalArgumentException("Invalid Subscription ID: " + subId);
}
- ImsProvisioningController.getInstance()
- .addFeatureProvisioningChangedCallback(subId, callback);
-
- Binder.restoreCallingIdentity(identity);
+ try {
+ ImsProvisioningController controller = ImsProvisioningController.getInstance();
+ if (controller == null) {
+ throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+ "Device does not support IMS");
+ }
+ controller.addFeatureProvisioningChangedCallback(subId, callback);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
@Override
@@ -4661,10 +4671,16 @@
throw new IllegalArgumentException("Invalid Subscription ID: " + subId);
}
- ImsProvisioningController.getInstance()
- .removeFeatureProvisioningChangedCallback(subId, callback);
-
- Binder.restoreCallingIdentity(identity);
+ try {
+ ImsProvisioningController controller = ImsProvisioningController.getInstance();
+ if (controller == null) {
+ loge("unregisterFeatureProvisioningChangedCallback: Device does not support IMS");
+ return;
+ }
+ controller.removeFeatureProvisioningChangedCallback(subId, callback);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
private void checkModifyPhoneStatePermission(int subId, String message) {
@@ -4672,25 +4688,6 @@
message);
}
- private boolean isImsProvisioningRequired(int subId, int capability,
- boolean isMmtelCapability) {
- Phone phone = getPhone(subId);
- if (phone == null) {
- loge("phone instance null for subid " + subId);
- return false;
- }
- if (isMmtelCapability) {
- if (!doesImsCapabilityRequireProvisioning(phone.getContext(), subId, capability)) {
- return false;
- }
- } else {
- if (!doesRcsCapabilityRequireProvisioning(phone.getContext(), subId, capability)) {
- return false;
- }
- }
- return true;
- }
-
@Override
public void setRcsProvisioningStatusForCapability(int subId, int capability, int tech,
boolean isProvisioned) {
@@ -4698,9 +4695,13 @@
final long identity = Binder.clearCallingIdentity();
try {
- ImsProvisioningController.getInstance()
- .setRcsProvisioningStatusForCapability(subId, capability, tech, isProvisioned);
- return;
+ ImsProvisioningController controller = ImsProvisioningController.getInstance();
+ if (controller == null) {
+ loge("setRcsProvisioningStatusForCapability: Device does not support IMS");
+ return;
+ }
+ controller.setRcsProvisioningStatusForCapability(
+ subId, capability, tech, isProvisioned);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -4714,8 +4715,14 @@
final long identity = Binder.clearCallingIdentity();
try {
- return ImsProvisioningController.getInstance()
- .getRcsProvisioningStatusForCapability(subId, capability, tech);
+ ImsProvisioningController controller = ImsProvisioningController.getInstance();
+ if (controller == null) {
+ loge("getRcsProvisioningStatusForCapability: Device does not support IMS");
+
+ // device does not support IMS, this method will return true always.
+ return true;
+ }
+ return controller.getRcsProvisioningStatusForCapability(subId, capability, tech);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -4728,8 +4735,13 @@
final long identity = Binder.clearCallingIdentity();
try {
- ImsProvisioningController.getInstance()
- .setImsProvisioningStatusForCapability(subId, capability, tech, isProvisioned);
+ ImsProvisioningController controller = ImsProvisioningController.getInstance();
+ if (controller == null) {
+ loge("setImsProvisioningStatusForCapability: Device does not support IMS");
+ return;
+ }
+ controller.setImsProvisioningStatusForCapability(
+ subId, capability, tech, isProvisioned);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -4742,9 +4754,14 @@
final long identity = Binder.clearCallingIdentity();
try {
- return ImsProvisioningController.getInstance()
- .getImsProvisioningStatusForCapability(subId, capability, tech);
+ ImsProvisioningController controller = ImsProvisioningController.getInstance();
+ if (controller == null) {
+ loge("getImsProvisioningStatusForCapability: Device does not support IMS");
+ // device does not support IMS, this method will return true always.
+ return true;
+ }
+ return controller.getImsProvisioningStatusForCapability(subId, capability, tech);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -4757,8 +4774,14 @@
final long identity = Binder.clearCallingIdentity();
try {
- return ImsProvisioningController.getInstance()
- .isImsProvisioningRequiredForCapability(subId, capability, tech);
+ ImsProvisioningController controller = ImsProvisioningController.getInstance();
+ if (controller == null) {
+ loge("isProvisioningRequiredForCapability: Device does not support IMS");
+
+ // device does not support IMS, this method will return false
+ return false;
+ }
+ return controller.isImsProvisioningRequiredForCapability(subId, capability, tech);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -4771,78 +4794,19 @@
final long identity = Binder.clearCallingIdentity();
try {
- return ImsProvisioningController.getInstance()
- .isRcsProvisioningRequiredForCapability(subId, capability, tech);
+ ImsProvisioningController controller = ImsProvisioningController.getInstance();
+ if (controller == null) {
+ loge("isRcsProvisioningRequiredForCapability: Device does not support IMS");
+
+ // device does not support IMS, this method will return false
+ return false;
+ }
+ return controller.isRcsProvisioningRequiredForCapability(subId, capability, tech);
} finally {
Binder.restoreCallingIdentity(identity);
}
}
- private static String getMmTelProvisioningKey(int subId, int tech) {
- // resulting key is provision_ims_mmtel_{subId}_{tech}
- return PREF_PROVISION_IMS_MMTEL_PREFIX + subId + "_" + tech;
- }
-
- /**
- * Query CarrierConfig to see if the specified capability requires provisioning for the
- * carrier associated with the subscription id.
- */
- private boolean doesImsCapabilityRequireProvisioning(Context context, int subId,
- int capability) {
- CarrierConfigManager configManager = new CarrierConfigManager(context);
- PersistableBundle c = configManager.getConfigForSubId(subId);
- boolean requireUtProvisioning = c.getBoolean(
- CarrierConfigManager.KEY_CARRIER_SUPPORTS_SS_OVER_UT_BOOL, false)
- && c.getBoolean(CarrierConfigManager.KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL,
- false);
- boolean requireVoiceVtProvisioning = c.getBoolean(
- CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL, false);
-
- // First check to make sure that the capability requires provisioning.
- switch (capability) {
- case MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE:
- // intentional fallthrough
- case MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO: {
- if (requireVoiceVtProvisioning) {
- // Voice and Video requires provisioning
- return true;
- }
- break;
- }
- case MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_UT: {
- if (requireUtProvisioning) {
- // UT requires provisioning
- return true;
- }
- break;
- }
- }
- return false;
- }
-
- private boolean doesRcsCapabilityRequireProvisioning(Context context, int subId,
- int capability) {
- CarrierConfigManager configManager = new CarrierConfigManager(context);
- PersistableBundle c = configManager.getConfigForSubId(subId);
-
- boolean requireRcsProvisioning = c.getBoolean(
- CarrierConfigManager.KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL, false);
-
- // First check to make sure that the capability requires provisioning.
- switch (capability) {
- case RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE:
- // intentional fallthrough
- case RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_OPTIONS_UCE: {
- if (requireRcsProvisioning) {
- // OPTION or PRESENCE requires provisioning
- return true;
- }
- break;
- }
- }
- return false;
- }
-
@Override
public int getImsProvisioningInt(int subId, int key) {
if (!SubscriptionManager.isValidSubscriptionId(subId)) {
@@ -4861,7 +4825,14 @@
return ImsConfigImplBase.CONFIG_RESULT_UNKNOWN;
}
- int retVal = ImsProvisioningController.getInstance().getProvisioningValue(subId, key);
+ ImsProvisioningController controller = ImsProvisioningController.getInstance();
+ if (controller == null) {
+ loge("getImsProvisioningInt: Device does not support IMS");
+
+ // device does not support IMS, this method will return CONFIG_RESULT_UNKNOWN.
+ return ImsConfigImplBase.CONFIG_RESULT_UNKNOWN;
+ }
+ int retVal = controller.getProvisioningValue(subId, key);
if (retVal != ImsConfigImplBase.CONFIG_RESULT_UNKNOWN) {
return retVal;
}
@@ -4921,8 +4892,14 @@
return ImsConfigImplBase.CONFIG_RESULT_FAILED;
}
- int retVal = ImsProvisioningController.getInstance()
- .setProvisioningValue(subId, key, value);
+ ImsProvisioningController controller = ImsProvisioningController.getInstance();
+ if (controller == null) {
+ loge("setImsProvisioningInt: Device does not support IMS");
+
+ // device does not support IMS, this method will return CONFIG_RESULT_FAILED.
+ return ImsConfigImplBase.CONFIG_RESULT_FAILED;
+ }
+ int retVal = controller.setProvisioningValue(subId, key, value);
if (retVal != ImsConfigImplBase.CONFIG_RESULT_UNKNOWN) {
return retVal;
}
@@ -5289,13 +5266,31 @@
private boolean iccCloseLogicalChannelWithPermission(Phone phone,
IccLogicalChannelRequest request) {
+ // before this feature is enabled, this API should only return false if
+ // the operation fails instead of throwing runtime exception for
+ // backward-compatibility.
+ final boolean shouldThrowExceptionOnFailure = CompatChanges.isChangeEnabled(
+ ICC_CLOSE_CHANNEL_EXCEPTION_ON_FAILURE, Binder.getCallingUid());
final long identity = Binder.clearCallingIdentity();
try {
if (request.channel < 0) {
throw new IllegalArgumentException("request.channel is less than 0");
}
- Boolean success = (Boolean) sendRequest(CMD_CLOSE_CHANNEL, request.channel, phone,
+ Object result = sendRequest(CMD_CLOSE_CHANNEL, request.channel, phone,
null /* workSource */);
+ Boolean success = false;
+ if (result instanceof RuntimeException) {
+ // if there is an exception returned, throw from the binder thread here.
+ if (shouldThrowExceptionOnFailure) {
+ throw (RuntimeException) result;
+ } else {
+ return false;
+ }
+ } else if (result instanceof Boolean) {
+ success = (Boolean) result;
+ } else {
+ loge("iccCloseLogicalChannelWithPermission: supported return type " + result);
+ }
if (DBG) log("iccCloseLogicalChannelWithPermission: success=" + success);
return success;
} finally {
@@ -7526,16 +7521,6 @@
}
@Override
- public int getSubIdForPhoneAccount(PhoneAccount phoneAccount) {
- final long identity = Binder.clearCallingIdentity();
- try {
- return PhoneUtils.getSubIdForPhoneAccount(phoneAccount);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
public int getSubIdForPhoneAccountHandle(
PhoneAccountHandle phoneAccountHandle, String callingPackage, String callingFeatureId) {
if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp, getDefaultSubscription(),
@@ -7754,8 +7739,8 @@
mApp.getAttributionTag());
}
- private final ModemActivityInfo mLastModemActivityInfo =
- new ModemActivityInfo(0, 0, 0, new int[ModemActivityInfo.getNumTxPowerLevels()], 0);
+ private ActivityStatsTechSpecificInfo[] mLastModemActivitySpecificInfo = null;
+ private ModemActivityInfo mLastModemActivityInfo = null;
/**
* Responds to the ResultReceiver with the {@link android.telephony.ModemActivityInfo} object
@@ -7795,6 +7780,91 @@
&& (totalTxTimeMs <= activityDurationMs));
}
+ private void updateLastModemActivityInfo(ModemActivityInfo info, int rat, int freq) {
+ int[] mergedTxTimeMs = new int [ModemActivityInfo.getNumTxPowerLevels()];
+ int[] txTimeMs = info.getTransmitTimeMillis(rat, freq);
+ int[] lastModemTxTimeMs = mLastModemActivityInfo.getTransmitTimeMillis(rat, freq);
+
+ for (int lvl = 0; lvl < mergedTxTimeMs.length; lvl++) {
+ mergedTxTimeMs[lvl] = txTimeMs[lvl] + lastModemTxTimeMs[lvl];
+ }
+
+ mLastModemActivityInfo.setTransmitTimeMillis(rat, freq, mergedTxTimeMs);
+ mLastModemActivityInfo.setReceiveTimeMillis(
+ rat,
+ freq,
+ info.getReceiveTimeMillis(rat, freq)
+ + mLastModemActivityInfo.getReceiveTimeMillis(rat, freq));
+ }
+
+ private void updateLastModemActivityInfo(ModemActivityInfo info, int rat) {
+ int[] mergedTxTimeMs = new int [ModemActivityInfo.getNumTxPowerLevels()];
+ int[] txTimeMs = info.getTransmitTimeMillis(rat);
+ int[] lastModemTxTimeMs = mLastModemActivityInfo.getTransmitTimeMillis(rat);
+
+ for (int lvl = 0; lvl < mergedTxTimeMs.length; lvl++) {
+ mergedTxTimeMs[lvl] = txTimeMs[lvl] + lastModemTxTimeMs[lvl];
+ }
+ mLastModemActivityInfo.setTransmitTimeMillis(rat, mergedTxTimeMs);
+ mLastModemActivityInfo.setReceiveTimeMillis(
+ rat,
+ info.getReceiveTimeMillis(rat) + mLastModemActivityInfo.getReceiveTimeMillis(rat));
+ }
+
+ /**
+ * Merge this ModemActivityInfo with mLastModemActivitySpecificInfo
+ * @param info recent ModemActivityInfo
+ */
+ private void mergeModemActivityInfo(ModemActivityInfo info) {
+ List<ActivityStatsTechSpecificInfo> merged = new ArrayList<>();
+ ActivityStatsTechSpecificInfo mDeltaSpecificInfo;
+ boolean matched;
+ for (int i = 0; i < info.getSpecificInfoLength(); i++) {
+ matched = false;
+ int rat = info.getSpecificInfoRat(i);
+ int freq = info.getSpecificInfoFrequencyRange(i);
+ //Check each ActivityStatsTechSpecificInfo in this ModemActivityInfo for new rat returns
+ //Add a new ActivityStatsTechSpecificInfo if is a new rat, and merge with the original
+ //if it already exists
+ for (int j = 0; j < mLastModemActivitySpecificInfo.length; j++) {
+ if (rat == mLastModemActivityInfo.getSpecificInfoRat(j) && !matched) {
+ //Merged based on frequency range (MMWAVE vs SUB6) for 5G
+ if (rat == AccessNetworkConstants.AccessNetworkType.NGRAN) {
+ if (freq == mLastModemActivityInfo.getSpecificInfoFrequencyRange(j)) {
+ updateLastModemActivityInfo(info, rat, freq);
+ matched = true;
+ }
+ } else {
+ updateLastModemActivityInfo(info, rat);
+ matched = true;
+ }
+ }
+ }
+
+ if (!matched) {
+ mDeltaSpecificInfo =
+ new ActivityStatsTechSpecificInfo(
+ rat,
+ freq,
+ info.getTransmitTimeMillis(rat, freq),
+ (int) info.getReceiveTimeMillis(rat, freq));
+ merged.addAll(Arrays.asList(mDeltaSpecificInfo));
+ }
+ }
+ merged.addAll(Arrays.asList(mLastModemActivitySpecificInfo));
+ mLastModemActivitySpecificInfo =
+ new ActivityStatsTechSpecificInfo[merged.size()];
+ merged.toArray(mLastModemActivitySpecificInfo);
+
+ mLastModemActivityInfo.setTimestamp(info.getTimestampMillis());
+ mLastModemActivityInfo.setSleepTimeMillis(
+ info.getSleepTimeMillis()
+ + mLastModemActivityInfo.getSleepTimeMillis());
+ mLastModemActivityInfo.setIdleTimeMillis(
+ info.getIdleTimeMillis()
+ + mLastModemActivityInfo.getIdleTimeMillis());
+ }
+
/**
* Returns the service state information on specified subscription.
*/
@@ -8800,20 +8870,11 @@
mApp.getSystemService(AppOpsManager.class)
.checkPackage(Binder.getCallingUid(), callingPackage);
- boolean hasReadPermission = false;
boolean isLogicalSlotAccessRestricted = false;
- try {
- enforceReadPrivilegedPermission("getUiccSlotsInfo");
- hasReadPermission = true;
- } catch (SecurityException e) {
- // even without READ_PRIVILEGED_PHONE_STATE, we allow the call to continue if the caller
- // has carrier privileges on an active UICC
- if (checkCarrierPrivilegesForPackageAnyPhoneWithPermission(callingPackage)
- == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
- hasReadPermission = true;
- }
- }
+ // This will make sure caller has the READ_PRIVILEGED_PHONE_STATE. Do not remove this as
+ // we are reading iccId which is PII data.
+ enforceReadPrivilegedPermission("getUiccSlotsInfo");
// checking compatibility, if calling app's target SDK is T and beyond.
if (CompatChanges.isChangeEnabled(GET_API_SIGNATURES_FROM_UICC_PORT_INFO,
@@ -8823,8 +8884,8 @@
final long identity = Binder.clearCallingIdentity();
try {
UiccSlot[] slots = UiccController.getInstance().getUiccSlots();
- if (slots == null) {
- Rlog.i(LOG_TAG, "slots is null.");
+ if (slots == null || slots.length == 0) {
+ Rlog.i(LOG_TAG, "slots is null or empty.");
return null;
}
UiccSlotInfo[] infos = new UiccSlotInfo[slots.length];
@@ -8841,11 +8902,8 @@
} else {
cardId = slot.getEid();
if (TextUtils.isEmpty(cardId)) {
- // If cardId is null, use iccId of default port as cardId. Check if has
- // read permission otherwise set to null.(card is null which means no
- // carrier permission)
- cardId = hasReadPermission ? slot.getIccId(
- TelephonyManager.DEFAULT_PORT_INDEX) : null;
+ // If cardId is null, use iccId of default port as cardId.
+ cardId = slot.getIccId(TelephonyManager.DEFAULT_PORT_INDEX);
}
}
@@ -8877,14 +8935,9 @@
int[] portIndexes = slot.getPortList();
for (int portIdx : portIndexes) {
String iccId = IccUtils.stripTrailingFs(getIccId(slot, portIdx,
- callingPackage, hasReadPermission));
- if (slot.isPortActive(portIdx)) {
- UiccPort port = slot.getUiccCard().getUiccPort(portIdx);
- portInfos.add(new UiccPortInfo(iccId, port.getPortIdx(),
- port.getPhoneId(), true));
- } else {
- portInfos.add(new UiccPortInfo(iccId, portIdx, -1, false));
- }
+ callingPackage, /* hasReadPermission= */ true));
+ portInfos.add(new UiccPortInfo(iccId, portIdx,
+ slot.getPhoneIdFromPortIndex(portIdx), slot.isPortActive(portIdx)));
}
infos[i] = new UiccSlotInfo(
slot.isEuicc(),
@@ -11043,11 +11096,12 @@
@Override
@TelephonyManager.PrepareUnattendedRebootResult
public int prepareForUnattendedReboot() {
+ WorkSource workSource = getWorkSource(Binder.getCallingUid());
enforceRebootPermission();
final long identity = Binder.clearCallingIdentity();
try {
- return (int) sendRequest(CMD_PREPARE_UNATTENDED_REBOOT, null);
+ return (int) sendRequest(CMD_PREPARE_UNATTENDED_REBOOT, null, workSource);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -11193,6 +11247,12 @@
}
}
+ @Override
+ public boolean isUsingNewDataStack() {
+ TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "isUsingNewDataStack");
+ return getDefaultPhone().isUsingNewDataStack();
+ }
+
/**
* Sets the modem service class Name that Telephony will bind to.
*
@@ -11218,7 +11278,7 @@
Log.d(LOG_TAG, "getModemService");
TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "getModemService");
TelephonyPermissions
- .enforceCallingOrSelfReadPrivilegedPhoneStatePermissionOrCarrierPrivilege(
+ .enforceCallingOrSelfReadPrivilegedPhoneStatePermissionOrCarrierPrivilege(
mApp, SubscriptionManager.INVALID_SUBSCRIPTION_ID,
"getModemService");
result = mPhoneConfigurationManager.getModemService();
@@ -11227,8 +11287,57 @@
}
@Override
- public boolean isUsingNewDataStack() {
- TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "isUsingNewDataStack");
- return getDefaultPhone().isUsingNewDataStack();
+ public void setVoiceServiceStateOverride(int subId, boolean hasService, String callingPackage) {
+ // Only telecom (and shell, for CTS purposes) is allowed to call this method.
+ mApp.enforceCallingOrSelfPermission(
+ permission.BIND_TELECOM_CONNECTION_SERVICE, "setVoiceServiceStateOverride");
+ mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ Phone phone = getPhone(subId);
+ if (phone == null) return;
+ phone.setVoiceServiceStateOverride(hasService);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
+
+ /**
+ * set removable eSIM as default eUICC.
+ *
+ * @hide
+ */
+ @Override
+ public void setRemovableEsimAsDefaultEuicc(boolean isDefault, String callingPackage) {
+ enforceModifyPermission();
+ mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ UiccController.getInstance().setRemovableEsimAsDefaultEuicc(isDefault);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ /**
+ * Returns whether the removable eSIM is default eUICC or not.
+ *
+ * @hide
+ */
+ @Override
+ public boolean isRemovableEsimDefaultEuicc(String callingPackage) {
+ enforceReadPrivilegedPermission("isRemovableEsimDefaultEuicc");
+ mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ return UiccController.getInstance().isRemovableEsimDefaultEuicc();
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+
}
diff --git a/src/com/android/phone/PhoneUtils.java b/src/com/android/phone/PhoneUtils.java
index 35cfdd3..695a4a4 100644
--- a/src/com/android/phone/PhoneUtils.java
+++ b/src/com/android/phone/PhoneUtils.java
@@ -547,7 +547,9 @@
// R.array.config_defaultNotificationVibePattern is not defined.
long[] pattern = getLongArray(context.getResources(),
R.array.config_defaultNotificationVibePattern, DEFAULT_VIBRATE_PATTERN);
- vibrator.vibrate(VibrationEffect.createWaveform(pattern, -1));
+ vibrator.vibrate(VibrationEffect.createWaveform(pattern, -1),
+ new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_NOTIFICATION)
+ .build());
}
}
@@ -716,7 +718,7 @@
// TODO: Should use some sort of special hidden flag to decorate this account as
// an emergency-only account
String id = isEmergency ? EMERGENCY_ACCOUNT_HANDLE_ID : prefix +
- String.valueOf(phone.getFullIccSerialNumber());
+ String.valueOf(phone.getSubId());
return makePstnPhoneAccountHandleWithPrefix(id, prefix, isEmergency);
}
@@ -744,7 +746,7 @@
public static Phone getPhoneForPhoneAccountHandle(PhoneAccountHandle handle) {
if (handle != null && handle.getComponentName().equals(getPstnConnectionServiceName())) {
- return getPhoneFromIccId(handle.getId());
+ return getPhoneFromSubId(handle.getId());
}
return null;
}
@@ -759,18 +761,18 @@
* {@code false} otherwise.
*/
public static boolean isPhoneAccountActive(SubscriptionManager sm, PhoneAccountHandle handle) {
- return sm.getActiveSubscriptionInfoForIcc(handle.getId()) != null;
+ return sm.getActiveSubscriptionInfo(Integer.parseInt(handle.getId())) != null;
}
private static ComponentName getPstnConnectionServiceName() {
return PSTN_CONNECTION_SERVICE_COMPONENT;
}
- private static Phone getPhoneFromIccId(String iccId) {
- if (!TextUtils.isEmpty(iccId)) {
+ private static Phone getPhoneFromSubId(String subId) {
+ if (!TextUtils.isEmpty(subId)) {
for (Phone phone : PhoneFactory.getPhones()) {
- String phoneIccId = phone.getFullIccSerialNumber();
- if (iccId.equals(phoneIccId)) {
+ String phoneSubId = Integer.toString(phone.getSubId());
+ if (subId.equals(phoneSubId)) {
return phone;
}
}
diff --git a/src/com/android/phone/SubscriptionInfoHelper.java b/src/com/android/phone/SubscriptionInfoHelper.java
index 7c373e0..14faebc 100644
--- a/src/com/android/phone/SubscriptionInfoHelper.java
+++ b/src/com/android/phone/SubscriptionInfoHelper.java
@@ -91,7 +91,8 @@
intent.putExtra(SubscriptionInfoHelper.SUB_ID_EXTRA, subscription.getSubscriptionId());
intent.putExtra(
- SubscriptionInfoHelper.SUB_LABEL_EXTRA, subscription.getDisplayName().toString());
+ SubscriptionInfoHelper.SUB_LABEL_EXTRA, subscription.getDisplayName() == null ? null
+ : subscription.getDisplayName().toString());
}
/**
diff --git a/src/com/android/phone/TelephonyShellCommand.java b/src/com/android/phone/TelephonyShellCommand.java
index 1c41b1d..97676fc 100644
--- a/src/com/android/phone/TelephonyShellCommand.java
+++ b/src/com/android/phone/TelephonyShellCommand.java
@@ -30,7 +30,6 @@
import android.os.RemoteException;
import android.os.ServiceSpecificException;
import android.provider.BlockedNumberContract;
-import android.provider.DeviceConfig;
import android.telephony.BarringInfo;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionInfo;
@@ -174,6 +173,8 @@
"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.
private final ITelephony mInterface;
@@ -330,6 +331,12 @@
return handleAllowedNetworkTypesCommand(cmd);
case GET_DATA_MODE:
return handleGetDataMode();
+ case GET_IMEI:
+ return handleGetImei();
+ case GET_SIM_SLOTS_MAPPING:
+ return handleGetSimSlotsMapping();
+ case RADIO_SUBCOMMAND:
+ return handleRadioCommand();
default: {
return handleDefaultCommands(cmd);
}
@@ -382,6 +389,7 @@
onHelpDisableOrEnablePhysicalSubscription();
onHelpAllowedNetworkTypes();
onHelpRadio();
+ onHelpImei();
}
private void onHelpD2D() {
@@ -693,6 +701,15 @@
pw.println(" the result would be 'unknown'.");
}
+ private void onHelpImei() {
+ PrintWriter pw = getOutPrintWriter();
+ pw.println("IMEI Commands:");
+ pw.println(" get-imei [-s SLOT_ID]");
+ pw.println(" Gets the device IMEI. Options are:");
+ pw.println(" -s: the slot ID to get the IMEI. If no option");
+ pw.println(" is specified, it will choose the default voice SIM slot.");
+ }
+
private int handleImsCommand() {
String arg = getNextArg();
if (arg == null) {
@@ -2015,6 +2032,37 @@
return result ? 0 : -1;
}
+ private int handleGetImei() {
+ // Verify that the user is allowed to run the command. Only allowed in rooted device in a
+ // non user build.
+ if (Binder.getCallingUid() != Process.ROOT_UID || TelephonyUtils.IS_USER) {
+ getErrPrintWriter().println("Device IMEI: Permission denied.");
+ return -1;
+ }
+
+ final long identity = Binder.clearCallingIdentity();
+
+ String imei = null;
+ String arg = getNextArg();
+ if (arg != null) {
+ try {
+ int specifiedSlotIndex = Integer.parseInt(arg);
+ imei = TelephonyManager.from(mContext).getImei(specifiedSlotIndex);
+ } catch (NumberFormatException exception) {
+ PrintWriter errPw = getErrPrintWriter();
+ errPw.println("-s requires an integer as slot index.");
+ return -1;
+ }
+
+ } else {
+ imei = TelephonyManager.from(mContext).getImei();
+ }
+ getOutPrintWriter().println("Device IMEI: " + imei);
+
+ Binder.restoreCallingIdentity(identity);
+ return 0;
+ }
+
private int handleUnattendedReboot() {
// Verify that the user is allowed to run the command. Only allowed in rooted device in a
// non user build.
@@ -2029,6 +2077,20 @@
return result != TelephonyManager.PREPARE_UNATTENDED_REBOOT_ERROR ? 0 : -1;
}
+ private int handleGetSimSlotsMapping() {
+ // Verify that the user is allowed to run the command. Only allowed in rooted device in a
+ // non user build.
+ if (Binder.getCallingUid() != Process.ROOT_UID || TelephonyUtils.IS_USER) {
+ getErrPrintWriter().println("GetSimSlotsMapping: Permission denied.");
+ return -1;
+ }
+ TelephonyManager telephonyManager = mContext.getSystemService(TelephonyManager.class);
+ String result = telephonyManager.getSimSlotMapping().toString();
+ getOutPrintWriter().println("simSlotsMapping: " + result);
+
+ return 0;
+ }
+
private int handleGbaCommand() {
String arg = getNextArg();
if (arg == null) {
@@ -2851,6 +2913,24 @@
}
}
+ 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;
@@ -2915,35 +2995,4 @@
return -1;
}
-
- 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 new data stack is "
- + (newDataStackEnabled ? "enabled." : "disabled."));
-
- boolean configEnabled = Boolean.parseBoolean(DeviceConfig.getProperty(
- DeviceConfig.NAMESPACE_TELEPHONY, "new_telephony_data_enabled"));
- if (configEnabled != newDataStackEnabled) {
- getOutPrintWriter().println("The config has been "
- + (configEnabled ? "enabled" : "disabled") + ". Need to reboot the device.");
- } else {
- getOutPrintWriter().println("Run the following command to "
- + (configEnabled ? "disable" : "enable") + " the new telephony data stack.");
- getOutPrintWriter().println("adb root && adb shell device_config put telephony "
- + "new_telephony_data_enabled " + (configEnabled ? "false" : "true")
- + " && adb reboot");
- }
- return 0;
- }
}
diff --git a/src/com/android/phone/TimeConsumingPreferenceActivity.java b/src/com/android/phone/TimeConsumingPreferenceActivity.java
index caef176..d21f6a8 100644
--- a/src/com/android/phone/TimeConsumingPreferenceActivity.java
+++ b/src/com/android/phone/TimeConsumingPreferenceActivity.java
@@ -197,6 +197,7 @@
@Override
public void onException(Preference preference, CommandException exception) {
+ Log.i(LOG_TAG, "onError, preference=" + preference.getKey() + ", exception=" + exception);
if (exception.getCommandError() == CommandException.Error.FDN_CHECK_FAILURE) {
onError(preference, FDN_CHECK_FAILURE);
} else if (exception.getCommandError() == CommandException.Error.RADIO_NOT_AVAILABLE) {
@@ -210,6 +211,10 @@
onError(preference, STK_CC_SS_TO_USSD_ERROR);
} else if (exception.getCommandError() == CommandException.Error.SS_MODIFIED_TO_SS) {
onError(preference, STK_CC_SS_TO_SS_ERROR);
+ } else if (exception.getCommandError() == CommandException.Error.REQUEST_NOT_SUPPORTED) {
+ preference.setEnabled(false);
+ // Don't show an error dialog; just disable it if the request is not supported.
+ Log.i(LOG_TAG, "onError, suppress error dialog as not supported");
} else {
preference.setEnabled(false);
onError(preference, EXCEPTION_ERROR);
diff --git a/src/com/android/phone/euicc/EuiccPrivilegedActionUiDispatcherActivity.java b/src/com/android/phone/euicc/EuiccPrivilegedActionUiDispatcherActivity.java
index 389795b..53640f2 100644
--- a/src/com/android/phone/euicc/EuiccPrivilegedActionUiDispatcherActivity.java
+++ b/src/com/android/phone/euicc/EuiccPrivilegedActionUiDispatcherActivity.java
@@ -35,6 +35,10 @@
@Nullable
protected Intent getEuiccUiIntent() {
String action = getIntent().getAction();
+ if (action == null) {
+ Log.w(TAG, "No action is specified in the intent");
+ return null;
+ }
Intent intent = new Intent();
// Propagate the extras from the original Intent.
diff --git a/src/com/android/phone/euicc/EuiccPublicActionUiDispatcherActivity.java b/src/com/android/phone/euicc/EuiccPublicActionUiDispatcherActivity.java
index 64a40b9..cbee45a 100644
--- a/src/com/android/phone/euicc/EuiccPublicActionUiDispatcherActivity.java
+++ b/src/com/android/phone/euicc/EuiccPublicActionUiDispatcherActivity.java
@@ -34,6 +34,10 @@
@Nullable
protected Intent getEuiccUiIntent() {
String action = getIntent().getAction();
+ if (action == null) {
+ Log.w(TAG, "No action is specified in the intent");
+ return null;
+ }
Intent intent = new Intent();
// Propagate the extras from the original Intent.
diff --git a/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java b/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java
index f24e7d6..804611f 100644
--- a/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java
+++ b/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java
@@ -134,6 +134,10 @@
@Nullable
protected Intent getEuiccUiIntent() {
String action = getIntent().getAction();
+ if (action == null) {
+ Log.w(TAG, "No action is specified in the intent");
+ return null;
+ }
Intent intent = new Intent();
intent.putExtras(getIntent());
diff --git a/src/com/android/phone/otasp/OtaspSimStateReceiver.java b/src/com/android/phone/otasp/OtaspSimStateReceiver.java
index bb4022a..a47ab67 100644
--- a/src/com/android/phone/otasp/OtaspSimStateReceiver.java
+++ b/src/com/android/phone/otasp/OtaspSimStateReceiver.java
@@ -92,14 +92,22 @@
mContext = context;
if(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED.equals(intent.getAction())) {
if (DBG) logd("Received intent: " + intent.getAction());
- if (PhoneGlobals.getPhone().getIccRecordsLoaded() && isCarrierSupported()) {
- registerOtaspChangedHandler();
- }
+ // Allow the receiver to keep active after returning from onReceive().
+ final PendingResult result = goAsync();
+ // Do the actual work on another thread to prevent ANR.
+ new Thread(() -> {
+ if (DBG) logd("Start to process ACTION_CARRIER_CONFIG_CHANGED.");
+ if (PhoneGlobals.getPhone().getIccRecordsLoaded() && isCarrierSupported()) {
+ registerOtaspChangedHandler();
+ }
+ result.finish();
+ }).start();
}
}
- // It's fine to call mutiple times, as the registrants are de-duped by Handler object.
+ // It's fine to call multiple times, as the registrants are de-duped by Handler object.
private void registerOtaspChangedHandler() {
+ if (DBG) logd("registerOtaspChangedHandler");
final Phone phone = PhoneGlobals.getPhone();
phone.registerForOtaspChange(mOtaspHandler, EVENT_OTASP_CHANGED, null);
}
diff --git a/src/com/android/phone/settings/PhoneAccountSettingsFragment.java b/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
index 6bc71dc..49e1379 100644
--- a/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
+++ b/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
@@ -174,6 +174,7 @@
*/
@Override
public boolean onAccountSelected(AccountSelectionPreference pref, PhoneAccountHandle account) {
+ Log.d(LOG_TAG, String.format("onAccountSelected: pref=[%s], account=[%s]", pref, account));
if (pref == mDefaultOutgoingAccount) {
mTelecomManager.setUserSelectedOutgoingPhoneAccount(account);
return true;
diff --git a/src/com/android/phone/settings/RadioInfo.java b/src/com/android/phone/settings/RadioInfo.java
index 95788fe..2058d2d 100644
--- a/src/com/android/phone/settings/RadioInfo.java
+++ b/src/com/android/phone/settings/RadioInfo.java
@@ -24,6 +24,7 @@
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
+import android.content.pm.ComponentInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
@@ -96,6 +97,7 @@
import com.android.ims.ImsManager;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
+import com.android.internal.telephony.euicc.EuiccConnector;
import com.android.phone.R;
import java.io.IOException;
@@ -225,6 +227,9 @@
private static final String TRIGGER_CARRIER_PROVISIONING_ACTION =
"com.android.phone.settings.TRIGGER_CARRIER_PROVISIONING";
+ private static final String ACTION_REMOVABLE_ESIM_AS_DEFAULT =
+ "android.telephony.euicc.action.REMOVABLE_ESIM_AS_DEFAULT";
+
private TextView mDeviceId; //DeviceId is the IMEI in GSM and the MEID in CDMA
private TextView mLine1Number;
private TextView mSubscriptionId;
@@ -273,6 +278,7 @@
private Switch mEabProvisionedSwitch;
private Switch mCbrsDataSwitch;
private Switch mDsdsSwitch;
+ private Switch mRemovableEsimSwitch;
private Spinner mPreferredNetworkType;
private Spinner mSelectPhoneIndex;
private Spinner mCellInfoRefreshRateSpinner;
@@ -573,6 +579,13 @@
mDsdsSwitch.setVisibility(View.GONE);
}
+ mRemovableEsimSwitch = (Switch) findViewById(R.id.removable_esim_switch);
+ if (!IS_USER_BUILD) {
+ mRemovableEsimSwitch.setEnabled(true);
+ mRemovableEsimSwitch.setChecked(mTelephonyManager.isRemovableEsimDefaultEuicc());
+ mRemovableEsimSwitch.setOnCheckedChangeListener(mRemovableEsimChangeListener);
+ }
+
mRadioPowerOnSwitch = (Switch) findViewById(R.id.radio_power);
mDownlinkKbps = (TextView) findViewById(R.id.dl_kbps);
@@ -618,8 +631,8 @@
new Thread(() -> {
int networkType = (int) mTelephonyManager.getPreferredNetworkTypeBitmask();
- updatePreferredNetworkType(
- RadioAccessFamily.getNetworkTypeFromRaf(networkType));
+ runOnUiThread(() -> updatePreferredNetworkType(
+ RadioAccessFamily.getNetworkTypeFromRaf(networkType)));
}).start();
restoreFromBundle(icicle);
@@ -675,8 +688,8 @@
new Thread(() -> {
int networkType = (int) mTelephonyManager.getPreferredNetworkTypeBitmask();
- updatePreferredNetworkType(
- RadioAccessFamily.getNetworkTypeFromRaf(networkType));
+ runOnUiThread(() -> updatePreferredNetworkType(
+ RadioAccessFamily.getNetworkTypeFromRaf(networkType)));
}).start();
// set phone index
@@ -1877,4 +1890,27 @@
}
}
};
+
+ OnCheckedChangeListener mRemovableEsimChangeListener = new OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ setRemovableEsimAsDefaultEuicc(isChecked);
+ }
+ };
+
+ private void setRemovableEsimAsDefaultEuicc(boolean isChecked) {
+ Log.d(TAG, "setRemovableEsimAsDefaultEuicc isChecked: " + isChecked);
+ mTelephonyManager.setRemovableEsimAsDefaultEuicc(isChecked);
+ // TODO(b/232528117): Instead of sending intent, add new APIs in platform,
+ // LPA can directly use the API.
+ ComponentInfo componentInfo = EuiccConnector.findBestComponent(getPackageManager());
+ if (componentInfo == null) {
+ Log.d(TAG, "setRemovableEsimAsDefaultEuicc: unable to find suitable component info");
+ return;
+ }
+ final Intent intent = new Intent(ACTION_REMOVABLE_ESIM_AS_DEFAULT);
+ intent.setPackage(componentInfo.packageName);
+ intent.putExtra("isDefault", isChecked);
+ sendBroadcast(intent);
+ }
}
diff --git a/src/com/android/phone/settings/fdn/GetPin2Screen.java b/src/com/android/phone/settings/fdn/GetPin2Screen.java
index 2394a69..09cab46 100644
--- a/src/com/android/phone/settings/fdn/GetPin2Screen.java
+++ b/src/com/android/phone/settings/fdn/GetPin2Screen.java
@@ -56,6 +56,7 @@
mPin2Field.setOnEditorActionListener(this);
mPin2Field.setInputType(
InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
+ mPin2Field.requestFocus();
mOkButton = (Button) findViewById(R.id.ok);
mOkButton.setOnClickListener(mClicked);
diff --git a/src/com/android/phone/vvm/VvmSimStateTracker.java b/src/com/android/phone/vvm/VvmSimStateTracker.java
index a77bd7b..ab8329c 100644
--- a/src/com/android/phone/vvm/VvmSimStateTracker.java
+++ b/src/com/android/phone/vvm/VvmSimStateTracker.java
@@ -88,7 +88,7 @@
VvmLog.e(TAG, "Cannot create TelephonyManager from " + mPhoneAccountHandle);
return;
}
- telephonyManager.registerTelephonyCallback(
+ telephonyManager.registerTelephonyCallback(TelephonyManager.INCLUDE_LOCATION_DATA_NONE,
new HandlerExecutor(new Handler(Looper.getMainLooper())), this);
}
diff --git a/src/com/android/services/telephony/PstnIncomingCallNotifier.java b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
index 5f1d4eb..8615325 100644
--- a/src/com/android/services/telephony/PstnIncomingCallNotifier.java
+++ b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
@@ -99,6 +99,12 @@
break;
}
}
+
+ @Override
+ public String toString() {
+ return String.format("[PstnIncomingCallNotifierHandler; phoneId=[%s]",
+ getPhoneIdAsString());
+ }
};
/**
@@ -125,7 +131,7 @@
*/
private void registerForNotifications() {
if (mPhone != null) {
- Log.i(this, "Registering: %s", mPhone);
+ Log.i(this, "Registering: [%s]", getPhoneIdAsString());
mPhone.registerForNewRingingConnection(mHandler, EVENT_NEW_RINGING_CONNECTION, null);
mPhone.registerForCallWaiting(mHandler, EVENT_CDMA_CALL_WAITING, null);
mPhone.registerForUnknownConnection(mHandler, EVENT_UNKNOWN_CONNECTION, null);
@@ -134,7 +140,7 @@
private void unregisterForNotifications() {
if (mPhone != null) {
- Log.i(this, "Unregistering: %s", mPhone);
+ Log.i(this, "Unregistering: [%s]", getPhoneIdAsString());
mPhone.unregisterForNewRingingConnection(mHandler);
mPhone.unregisterForCallWaiting(mHandler);
mPhone.unregisterForUnknownConnection(mHandler);
@@ -147,7 +153,7 @@
* @param asyncResult The result object from the new ringing event.
*/
private void handleNewRingingConnection(AsyncResult asyncResult) {
- Log.d(this, "handleNewRingingConnection");
+ Log.i(this, "handleNewRingingConnection: phoneId=[%s]", getPhoneIdAsString());
Connection connection = (Connection) asyncResult.result;
if (connection != null) {
Call call = connection.getCall();
@@ -177,7 +183,7 @@
}
private void handleCdmaCallWaiting(AsyncResult asyncResult) {
- Log.d(this, "handleCdmaCallWaiting");
+ Log.i(this, "handleCdmaCallWaiting: phoneId=[%s]", getPhoneIdAsString());
CdmaCallWaitingNotification ccwi = (CdmaCallWaitingNotification) asyncResult.result;
Call call = mPhone.getRingingCall();
if (call.getState() == Call.State.WAITING) {
@@ -191,7 +197,7 @@
// Presentation of number not allowed, but the presentation of the Connection
// and the call waiting presentation match.
Log.i(this, "handleCdmaCallWaiting: inform telecom of waiting call; "
- + "presentation = %d", presentation);
+ + "presentation = %d", presentation);
sendIncomingCallIntent(connection);
} else if (!TextUtils.isEmpty(number) && Objects.equals(number, ccwi.number)) {
// Presentation of the number is allowed, so we ensure the number matches the
@@ -200,7 +206,7 @@
+ "number = %s", Rlog.pii(LOG_TAG, number));
sendIncomingCallIntent(connection);
} else {
- Log.w(this, "handleCdmaCallWaiting: presentation or number do not match, not"
+ Log.i(this, "handleCdmaCallWaiting: presentation or number do not match, not"
+ " informing telecom of call: %s", ccwi);
}
}
@@ -208,9 +214,9 @@
}
private void handleNewUnknownConnection(AsyncResult asyncResult) {
- Log.i(this, "handleNewUnknownConnection");
+ Log.i(this, "handleNewUnknownConnection: phoneId=[%s]", getPhoneIdAsString());
if (!(asyncResult.result instanceof Connection)) {
- Log.w(this, "handleNewUnknownConnection called with non-Connection object");
+ Log.i(this, "handleNewUnknownConnection called with non-Connection object");
return;
}
Connection connection = (Connection) asyncResult.result;
@@ -402,7 +408,7 @@
Log.i(this, "Receiving MT call in ECM. Using Emergency PhoneAccount Instead.");
return emergencyHandle;
}
- Log.w(this, "PhoneAccount not found.");
+ Log.i(this, "PhoneAccount not found.");
return null;
}
@@ -449,8 +455,8 @@
if (unknown instanceof ImsExternalConnection &&
!(telephonyConnection
.getOriginalConnection() instanceof ImsExternalConnection)) {
- Log.v(this, "maybeSwapWithUnknownConnection - not swapping regular connection " +
- "with external connection.");
+ Log.i(this, "maybeSwapWithUnknownConnection - not swapping "
+ + "regular connection with external connection.");
return false;
}
@@ -486,4 +492,11 @@
}
return false;
}
-}
+
+ private String getPhoneIdAsString() {
+ if (mPhone == null) {
+ return "-1";
+ }
+ return String.valueOf(mPhone.getPhoneId());
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/services/telephony/RadioOnHelper.java b/src/com/android/services/telephony/RadioOnHelper.java
index be2ddb2..63a648f 100644
--- a/src/com/android/services/telephony/RadioOnHelper.java
+++ b/src/com/android/services/telephony/RadioOnHelper.java
@@ -102,8 +102,20 @@
private void powerOnRadio(boolean forEmergencyCall, Phone phoneForEmergencyCall,
boolean isTestEmergencyNumber) {
+ // Always try to turn on the radio here independent of APM setting - if we got here in the
+ // first place, the radio is off independent of APM setting.
+ for (Phone phone : PhoneFactory.getPhones()) {
+ Log.d(this, "powerOnRadio, enabling Radio");
+ if (isTestEmergencyNumber) {
+ phone.setRadioPowerOnForTestEmergencyCall(phone == phoneForEmergencyCall);
+ } else {
+ phone.setRadioPower(true, forEmergencyCall, phone == phoneForEmergencyCall,
+ false);
+ }
+ }
+
// If airplane mode is on, we turn it off the same way that the Settings activity turns it
- // off.
+ // off to keep the setting in sync.
if (Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.AIRPLANE_MODE_ON, 0) > 0) {
Log.d(this, "==> Turning off airplane mode for emergency call.");
@@ -112,16 +124,6 @@
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.AIRPLANE_MODE_ON, 0);
- for (Phone phone : PhoneFactory.getPhones()) {
- Log.d(this, "powerOnRadio, enabling Radio");
- if (isTestEmergencyNumber) {
- phone.setRadioPowerOnForTestEmergencyCall(phone == phoneForEmergencyCall);
- } else {
- phone.setRadioPower(true, forEmergencyCall, phone == phoneForEmergencyCall,
- false);
- }
- }
-
// Post the broadcast intend for change in airplane mode
// TODO: We really should not be in charge of sending this broadcast.
// If changing the setting is sufficient to trigger all of the rest of the logic,
diff --git a/src/com/android/services/telephony/TelecomAccountRegistry.java b/src/com/android/services/telephony/TelecomAccountRegistry.java
index 1d749f4..a9b4c71 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -16,6 +16,7 @@
package com.android.services.telephony;
+import android.app.PropertyInvalidatedCache;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
@@ -831,6 +832,7 @@
// torn down.
return;
}
+
boolean isVideoPresenceSupported = isCarrierVideoPresenceSupported();
if (mIsVideoPresenceSupported != isVideoPresenceSupported) {
Log.i(this, "updateVideoPresenceCapability for subId=" + mPhone.getSubId()
@@ -841,30 +843,64 @@
}
public void updateRttCapability() {
- boolean isRttEnabled = isRttCurrentlySupported();
- if (isRttEnabled != mIsRttCapable) {
- Log.i(this, "updateRttCapability - changed, new value: " + isRttEnabled);
- mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
+ synchronized (mAccountsLock) {
+ if (!mAccounts.contains(this)) {
+ // Account has already been torn down, don't try to register it again.
+ // This handles the case where teardown has already happened, and we got a Ims
+ // registartion update that lost the race for the mAccountsLock. In such a
+ // scenario by the time we get here, the original phone account could have been
+ // torn down.
+ return;
+ }
+
+ boolean isRttEnabled = isRttCurrentlySupported();
+ if (isRttEnabled != mIsRttCapable) {
+ Log.i(this, "updateRttCapability - changed, new value: " + isRttEnabled);
+ mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
+ }
}
}
public void updateCallComposerCapability(MmTelFeature.MmTelCapabilities capabilities) {
- boolean isCallComposerCapable = capabilities.isCapable(
- MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_CALL_COMPOSER);
- if (isCallComposerCapable != mIsCallComposerCapable) {
- mIsCallComposerCapable = isCallComposerCapable;
- Log.i(this, "updateCallComposerCapability - changed, new value: "
- + isCallComposerCapable);
- mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
+ synchronized (mAccountsLock) {
+ if (!mAccounts.contains(this)) {
+ // Account has already been torn down, don't try to register it again.
+ // This handles the case where teardown has already happened, and we got a Ims
+ // registartion update that lost the race for the mAccountsLock. In such a
+ // scenario by the time we get here, the original phone account could have been
+ // torn down.
+ return;
+ }
+
+ boolean isCallComposerCapable = capabilities.isCapable(
+ MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_CALL_COMPOSER);
+ if (isCallComposerCapable != mIsCallComposerCapable) {
+ mIsCallComposerCapable = isCallComposerCapable;
+ Log.i(this, "updateCallComposerCapability - changed, new value: "
+ + isCallComposerCapable);
+ mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
+ }
}
}
public void updateDefaultDataSubId(int activeDataSubId) {
- boolean isEmergencyPreferred = isEmergencyPreferredAccount(mPhone.getSubId(),
- activeDataSubId);
- if (isEmergencyPreferred != mIsEmergencyPreferred) {
- Log.i(this, "updateDefaultDataSubId - changed, new value: " + isEmergencyPreferred);
- mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
+ synchronized (mAccountsLock) {
+ if (!mAccounts.contains(this)) {
+ // Account has already been torn down, don't try to register it again.
+ // This handles the case where teardown has already happened, and we got a Ims
+ // registartion update that lost the race for the mAccountsLock. In such a
+ // scenario by the time we get here, the original phone account could have been
+ // torn down.
+ return;
+ }
+
+ boolean isEmergencyPreferred = isEmergencyPreferredAccount(mPhone.getSubId(),
+ activeDataSubId);
+ if (isEmergencyPreferred != mIsEmergencyPreferred) {
+ Log.i(this,
+ "updateDefaultDataSubId - changed, new value: " + isEmergencyPreferred);
+ mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
+ }
}
}
@@ -1386,7 +1422,8 @@
// We also need to listen for changes to the service state (e.g. emergency -> in service)
// because this could signal a removal or addition of a SIM in a single SIM phone.
- mTelephonyManager.registerTelephonyCallback(new HandlerExecutor(mHandler),
+ mTelephonyManager.registerTelephonyCallback(TelephonyManager.INCLUDE_LOCATION_DATA_NONE,
+ new HandlerExecutor(mHandler),
mTelephonyCallback);
// Listen for user switches. When the user switches, we need to ensure that if the current
@@ -1558,6 +1595,9 @@
}
mAccounts.clear();
}
+ // Invalidate the TelephonyManager cache which maps phone account handles to sub ids since
+ // all the phone account handles are being recreated at this point.
+ PropertyInvalidatedCache.invalidateCache(TelephonyManager.CACHE_KEY_PHONE_ACCOUNT_TO_SUBID);
}
/**
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index b3b0686..9066aed 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -507,7 +507,7 @@
IntentFilter intentFilter = new IntentFilter(
TelecomManager.ACTION_TTY_PREFERRED_MODE_CHANGED);
registerReceiver(mTtyBroadcastReceiver, intentFilter,
- android.Manifest.permission.MODIFY_PHONE_STATE, null);
+ android.Manifest.permission.MODIFY_PHONE_STATE, null, Context.RECEIVER_EXPORTED);
}
@Override
diff --git a/testapps/TestSliceApp/.gitignore b/testapps/TestSliceApp/.gitignore
new file mode 100644
index 0000000..aa724b7
--- /dev/null
+++ b/testapps/TestSliceApp/.gitignore
@@ -0,0 +1,15 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
+local.properties
diff --git a/testapps/TestSliceApp/.idea/.gitignore b/testapps/TestSliceApp/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/testapps/TestSliceApp/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/testapps/TestSliceApp/.idea/compiler.xml b/testapps/TestSliceApp/.idea/compiler.xml
new file mode 100644
index 0000000..fb7f4a8
--- /dev/null
+++ b/testapps/TestSliceApp/.idea/compiler.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..526b4c2
--- /dev/null
+++ b/testapps/TestSliceApp/.idea/gradle.xml
@@ -0,0 +1,20 @@
+<?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
new file mode 100644
index 0000000..a329266
--- /dev/null
+++ b/testapps/TestSliceApp/.idea/misc.xml
@@ -0,0 +1,76 @@
+<?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
new file mode 100644
index 0000000..498ba99
--- /dev/null
+++ b/testapps/TestSliceApp/.idea/vcs.xml
@@ -0,0 +1,40 @@
+<?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/.gitignore b/testapps/TestSliceApp/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/testapps/TestSliceApp/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/build.gradle b/testapps/TestSliceApp/app/build.gradle
new file mode 100644
index 0000000..2b20187
--- /dev/null
+++ b/testapps/TestSliceApp/app/build.gradle
@@ -0,0 +1,40 @@
+plugins {
+ id 'com.android.application'
+}
+
+android {
+ compileSdkPreview "android-Tiramisu"
+
+ defaultConfig {
+ applicationId "com.google.android.sample.testsliceapp"
+ minSdkPreview "Tiramisu"
+ targetSdkPreview "Tiramisu"
+ versionCode 1
+ versionName "1.0"
+
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ }
+ }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+
+ implementation 'androidx.appcompat:appcompat:1.4.1'
+ implementation 'com.google.android.material:material:1.5.0'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
+ implementation 'androidx.legacy:legacy-support-v4:1.0.0'
+ testImplementation 'junit:junit:4.+'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.3'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
+ implementation 'com.squareup.okhttp3:okhttp:3.10.0'
+}
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/proguard-rules.pro b/testapps/TestSliceApp/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/testapps/TestSliceApp/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/androidTest/java/com/google/android/sample/testsliceapp/ExampleInstrumentedTest.java b/testapps/TestSliceApp/app/src/androidTest/java/com/google/android/sample/testsliceapp/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..7732215
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/androidTest/java/com/google/android/sample/testsliceapp/ExampleInstrumentedTest.java
@@ -0,0 +1,41 @@
+/*
+ * 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.google.android.sample.testsliceapp;
+
+import static org.junit.Assert.*;
+
+import android.content.Context;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ assertEquals("com.google.android.sample.testsliceapp", appContext.getPackageName());
+ }
+}
diff --git a/testapps/TestSliceApp/app/src/main/Android.bp b/testapps/TestSliceApp/app/src/main/Android.bp
new file mode 100644
index 0000000..b02d5ff
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/Android.bp
@@ -0,0 +1,24 @@
+package {
+ // See: http://go/android-license-faq
+ default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+android_app {
+ name: "TestSliceApp",
+ srcs: [
+ "java/com/google/android/sample/testsliceapp/*.java",
+ ],
+ static_libs: [
+ "androidx-constraintlayout_constraintlayout",
+ "androidx.appcompat_appcompat",
+ ],
+ libs: ["org.apache.http.legacy"],
+ certificate: "platform",
+ privileged: true,
+ product_specific: true,
+ sdk_version: "system_current",
+ min_sdk_version: "30",
+ optimize: {
+ proguard_flags_files: ["proguard.flags"],
+ },
+}
diff --git a/testapps/TestSliceApp/app/src/main/AndroidManifest.xml b/testapps/TestSliceApp/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..d28bbb0
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/AndroidManifest.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.google.android.sample.testsliceapp">
+
+ <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
+ <application
+ android:allowBackup="true"
+ android:icon="@mipmap/ic_launcher"
+ android:label="@string/app_name"
+ android:roundIcon="@mipmap/ic_launcher_round"
+ android:supportsRtl="true"
+ android:theme="@style/Theme.AppCompat"
+ android:versionCode="34">
+ <activity
+ android:name=".MainActivity"
+ android:exported="true">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ <service android:name=".TestCarrierService"
+ android:permission="android.permission.BIND_CARRIER_SERVICES"
+ android:exported="true">
+ <intent-filter>
+ <action android:name="android.service.carrier.CarrierService" />
+ </intent-filter>
+ <meta-data android:name="android.service.carrier.LONG_LIVED_BINDING"
+ android:value="true" />
+ </service>
+ </application>
+</manifest>
\ No newline at end of file
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
new file mode 100644
index 0000000..a555ce6
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/CBS.java
@@ -0,0 +1,117 @@
+/*
+ * 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.google.android.sample.testsliceapp;
+
+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.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import androidx.fragment.app.Fragment;
+
+/**
+ * A simple {@link Fragment} subclass. Use the {@link CBS#newInstance} factory method to create an
+ * instance of this fragment.
+ */
+public class CBS extends Fragment {
+ Button mRelease, mRequest, mPing;
+ Network mNetwork;
+ ConnectivityManager mConnectivityManager;
+ NetworkCallback mProfileCheckNetworkCallback;
+
+ public CBS() {
+ // Required empty public constructor
+ }
+
+ /**
+ * Use this factory method to create a new instance of this fragment using the provided
+ * parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment CBS.
+ */
+ // TODO: Rename and change types and number of parameters
+ public static CBS newInstance(String param1, String param2) {
+ CBS fragment = new CBS();
+ Bundle args = new Bundle();
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ View view = inflater.inflate(R.layout.fragment_c_b_s, container, false);
+ mProfileCheckNetworkCallback =
+ new NetworkCallback() {
+ @Override
+ public void onAvailable(final Network network) {
+ mNetwork = network;
+ }
+ };
+ mRelease = view.findViewById(R.id.releasecbs);
+ mRelease.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ mConnectivityManager.unregisterNetworkCallback(
+ mProfileCheckNetworkCallback);
+ }
+ });
+ mRequest = view.findViewById(R.id.requestcbs);
+ mRequest.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_CBS);
+ mConnectivityManager.requestNetwork(builder.build(), mProfileCheckNetworkCallback);
+ }
+ });
+ mPing = view.findViewById(R.id.pingcbs);
+ mPing.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if (mNetwork != null) {
+ //mNetwork.
+ try {
+ new RequestTask().ping(mNetwork);
+ } catch (Exception e) {
+ }
+ }
+ }
+ });
+ return view;
+ }
+}
diff --git a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/MainActivity.java b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/MainActivity.java
new file mode 100644
index 0000000..ef4d0ec
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/MainActivity.java
@@ -0,0 +1,47 @@
+/*
+ * 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.google.android.sample.testsliceapp;
+
+import android.os.Bundle;
+import android.util.Log;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+/**
+ * Main activity for slice test app.
+ **/
+public class MainActivity extends AppCompatActivity {
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+ }
+
+ /**
+ * Override the back press event handler.
+ */
+ @Override
+ public void onBackPressed() {
+ int count = getSupportFragmentManager().getBackStackEntryCount();
+ Log.d("MainActivity", "onBackPressed " + count);
+ if (count == 0) {
+ super.onBackPressed();
+ //additional code
+ } else {
+ getSupportFragmentManager().popBackStack();
+ }
+ }
+}
diff --git a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/MainFragment.java b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/MainFragment.java
new file mode 100644
index 0000000..97b3393
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/MainFragment.java
@@ -0,0 +1,100 @@
+/*
+ * 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.google.android.sample.testsliceapp;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+
+/**
+ * A simple {@link Fragment} subclass. Use the {@link MainFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class MainFragment extends Fragment {
+ Button mBW, mLatency, mCBS;
+ public MainFragment() {
+ // Required empty public constructor
+ }
+
+ /**
+ * Use this factory method to create a new instance of this fragment using the provided
+ * parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment MainFragment.
+ */
+ public static MainFragment newInstance(String param1, String param2) {
+ MainFragment fragment = new MainFragment();
+ Bundle args = new Bundle();
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ View view = inflater.inflate(R.layout.fragment_main, container, false);
+ mBW = view.findViewById(R.id.bw);
+ mBW.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ replaceFragment(new PrioritizeBandwidth());
+ }
+ });
+ mLatency = view.findViewById(R.id.latency);
+ mLatency.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ replaceFragment(new PrioritizeLatency());
+ }
+ });
+ mCBS = view.findViewById(R.id.cbs);
+ mCBS.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ replaceFragment(new CBS());
+ }
+ });
+ return view;
+ }
+
+ private void replaceFragment(Fragment fragment) {
+ FragmentManager fragmentManager = getParentFragmentManager();
+ FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
+ try {
+ getParentFragmentManager().popBackStackImmediate(fragment.toString(),
+ FragmentManager.POP_BACK_STACK_INCLUSIVE);
+ } catch (java.lang.IllegalStateException e) {
+
+ }
+ fragmentTransaction.replace(R.id.frameLayoutMainFrag, fragment);
+ fragmentTransaction.commit();
+ }
+}
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
new file mode 100644
index 0000000..d997178
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeBandwidth.java
@@ -0,0 +1,117 @@
+/*
+ * 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.google.android.sample.testsliceapp;
+
+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.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import androidx.fragment.app.Fragment;
+
+/**
+ * A simple {@link Fragment} subclass. Use the {@link PrioritizeBandwidth#newInstance} factory
+ * method to create an instance of this fragment.
+ */
+public class PrioritizeBandwidth extends Fragment {
+
+ Button mRelease, mRequest, mPing;
+ Network mNetwork;
+ ConnectivityManager mConnectivityManager;
+ NetworkCallback mProfileCheckNetworkCallback;
+ public PrioritizeBandwidth() {
+ // Required empty public constructor
+ }
+
+ /**
+ * Use this factory method to create a new instance of this fragment using the provided
+ * parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment PrioritizeBandwidth.
+ */
+ public static PrioritizeBandwidth newInstance(String param1, String param2) {
+ PrioritizeBandwidth fragment = new PrioritizeBandwidth();
+ Bundle args = new Bundle();
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ mConnectivityManager = getContext().getSystemService(ConnectivityManager.class);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ View view = inflater.inflate(R.layout.fragment_prioritize_bandwidth, container, false);
+ mProfileCheckNetworkCallback =
+ new NetworkCallback() {
+ @Override
+ public void onAvailable(final Network network) {
+ mNetwork = network;
+ }
+ };
+ mRelease = view.findViewById(R.id.releasebw);
+ mRelease.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ mConnectivityManager.unregisterNetworkCallback(mProfileCheckNetworkCallback);
+ }
+ });
+ mRequest = view.findViewById(R.id.requestbw);
+ mRequest.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_BANDWIDTH);
+ mConnectivityManager.requestNetwork(builder.build(), mProfileCheckNetworkCallback);
+ }
+ });
+ mPing = view.findViewById(R.id.pingbw);
+ mPing.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if (mNetwork != null) {
+ //mNetwork.
+ try {
+ new RequestTask().ping(mNetwork);
+ } catch (Exception e) {
+ }
+ }
+ }
+ });
+ return view;
+ }
+}
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
new file mode 100644
index 0000000..b45362c
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeLatency.java
@@ -0,0 +1,115 @@
+/*
+ * 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.google.android.sample.testsliceapp;
+
+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.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import androidx.fragment.app.Fragment;
+
+/**
+ * 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;
+ ConnectivityManager mConnectivityManager;
+ NetworkCallback mProfileCheckNetworkCallback;
+ public PrioritizeLatency() {
+ // Required empty public constructor
+ }
+
+ /**
+ * Use this factory method to create a new instance of this fragment using the provided
+ * parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment PrioritizeLatency.
+ */
+ // TODO: Rename and change types and number of parameters
+ public static PrioritizeLatency newInstance(String param1, String param2) {
+ PrioritizeLatency fragment = new PrioritizeLatency();
+ Bundle args = new Bundle();
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ 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() {
+ @Override
+ public void onClick(View view) {
+ mConnectivityManager.unregisterNetworkCallback(mProfileCheckNetworkCallback);
+ }
+ });
+ mRequest = view.findViewById(R.id.requestlatency);
+ mRequest.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);
+ }
+ });
+ mPing = view.findViewById(R.id.pinglatency);
+ mPing.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if (mNetwork != null) {
+ //mNetwork.
+ try {
+ new RequestTask().ping(mNetwork);
+ } catch (Exception e) {
+ }
+ }
+ }
+ });
+ return view;
+ }
+}
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
new file mode 100644
index 0000000..b12939e
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/RequestTask.java
@@ -0,0 +1,55 @@
+/*
+ * 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.google.android.sample.testsliceapp;
+
+import android.net.Network;
+
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+class RequestTask{
+ String ping(Network network) {
+ URL url = null;
+ try {
+ url = new URL("http://www.google.com");
+ } catch (Exception e) {
+ }
+ if (url != null) {
+ try {
+ return httpGet(network, url);
+ } catch (Exception e) {
+ }
+ }
+ return "";
+ }
+
+ /**
+ * Performs a HTTP GET to the specified URL on the specified Network, and returns
+ * the response body decoded as UTF-8.
+ */
+ private static String httpGet(Network network, URL httpUrl) throws IOException {
+ HttpURLConnection connection = (HttpURLConnection) network.openConnection(httpUrl);
+ try {
+ InputStream inputStream = connection.getInputStream();
+ 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
new file mode 100644
index 0000000..b1d019e
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/TestCarrierService.java
@@ -0,0 +1,42 @@
+/*
+ * 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.google.android.sample.testsliceapp;
+
+import android.content.Context;
+import android.os.PersistableBundle;
+import android.service.carrier.CarrierIdentifier;
+import android.service.carrier.CarrierService;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+
+/**
+ * Carrier Service that sets the carrier config upon being bound by the system. Requires UICC
+ * privileges.
+ */
+public class TestCarrierService extends CarrierService {
+ @Override
+ public void onCreate() {
+ CarrierConfigManager cfgMgr =
+ (CarrierConfigManager) getSystemService(Context.CARRIER_CONFIG_SERVICE);
+ cfgMgr.notifyConfigChangedForSubId(SubscriptionManager.getDefaultSubscriptionId());
+ }
+
+ @Override
+ public PersistableBundle onLoadConfig(CarrierIdentifier carrierIdentifier) {
+ PersistableBundle config = new PersistableBundle();
+ return config;
+ }
+}
diff --git a/testapps/TestSliceApp/app/src/main/proguard.flags b/testapps/TestSliceApp/app/src/main/proguard.flags
new file mode 100644
index 0000000..1854804
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/proguard.flags
@@ -0,0 +1,4 @@
+-dontobfuscate
+-dontoptimize
+
+-keep class com.google.android.sample.testsliceapp.*
diff --git a/testapps/TestSliceApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/testapps/TestSliceApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..966abaf
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportHeight="108"
+ android:viewportWidth="108">
+ <path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:endX="85.84757"
+ android:endY="92.4963"
+ android:startX="42.9492"
+ android:startY="49.59793"
+ android:type="linear">
+ <item
+ android:color="#44000000"
+ android:offset="0.0" />
+ <item
+ android:color="#00000000"
+ android:offset="1.0" />
+ </gradient>
+ </aapt:attr>
+ </path>
+ <path
+ android:fillColor="#FFFFFF"
+ android:fillType="nonZero"
+ android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
+ android:strokeColor="#00000000"
+ android:strokeWidth="1" />
+</vector>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/res/drawable/ic_launcher_background.xml b/testapps/TestSliceApp/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..61bb79e
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportHeight="108"
+ android:viewportWidth="108">
+ <path
+ android:fillColor="#3DDC84"
+ android:pathData="M0,0h108v108h-108z" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M9,0L9,108"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M19,0L19,108"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M29,0L29,108"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M39,0L39,108"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M49,0L49,108"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M59,0L59,108"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M69,0L69,108"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M79,0L79,108"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M89,0L89,108"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M99,0L99,108"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,9L108,9"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,19L108,19"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,29L108,29"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,39L108,39"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,49L108,49"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,59L108,59"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,69L108,69"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,79L108,79"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,89L108,89"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M0,99L108,99"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M19,29L89,29"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M19,39L89,39"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M19,49L89,49"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M19,59L89,59"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M19,69L89,69"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M19,79L89,79"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M29,19L29,89"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M39,19L39,89"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M49,19L49,89"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M59,19L59,89"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M69,19L69,89"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+ <path
+ android:fillColor="#00000000"
+ android:pathData="M79,19L79,89"
+ android:strokeColor="#33FFFFFF"
+ android:strokeWidth="0.8" />
+</vector>
diff --git a/testapps/TestSliceApp/app/src/main/res/layout/activity_main.xml b/testapps/TestSliceApp/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..a723e6f
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout 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:layout_width="match_parent"
+ 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"
+ android:name="com.google.android.sample.testsliceapp.MainFragment"/>
+</RelativeLayout>
\ No newline at end of file
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
new file mode 100644
index 0000000..ac2ef9d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/layout/fragment_c_b_s.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout 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:layout_width="match_parent"
+ android:layout_height="match_parent">
+<FrameLayout
+ 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"
+ android:id="@+id/frameLayout3"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".CBS">
+ <TextView
+ android:id="@+id/textView3"
+ android:layout_width="342dp"
+ android:layout_height="49dp"
+ android:text="CBS"
+ 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" />
+ <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" />
+ <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" />
+</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
new file mode 100644
index 0000000..11e95a8
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/layout/fragment_main.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".MainFragment">
+
+ <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: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"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.493"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="0.751" />
+ <Button
+ android:id="@+id/latency"
+ android:layout_width="222dp"
+ android:layout_height="46dp"
+ android:text="PRIORITIZE LATENCY"
+ app:layout_constraintBottom_toTopOf="@+id/cbs"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.497"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="0.783" />
+ <Button
+ android:id="@+id/bw"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="PRIORITIZE BANDWIDTH"
+ app:layout_constraintBottom_toTopOf="@+id/latency"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.497"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintVertical_bias="0.623" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+
+</FrameLayout>
\ No newline at end of file
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
new file mode 100644
index 0000000..8933e7a
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_bandwidth.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout 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:layout_width="match_parent"
+ android:layout_height="match_parent">
+ <FrameLayout
+ 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"
+ android:id="@+id/frameLayout2"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".PrioritizeBandwidth">
+ <TextView
+ android:id="@+id/textView2"
+ android:layout_width="371dp"
+ android:layout_height="52dp"
+ android:text="Prioritize Bandwidth"
+ tools:layout_editor_absoluteX="20dp"
+ tools:layout_editor_absoluteY="4dp" />
+ <Button
+ android:id="@+id/releasebw"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="64dp"
+ android:text="Release Network"
+ app:layout_constraintBottom_toTopOf="@+id/requestbw"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/textView2"
+ app:layout_constraintVertical_bias="0.919" />
+ <Button
+ android:id="@+id/pingbw"
+ android:layout_width="182dp"
+ android:layout_height="42dp"
+ android:layout_marginBottom="228dp"
+ android:text="Ping"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.493"
+ app:layout_constraintStart_toStartOf="parent" />
+ <Button
+ android:id="@+id/requestbw"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="308dp"
+ android:text="RequestNetwork"
+ app:layout_constraintBottom_toTopOf="@+id/pingbw"
+ 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.314" />
+</androidx.constraintlayout.widget.ConstraintLayout>
+ </FrameLayout>
+</RelativeLayout>
\ No newline at end of file
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
new file mode 100644
index 0000000..9527d69
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_latency.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout 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:layout_width="match_parent"
+ android:layout_height="match_parent">
+ <FrameLayout
+ 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>
+ </RelativeLayout>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/testapps/TestSliceApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..03eed25
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@drawable/ic_launcher_background" />
+ <foreground android:drawable="@drawable/ic_launcher_foreground" />
+</adaptive-icon>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/testapps/TestSliceApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..03eed25
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@drawable/ic_launcher_background" />
+ <foreground android:drawable="@drawable/ic_launcher_foreground" />
+</adaptive-icon>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/values-af/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-af/strings.xml
new file mode 100644
index 0000000..d172f0f
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-af/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-am/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..0cadb81
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ar/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-as/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..3702d56
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-az/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..385f84e
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-be/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..943a70d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-bg/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-bn/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-bs/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..9799d39
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ca/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..793ab6f
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-cs/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-da/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-de/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-el/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rAU/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rCA/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rGB/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rIN/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..dafc7d2
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rXC/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-es-rUS/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..355b912
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-es/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-et/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-eu/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..6f35108
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-fa/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-fi/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-fr-rCA/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..e9b3b45
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-fr/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-gl/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-gu/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-hi/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-hr/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..0e73dba
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-hu/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..31a60c6
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-hy/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-in/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-is/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-it/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..4287a40
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-iw/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ja/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..8d91ed0
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ka/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-kk/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-km/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..13a202b
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-kn/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ko/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ky/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..3d47ad6
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-lo/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..509fd2d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-lt/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-lv/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-mk/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..47ca9c8
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ml/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..1aa5138
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-mn/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..7fbe792
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-mr/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..b928cd6
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ms/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-my/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..3d601ab
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-nb/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ne/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..5d10fc6
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-nl/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-or/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-pa/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..0bf147b
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-pl/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..b94a687
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-pt-rPT/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-pt/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ro/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ru/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..7c88afe
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-si/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sk/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..b3fd35a
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sl/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sq/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sr/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sv/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..5cc6a6a
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sw/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ta/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..ad9cef8
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-te/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-th/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-tl/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..1e18a88
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-tr/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..0219615
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-uk/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ur/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-uz/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-vi/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-zh-rCN/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..93c0492
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-zh-rHK/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,6 @@
+<?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
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-zu/strings.xml
@@ -0,0 +1,6 @@
+<?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/colors.xml b/testapps/TestSliceApp/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..09837df
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values/colors.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <color name="purple_200">#FFBB86FC</color>
+ <color name="purple_500">#FF6200EE</color>
+ <color name="purple_700">#FF3700B3</color>
+ <color name="teal_200">#FF03DAC5</color>
+ <color name="teal_700">#FF018786</color>
+ <color name="black">#FF000000</color>
+ <color name="white">#FFFFFFFF</color>
+</resources>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/res/values/strings.xml b/testapps/TestSliceApp/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..c2bb089
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values/strings.xml
@@ -0,0 +1,5 @@
+<resources>
+ <string name="app_name">TestSliceApp</string>
+ <!-- TODO: Remove or change this placeholder text -->
+ <string name="hello_blank_fragment">Hello blank fragment</string>
+</resources>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/test/java/com/google/android/sample/testsliceapp/ExampleUnitTest.java b/testapps/TestSliceApp/app/src/test/java/com/google/android/sample/testsliceapp/ExampleUnitTest.java
new file mode 100644
index 0000000..c011e75
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/test/java/com/google/android/sample/testsliceapp/ExampleUnitTest.java
@@ -0,0 +1,32 @@
+/*
+ * 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.google.android.sample.testsliceapp;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() {
+ assertEquals(4, 2 + 2);
+ }
+}
diff --git a/testapps/TestSliceApp/build.gradle b/testapps/TestSliceApp/build.gradle
new file mode 100644
index 0000000..026daed
--- /dev/null
+++ b/testapps/TestSliceApp/build.gradle
@@ -0,0 +1,17 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+buildscript {
+ repositories {
+ google()
+ mavenCentral()
+ }
+ dependencies {
+ classpath "com.android.tools.build:gradle:7.0.4"
+
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ }
+}
+
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
\ No newline at end of file
diff --git a/testapps/TestSliceApp/gradle.properties b/testapps/TestSliceApp/gradle.properties
new file mode 100644
index 0000000..52f5917
--- /dev/null
+++ b/testapps/TestSliceApp/gradle.properties
@@ -0,0 +1,19 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app"s APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Automatically convert third-party libraries to use AndroidX
+android.enableJetifier=true
\ No newline at end of file
diff --git a/testapps/TestSliceApp/gradle/wrapper/gradle-wrapper.jar b/testapps/TestSliceApp/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
--- /dev/null
+++ b/testapps/TestSliceApp/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/testapps/TestSliceApp/gradle/wrapper/gradle-wrapper.properties b/testapps/TestSliceApp/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..db8a139
--- /dev/null
+++ b/testapps/TestSliceApp/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Mon Feb 28 14:52:03 PST 2022
+distributionBase=GRADLE_USER_HOME
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
+distributionPath=wrapper/dists
+zipStorePath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
diff --git a/testapps/TestSliceApp/gradlew b/testapps/TestSliceApp/gradlew
new file mode 100755
index 0000000..4f906e0
--- /dev/null
+++ b/testapps/TestSliceApp/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# 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
+#
+# https://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.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/testapps/TestSliceApp/gradlew.bat b/testapps/TestSliceApp/gradlew.bat
new file mode 100644
index 0000000..ac1b06f
--- /dev/null
+++ b/testapps/TestSliceApp/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/testapps/TestSliceApp/settings.gradle b/testapps/TestSliceApp/settings.gradle
new file mode 100644
index 0000000..5d18e01
--- /dev/null
+++ b/testapps/TestSliceApp/settings.gradle
@@ -0,0 +1,10 @@
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ jcenter() // Warning: this repository is going to shut down soon
+ }
+}
+rootProject.name = "TestSliceApp"
+include ':app'
diff --git a/tests/src/com/android/TestContext.java b/tests/src/com/android/TestContext.java
index 5456469..7edbed9 100644
--- a/tests/src/com/android/TestContext.java
+++ b/tests/src/com/android/TestContext.java
@@ -19,6 +19,7 @@
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doAnswer;
+import android.content.AttributionSource;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
@@ -29,6 +30,7 @@
import android.os.Handler;
import android.os.Looper;
import android.os.PersistableBundle;
+import android.os.Process;
import android.telecom.TelecomManager;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
@@ -96,6 +98,11 @@
}
@Override
+ public AttributionSource getAttributionSource() {
+ return new AttributionSource(Process.myUid(), getPackageName(), "");
+ }
+
+ @Override
public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) {
return null;
}
diff --git a/tests/src/com/android/phone/ImsProvisioningControllerTest.java b/tests/src/com/android/phone/ImsProvisioningControllerTest.java
index c26b6a0..49ce6b5 100644
--- a/tests/src/com/android/phone/ImsProvisioningControllerTest.java
+++ b/tests/src/com/android/phone/ImsProvisioningControllerTest.java
@@ -16,6 +16,7 @@
package com.android.phone;
+import static android.telephony.ims.ImsRcsManager.CAPABILITY_TYPE_PRESENCE_UCE;
import static android.telephony.ims.ProvisioningManager.KEY_EAB_PROVISIONING_STATUS;
import static android.telephony.ims.ProvisioningManager.KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE;
import static android.telephony.ims.ProvisioningManager.KEY_VOLTE_PROVISIONING_STATUS;
@@ -28,8 +29,6 @@
import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_UT;
import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO;
import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE;
-import static android.telephony.ims.feature.RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_OPTIONS_UCE;
-import static android.telephony.ims.feature.RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE;
import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM;
import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN;
import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_LTE;
@@ -70,7 +69,6 @@
import android.test.suitebuilder.annotation.SmallTest;
import android.testing.TestableLooper;
import android.util.Log;
-import android.util.SparseArray;
import com.android.ims.FeatureConnector;
import com.android.ims.ImsConfig;
@@ -178,9 +176,6 @@
int mSubId0 = 1234;
int mSubId1 = 5678;
- SparseArray<int[]> mMmTelTechMap = new SparseArray<>();
- SparseArray<int[]> mRcsTechMap = new SparseArray<>();
-
int[][] mMmTelProvisioningStorage;
int[][] mRcsProvisioningStorage;
int[][] mImsConfigStorage;
@@ -210,14 +205,6 @@
return mImsConfig;
}
- protected int[] getTechsFromCarrierConfig(int subId, int capability, boolean isMmtel) {
- if (isMmtel) {
- return mMmTelTechMap.get(capability);
- } else {
- return mRcsTechMap.get(capability);
- }
- }
-
protected boolean isValidSubId(int subId) {
return mIsValidSubId;
}
@@ -328,6 +315,14 @@
public void connectionReady_MmTelFeatureListener() 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);
@@ -376,6 +371,10 @@
public void connectionReady_RcsFeatureListener() 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);
@@ -440,22 +439,24 @@
// voice, all tech
// video, all tech
// UT, all tech
- mMmTelTechMap.clear();
- mMmTelTechMap.put(CAPABILITY_TYPE_VOICE,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
- mMmTelTechMap.put(CAPABILITY_TYPE_VIDEO,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
- mMmTelTechMap.put(CAPABILITY_TYPE_UT,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VOICE_INT_ARRAY,
+ RADIO_TECHS);
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VIDEO_INT_ARRAY,
+ RADIO_TECHS);
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_UT_INT_ARRAY,
+ RADIO_TECHS);
+ // provisioning required for each capability
boolean[][] expectedRequired = new boolean[][] {
+ //voice - LTE, WLAN, CROSS-SIM, NR
{true, true, true, true},
+ //video - LTE, WLAN, CROSS-SIM, NR
{true, true, true, true},
+ //UT - LTE, WLAN, CROSS-SIM, NR
{true, true, true, true},
+ //SMS not required
{false, false, false, false},
+ //Call composer not required
{false, false, false, false}
};
@@ -472,6 +473,45 @@
@Test
@SmallTest
+ public void isImsProvisioningRequiredForCapability_withDeprecatedKey() throws Exception {
+ createImsProvisioningController();
+
+ // provisioning required capability
+ // KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE is not defined
+ // but KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL and
+ // KEY_CARRIER_SUPPORTS_SS_OVER_UT_BOOL are defined
+ setDeprecatedCarrierConfig(
+ CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL, true);
+ setDeprecatedCarrierConfig(
+ CarrierConfigManager.KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL, true);
+
+ // provisioning required for each capability
+ boolean[][] expectedRequired = new boolean[][] {
+ //voice - LTE, WLAN, CROSS-SIM, NR
+ {true, true, true, true},
+ //video - LTE, WLAN, CROSS-SIM, NR
+ {true, true, true, true},
+ //UT - LTE, WLAN, CROSS-SIM, NR
+ {true, true, true, true},
+ //SMS not required
+ {false, false, false, false},
+ //Call composer not required
+ {false, false, false, false}
+ };
+
+ boolean isRequired;
+ for (int i = 0; i < MMTEL_CAPAS.length; i++) {
+ for (int j = 0; j < RADIO_TECHS.length; j++) {
+ isRequired = mTestImsProvisioningController
+ .isImsProvisioningRequiredForCapability(
+ mSubId0, MMTEL_CAPAS[i], RADIO_TECHS[j]);
+ assertEquals(expectedRequired[i][j], isRequired);
+ }
+ }
+ }
+
+ @Test
+ @SmallTest
public void isRcsProvisioningRequiredForCapability_withInvalidCapabilityTech()
throws Exception {
createImsProvisioningController();
@@ -503,12 +543,13 @@
createImsProvisioningController();
// provisioning required capability : PRESENCE, tech : all
- mRcsTechMap.clear();
- mRcsTechMap.put(CAPABILITY_TYPE_PRESENCE_UCE,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+ setCarrierConfig(mSubId0,
+ CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_PRESENCE_UCE_INT_ARRAY, RADIO_TECHS);
- boolean[] expectedRequired = new boolean[] {true, true, true, true};
+ // PRESENCE provisioning required on
+ boolean[] expectedRequired = new boolean[]
+ //LTE, WLAN, CROSS-SIM, NR
+ {true, true, true, true};
boolean isRequired;
for (int i = 0; i < RADIO_TECHS.length; i++) {
@@ -521,6 +562,31 @@
@Test
@SmallTest
+ public void isRcsProvisioningRequiredForCapability_withDeprecatedKey() throws Exception {
+ createImsProvisioningController();
+
+ // provisioning required capability
+ // KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE is not defined
+ // but KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL is defined
+ setDeprecatedCarrierConfig(
+ CarrierConfigManager.KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL, true);
+
+ // PRESENCE provisioning required on
+ boolean[] expectedRequired = new boolean[]
+ //LTE, WLAN, CROSS-SIM, NR
+ {true, true, true, true};
+
+ boolean isRequired;
+ for (int i = 0; i < RADIO_TECHS.length; i++) {
+ isRequired = mTestImsProvisioningController
+ .isRcsProvisioningRequiredForCapability(
+ mSubId0, CAPABILITY_TYPE_PRESENCE_UCE, RADIO_TECHS[i]);
+ assertEquals(expectedRequired[i], isRequired);
+ }
+ }
+
+ @Test
+ @SmallTest
public void getImsProvisioningRequiredForCapability_withVoiceVideoUt() throws Exception {
createImsProvisioningController();
@@ -528,16 +594,12 @@
// voice, all tech
// video, all tech
// UT, all tech
- mMmTelTechMap.clear();
- mMmTelTechMap.put(CAPABILITY_TYPE_VOICE,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
- mMmTelTechMap.put(CAPABILITY_TYPE_VIDEO,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
- mMmTelTechMap.put(CAPABILITY_TYPE_UT,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VOICE_INT_ARRAY,
+ RADIO_TECHS);
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VIDEO_INT_ARRAY,
+ RADIO_TECHS);
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_UT_INT_ARRAY,
+ RADIO_TECHS);
// provisioning Status
mMmTelProvisioningStorage = new int[][] {
@@ -622,11 +684,10 @@
// provisioning required capability
// voice, LTE, IWLAN
// video, LTE
- mMmTelTechMap.clear();
- mMmTelTechMap.put(CAPABILITY_TYPE_VOICE,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN});
- mMmTelTechMap.put(CAPABILITY_TYPE_VIDEO,
- new int[] {REGISTRATION_TECH_LTE});
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VOICE_INT_ARRAY,
+ REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN);
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VIDEO_INT_ARRAY,
+ REGISTRATION_TECH_LTE);
// provisioning StatusP, all of provisioning status is not provisioned
mMmTelProvisioningStorage = new int[][]{
@@ -697,10 +758,8 @@
// provisioning required capability
// PRESENCE, all tech
- mRcsTechMap.clear();
- mRcsTechMap.put(CAPABILITY_TYPE_PRESENCE_UCE,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+ setCarrierConfig(mSubId0,
+ CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_PRESENCE_UCE_INT_ARRAY, RADIO_TECHS);
// provisioning Status
mRcsProvisioningStorage = new int[][] {
@@ -743,9 +802,9 @@
// provisioning required capability
// PRESENCE, LTE, IWLAN
- mRcsTechMap.clear();
- mRcsTechMap.put(CAPABILITY_TYPE_PRESENCE_UCE,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN});
+ setCarrierConfig(mSubId0,
+ CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_PRESENCE_UCE_INT_ARRAY,
+ REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN);
// provisioning Status, all of provisioning status is not provisioned
mRcsProvisioningStorage = new int[][]{
@@ -805,10 +864,8 @@
// provisioning required capability
// voice, all tech
- mMmTelTechMap.clear();
- mMmTelTechMap.put(CAPABILITY_TYPE_VOICE,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VOICE_INT_ARRAY,
+ RADIO_TECHS);
// provisioning Status, all of provisioning status is not provisioned
mMmTelProvisioningStorage = new int[][] {
@@ -886,10 +943,8 @@
// provisioning required capability
// video, all tech
- mMmTelTechMap.clear();
- mMmTelTechMap.put(CAPABILITY_TYPE_VIDEO,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VIDEO_INT_ARRAY,
+ RADIO_TECHS);
// provisioning Status, all of provisioning status is not provisioned
mMmTelProvisioningStorage = new int[][] {
@@ -965,10 +1020,8 @@
// provisioning required capability
// PRESENCE, all tech
- mRcsTechMap.clear();
- mRcsTechMap.put(CAPABILITY_TYPE_PRESENCE_UCE,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+ setCarrierConfig(mSubId0,
+ CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_PRESENCE_UCE_INT_ARRAY, RADIO_TECHS);
// provisioning Status, all of provisioning status is not provisioned
mRcsProvisioningStorage = new int[][] {
@@ -1060,13 +1113,10 @@
// provisioning required capability
// voice, all tech
// video, all tech
- mMmTelTechMap.clear();
- mMmTelTechMap.put(CAPABILITY_TYPE_VOICE,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
- mMmTelTechMap.put(CAPABILITY_TYPE_VIDEO,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VIDEO_INT_ARRAY,
+ RADIO_TECHS);
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VIDEO_INT_ARRAY,
+ RADIO_TECHS);
// provisioning Status, all of provisioning status is not set
mMmTelProvisioningStorage = new int[][] {
@@ -1144,10 +1194,8 @@
// provisioning required capability
// presence, all tech
- mRcsTechMap.clear();
- mRcsTechMap.put(CAPABILITY_TYPE_PRESENCE_UCE,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+ setCarrierConfig(mSubId0,
+ CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_PRESENCE_UCE_INT_ARRAY, RADIO_TECHS);
// provisioning Status, all of provisioning status is not set
mRcsProvisioningStorage = new int[][]{
@@ -1246,11 +1294,10 @@
// provisioning required capability
// voice, LTE, IWLAN
// video, LTE
- mMmTelTechMap.clear();
- mMmTelTechMap.put(CAPABILITY_TYPE_VOICE,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN});
- mMmTelTechMap.put(CAPABILITY_TYPE_VIDEO,
- new int[] {REGISTRATION_TECH_LTE});
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VOICE_INT_ARRAY,
+ REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN);
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VIDEO_INT_ARRAY,
+ REGISTRATION_TECH_LTE);
// provisioning Status, all of provisioning status is not set
mMmTelProvisioningStorage = new int[][] {
@@ -1261,10 +1308,8 @@
// provisioning required capability
// presence, all tech
- mRcsTechMap.clear();
- mRcsTechMap.put(CAPABILITY_TYPE_PRESENCE_UCE,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+ setCarrierConfig(mSubId0,
+ CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_PRESENCE_UCE_INT_ARRAY, RADIO_TECHS);
// provisioning Status, all of provisioning status is not set
mRcsProvisioningStorage = new int[][]{
@@ -1346,11 +1391,10 @@
// provisioning required capability
// voice, LTE, IWLAN
// video, LTE
- mMmTelTechMap.clear();
- mMmTelTechMap.put(CAPABILITY_TYPE_VOICE,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN});
- mMmTelTechMap.put(CAPABILITY_TYPE_VIDEO,
- new int[] {REGISTRATION_TECH_LTE});
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VOICE_INT_ARRAY,
+ REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN);
+ setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VIDEO_INT_ARRAY,
+ REGISTRATION_TECH_LTE);
// provisioning Status, all of provisioning status is not set
mMmTelProvisioningStorage = new int[][] {
@@ -1361,10 +1405,8 @@
// provisioning required capability
// presence, all tech
- mRcsTechMap.clear();
- mRcsTechMap.put(CAPABILITY_TYPE_PRESENCE_UCE,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+ setCarrierConfig(mSubId0,
+ CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_PRESENCE_UCE_INT_ARRAY, RADIO_TECHS);
// provisioning Status, all of provisioning status is not set
mRcsProvisioningStorage = new int[][]{
@@ -1458,6 +1500,14 @@
public void onMultiSimConfigChanged() 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);
+
// change number of slot 2 -> 1
mHandler.sendMessage(mHandler.obtainMessage(
mTestImsProvisioningController.EVENT_MULTI_SIM_CONFIGURATION_CHANGE,
@@ -1517,6 +1567,11 @@
clearInvocations(mIFeatureProvisioningCallback0);
clearInvocations(mIFeatureProvisioningCallback1);
+ // provisioning required capability
+ // voice, all tech
+ setCarrierConfig(mSubId1, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VOICE_INT_ARRAY,
+ RADIO_TECHS);
+
// check get,setImsProvisioningRequiredForCapability with mSubId1, mPhoneId1 : Ok
int capability = CAPABILITY_TYPE_VOICE;
int tech = REGISTRATION_TECH_LTE;
@@ -1629,22 +1684,22 @@
}
private void initializeDefaultData() throws Exception {
- mMmTelTechMap.clear();
- mMmTelTechMap.put(CAPABILITY_TYPE_VOICE,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
- mMmTelTechMap.put(CAPABILITY_TYPE_VIDEO,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
- mMmTelTechMap.put(CAPABILITY_TYPE_UT,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
- mMmTelTechMap.put(CAPABILITY_TYPE_SMS,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
- mMmTelTechMap.put(CAPABILITY_TYPE_CALL_COMPOSER,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+ mPersistableBundle0.clear();
+ mPersistableBundle0.putPersistableBundle(
+ CarrierConfigManager.Ims.KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE,
+ new PersistableBundle());
+ mPersistableBundle0.putPersistableBundle(
+ CarrierConfigManager.Ims.KEY_RCS_REQUIRES_PROVISIONING_BUNDLE,
+ new PersistableBundle());
+
+ mPersistableBundle1.clear();
+ mPersistableBundle1.putPersistableBundle(
+ CarrierConfigManager.Ims.KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE,
+ new PersistableBundle());
+ mPersistableBundle1.putPersistableBundle(
+ CarrierConfigManager.Ims.KEY_RCS_REQUIRES_PROVISIONING_BUNDLE,
+ new PersistableBundle());
+
mMmTelProvisioningStorage = new int[][]{
{CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE, 1},
{CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_IWLAN, 1},
@@ -1668,13 +1723,6 @@
{CAPABILITY_TYPE_CALL_COMPOSER, REGISTRATION_TECH_NR, 1}
};
- mRcsTechMap.clear();
- mRcsTechMap.put(CAPABILITY_TYPE_OPTIONS_UCE,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
- mRcsTechMap.put(CAPABILITY_TYPE_PRESENCE_UCE,
- new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
- REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
mRcsProvisioningStorage = new int[][]{
{CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_LTE, 1},
{CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_IWLAN, 1},
@@ -1690,6 +1738,29 @@
};
}
+ private void setCarrierConfig(int subId, String capabilityKey, int... techs) {
+ PersistableBundle imsCarrierConfig = mPersistableBundle0;
+ if (subId == mSubId1) {
+ imsCarrierConfig = mPersistableBundle1;
+ }
+
+ PersistableBundle requiredBundle;
+ if (capabilityKey.equals(
+ CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_PRESENCE_UCE_INT_ARRAY)) {
+ requiredBundle = imsCarrierConfig.getPersistableBundle(
+ CarrierConfigManager.Ims.KEY_RCS_REQUIRES_PROVISIONING_BUNDLE);
+ } else {
+ requiredBundle = imsCarrierConfig.getPersistableBundle(
+ CarrierConfigManager.Ims.KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE);
+ }
+
+ requiredBundle.putIntArray(capabilityKey, techs);
+ }
+
+ private void setDeprecatedCarrierConfig(String key, boolean value) {
+ mPersistableBundle0.putBoolean(key, value);
+ }
+
private int getProvisionedValue(int i, int j) {
for (int[] data : mMmTelProvisioningStorage) {
if (data[0] == i && data[1] == j) {
diff --git a/tests/src/com/android/phone/LocationAccessPolicyTest.java b/tests/src/com/android/phone/LocationAccessPolicyTest.java
index 84bf619..58e7fbd 100644
--- a/tests/src/com/android/phone/LocationAccessPolicyTest.java
+++ b/tests/src/com/android/phone/LocationAccessPolicyTest.java
@@ -29,6 +29,7 @@
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
+import android.content.res.Resources;
import android.location.LocationManager;
import android.os.Build;
import android.os.UserHandle;
@@ -149,11 +150,13 @@
private static final int TESTING_UID = 10001;
private static final int TESTING_PID = 8009;
+ private static final String TESTING_CALLING_PACKAGE = "com.android.phone";
@Mock Context mContext;
@Mock AppOpsManager mAppOpsManager;
@Mock LocationManager mLocationManager;
@Mock PackageManager mPackageManager;
+ @Mock Resources mResources;
Scenario mScenario;
@Before
@@ -163,6 +166,10 @@
mockContextSystemService(LocationManager.class, mLocationManager);
mockContextSystemService(PackageManager.class, mPackageManager);
when(mContext.getPackageManager()).thenReturn(mPackageManager);
+ when(mContext.getResources()).thenReturn(mResources);
+ when(mResources.getStringArray(
+ com.android.internal.R.array.config_serviceStateLocationAllowedPackages))
+ .thenReturn(new String[]{TESTING_CALLING_PACKAGE});
}
private <T> void mockContextSystemService(Class<T> clazz , T obj) {
@@ -249,6 +256,20 @@
.build());
scenarios.add(new Scenario.Builder()
+ .setName("System location is off but package is allowlisted for location")
+ .setAppHasFineManifest(true)
+ .setFineAppOp(AppOpsManager.MODE_ALLOWED)
+ .setAppSdkLevel(Build.VERSION_CODES.P)
+ .setIsDynamicLocationEnabled(false)
+ .setQuery(getDefaultQueryBuilder()
+ .setMinSdkVersionForEnforcement(Build.VERSION_CODES.N)
+ .setMinSdkVersionForFine(Build.VERSION_CODES.N)
+ .setMinSdkVersionForCoarse(Build.VERSION_CODES.N)
+ .setCallingPackage(TESTING_CALLING_PACKAGE).build())
+ .setExpectedResult(LocationAccessPolicy.LocationPermissionResult.ALLOWED)
+ .build());
+
+ scenarios.add(new Scenario.Builder()
.setName("App on latest SDK level has all proper permissions for fine")
.setAppHasFineManifest(true)
.setFineAppOp(AppOpsManager.MODE_ALLOWED)
diff --git a/tests/src/com/android/phone/PhoneUtilsTest.java b/tests/src/com/android/phone/PhoneUtilsTest.java
new file mode 100644
index 0000000..eb4c248
--- /dev/null
+++ b/tests/src/com/android/phone/PhoneUtilsTest.java
@@ -0,0 +1,153 @@
+/*
+ * 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 org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.eq;
+import static org.mockito.Mockito.when;
+
+import android.content.ComponentName;
+import android.telecom.PhoneAccountHandle;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+
+import androidx.test.runner.AndroidJUnit4;
+
+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 {
+ @Mock
+ private SubscriptionManager mMockSubscriptionManager;
+ @Mock
+ private SubscriptionInfo mMockSubscriptionInfo;
+ @Mock
+ private GsmCdmaPhone mMockPhone;
+
+ private final int mPhoneAccountHandleIdInteger = 123;
+ private final String mPhoneAccountHandleIdString = "123";
+ private static final ComponentName PSTN_CONNECTION_SERVICE_COMPONENT = new ComponentName(
+ "com.android.phone", "com.android.services.telephony.TelephonyConnectionService");
+ 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);
+ when(mMockSubscriptionManager.getActiveSubscriptionInfo(
+ eq(mPhoneAccountHandleIdInteger))).thenReturn(mMockSubscriptionInfo);
+ when(mMockPhone.getSubId()).thenReturn(mPhoneAccountHandleIdInteger);
+ Phone[] mPhones = new Phone[] {mMockPhone};
+ 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(
+ mMockSubscriptionManager, mPhoneAccountHandleTest));
+ }
+
+ @Test
+ public void testGetPhoneForPhoneAccountHandle() throws Exception {
+ assertEquals(mMockPhone, PhoneUtils.getPhoneForPhoneAccountHandle(
+ mPhoneAccountHandleTest));
+ }
+
+ @Test
+ public void testMakePstnPhoneAccountHandleWithPrefix() throws Exception {
+ PhoneAccountHandle phoneAccountHandleTest = new PhoneAccountHandle(
+ PSTN_CONNECTION_SERVICE_COMPONENT, mPhoneAccountHandleIdString);
+ assertEquals(phoneAccountHandleTest, PhoneUtils.makePstnPhoneAccountHandleWithPrefix(
+ mPhoneAccountHandleIdString, "", false));
+ }
+}
diff --git a/tests/src/com/android/phone/SubscriptionInfoHelperTest.java b/tests/src/com/android/phone/SubscriptionInfoHelperTest.java
new file mode 100644
index 0000000..90f682f
--- /dev/null
+++ b/tests/src/com/android/phone/SubscriptionInfoHelperTest.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2021 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 org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import android.content.Intent;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+
+import org.junit.Test;
+
+public class SubscriptionInfoHelperTest {
+ private static final String EXTRA_SUBSCRIPTION_LABEL =
+ "com.android.phone.settings.SubscriptionInfoHelper.SubscriptionLabel";
+
+ /**
+ * Ensures {@link SubscriptionInfoHelper#addExtrasToIntent(Intent, SubscriptionInfo)} can
+ * properly handle a null display name without crashing.
+ */
+ @Test
+ public void testAddExtrasToIntentWithNullDisplayName() {
+ Intent intent = new Intent();
+ SubscriptionInfo info = new SubscriptionInfo(1, // id
+ "90210", // iccId
+ 1, // simSlotIndex
+ null, // displayName
+ null, // carrierName
+ SubscriptionManager.NAME_SOURCE_CARRIER_ID, // nameSource
+ 0, //iconTint
+ "555-1212", // number
+ 0, // roaming
+ null, // icon
+ "401", // mcc
+ "384", // mnc
+ "us", // countryIso
+ false, // isEmbedded
+ null, // nativeAccessRules
+ ""); // cardString
+ SubscriptionInfoHelper.addExtrasToIntent(intent, info);
+ assertNull(intent.getStringExtra(EXTRA_SUBSCRIPTION_LABEL));
+ assertTrue(intent.hasExtra(EXTRA_SUBSCRIPTION_LABEL));
+ }
+}
diff --git a/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java b/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java
index 85dba51..8b0ac5c 100644
--- a/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java
+++ b/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java
@@ -75,6 +75,12 @@
}
@Test
+ public void testResolveEuiccUiIntent_nullAction() {
+ mIntent = new Intent();
+ assertNull(mActivity.resolveEuiccUiIntent());
+ }
+
+ @Test
public void testResolveEuiccUiIntent_unsupportedAction() {
mIntent = new Intent("fake.action");
assertNull(mActivity.resolveEuiccUiIntent());
diff --git a/tests/src/com/android/services/telephony/TelephonyManagerTest.java b/tests/src/com/android/services/telephony/TelephonyManagerTest.java
index 2202bc7..cf1ae8f 100644
--- a/tests/src/com/android/services/telephony/TelephonyManagerTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyManagerTest.java
@@ -16,14 +16,19 @@
package com.android.services.telephony;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.PropertyInvalidatedCache;
+import android.content.ComponentName;
import android.content.Context;
+import android.telecom.PhoneAccountHandle;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.emergency.EmergencyNumber;
@@ -48,6 +53,12 @@
public class TelephonyManagerTest {
private static final String PKG_NAME = "Unittest.TelephonyManagerTest";
private static final String TAG = "TelephonyManagerTest";
+ private static final PhoneAccountHandle TEST_HANDLE1 = new PhoneAccountHandle(
+ new ComponentName("com.test", "Test"), "1");
+ private static final int TEST_SUBID_1 = 1;
+ private static final PhoneAccountHandle TEST_HANDLE2 = new PhoneAccountHandle(
+ new ComponentName("com.test", "Test"), "2");
+ private static final int TEST_SUBID_2 = 2;
private ITelephony mMockITelephony;
private SubscriptionManager mMockSubscriptionManager;
@@ -180,4 +191,31 @@
EmergencyNumber.EMERGENCY_SERVICE_CATEGORY_POLICE));
}
}
+
+ /**
+ * Verifies that {@link TelephonyManager#getSubscriptionId(PhoneAccountHandle)} is properly
+ * using a property invalidated cache.
+ * @throws Exception
+ */
+ @Test
+ public void testGetSubscriptionIdCache() throws Exception {
+ PropertyInvalidatedCache.invalidateCache(TelephonyManager.CACHE_KEY_PHONE_ACCOUNT_TO_SUBID);
+ when(mMockITelephony.getSubIdForPhoneAccountHandle(eq(TEST_HANDLE1),
+ anyString(), anyString())).thenReturn(TEST_SUBID_1);
+ when(mMockITelephony.getSubIdForPhoneAccountHandle(eq(TEST_HANDLE2),
+ anyString(), anyString())).thenReturn(TEST_SUBID_2);
+
+ // Ensure queries for phone account handles come back consistently.
+ assertEquals(TEST_SUBID_1, mTelephonyManager.getSubscriptionId(TEST_HANDLE1));
+ assertEquals(TEST_SUBID_1, mTelephonyManager.getSubscriptionId(TEST_HANDLE1));
+ assertEquals(TEST_SUBID_2, mTelephonyManager.getSubscriptionId(TEST_HANDLE2));
+ assertEquals(TEST_SUBID_2, mTelephonyManager.getSubscriptionId(TEST_HANDLE2));
+
+ // We should have only had a single call to the underlying AIDL, however. The cache should
+ // have protected us from calling this multiple times.
+ verify(mMockITelephony, times(1)).getSubIdForPhoneAccountHandle(eq(TEST_HANDLE1),
+ anyString(), anyString());
+ verify(mMockITelephony, times(1)).getSubIdForPhoneAccountHandle(eq(TEST_HANDLE2),
+ anyString(), anyString());
+ }
}