Merge "Allow telephony to register puller in statsd." into rvc-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 8e7e669..0f316ea 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -90,6 +90,7 @@
<protected-broadcast android:name= "android.telephony.action.SUBSCRIPTION_SPECIFIC_CARRIER_IDENTITY_CHANGED" />
<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" />
<!-- For Vendor Debugging in Telephony -->
<protected-broadcast android:name="android.telephony.action.ANOMALY_REPORTED" />
@@ -213,6 +214,7 @@
ACTION_SIM_SLOT_STATUS_CHANGED broadcast to start activities
from the background. -->
<uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
+ <uses-permission android:name="android.permission.NETWORK_STATS_PROVIDER" />
<application android:name="PhoneApp"
android:persistent="true"
diff --git a/res/layout/sim_ndp.xml b/res/layout/sim_ndp.xml
index 5e3c472..5f03d7b 100644
--- a/res/layout/sim_ndp.xml
+++ b/res/layout/sim_ndp.xml
@@ -29,6 +29,7 @@
android:layout_centerInParent="true">
<TextView
+ android:id="@+id/perso_subtype_text"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
diff --git a/res/values-af/config.xml b/res/values-af/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-af/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 65a380d..66a8ee8 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -307,9 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Datagebruiksperiode"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Datatempobeleid"</string>
<string name="throttle_help" msgid="2624535757028809735">"Kom meer te wete"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_status_subtext (1110276415078236687) -->
- <skip />
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) van <xliff:g id="USED_2">%3$s</xliff:g> periode se maksimum\nVolgende periode begin oor <xliff:g id="USED_3">%4$d</xliff:g> dae (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) van <xliff:g id="USED_2">%3$s</xliff:g> tydperk se maksimum"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> maksimum oorskry\nDatatempo verminder na <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g>٪ van siklus het verloop\nVolgende periode begin oor <xliff:g id="USED_1">%2$d</xliff:g> dae (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-ar/config.xml b/res/values-ar/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-ar/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index ccef876..e2c5779 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -294,7 +294,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>
@@ -704,7 +704,7 @@
<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>
+ <string name="mobile_data_status_roaming_turned_off_subtext" msgid="6840673347416227054">"تم إيقاف تجوال البيانات"</string>
<string name="mobile_data_status_roaming_turned_on_subtext" msgid="5615757897768777865">"تم تفعيل تجوال البيانات"</string>
<string name="mobile_data_status_roaming_without_plan_subtext" msgid="6536671968072284677">"التجوال قيد التشغيل حاليًا، يتطلب خطة بيانات"</string>
<string name="mobile_data_status_roaming_with_plan_subtext" msgid="2576177169108123095">"التجوال قيد التشغيل حاليًا، خطة البيانات نشطة"</string>
diff --git a/res/values-as/config.xml b/res/values-as/config.xml
deleted file mode 100644
index c50aa9d..0000000
--- a/res/values-as/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"ইউএছ"</item>
- </string-array>
-</resources>
diff --git a/res/values-az/config.xml b/res/values-az/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-az/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-b+sr+Latn/config.xml b/res/values-b+sr+Latn/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-b+sr+Latn/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-be/config.xml b/res/values-be/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-be/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index ba9e58f..69b1f84 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -307,7 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Перыяд выкарыстання дадзеных"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Палітыка хуткасці перадачы дадзеных"</string>
<string name="throttle_help" msgid="2624535757028809735">"Дадатковая iнфармацыя"</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"Выкарыстана <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>??) з максімуму перыяду <xliff:g id="USED_2">%3$s</xliff:g>\nНаступны перыяд пачнецца праз <xliff:g id="USED_3">%4$d</xliff:g> д. (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"Выкарыстана <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) з максімальнага перыяду (<xliff:g id="USED_2">%3$s</xliff:g>)\nНаступны перыяд пачнецца праз <xliff:g id="USED_3">%4$d</xliff:g> сут (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"Выкарыстана <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>??) з максімуму перыяду (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"Максімум <xliff:g id="USED_0">%1$s</xliff:g> перавышаны\nХуткасць перадачы дадзеных зніжана да <xliff:g id="USED_1">%2$d</xliff:g> Кб/с"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g>?? цыклу прайшло\nНаступны перыяд пачнецца праз <xliff:g id="USED_1">%2$d</xliff:g> д. (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-bn/config.xml b/res/values-bn/config.xml
deleted file mode 100644
index 45a9e6b..0000000
--- a/res/values-bn/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"আমাদের"</item>
- </string-array>
-</resources>
diff --git a/res/values-bs/config.xml b/res/values-bs/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-bs/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-ca/config.xml b/res/values-ca/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-ca/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 887a915..678cb92 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -307,7 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Període d\'ús de dades"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Política de velocitat de dades"</string>
<string name="throttle_help" msgid="2624535757028809735">"Més informació"</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) del període <xliff:g id="USED_2">%3$s</xliff:g> màxim\nEl període següent comença d\'aquí a <xliff:g id="USED_3">%4$d</xliff:g> dies (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) del període màxim de <xliff:g id="USED_2">%3$s</xliff:g>.\nEl període següent comença d\'aquí a <xliff:g id="USED_3">%4$d</xliff:g> dies (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) de període <xliff:g id="USED_2">%3$s</xliff:g> màxim"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> màxim superat\nVelocitat de dades reduïda a <xliff:g id="USED_1">%2$d</xliff:g> kbps"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g>٪ del cicle transcorregut\nEl període següent comença d\'aquí a <xliff:g id="USED_1">%2$d</xliff:g> dies (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-cs/config.xml b/res/values-cs/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-cs/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-da/config.xml b/res/values-da/config.xml
deleted file mode 100644
index 14a7f6d..0000000
--- a/res/values-da/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"da"</item>
- </string-array>
-</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 183ff67..15a9113 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -168,7 +168,7 @@
<string name="label_available" msgid="1316084116670821258">"Tilgængelige netværk"</string>
<string name="load_networks_progress" msgid="4051433047717401683">"Søger..."</string>
<string name="empty_networks_list" msgid="9216418268008582342">"Der blev ikke fundet nogen netværk."</string>
- <string name="network_query_error" msgid="3862515805115145124">"Der kunne ikke findes netværk. Prøv igen."</string>
+ <string name="network_query_error" msgid="3862515805115145124">"Der blev ikke fundet netværk. Prøv igen."</string>
<string name="register_on_network" msgid="4194770527833960423">"Registrerer på <xliff:g id="NETWORK">%s</xliff:g> ..."</string>
<string name="not_allowed" msgid="8541221928746104798">"Dit SIM-kort tillader ikke en forbindelse til dette netværk."</string>
<string name="connect_later" msgid="1950138106010005425">"Der kan ikke oprettes forbindelse til dette netværk lige nu. Prøv igen senere."</string>
@@ -307,9 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Periode for databrug"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Politik om datahastighed"</string>
<string name="throttle_help" msgid="2624535757028809735">"Flere oplysninger"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_status_subtext (1110276415078236687) -->
- <skip />
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g> %%) af <xliff:g id="USED_2">%3$s</xliff:g> periodens maksimum\nNæste periode om <xliff:g id="USED_3">%4$d</xliff:g> dage (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g> ٪) af <xliff:g id="USED_2">%3$s</xliff:g> periodens maksimum"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> maksimum er overskredet\nDatahastigheden er nedsat til <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g> ٪ af forløbet er gennemført\nNæste periode om <xliff:g id="USED_1">%2$d</xliff:g> dage (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-de/config.xml b/res/values-de/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-de/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index a29ae3b..948c7cc 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -49,12 +49,12 @@
<string name="add_vm_number_str" msgid="7368168964435881637">"Nummer hinzufügen"</string>
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Mailboxeinstellungen können nur vom primären Nutzer geändert werden."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Deine SIM-Karte wurde entsperrt. Dein Telefon wird nun entsperrt..."</string>
- <string name="label_ndp" msgid="7617392683877410341">"PIN zur Entsperrung des SIM-Netzwerks"</string>
+ <string name="label_ndp" msgid="7617392683877410341">"Entsperr-PIN für netzgebundenes Gerät"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Entsperren"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Verwerfen"</string>
- <string name="requesting_unlock" msgid="930512210309437741">"Netzwerkentsperrung wird angefordert..."</string>
- <string name="unlock_failed" msgid="7103543844840661366">"Anfrage für Entsperrung des Netzwerks war nicht erfolgreich."</string>
- <string name="unlock_success" msgid="32681089371067565">"Entsperrung des Netzwerks nicht erfolgreich."</string>
+ <string name="requesting_unlock" msgid="930512210309437741">"Entsperrung des netzgebundenen Geräts wird angefordert..."</string>
+ <string name="unlock_failed" msgid="7103543844840661366">"Entsperranforderung für netzgebundenes Gerät war nicht erfolgreich."</string>
+ <string name="unlock_success" msgid="32681089371067565">"Entsperrung des netzgebundenen Geräts war nicht erfolgreich."</string>
<string name="mobile_network_settings_not_available" msgid="8678168497517090039">"Mobile Netzwerkeinstellungen sind für diesen Nutzer nicht verfügbar."</string>
<string name="labelGSMMore" msgid="7354182269461281543">"GSM-Anrufeinstellungen"</string>
<string name="labelGsmMore_with_label" msgid="3206015314393246224">"GSM-Anrufeinstellungen (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -307,9 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Zeitraum des Datenverbrauchs"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Richtlinien zur Datenrate"</string>
<string name="throttle_help" msgid="2624535757028809735">"Weitere Informationen"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_status_subtext (1110276415078236687) -->
- <skip />
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g> %%) des maximalen Zeitraums von <xliff:g id="USED_2">%3$s</xliff:g>.\nDer nächste Zeitraum beginnt in <xliff:g id="USED_3">%4$d</xliff:g> Tagen (<xliff:g id="USED_4">%5$s</xliff:g>)."</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g> ٪) des maximalen Zeitraums von <xliff:g id="USED_2">%3$s</xliff:g>"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"Maximum von <xliff:g id="USED_0">%1$s</xliff:g> wurde überschritten.\nDatenrate wurde auf <xliff:g id="USED_1">%2$d</xliff:g> kbit/s reduziert."</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g> ٪ des Zyklus sind verstrichen. \nDer nächste Zeitraum beginnt in <xliff:g id="USED_1">%2$d</xliff:g> Tagen (<xliff:g id="USED_2">%3$s</xliff:g>)."</string>
diff --git a/res/values-el/config.xml b/res/values-el/config.xml
deleted file mode 100644
index 39e9a12..0000000
--- a/res/values-el/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"gr"</item>
- </string-array>
-</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index b2e9653..9b687c1 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -307,7 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Περίοδος χρήσης δεδομένων"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Πολιτική ταχύτητας δεδομένων"</string>
<string name="throttle_help" msgid="2624535757028809735">"Μάθετε περισσότερα"</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) με μέγιστη περίοδο <xliff:g id="USED_2">%3$s</xliff:g>\nΗ επόμενη περίδος ξεκινά σε <xliff:g id="USED_3">%4$d</xliff:g> ημέρες (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>%%) με μέγιστη περίοδο <xliff:g id="USED_2">%3$s</xliff:g>\nΗ επόμενη περίοδος ξεκινά σε <xliff:g id="USED_3">%4$d</xliff:g> ημέρες (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) με μέγιστη περίοδο <xliff:g id="USED_2">%3$s</xliff:g>"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"Συμπληρώθηκε το μέγιστο όριο <xliff:g id="USED_0">%1$s</xliff:g>\nΗ ταχύτητα δεδομένων μειώθηκε σε <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"Έχει περάσει το <xliff:g id="USED_0">%1$d</xliff:g>٪ του κύκλου\nΗ επόμενη περίοδος ξεκινά σε <xliff:g id="USED_1">%2$d</xliff:g> ημέρες (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-en-rAU/config.xml b/res/values-en-rAU/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-en-rAU/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-en-rCA/config.xml b/res/values-en-rCA/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-en-rCA/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-en-rGB/config.xml b/res/values-en-rGB/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-en-rGB/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-en-rIN/config.xml b/res/values-en-rIN/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-en-rIN/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-en-rXC/config.xml b/res/values-en-rXC/config.xml
deleted file mode 100644
index 57a26db..0000000
--- a/res/values-en-rXC/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-es-rUS/config.xml b/res/values-es-rUS/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-es-rUS/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 97a0cf4..a9ddc42 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -100,7 +100,7 @@
<string name="sum_cw_enabled" msgid="3977308526187139996">"Durante una llamada, notificarme sobre las llamadas entrantes"</string>
<string name="sum_cw_disabled" msgid="3658094589461768637">"Durante una llamada, notificarme sobre las llamadas entrantes"</string>
<string name="call_forwarding_settings" msgid="8937130467468257671">"Desvío de llamadas"</string>
- <string name="call_forwarding_settings_with_label" msgid="2345432813399564272">"Configuración de desvío de llamada (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="call_forwarding_settings_with_label" msgid="2345432813399564272">"Configuración de desvío de llamadas (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="labelCF" msgid="3578719437928476078">"Desvío de llamadas"</string>
<string name="labelCFU" msgid="8870170873036279706">"Desviar siempre"</string>
<string name="messageCFU" msgid="1361806450979589744">"Usar siempre este número"</string>
diff --git a/res/values-es/config.xml b/res/values-es/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-es/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 3c7d185..7504802 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -293,7 +293,7 @@
<string name="keywords_carrier_settings_euicc" msgid="8540160967922063745">"operador, esim, sim, euicc, cambiar de operador, añadir operador"</string>
<string name="carrier_settings_euicc_summary" msgid="2027941166597330117">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>: <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
<string name="mobile_data_settings_title" msgid="7228249980933944101">"Datos móviles"</string>
- <string name="mobile_data_settings_summary" msgid="5012570152029118471">"Acceder a los datos con la red móvil"</string>
+ <string name="mobile_data_settings_summary" msgid="5012570152029118471">"Acceder a datos con la red móvil"</string>
<string name="data_usage_disable_mobile" msgid="5669109209055988308">"¿Quieres desactivar los datos móviles?"</string>
<string name="sim_selection_required_pref" msgid="6985901872978341314">"Debes seleccionar una opción"</string>
<string name="sim_change_data_title" msgid="9142726786345906606">"¿Cambiar la SIM de datos?"</string>
@@ -307,9 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Período uso datos"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Política velocidad datos"</string>
<string name="throttle_help" msgid="2624535757028809735">"Más información"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_status_subtext (1110276415078236687) -->
- <skip />
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) de periodo máximo de <xliff:g id="USED_2">%3$s</xliff:g>.\nPróx periodo en <xliff:g id="USED_3">%4$d</xliff:g> días (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) de periodo máx de <xliff:g id="USED_2">%3$s</xliff:g>"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"Máx de <xliff:g id="USED_0">%1$s</xliff:g> superado.\nFrec datos reducida a <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g>٪ del ciclo transcurrido.\nPróx periodo en <xliff:g id="USED_1">%2$d</xliff:g> días (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
@@ -647,7 +645,7 @@
</plurals>
<string name="voicemail_provider" msgid="4158806657253745294">"Servicio"</string>
<string name="voicemail_settings" msgid="4451045613238972776">"Configuración"</string>
- <string name="voicemail_number_not_set" msgid="8831561283386938155">"<No definido>"</string>
+ <string name="voicemail_number_not_set" msgid="8831561283386938155">"<Sin establecer>"</string>
<string name="other_settings" msgid="8895088007393598447">"Otras opciones de llamada"</string>
<string name="calling_via_template" msgid="1791323450703751750">"Llamada vía <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
<string name="contactPhoto" msgid="7885089213135154834">"foto de contacto"</string>
diff --git a/res/values-et/config.xml b/res/values-et/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-et/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 357276d..5d6a837 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -307,7 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Andmete kasutamise periood"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Andmeedastuskiiruse eeskirjad"</string>
<string name="throttle_help" msgid="2624535757028809735">"Lisateave"</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>??) / <xliff:g id="USED_2">%3$s</xliff:g> maksimaalne periood\nJärgmine periood algab <xliff:g id="USED_3">%4$d</xliff:g> päeva pärast (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) / <xliff:g id="USED_2">%3$s</xliff:g> perioodi maksimumist\nJärgmine periood algab <xliff:g id="USED_3">%4$d</xliff:g> päeva pärast (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>??) / <xliff:g id="USED_2">%3$s</xliff:g> maksimaalsest perioodist"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> maksimaalne ületatud\nAndmeedastuskiirus vähendatud määrale <xliff:g id="USED_1">%2$d</xliff:g> kb/s"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g>?? tsüklist möödunud\nJärgmine periood algab <xliff:g id="USED_1">%2$d</xliff:g> päeva pärast (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 205487c..be86654 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -307,9 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Datuak erabiltzeko epea"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Datu-abiaduraren gidalerroak"</string>
<string name="throttle_help" msgid="2624535757028809735">"Lortu informazio gehiago"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_status_subtext (1110276415078236687) -->
- <skip />
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g>/<xliff:g id="USED_2">%3$s</xliff:g> erabilita (%% <xliff:g id="USED_1">%2$d</xliff:g>) muga-epean\nHurrengo epea <xliff:g id="USED_3">%4$d</xliff:g> egun barru hasiko da (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g>/<xliff:g id="USED_2">%3$s</xliff:g> erabilita (٪ <xliff:g id="USED_1">%2$d</xliff:g>) muga-epean"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> muga gainditu duzu\nDatu-abiadura murriztu zaizu. <xliff:g id="USED_1">%2$d</xliff:g> Kb/s duzu orain."</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"Zikloaren ٪ <xliff:g id="USED_0">%1$d</xliff:g> igaro da\nHurrengo aldia <xliff:g id="USED_1">%2$d</xliff:g> egun barru hasten da (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-fa/config.xml b/res/values-fa/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-fa/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-fi/config.xml b/res/values-fi/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-fi/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 4dee80f..1a3c49f 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -274,8 +274,8 @@
<string name="data_enable_summary" msgid="696860063456536557">"Salli tiedonsiirto"</string>
<string name="dialog_alert_title" msgid="5260471806940268478">"Huomio"</string>
<string name="roaming" msgid="1576180772877858949">"Roaming"</string>
- <string name="roaming_enable" msgid="6853685214521494819">"Yhdistä verkkoon roaming-tilassa."</string>
- <string name="roaming_disable" msgid="8856224638624592681">"Yhdistä verkkoon roaming-tilassa."</string>
+ <string name="roaming_enable" msgid="6853685214521494819">"Yhdistä verkkoon roaming-tilassa"</string>
+ <string name="roaming_disable" msgid="8856224638624592681">"Yhdistä verkkoon roaming-tilassa"</string>
<string name="roaming_reenable_message" msgid="1951802463885727915">"Roaming ei ole käytössä. Ota käyttöön napauttamalla."</string>
<string name="roaming_enabled_message" msgid="9022249120750897">"Puhelusta saatetaan periä roaming-maksuja. Muokkaa napauttamalla."</string>
<string name="roaming_notification_title" msgid="3590348480688047320">"Mobiilidatayhteys katkesi"</string>
@@ -307,9 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Tietojen käyttöjakso"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Tiedonsiirtonopeuskäytäntö"</string>
<string name="throttle_help" msgid="2624535757028809735">"Lisätietoja"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_status_subtext (1110276415078236687) -->
- <skip />
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g> %%) / <xliff:g id="USED_2">%3$s</xliff:g> jakson enimmäismäärästä\nSeuraava kausi alkaa <xliff:g id="USED_3">%4$d</xliff:g> päivän kuluttua (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) / <xliff:g id="USED_2">%3$s</xliff:g> jakson enimmäismäärästä"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> enimmäismäärä ylitetty\nTiedonsiirtonopeus vähennetty nopeuteen<xliff:g id="USED_1">%2$d</xliff:g> kt/s"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g>٪ kierrosta valmis\nSeuraava jakso alkaa <xliff:g id="USED_1">%2$d</xliff:g> päivän kuluttua (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 991db01..0842224 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -307,9 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Période d\'utilisation des données"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Règles relatives au taux de transfert des données"</string>
<string name="throttle_help" msgid="2624535757028809735">"En savoir plus"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_status_subtext (1110276415078236687) -->
- <skip />
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> sur <xliff:g id="USED_2">%3$s</xliff:g> (soit <xliff:g id="USED_1">%2$d</xliff:g> %%) du maximum par période\nLa prochaine période démarre dans <xliff:g id="USED_3">%4$d</xliff:g> jours (<xliff:g id="USED_4">%5$s</xliff:g>)."</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> sur <xliff:g id="USED_2">%3$s</xliff:g> : (<xliff:g id="USED_1">%2$d</xliff:g> ٪) du maximum par période"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> maximum dépassé\nTaux de transfert des données réduit à <xliff:g id="USED_1">%2$d</xliff:g> Ko/s"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g> ٪ du cycle écoulé.\nLa prochaine période démarre dans <xliff:g id="USED_1">%2$d</xliff:g> jours (<xliff:g id="USED_2">%3$s</xliff:g>)."</string>
@@ -524,7 +522,7 @@
<string name="notification_voicemail_no_vm_number" msgid="3423686009815186750">"Numéro de messagerie vocale inconnu"</string>
<string name="notification_network_selection_title" msgid="255595526707809121">"Aucun service"</string>
<string name="notification_network_selection_text" msgid="553288408722427659">"Réseau sélectionné<xliff:g id="OPERATOR_NAME">%s</xliff:g> non disponible"</string>
- <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Activez le réseau cellulaire ou désactivez le mode Avion ou le mode Économie d\'énergie pour faire un appel."</string>
+ <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Activez le réseau cellulaire ou désactivez le mode Avion ou le mode Économiseur de pile pour faire un appel."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Désactivez le mode Avion pour faire un appel."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Désactivez le mode Avion ou connectez-vous à un réseau Wi-Fi pour faire un appel."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Quittez le mode de rappel d\'urgence pour effectuer un appel non urgent."</string>
@@ -869,7 +867,7 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Sous-identifiant de la carte SIM par défaut :"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Bande passante de téléchargement (kb/s) :"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Bande passante de téléversement (kb/s) :"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Données de la position de la cellule (discontinuées) :"</string>
+ <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Données de la position de la cellule (obsolètes) :"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuration du canal physique LTE :"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Taux d\'actualisation des données de la cellule :"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Données des mesures de toutes les cellules :"</string>
diff --git a/res/values-fr/config.xml b/res/values-fr/config.xml
deleted file mode 100644
index 3f12a35..0000000
--- a/res/values-fr/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"fr"</item>
- </string-array>
-</resources>
diff --git a/res/values-gl/config.xml b/res/values-gl/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-gl/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 36938bd..61321c8 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -307,7 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Período de uso de datos"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Política de velocidade de datos"</string>
<string name="throttle_help" msgid="2624535757028809735">"Máis información"</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) de <xliff:g id="USED_2">%3$s</xliff:g> de período máximo\nO seguinte período comeza dentro de <xliff:g id="USED_3">%4$d</xliff:g> días (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>%%) de <xliff:g id="USED_2">%3$s</xliff:g> de período máximo\nO seguinte período comeza dentro de <xliff:g id="USED_3">%4$d</xliff:g> días (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) de <xliff:g id="USED_2">%3$s</xliff:g> de período máximo"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> máximo superado\nTaxa de datos reducida a <xliff:g id="USED_1">%2$d</xliff:g> kb/s"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g>٪ do ciclo transcorrido\nO seguinte período comeza dentro de <xliff:g id="USED_1">%2$d</xliff:g> días (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-gu/config.xml b/res/values-gu/config.xml
deleted file mode 100644
index 83b0fea..0000000
--- a/res/values-gu/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"યુએસ"</item>
- </string-array>
-</resources>
diff --git a/res/values-hi/config.xml b/res/values-hi/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-hi/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 9724699..96aa5f0 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -307,7 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"डेटा उपयोग अवधि"</string>
<string name="throttle_rate" msgid="7641913901133634905">"डेटा दर नीति"</string>
<string name="throttle_help" msgid="2624535757028809735">"ज़्यादा जानें"</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_2">%3$s</xliff:g> में से <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) अवधि अधिकतम\nअगली अवधि <xliff:g id="USED_3">%4$d</xliff:g> दिनों (<xliff:g id="USED_4">%5$s</xliff:g>) में प्रारंभ होगी"</string>
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_2">%3$s</xliff:g> में से <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) अवधि अधिकतम\nअगली अवधि <xliff:g id="USED_3">%4$d</xliff:g> दिनों (<xliff:g id="USED_4">%5$s</xliff:g>) में शुरू होगी"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_2">%3$s</xliff:g> में से <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) अवधि अधिकतम"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> अधिकतम सीमा पार हो गई\nडेटा दर <xliff:g id="USED_1">%2$d</xliff:g> Kb/s तक कम हो गई है"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"चक्र का <xliff:g id="USED_0">%1$d</xliff:g>٪ बीत चुका है\nअगली अवधि <xliff:g id="USED_1">%2$d</xliff:g> दिन में आरंभ होगी (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-hr/config.xml b/res/values-hr/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-hr/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-hu/config.xml b/res/values-hu/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-hu/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 21939d9..f69e5b1 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -273,16 +273,16 @@
<string name="data_enabled" msgid="22525832097434368">"Adatok engedélyezése"</string>
<string name="data_enable_summary" msgid="696860063456536557">"Adatforgalom engedélyezése"</string>
<string name="dialog_alert_title" msgid="5260471806940268478">"Figyelem"</string>
- <string name="roaming" msgid="1576180772877858949">"Barangolás"</string>
- <string name="roaming_enable" msgid="6853685214521494819">"Csatlakozás adatszolgáltatásokhoz barangolás során"</string>
- <string name="roaming_disable" msgid="8856224638624592681">"Csatlakozás adatszolgáltatásokhoz barangolás során"</string>
+ <string name="roaming" msgid="1576180772877858949">"Roaming"</string>
+ <string name="roaming_enable" msgid="6853685214521494819">"Csatlakozás adatszolgáltatásokhoz roaming során"</string>
+ <string name="roaming_disable" msgid="8856224638624592681">"Csatlakozás adatszolgáltatásokhoz roaming során"</string>
<string name="roaming_reenable_message" msgid="1951802463885727915">"Az adatbarangolás ki van kapcsolva. Koppintson a bekapcsolásához."</string>
<string name="roaming_enabled_message" msgid="9022249120750897">"A szolgáltató adatroamingdíjat számíthat fel. Koppintson a módosításhoz."</string>
<string name="roaming_notification_title" msgid="3590348480688047320">"Nincs mobiladat-kapcsolat"</string>
<string name="roaming_on_notification_title" msgid="7451473196411559173">"Az adatroaming be van kapcsolva"</string>
<string name="roaming_warning" msgid="7855681468067171971">"Lehet, hogy jelentős összeget számítanak fel érte."</string>
<string name="roaming_check_price_warning" msgid="8212484083990570215">"Az árakat a szolgáltatótól tudhatja meg."</string>
- <string name="roaming_alert_title" msgid="5689615818220960940">"Engedélyezi az adatbarangolást?"</string>
+ <string name="roaming_alert_title" msgid="5689615818220960940">"Engedélyezi az adatroamingot?"</string>
<string name="limited_sim_function_notification_title" msgid="612715399099846281">"Korlátozott SIM-funkció"</string>
<string name="limited_sim_function_with_phone_num_notification_message" msgid="5928988883403677610">"A(z) <xliff:g id="PHONE_NUMBER">%2$s</xliff:g> szám használatakor előfordulhat, hogy a(z) <xliff:g id="CARRIER_NAME">%1$s</xliff:g>-hívások és az adatszolgáltatások nem működnek."</string>
<string name="limited_sim_function_notification_message" msgid="5338638075496721160">"Másik SIM esetén lehet, hogy a(z) <xliff:g id="CARRIER_NAME">%1$s</xliff:g>-hívások és -adatszolgáltatások nem működnek."</string>
@@ -769,13 +769,13 @@
<string name="call_barring_baoic_enabled" msgid="1203758092657630123">"Megszünteti a kimenő nemzetközi hívások letiltását?"</string>
<string name="call_barring_baoic_disabled" msgid="5656889339002997449">"Letiltja a kimenő nemzetközi hívásokat?"</string>
<string name="call_barring_baoicr" msgid="8566167764432343487">"Kimenő hívások nemzetközi barangoláskor"</string>
- <string name="call_barring_baoicr_enabled" msgid="1615324165512798478">"Megszünteti a nemzetközi barangolás során kimenő hívások letiltását?"</string>
+ <string name="call_barring_baoicr_enabled" msgid="1615324165512798478">"Megszünteti a nemzetközi roaming során kimenő hívások letiltását?"</string>
<string name="call_barring_baoicr_disabled" msgid="172010175248142831">"Letiltja a kimenő hívásokat nemzetközi barangoláskor?"</string>
<string name="call_barring_baic" msgid="7941393541678658566">"Minden bejövő hívás"</string>
<string name="call_barring_baic_enabled" msgid="4357332358020337470">"Megszünteti az összes bejövő hívás letiltását?"</string>
<string name="call_barring_baic_disabled" msgid="2355945245938240958">"Letiltja az összes bejövő hívást?"</string>
<string name="call_barring_baicr" msgid="8712249337313034226">"Bejövő hívások nemzetközi barangoláskor"</string>
- <string name="call_barring_baicr_enabled" msgid="64774270234828175">"Megszünteti a nemzetközi barangolás során bejövő összes hívás letiltását?"</string>
+ <string name="call_barring_baicr_enabled" msgid="64774270234828175">"Megszünteti a nemzetközi roaming során bejövő összes hívás letiltását?"</string>
<string name="call_barring_baicr_disabled" msgid="3488129262744027262">"Letiltja a bejövő hívásokat nemzetközi barangoláskor?"</string>
<string name="call_barring_deactivate_all" msgid="7837931580047157328">"Az összes deaktiválása"</string>
<string name="call_barring_deactivate_all_description" msgid="4474119585042121604">"Az összes híváskorlátozási beállítás deaktiválása"</string>
@@ -872,7 +872,7 @@
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Cellainformáció frissítési gyakorisága:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Minden cellamérési információ:"</string>
<string name="radio_info_gprs_service_label" msgid="6819204246355412952">"Adatszolgáltatás:"</string>
- <string name="radio_info_roaming_label" msgid="6636932886446857120">"Barangolás:"</string>
+ <string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
<string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI:"</string>
<string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Hívásátirányítás:"</string>
<string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"PPP-visszaállítások száma a legutolsó rendszerindítás óta:"</string>
diff --git a/res/values-hy/config.xml b/res/values-hy/config.xml
deleted file mode 100644
index f26450b..0000000
--- a/res/values-hy/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"am"</item>
- </string-array>
-</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 9ec2ae0..fba555f 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -307,9 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Տվյալների օգտագործման ժամանահատվածը"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Տվյալների սակագնային քաղաքականությունը"</string>
<string name="throttle_help" msgid="2624535757028809735">"Իմանալ ավելին"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_status_subtext (1110276415078236687) -->
- <skip />
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) <xliff:g id="USED_2">%3$s</xliff:g>-ից (առավելագույն)\nՀաջորդ ժամանակահատվածը սկսվում է <xliff:g id="USED_3">%4$d</xliff:g> օրից (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) <xliff:g id="USED_2">%3$s</xliff:g>-ի ժամանակահատվածի առավելագույնը"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> առավելագույնը գերազանցվել է\nՏվյալների արժեքը նվազել է մինչև <xliff:g id="USED_1">%2$d</xliff:g> Կբիթ/վ"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"Շրջանի <xliff:g id="USED_0">%1$d</xliff:g>٪ -ը լրացել է\nՀաջորդ ժամանակահատվածը սկսվում է <xliff:g id="USED_1">%2$d</xliff:g> օրից (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-in/config.xml b/res/values-in/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-in/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index a049b5d..e6eddfc 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -286,7 +286,7 @@
<string name="limited_sim_function_notification_title" msgid="612715399099846281">"Fungsi SIM terbatas"</string>
<string name="limited_sim_function_with_phone_num_notification_message" msgid="5928988883403677610">"Layanan data dan panggilan <xliff:g id="CARRIER_NAME">%1$s</xliff:g> dapat diblokir saat menggunakan <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>."</string>
<string name="limited_sim_function_notification_message" msgid="5338638075496721160">"Layanan data dan panggilan <xliff:g id="CARRIER_NAME">%1$s</xliff:g> dapat diblokir saat menggunakan SIM lain."</string>
- <string name="data_usage_title" msgid="8438592133893837464">"Penggunaan kuota aplikasi"</string>
+ <string name="data_usage_title" msgid="8438592133893837464">"Penggunaan data aplikasi"</string>
<string name="data_usage_template" msgid="6287906680674061783">"<xliff:g id="ID_1">%1$s</xliff:g> data seluler digunakan pada <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="advanced_options_title" msgid="9208195294513520934">"Lanjutan"</string>
<string name="carrier_settings_euicc" msgid="1190237227261337749">"Operator"</string>
diff --git a/res/values-is/config.xml b/res/values-is/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-is/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-it/config.xml b/res/values-it/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-it/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 99436d9..9f53607 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -307,9 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Periodo utilizzo dati"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Norme velocità dati"</string>
<string name="throttle_help" msgid="2624535757028809735">"Ulteriori informazioni"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_status_subtext (1110276415078236687) -->
- <skip />
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) del <xliff:g id="USED_2">%3$s</xliff:g> max periodo\nIl periodo succ. inizia tra <xliff:g id="USED_3">%4$d</xliff:g> gg (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) del <xliff:g id="USED_2">%3$s</xliff:g> max periodo"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> max superato\nVelocità dati ridotta a <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g>٪ del ciclo trascorso\nIl periodo succ. inizia tra <xliff:g id="USED_1">%2$d</xliff:g> gg (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-iw/config.xml b/res/values-iw/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-iw/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 8ff930b..a2a2f69 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -307,7 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"תקופת השימוש בנתונים"</string>
<string name="throttle_rate" msgid="7641913901133634905">"מדיניות קצב נתונים"</string>
<string name="throttle_help" msgid="2624535757028809735">"למידע נוסף"</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>??) מתוך התקופה המרבית של <xliff:g id="USED_2">%3$s</xliff:g>\nהתקופה הבאה מתחילה בעוד <xliff:g id="USED_3">%4$d</xliff:g> ימים (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>%%) מתוך התקופה המרבית של <xliff:g id="USED_2">%3$s</xliff:g>\nהתקופה הבאה מתחילה בעוד <xliff:g id="USED_3">%4$d</xliff:g> ימים (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>??) מתוך התקופה המרבית של<xliff:g id="USED_2">%3$s</xliff:g>"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> חריגה מהמקסימום\nקצב הנתונים ירד ל-<xliff:g id="USED_1">%2$d</xliff:g> Kb לשנייה"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g>?? מהמחזור חלפו\nהתקופה הבאה מתחילה בעוד <xliff:g id="USED_1">%2$d</xliff:g> ימים (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-ja/config.xml b/res/values-ja/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-ja/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 2730bad..e6e04d7 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -49,7 +49,7 @@
<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">"SIMカードロックを解除しました。デバイスのロックを解除しています..."</string>
- <string name="label_ndp" msgid="7617392683877410341">"SIMネットワークのロック解除PIN"</string>
+ <string name="label_ndp" msgid="7617392683877410341">"SIM のネットワーク ロック解除 PIN"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"ロック解除"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"無効"</string>
<string name="requesting_unlock" msgid="930512210309437741">"ネットワークのロック解除をリクエスト中..."</string>
diff --git a/res/values-ka/config.xml b/res/values-ka/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-ka/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-kk/config.xml b/res/values-kk/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-kk/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-km/config.xml b/res/values-km/config.xml
deleted file mode 100644
index 349c381..0000000
--- a/res/values-km/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"អាមេរិក"</item>
- </string-array>
-</resources>
diff --git a/res/values-kn/config.xml b/res/values-kn/config.xml
deleted file mode 100644
index 852fe58..0000000
--- a/res/values-kn/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"ಯುಎಸ್"</item>
- </string-array>
-</resources>
diff --git a/res/values-ko/config.xml b/res/values-ko/config.xml
deleted file mode 100644
index f0a0692..0000000
--- a/res/values-ko/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"ko"</item>
- </string-array>
-</resources>
diff --git a/res/values-ky/config.xml b/res/values-ky/config.xml
deleted file mode 100644
index db0e5d6..0000000
--- a/res/values-ky/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"акш"</item>
- </string-array>
-</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index fb600d9..747e72f 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -274,8 +274,8 @@
<string name="data_enable_summary" msgid="696860063456536557">"Дайындарды пайдаланууга уруксат берүү"</string>
<string name="dialog_alert_title" msgid="5260471806940268478">"Көңүл буруңуз"</string>
<string name="roaming" msgid="1576180772877858949">"Роуминг"</string>
- <string name="roaming_enable" msgid="6853685214521494819">"Роуминг учурунда мобилдик Интернетке туташат"</string>
- <string name="roaming_disable" msgid="8856224638624592681">"Роуминг учурунда мобилдик Интернетке туташат"</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_enabled_message" msgid="9022249120750897">"Роуминг акысын төлөп калышыңыз мүмкүн. Өзгөртүү үчүн таптап коюңуз."</string>
<string name="roaming_notification_title" msgid="3590348480688047320">"Мобилдик интернет туташуусу үзүлдү"</string>
@@ -520,7 +520,7 @@
<string name="notification_voicemail_title_count" msgid="2806950319222327082">"Жаңы үн почтасы (<xliff:g id="COUNT">%d</xliff:g>)"</string>
<string name="notification_voicemail_text_format" msgid="5720947141702312537">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> номерин терүү"</string>
<string name="notification_voicemail_no_vm_number" msgid="3423686009815186750">"Үн почтасынын номери белгисиз"</string>
- <string name="notification_network_selection_title" msgid="255595526707809121">"Байланыш жок"</string>
+ <string name="notification_network_selection_title" msgid="255595526707809121">"Интернет жок"</string>
<string name="notification_network_selection_text" msgid="553288408722427659">"Тандалган тармак <xliff:g id="OPERATOR_NAME">%s</xliff:g> жеткиликсиз"</string>
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Мобилдик тармакты күйгүзүңүз, чалуу үчүн \"Учакта\" режимин же \"Батареяны үнөмдөө\" режимин өчүрүңүз."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Чалуу үчүн учак режимин өчүрүңүз."</string>
@@ -543,7 +543,7 @@
<string name="incall_error_supp_service_hold" msgid="8535056414643540997">"Чалууну кармап туруу мүмкүн эмес."</string>
<string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"Чалуу үчүн зымсыз тармакка туташыңыз."</string>
<string name="incall_error_promote_wfc" msgid="9164896813931363415">"Wi-Fi аркылуу чалыңыз."</string>
- <string name="emergency_information_hint" msgid="9208897544917793012">"Өзгөчө кырдаал маалыматы"</string>
+ <string name="emergency_information_hint" msgid="9208897544917793012">"Кырсыктаганда керек болчу маалымат"</string>
<string name="emergency_information_owner_hint" msgid="6256909888049185316">"Ээси"</string>
<string name="emergency_information_confirm_hint" msgid="5109017615894918914">"Маалыматты көрүү үчүн кайра таптап коюңуз"</string>
<string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"Шашылыш чалуу"</string>
@@ -575,7 +575,7 @@
<string name="onscreenVideoCallText" msgid="1743992456126258698">"Видео чалуу"</string>
<string name="importSimEntry" msgid="3892354284082689894">"Импорттоо"</string>
<string name="importAllSimEntries" msgid="2628391505643564007">"Баарын импорттоо"</string>
- <string name="importingSimContacts" msgid="4995457122107888932">"SIM-картадагы байланыштардан импорттоо"</string>
+ <string name="importingSimContacts" msgid="4995457122107888932">"SIM картадагы байланыштардан импорттоо"</string>
<string name="importToFDNfromContacts" msgid="5068664870738407341">"Байланыштардан импорттоо"</string>
<string name="singleContactImportedMsg" msgid="3619804066300998934">"Байланыш импорттолду"</string>
<string name="failedToImportSingleContactMsg" msgid="228095510489830266">"Байланыш импорттолбой калды"</string>
diff --git a/res/values-lo/config.xml b/res/values-lo/config.xml
deleted file mode 100644
index 2da9310..0000000
--- a/res/values-lo/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"ສະຫະລັດ"</item>
- </string-array>
-</resources>
diff --git a/res/values-lt/config.xml b/res/values-lt/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-lt/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index bd5a571..15a9e35 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -307,7 +307,9 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Duomenų naudojimo laikotarpis"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Duomenų perdavimo spartos politika"</string>
<string name="throttle_help" msgid="2624535757028809735">"Sužinokite daugiau"</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) iš <xliff:g id="USED_2">%3$s</xliff:g> laikotarpio maksimumo\nKitas laikotarpis prasidės po <xliff:g id="USED_3">%4$d</xliff:g> dienų (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <!-- String.format failed for translation -->
+ <!-- no translation found for throttle_status_subtext (1110276415078236687) -->
+ <skip />
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) iš <xliff:g id="USED_2">%3$s</xliff:g> laikotarpio maksimumo"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"Viršytas <xliff:g id="USED_0">%1$s</xliff:g> maksimumas\nDuomenų perdavimo sparta sumažinta iki <xliff:g id="USED_1">%2$d</xliff:g> Kb / sek."</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"Praėjo <xliff:g id="USED_0">%1$d</xliff:g>٪ ciklo\nKitas laikotarpis prasidės po<xliff:g id="USED_1">%2$d</xliff:g> dienų (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-mk/config.xml b/res/values-mk/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-mk/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 984bbca..1c51815 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -307,9 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Период на потрошен интернет"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Политика на стапка на податоци"</string>
<string name="throttle_help" msgid="2624535757028809735">"Дознај повеќе"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_status_subtext (1110276415078236687) -->
- <skip />
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g> ٪) од максимум <xliff:g id="USED_2">%3$s</xliff:g> за периодот\nСледниот период започнува за <xliff:g id="USED_3">%4$d</xliff:g> дена (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) од <xliff:g id="USED_2">%3$s</xliff:g> максимален период"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> максимум е надминат\nСтапката на податоци е намалена на <xliff:g id="USED_1">%2$d</xliff:g> кб/с"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g>٪ од циклусот помина\nНаредниот период започнува за <xliff:g id="USED_1">%2$d</xliff:g> дена (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
@@ -545,7 +543,7 @@
<string name="incall_error_supp_service_hold" msgid="8535056414643540997">"Не може да се задржат повици."</string>
<string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"Поврзете се на безжична мрежа за да повикате."</string>
<string name="incall_error_promote_wfc" msgid="9164896813931363415">"Овозможете повикување преку Wi-Fi за воспоставување повик."</string>
- <string name="emergency_information_hint" msgid="9208897544917793012">"Информации за итни случаи"</string>
+ <string name="emergency_information_hint" msgid="9208897544917793012">"Податоци за итни случаи"</string>
<string name="emergency_information_owner_hint" msgid="6256909888049185316">"Сопственик"</string>
<string name="emergency_information_confirm_hint" msgid="5109017615894918914">"Допрете повторно за приказ на информации"</string>
<string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"Повик за итни случаи"</string>
diff --git a/res/values-ml/config.xml b/res/values-ml/config.xml
deleted file mode 100644
index 3dc39c8..0000000
--- a/res/values-ml/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"യുഎസ്"</item>
- </string-array>
-</resources>
diff --git a/res/values-mn/config.xml b/res/values-mn/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-mn/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-mr/config.xml b/res/values-mr/config.xml
deleted file mode 100644
index d996c07..0000000
--- a/res/values-mr/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"यू.एस."</item>
- </string-array>
-</resources>
diff --git a/res/values-ms/config.xml b/res/values-ms/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-ms/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-my/config.xml b/res/values-my/config.xml
deleted file mode 100644
index 3efd22b..0000000
--- a/res/values-my/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"ယူအက်စ်"</item>
- </string-array>
-</resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 95eb48b..60f2da8 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -307,7 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"ဒေတာအသုံးပြုမှုသတ်မှတ်ကာလ"</string>
<string name="throttle_rate" msgid="7641913901133634905">"ဒေတာနှုန်းထားမူဝါဒ"</string>
<string name="throttle_help" msgid="2624535757028809735">"ပိုမိုသိလိုလျှင် ..."</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) မှ <xliff:g id="USED_2">%3$s</xliff:g> သတ်မှတ်ကာလ အမြင့်ဆုံး\n နောက်သတ်မှတ်ကာလကို <xliff:g id="USED_3">%4$d</xliff:g> ရက်တွင် စတင်မည် (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"သတ်မှတ်ကာလ အမြင့်ဆုံး <xliff:g id="USED_2">%3$s</xliff:g> မှ <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪)\nနောက်သတ်မှတ်ကာလကို <xliff:g id="USED_3">%4$d</xliff:g> ရက်အကြာတွင် စတင်မည် (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪)၏ <xliff:g id="USED_2">%3$s</xliff:g> ကာလ အမြင့်ဆုံး"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> အမြင့်ဆုံး ကျော်လွန်\nဒေတာနှုန်း <xliff:g id="USED_1">%2$d</xliff:g> Kb/s သို့လျှော့ချလိုက်သည်"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g>٪ ကုန်ဆုံးပြီး \n နောက်သတ်မှတ်ကာလစရန် <xliff:g id="USED_1">%2$d</xliff:g> ရက်(<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 6d225ce..6629893 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -307,12 +307,8 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Databrukperiode"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Retningslinjer for datahastighet"</string>
<string name="throttle_help" msgid="2624535757028809735">"Les mer"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_status_subtext (1110276415078236687) -->
- <skip />
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_data_usage_subtext (3185429653996709840) -->
- <skip />
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g> %%) av maksimum <xliff:g id="USED_2">%3$s</xliff:g> for perioden\nNeste periode starter om <xliff:g id="USED_3">%4$d</xliff:g> dager (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g> ٪) av maksimum <xliff:g id="USED_2">%3$s</xliff:g> for perioden"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> har overskredet maksimumsgrensen\nDatahastigheten er redusert til <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g> ٪ av syklusen er fullført\nNeste periode starter om <xliff:g id="USED_1">%2$d</xliff:g> dager (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
<string name="throttle_rate_subtext" msgid="7221971817325779535">"Datahastigheten reduseres til <xliff:g id="USED">%1$d</xliff:g> Kb/s hvis databruken overskrider grenseverdien"</string>
diff --git a/res/values-nl/config.xml b/res/values-nl/config.xml
deleted file mode 100644
index e270731..0000000
--- a/res/values-nl/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"nl"</item>
- </string-array>
-</resources>
diff --git a/res/values-or/config.xml b/res/values-or/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-or/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index bfd6047..338c253 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -288,7 +288,7 @@
<string name="limited_sim_function_notification_message" msgid="5338638075496721160">"ଅନ୍ୟ SIM ବ୍ୟବହାର କରିବା ସମୟରେ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> କଲ୍ ଏବଂ ଡାଟା ସେବାଗୁଡ଼ିକ ବ୍ଲକ୍ କରାଯାଇପାରେ।"</string>
<string name="data_usage_title" msgid="8438592133893837464">"ଆପ୍ ଦ୍ୱାରା ଡାଟା ବ୍ୟବହାର"</string>
<string name="data_usage_template" msgid="6287906680674061783">"<xliff:g id="ID_2">%2$s</xliff:g>ରେ <xliff:g id="ID_1">%1$s</xliff:g> ମୋବାଇଲ୍ ଡାଟା ବ୍ୟବହାର କରାଯାଇଛି"</string>
- <string name="advanced_options_title" msgid="9208195294513520934">"ଆଧୁନିକ"</string>
+ <string name="advanced_options_title" msgid="9208195294513520934">"ଉନ୍ନତ"</string>
<string name="carrier_settings_euicc" msgid="1190237227261337749">"ନେଟୱର୍କ କ୍ୟାରିଅର"</string>
<string name="keywords_carrier_settings_euicc" msgid="8540160967922063745">"ମୋବାଇଲ୍ ଓ ଇଣ୍ଟରନେଟ୍ ସେବା ପ୍ରଦାନକାରୀ କମ୍ପାନୀ, ଇସିମ୍, ସିମ୍, euicc, ମୋବାଇଲ୍ ଓ ଇଣ୍ଟରନେଟ୍ ସେବା ପ୍ରଦାନକାରୀ କମ୍ପାନୀକୁ ସ୍ଵିଚ୍ କରନ୍ତୁ, ମୋବାଇଲ୍ ଓ ଇଣ୍ଟରନେଟ୍ ସେବା ପ୍ରଦାନକାରୀ କମ୍ପାନୀକୁ ଯୋଡ଼ନ୍ତୁ"</string>
<string name="carrier_settings_euicc_summary" msgid="2027941166597330117">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
@@ -879,7 +879,7 @@
<string name="radio_info_current_network_label" msgid="3052098695239642450">"ବର୍ତ୍ତମାନର ନେଟ୍ୱାର୍କ:"</string>
<string name="radio_info_ppp_received_label" msgid="5753592451640644889">"ଡାଟା ପ୍ରାପ୍ତ ହୋଇଛି:"</string>
<string name="radio_info_gsm_service_label" msgid="6443348321714241328">"ଭଏସ୍ ସେବା:"</string>
- <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"ସିଗ୍ନାଲ୍ ଶକ୍ତି:"</string>
+ <string name="radio_info_signal_strength_label" msgid="5545444702102543260">"ସିଗ୍ନାଲ୍ ଦକ୍ଷତା:"</string>
<string name="radio_info_call_status_label" msgid="7693575431923095487">"ଭଏସ୍ କଲ୍ ସ୍ଥିତି:"</string>
<string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"ଡାଟା ପଠାଯାଇଛି:"</string>
<string name="radio_info_message_waiting_label" msgid="1886549432566952078">"ବାର୍ତ୍ତା ଅପକ୍ଷାରତ:"</string>
diff --git a/res/values-pa/config.xml b/res/values-pa/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-pa/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 62b76b4..410887c 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -307,7 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Okres użycia danych"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Zasada prędkości przesyłu danych"</string>
<string name="throttle_help" msgid="2624535757028809735">"Więcej informacji"</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) z <xliff:g id="USED_2">%3$s</xliff:g> (wartość maksymalna w okresie)\nNastępny okres za: <xliff:g id="USED_3">%4$d</xliff:g> dni (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) z <xliff:g id="USED_2">%3$s</xliff:g> (wartość maksymalna w okresie)\nNastępny okres za <xliff:g id="USED_3">%4$d</xliff:g> dni (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) z <xliff:g id="USED_2">%3$s</xliff:g> (wartość maksymalna w okresie)"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"Przekroczono limit: <xliff:g id="USED_0">%1$s</xliff:g>\nSzybkość transmisji zmniejszona do <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"Minęło <xliff:g id="USED_0">%1$d</xliff:g>٪ cyklu\nNastępny okres za: <xliff:g id="USED_1">%2$d</xliff:g> dni (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
@@ -695,7 +695,7 @@
<string name="change_pin_enter_new_pin_header" msgid="4739465616733486118">"Ustaw nowy kod PIN"</string>
<string name="change_pin_enter_new_pin_hint" msgid="2326038476516364210">"Kod PIN musi zawierać od <xliff:g id="MIN">%1$d</xliff:g> do <xliff:g id="MAX">%2$d</xliff:g> cyfr."</string>
<string name="change_pin_confirm_pin_header" msgid="2606303906320705726">"Potwierdź kod PIN"</string>
- <string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"Kody PIN nie są identyczne."</string>
+ <string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"Kody PIN nie są takie same"</string>
<string name="change_pin_succeeded" msgid="2504705600693014403">"Kod PIN poczty głosowej został zaktualizowany."</string>
<string name="change_pin_system_error" msgid="7772788809875146873">"Nie udało się ustawić kodu PIN"</string>
<string name="mobile_data_status_roaming_turned_off_subtext" msgid="6840673347416227054">"Transmisja danych w roamingu jest wyłączona"</string>
diff --git a/res/values-pt-rPT/config.xml b/res/values-pt-rPT/config.xml
deleted file mode 100644
index bb1ec49..0000000
--- a/res/values-pt-rPT/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"pt-PT"</item>
- </string-array>
-</resources>
diff --git a/res/values-pt/config.xml b/res/values-pt/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-pt/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-ro/config.xml b/res/values-ro/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-ro/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-ru/config.xml b/res/values-ru/config.xml
deleted file mode 100644
index 0132360..0000000
--- a/res/values-ru/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"ru"</item>
- </string-array>
-</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index ce9968d..0421272 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -310,9 +310,7 @@
<string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) из <xliff:g id="USED_2">%3$s</xliff:g> (максимум)\nСледующий период начнется в течение <xliff:g id="USED_3">%4$d</xliff:g> дн. (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) из <xliff:g id="USED_2">%3$s</xliff:g> (максимум)"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"Превышен лимит в <xliff:g id="USED_0">%1$s</xliff:g>.\nСкорость передачи данных снижена до <xliff:g id="USED_1">%2$d</xliff:g> кбит/с."</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_time_frame_subtext (6462089615392402127) -->
- <skip />
+ <string name="throttle_time_frame_subtext" msgid="6462089615392402127">"Пройдено: <xliff:g id="USED_0">%1$d</xliff:g>٪ цикла.\nСледующий период начнется через <xliff:g id="USED_1">%2$d</xliff:g> дн. (<xliff:g id="USED_2">%3$s</xliff:g>)."</string>
<string name="throttle_rate_subtext" msgid="7221971817325779535">"Превышение лимита снижает скорость передачи данных до <xliff:g id="USED">%1$d</xliff:g> кбит/с"</string>
<string name="throttle_help_subtext" msgid="2817114897095534807">"Подробнее о политике передачи данных вашего оператора мобильной связи..."</string>
<string name="cell_broadcast_sms" msgid="4053449797289031063">"Широковещательные SMS-службы"</string>
diff --git a/res/values-si/config.xml b/res/values-si/config.xml
deleted file mode 100644
index 2d11288..0000000
--- a/res/values-si/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"එජ"</item>
- </string-array>
-</resources>
diff --git a/res/values-sk/config.xml b/res/values-sk/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-sk/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index efba6c5..dcb5e1f 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -307,7 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Periudha e përdorimit të të dhënave"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Politika e shpejtësisë së të dhënave"</string>
<string name="throttle_help" msgid="2624535757028809735">"Mëso më shumë"</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) nga maksimumi i periudhës prej <xliff:g id="USED_2">%3$s</xliff:g> \nPeriudha tjetër fillon për <xliff:g id="USED_3">%4$d</xliff:g> ditë (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) nga maksimumi i periudhës prej <xliff:g id="USED_2">%3$s</xliff:g>\nPeriudha tjetër fillon për <xliff:g id="USED_3">%4$d</xliff:g> ditë (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) nga maksimumi i periudhës prej <xliff:g id="USED_2">%3$s</xliff:g>"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"U kapërcye maksimumi i <xliff:g id="USED_0">%1$s</xliff:g>\nShpejtësia e të dhënave u pakësua deri në <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"Ka kaluar <xliff:g id="USED_0">%1$d</xliff:g>٪ të ciklit\nPeriudha tjetër fillon për <xliff:g id="USED_1">%2$d</xliff:g> ditë (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-sr/config.xml b/res/values-sr/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-sr/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-sv/config.xml b/res/values-sv/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-sv/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index d32893b..0c30a13 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -307,12 +307,8 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Dataanvändningsperiod"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Datahastighetspolicy"</string>
<string name="throttle_help" msgid="2624535757028809735">"Läs mer"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_status_subtext (1110276415078236687) -->
- <skip />
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_data_usage_subtext (3185429653996709840) -->
- <skip />
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) av högst <xliff:g id="USED_2">%3$s</xliff:g> för perioden\nNästa period börjar om <xliff:g id="USED_3">%4$d</xliff:g> dagar (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g> ٪) av högst <xliff:g id="USED_2">%3$s</xliff:g> för perioden"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> maxvärdet har överskridits\nDatahastigheten har sänkts till <xliff:g id="USED_1">%2$d</xliff:g> kbit/s"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g> ٪ av cykeln har gått\nNästa period börjar om <xliff:g id="USED_1">%2$d</xliff:g> dagar (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
<string name="throttle_rate_subtext" msgid="7221971817325779535">"Datahastigheten sänks till <xliff:g id="USED">%1$d</xliff:g> kbit/s om dataanvändningsgränsen överskrids"</string>
diff --git a/res/values-sw/config.xml b/res/values-sw/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-sw/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 472bd37..2773b7b 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -307,7 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Muda wa matumizi ya data"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Sera ya kasi ya data"</string>
<string name="throttle_help" msgid="2624535757028809735">"Pata maelezo zaidi"</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) ya<xliff:g id="USED_2">%3$s</xliff:g> muda wa kiwango cha juu\nMuda unaofuata unaanza baada ya siku<xliff:g id="USED_3">%4$d</xliff:g>(<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) imetumika kati ya kipindi cha juu cha <xliff:g id="USED_2">%3$s</xliff:g>\nKipindi kijacho kinaanza baada ya siku <xliff:g id="USED_3">%4$d</xliff:g> (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (asilimia <xliff:g id="USED_1">%2$d</xliff:g>) ya upeo wa muda wa <xliff:g id="USED_2">%3$s</xliff:g>"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"Upeo wa <xliff:g id="USED_0">%1$s</xliff:g> umepitwa\nKasi ya data imepunguzwa hadi kilobaiti <xliff:g id="USED_1">%2$d</xliff:g> kwa sekunde"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g>٪ ya mzunguko imekamilika\nMuda ufuatao unaanza baada ya siku <xliff:g id="USED_1">%2$d</xliff:g> (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-ta/config.xml b/res/values-ta/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-ta/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 20d2d70..f73ff2a 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -307,7 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"தரவு பயன்படுத்தப்பட்ட காலம்"</string>
<string name="throttle_rate" msgid="7641913901133634905">"தரவு கட்டண கொள்கை"</string>
<string name="throttle_help" msgid="2624535757028809735">"மேலும் அறிக"</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) / <xliff:g id="USED_2">%3$s</xliff:g> அதிகபட்சம்\nஅடுத்த காலநேரம் <xliff:g id="USED_3">%4$d</xliff:g> நாட்களுக்குள் தொடங்கும் (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"அதிகபட்ச சேமிப்பிடம் <xliff:g id="USED_2">%3$s</xliff:g> இல் <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) பயன்படுத்தப்பட்டுள்ளது\nஅடுத்த காலகட்டம் <xliff:g id="USED_3">%4$d</xliff:g> நாட்களில் (<xliff:g id="USED_4">%5$s</xliff:g>) தொடங்கும்"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"அதிகபட்சம் <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) / <xliff:g id="USED_2">%3$s</xliff:g>"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> அதிகபட்சத்தை மீறிவிட்டது\n<xliff:g id="USED_1">%2$d</xliff:g> Kb/s க்குத் தரவு கட்டணம் குறைந்தது"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g>٪ சுழற்சி கடந்துவிட்டன\nஅடுத்த காலம் <xliff:g id="USED_1">%2$d</xliff:g> நாட்களில் தொடங்கும் (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-te/config.xml b/res/values-te/config.xml
deleted file mode 100644
index f59237f..0000000
--- a/res/values-te/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"US"</item>
- </string-array>
-</resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 5e4ce1c..1798f60 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -307,7 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"డేటా వినియోగ వ్యవధి"</string>
<string name="throttle_rate" msgid="7641913901133634905">"డేటా రేట్ విధానం"</string>
<string name="throttle_help" msgid="2624535757028809735">"మరింత తెలుసుకోండి"</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"గరిష్టంగా <xliff:g id="USED_2">%3$s</xliff:g> వ్యవధిలో <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪)\nతదపరి వ్యవధి <xliff:g id="USED_3">%4$d</xliff:g> రోజుల్లో (<xliff:g id="USED_4">%5$s</xliff:g>) ప్రారంభమవుతుంది"</string>
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"గరిష్ఠ వ్యవధి అయిన <xliff:g id="USED_2">%3$s</xliff:g>లో <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪)\nతర్వాతి వ్యవధి <xliff:g id="USED_3">%4$d</xliff:g> రోజుల్లో (<xliff:g id="USED_4">%5$s</xliff:g>) ప్రారంభమవుతుంది"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"గరిష్టంగా <xliff:g id="USED_2">%3$s</xliff:g>లో <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪)"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> గరిష్ట పరిమితి మించిపోయింది\nడేటా రేట్ <xliff:g id="USED_1">%2$d</xliff:g> Kb/sకి తగ్గించబడింది"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"సైకిల్లో <xliff:g id="USED_0">%1$d</xliff:g>٪ గడిచిపోయింది\nతదుపరి వ్యవధి <xliff:g id="USED_1">%2$d</xliff:g> రోజుల్లో (<xliff:g id="USED_2">%3$s</xliff:g>) ప్రారంభమవుతుంది"</string>
diff --git a/res/values-th/config.xml b/res/values-th/config.xml
deleted file mode 100644
index 74c94c5..0000000
--- a/res/values-th/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"th"</item>
- </string-array>
-</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index b1b544b..fe2a7a2 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -307,7 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"ช่วงเวลาการใช้ข้อมูล"</string>
<string name="throttle_rate" msgid="7641913901133634905">"นโยบายอัตราการส่งข้อมูล"</string>
<string name="throttle_help" msgid="2624535757028809735">"ดูข้อมูลเพิ่มเติม"</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) จากช่วงสูงสุด <xliff:g id="USED_2">%3$s</xliff:g> \nช่วงถัดไปจะเริ่มในอีก <xliff:g id="USED_3">%4$d</xliff:g> วัน (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) จากช่วงสูงสุด <xliff:g id="USED_2">%3$s</xliff:g>\nช่วงถัดไปจะเริ่มในอีก <xliff:g id="USED_3">%4$d</xliff:g> วัน (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) จากช่วงสูงสุด <xliff:g id="USED_2">%3$s</xliff:g>"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g>เกินจำนวนสูงสุด\nอัตราการส่งข้อมูลถูกลดเหลือ<xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g>٪ ของรอบผ่านไป \n ช่วงถัดไปจะเริ่มในอีก <xliff:g id="USED_1">%2$d</xliff:g> วัน (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
@@ -518,7 +518,7 @@
<string name="card_title_in_call" msgid="8231896539567594265">"กำลังใช้สาย"</string>
<string name="notification_voicemail_title" msgid="3932876181831601351">"ข้อความเสียงใหม่"</string>
<string name="notification_voicemail_title_count" msgid="2806950319222327082">"ข้อความเสียงใหม่ (<xliff:g id="COUNT">%d</xliff:g>)"</string>
- <string name="notification_voicemail_text_format" msgid="5720947141702312537">"หมุนหมายเลข <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+ <string name="notification_voicemail_text_format" msgid="5720947141702312537">"โทร <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
<string name="notification_voicemail_no_vm_number" msgid="3423686009815186750">"ไม่ทราบหมายเลขข้อความเสียง"</string>
<string name="notification_network_selection_title" msgid="255595526707809121">"ไม่มีบริการ"</string>
<string name="notification_network_selection_text" msgid="553288408722427659">"เครือข่ายที่เลือกไว้<xliff:g id="OPERATOR_NAME">%s</xliff:g> ไม่พร้อมใช้งาน"</string>
diff --git a/res/values-tl/config.xml b/res/values-tl/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-tl/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-tr/config.xml b/res/values-tr/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-tr/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-uk/config.xml b/res/values-uk/config.xml
deleted file mode 100644
index 2b5223a..0000000
--- a/res/values-uk/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"США"</item>
- </string-array>
-</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index c54e780..7f5b8cb 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -307,7 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Період викор. даних"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Пол. шв. перед. дан."</string>
<string name="throttle_help" msgid="2624535757028809735">"Докладніше"</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) з <xliff:g id="USED_2">%3$s</xliff:g> макс. пеірод\nНаступний період поч. через <xliff:g id="USED_3">%4$d</xliff:g> дн. (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) з <xliff:g id="USED_2">%3$s</xliff:g> на цей період\nНаступний період почнеться за <xliff:g id="USED_3">%4$d</xliff:g> дн. (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) з<xliff:g id="USED_2">%3$s</xliff:g> максим. періоду"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> макс. перевищ.\nШв. перед. дан. скор. до <xliff:g id="USED_1">%2$d</xliff:g> КБ/сек"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g>٪ з циклу здійсн.\nНаст. період почин. через <xliff:g id="USED_1">%2$d</xliff:g> дн. (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-ur/config.xml b/res/values-ur/config.xml
deleted file mode 100644
index 0c45f06..0000000
--- a/res/values-ur/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"امریکہ"</item>
- </string-array>
-</resources>
diff --git a/res/values-uz/config.xml b/res/values-uz/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-uz/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index dec6650..a171138 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -307,7 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Ma‘lumotdan foydalanish muddati"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Ma‘lumotlar uzatish tezligi siyosati"</string>
<string name="throttle_help" msgid="2624535757028809735">"Batafsil"</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"Maksimal daraja muddati <xliff:g id="USED_2">%3$s</xliff:g>dan <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) \nKeyingi muddat <xliff:g id="USED_3">%4$d</xliff:g> kunda (<xliff:g id="USED_4">%5$s</xliff:g>) boshlanadi."</string>
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>%%) / <xliff:g id="USED_2">%3$s</xliff:g> (maksimum)\nKeyingi davr <xliff:g id="USED_3">%4$d</xliff:g> kun ichida boshlanadi (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"Maksimal daraja muddati <xliff:g id="USED_2">%3$s</xliff:g>dan <xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪)"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"<xliff:g id="USED_0">%1$s</xliff:g> maksimal darajadan oshib ketdi\nTrafik tezligi <xliff:g id="USED_1">%2$d</xliff:g> Kb/s’ga pasaydi"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g>٪ o‘tgan bosqichdan\nKeyingi bosqich <xliff:g id="USED_1">%2$d</xliff:g> kunda boshlanadi (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-vi/config.xml b/res/values-vi/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-vi/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index b802417..546e0bb 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -307,7 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"Thời gian sử dụng dữ liệu"</string>
<string name="throttle_rate" msgid="7641913901133634905">"Chính sách tốc độ dữ liệu"</string>
<string name="throttle_help" msgid="2624535757028809735">"Tìm hiểu thêm"</string>
- <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) trong tổng số <xliff:g id="USED_2">%3$s</xliff:g> thời gian tối đa\nThời gian tiếp theo bắt đầu sau <xliff:g id="USED_3">%4$d</xliff:g> ngày nữa (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>%%) trong tổng <xliff:g id="USED_2">%3$s</xliff:g> thời gian tối đa\nThời gian tiếp theo bắt đầu sau <xliff:g id="USED_3">%4$d</xliff:g> ngày nữa (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) trong tổng số <xliff:g id="USED_2">%3$s</xliff:g> thời gian tối đa"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"Đã vượt quá tối đa <xliff:g id="USED_0">%1$s</xliff:g>\nTốc độ dữ liệu bị giảm xuống <xliff:g id="USED_1">%2$d</xliff:g> Kb/giây"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"<xliff:g id="USED_0">%1$d</xliff:g>٪ của chu kỳ đã qua\nThời gian tiếp theo sẽ bắt đầu trong <xliff:g id="USED_1">%2$d</xliff:g> ngày (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 5bbc52a..d7a7329 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -276,13 +276,13 @@
<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>
+ <string name="roaming_on_notification_title" msgid="7451473196411559173">"已开启数据漫游功能"</string>
<string name="roaming_warning" msgid="7855681468067171971">"这可能会产生高额费用。"</string>
<string name="roaming_check_price_warning" msgid="8212484083990570215">"请与您的网络服务提供商联系以了解定价。"</string>
- <string name="roaming_alert_title" msgid="5689615818220960940">"要允许移动数据网络漫游吗?"</string>
+ <string name="roaming_alert_title" msgid="5689615818220960940">"允许数据漫游?"</string>
<string name="limited_sim_function_notification_title" msgid="612715399099846281">"SIM 卡功能受限"</string>
<string name="limited_sim_function_with_phone_num_notification_message" msgid="5928988883403677610">"使用 <xliff:g id="PHONE_NUMBER">%2$s</xliff:g> 时,系统可能会屏蔽<xliff:g id="CARRIER_NAME">%1$s</xliff:g>通话和数据服务。"</string>
<string name="limited_sim_function_notification_message" msgid="5338638075496721160">"使用另一张 SIM 卡时,系统可能会屏蔽<xliff:g id="CARRIER_NAME">%1$s</xliff:g>通话和数据服务。"</string>
@@ -692,8 +692,8 @@
<string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"PIN 码不一致"</string>
<string name="change_pin_succeeded" msgid="2504705600693014403">"语音信箱 PIN 码已更新"</string>
<string name="change_pin_system_error" msgid="7772788809875146873">"无法设置 PIN 码"</string>
- <string name="mobile_data_status_roaming_turned_off_subtext" msgid="6840673347416227054">"数据网络漫游功能已停用"</string>
- <string name="mobile_data_status_roaming_turned_on_subtext" msgid="5615757897768777865">"数据网络漫游功能已启用"</string>
+ <string name="mobile_data_status_roaming_turned_off_subtext" msgid="6840673347416227054">"数据漫游服务已关闭"</string>
+ <string name="mobile_data_status_roaming_turned_on_subtext" msgid="5615757897768777865">"数据漫游服务已开启"</string>
<string name="mobile_data_status_roaming_without_plan_subtext" msgid="6536671968072284677">"目前处于漫游状态,需要添加数据流量套餐"</string>
<string name="mobile_data_status_roaming_with_plan_subtext" msgid="2576177169108123095">"目前处于漫游状态,数据流量套餐已启用"</string>
<string name="mobile_data_status_no_plan_subtext" msgid="170331026419263657">"无剩余移动数据流量"</string>
diff --git a/res/values-zh-rHK/config.xml b/res/values-zh-rHK/config.xml
deleted file mode 100644
index fe48f0c..0000000
--- a/res/values-zh-rHK/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"美國"</item>
- </string-array>
-</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index bad8894..39a819e 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -307,9 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"資料使用量週期"</string>
<string name="throttle_rate" msgid="7641913901133634905">"資料傳輸速率政策"</string>
<string name="throttle_help" msgid="2624535757028809735">"瞭解更多資訊"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_status_subtext (1110276415078236687) -->
- <skip />
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>%%),週期上限為 <xliff:g id="USED_2">%3$s</xliff:g>\n下一週期會在 <xliff:g id="USED_3">%4$d</xliff:g> 天後開始 (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g> ٪),週期上限為 <xliff:g id="USED_2">%3$s</xliff:g>"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"已達 <xliff:g id="USED_0">%1$s</xliff:g> 上限\n資料速率降低至 <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"已經過 <xliff:g id="USED_0">%1$d</xliff:g>٪ 的循環週期\n下一週期會在 <xliff:g id="USED_1">%2$d</xliff:g> 天後開始 (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-zh-rTW/config.xml b/res/values-zh-rTW/config.xml
deleted file mode 100644
index 12cfb3a..0000000
--- a/res/values-zh-rTW/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"us"</item>
- </string-array>
-</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 45096ab..d02250e 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -307,9 +307,7 @@
<string name="throttle_time_frame" msgid="1813452485948918791">"資料使用量週期"</string>
<string name="throttle_rate" msgid="7641913901133634905">"資料傳輸速率政策"</string>
<string name="throttle_help" msgid="2624535757028809735">"瞭解更多資訊"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_status_subtext (1110276415078236687) -->
- <skip />
+ <string name="throttle_status_subtext" msgid="1110276415078236687">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪),週期上限為 <xliff:g id="USED_2">%3$s</xliff:g>\n下一週期會在 <xliff:g id="USED_3">%4$d</xliff:g> 天後開始 (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="3185429653996709840">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g> ٪),週期上限為 <xliff:g id="USED_2">%3$s</xliff:g>"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="8369839346277847725">"已達 <xliff:g id="USED_0">%1$s</xliff:g> 上限\n資料速率降低至 <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
<string name="throttle_time_frame_subtext" msgid="6462089615392402127">"已經過 <xliff:g id="USED_0">%1$d</xliff:g> ٪ 的循環週期\n下一週期會在 <xliff:g id="USED_1">%2$d</xliff:g> 天內開始 (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
diff --git a/res/values-zu/config.xml b/res/values-zu/config.xml
deleted file mode 100644
index 62f4fe4..0000000
--- a/res/values-zu/config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 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.
- -->
-
-<!-- NOTE: Many variables that used to be in this file have been migrated to
- CarrierConfigManager.java. Please consider whether new variables belong
- there before adding to this file. Variables here should be more closely
- related to devices than to networks. -->
-
-<!-- Phone app resources that may need to be customized
- for different hardware or product builds. -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string-array name="config_simless_emergency_rtt_supported_countries">
- <item msgid="5409580020841435354">"thina"</item>
- </string-array>
-</resources>
diff --git a/res/values/config.xml b/res/values/config.xml
index 2f0fcc6..9b2605d 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -285,4 +285,9 @@
slot. If true, telephony will always try to place the emergency call on the subscription
associated with default data first, instead of using the default voice configuration.-->
<bool name="config_gnss_supl_requires_default_data_for_emergency">false</bool>
+
+ <!-- Whether a device can have 5G connection in DSDS mode. It should be true by default, but
+ in some devices per modem limitation 5G network can't be connected if two or more SIMs
+ are active simultaneously. In that case, this value should be false. -->
+ <bool name="config_5g_connection_in_dsds_mode">true</bool>
</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index e8a0bed..8218a84 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -259,7 +259,7 @@
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
- <item name="emergencyButtonBackgroundColor">#3cffffff</item>
+ <item name="emergencyButtonBackgroundColor">#10ffffff</item>
<item name="dialpadTheme">@style/Dialpad_DarkTransparent.Emergency</item>
</style>
diff --git a/sip/res/values-ar/strings.xml b/sip/res/values-ar/strings.xml
index e971077..f60f726 100644
--- a/sip/res/values-ar/strings.xml
+++ b/sip/res/values-ar/strings.xml
@@ -34,7 +34,7 @@
<string name="sip_menu_save" msgid="4377112554203123060">"حفظ"</string>
<string name="sip_menu_discard" msgid="1883166691772895243">"إلغاء"</string>
<string name="alert_dialog_close" msgid="1734746505531110706">"إغلاق الملف الشخصي"</string>
- <string name="alert_dialog_ok" msgid="7806760618798687406">"موافق"</string>
+ <string name="alert_dialog_ok" msgid="7806760618798687406">"حسنًا"</string>
<string name="close_profile" msgid="3756064641769751774">"إغلاق"</string>
<string name="registration_status_checking_status" msgid="884179594507591180">"جارٍ فحص الحالة…"</string>
<string name="registration_status_registering" msgid="7986331597809521791">"جارٍ التسجيل…"</string>
diff --git a/sip/res/values-eu/strings.xml b/sip/res/values-eu/strings.xml
index 5c7b0ce..0925002 100644
--- a/sip/res/values-eu/strings.xml
+++ b/sip/res/values-eu/strings.xml
@@ -26,7 +26,7 @@
<string name="sip_call_options_entry_1" msgid="4722647332760934261">"Dei guztietan datu-sarea erabilgarri dagoenean"</string>
<string name="sip_call_options_entry_2" msgid="7338504256051655013">"SIP deietan soilik"</string>
<string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Dei guztietan"</string>
- <string name="add_sip_account" msgid="5754758646745144384">"Gehitu kontua"</string>
+ <string name="add_sip_account" msgid="5754758646745144384">"Gehitu kontu bat"</string>
<string name="remove_sip_account" msgid="8272617403399636513">"Kendu kontua"</string>
<string name="sip_account_list" msgid="2596262496233721769">"SIP kontuak"</string>
<string name="saving_account" msgid="3390358043846687266">"Kontua gordetzen…"</string>
@@ -72,7 +72,7 @@
<string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> behar da eta ezin da hutsik utzi."</string>
<string name="not_a_valid_port" msgid="3664668836663491376">"Ataka-zenbakiak 1000 eta 65534 artean egon behar luke."</string>
<string name="no_internet_available" msgid="161720645084325479">"SIP deiak egiteko, egiaztatu Internetera konektatuta zaudela."</string>
- <string name="no_wifi_available" msgid="1179092018692306312">"Wi-Fi sare batera konektatuta egon behar zara SIP deiak egiteko (erabili hari gabekoen eta sareen ezarpenak)."</string>
+ <string name="no_wifi_available" msgid="1179092018692306312">"Wifi-sare batera konektatuta egon behar zara SIP deiak egiteko (erabili hari gabekoen eta sareen ezarpenak)."</string>
<string name="no_voip" msgid="3366395789297981738">"SIP deiak ez dira onartzen"</string>
<string name="sip_system_decide" msgid="197230378376326430">"Automatikoa"</string>
<string name="sip_always_send_keepalive" msgid="4986533673960084769">"Bidali beti"</string>
diff --git a/sip/res/values-gu/strings.xml b/sip/res/values-gu/strings.xml
index aa32a85..9eb810b 100644
--- a/sip/res/values-gu/strings.xml
+++ b/sip/res/values-gu/strings.xml
@@ -18,7 +18,7 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="sip_settings" msgid="7452587325305604702">"SIP સેટિંગ્સ"</string>
<string name="sip_accounts" msgid="7297896885665783239">"SIP એકાઉન્ટ્સ"</string>
- <string name="sip_accounts_title" msgid="3061686404598143943">"એકાઉન્ટ્સ"</string>
+ <string name="sip_accounts_title" msgid="3061686404598143943">"એકાઉન્ટ"</string>
<string name="sip_receive_calls" msgid="3403644006618369349">"આવનારા કૉલ્સ પ્રાપ્ત કરો"</string>
<string name="sip_receive_calls_summary" msgid="5306603671778761443">"બધુ બૅટરીની આવરદાનો ઉપયોગ કરે છે"</string>
<string name="sip_call_options_title" msgid="5027066677561068192">"SIP કૉલિંગનો ઉપયોગ કરો"</string>
diff --git a/sip/res/values-in/strings.xml b/sip/res/values-in/strings.xml
index 535e5ac..709205c 100644
--- a/sip/res/values-in/strings.xml
+++ b/sip/res/values-in/strings.xml
@@ -40,7 +40,7 @@
<string name="registration_status_registering" msgid="7986331597809521791">"Mendaftarkan..."</string>
<string name="registration_status_still_trying" msgid="7178623685868766282">"Masih mencoba..."</string>
<string name="registration_status_not_receiving" msgid="3873074208531938401">"Tidak menerima panggilan."</string>
- <string name="registration_status_no_data" msgid="2987064560116584121">"Pendaftaran akun terhenti karena tidak ada sambungan internet."</string>
+ <string name="registration_status_no_data" msgid="2987064560116584121">"Pendaftaran akun terhenti karena tidak ada koneksi internet."</string>
<string name="registration_status_no_wifi_data" msgid="685470618241482948">"Pendaftaran akun terhenti karena tidak ada sambungan Wi-Fi."</string>
<string name="registration_status_not_running" msgid="6236403137652262659">"Pendaftaran akun gagal."</string>
<string name="registration_status_done" msgid="6787397199273357721">"Menerima panggilan."</string>
@@ -71,7 +71,7 @@
<string name="all_empty_alert" msgid="6085603517610199098">"Masukkan detail akun SIP baru."</string>
<string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> diwajibkan dan tidak boleh kosong."</string>
<string name="not_a_valid_port" msgid="3664668836663491376">"Nomor port harus dalam rentang 1000 dan 65534."</string>
- <string name="no_internet_available" msgid="161720645084325479">"Untuk melakukan panggilan SIP, periksa sambungan internet terlebih dahulu."</string>
+ <string name="no_internet_available" msgid="161720645084325479">"Untuk melakukan panggilan SIP, periksa koneksi internet terlebih dahulu."</string>
<string name="no_wifi_available" msgid="1179092018692306312">"Anda harus tersambung ke jaringan Wi-Fi untuk melakukan panggilan SIP (gunakan setelan Nirkabel & Jaringan)."</string>
<string name="no_voip" msgid="3366395789297981738">"Panggilan SIP tidak didukung"</string>
<string name="sip_system_decide" msgid="197230378376326430">"Otomatis"</string>
diff --git a/sip/res/values-ky/strings.xml b/sip/res/values-ky/strings.xml
index 23d5561..6916f24 100644
--- a/sip/res/values-ky/strings.xml
+++ b/sip/res/values-ky/strings.xml
@@ -40,7 +40,7 @@
<string name="registration_status_registering" msgid="7986331597809521791">"Катталууда…"</string>
<string name="registration_status_still_trying" msgid="7178623685868766282">"Дагы эле аракет жасалууда…"</string>
<string name="registration_status_not_receiving" msgid="3873074208531938401">"Чалуулар кабыл алынбайт"</string>
- <string name="registration_status_no_data" msgid="2987064560116584121">"Интернет байланышы жок болгондуктан, эсепти каттоо аракети токтотулду."</string>
+ <string name="registration_status_no_data" msgid="2987064560116584121">"Интернет жок болгондуктан, эсепти каттоо аракети токтотулду."</string>
<string name="registration_status_no_wifi_data" msgid="685470618241482948">"Wi-Fi байланышы жок болгондуктан, эсепти каттоо аракети токтотулду."</string>
<string name="registration_status_not_running" msgid="6236403137652262659">"Эсеп катталбай калды."</string>
<string name="registration_status_done" msgid="6787397199273357721">"Чалуулар кабыл алынат."</string>
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index 3f57cae..54acaad 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -97,6 +97,7 @@
"phone_account_settings_preference_screen";
private static final String ENABLE_VIDEO_CALLING_KEY = "button_enable_video_calling";
+ private static final String BUTTON_VP_KEY = "button_voice_privacy_key";
private Phone mPhone;
private ImsManager mImsMgr;
@@ -400,6 +401,9 @@
if (!carrierConfig.getBoolean(
CarrierConfigManager.KEY_VOICE_PRIVACY_DISABLE_UI_BOOL)) {
addPreferencesFromResource(R.xml.cdma_call_privacy);
+ CdmaVoicePrivacySwitchPreference buttonVoicePrivacy =
+ (CdmaVoicePrivacySwitchPreference) findPreference(BUTTON_VP_KEY);
+ buttonVoicePrivacy.setPhone(mPhone);
}
} else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
if (mPhone.getIccCard() == null || !mPhone.getIccCard().getIccFdnAvailable()) {
diff --git a/src/com/android/phone/CallNotifier.java b/src/com/android/phone/CallNotifier.java
index 5b14591..6c18623 100644
--- a/src/com/android/phone/CallNotifier.java
+++ b/src/com/android/phone/CallNotifier.java
@@ -560,7 +560,7 @@
public void updatePhoneStateListeners(boolean isRefresh, int updateType, int subIdToUpdate) {
List<SubscriptionInfo> subInfos = SubscriptionController.getInstance()
.getActiveSubscriptionInfoList(mApplication.getOpPackageName(),
- mApplication.getFeatureId());
+ mApplication.getAttributionTag());
// Sort sub id list based on slot id, so that CFI/MWI notifications will be updated for
// slot 0 first then slot 1. This is needed to ensure that when CFI or MWI is enabled for
diff --git a/src/com/android/phone/CarrierConfigLoader.java b/src/com/android/phone/CarrierConfigLoader.java
index 7b3d3c1..866e481 100644
--- a/src/com/android/phone/CarrierConfigLoader.java
+++ b/src/com/android/phone/CarrierConfigLoader.java
@@ -51,6 +51,7 @@
import android.telephony.TelephonyFrameworkInitializer;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
+import android.util.ArraySet;
import android.util.LocalLog;
import android.util.Log;
@@ -75,6 +76,7 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.Set;
/**
* CarrierConfigLoader binds to privileged carrier apps to fetch carrier config overlays.
@@ -101,8 +103,10 @@
private CarrierServiceConnection[] mServiceConnection;
// Whether we are bound to a service for each phone
private boolean[] mServiceBound;
- // Whether we have sent config change bcast for each phone id.
+ // Whether we have sent config change broadcast for each phone id.
private boolean[] mHasSentConfigChange;
+ // Whether the broadcast was sent from EVENT_SYSTEM_UNLOCKED, to track rebroadcasts
+ private boolean[] mFromSystemUnlocked;
// SubscriptionInfoUpdater
private final SubscriptionInfoUpdater mSubscriptionInfoUpdater;
@@ -198,11 +202,13 @@
case EVENT_SYSTEM_UNLOCKED: {
for (int i = 0; i < TelephonyManager.from(mContext).getActiveModemCount();
++i) {
- // When user unlock device, we should only try to send broadcast again if we
- // have sent it before unlock. This will avoid we try to load carrier config
- // when SIM is still loading when unlock happens.
+ // When the user unlocks the device, send the broadcast again (with a
+ // rebroadcast extra) if we have sent it before unlock. This will avoid
+ // trying to load the carrier config when the SIM is still loading when the
+ // unlock happens.
if (mHasSentConfigChange[i]) {
logdWithLocalLog("System unlocked");
+ mFromSystemUnlocked[i] = true;
updateConfigForPhoneId(i);
}
}
@@ -536,6 +542,7 @@
mServiceConnection = new CarrierServiceConnection[numPhones];
mServiceBound = new boolean[numPhones];
mHasSentConfigChange = new boolean[numPhones];
+ mFromSystemUnlocked = new boolean[numPhones];
// Make this service available through ServiceManager.
TelephonyFrameworkInitializer
.getTelephonyServiceManager().getCarrierConfigServiceRegisterer().register(this);
@@ -624,6 +631,8 @@
.createForSubscriptionId(subIds[0]);
simApplicationState = telMgr.getSimApplicationState();
}
+ logd("Broadcast CARRIER_CONFIG_CHANGED for phone " + phoneId
+ + " simApplicationState " + simApplicationState);
// Include subId/carrier id extra only if SIM records are loaded
if (simApplicationState != TelephonyManager.SIM_STATE_UNKNOWN
&& simApplicationState != TelephonyManager.SIM_STATE_NOT_READY) {
@@ -634,9 +643,17 @@
}
}
intent.putExtra(CarrierConfigManager.EXTRA_SLOT_INDEX, phoneId);
- logd("Broadcast CARRIER_CONFIG_CHANGED for phone " + phoneId);
+ intent.putExtra(CarrierConfigManager.EXTRA_REBROADCAST_ON_UNLOCK,
+ mFromSystemUnlocked[phoneId]);
mContext.sendBroadcastAsUser(intent, UserHandle.ALL);
+ int[] subIds = SubscriptionManager.getSubId(phoneId);
+ if (subIds != null && subIds.length > 0) {
+ logd("Broadcast CARRIER_CONFIG_CHANGED for phone " + phoneId + ", subId=" + subIds[0]);
+ } else {
+ logd("Broadcast CARRIER_CONFIG_CHANGED for phone " + phoneId);
+ }
mHasSentConfigChange[phoneId] = true;
+ mFromSystemUnlocked[phoneId] = false;
}
/** Binds to the default or carrier config app. */
@@ -1103,8 +1120,18 @@
+ Binder.getCallingPid() + ", uid=" + Binder.getCallingUid());
return;
}
+ String requestingPackage = null;
+ int requestingPackageIndex = ArrayUtils.indexOf(args, DUMP_ARG_REQUESTING_PACKAGE);
+ if (requestingPackageIndex >= 0 && requestingPackageIndex < args.length - 1
+ && !TextUtils.isEmpty(args[requestingPackageIndex + 1])) {
+ requestingPackage = args[requestingPackageIndex + 1];
+ // Throws a SecurityException if the caller is impersonating another app in an effort to
+ // dump extra info (which may contain PII the caller doesn't have a right to).
+ enforceCallerIsSystemOrRequestingPackage(requestingPackage);
+ }
+
indentPW.println("CarrierConfigLoader: " + this);
- for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
+ for (int i = 0; i < TelephonyManager.from(mContext).getActiveModemCount(); i++) {
indentPW.println("Phone Id = " + i);
// display default values in CarrierConfigManager
printConfig(CarrierConfigManager.getDefaultConfig(), indentPW,
@@ -1120,20 +1147,15 @@
indentPW.println("CarrierConfigLoadingLog=");
mCarrierConfigLoadingLog.dump(fd, indentPW, args);
- int requestingPackageIndex = ArrayUtils.indexOf(args, DUMP_ARG_REQUESTING_PACKAGE);
- if (requestingPackageIndex != -1 && requestingPackageIndex < args.length - 1
- && !TextUtils.isEmpty(args[requestingPackageIndex + 1])) {
- String requestingPackage = args[requestingPackageIndex + 1];
- indentPW.println("");
- // Throws a SecurityException if the caller is impersonating another app in an effort to
- // dump extra info (which may contain PII the caller doesn't have a right to).
- enforceCallerIsSystemOrRequestingPackage(requestingPackage);
+ if (requestingPackage != null) {
logd("Including default and requesting package " + requestingPackage
+ " carrier services in dump");
+ indentPW.println("");
indentPW.println("Connected services");
dumpCarrierServiceIfBound(fd, indentPW, "Default config package",
- mPlatformCarrierConfigPackage);
- dumpCarrierServiceIfBound(fd, indentPW, "Requesting package", requestingPackage);
+ mPlatformCarrierConfigPackage, false /* considerCarrierPrivileges */);
+ dumpCarrierServiceIfBound(fd, indentPW, "Requesting package", requestingPackage,
+ true /* considerCarrierPrivileges */);
}
}
@@ -1193,63 +1215,100 @@
appOps.checkPackage(callingUid, requestingPackage);
}
+ /**
+ * Searches for one or more appropriate {@link CarrierService} instances to dump based on the
+ * current connections.
+ *
+ * @param targetPkgName the target package name to dump carrier services for
+ * @param considerCarrierPrivileges if true, allow a carrier service to be dumped if it shares
+ * carrier privileges with {@code targetPkgName};
+ * otherwise, only dump a carrier service if it is {@code
+ * targetPkgName}
+ */
private void dumpCarrierServiceIfBound(FileDescriptor fd, IndentingPrintWriter indentPW,
- String prefix, String pkgName) {
+ String prefix, String targetPkgName, boolean considerCarrierPrivileges) {
// Null package is possible if it's early in the boot process, there was a recent crash, we
// loaded the config from XML most recently, or a SIM slot is empty. Carrier apps with
// long-lived bindings should typically get dumped here regardless. Even if an app is being
// used for multiple phoneIds, we assume that it's smart enough to handle that on its own,
// and that in most cases we'd just be dumping duplicate information and bloating a report.
indentPW.increaseIndent();
- indentPW.println(prefix + " : " + pkgName);
+ indentPW.println(prefix + " : " + targetPkgName);
+ Set<String> dumpedPkgNames = new ArraySet<>(mServiceConnection.length);
for (CarrierServiceConnection connection : mServiceConnection) {
- try {
- // We don't pay attention to mServiceBound[connection.phoneId] because typically
- // carrier apps will request long-lived bindings, and even if we unbind the app, it
- // may still be alive due to CarrierServiceBindHelper.
- if (connection == null || connection.service == null || !TextUtils.equals(pkgName,
- connection.pkgName) || !connection.service.isBinderAlive()
- || !connection.service.pingBinder()) {
- continue;
- }
- // Flush before we let the app output anything to ensure correct ordering of output.
- // Internally, Binder#dump calls flush on its printer after finishing so we don't
- // need to after the call finishes.
- indentPW.flush();
- try {
- logd("Dumping " + pkgName);
- // We don't need to give the carrier service any args.
- connection.service.dump(fd, null /* args */);
- logd("Done with " + pkgName);
- indentPW.decreaseIndent();
- indentPW.println("");
- return;
- } catch (RemoteException e) {
- indentPW.println("RemoteException");
- logd("RemoteException from " + pkgName, e);
- e.printStackTrace(indentPW);
- indentPW.decreaseIndent();
- indentPW.println("");
- return;
- }
- } catch (NullPointerException e) {
- // Highly unlikely, but possible if the carrier app was just unbound right before we
- // we tried to dump it so the binder was reset to null. Loop in case we have more
- // candidates on other phoneIds.
- logd("NullPointerException from " + pkgName, e);
+ if (connection == null || !SubscriptionManager.isValidPhoneId(connection.phoneId)
+ || TextUtils.isEmpty(connection.pkgName)) {
+ continue;
}
+ final String servicePkgName = connection.pkgName;
+ // Note: we intentionally ignore system components here because we should NOT match the
+ // shell caller that's typically used for bug reports via non-BugreportManager triggers.
+ final boolean exactPackageMatch = TextUtils.equals(targetPkgName, servicePkgName);
+ final boolean carrierPrivilegesMatch =
+ considerCarrierPrivileges && hasCarrierPrivileges(targetPkgName,
+ connection.phoneId);
+ if (!exactPackageMatch && !carrierPrivilegesMatch) continue;
+ // Make sure this service is actually alive before trying to dump it. We don't pay
+ // attention to mServiceBound[connection.phoneId] because typically carrier apps will
+ // request long-lived bindings, and even if we unbind the app, it may still be alive due
+ // to CarrierServiceBindHelper. Pull it out as a reference so even if it gets set to
+ // null within the ServiceConnection during unbinding we can avoid an NPE.
+ final IBinder service = connection.service;
+ if (service == null || !service.isBinderAlive() || !service.pingBinder()) continue;
+ // We've got a live service. Last check is just to make sure we don't dump a package
+ // multiple times.
+ if (!dumpedPkgNames.add(servicePkgName)) continue;
+ if (!exactPackageMatch) {
+ logd(targetPkgName + " has carrier privileges on phoneId " + connection.phoneId
+ + ", service provided by " + servicePkgName);
+ indentPW.increaseIndent();
+ indentPW.println("Proxy : " + servicePkgName);
+ indentPW.decreaseIndent();
+ }
+ // Flush before we let the app output anything to ensure correct ordering of output.
+ // Internally, Binder#dump calls flush on its printer after finishing so we don't
+ // need to do anything after.
+ indentPW.flush();
+ try {
+ logd("Dumping " + servicePkgName);
+ // We don't need to give the carrier service any args.
+ connection.service.dump(fd, null /* args */);
+ logd("Done with " + servicePkgName);
+ } catch (RemoteException e) {
+ logd("RemoteException from " + servicePkgName, e);
+ indentPW.increaseIndent();
+ indentPW.println("RemoteException");
+ indentPW.increaseIndent();
+ e.printStackTrace(indentPW);
+ indentPW.decreaseIndent();
+ indentPW.decreaseIndent();
+ // We won't retry this package again because now it's in dumpedPkgNames.
+ }
+ indentPW.println("");
}
- indentPW.increaseIndent();
- indentPW.println("Not bound");
+ if (dumpedPkgNames.isEmpty()) {
+ indentPW.increaseIndent();
+ indentPW.println("Not bound");
+ indentPW.decreaseIndent();
+ indentPW.println("");
+ }
indentPW.decreaseIndent();
- indentPW.decreaseIndent();
- indentPW.println("");
+ }
+
+ private boolean hasCarrierPrivileges(String pkgName, int phoneId) {
+ int[] subIds = SubscriptionManager.getSubId(phoneId);
+ if (ArrayUtils.isEmpty(subIds)) {
+ return false;
+ }
+ return TelephonyManager.from(mContext).createForSubscriptionId(
+ subIds[0]).checkCarrierPrivilegesForPackage(pkgName)
+ == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
}
private class CarrierServiceConnection implements ServiceConnection {
- int phoneId;
- String pkgName;
- int eventId;
+ final int phoneId;
+ final String pkgName;
+ final int eventId;
IBinder service;
CarrierServiceConnection(int phoneId, String pkgName, int eventId) {
diff --git a/src/com/android/phone/CdmaCallOptions.java b/src/com/android/phone/CdmaCallOptions.java
index acfa496..8513664 100644
--- a/src/com/android/phone/CdmaCallOptions.java
+++ b/src/com/android/phone/CdmaCallOptions.java
@@ -21,7 +21,6 @@
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
-import android.preference.SwitchPreference;
import android.telephony.CarrierConfigManager;
import android.view.MenuItem;
@@ -32,7 +31,7 @@
private final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
private static final String BUTTON_VP_KEY = "button_voice_privacy_key";
- private SwitchPreference mButtonVoicePrivacy;
+ private CdmaVoicePrivacySwitchPreference mButtonVoicePrivacy;
@Override
protected void onCreate(Bundle icicle) {
@@ -44,7 +43,8 @@
subInfoHelper.setActionBarTitle(
getActionBar(), getResources(), R.string.labelCdmaMore_with_label);
- mButtonVoicePrivacy = (SwitchPreference) findPreference(BUTTON_VP_KEY);
+ mButtonVoicePrivacy = (CdmaVoicePrivacySwitchPreference) findPreference(BUTTON_VP_KEY);
+ mButtonVoicePrivacy.setPhone(subInfoHelper.getPhone());
PersistableBundle carrierConfig;
if (subInfoHelper.hasSubId()) {
carrierConfig = PhoneGlobals.getInstance().getCarrierConfigForSubId(
diff --git a/src/com/android/phone/CdmaVoicePrivacySwitchPreference.java b/src/com/android/phone/CdmaVoicePrivacySwitchPreference.java
index b79a3f0..0192c2a 100644
--- a/src/com/android/phone/CdmaVoicePrivacySwitchPreference.java
+++ b/src/com/android/phone/CdmaVoicePrivacySwitchPreference.java
@@ -102,4 +102,8 @@
phone.getEnhancedVoicePrivacy(obtainMessage(MESSAGE_GET_VP));
}
}
+
+ public void setPhone(Phone phone) {
+ this.phone = phone;
+ }
}
diff --git a/src/com/android/phone/EmergencyCallbackModeExitDialog.java b/src/com/android/phone/EmergencyCallbackModeExitDialog.java
index 6edc155..1210627 100644
--- a/src/com/android/phone/EmergencyCallbackModeExitDialog.java
+++ b/src/com/android/phone/EmergencyCallbackModeExitDialog.java
@@ -35,6 +35,7 @@
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
+import android.telephony.TelephonyManager;
import android.util.Log;
import com.android.internal.telephony.Phone;
@@ -330,7 +331,8 @@
// Received exit Emergency Callback Mode notification close all dialogs
if (intent.getAction().equals(
TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED)) {
- if (intent.getBooleanExtra("phoneinECMState", false) == false) {
+ // Cancel if the sticky broadcast extra for whether or not we are in ECM is false.
+ if (!intent.getBooleanExtra(TelephonyManager.EXTRA_PHONE_IN_ECM_STATE, false)) {
if (mAlertDialog != null)
mAlertDialog.dismiss();
if (mProgressDialog != null)
diff --git a/src/com/android/phone/EmergencyDialer.java b/src/com/android/phone/EmergencyDialer.java
index c6bac02..5d630af 100644
--- a/src/com/android/phone/EmergencyDialer.java
+++ b/src/com/android/phone/EmergencyDialer.java
@@ -20,6 +20,7 @@
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
+import android.annotation.ColorInt;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
@@ -44,7 +45,6 @@
import android.telecom.TelecomManager;
import android.telephony.CarrierConfigManager;
import android.telephony.PhoneNumberUtils;
-import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -72,6 +72,7 @@
import com.android.phone.common.dialpad.DialpadKeyButton;
import com.android.phone.common.util.ViewUtil;
import com.android.phone.common.widget.ResizingTextEditText;
+import com.android.telephony.Rlog;
import java.util.ArrayList;
import java.util.List;
@@ -151,6 +152,11 @@
/** Size limit of emergency shortcut buttons container. **/
private static final int SHORTCUT_SIZE_LIMIT = 3;
+ private static final float COLOR_DELTA = 1.0f / 16.0f;
+
+ /** Dial button color, from packages/apps/PhoneCommon/res/drawable-mdpi/fab_green.png **/
+ @ColorInt private static final int DIALER_GREEN = 0xff00c853;
+
ResizingTextEditText mDigits;
private View mDialButton;
private View mDelete;
@@ -719,8 +725,12 @@
isEmergencyNumber = true;
phoneToMakeCall = mShortcutViewConfig.getPhoneInfo();
} else {
- isEmergencyNumber = getSystemService(TelephonyManager.class)
- .isEmergencyNumber(mLastNumber);
+ try {
+ isEmergencyNumber = getSystemService(TelephonyManager.class)
+ .isEmergencyNumber(mLastNumber);
+ } catch (IllegalStateException ise) {
+ isEmergencyNumber = false;
+ }
}
if (isEmergencyNumber) {
@@ -1196,11 +1206,52 @@
private static int getPrimaryColor(WallpaperColors colors) {
if (colors != null) {
- return colors.getPrimaryColor().toArgb();
+ // Android accessibility scanner
+ // (https://support.google.com/accessibility/android/answer/7158390)
+ // suggest small text and graphics have a contrast ratio greater than
+ // 4.5 with background color. The color generated from wallpaper may not
+ // follow this rule. Calculate a proper color here.
+ Color primary = colors.getPrimaryColor();
+ Color text = Color.valueOf(Color.WHITE);
+ Color dial = Color.valueOf(DIALER_GREEN);
+ // If current primary color can't follow the contrast ratio rule, make it
+ // deeper and try again.
+ while (!checkContrastRatio(primary, text)) {
+ primary = getDeeper(primary);
+ }
+ while (!checkContrastRatio(primary, dial)) {
+ primary = getDeeper(primary);
+ }
+ return primary.toArgb();
}
// It's possible that wallpaper colors are null (e.g. when colors are being
// processed or a live wallpaper is used). In this case, fallback to same
// behavior as when shortcut view is enabled.
return Color.BLACK;
}
+
+ private static Color getDeeper(Color color) {
+ float r = color.red() - COLOR_DELTA;
+ float g = color.green() - COLOR_DELTA;
+ float b = color.blue() - COLOR_DELTA;
+ if (r < 0f) r = 0f;
+ if (g < 0f) g = 0f;
+ if (b < 0f) b = 0f;
+ return Color.valueOf(r, g, b);
+ }
+
+ private static boolean checkContrastRatio(Color color1, Color color2) {
+ float lum1 = color1.luminance();
+ float lum2 = color2.luminance();
+ double cr;
+ if (lum1 >= lum2) {
+ cr = (lum1 + 0.05) / (lum2 + 0.05);
+ } else {
+ cr = (lum2 + 0.05) / (lum1 + 0.05);
+ }
+
+ // Make cr greater than 5.0 instead of 4.5 to guarantee that transparent white
+ // text and graphics can have contrast ratio greather than 4.5 with background.
+ return cr > 5.0;
+ }
}
diff --git a/src/com/android/phone/IccNetworkDepersonalizationPanel.java b/src/com/android/phone/IccNetworkDepersonalizationPanel.java
index 8bd10a2..7d854cd 100644
--- a/src/com/android/phone/IccNetworkDepersonalizationPanel.java
+++ b/src/com/android/phone/IccNetworkDepersonalizationPanel.java
@@ -22,7 +22,10 @@
import android.os.Handler;
import android.os.Message;
import android.os.PersistableBundle;
+import android.os.RemoteException;
+import android.os.ServiceManager;
import android.telephony.CarrierConfigManager;
+import android.telephony.TelephonyManager;
import android.text.Editable;
import android.text.Spannable;
import android.text.TextUtils;
@@ -37,6 +40,8 @@
import android.widget.TextView;
import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.uicc.IccCardApplicationStatus;
+import com.android.internal.telephony.uicc.IccCardApplicationStatus.PersoSubState;
/**
* "SIM network unlock" PIN entry screen.
@@ -52,7 +57,8 @@
* Tracks whether there is an instance of the network depersonalization dialog showing or not.
* Ensures only a single instance of the dialog is visible.
*/
- private static boolean sShowingDialog = false;
+ private static boolean [] sShowingDialog =
+ new boolean[TelephonyManager.getDefault().getSimCount()];
//debug constants
private static final boolean DBG = false;
@@ -61,29 +67,48 @@
private static final int EVENT_ICC_NTWRK_DEPERSONALIZATION_RESULT = 100;
private Phone mPhone;
+ private int mPersoSubtype;
+ private static IccNetworkDepersonalizationPanel [] sNdpPanel =
+ new IccNetworkDepersonalizationPanel[TelephonyManager.getDefault().getSimCount()];
//UI elements
private EditText mPinEntry;
private LinearLayout mEntryPanel;
private LinearLayout mStatusPanel;
+ private TextView mPersoSubtypeText;
+ private PersoSubState mPersoSubState;
private TextView mStatusText;
private Button mUnlockButton;
private Button mDismissButton;
+ enum statusType {
+ ENTRY,
+ IN_PROGRESS,
+ ERROR,
+ SUCCESS
+ }
+
/**
* Shows the network depersonalization dialog, but only if it is not already visible.
*/
- public static void showDialog(Phone phone) {
- if (sShowingDialog) {
+ public static void showDialog(Phone phone, int subType) {
+ int phoneId = phone == null ? 0: phone.getPhoneId();
+ if (sShowingDialog[phoneId]) {
Log.i(TAG, "[IccNetworkDepersonalizationPanel] - showDialog; skipped already shown.");
return;
}
Log.i(TAG, "[IccNetworkDepersonalizationPanel] - showDialog; showing dialog.");
- sShowingDialog = true;
- IccNetworkDepersonalizationPanel ndpPanel =
- new IccNetworkDepersonalizationPanel(PhoneGlobals.getInstance(), phone);
- ndpPanel.show();
+ sShowingDialog[phoneId] = true;
+ sNdpPanel[phoneId] = new IccNetworkDepersonalizationPanel(PhoneGlobals.getInstance(),
+ phone, subType);
+ sNdpPanel[phoneId].show();
+ }
+
+ public static void dialogDismiss(int phoneId) {
+ if (sNdpPanel[phoneId] != null && sShowingDialog[phoneId]) {
+ sNdpPanel[phoneId].dismiss();
+ }
}
//private textwatcher to control text entry.
@@ -109,37 +134,41 @@
AsyncResult res = (AsyncResult) msg.obj;
if (res.exception != null) {
if (DBG) log("network depersonalization request failure.");
- indicateError();
+ displayStatus(statusType.ERROR.name());
postDelayed(new Runnable() {
- public void run() {
- hideAlert();
- mPinEntry.getText().clear();
- mPinEntry.requestFocus();
- }
- }, 3000);
+ public void run() {
+ hideAlert();
+ mPinEntry.getText().clear();
+ mPinEntry.requestFocus();
+ }
+ }, 3000);
} else {
if (DBG) log("network depersonalization success.");
- indicateSuccess();
+ displayStatus(statusType.SUCCESS.name());
postDelayed(new Runnable() {
- public void run() {
- dismiss();
- }
- }, 3000);
+ public void run() {
+ dismiss();
+ }
+ }, 3000);
}
}
}
};
+
//constructor
public IccNetworkDepersonalizationPanel(Context context) {
super(context);
mPhone = PhoneGlobals.getPhone();
+ mPersoSubtype = PersoSubState.PERSOSUBSTATE_SIM_NETWORK.ordinal();
}
//constructor
- public IccNetworkDepersonalizationPanel(Context context, Phone phone) {
+ public IccNetworkDepersonalizationPanel(Context context, Phone phone,
+ int subtype) {
super(context);
mPhone = phone == null ? PhoneGlobals.getPhone() : phone;
+ mPersoSubtype = subtype;
}
@Override
@@ -158,6 +187,8 @@
span.setSpan(mPinEntryWatcher, 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
mEntryPanel = (LinearLayout) findViewById(R.id.entry_panel);
+ mPersoSubtypeText = (TextView) findViewById(R.id.perso_subtype_text);
+ displayStatus(statusType.ENTRY.name());
mUnlockButton = (Button) findViewById(R.id.ndp_unlock);
mUnlockButton.setOnClickListener(mUnlockListener);
@@ -190,7 +221,8 @@
public void onStop() {
super.onStop();
Log.i(TAG, "[IccNetworkDepersonalizationPanel] - showDialog; hiding dialog.");
- sShowingDialog = false;
+ int phoneId = mPhone == null ? 0 : mPhone.getPhoneId();
+ sShowingDialog[phoneId] = false;
}
//Mirrors IccPinUnlockPanel.onKeyDown().
@@ -210,29 +242,45 @@
return;
}
- if (DBG) log("requesting network depersonalization with code " + pin);
- mPhone.getIccCard().supplyNetworkDepersonalization(pin,
- Message.obtain(mHandler, EVENT_ICC_NTWRK_DEPERSONALIZATION_RESULT));
- indicateBusy();
+ log("Requesting De-Personalization for subtype " + mPersoSubtype);
+
+ try {
+ mPhone.getIccCard().supplySimDepersonalization(mPersoSubState,pin,
+ Message.obtain(mHandler, EVENT_ICC_NTWRK_DEPERSONALIZATION_RESULT));
+ } catch (NullPointerException ex) {
+ log("NullPointerException @supplySimDepersonalization" + ex);
+ }
+ displayStatus(statusType.IN_PROGRESS.name());
}
};
- private void indicateBusy() {
- mStatusText.setText(R.string.requesting_unlock);
- mEntryPanel.setVisibility(View.GONE);
- mStatusPanel.setVisibility(View.VISIBLE);
- }
+ private void displayStatus(String type) {
+ int label = 0;
- private void indicateError() {
- mStatusText.setText(R.string.unlock_failed);
- mEntryPanel.setVisibility(View.GONE);
- mStatusPanel.setVisibility(View.VISIBLE);
- }
+ mPersoSubState = PersoSubState.values()[mPersoSubtype];
+ log("displayStatus mPersoSubState: " +mPersoSubState.name() +"type: " +type);
- private void indicateSuccess() {
- mStatusText.setText(R.string.unlock_success);
- mEntryPanel.setVisibility(View.GONE);
- mStatusPanel.setVisibility(View.VISIBLE);
+ label = getContext().getResources().getIdentifier(mPersoSubState.name()
+ + "_" + type, "string", "android");
+
+ if (label == 0) {
+ log ("Unable to get the PersoSubType string");
+ return;
+ }
+
+ if(!PersoSubState.isPersoLocked(mPersoSubState)) {
+ log ("Unsupported Perso Subtype :" + mPersoSubState.name());
+ return;
+ }
+
+ if (type == statusType.ENTRY.name()) {
+ String displayText = getContext().getString(label);
+ mPersoSubtypeText.setText(displayText);
+ } else {
+ mStatusText.setText(label);
+ mEntryPanel.setVisibility(View.GONE);
+ mStatusPanel.setVisibility(View.VISIBLE);
+ }
}
private void hideAlert() {
@@ -241,13 +289,13 @@
}
View.OnClickListener mDismissListener = new View.OnClickListener() {
- public void onClick(View v) {
- if (DBG) log("mDismissListener: skipping depersonalization...");
- dismiss();
- }
- };
+ public void onClick(View v) {
+ if (DBG) log("mDismissListener: skipping depersonalization...");
+ dismiss();
+ }
+ };
private void log(String msg) {
- Log.v(TAG, "[IccNetworkDepersonalizationPanel] " + msg);
+ Log.d(TAG, "[IccNetworkDepersonalizationPanel] " + msg);
}
}
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index 19e0761..5e3c224 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -205,6 +205,16 @@
private final SettingsObserver mSettingsObserver;
+ private static class EventSimStateChangedBag {
+ final int mPhoneId;
+ final String mIccStatus;
+
+ EventSimStateChangedBag(int phoneId, String iccStatus) {
+ mPhoneId = phoneId;
+ mIccStatus = iccStatus;
+ }
+ }
+
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
@@ -225,7 +235,8 @@
// they enter a valid SIM network PIN.
Log.i(LOG_TAG, "show sim depersonal panel");
Phone phone = (Phone) ((AsyncResult) msg.obj).userObj;
- IccNetworkDepersonalizationPanel.showDialog(phone);
+ int subType = (Integer)((AsyncResult)msg.obj).result;
+ IccNetworkDepersonalizationPanel.showDialog(phone, subType);
}
break;
@@ -253,8 +264,9 @@
// Marks the event where the SIM goes into ready state.
// Right now, this is only used for the PUK-unlocking
// process.
- if (msg.obj.equals(IccCardConstants.INTENT_VALUE_ICC_READY)
- || msg.obj.equals(IccCardConstants.INTENT_VALUE_ICC_LOADED)) {
+ EventSimStateChangedBag bag = (EventSimStateChangedBag)msg.obj;
+ if (bag.mIccStatus == IccCardConstants.INTENT_VALUE_ICC_READY
+ || bag.mIccStatus == IccCardConstants.INTENT_VALUE_ICC_LOADED) {
// when the right event is triggered and there
// are UI objects in the foreground, we close
// them to display the lock panel.
@@ -266,6 +278,8 @@
mPUKEntryProgressDialog.dismiss();
mPUKEntryProgressDialog = null;
}
+ Log.i(LOG_TAG, "Dismissing depersonal panel");
+ IccNetworkDepersonalizationPanel.dialogDismiss(bag.mPhoneId);
}
break;
@@ -476,7 +490,8 @@
}
public PersistableBundle getCarrierConfigForSubId(int subId) {
- return configLoader.getConfigForSubIdWithFeature(subId, getOpPackageName(), getFeatureId());
+ return configLoader.getConfigForSubIdWithFeature(subId, getOpPackageName(),
+ getAttributionTag());
}
private void registerSettingsObserver() {
@@ -649,14 +664,9 @@
PhoneUtils.unregisterIccStatus(mHandler, phoneId);
PhoneUtils.registerIccStatus(mHandler, EVENT_SIM_NETWORK_LOCKED, phoneId);
}
- if (mPUKEntryActivity != null) {
- // if an attempt to un-PUK-lock the device was made, while we're
- // receiving this state change notification, notify the handler.
- // NOTE: This is ONLY triggered if an attempt to un-PUK-lock has
- // been attempted.
- mHandler.sendMessage(mHandler.obtainMessage(EVENT_SIM_STATE_CHANGED,
- intent.getStringExtra(IccCardConstants.INTENT_KEY_ICC_STATE)));
- }
+ String iccStatus = intent.getStringExtra(IccCardConstants.INTENT_KEY_ICC_STATE);
+ mHandler.sendMessage(mHandler.obtainMessage(EVENT_SIM_STATE_CHANGED,
+ new EventSimStateChangedBag(phoneId, iccStatus)));
} else if (action.equals(TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED)) {
String newPhone = intent.getStringExtra(PhoneConstants.PHONE_NAME_KEY);
Log.d(LOG_TAG, "Radio technology switched. Now " + newPhone + " is active.");
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index d882ab2..fb177e1 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -120,7 +120,6 @@
import com.android.ims.ImsManager;
import com.android.ims.internal.IImsServiceFeatureCallback;
-import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.CallForwardInfo;
import com.android.internal.telephony.CallManager;
import com.android.internal.telephony.CallStateException;
@@ -1028,14 +1027,47 @@
onCompleted = obtainMessage(EVENT_GET_MODEM_ACTIVITY_INFO_DONE, request);
if (defaultPhone != null) {
defaultPhone.getModemActivityInfo(onCompleted, request.workSource);
+ } else {
+ ResultReceiver result = (ResultReceiver) request.argument;
+ Bundle bundle = new Bundle();
+ bundle.putParcelable(TelephonyManager.MODEM_ACTIVITY_RESULT_KEY,
+ new ModemActivityInfo(0, 0, 0, new int[0], 0));
+ result.send(0, bundle);
}
break;
case EVENT_GET_MODEM_ACTIVITY_INFO_DONE:
ar = (AsyncResult) msg.obj;
request = (MainThreadRequest) ar.userObj;
+ ResultReceiver result = (ResultReceiver) request.argument;
+
+ ModemActivityInfo ret = new ModemActivityInfo(0, 0, 0, new int[0], 0);
if (ar.exception == null && ar.result != null) {
- request.result = ar.result;
+ // 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.TX_POWER_LEVELS];
+ 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.getTimestamp());
+ mLastModemActivityInfo.setSleepTimeMillis(info.getSleepTimeMillis()
+ + mLastModemActivityInfo.getSleepTimeMillis());
+ mLastModemActivityInfo.setIdleTimeMillis(info.getIdleTimeMillis()
+ + mLastModemActivityInfo.getIdleTimeMillis());
+ mLastModemActivityInfo.setTransmitTimeMillis(mergedTxTimeMs);
+ mLastModemActivityInfo.setReceiveTimeMillis(
+ info.getReceiveTimeMillis()
+ + mLastModemActivityInfo.getReceiveTimeMillis());
+ }
+ ret = new ModemActivityInfo(mLastModemActivityInfo.getTimestamp(),
+ mLastModemActivityInfo.getSleepTimeMillis(),
+ mLastModemActivityInfo.getIdleTimeMillis(),
+ mLastModemActivityInfo.getTransmitTimeMillis(),
+ mLastModemActivityInfo.getReceiveTimeMillis());
} else {
if (ar.result == null) {
loge("queryModemActivityInfo: Empty response");
@@ -1046,10 +1078,9 @@
loge("queryModemActivityInfo: Unknown exception");
}
}
- // Result cannot be null. Return ModemActivityInfo with all fields set to 0.
- if (request.result == null) {
- request.result = new ModemActivityInfo(0, 0, 0, new int[0], 0);
- }
+ Bundle bundle = new Bundle();
+ bundle.putParcelable(TelephonyManager.MODEM_ACTIVITY_RESULT_KEY, ret);
+ result.send(0, bundle);
notifyRequester(request);
break;
@@ -1618,8 +1649,7 @@
}
/** Private constructor; @see init() */
- @VisibleForTesting
- /* package */ PhoneInterfaceManager(PhoneGlobals app) {
+ private PhoneInterfaceManager(PhoneGlobals app) {
mApp = app;
mCM = PhoneGlobals.getInstance().mCM;
mImsResolver = PhoneGlobals.getInstance().getImsResolver();
@@ -2288,7 +2318,7 @@
// is on IWLAN.
if (TelephonyManager.NETWORK_TYPE_IWLAN
== getVoiceNetworkTypeForSubscriber(subId, mApp.getPackageName(),
- mApp.getFeatureId())) {
+ mApp.getAttributionTag())) {
return "";
}
Phone phone = PhoneFactory.getPhone(phoneId);
@@ -3033,14 +3063,15 @@
}
@Override
- public void sendVisualVoicemailSmsForSubscriber(String callingPackage, int subId,
- String number, int port, String text, PendingIntent sentIntent) {
+ public void sendVisualVoicemailSmsForSubscriber(String callingPackage,
+ String callingAttributionTag, int subId, String number, int port, String text,
+ PendingIntent sentIntent) {
mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
enforceVisualVoicemailPackage(callingPackage, subId);
enforceSendSmsPermission();
SmsController smsController = PhoneFactory.getSmsController();
- smsController.sendVisualVoicemailSmsForSubscriber(callingPackage, subId, number, port, text,
- sentIntent);
+ smsController.sendVisualVoicemailSmsForSubscriber(callingPackage, callingAttributionTag,
+ subId, number, port, text, sentIntent);
}
/**
@@ -3424,6 +3455,9 @@
Phone phone = getPhone(subId);
if (phone == null) return false;
return phone.isImsCapabilityAvailable(capability, regTech);
+ } catch (com.android.ims.ImsException e) {
+ Log.w(LOG_TAG, "IMS isAvailable - service unavailable: " + e.getMessage());
+ return false;
} finally {
Binder.restoreCallingIdentity(token);
}
@@ -5475,7 +5509,6 @@
/**
* Set the preferred network type.
- * Used for device configuration by some CDMA operators.
*
* @param networkType the preferred network type, defined in RILConstants.java.
* @return true on success; false on any failure.
@@ -5489,7 +5522,11 @@
try {
Settings.Global.putInt(mApp.getContentResolver(),
Settings.Global.PREFERRED_NETWORK_MODE + subId, networkType);
- return setPreferredNetworkTypesInternal(subId);
+
+ Boolean success = (Boolean) sendRequest(
+ CMD_SET_PREFERRED_NETWORK_TYPE, networkType, subId);
+ if (DBG) log("setPreferredNetworkType: " + (success ? "ok" : "fail"));
+ return success;
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -5527,38 +5564,15 @@
public boolean setAllowedNetworkTypes(int subId, long allowedNetworkTypes) {
TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
mApp, subId, "setAllowedNetworkTypes");
- final long identity = Binder.clearCallingIdentity();
- try {
- SubscriptionManager.setSubscriptionProperty(subId,
- SubscriptionManager.ALLOWED_NETWORK_TYPES,
- String.valueOf(allowedNetworkTypes));
- return setPreferredNetworkTypesInternal(subId);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
- private boolean setPreferredNetworkTypesInternal(int subId) {
- long networkTypeBitMask = RadioAccessFamily.getRafFromNetworkType(
- Settings.Global.getInt(mApp.getContentResolver(),
- Settings.Global.PREFERRED_NETWORK_MODE + subId,
- RILConstants.PREFERRED_NETWORK_MODE));
- long allowedNetworkTypes = SubscriptionManager.getLongSubscriptionProperty(
- subId, SubscriptionManager.ALLOWED_NETWORK_TYPES, -1, mApp);
- int networkMode = RadioAccessFamily.getNetworkTypeFromRaf(
- (int) (networkTypeBitMask & allowedNetworkTypes));
+ SubscriptionManager.setSubscriptionProperty(subId,
+ SubscriptionManager.ALLOWED_NETWORK_TYPES,
+ String.valueOf(allowedNetworkTypes));
- if (DBG) {
- log("setPreferredNetworkTypesInternal: subId " + subId
- + " networkTypes " + networkTypeBitMask
- + " allowedNetworkTypes " + allowedNetworkTypes
- + " networkMode " + networkMode);
- }
-
- Boolean success = (Boolean) sendRequest(
- CMD_SET_PREFERRED_NETWORK_TYPE, networkMode, subId);
- if (DBG) log("setPreferredNetworkTypesInternal: " + (success ? "ok" : "fail"));
- return success;
+ int preferredNetworkMode = Settings.Global.getInt(mApp.getContentResolver(),
+ Settings.Global.PREFERRED_NETWORK_MODE + subId,
+ RILConstants.PREFERRED_NETWORK_MODE);
+ return setPreferredNetworkType(subId, preferredNetworkMode);
}
/**
@@ -5721,14 +5735,13 @@
}
}
- private int getCarrierPrivilegeStatusFromCarrierConfigRules(int privilegeFromSim,
+ private int getCarrierPrivilegeStatusFromCarrierConfigRules(int privilegeFromSim, int uid,
Phone phone) {
//load access rules from carrier configs, and check those as well: b/139133814
SubscriptionController subController = SubscriptionController.getInstance();
if (privilegeFromSim == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS
|| subController == null) return privilegeFromSim;
- int uid = Binder.getCallingUid();
PackageManager pkgMgr = phone.getContext().getPackageManager();
String[] packages = pkgMgr.getPackagesForUid(uid);
@@ -5782,7 +5795,7 @@
return getCarrierPrivilegeStatusFromCarrierConfigRules(
card.getCarrierPrivilegeStatusForCurrentTransaction(
- phone.getContext().getPackageManager()), phone);
+ phone.getContext().getPackageManager()), Binder.getCallingUid(), phone);
}
@Override
@@ -5801,7 +5814,7 @@
}
return getCarrierPrivilegeStatusFromCarrierConfigRules(
profile.getCarrierPrivilegeStatusForUid(
- phone.getContext().getPackageManager(), uid), phone);
+ phone.getContext().getPackageManager(), uid), uid, phone);
}
@Override
@@ -6134,7 +6147,7 @@
final List<String> mergedSubscriberIds = new ArrayList<>();
final List<SubscriptionInfo> groupInfos = SubscriptionController.getInstance()
.getSubscriptionsInGroup(groupUuid, mApp.getOpPackageName(),
- mApp.getFeatureId());
+ mApp.getAttributionTag());
for (SubscriptionInfo subInfo : groupInfos) {
subscriberId = telephonyManager.getSubscriberId(subInfo.getSubscriptionId());
if (subscriberId != null) {
@@ -6576,7 +6589,7 @@
final long identity = Binder.clearCallingIdentity();
try {
final SubscriptionInfo info = mSubscriptionController.getActiveSubscriptionInfo(subId,
- phone.getContext().getOpPackageName(), phone.getContext().getFeatureId());
+ phone.getContext().getOpPackageName(), phone.getContext().getAttributionTag());
if (info == null) {
log("getSimLocaleForSubscriber, inactive subId: " + subId);
return null;
@@ -6615,7 +6628,7 @@
private List<SubscriptionInfo> getAllSubscriptionInfoList() {
return mSubscriptionController.getAllSubInfoList(mApp.getOpPackageName(),
- mApp.getFeatureId());
+ mApp.getAttributionTag());
}
/**
@@ -6623,7 +6636,7 @@
*/
private List<SubscriptionInfo> getActiveSubscriptionInfoListPrivileged() {
return mSubscriptionController.getActiveSubscriptionInfoList(mApp.getOpPackageName(),
- mApp.getFeatureId());
+ mApp.getAttributionTag());
}
private final ModemActivityInfo mLastModemActivityInfo =
@@ -6644,38 +6657,7 @@
final long identity = Binder.clearCallingIdentity();
try {
- ModemActivityInfo ret = null;
- synchronized (mLastModemActivityInfo) {
- ModemActivityInfo info = (ModemActivityInfo) sendRequest(
- CMD_GET_MODEM_ACTIVITY_INFO,
- null, workSource);
- if (isModemActivityInfoValid(info)) {
- int[] mergedTxTimeMs = new int[ModemActivityInfo.TX_POWER_LEVELS];
- 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.getTimestamp());
- mLastModemActivityInfo.setSleepTimeMillis(info.getSleepTimeMillis()
- + mLastModemActivityInfo.getSleepTimeMillis());
- mLastModemActivityInfo.setIdleTimeMillis(
- info.getIdleTimeMillis() + mLastModemActivityInfo.getIdleTimeMillis());
- mLastModemActivityInfo.setTransmitTimeMillis(mergedTxTimeMs);
- mLastModemActivityInfo.setReceiveTimeMillis(
- info.getReceiveTimeMillis() + mLastModemActivityInfo
- .getReceiveTimeMillis());
- }
-
- ret = new ModemActivityInfo(mLastModemActivityInfo.getTimestamp(),
- mLastModemActivityInfo.getSleepTimeMillis(),
- mLastModemActivityInfo.getIdleTimeMillis(),
- mLastModemActivityInfo.getTransmitTimeMillis(),
- mLastModemActivityInfo.getReceiveTimeMillis());
- }
- Bundle bundle = new Bundle();
- bundle.putParcelable(TelephonyManager.MODEM_ACTIVITY_RESULT_KEY, ret);
- result.send(0, bundle);
+ sendRequestAsync(CMD_GET_MODEM_ACTIVITY_INFO, result, null, workSource);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -7448,15 +7430,10 @@
@Override
public List<UiccCardInfo> getUiccCardsInfo(String callingPackage) {
- try {
- PackageManager pm = mApp.getPackageManager();
- if (Binder.getCallingUid() != pm.getPackageUid(callingPackage, 0)) {
- throw new SecurityException("Calling package " + callingPackage + " does not match "
- + "calling UID");
- }
- } catch (PackageManager.NameNotFoundException e) {
- throw new SecurityException("Invalid calling package. e=" + e);
- }
+ // Verify that tha callingPackage belongs to the calling UID
+ mApp.getSystemService(AppOpsManager.class)
+ .checkPackage(Binder.getCallingUid(), callingPackage);
+
boolean hasReadPermission = false;
try {
enforceReadPrivilegedPermission("getUiccCardsInfo");
@@ -8261,13 +8238,15 @@
}
@Override
- public void enqueueSmsPickResult(String callingPackage, IIntegerConsumer pendingSubIdResult) {
+ public void enqueueSmsPickResult(String callingPackage, String callingAttributionTag,
+ IIntegerConsumer pendingSubIdResult) {
if (callingPackage == null) {
callingPackage = getCurrentPackageName();
}
SmsPermissions permissions = new SmsPermissions(getDefaultPhone(), mApp,
(AppOpsManager) mApp.getSystemService(Context.APP_OPS_SERVICE));
- if (!permissions.checkCallingCanSendSms(callingPackage, "Sending message")) {
+ if (!permissions.checkCallingCanSendSms(callingPackage, callingAttributionTag,
+ "Sending message")) {
throw new SecurityException("Requires SEND_SMS permission to perform this operation");
}
PickSmsSubscriptionActivity.addPendingResult(pendingSubIdResult);
@@ -8525,4 +8504,9 @@
USER_ACTIVITY_NOTIFICATION_DELAY);
}
}
+
+ @Override
+ public boolean canConnectTo5GInDsdsMode() {
+ return mApp.getResources().getBoolean(R.bool.config_5g_connection_in_dsds_mode);
+ }
}
diff --git a/src/com/android/phone/PhoneUtils.java b/src/com/android/phone/PhoneUtils.java
index 3e36644..95cb785 100644
--- a/src/com/android/phone/PhoneUtils.java
+++ b/src/com/android/phone/PhoneUtils.java
@@ -87,7 +87,6 @@
private static final int THEME = com.android.internal.R.style.Theme_DeviceDefault_Dialog_Alert;
/** USSD information used to aggregate all USSD messages */
- private static AlertDialog sUssdDialog = null;
private static StringBuilder sUssdMsg = new StringBuilder();
private static final ComponentName PSTN_CONNECTION_SERVICE_COMPONENT =
@@ -524,39 +523,36 @@
// displaying system alert dialog on the screen instead of
// using another activity to display the message. This
// places the message at the forefront of the UI.
+ AlertDialog ussdDialog = new AlertDialog.Builder(context, THEME)
+ .setPositiveButton(R.string.ok, null)
+ .setCancelable(true)
+ .setOnDismissListener(new DialogInterface.OnDismissListener() {
+ @Override
+ public void onDismiss(DialogInterface dialog) {
+ sUssdMsg.setLength(0);
+ }
+ })
+ .create();
- if (sUssdDialog == null) {
- sUssdDialog = new AlertDialog.Builder(context, THEME)
- .setPositiveButton(R.string.ok, null)
- .setCancelable(true)
- .setOnDismissListener(new DialogInterface.OnDismissListener() {
- @Override
- public void onDismiss(DialogInterface dialog) {
- sUssdMsg.setLength(0);
- }
- })
- .create();
+ ussdDialog.getWindow().setType(windowType);
+ ussdDialog.getWindow().addFlags(
+ WindowManager.LayoutParams.FLAG_DIM_BEHIND);
- sUssdDialog.getWindow().setType(windowType);
- sUssdDialog.getWindow().addFlags(
- WindowManager.LayoutParams.FLAG_DIM_BEHIND);
- }
if (sUssdMsg.length() != 0) {
- sUssdMsg
- .insert(0, "\n")
+ sUssdMsg.insert(0, "\n")
.insert(0, app.getResources().getString(R.string.ussd_dialog_sep))
.insert(0, "\n");
}
if (phone != null && phone.getCarrierName() != null) {
- sUssdDialog.setTitle(app.getResources().getString(R.string.carrier_mmi_msg_title,
+ ussdDialog.setTitle(app.getResources().getString(R.string.carrier_mmi_msg_title,
phone.getCarrierName()));
} else {
- sUssdDialog
+ ussdDialog
.setTitle(app.getResources().getString(R.string.default_carrier_mmi_msg_title));
}
sUssdMsg.insert(0, text);
- sUssdDialog.setMessage(sUssdMsg.toString());
- sUssdDialog.show();
+ ussdDialog.setMessage(sUssdMsg.toString());
+ ussdDialog.show();
}
/**
diff --git a/src/com/android/services/telephony/CdmaConferenceController.java b/src/com/android/services/telephony/CdmaConferenceController.java
index 9afcd0a..8523a5f 100644
--- a/src/com/android/services/telephony/CdmaConferenceController.java
+++ b/src/com/android/services/telephony/CdmaConferenceController.java
@@ -97,7 +97,7 @@
return;
}
- if (!mCdmaConnections.isEmpty() && connection.isOutgoing()) {
+ if (!mCdmaConnections.isEmpty() && connection.isOutgoingCall()) {
// There already exists a connection, so this will probably result in a conference once
// it is added. For outgoing connections which are added while another connection
// exists, we mark them as "dialing" for a set amount of time to give the user time to
@@ -183,7 +183,7 @@
isNewlyCreated = true;
}
- if (newConnection.isOutgoing()) {
+ if (newConnection.isOutgoingCall()) {
// Only an outgoing call can be merged with an ongoing call.
mConference.updateCapabilities(Connection.CAPABILITY_MERGE_CONFERENCE);
} else {
diff --git a/src/com/android/services/telephony/CdmaConnection.java b/src/com/android/services/telephony/CdmaConnection.java
index bd015e3..90e7663 100644
--- a/src/com/android/services/telephony/CdmaConnection.java
+++ b/src/com/android/services/telephony/CdmaConnection.java
@@ -81,9 +81,9 @@
Connection connection,
EmergencyTonePlayer emergencyTonePlayer,
boolean allowMute,
- boolean isOutgoing,
+ int callDirection,
String telecomCallId) {
- super(connection, telecomCallId, isOutgoing);
+ super(connection, telecomCallId, callDirection);
mEmergencyTonePlayer = emergencyTonePlayer;
mAllowMute = allowMute;
mIsCallWaiting = connection != null && connection.getState() == Call.State.WAITING;
@@ -151,7 +151,7 @@
@Override
public TelephonyConnection cloneConnection() {
CdmaConnection cdmaConnection = new CdmaConnection(getOriginalConnection(),
- mEmergencyTonePlayer, mAllowMute, mIsOutgoing, getTelecomCallId());
+ mEmergencyTonePlayer, mAllowMute, getCallDirection(), getTelecomCallId());
return cdmaConnection;
}
@@ -202,10 +202,6 @@
}
}
- boolean isOutgoing() {
- return mIsOutgoing;
- }
-
boolean isCallWaiting() {
return mIsCallWaiting;
}
@@ -288,9 +284,8 @@
private boolean isEmergency() {
Phone phone = getPhone();
- return phone != null &&
- PhoneNumberUtils.isLocalEmergencyNumber(
- phone.getContext(), getAddress().getSchemeSpecificPart());
+ return phone != null && getAddress() != null && PhoneNumberUtils.isLocalEmergencyNumber(
+ phone.getContext(), getAddress().getSchemeSpecificPart());
}
/**
@@ -306,7 +301,7 @@
private void handleCdmaConnectionTimeReset() {
boolean isImsCall = getOriginalConnection() instanceof ImsPhoneConnection;
- if (!isImsCall && !mIsConnectionTimeReset && mIsOutgoing
+ if (!isImsCall && !mIsConnectionTimeReset && isOutgoingCall()
&& getOriginalConnection() != null
&& getOriginalConnection().getState() == Call.State.ACTIVE
&& getOriginalConnection().getDurationMillis() > 0) {
diff --git a/src/com/android/services/telephony/DisconnectCauseUtil.java b/src/com/android/services/telephony/DisconnectCauseUtil.java
index 855ba08..f243462 100644
--- a/src/com/android/services/telephony/DisconnectCauseUtil.java
+++ b/src/com/android/services/telephony/DisconnectCauseUtil.java
@@ -19,6 +19,7 @@
import android.content.Context;
import android.media.ToneGenerator;
import android.os.PersistableBundle;
+import android.provider.Settings;
import android.telecom.DisconnectCause;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
@@ -347,6 +348,9 @@
case android.telephony.DisconnectCause.DATA_LIMIT_REACHED:
resourceId = R.string.callFailed_data_limit_reached;
break;
+ case android.telephony.DisconnectCause.WIFI_LOST:
+ resourceId = R.string.callFailed_wifi_lost;
+ break;
case android.telephony.DisconnectCause.ALREADY_DIALING:
resourceId = R.string.callFailed_already_dialing;
break;
@@ -360,7 +364,12 @@
resourceId = R.string.callFailed_too_many_calls;
break;
case android.telephony.DisconnectCause.IMS_SIP_ALTERNATE_EMERGENCY_CALL:
- resourceId = R.string.incall_error_power_off;
+ int airplaneMode = Settings.Global.getInt(context.getContentResolver(),
+ Settings.Global.AIRPLANE_MODE_ON, 0);
+ resourceId = R.string.incall_error_call_failed;
+ if (airplaneMode != 0) {
+ resourceId = R.string.incall_error_power_off;
+ }
break;
case android.telephony.DisconnectCause.OTASP_PROVISIONING_IN_PROCESS:
resourceId = R.string.callFailed_otasp_provisioning_in_process;
@@ -753,7 +762,12 @@
resourceId = R.string.callFailed_too_many_calls;
break;
case android.telephony.DisconnectCause.IMS_SIP_ALTERNATE_EMERGENCY_CALL:
- resourceId = R.string.incall_error_power_off;
+ int airplaneMode = Settings.Global.getInt(context.getContentResolver(),
+ Settings.Global.AIRPLANE_MODE_ON, 0);
+ resourceId = R.string.incall_error_call_failed;
+ if (airplaneMode != 0) {
+ resourceId = R.string.incall_error_power_off;
+ }
break;
case android.telephony.DisconnectCause.OTASP_PROVISIONING_IN_PROCESS:
resourceId = R.string.callFailed_otasp_provisioning_in_process;
@@ -856,6 +870,7 @@
case android.telephony.DisconnectCause.NORMAL:
case android.telephony.DisconnectCause.NORMAL_UNSPECIFIED:
case android.telephony.DisconnectCause.VIDEO_CALL_NOT_ALLOWED_WHILE_TTY_ENABLED:
+ case android.telephony.DisconnectCause.WIFI_LOST:
default:
return ToneGenerator.TONE_PROP_PROMPT;
}
diff --git a/src/com/android/services/telephony/GsmConnection.java b/src/com/android/services/telephony/GsmConnection.java
index 47434c0..769ec22 100644
--- a/src/com/android/services/telephony/GsmConnection.java
+++ b/src/com/android/services/telephony/GsmConnection.java
@@ -22,8 +22,8 @@
* Manages a single phone call handled by GSM.
*/
final class GsmConnection extends TelephonyConnection {
- GsmConnection(Connection connection, String telecomCallId, boolean isOutgoing) {
- super(connection, telecomCallId, isOutgoing);
+ GsmConnection(Connection connection, String telecomCallId, int callDirection) {
+ super(connection, telecomCallId, callDirection);
}
/**
@@ -35,9 +35,7 @@
*/
@Override
public TelephonyConnection cloneConnection() {
- GsmConnection gsmConnection = new GsmConnection(getOriginalConnection(),
- getTelecomCallId(), mIsOutgoing);
- return gsmConnection;
+ return new GsmConnection(getOriginalConnection(), getTelecomCallId(), getCallDirection());
}
/** {@inheritDoc} */
diff --git a/src/com/android/services/telephony/ImsConference.java b/src/com/android/services/telephony/ImsConference.java
index c11a1ca..73d6023 100644
--- a/src/com/android/services/telephony/ImsConference.java
+++ b/src/com/android/services/telephony/ImsConference.java
@@ -20,7 +20,6 @@
import android.graphics.drawable.Icon;
import android.net.Uri;
import android.os.Bundle;
-import android.os.PersistableBundle;
import android.telecom.Connection;
import android.telecom.Connection.VideoProvider;
import android.telecom.DisconnectCause;
@@ -28,7 +27,6 @@
import android.telecom.StatusHints;
import android.telecom.TelecomManager;
import android.telecom.VideoProfile;
-import android.telephony.CarrierConfigManager;
import android.telephony.PhoneNumberUtils;
import android.util.Pair;
@@ -38,7 +36,6 @@
import com.android.internal.telephony.CallStateException;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
-import com.android.phone.PhoneGlobals;
import com.android.phone.PhoneUtils;
import com.android.phone.R;
import com.android.telephony.Rlog;
@@ -79,6 +76,126 @@
}
/**
+ * Abstracts out carrier configuration items specific to the conference.
+ */
+ public static class CarrierConfiguration {
+ /**
+ * Builds and instance of {@link CarrierConfiguration}.
+ */
+ public static class Builder {
+ private boolean mIsMaximumConferenceSizeEnforced = false;
+ private int mMaximumConferenceSize = 5;
+ private boolean mShouldLocalDisconnectEmptyConference = false;
+ private boolean mIsHoldAllowed = false;
+
+ /**
+ * Sets whether the maximum size of the conference is enforced.
+ * @param isMaximumConferenceSizeEnforced {@code true} if conference size enforced.
+ * @return builder instance.
+ */
+ public Builder setIsMaximumConferenceSizeEnforced(
+ boolean isMaximumConferenceSizeEnforced) {
+ mIsMaximumConferenceSizeEnforced = isMaximumConferenceSizeEnforced;
+ return this;
+ }
+
+ /**
+ * Sets the maximum size of an IMS conference.
+ * @param maximumConferenceSize Max conference size.
+ * @return builder instance.
+ */
+ public Builder setMaximumConferenceSize(int maximumConferenceSize) {
+ mMaximumConferenceSize = maximumConferenceSize;
+ return this;
+ }
+
+ /**
+ * Sets whether an empty conference should be locally disconnected.
+ * @param shouldLocalDisconnectEmptyConference {@code true} if conference should be
+ * locally disconnected if empty.
+ * @return builder instance.
+ */
+ public Builder setShouldLocalDisconnectEmptyConference(
+ boolean shouldLocalDisconnectEmptyConference) {
+ mShouldLocalDisconnectEmptyConference = shouldLocalDisconnectEmptyConference;
+ return this;
+ }
+
+ /**
+ * Sets whether holding the conference is allowed.
+ * @param isHoldAllowed {@code true} if holding is allowed.
+ * @return builder instance.
+ */
+ public Builder setIsHoldAllowed(boolean isHoldAllowed) {
+ mIsHoldAllowed = isHoldAllowed;
+ return this;
+ }
+
+ /**
+ * Build instance of {@link CarrierConfiguration}.
+ * @return carrier config instance.
+ */
+ public ImsConference.CarrierConfiguration build() {
+ return new ImsConference.CarrierConfiguration(mIsMaximumConferenceSizeEnforced,
+ mMaximumConferenceSize, mShouldLocalDisconnectEmptyConference,
+ mIsHoldAllowed);
+ }
+ }
+
+ private boolean mIsMaximumConferenceSizeEnforced;
+
+ private int mMaximumConferenceSize;
+
+ private boolean mShouldLocalDisconnectEmptyConference;
+
+ private boolean mIsHoldAllowed;
+
+ private CarrierConfiguration(boolean isMaximumConferenceSizeEnforced,
+ int maximumConferenceSize, boolean shouldLocalDisconnectEmptyConference,
+ boolean isHoldAllowed) {
+ mIsMaximumConferenceSizeEnforced = isMaximumConferenceSizeEnforced;
+ mMaximumConferenceSize = maximumConferenceSize;
+ mShouldLocalDisconnectEmptyConference = shouldLocalDisconnectEmptyConference;
+ mIsHoldAllowed = isHoldAllowed;
+ }
+
+ /**
+ * Determines whether the {@link ImsConference} should enforce a size limit based on
+ * {@link #getMaximumConferenceSize()}.
+ * {@code true} if maximum size limit should be enforced, {@code false} otherwise.
+ */
+ public boolean isMaximumConferenceSizeEnforced() {
+ return mIsMaximumConferenceSizeEnforced;
+ }
+
+ /**
+ * Determines the maximum number of participants (not including the host) in a conference
+ * which is enforced when {@link #isMaximumConferenceSizeEnforced()} is {@code true}.
+ */
+ public int getMaximumConferenceSize() {
+ return mMaximumConferenceSize;
+ }
+
+ /**
+ * Determines whether this {@link ImsConference} should locally disconnect itself when the
+ * number of participants in the conference drops to zero.
+ * {@code true} if empty conference should be locally disconnected, {@code false}
+ * otherwise.
+ */
+ public boolean shouldLocalDisconnectEmptyConference() {
+ return mShouldLocalDisconnectEmptyConference;
+ }
+
+ /**
+ * Determines whether holding the conference is permitted or not.
+ * {@code true} if hold is permitted, {@code false} otherwise.
+ */
+ public boolean isHoldAllowed() {
+ return mIsHoldAllowed;
+ }
+ }
+
+ /**
* Listener used to respond to changes to the underlying radio connection for the conference
* host connection. Used to respond to SRVCC changes.
*/
@@ -260,11 +377,11 @@
private boolean mIsHoldable;
private boolean mCouldManageConference;
private FeatureFlagProxy mFeatureFlagProxy;
- private boolean mIsEmulatingSinglePartyCall = false;
+ private final CarrierConfiguration mCarrierConfig;
private boolean mIsUsingSimCallManager = false;
/**
- * Where {@link #mIsEmulatingSinglePartyCall} is {@code true}, contains the
+ * Where {@link #isMultiparty()} is {@code false}, contains the
* {@link ConferenceParticipantConnection#getUserEntity()} and
* {@link ConferenceParticipantConnection#getEndpoint()} of the single participant which this
* conference pretends to be.
@@ -301,12 +418,13 @@
public ImsConference(TelecomAccountRegistry telecomAccountRegistry,
TelephonyConnectionServiceProxy telephonyConnectionService,
TelephonyConnection conferenceHost, PhoneAccountHandle phoneAccountHandle,
- FeatureFlagProxy featureFlagProxy) {
+ FeatureFlagProxy featureFlagProxy, CarrierConfiguration carrierConfig) {
super(phoneAccountHandle);
mTelecomAccountRegistry = telecomAccountRegistry;
mFeatureFlagProxy = featureFlagProxy;
+ mCarrierConfig = carrierConfig;
// Specify the connection time of the conference to be the connection time of the original
// connection.
@@ -323,7 +441,7 @@
int capabilities = Connection.CAPABILITY_MUTE |
Connection.CAPABILITY_CONFERENCE_HAS_NO_CHILDREN;
- if (canHoldImsCalls()) {
+ if (mCarrierConfig.isHoldAllowed()) {
capabilities |= Connection.CAPABILITY_SUPPORT_HOLD | Connection.CAPABILITY_HOLD;
mIsHoldable = true;
}
@@ -491,6 +609,8 @@
} catch (CallStateException e) {
Log.e(this, e, "Exception thrown trying to hangup conference");
}
+ } else {
+ Log.w(this, "onDisconnect - null call");
}
}
@@ -687,7 +807,7 @@
boolean couldManageConference =
(getConnectionCapabilities() & Connection.CAPABILITY_MANAGE_CONFERENCE) != 0;
boolean canManageConference = mFeatureFlagProxy.isUsingSinglePartyCallEmulation()
- && mIsEmulatingSinglePartyCall
+ && !isMultiparty()
? mConferenceParticipantConnections.size() > 1
: mConferenceParticipantConnections.size() != 0;
Log.v(this, "updateManageConference was :%s is:%s", couldManageConference ? "Y" : "N",
@@ -830,8 +950,8 @@
// 1. We're not emulating a single party call.
// 2. We're emulating a single party call and the CEP contains more than just the
// single party
- if ((mIsEmulatingSinglePartyCall && !isSinglePartyConference) ||
- !mIsEmulatingSinglePartyCall) {
+ if ((!isMultiparty() && !isSinglePartyConference)
+ || isMultiparty()) {
// Add any new participants and update existing.
for (ConferenceParticipant participant : participants) {
Pair<Uri, Uri> userEntity = new Pair<>(participant.getHandle(),
@@ -924,7 +1044,7 @@
if (oldParticipantCount != 1 && newParticipantCount == 1) {
// If number of participants goes to 1, emulate a single party call.
startEmulatingSinglePartyCall();
- } else if (mIsEmulatingSinglePartyCall && !isSinglePartyConference) {
+ } else if (!isMultiparty() && !isSinglePartyConference) {
// Number of participants increased, so stop emulating a single party call.
stopEmulatingSinglePartyCall();
}
@@ -935,6 +1055,14 @@
if (newParticipantsAdded || oldParticipantsRemoved) {
updateManageConference();
}
+
+ // If the conference is empty and we're supposed to do a local disconnect, do so now.
+ if (mCarrierConfig.shouldLocalDisconnectEmptyConference()
+ && oldParticipantCount > 0 && newParticipantCount == 0) {
+ Log.i(this, "handleConferenceParticipantsUpdate: empty conference; "
+ + "local disconnect.");
+ onDisconnect();
+ }
}
}
@@ -958,7 +1086,6 @@
Log.i(this, "stopEmulatingSinglePartyCall: conference now has more than one"
+ " participant; make it look conference-like again.");
- mIsEmulatingSinglePartyCall = false;
if (mCouldManageConference) {
int currentCapabilities = getConnectionCapabilities();
@@ -1008,7 +1135,6 @@
Log.i(this, "startEmulatingSinglePartyCall: conference has a single "
+ "participant; downgrade to single party call.");
- mIsEmulatingSinglePartyCall = true;
Iterator<ConferenceParticipantConnection> valueIterator =
mConferenceParticipantConnections.values().iterator();
if (valueIterator.hasNext()) {
@@ -1021,6 +1147,7 @@
setConnectionStartElapsedRealtimeMillis(
entry.getConnectionStartElapsedRealtimeMillis());
setConnectionTime(entry.getConnectTimeMillis());
+ setCallDirection(entry.getCallDirection());
mLoneParticipantIdentity = new Pair<>(entry.getUserEntity(), entry.getEndpoint());
// Remove the participant from Telecom. It'll get picked up in a future CEP update
@@ -1225,7 +1352,7 @@
if (mConferenceHost.getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_GSM) {
Log.i(this,"handleOriginalConnectionChange : SRVCC to GSM");
GsmConnection c = new GsmConnection(originalConnection, getTelecomCallId(),
- mConferenceHost.isOutgoingCall());
+ mConferenceHost.getCallDirection());
// This is a newly created conference connection as a result of SRVCC
c.setConferenceSupported(true);
c.setTelephonyConnectionProperties(
@@ -1346,51 +1473,6 @@
return sb.toString();
}
- private boolean canHoldImsCalls() {
- PersistableBundle b = getCarrierConfig();
- // Return true if the CarrierConfig is unavailable
- return b == null || b.getBoolean(CarrierConfigManager.KEY_ALLOW_HOLD_IN_IMS_CALL_BOOL);
- }
-
- private PersistableBundle getCarrierConfig() {
- if (mConferenceHost == null) {
- return null;
- }
-
- Phone phone = mConferenceHost.getPhone();
- if (phone == null) {
- return null;
- }
- return PhoneGlobals.getInstance().getCarrierConfigForSubId(phone.getSubId());
- }
-
- /**
- * @return {@code true} if the carrier associated with the conference requires that the maximum
- * size of the conference is enforced, {@code false} otherwise.
- */
- public boolean isMaximumConferenceSizeEnforced() {
- PersistableBundle b = getCarrierConfig();
- // Return false if the CarrierConfig is unavailable
- return b != null && b.getBoolean(
- CarrierConfigManager.KEY_IS_IMS_CONFERENCE_SIZE_ENFORCED_BOOL);
- }
-
- /**
- * @return The maximum size of a conference call where
- * {@link #isMaximumConferenceSizeEnforced()} is true.
- */
- public int getMaximumConferenceSize() {
- PersistableBundle b = getCarrierConfig();
-
- // If there is no carrier config its really a problem, but we'll still define a sane limit
- // of 5 so that we can still make a conference.
- if (b == null) {
- Log.w(this, "getMaximumConferenceSize - failed to get conference size");
- return 5;
- }
- return b.getInt(CarrierConfigManager.KEY_IMS_CONFERENCE_SIZE_LIMIT_INT);
- }
-
/**
* @return The number of participants in the conference.
*/
@@ -1403,16 +1485,8 @@
* participants in the conference has reached the limit, {@code false} otherwise.
*/
public boolean isFullConference() {
- return isMaximumConferenceSizeEnforced()
- && getNumberOfParticipants() >= getMaximumConferenceSize();
- }
-
- /**
- * @return {@code True} if the ImsConference is emulating single party call.
- */
- @VisibleForTesting
- public boolean isEmulatingSinglePartyCall() {
- return mIsEmulatingSinglePartyCall;
+ return mCarrierConfig.isMaximumConferenceSizeEnforced()
+ && getNumberOfParticipants() >= mCarrierConfig.getMaximumConferenceSize();
}
/**
diff --git a/src/com/android/services/telephony/ImsConferenceController.java b/src/com/android/services/telephony/ImsConferenceController.java
index 8789ba8..6d3d4c2 100644
--- a/src/com/android/services/telephony/ImsConferenceController.java
+++ b/src/com/android/services/telephony/ImsConferenceController.java
@@ -16,12 +16,16 @@
package com.android.services.telephony;
+import android.content.Context;
+import android.os.PersistableBundle;
import android.telecom.Conference;
import android.telecom.Conferenceable;
import android.telecom.Connection;
import android.telecom.ConnectionService;
import android.telecom.DisconnectCause;
import android.telecom.PhoneAccountHandle;
+import android.telephony.CarrierConfigManager;
+
import com.android.telephony.Rlog;
import com.android.internal.telephony.Phone;
@@ -403,6 +407,7 @@
PhoneAccountHandle phoneAccountHandle = null;
// Attempt to determine the phone account associated with the conference host connection.
+ ImsConference.CarrierConfiguration carrierConfig = null;
if (connection.getPhone() != null &&
connection.getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_IMS) {
Phone imsPhone = connection.getPhone();
@@ -410,11 +415,13 @@
// base GSM or CDMA phone, not on the ImsPhone itself).
phoneAccountHandle =
PhoneUtils.makePstnPhoneAccountHandle(imsPhone.getDefaultPhone());
+ carrierConfig = getCarrierConfig(imsPhone);
}
ImsConference conference = new ImsConference(mTelecomAccountRegistry, mConnectionService,
- conferenceHostConnection, phoneAccountHandle, mFeatureFlagProxy);
+ conferenceHostConnection, phoneAccountHandle, mFeatureFlagProxy, carrierConfig);
conference.setState(conferenceHostConnection.getState());
+ conference.setCallDirection(conferenceHostConnection.getCallDirection());
conference.addTelephonyConferenceListener(mConferenceListener);
conference.updateConferenceParticipantsAfterCreation();
mConnectionService.addConference(conference);
@@ -433,4 +440,33 @@
// conferenceable connections for the conference to show merge calls option.
recalculateConferenceable();
}
+
+ public static ImsConference.CarrierConfiguration getCarrierConfig(Phone phone) {
+ ImsConference.CarrierConfiguration.Builder config =
+ new ImsConference.CarrierConfiguration.Builder();
+ if (phone == null) {
+ return config.build();
+ }
+
+ CarrierConfigManager cfgManager = (CarrierConfigManager)
+ phone.getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE);
+ if (cfgManager != null) {
+ PersistableBundle bundle = cfgManager.getConfigForSubId(phone.getSubId());
+ boolean isMaximumConferenceSizeEnforced = bundle.getBoolean(
+ CarrierConfigManager.KEY_IS_IMS_CONFERENCE_SIZE_ENFORCED_BOOL);
+ int maximumConferenceSize = bundle.getInt(
+ CarrierConfigManager.KEY_IMS_CONFERENCE_SIZE_LIMIT_INT);
+ boolean isHoldAllowed = bundle.getBoolean(
+ CarrierConfigManager.KEY_ALLOW_HOLD_IN_IMS_CALL_BOOL);
+ boolean shouldLocalDisconnectOnEmptyConference = bundle.getBoolean(
+ CarrierConfigManager.KEY_LOCAL_DISCONNECT_EMPTY_IMS_CONFERENCE_BOOL);
+
+ config.setIsMaximumConferenceSizeEnforced(isMaximumConferenceSizeEnforced)
+ .setMaximumConferenceSize(maximumConferenceSize)
+ .setIsHoldAllowed(isHoldAllowed)
+ .setShouldLocalDisconnectEmptyConference(
+ shouldLocalDisconnectOnEmptyConference);
+ }
+ return config.build();
+ }
}
diff --git a/src/com/android/services/telephony/RadioOnHelper.java b/src/com/android/services/telephony/RadioOnHelper.java
index 116c61d..25ac220 100644
--- a/src/com/android/services/telephony/RadioOnHelper.java
+++ b/src/com/android/services/telephony/RadioOnHelper.java
@@ -77,7 +77,8 @@
* RadioOnHelper's handler (thus ensuring that the rest of the sequence is entirely
* serialized, and runs on the main looper.)
*/
- public void triggerRadioOnAndListen(RadioOnStateListener.Callback callback) {
+ public void triggerRadioOnAndListen(RadioOnStateListener.Callback callback,
+ boolean forEmergencyCall, Phone phoneForEmergencyCall) {
setupListeners();
mCallback = callback;
mInProgressListeners.clear();
@@ -89,16 +90,17 @@
}
mInProgressListeners.add(mListeners.get(i));
- mListeners.get(i).waitForRadioOn(phone, this);
+ mListeners.get(i).waitForRadioOn(phone, this, forEmergencyCall,
+ forEmergencyCall && phone == phoneForEmergencyCall);
}
- powerOnRadio();
+ powerOnRadio(forEmergencyCall, phoneForEmergencyCall);
}
/**
* Attempt to power on the radio (i.e. take the device out of airplane mode). We'll eventually
* get an onServiceStateChanged() callback when the radio successfully comes up.
*/
- private void powerOnRadio() {
+ private void powerOnRadio(boolean forEmergencyCall, Phone phoneForEmergencyCall) {
// If airplane mode is on, we turn it off the same way that the Settings activity turns it
// off.
@@ -112,7 +114,7 @@
for (Phone phone : PhoneFactory.getPhones()) {
Log.d(this, "powerOnRadio, enabling Radio");
- phone.setRadioPower(true);
+ phone.setRadioPower(true, forEmergencyCall, phone == phoneForEmergencyCall, false);
}
// Post the broadcast intend for change in airplane mode
diff --git a/src/com/android/services/telephony/RadioOnStateListener.java b/src/com/android/services/telephony/RadioOnStateListener.java
index 43269b4..93e1e3c 100644
--- a/src/com/android/services/telephony/RadioOnStateListener.java
+++ b/src/com/android/services/telephony/RadioOnStateListener.java
@@ -70,7 +70,10 @@
Phone phone = (Phone) args.arg1;
RadioOnStateListener.Callback callback =
(RadioOnStateListener.Callback) args.arg2;
- startSequenceInternal(phone, callback);
+ boolean forEmergencyCall = (boolean) args.arg3;
+ boolean isSelectedPhoneForEmergencyCall = (boolean) args.arg4;
+ startSequenceInternal(phone, callback, forEmergencyCall,
+ isSelectedPhoneForEmergencyCall);
} finally {
args.recycle();
}
@@ -97,6 +100,10 @@
private Callback mCallback; // The callback to notify upon completion.
private Phone mPhone; // The phone that will attempt to place the call.
+ private boolean mForEmergencyCall; // Whether radio is being turned on for emergency call.
+ // Whether this phone is selected to place emergency call. Can be true only if
+ // mForEmergencyCall is true.
+ private boolean mSelectedPhoneForEmergencyCall;
private int mNumRetriesSoFar;
/**
@@ -113,7 +120,8 @@
* RadioOnStateListener's handler (thus ensuring that the rest of the sequence is entirely
* serialized, and runs only on the handler thread.)
*/
- public void waitForRadioOn(Phone phone, Callback callback) {
+ public void waitForRadioOn(Phone phone, Callback callback,
+ boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall) {
Log.d(this, "waitForRadioOn: Phone " + phone.getPhoneId());
if (mPhone != null) {
@@ -124,6 +132,8 @@
SomeArgs args = SomeArgs.obtain();
args.arg1 = phone;
args.arg2 = callback;
+ args.arg3 = forEmergencyCall;
+ args.arg4 = isSelectedPhoneForEmergencyCall;
mHandler.obtainMessage(MSG_START_SEQUENCE, args).sendToTarget();
}
@@ -132,7 +142,8 @@
*
* @see #waitForRadioOn
*/
- private void startSequenceInternal(Phone phone, Callback callback) {
+ private void startSequenceInternal(Phone phone, Callback callback,
+ boolean forEmergencyCall, boolean isSelectedPhoneForEmergencyCall) {
Log.d(this, "startSequenceInternal: Phone " + phone.getPhoneId());
// First of all, clean up any state left over from a prior RadioOn call sequence. This
@@ -142,6 +153,8 @@
mPhone = phone;
mCallback = callback;
+ mForEmergencyCall = forEmergencyCall;
+ mSelectedPhoneForEmergencyCall = isSelectedPhoneForEmergencyCall;
registerForServiceStateChanged();
// Register for RADIO_OFF to handle cases where emergency call is dialed before
@@ -159,6 +172,7 @@
* call with {@link Callback#isOkToCall}
*/
private void onServiceStateChanged(ServiceState state) {
+ if (mPhone == null) return;
Log.d(this, "onServiceStateChanged(), new state = %s, Phone = %s", state,
mPhone.getPhoneId());
@@ -182,6 +196,7 @@
}
private void onRadioOn() {
+ if (mPhone == null) return;
ServiceState state = mPhone.getServiceState();
Log.d(this, "onRadioOn, state = %s, Phone = %s", state,
mPhone.getPhoneId());
@@ -203,6 +218,7 @@
* Handles the retry timer expiring.
*/
private void onRetryTimeout() {
+ if (mPhone == null) return;
int serviceState = mPhone.getServiceState().getState();
Log.d(this, "onRetryTimeout(): phone state = %s, service state = %d, retries = %d.",
mPhone.getState(), serviceState, mNumRetriesSoFar);
@@ -231,7 +247,8 @@
cleanup();
} else {
Log.d(this, "Trying (again) to turn on the radio.");
- mPhone.setRadioPower(true);
+ mPhone.setRadioPower(true, mForEmergencyCall, mSelectedPhoneForEmergencyCall,
+ false);
startRetryTimer();
}
}
diff --git a/src/com/android/services/telephony/TelecomAccountRegistry.java b/src/com/android/services/telephony/TelecomAccountRegistry.java
index 8a09f8f..3b8f4fd 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -32,6 +32,7 @@
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
+import android.os.HandlerThread;
import android.os.Looper;
import android.os.PersistableBundle;
import android.os.UserHandle;
@@ -57,7 +58,7 @@
import android.text.TextUtils;
import com.android.ims.ImsManager;
-import com.android.internal.telephony.LocaleTracker;
+import com.android.internal.telephony.ExponentialBackoff;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.SubscriptionController;
@@ -85,6 +86,26 @@
private final static int DEFAULT_SIM_ICON = R.drawable.ic_multi_sim;
private final static String GROUP_PREFIX = "group_";
+ private static final int REGISTER_START_DELAY_MS = 1 * 1000; // 1 second
+ private static final int REGISTER_MAXIMUM_DELAY_MS = 60 * 1000; // 1 minute
+
+ /**
+ * Indicates the {@link SubscriptionManager.OnSubscriptionsChangedListener} has not yet been
+ * registered.
+ */
+ private static final int LISTENER_STATE_UNREGISTERED = 0;
+
+ /**
+ * Indicates the first {@link SubscriptionManager.OnSubscriptionsChangedListener} registration
+ * attempt failed and we are performing backoff registration.
+ */
+ private static final int LISTENER_STATE_PERFORMING_BACKOFF = 2;
+
+ /**
+ * Indicates the {@link SubscriptionManager.OnSubscriptionsChangedListener} has been registered.
+ */
+ private static final int LISTENER_STATE_REGISTERED = 3;
+
final class AccountEntry implements PstnPhoneCapabilitiesNotifier.Listener {
private final Phone mPhone;
private PhoneAccount mAccount;
@@ -952,18 +973,46 @@
new OnSubscriptionsChangedListener() {
@Override
public void onSubscriptionsChanged() {
- // Any time the SubscriptionInfo changes...rerun the setup
- Log.i(this, "onSubscriptionsChanged - update accounts");
+ if (mSubscriptionListenerState != LISTENER_STATE_REGISTERED) {
+ mRegisterSubscriptionListenerBackoff.stop();
+ mHandlerThread.quitSafely();
+ }
+ mSubscriptionListenerState = LISTENER_STATE_REGISTERED;
+
+ // Any time the SubscriptionInfo changes rerun the setup
+ Log.i(this, "TelecomAccountRegistry: onSubscriptionsChanged - update accounts");
tearDownAccounts();
setupAccounts();
}
+
+ @Override
+ public void onAddListenerFailed() {
+ // Woe! Failed to add the listener!
+ Log.w(this, "TelecomAccountRegistry: onAddListenerFailed - failed to register "
+ + "OnSubscriptionsChangedListener");
+
+ // Even though registering the listener failed, we will still try to setup the phone
+ // accounts now; the phone instances should already be present and ready, so even if
+ // telephony registry is poking along we can still try to setup the phone account.
+ tearDownAccounts();
+ setupAccounts();
+
+ if (mSubscriptionListenerState == LISTENER_STATE_UNREGISTERED) {
+ // Initial registration attempt failed; start exponential backoff.
+ mSubscriptionListenerState = LISTENER_STATE_PERFORMING_BACKOFF;
+ mRegisterSubscriptionListenerBackoff.start();
+ } else {
+ // We're already doing exponential backoff and a registration failed.
+ mRegisterSubscriptionListenerBackoff.notifyFailed();
+ }
+ }
};
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_USER_SWITCHED.equals(intent.getAction())) {
- Log.i(this, "User changed, re-registering phone accounts.");
+ Log.i(this, "TelecomAccountRegistry: User changed, re-registering phone accounts.");
UserHandle currentUser = intent.getParcelableExtra(Intent.EXTRA_USER);
mIsPrimaryUser = currentUser == null ? true : currentUser.isSystem();
@@ -1026,20 +1075,42 @@
private final SubscriptionManager mSubscriptionManager;
private List<AccountEntry> mAccounts = new LinkedList<AccountEntry>();
private final Object mAccountsLock = new Object();
+ private int mSubscriptionListenerState = LISTENER_STATE_UNREGISTERED;
private int mServiceState = ServiceState.STATE_POWER_OFF;
private int mActiveDataSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
private boolean mIsPrimaryUser = true;
+ private ExponentialBackoff mRegisterSubscriptionListenerBackoff;
+ private final HandlerThread mHandlerThread = new HandlerThread("TelecomAccountRegistry");
// TODO: Remove back-pointer from app singleton to Service, since this is not a preferred
// pattern; redesign. This was added to fix a late release bug.
private TelephonyConnectionService mTelephonyConnectionService;
+ // Used to register subscription changed listener when initial attempts fail.
+ private Runnable mRegisterOnSubscriptionsChangedListenerRunnable = new Runnable() {
+ @Override
+ public void run() {
+ if (mSubscriptionListenerState != LISTENER_STATE_REGISTERED) {
+ Log.i(this, "TelecomAccountRegistry: performing delayed register.");
+ SubscriptionManager.from(mContext).addOnSubscriptionsChangedListener(
+ mOnSubscriptionsChangedListener);
+ }
+ }
+ };
+
TelecomAccountRegistry(Context context) {
mContext = context;
mTelecomManager = context.getSystemService(TelecomManager.class);
mImsManager = context.getSystemService(android.telephony.ims.ImsManager.class);
mTelephonyManager = TelephonyManager.from(context);
mSubscriptionManager = SubscriptionManager.from(context);
+ mHandlerThread.start();
+ mRegisterSubscriptionListenerBackoff = new ExponentialBackoff(
+ REGISTER_START_DELAY_MS,
+ REGISTER_MAXIMUM_DELAY_MS,
+ 2, /* multiplier */
+ mHandlerThread.getLooper(),
+ mRegisterOnSubscriptionsChangedListenerRunnable);
}
/**
@@ -1255,6 +1326,7 @@
// Register for SubscriptionInfo list changes which is guaranteed
// to invoke onSubscriptionsChanged the first time.
+ Log.i(this, "TelecomAccountRegistry: setupOnBoot - register subscription listener");
SubscriptionManager.from(mContext).addOnSubscriptionsChangedListener(
mOnSubscriptionsChangedListener);
@@ -1310,7 +1382,7 @@
}
};
Uri contactDiscUri = Uri.withAppendedPath(Telephony.SimInfo.CONTENT_URI,
- Telephony.SimInfo.IMS_RCS_UCE_ENABLED);
+ Telephony.SimInfo.COLUMN_IMS_RCS_UCE_ENABLED);
mContext.getContentResolver().registerContentObserver(
contactDiscUri, true /*notifyForDescendants*/, contactDiscoveryObserver);
}
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index fd9de4f..bb3da0c 100755
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -769,11 +769,6 @@
private boolean mIsCdmaVoicePrivacyEnabled;
/**
- * Indicates whether this call is an outgoing call.
- */
- protected final boolean mIsOutgoing;
-
- /**
* Indicates whether the connection can be held. This filed combined with the state of the
* connection can determine whether {@link Connection#CAPABILITY_HOLD} should be added to the
* connection.
@@ -807,8 +802,8 @@
new ConcurrentHashMap<TelephonyConnectionListener, Boolean>(8, 0.9f, 1));
protected TelephonyConnection(com.android.internal.telephony.Connection originalConnection,
- String callId, boolean isOutgoingCall) {
- mIsOutgoing = isOutgoingCall;
+ String callId, @android.telecom.Call.Details.CallDirection int callDirection) {
+ setCallDirection(callDirection);
setTelecomCallId(callId);
if (originalConnection != null) {
setOriginalConnection(originalConnection);
@@ -1387,6 +1382,8 @@
if (PhoneNumberUtils.isEmergencyNumber(mOriginalConnection.getAddress())) {
mTreatAsEmergencyCall = true;
}
+ // Propagate VERSTAT for IMS calls.
+ setCallerNumberVerificationStatus(mOriginalConnection.getNumberVerificationStatus());
if (isImsConnection()) {
mWasImsConnection = true;
@@ -1978,7 +1975,7 @@
*/
public List<ConferenceParticipant> getConferenceParticipants() {
if (mOriginalConnection == null) {
- Log.v(this, "Null mOriginalConnection, cannot get conf participants.");
+ Log.w(this, "Null mOriginalConnection, cannot get conf participants.");
return null;
}
return mOriginalConnection.getConferenceParticipants();
@@ -2426,8 +2423,8 @@
/**
* @return {@code true} if this is an outgoing call, {@code false} otherwise.
*/
- boolean isOutgoingCall() {
- return mIsOutgoing;
+ public boolean isOutgoingCall() {
+ return getCallDirection() == android.telecom.Call.Details.DIRECTION_OUTGOING;
}
/**
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index c7686be..356407a 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -71,6 +71,7 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -246,12 +247,20 @@
@Override
public boolean isCurrentEmergencyNumber(String number) {
- return mTelephonyManager.isEmergencyNumber(number);
+ try {
+ return mTelephonyManager.isEmergencyNumber(number);
+ } catch (IllegalStateException ise) {
+ return false;
+ }
}
@Override
public Map<Integer, List<EmergencyNumber>> getCurrentEmergencyNumberList() {
- return mTelephonyManager.getEmergencyNumberList();
+ try {
+ return mTelephonyManager.getEmergencyNumberList();
+ } catch (IllegalStateException ise) {
+ return new HashMap<>();
+ }
}
}
@@ -421,6 +430,14 @@
}
/**
+ * Overrides radioOnHelper for testing.
+ */
+ @VisibleForTesting
+ public void setRadioOnHelper(RadioOnHelper radioOnHelper) {
+ mRadioOnHelper = radioOnHelper;
+ }
+
+ /**
* Overrides PhoneSwitcher dependencies for testing.
*/
@VisibleForTesting
@@ -563,9 +580,11 @@
}
TelephonyConnection connection = (TelephonyConnection)conn;
+
ImsConference conference = new ImsConference(TelecomAccountRegistry.getInstance(this),
mTelephonyConnectionServiceProxy, connection,
- phoneAccountHandle, () -> true);
+ phoneAccountHandle, () -> true,
+ ImsConferenceController.getCarrierConfig(connection.getPhone()));
mImsConferenceController.addConference(conference);
conference.setVideoState(connection,
connection.getVideoState());
@@ -763,13 +782,16 @@
boolean needToTurnOnRadio = (isEmergencyNumber && (!isRadioOn() || isAirplaneModeOn))
|| isRadioPowerDownOnBluetooth();
+ // Get the right phone object from the account data passed in.
+ final Phone phone = getPhoneForAccount(request.getAccountHandle(), isEmergencyNumber,
+ /* Note: when not an emergency, handle can be null for unknown callers */
+ handle == null ? null : handle.getSchemeSpecificPart());
+
if (needToTurnOnRadio) {
final Uri resultHandle = handle;
- // By default, Connection based on the default Phone, since we need to return to Telecom
- // now.
- final int originalPhoneType = mPhoneFactoryProxy.getDefaultPhone().getPhoneType();
+ final int originalPhoneType = phone.getPhoneType();
final Connection resultConnection = getTelephonyConnection(request, numberToDial,
- isEmergencyNumber, resultHandle, PhoneFactory.getDefaultPhone());
+ isEmergencyNumber, resultHandle, phone);
if (mRadioOnHelper == null) {
mRadioOnHelper = new RadioOnHelper(this);
}
@@ -777,7 +799,7 @@
@Override
public void onComplete(RadioOnStateListener listener, boolean isRadioReady) {
handleOnComplete(isRadioReady, isEmergencyNumber, resultConnection, request,
- numberToDial, resultHandle, originalPhoneType);
+ numberToDial, resultHandle, originalPhoneType, phone);
}
@Override
@@ -806,7 +828,7 @@
|| serviceState == ServiceState.STATE_IN_SERVICE;
}
}
- });
+ }, isEmergencyNumber && !isTestEmergencyNumber, phone);
// Return the still unconnected GsmConnection and wait for the Radios to boot before
// connecting it to the underlying Phone.
return resultConnection;
@@ -822,10 +844,6 @@
"Add call restricted due to ongoing video call"));
}
- // Get the right phone object from the account data passed in.
- final Phone phone = getPhoneForAccount(request.getAccountHandle(), isEmergencyNumber,
- /* Note: when not an emergency, handle can be null for unknown callers */
- handle == null ? null : handle.getSchemeSpecificPart());
if (!isEmergencyNumber) {
final Connection resultConnection = getTelephonyConnection(request, numberToDial,
false, handle, phone);
@@ -902,18 +920,21 @@
*/
private void handleOnComplete(boolean isRadioReady, boolean isEmergencyNumber,
Connection originalConnection, ConnectionRequest request, String numberToDial,
- Uri handle, int originalPhoneType) {
+ Uri handle, int originalPhoneType, Phone phone) {
// Make sure the Call has not already been canceled by the user.
if (originalConnection.getState() == Connection.STATE_DISCONNECTED) {
Log.i(this, "Call disconnected before the outgoing call was placed. Skipping call "
+ "placement.");
+ if (isEmergencyNumber) {
+ // If call is already canceled by the user, notify modem to exit emergency call
+ // mode by sending radio on with forEmergencyCall=false.
+ for (Phone curPhone : mPhoneFactoryProxy.getPhones()) {
+ curPhone.setRadioPower(true, false, false, true);
+ }
+ }
return;
}
- // Get the right phone object since the radio has been turned on successfully.
if (isRadioReady) {
- final Phone phone = getPhoneForAccount(request.getAccountHandle(), isEmergencyNumber,
- /* Note: when not an emergency, handle can be null for unknown callers */
- handle == null ? null : handle.getSchemeSpecificPart());
if (!isEmergencyNumber) {
adjustAndPlaceOutgoingConnection(phone, originalConnection, request, numberToDial,
handle, originalPhoneType, false);
@@ -956,7 +977,7 @@
// one and causing UI Jank.
boolean noActiveSimCard = SubscriptionController.getInstance()
.getActiveSubInfoCount(phone.getContext().getOpPackageName(),
- phone.getContext().getFeatureId()) == 0;
+ phone.getContext().getAttributionTag()) == 0;
// If there's no active sim card and the device is in emergency mode, use E account.
addExistingConnection(mPhoneUtilsProxy.makePstnPhoneAccountHandleWithPrefix(
phone, "", isEmergencyNumber && noActiveSimCard), repConnection);
@@ -1629,7 +1650,10 @@
private void placeOutgoingConnection(
TelephonyConnection connection, Phone phone, int videoState, Bundle extras) {
- String number = connection.getAddress().getSchemeSpecificPart();
+
+ String number = (connection.getAddress() != null)
+ ? connection.getAddress().getSchemeSpecificPart()
+ : "";
com.android.internal.telephony.Connection originalConnection = null;
try {
@@ -1787,12 +1811,14 @@
boolean isAdhocConference) {
TelephonyConnection returnConnection = null;
int phoneType = phone.getPhoneType();
+ int callDirection = isOutgoing ? android.telecom.Call.Details.DIRECTION_OUTGOING
+ : android.telecom.Call.Details.DIRECTION_INCOMING;
if (phoneType == TelephonyManager.PHONE_TYPE_GSM) {
- returnConnection = new GsmConnection(originalConnection, telecomCallId, isOutgoing);
+ returnConnection = new GsmConnection(originalConnection, telecomCallId, callDirection);
} else if (phoneType == TelephonyManager.PHONE_TYPE_CDMA) {
boolean allowsMute = allowsMute(phone);
returnConnection = new CdmaConnection(originalConnection, mEmergencyTonePlayer,
- allowsMute, isOutgoing, telecomCallId);
+ allowsMute, callDirection, telecomCallId);
}
if (returnConnection != null) {
if (!isAdhocConference) {
diff --git a/tests/src/com/android/TestContext.java b/tests/src/com/android/TestContext.java
index ff85b6d..c5b9b1e 100644
--- a/tests/src/com/android/TestContext.java
+++ b/tests/src/com/android/TestContext.java
@@ -67,7 +67,7 @@
}
@Override
- public String getFeatureId() {
+ public String getAttributionTag() {
return "";
}
diff --git a/tests/src/com/android/phone/LocationAccessPolicyTest.java b/tests/src/com/android/phone/LocationAccessPolicyTest.java
index 2061f38..b2489e7 100644
--- a/tests/src/com/android/phone/LocationAccessPolicyTest.java
+++ b/tests/src/com/android/phone/LocationAccessPolicyTest.java
@@ -147,6 +147,9 @@
}
}
+ private static final int TESTING_UID = 10001;
+ private static final int TESTING_PID = 8009;
+
@Mock Context mContext;
@Mock AppOpsManager mAppOpsManager;
@Mock LocationManager mLocationManager;
@@ -195,15 +198,18 @@
anyInt(), anyString(), nullable(String.class), nullable(String.class)))
.thenReturn(s.coarseAppOp);
+ // set this permission to denied by default, and only allow for the proper pid/uid
+ // combination
+ when(mContext.checkPermission(eq(Manifest.permission.INTERACT_ACROSS_USERS_FULL),
+ anyInt(), anyInt())).thenReturn(PackageManager.PERMISSION_DENIED);
if (s.isDynamicLocationEnabled) {
when(mLocationManager.isLocationEnabledForUser(any(UserHandle.class))).thenReturn(true);
when(mContext.checkPermission(eq(Manifest.permission.INTERACT_ACROSS_USERS_FULL),
- anyInt(), anyInt())).thenReturn(PackageManager.PERMISSION_GRANTED);
+ eq(TESTING_PID), eq(TESTING_UID)))
+ .thenReturn(PackageManager.PERMISSION_GRANTED);
} else {
when(mLocationManager.isLocationEnabledForUser(any(UserHandle.class)))
.thenReturn(false);
- when(mContext.checkPermission(eq(Manifest.permission.INTERACT_ACROSS_USERS_FULL),
- anyInt(), anyInt())).thenReturn(PackageManager.PERMISSION_DENIED);
}
ApplicationInfo fakeAppInfo = new ApplicationInfo();
@@ -222,8 +228,8 @@
.setMethod("test")
.setCallingPackage("com.android.test")
.setCallingFeatureId(null)
- .setCallingPid(10001)
- .setCallingUid(10001);
+ .setCallingPid(TESTING_PID)
+ .setCallingUid(TESTING_UID);
}
@Parameterized.Parameters(name = "{0}")
diff --git a/tests/src/com/android/phone/PhoneInterfaceManagerTest.java b/tests/src/com/android/phone/PhoneInterfaceManagerTest.java
deleted file mode 100644
index 9f8de9e..0000000
--- a/tests/src/com/android/phone/PhoneInterfaceManagerTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2020 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 junit.framework.TestCase.fail;
-
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-
-import android.content.pm.PackageManager;
-import android.os.Binder;
-import android.util.Log;
-
-import androidx.test.runner.AndroidJUnit4;
-
-import com.android.TelephonyTestBase;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-
-@RunWith(AndroidJUnit4.class)
-public class PhoneInterfaceManagerTest extends TelephonyTestBase {
-
- private static final String PRIVILEGED_PACKAGE_NAME = "test.package.name";
-
- private static final String TAG = "PhoneInterfaceManagerTest";
-
- private PhoneInterfaceManager mPhoneInterfaceManager;
- private PhoneGlobals mMockPhoneGlobals;
-
- @Before
- public void setUp() throws Exception {
- super.setUp();
- mMockPhoneGlobals = mock(PhoneGlobals.class);
- //PhoneGlobals phoneGlobals = new PhoneGlobals(mContext);
- mPhoneInterfaceManager = new PhoneInterfaceManager(mMockPhoneGlobals);
- }
-
- @After
- public void tearDown() throws Exception {
- super.tearDown();
- }
-
- @Test
- public void testGetUiccCardsInfoSecurity() {
- // Set up mocks so that the supplied package UID does not equal the calling UID
- PackageManager mockPackageManager = mock(PackageManager.class);
- try {
- doReturn(Binder.getCallingUid() + 1).when(mockPackageManager)
- .getPackageUid(eq(PRIVILEGED_PACKAGE_NAME), anyInt());
- } catch (Exception e) {
- Log.d(TAG, "testGetUiccCardsInfoSecurity unable to setup mocks");
- fail();
- }
- doReturn(mockPackageManager).when(mContext).getPackageManager();
- doReturn(mockPackageManager).when(mMockPhoneGlobals).getPackageManager();
- try {
- mPhoneInterfaceManager.getUiccCardsInfo(PRIVILEGED_PACKAGE_NAME);
- fail();
- } catch (SecurityException e) {
- Log.d(TAG, "testGetUiccCardsInfoSecurity e = " + e);
- }
- }
-}
diff --git a/tests/src/com/android/services/telephony/DisconnectCauseUtilTest.java b/tests/src/com/android/services/telephony/DisconnectCauseUtilTest.java
new file mode 100644
index 0000000..7f9efdc
--- /dev/null
+++ b/tests/src/com/android/services/telephony/DisconnectCauseUtilTest.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.services.telephony;
+
+import static android.media.ToneGenerator.TONE_PROP_PROMPT;
+
+import static junit.framework.Assert.assertNotNull;
+import static junit.framework.TestCase.assertEquals;
+
+import android.telephony.DisconnectCause;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class DisconnectCauseUtilTest {
+ /**
+ * Verifies that a call drop due to loss of WIFI results in a disconnect cause of error and that
+ * the label, description and tone are all present.
+ */
+ @Test
+ public void testDropDueToWifiLoss() {
+ android.telecom.DisconnectCause tcCause = DisconnectCauseUtil.toTelecomDisconnectCause(
+ DisconnectCause.WIFI_LOST);
+ assertEquals(android.telecom.DisconnectCause.ERROR, tcCause.getCode());
+ assertEquals(TONE_PROP_PROMPT, tcCause.getTone());
+ assertNotNull(tcCause.getDescription());
+ assertNotNull(tcCause.getReason());
+ }
+}
diff --git a/tests/src/com/android/services/telephony/ImsConferenceTest.java b/tests/src/com/android/services/telephony/ImsConferenceTest.java
index 7251402..f172d67 100644
--- a/tests/src/com/android/services/telephony/ImsConferenceTest.java
+++ b/tests/src/com/android/services/telephony/ImsConferenceTest.java
@@ -18,7 +18,6 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.never;
@@ -43,6 +42,8 @@
import org.mockito.MockitoAnnotations;
import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
public class ImsConferenceTest {
@Mock
@@ -73,14 +74,15 @@
ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
mMockTelephonyConnectionServiceProxy, mConferenceHost,
- null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+ null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+ new ImsConference.CarrierConfiguration.Builder().build());
ConferenceParticipant participant1 = new ConferenceParticipant(
Uri.parse("tel:6505551212"),
"A",
Uri.parse("sip:6505551212@testims.com"),
Connection.STATE_ACTIVE,
- Call.Details.DIRECTION_INCOMING);
+ Call.Details.DIRECTION_OUTGOING);
ConferenceParticipant participant2 = new ConferenceParticipant(
Uri.parse("tel:6505551213"),
"A",
@@ -98,6 +100,8 @@
imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
Arrays.asList(participant1));
assertEquals(0, imsConference.getNumberOfParticipants());
+ // Ensure the call direction is set correctly during emulation
+ assertEquals(Call.Details.DIRECTION_OUTGOING, imsConference.getCallDirection());
reset(mMockTelephonyConnectionServiceProxy);
// Back to 2!
@@ -120,7 +124,8 @@
ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
mMockTelephonyConnectionServiceProxy, mConferenceHost,
- null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+ null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+ new ImsConference.CarrierConfiguration.Builder().build());
// Start off with 3 participants.
ConferenceParticipant participant1 = new ConferenceParticipant(
@@ -183,7 +188,8 @@
ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
mMockTelephonyConnectionServiceProxy, mConferenceHost,
- null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+ null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+ new ImsConference.CarrierConfiguration.Builder().build());
// Start off with 3 participants.
ConferenceParticipant participant1 = new ConferenceParticipant(
@@ -240,7 +246,8 @@
ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
mMockTelephonyConnectionServiceProxy, mConferenceHost,
- null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+ null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+ new ImsConference.CarrierConfiguration.Builder().build());
// Setup the initial conference state with 2 participants.
ConferenceParticipant participant1 = new ConferenceParticipant(
@@ -298,7 +305,8 @@
ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
mMockTelephonyConnectionServiceProxy, mConferenceHost,
- null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+ null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+ new ImsConference.CarrierConfiguration.Builder().build());
final boolean[] isConferenceState = new boolean[1];
TelephonyConferenceBase.TelephonyConferenceListener conferenceListener =
@@ -354,7 +362,8 @@
ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
mMockTelephonyConnectionServiceProxy, mConferenceHost,
- null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+ null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+ new ImsConference.CarrierConfiguration.Builder().build());
ConferenceParticipant participant1 = new ConferenceParticipant(
Uri.parse("tel:6505551212"),
@@ -364,7 +373,37 @@
Call.Details.DIRECTION_INCOMING);
imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
Arrays.asList(participant1));
- assertTrue(imsConference.isEmulatingSinglePartyCall());
+ assertFalse(imsConference.isMultiparty());
+ }
+
+ /**
+ * Verify that the single party emulate correctly when the conference starts with a single
+ * party as part of the initial setup. This mimics how an ImsCall can get CEP data prior to the
+ * ImsConference being created.
+ */
+ @Test
+ @SmallTest
+ public void testSinglePartyEmulationWithSinglePartyAtCreation() {
+ when(mMockTelecomAccountRegistry.isUsingSimCallManager(any(PhoneAccountHandle.class)))
+ .thenReturn(false);
+
+ ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
+ mMockTelephonyConnectionServiceProxy, mConferenceHost,
+ null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+ new ImsConference.CarrierConfiguration.Builder().build());
+
+ ConferenceParticipant participant1 = new ConferenceParticipant(
+ Uri.parse("tel:6505551214"),
+ "A",
+ Uri.parse("sip:6505551214@testims.com"),
+ Connection.STATE_ACTIVE,
+ Call.Details.DIRECTION_INCOMING);
+ List<ConferenceParticipant> cps = Arrays.asList(participant1);
+ when(mConferenceHost.mMockRadioConnection.getConferenceParticipants())
+ .thenReturn(cps);
+ imsConference.updateConferenceParticipantsAfterCreation();
+
+ assertFalse(imsConference.isMultiparty());
}
/**
@@ -379,7 +418,8 @@
ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
mMockTelephonyConnectionServiceProxy, mConferenceHost,
- null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+ null /* phoneAccountHandle */, () -> true /* featureFlagProxy */,
+ new ImsConference.CarrierConfiguration.Builder().build());
ConferenceParticipant participant1 = new ConferenceParticipant(
Uri.parse("tel:6505551212"),
@@ -410,13 +450,14 @@
@Test
@SmallTest
- public void testNormalConference() {
+ public void testNormalConference() throws Exception {
when(mMockTelecomAccountRegistry.isUsingSimCallManager(any(PhoneAccountHandle.class)))
.thenReturn(false);
ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
mMockTelephonyConnectionServiceProxy, mConferenceHost,
- null /* phoneAccountHandle */, () -> false /* featureFlagProxy */);
+ null /* phoneAccountHandle */, () -> false /* featureFlagProxy */,
+ new ImsConference.CarrierConfiguration.Builder().build());
ConferenceParticipant participant1 = new ConferenceParticipant(
Uri.parse("tel:6505551212"),
@@ -438,5 +479,45 @@
imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
Arrays.asList(participant1));
assertEquals(1, imsConference.getNumberOfParticipants());
+
+ // Drop to 0 participants; should not hangup the conf now
+ imsConference.handleConferenceParticipantsUpdate(mConferenceHost, Collections.emptyList());
+ assertEquals(0, imsConference.getNumberOfParticipants());
+ verify(mConferenceHost.mMockCall, never()).hangup();
+ }
+
+ @Test
+ @SmallTest
+ public void testLocalDisconnectOnEmptyConference() throws Exception {
+ when(mMockTelecomAccountRegistry.isUsingSimCallManager(any(PhoneAccountHandle.class)))
+ .thenReturn(false);
+
+ ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
+ mMockTelephonyConnectionServiceProxy, mConferenceHost,
+ null /* phoneAccountHandle */, () -> false /* featureFlagProxy */,
+ new ImsConference.CarrierConfiguration.Builder()
+ .setShouldLocalDisconnectEmptyConference(true)
+ .build());
+
+ ConferenceParticipant participant1 = new ConferenceParticipant(
+ Uri.parse("tel:6505551212"),
+ "A",
+ Uri.parse("sip:6505551212@testims.com"),
+ Connection.STATE_ACTIVE,
+ Call.Details.DIRECTION_INCOMING);
+ ConferenceParticipant participant2 = new ConferenceParticipant(
+ Uri.parse("tel:6505551213"),
+ "A",
+ Uri.parse("sip:6505551213@testims.com"),
+ Connection.STATE_ACTIVE,
+ Call.Details.DIRECTION_INCOMING);
+ imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
+ Arrays.asList(participant1, participant2));
+ assertEquals(2, imsConference.getNumberOfParticipants());
+
+ // Drop to 0 participants; should have a hangup request.
+ imsConference.handleConferenceParticipantsUpdate(mConferenceHost, Collections.emptyList());
+ assertEquals(0, imsConference.getNumberOfParticipants());
+ verify(mConferenceHost.mMockCall).hangup();
}
}
diff --git a/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java b/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java
index afdfab5..d55a2fa 100644
--- a/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java
+++ b/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java
@@ -69,9 +69,11 @@
@Override
@After
public void tearDown() throws Exception {
+ mListener.setTimeBetweenRetriesMillis(5000);
+ mListener.setMaxNumRetries(5);
+ mListener.getHandler().removeCallbacksAndMessages(null);
// Wait for the queue to clear...
waitForHandlerAction(mListener.getHandler(), TIMEOUT_MS /*ms timeout*/);
- mListener.getHandler().removeCallbacksAndMessages(null);
mListener = null;
super.tearDown();
}
@@ -83,7 +85,7 @@
@SmallTest
public void testRegisterForCallback() {
mMockPhone.mCi = mMockCi;
- mListener.waitForRadioOn(mMockPhone, mCallback);
+ mListener.waitForRadioOn(mMockPhone, mCallback, false, false);
waitForHandlerAction(mListener.getHandler(), TIMEOUT_MS);
@@ -105,10 +107,11 @@
public void testPhoneChangeState_OkToCallTrue() {
ServiceState state = new ServiceState();
state.setState(ServiceState.STATE_IN_SERVICE);
+ when(mMockPhone.getServiceState()).thenReturn(state);
when(mMockPhone.getState()).thenReturn(PhoneConstants.State.IDLE);
when(mCallback.isOkToCall(eq(mMockPhone), anyInt())).thenReturn(true);
mMockPhone.mCi = mMockCi;
- mListener.waitForRadioOn(mMockPhone, mCallback);
+ mListener.waitForRadioOn(mMockPhone, mCallback, false, false);
waitForHandlerAction(mListener.getHandler(), TIMEOUT_MS);
mListener.getHandler().obtainMessage(RadioOnStateListener.MSG_SERVICE_STATE_CHANGED,
@@ -132,7 +135,7 @@
when(mCallback.isOkToCall(eq(mMockPhone), anyInt())).thenReturn(false);
when(mMockPhone.getServiceState()).thenReturn(state);
mMockPhone.mCi = mMockCi;
- mListener.waitForRadioOn(mMockPhone, mCallback);
+ mListener.waitForRadioOn(mMockPhone, mCallback, false, false);
waitForHandlerAction(mListener.getHandler(), TIMEOUT_MS);
mListener.getHandler().obtainMessage(RadioOnStateListener.MSG_SERVICE_STATE_CHANGED,
@@ -161,10 +164,32 @@
// Wait for the timer to expire and check state manually in onRetryTimeout
mMockPhone.mCi = mMockCi;
- mListener.waitForRadioOn(mMockPhone, mCallback);
+ mListener.waitForRadioOn(mMockPhone, mCallback, false, false);
waitForHandlerActionDelayed(mListener.getHandler(), TIMEOUT_MS, TIMEOUT_MS /*delay*/);
verify(mCallback).onComplete(eq(mListener), eq(false));
- verify(mMockPhone, times(2)).setRadioPower(eq(true));
+ verify(mMockPhone, times(2)).setRadioPower(eq(true),
+ eq(false), eq(false), eq(false));
+ }
+
+ @Test
+ @SmallTest
+ public void testTimeout_RetryFailure_ForEmergency() {
+ ServiceState state = new ServiceState();
+ state.setState(ServiceState.STATE_POWER_OFF);
+ when(mMockPhone.getState()).thenReturn(PhoneConstants.State.IDLE);
+ when(mMockPhone.getServiceState()).thenReturn(state);
+ when(mCallback.isOkToCall(eq(mMockPhone), anyInt())).thenReturn(false);
+ mListener.setTimeBetweenRetriesMillis(0/*ms*/);
+ mListener.setMaxNumRetries(2);
+
+ // Wait for the timer to expire and check state manually in onRetryTimeout
+ mMockPhone.mCi = mMockCi;
+ mListener.waitForRadioOn(mMockPhone, mCallback, true, true);
+ waitForHandlerActionDelayed(mListener.getHandler(), TIMEOUT_MS, TIMEOUT_MS /*delay*/);
+
+ verify(mCallback).onComplete(eq(mListener), eq(false));
+ verify(mMockPhone, times(2)).setRadioPower(eq(true),
+ eq(true), eq(true), eq(false));
}
}
diff --git a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
index 6e11e51..2060e6f 100644
--- a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
@@ -16,7 +16,10 @@
package com.android.services.telephony;
+import static com.android.internal.telephony.RILConstants.GSM_PHONE;
+
import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertTrue;
import static junit.framework.Assert.fail;
@@ -26,6 +29,7 @@
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
@@ -58,6 +62,7 @@
import com.android.internal.telephony.Connection;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneSwitcher;
+import com.android.internal.telephony.ServiceStateTracker;
import com.android.internal.telephony.emergency.EmergencyNumberTracker;
import com.android.internal.telephony.gsm.SuppServiceNotification;
@@ -93,6 +98,7 @@
private static final PhoneAccountHandle PHONE_ACCOUNT_HANDLE_2 = new PhoneAccountHandle(
TEST_COMPONENT_NAME, TEST_ACCOUNT_ID2);
private static final Uri TEST_ADDRESS = Uri.parse("tel:+16505551212");
+ private android.telecom.Connection mConnection;
@Mock TelephonyConnectionService.TelephonyManagerProxy mTelephonyManagerProxy;
@Mock TelephonyConnectionService.SubscriptionManagerProxy mSubscriptionManagerProxy;
@@ -106,6 +112,8 @@
@Mock Handler mMockHandler;
@Mock EmergencyNumberTracker mEmergencyNumberTracker;
@Mock PhoneSwitcher mPhoneSwitcher;
+ @Mock RadioOnHelper mRadioOnHelper;
+ @Mock ServiceStateTracker mSST;
private static class TestTelephonyConnectionService extends TelephonyConnectionService {
@@ -135,6 +143,8 @@
doReturn(false).when(mDeviceState).shouldCheckSimStateBeforeOutgoingCall(any());
mTestConnectionService.setPhoneSwitcherProxy(mPhoneSwitcherProxy);
doReturn(mPhoneSwitcher).when(mPhoneSwitcherProxy).getPhoneSwitcher();
+ when(mPhoneNumberUtilsProxy.convertToEmergencyNumber(any(), anyString()))
+ .thenAnswer(invocation -> invocation.getArgument(1));
mTestConnectionService.setPhoneNumberUtilsProxy(mPhoneNumberUtilsProxy);
mTestConnectionService.setPhoneUtilsProxy(mPhoneUtilsProxy);
HandlerThread mockHandlerThread = mock(HandlerThread.class);
@@ -143,6 +153,7 @@
doReturn(mMockHandler).when(mHandlerFactory).createHandler(any());
mTestConnectionService.setHandlerFactory(mHandlerFactory);
mTestConnectionService.setDeviceState(mDeviceState);
+ mTestConnectionService.setRadioOnHelper(mRadioOnHelper);
doReturn(new DisconnectCause(DisconnectCause.UNKNOWN)).when(mDisconnectCauseFactory)
.toTelecomDisconnectCause(anyInt(), any());
doReturn(new DisconnectCause(DisconnectCause.UNKNOWN)).when(mDisconnectCauseFactory)
@@ -941,6 +952,64 @@
}
/**
+ * Test that the TelephonyConnectionService successfully turns radio on before placing the
+ * emergency call.
+ */
+ @Test
+ @SmallTest
+ public void testCreateOutgoingEmerge_exitingApm_disconnected() {
+ when(mDeviceState.isAirplaneModeOn(any())).thenReturn(true);
+ Phone testPhone = setupConnectionServiceInApm();
+
+ ArgumentCaptor<RadioOnStateListener.Callback> callback =
+ ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
+ verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
+ eq(testPhone));
+
+ assertFalse(callback.getValue().isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE));
+ when(mSST.isRadioOn()).thenReturn(true);
+ assertTrue(callback.getValue().isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE));
+
+ mConnection.setDisconnected(null);
+ callback.getValue().onComplete(null, true);
+ for (Phone phone : mPhoneFactoryProxy.getPhones()) {
+ verify(phone).setRadioPower(true, false, false, true);
+ }
+ }
+
+ /**
+ * Test that the TelephonyConnectionService successfully turns radio on before placing the
+ * emergency call.
+ */
+ @Test
+ @SmallTest
+ public void testCreateOutgoingEmergencyConnection_exitingApm_placeCall() {
+ when(mDeviceState.isAirplaneModeOn(any())).thenReturn(true);
+ Phone testPhone = setupConnectionServiceInApm();
+
+ ArgumentCaptor<RadioOnStateListener.Callback> callback =
+ ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
+ verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
+ eq(testPhone));
+
+ assertFalse(callback.getValue().isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE));
+ when(mSST.isRadioOn()).thenReturn(true);
+ assertTrue(callback.getValue().isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE));
+
+ callback.getValue().onComplete(null, true);
+ Runnable delayDialRunnable = verifyRunnablePosted();
+
+ try {
+ doAnswer(invocation -> null).when(mContext).startActivity(any());
+ delayDialRunnable.run();
+ verify(testPhone).dial(anyString(), any());
+ } catch (CallStateException e) {
+ // This shouldn't happen
+ fail();
+ }
+ }
+
+ /**
* Test that the TelephonyConnectionService does not perform a DDS switch when the carrier
* supports control-plane fallback.
*/
@@ -1115,9 +1184,49 @@
doReturn(emergencyNumbers).when(mTelephonyManagerProxy).getCurrentEmergencyNumberList();
doReturn(2).when(mTelephonyManagerProxy).getPhoneCount();
- android.telecom.Connection testConnection = mTestConnectionService
- .onCreateOutgoingConnection(PHONE_ACCOUNT_HANDLE_1, connectionRequest);
- assertNotNull("test connection was not set up correctly.", testConnection);
+ mConnection = mTestConnectionService.onCreateOutgoingConnection(
+ PHONE_ACCOUNT_HANDLE_1, connectionRequest);
+ assertNotNull("test connection was not set up correctly.", mConnection);
+
+ return testPhone0;
+ }
+
+
+ /**
+ * Set up a mock MSIM device with TEST_ADDRESS set as an emergency number in airplane mode.
+ * @return the Phone associated with slot 0.
+ */
+ private Phone setupConnectionServiceInApm() {
+ ConnectionRequest connectionRequest = new ConnectionRequest.Builder()
+ .setAccountHandle(PHONE_ACCOUNT_HANDLE_1)
+ .setAddress(TEST_ADDRESS)
+ .build();
+ Phone testPhone0 = makeTestPhone(0 /*phoneId*/, ServiceState.STATE_POWER_OFF,
+ false /*isEmergencyOnly*/);
+ Phone testPhone1 = makeTestPhone(1 /*phoneId*/, ServiceState.STATE_POWER_OFF,
+ false /*isEmergencyOnly*/);
+ doReturn(GSM_PHONE).when(testPhone0).getPhoneType();
+ doReturn(GSM_PHONE).when(testPhone1).getPhoneType();
+ List<Phone> phones = new ArrayList<>(2);
+ doReturn(false).when(testPhone0).isRadioOn();
+ doReturn(false).when(testPhone1).isRadioOn();
+ phones.add(testPhone0);
+ phones.add(testPhone1);
+ setPhones(phones);
+ setupHandleToPhoneMap(PHONE_ACCOUNT_HANDLE_1, testPhone0);
+ setupDeviceConfig(testPhone0, testPhone1, 0);
+ doReturn(true).when(mTelephonyManagerProxy).isCurrentEmergencyNumber(
+ TEST_ADDRESS.getSchemeSpecificPart());
+ HashMap<Integer, List<EmergencyNumber>> emergencyNumbers = new HashMap<>(1);
+ List<EmergencyNumber> numbers = new ArrayList<>();
+ numbers.add(setupEmergencyNumber(TEST_ADDRESS));
+ emergencyNumbers.put(0 /*subId*/, numbers);
+ doReturn(emergencyNumbers).when(mTelephonyManagerProxy).getCurrentEmergencyNumberList();
+ doReturn(2).when(mTelephonyManagerProxy).getPhoneCount();
+
+ mConnection = mTestConnectionService.onCreateOutgoingConnection(
+ PHONE_ACCOUNT_HANDLE_1, connectionRequest);
+ assertNotNull("test connection was not set up correctly.", mConnection);
return testPhone0;
}
@@ -1163,6 +1272,7 @@
when(phone.getPhoneId()).thenReturn(phoneId);
when(phone.getDefaultPhone()).thenReturn(phone);
when(phone.getEmergencyNumberTracker()).thenReturn(mEmergencyNumberTracker);
+ when(phone.getServiceStateTracker()).thenReturn(mSST);
when(mEmergencyNumberTracker.getEmergencyNumber(anyString())).thenReturn(null);
return phone;
}
@@ -1193,6 +1303,7 @@
private void setPhones(List<Phone> phones) {
when(mPhoneFactoryProxy.getPhones()).thenReturn(phones.toArray(new Phone[phones.size()]));
+ when(mPhoneFactoryProxy.getDefaultPhone()).thenReturn(phones.get(0));
}
private void setPhonesDialConnection(Phone phone, Connection c) {
diff --git a/tests/src/com/android/services/telephony/TestTelephonyConnection.java b/tests/src/com/android/services/telephony/TestTelephonyConnection.java
index 5b31c0f..09cec17 100644
--- a/tests/src/com/android/services/telephony/TestTelephonyConnection.java
+++ b/tests/src/com/android/services/telephony/TestTelephonyConnection.java
@@ -30,6 +30,7 @@
import static org.mockito.Mockito.when;
import com.android.internal.telephony.Call;
+import com.android.internal.telephony.CallStateException;
import com.android.internal.telephony.Connection;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
@@ -72,13 +73,18 @@
return mMockRadioConnection;
}
+ @Override
+ protected Call getCall() {
+ return mMockCall;
+ }
+
public TestTelephonyConnection() {
- super(null, null, false);
+ super(null, null, android.telecom.Call.Details.DIRECTION_INCOMING);
MockitoAnnotations.initMocks(this);
mMockPhone = mock(Phone.class);
mMockContext = mock(Context.class);
- mOriginalConnection = mock(Connection.class);
+ mOriginalConnection = mMockRadioConnection;
// Set up mMockRadioConnection and mMockPhone to contain an active call
when(mMockRadioConnection.getState()).thenReturn(Call.State.ACTIVE);
when(mOriginalConnection.getState()).thenReturn(Call.State.ACTIVE);
@@ -100,6 +106,11 @@
when(mMockPhone.getPhoneType()).thenReturn(PhoneConstants.PHONE_TYPE_IMS);
when(mMockCall.getState()).thenReturn(Call.State.ACTIVE);
when(mMockCall.getPhone()).thenReturn(mMockPhone);
+ try {
+ doNothing().when(mMockCall).hangup();
+ } catch (CallStateException e) {
+ e.printStackTrace();
+ }
}
@Override