Merge "Issue 128554259: Sim card name incorrect after user change system language."
diff --git a/Android.mk b/Android.mk
index 775d795..04c37e6 100644
--- a/Android.mk
+++ b/Android.mk
@@ -25,14 +25,13 @@
LOCAL_STATIC_JAVA_LIBRARIES := \
guava \
- volley
+ volley \
+ android-support-annotations
LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
LOCAL_SRC_FILES += $(call all-proto-files-under, ecc/proto)
LOCAL_SRC_FILES += \
- src/com/android/phone/EventLogTags.logtags \
- src/com/android/phone/INetworkQueryService.aidl \
- src/com/android/phone/INetworkQueryServiceCallback.aidl
+ src/com/android/phone/EventLogTags.logtags
LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
LOCAL_ASSET_DIR := $(addprefix $(LOCAL_PATH)/, $(asset_dirs))
LOCAL_USE_AAPT2 := true
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 8237beb..0bba1f8 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -83,12 +83,14 @@
<protected-broadcast android:name= "com.android.internal.telephony.CARRIER_VVM_PACKAGE_INSTALLED" />
<protected-broadcast android:name= "com.android.cellbroadcastreceiver.GET_LATEST_CB_AREA_INFO" />
<protected-broadcast android:name= "com.android.internal.telephony.ACTION_CARRIER_CERTIFICATE_DOWNLOAD" />
+ <protected-broadcast android:name= "com.android.internal.telephony.OPEN_DEFAULT_SMS_APP" />
<protected-broadcast android:name= "android.telephony.action.SIM_CARD_STATE_CHANGED" />
<protected-broadcast android:name= "android.telephony.action.SIM_APPLICATION_STATE_CHANGED" />
<protected-broadcast android:name= "android.telephony.action.SIM_SLOT_STATUS_CHANGED" />
<protected-broadcast android:name= "android.telephony.action.SUBSCRIPTION_CARRIER_IDENTITY_CHANGED" />
- <protected-broadcast android:name= "android.telephony.action.SUBSCRIPTION_PRECISE_CARRIER_IDENTITY_CHANGED" />
+ <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" />
<!-- For Vendor Debugging in Telephony -->
<protected-broadcast android:name="android.telephony.action.ANOMALY_REPORTED" />
@@ -119,6 +121,7 @@
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.STATUS_BAR" />
+ <uses-permission android:name="android.permission.STATUS_BAR_SERVICE" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
@@ -135,6 +138,7 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
<uses-permission android:name="android.permission.BROADCAST_SMS"/>
<uses-permission android:name="android.permission.BROADCAST_WAP_PUSH"/>
@@ -166,6 +170,7 @@
<uses-permission android:name="android.permission.BIND_CARRIER_MESSAGING_SERVICE" />
<uses-permission android:name="android.permission.BIND_EUICC_SERVICE" />
<uses-permission android:name="com.android.permission.BIND_TELEPHONY_NETWORK_SERVICE" />
+ <uses-permission android:name="android.permission.BIND_CELL_BROADCAST_SERVICE" />
<uses-permission android:name="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS" />
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
@@ -195,6 +200,11 @@
<uses-permission android:name="android.permission.BIND_TELEPHONY_DATA_SERVICE" />
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
<uses-permission android:name="android.permission.READ_PRECISE_PHONE_STATE" />
+ <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS" />
+ <!-- Allows us to whitelist receivers of the
+ ACTION_SIM_SLOT_STATUS_CHANGED broadcast to start activities
+ from the background. -->
+ <uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
<application android:name="PhoneApp"
android:persistent="true"
@@ -259,39 +269,6 @@
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:exported="false"/>
- <!-- "Mobile network settings" screen, used on both
- non-voice-capable tablets and regular phone devices. -->
- <activity android:name="MobileNetworkSettings"
- android:label="@string/network_settings_title"
- android:theme="@style/NetworkOperatorsSettingsTheme">
- <intent-filter>
- <action android:name="android.intent.action.VIEW" />
- <action android:name="android.intent.action.MAIN" />
- <action android:name="android.settings.NETWORK_OPERATOR_SETTINGS" />
- <action android:name="android.settings.DATA_ROAMING_SETTINGS" />
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
- </activity>
-
- <activity-alias android:name="Settings"
- android:targetActivity="MobileNetworkSettings" />
-
- <!-- networks setting -->
- <!-- "Choose network" screen. Used only when the Automatically
- select network turned off-->
- <activity android:name="NetworkSelectSettingActivity"
- android:label="@string/choose_network_title"
- android:theme="@style/NetworkOperatorsSettingsTheme"
- android:configChanges="orientation|screenSize">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
- </activity>
-
- <!-- service to handle network query requests sent to RIL -->
- <service android:name="NetworkQueryService" />
-
<activity android:name="GsmUmtsCallOptions"
android:label="@string/gsm_umts_options"
android:theme="@style/DialerSettingsLight">
@@ -311,7 +288,7 @@
<activity android:name="GsmUmtsCallForwardOptions"
android:label="@string/labelCF"
android:configChanges="orientation|screenSize|keyboardHidden"
- android:theme="@style/SettingsLight">
+ android:theme="@style/DialerSettingsLight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
@@ -329,7 +306,7 @@
<activity android:name="GsmUmtsAdditionalCallOptions"
android:label="@string/labelGSMMore"
android:configChanges="orientation|screenSize|keyboardHidden"
- android:theme="@style/SettingsLight">
+ android:theme="@style/DialerSettingsLight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
@@ -347,7 +324,7 @@
<!-- SIM PIN setting -->
<activity android:name="EnableIccPinScreen"
android:label="@string/enable_pin"
- android:theme="@style/SettingsLight">
+ android:theme="@style/DialerSettingsLight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEVELOPMENT_PREFERENCE" />
@@ -356,7 +333,7 @@
<activity android:name="ChangeIccPinScreen"
android:label="@string/change_pin"
- android:theme="@style/SettingsLight">
+ android:theme="@style/DialerSettingsLight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEVELOPMENT_PREFERENCE" />
@@ -394,7 +371,8 @@
<!-- Activation service that trigger OTASP sim provisioning -->
<service android:name=".otasp.OtaspActivationService" android:launchMode="singleInstance"
- androidprv:systemUserOnly="true">
+ androidprv:systemUserOnly="true"
+ android:permission="android.permission.MODIFY_PHONE_STATE">
<intent-filter>
<action android:name="android.service.simActivation.SimActivationService" />
</intent-filter>
@@ -432,7 +410,8 @@
<!-- Handler for EuiccManager's public-facing intents. -->
<activity android:name=".euicc.EuiccUiDispatcherActivity"
- android:theme="@android:style/Theme.NoDisplay">
+ android:theme="@android:style/Theme.NoDisplay"
+ android:permission="android.permission.MODIFY_PHONE_STATE">
<!-- Max out priority to ensure nobody else will handle these intents. -->
<intent-filter android:priority="1000">
<action android:name=
@@ -463,6 +442,7 @@
privileged processes can start them.
-->
<activity android:name=".euicc.EuiccPrivilegedActionUiDispatcherActivity"
+ android:theme="@android:style/Theme.NoDisplay"
android:permission="android.permission.CALL_PRIVILEGED">
<!-- Max out priority to ensure nobody else will handle these intents. -->
<intent-filter android:priority="1000">
@@ -576,18 +556,6 @@
</intent-filter>
</service>
- <provider
- android:name="PhoneSearchIndexablesProvider"
- android:authorities="com.android.phone"
- android:multiprocess="false"
- android:grantUriPermissions="true"
- android:permission="android.permission.READ_SEARCH_INDEXABLES"
- android:exported="true">
- <intent-filter>
- <action android:name="android.content.action.SEARCH_INDEXABLES_PROVIDER" />
- </intent-filter>
- </provider>
-
<receiver
android:name="com.android.phone.vvm.VvmSmsReceiver"
android:exported="false"
@@ -612,6 +580,14 @@
android:name="com.android.internal.telephony.uicc.ShowInstallAppNotificationReceiver"
android:exported="false"/>
+ <activity
+ android:name="com.android.phone.settings.PickSmsSubscriptionActivity"
+ android:exported="false"
+ android:excludeFromRecents="true"
+ android:launchMode="singleTop"
+ android:configChanges="orientation|screenSize|keyboardHidden"
+ android:theme="@style/Theme.Transparent"/>
+
<service
android:name="com.android.phone.vvm.RemoteVvmTaskManager"
android:exported="false"/>
diff --git a/OWNERS b/OWNERS
index 1ef8344..5be6fe5 100644
--- a/OWNERS
+++ b/OWNERS
@@ -11,3 +11,4 @@
shuoq@google.com
paulye@google.com
nazaninb@google.com
+sarahchin@google.com
\ No newline at end of file
diff --git a/assets/eri_311220.xml b/assets/eri_311220.xml
index f32bc4e..038922e 100644
--- a/assets/eri_311220.xml
+++ b/assets/eri_311220.xml
@@ -42,7 +42,7 @@
<EriInfo RoamingIndicator="1"
IconIndex="1"
IconMode="0"
- EriText="Extended"
+ EriText="U.S. Cellular"
CallPromptId="0"
AlertId="0"
DataServiceSupport="1"/>
diff --git a/ecc/conversion_toolset_v1/gen_eccdata.sh b/ecc/conversion_toolset_v1/gen_eccdata.sh
index 1efac37..803f39b 100644
--- a/ecc/conversion_toolset_v1/gen_eccdata.sh
+++ b/ecc/conversion_toolset_v1/gen_eccdata.sh
@@ -19,7 +19,7 @@
source "${LOCAL_TOOLSET_DIR}/env.sh"
echo "Converting eccdata..."
-${ANDROID_BUILD_TOP}/prebuilts/tools/linux-x86_64/protoc/bin/protoc \
+${ANDROID_BUILD_TOP}/prebuilts/misc/${KERNEL}-x86/protobuf/aprotoc \
--encode=ecc.AllInfo proto/protobuf_ecc_data.proto \
< "${INPUT_DATA}" > "${RAW_DATA}"
diff --git a/ecc/conversion_toolset_v1/proto/Android.bp b/ecc/conversion_toolset_v1/proto/Android.bp
index 7d6cce4..f633f90 100644
--- a/ecc/conversion_toolset_v1/proto/Android.bp
+++ b/ecc/conversion_toolset_v1/proto/Android.bp
@@ -22,7 +22,7 @@
],
},
srcs: ["protobuf_ecc_data.proto"],
- no_framework_libs: true,
+ sdk_version: "core_platform",
jarjar_rules: "jarjar-rules.txt",
java_version: "1.8",
}
\ No newline at end of file
diff --git a/ecc/conversion_toolset_v1/verify_eccdata_compatibility.sh b/ecc/conversion_toolset_v1/verify_eccdata_compatibility.sh
deleted file mode 100644
index 8686722..0000000
--- a/ecc/conversion_toolset_v1/verify_eccdata_compatibility.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-set -o errexit
-
-# Copyright 2018 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.
-
-LOCAL_TOOLSET_DIR="${ECC_ROOT}/conversion_toolset_v1"
-source "${LOCAL_TOOLSET_DIR}/env.sh"
-
-echo "Starting compatibility verification v1"
-echo "Decoding and decompressing eccdata"
-gunzip -c < "${OUTPUT_DATA}" > "${RAW_DATA}"
-${PYTHON_COMMAND} -B \
- "${LOCAL_TOOLSET_DIR}/verify_protobuf_compatibility.py" \
- --input="${RAW_DATA}"
-echo "Passed compatibility verification v1"
-
diff --git a/ecc/conversion_toolset_v1/verify_protobuf_compatibility.py b/ecc/conversion_toolset_v1/verify_protobuf_compatibility.py
deleted file mode 100644
index bc707eb..0000000
--- a/ecc/conversion_toolset_v1/verify_protobuf_compatibility.py
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/python -B
-
-# Copyright 2018 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.
-
-# Notice:
-# - verify_eccdata_strict.py: Verify data which is generated by this
-# version of this toolset.
-# - verify_eccdata_compatibility.py: Verify data which is generated by any
-# newer version of this tool set for ensuring backward compatibility.
-
-import sys
-import argparse
-import protobuf_ecc_data_pb2
-
-parser = argparse.ArgumentParser()
-parser.add_argument("--input", required=True)
-parser.add_argument("--strict", action="store_true")
-args = parser.parse_args()
-
-all_ecc_info = protobuf_ecc_data_pb2.AllInfo()
-
-with open(args.input, "rb") as ecc_data_source_file:
- all_ecc_info.ParseFromString(ecc_data_source_file.read())
-
-if (args.strict):
- print("Verify in strict mode")
-
-assert all_ecc_info.HasField("revision")
-assert all_ecc_info.revision > 0
-assert len(all_ecc_info.countries) > 0
-
-loaded_iso = []
-for country_info in all_ecc_info.countries:
- assert country_info.HasField("iso_code")
- assert len(country_info.iso_code) > 0
- assert country_info.iso_code == country_info.iso_code.strip().upper()
- assert country_info.iso_code not in loaded_iso
- loaded_iso.append(country_info.iso_code)
- assert country_info.HasField("ecc_fallback")
- assert len(country_info.ecc_fallback) > 0
-
- if len(country_info.eccs) > 0:
- loaded_phone_number = []
- for ecc_info in country_info.eccs:
- assert ecc_info.HasField("phone_number")
- phone_number = ecc_info.phone_number.strip()
- assert len(phone_number) > 0
- assert phone_number not in loaded_phone_number
- loaded_phone_number.append(phone_number)
-
- if (args.strict):
- assert len(ecc_info.types) > 0
- loaded_types = []
- for ecc_type in ecc_info.types:
- assert ecc_type == protobuf_ecc_data_pb2.EccInfo.POLICE or \
- ecc_type == protobuf_ecc_data_pb2.EccInfo.AMBULANCE or \
- ecc_type == protobuf_ecc_data_pb2.EccInfo.FIRE
- assert ecc_type not in loaded_types
- loaded_types.append(ecc_type)
- else:
- # For forward compatibility, ecc_info.types could be null if a phone
- # number contains only new types which is not defined now. Just leave
- # a warning message for this case.
- if len(ecc_info.types) == 0:
- print("WARNING: No recognizable type for " + \
- country_info.iso_code + " - " + ecc_info.phone_number)
- else:
- loaded_types = []
- for ecc_type in ecc_info.types:
- assert ecc_type not in loaded_types
- loaded_types.append(ecc_type)
- elif (args.strict):
- print("Warning: Empty ecc list for country " + country_info.iso_code)
diff --git a/ecc/gen_eccdata.sh b/ecc/gen_eccdata.sh
index e4dd745..4c1f616 100755
--- a/ecc/gen_eccdata.sh
+++ b/ecc/gen_eccdata.sh
@@ -34,7 +34,7 @@
esac
read -d "" PROTOC_COMMAND << END || :
-${ANDROID_BUILD_TOP}/prebuilts/tools/${KERNEL}-x86_64/protoc/bin/protoc
+${ANDROID_BUILD_TOP}/prebuilts/misc/${KERNEL}-x86/protobuf/aprotoc
END
if ! [ -x "${PROTOC_COMMAND}" ] ; then
echo "Missing ${PROTOC_COMMAND}." 1>&2
diff --git a/ecc/output/eccdata b/ecc/output/eccdata
index 679bc36..917273d 100644
--- a/ecc/output/eccdata
+++ b/ecc/output/eccdata
Binary files differ
diff --git a/res/drawable-hdpi/ic_add_gnu_grey.png b/res/drawable-hdpi/ic_add_gnu_grey.png
new file mode 100644
index 0000000..9196537
--- /dev/null
+++ b/res/drawable-hdpi/ic_add_gnu_grey.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_add_gnu_grey.png b/res/drawable-mdpi/ic_add_gnu_grey.png
new file mode 100644
index 0000000..3afab9c
--- /dev/null
+++ b/res/drawable-mdpi/ic_add_gnu_grey.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_add_gnu_grey.png b/res/drawable-xhdpi/ic_add_gnu_grey.png
new file mode 100644
index 0000000..e85f779
--- /dev/null
+++ b/res/drawable-xhdpi/ic_add_gnu_grey.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_add_gnu_grey.png b/res/drawable-xxhdpi/ic_add_gnu_grey.png
new file mode 100644
index 0000000..b16ea9f
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_add_gnu_grey.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_add_gnu_grey.png b/res/drawable-xxxhdpi/ic_add_gnu_grey.png
new file mode 100644
index 0000000..6fc56a4
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_add_gnu_grey.png
Binary files differ
diff --git a/res/layout/emergency_dialer.xml b/res/layout/emergency_dialer.xml
index 491b661..892b8f4 100644
--- a/res/layout/emergency_dialer.xml
+++ b/res/layout/emergency_dialer.xml
@@ -66,25 +66,6 @@
android:layout_gravity="bottom"
android:orientation="vertical">
- <!--Emergency dialer shortcuts implement EmergencyInfoGroup to replace
- EmergencyActionGroup. Using a title to indicate the dialpad is emergency calls only.-->
- <FrameLayout
- android:id="@+id/emergency_dialpad_title_container"
- android:layout_height="64dp"
- android:layout_width="match_parent"
- android:layout_marginTop="16dp"
- android:layout_marginBottom="24dp"
- android:visibility="gone">
- <TextView
- android:id="@+id/emergency_dialpad_title"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:layout_gravity="center"
- android:textStyle="bold"
- android:maxLines="1"
- android:text="@string/emergency_dialpad_title"/>
- </FrameLayout>
-
<!-- FrameLayout -->
<com.android.phone.EmergencyActionGroup
android:id="@+id/emergency_action_group"
@@ -127,7 +108,7 @@
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:backgroundTint="#ffe53935"
+ android:backgroundTint="#ffe32926"
android:focusable="false"
android:clickable="false"
style="?android:attr/buttonStyle"/>
diff --git a/res/layout/emergency_information.xml b/res/layout/emergency_information.xml
index e925479..524387f 100644
--- a/res/layout/emergency_information.xml
+++ b/res/layout/emergency_information.xml
@@ -53,7 +53,7 @@
android:maxLines="1"
android:ellipsize="end"
android:lineHeight="@dimen/emergency_info_name_line_height"
- android:fontFamily="google-sans"
+ android:fontFamily="@*android:string/config_headlineFontFamily"
android:textAppearance="@style/HeadlineTextAppearance"/>
<TextView
android:id="@+id/emergency_info_hint"
@@ -99,7 +99,7 @@
android:maxLines="2"
android:ellipsize="end"
android:lineHeight="@dimen/confirmed_emergency_info_line_height"
- android:fontFamily="google-sans"
+ android:fontFamily="@*android:string/config_headlineFontFamily"
android:textAppearance="@style/PhoneCallHintTextAppearance"
android:text="@string/emergency_information_confirm_hint"/>
</LinearLayout>
diff --git a/res/layout/emergency_shortcut_button.xml b/res/layout/emergency_shortcut_button.xml
index 136db0c..3c5eaa2 100644
--- a/res/layout/emergency_shortcut_button.xml
+++ b/res/layout/emergency_shortcut_button.xml
@@ -57,7 +57,7 @@
android:maxLines="1"
android:ellipsize="end"
android:lineHeight="@dimen/phone_number_line_height"
- android:fontFamily="google-sans"
+ android:fontFamily="@*android:string/config_headlineFontFamily"
android:textAppearance="@style/PhoneNumberTextAppearance"/>
<TextView
android:id="@+id/phone_number_description"
@@ -124,7 +124,7 @@
android:maxLines="2"
android:ellipsize="end"
android:lineHeight="@dimen/phone_call_hint_line_height"
- android:fontFamily="google-sans"
+ android:fontFamily="@*android:string/config_headlineFontFamily"
android:textAppearance="@style/PhoneCallHintTextAppearance"/>
</FrameLayout>
</LinearLayout>
@@ -140,4 +140,4 @@
android:src="@drawable/ic_emergency_callback_mode"/>
</FrameLayout>
</FrameLayout>
-</com.android.phone.EmergencyShortcutButton>
\ No newline at end of file
+</com.android.phone.EmergencyShortcutButton>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 64a9b01..79a2571 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD-kode loop tans…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI-kode gekanselleer"</string>
<string name="cancel" msgid="5044513931633602634">"Kanselleer"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD-boodskap moet tussen <xliff:g id="MIN_LEN">%d</xliff:g> en <xliff:g id="MAX_LEN">%d</xliff:g> karakters wees. Probeer asseblief weer."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD-boodskap moet tussen <xliff:g id="MIN_LEN">%1$d</xliff:g> en <xliff:g id="MAX_LEN">%2$d</xliff:g> karakters wees. Probeer asseblief weer."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Bestuur konferensie-oproep"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Luidspreker"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Stemboodskap"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Stemboodskapdiens (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Kennisgewings"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Nooduitsendings"</string>
<string name="call_settings" msgid="6112441768261754562">"Oproepinstellings"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Verbeterde 4G LTE-modus"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Gebruik LTE-dienste om stem- en ander kommunikasie te verbeter (aanbeveel)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Gebruik 4G-dienste om stem- en ander kommunikasie te verbeter (aanbeveel)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Data geaktiveer"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Laat datagebruik toe"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Aandag"</string>
@@ -275,11 +285,9 @@
<skip />
<string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<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="7492763592720107737">"<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.format failed for translation -->
- <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
- <skip />
+ <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<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>
<string name="throttle_rate_subtext" msgid="2149102656120726855">"Datatempo verminder na <xliff:g id="USED">%1$d</xliff:g> Kb/s as datagebruiklimiet oorskry word"</string>
- <string name="throttle_help_subtext" msgid="5217706521499010816">"Meer inligting oor jou draer se mobielenetwerk-datagebruikbeleid"</string>
+ <string name="throttle_help_subtext" msgid="5217706521499010816">"Meer inligting oor jou diensverskaffer se mobielenetwerk-datagebruikbeleid"</string>
<string name="cell_broadcast_sms" msgid="5584192824053625842">"Seluitsending-SMS"</string>
<string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Seluitsending-SMS"</string>
<string name="cell_bc_sms_enable" msgid="6441688565738921084">"Seluitsending-SMS geaktiveer"</string>
@@ -503,8 +511,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Kan nie oproep hervat nie."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Kan nie oproep skei nie."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Kan nie deurskakel nie."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Kan nie oproepe saamvoeg nie."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Kan nie oproep verwerp nie."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Kan nie oproep(e) vrystel nie."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Kan nie oproepe aanhou nie."</string>
@@ -750,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Voer wagwoord in"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Oproepstuitinginstellings"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Deaktiveer alle oproepstuitinginstellings?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Netwerk is besig. Probeer asseblief later weer bel."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Oproep is afgelei."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Oproep is aangestuur."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Oproep wag."</string>
@@ -767,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Aangestuurde oproep."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Sluit tans by konferensieoproep aan."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Oproep wat aangehou is, is weer aktief."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Kan nie \'n oproep maak nie, aangesien die toestel tans opgestel word."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Kan nie \'n oproep maak nie, aangesien \'n ander uitgaande oproep reeds besig is om te skakel."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Kan nie \'n oproep maak nie, aangesien daar \'n onbeantwoorde inkomende oproep is. Beantwoord of weier die inkomende oproep voordat jy \'n nuwe oproep plaas."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Kan nie \'n oproep maak nie, aangesien oproepmaking gedeaktiveer is deur die ro.telephony.disable-belstelseleienskap te gebruik."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Kan nie \'n oproep maak nie, aangesien daar reeds twee oproepe aan die gang is. Ontkoppel een van die oproepe of voeg dit saam in \'n konferensie voordat \'n nuwe oproep gemaak word."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Om <xliff:g id="SUPP_SERVICE">%s</xliff:g> te gebruik, maak seker dat mobiele data aangeskakel is. Jy kan dit in selnetwerk-instellings verander."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Om <xliff:g id="SUPP_SERVICE">%s</xliff:g> te gebruik, maak seker dat mobiele data en dataswerwing aangeskakel is. Jy kan dit in selnetwerk-instellings verander."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Om <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> te gebruik, maak seker dat mobiele data vir SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> aangeskakel is. Jy kan dit in selnetwerk-instellings verander."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Om <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> te gebruik, maak seker dat mobiele data en dataswerwing vir SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> aangeskakel is. Jy kan dit in selnetwerk-instellings verander."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Weier"</string>
</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index bd0d5a2..6651372 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"የUSSD ኮድ አሂድ ላይ ነው..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"የMMI ኮድ ቀርቷል"</string>
<string name="cancel" msgid="5044513931633602634">"ይቅር"</string>
- <string name="enter_input" msgid="1810529547726803893">"የUSSD መልዕክት በ<xliff:g id="MIN_LEN">%d</xliff:g> እና <xliff:g id="MAX_LEN">%d</xliff:g> ቁምፊዎች መካከል መሆን አለበት። እባክዎ እንደገና ይሞክሩ።"</string>
+ <string name="enter_input" msgid="1810529547726803893">"የUSSD መልዕክት በ<xliff:g id="MIN_LEN">%1$d</xliff:g> እና <xliff:g id="MAX_LEN">%2$d</xliff:g> ቁምፊዎች መካከል መሆን አለበት። እባክዎ እንደገና ይሞክሩ።"</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"የስብሰባስልክ ጥሪ አደራጅ"</string>
<string name="ok" msgid="3811371167865772377">"እሺ"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"ድምጽ ማጉያ"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"የድምፅ መልዕክት"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"የድምጽ መልዕክት (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"ማሳወቂያዎች"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"የአስቸኳይ አደጋ ስርጭቶች"</string>
<string name="call_settings" msgid="6112441768261754562">"የጥሪ ቅንብሮች"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"የተሻሻለ የ4ጂ LTE ሁነታ"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"የድምፅ እና ሌሎች የመልዕክት ልውውጦችን ለማሻሻል LTE አገልግሎቶችን ይጠቀሙ (የሚመከር)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"የድምፅ እና ሌሎች ግንኙነቶችን ለማሻሻል 4G አገልግሎቶችን ይጠቀሙ (የሚመከር)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"ውሂብ ነቅቷል"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"የውሂብ አጠቃቀም ፍቀድ"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"ትኩረት"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"ጥሪን መቀጠል አይቻልም።"</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"ጥሪን መለየት አልተቻለም።"</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"ማስተላለፍ አልተቻለም።"</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"ጥሪዎችን ማዋሃድ አልተቻለም።"</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"ጥሪውን መዝጋት አልተቻለም።"</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ጥሪ(ዎች)ን መልቀቅ አልተቻለም።"</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ጥሪዎችን መያዝ አልተቻለም።"</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"የይለፍ ቃል አስገባ"</string>
<string name="call_barring_settings" msgid="80766145008623645">"የጥሪ ክልከላ ቅንብሮች"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"ሁሉንም የጥሪ ክልከላ ቅንብሮች አሰናክል?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"አውታረመረብ ተጨናንቋል። እባክዎ ጥሪዎን በኋላ እንደገና ይሞክሩ።"</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"ጥሪ አቅጣጫውን ቀይሯል።"</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"ጥሪ ተላልፏል።"</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"ጥሪ በመጠበቅ ላይ ነው።"</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"የተላለፈ ጥሪ።"</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"የጉባዔ ጥሪን በመቀላቀል ላይ።"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"የተያዘ ጥሪ ተለቅቋል።"</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"መሳሪያው አሁን እየቀረበ በመሆኑ ጥሪ ማድረግ አይቻልም።"</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"ሊላ ወጪ ጥሪ እየደወለ ስለሆነ ጥሪ ማድረግ አይቻልም።"</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"ያልተመለሰ ገቢ ጥሪ ስላለ ጥሪ ማድረግ አይቻልም። አዲስ ጥሪ ከማድረግዎ በፊት ገቢውን ጥሪ ይመልሱ ወይም ይዝጉ።"</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"ጥሪ ማድረግ አይቻልም ምክንያቱም ጥሪ ማድረግ በ ro.telephony.disable-call የስርዓት ባህሪ ተሰናክልሏል።"</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"ጥሪ ማድረግ አይቻልም ምክንያቱም ቀድሞ ሁለት ጥሪዎች በሂደት ላይ ናቸው። አዲስ ጥሪ ከማድረግዎ በፊት ከጥሪዎቹ አንዱን ያቋርጡ ወይም ወደ ጉባዔ ይቀይሯችው።"</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>ን ለመጠቀም፣ ሞባይል ውሂብ መብራቱን ያረጋግጡ። ይህን በሞባይል አውታረመረብ ቅንብሮች ውስጥ መለወጥ ይችላሉ።"</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>ን ለመጠቀም፣ ሞባይል ውሂብ እና የውሂብ ዝውውር መብራታቸውን ያረጋግጡ። እነዚህን በ ሞባይል አውታረመረብ ቅንብሮች ውስጥ መለወጥ ይችላሉ።"</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ን ለመጠቀም ሞባይል ውሂብ ለ ሲም <xliff:g id="SIM_NUMBER">%2$d</xliff:g> መብራቱን ያረጋግጡ። ይህን በሞባይል አውታረመረብ ቅንብሮች ውስጥ መለወጥ ይችላሉ።"</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ን ለመጠቀም፣ ሞባይል ውሂብ እና ይውሂብ ዝውውር ለሲም <xliff:g id="SIM_NUMBER">%2$d</xliff:g> መብራታቸውን ያረጋግጡ። እነዚህን በ ሞባይል አውታረመረብ ቅንብሮች ውስጥ መለወጥ ይችላሉ።"</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"አሰናብት"</string>
</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index a018693..7132f38 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"جارٍ تشغيل رمز USSD..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"تم إلغاء رمز MMI"</string>
<string name="cancel" msgid="5044513931633602634">"إلغاء"</string>
- <string name="enter_input" msgid="1810529547726803893">"يجب أن تتراوح حروف رسالة USSD بين <xliff:g id="MIN_LEN">%d</xliff:g> و<xliff:g id="MAX_LEN">%d</xliff:g>. يُرجى إعادة المحاولة."</string>
+ <string name="enter_input" msgid="1810529547726803893">"يجب أن تتراوح حروف رسالة USSD بين <xliff:g id="MIN_LEN">%1$d</xliff:g> و<xliff:g id="MAX_LEN">%2$d</xliff:g>. يُرجى إعادة المحاولة."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"إدارة مكالمة جماعية"</string>
<string name="ok" msgid="3811371167865772377">"موافق"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"السماعة"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"البريد الصوتي"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"البريد الصوتي (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"الإشعارات"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"عمليات البث في حالات الطوارئ"</string>
<string name="call_settings" msgid="6112441768261754562">"إعدادات الاتصال"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"وضع 4G LTE المحسّن"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"استخدام خدمات LTE لتحسين الصوت والاتصالات الأخرى (مستحسن)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"استخدام خدمات 4G لتحسين الصوت والاتصالات الأخرى (مُستحسَن)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"تم تفعيل البيانات"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"السماح باستخدام البيانات"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"تنبيه"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"يتعذر استئناف المكالمة."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"يتعذر فصل المكالمة."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"يتعذر النقل."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"يتعذَّر دمج المكالمات."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"يتعذر رفض المكالمة."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"يتعذر تحرير المكالمات."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"يتعذر وضع المكالمات قيد الانتظار."</string>
@@ -567,7 +576,7 @@
<string name="ota_hfa_activation_dialog_message" msgid="8092479227918463415">"يُجري الهاتف تنشيطًا لخدمة بيانات الجوّال.\n\nقد يستغرق هذا الأمر ما يصل إلى 5 دقائق."</string>
<string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"هل تريد تخطي التفعيل؟"</string>
<string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"إذا تخطيت عملية التفعيل، فلن تتمكّن من إجراء مكالمات أو الاتصال بشبكات بيانات الجوال (ومع ذلك، يمكنك الاتصال بشبكات Wi-Fi). وسيُطلَب منك تفعيل الهاتف عند تشغيله في كل مرة إلى حين تفعيله."</string>
- <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"تخطي"</string>
+ <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"التخطّي"</string>
<string name="ota_activate" msgid="1368528132525626264">"تفعيل"</string>
<string name="ota_title_activate_success" msgid="6570240212263372046">"تم تفعيل الهاتف."</string>
<string name="ota_title_problem_with_activation" msgid="7095824491970084367">"مشكلة في التفعيل"</string>
@@ -754,6 +763,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"إدخال كلمة المرور"</string>
<string name="call_barring_settings" msgid="80766145008623645">"إعدادات منع الاتصال"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"هل تريد إيقاف كل إعدادات منع الاتصال؟"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"الشبكة مشغولة. يُرجى إعادة الاتّصال في وقتٍ لاحق."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"تم انحراف المكالمة."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"تمت إعادة توجيه المكالمة."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"المكالمة قيد الانتظار."</string>
@@ -771,8 +781,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"تمت إعادة توجيه المكالمة."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"الانضمام إلى مكالمة جماعية."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"تم إلغاء تعليق المكالمة المعلقة."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"لا يمكن إجراء مكالمة لأنّنا نتحقَّق حاليًا من إمكانية عمل الخدمة على جهازك."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"لا يمكن إجراء مكالمة لأنّ هناك مكالمة صادرة أخرى تجري بالفعل."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"لا يمكن إجراء مكالمة لأنّ هناك مكالمة واردة لم يتم الرد عليها. يُرجى الرد على المكالمة الواردة أو رفضها قبل إجراء مكالمة جديدة."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"لا يمكن إجراء مكالمة لأنّه قد تم إيقاف وظيفة الاتصال باستخدام ميزة النظام ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"لا يمكن إجراء مكالمة لأنّ هناك مكالمتين قيد التقدّم بالفعل. يمكنك إنهاء إحدى المكالمتين أو دمجهما في مكالمة جماعية قبل إجراء مكالمة جديدة."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"لاستخدام <xliff:g id="SUPP_SERVICE">%s</xliff:g>، تأكّد من تفعيل بيانات الجوّال. يمكنك تغيير هذا الإعداد في إعدادات شبكة الجوّال."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"لاستخدام <xliff:g id="SUPP_SERVICE">%s</xliff:g>، تأكّد من تفعيل بيانات الجوّال وتجوال البيانات. يمكنك تغيير هذين الإعدادين في إعدادات شبكة الجوّال."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"لاستخدام <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>، تأكّد من تفعيل بيانات الجوّال لشريحة SIM رقم <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. يمكنك تغيير هذا الإعداد في إعدادات شبكة الجوّال."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"لاستخدام <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>، تأكّد من تفعيل بيانات الجوّال وتجوال البيانات لشريحة SIM رقم <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. يمكنك تغيير هذين الإعدادين في إعدادات شبكة الجوّال."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"رفض"</string>
</resources>
diff --git a/res/values-as/arrays.xml b/res/values-as/arrays.xml
new file mode 100644
index 0000000..7b6e78c
--- /dev/null
+++ b/res/values-as/arrays.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="3391522821603584785">"গোলকীয়"</item>
+ <item msgid="6753774959494729275">"LTE / CDMA"</item>
+ <item msgid="8658695584186942227">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="8390941159766263625">"10"</item>
+ <item msgid="6103348346295810336">"8"</item>
+ <item msgid="3494519853214024879">"9"</item>
+ </string-array>
+</resources>
diff --git a/res/values-as/config.xml b/res/values-as/config.xml
new file mode 100644
index 0000000..509a3c8
--- /dev/null
+++ b/res/values-as/config.xml
@@ -0,0 +1,28 @@
+<?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 name="system_visual_voicemail_client" msgid="1787338073957698459"></string>
+</resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
new file mode 100644
index 0000000..c67218d
--- /dev/null
+++ b/res/values-as/strings.xml
@@ -0,0 +1,786 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"ম’বাইল ডেটা"</string>
+ <string name="phoneAppLabel" product="default" msgid="6790717591729922998">"ফ\'ন সেৱা"</string>
+ <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"জৰুৰীকালীন ডায়েলাৰ"</string>
+ <string name="phoneIconLabel" msgid="2331230813161304895">"ফ’ন"</string>
+ <string name="fdnListLabel" msgid="8630418672279521003">"FDN তালিকা"</string>
+ <string name="unknown" msgid="6878797917991465859">"অজ্ঞাত"</string>
+ <string name="private_num" msgid="6713286113000232309">"ব্যক্তিগত নম্বৰ"</string>
+ <string name="payphone" msgid="4793877574636445118">"পে\'ফ\'ন"</string>
+ <string name="onHold" msgid="9035493194749959955">"হ\'ল্ডত আছে"</string>
+ <string name="mmiStarted" msgid="6347869857061147003">"MMI ক\'ড আৰম্ভ কৰা হ’ল"</string>
+ <string name="ussdRunning" msgid="485588686340541690">"USSD ক\'ড চলি আছে…"</string>
+ <string name="mmiCancelled" msgid="2771923949751842276">"MMI ক\'ড বাতিল কৰা হ’ল"</string>
+ <string name="cancel" msgid="5044513931633602634">"বাতিল কৰক"</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD বাৰ্তাটো <xliff:g id="MIN_LEN">%1$d</xliff:g> আৰু <xliff:g id="MAX_LEN">%2$d</xliff:g> সংখ্যক বৰ্ণৰ ভিতৰত হ\'ব লাগিব। অনুগ্ৰহ কৰি আকৌ চেষ্টা কৰক।"</string>
+ <string name="manageConferenceLabel" msgid="4691922394301969053">"কনফাৰেঞ্চ কল পৰিচালনা কৰক"</string>
+ <string name="ok" msgid="3811371167865772377">"ঠিক"</string>
+ <string name="audio_mode_speaker" msgid="27649582100085266">"স্পীকাৰ"</string>
+ <string name="audio_mode_earpiece" msgid="4156527186373869107">"হেণ্ডছেট ইয়েৰপিচ"</string>
+ <string name="audio_mode_wired_headset" msgid="1465350758489175975">"তাঁৰযুক্ত হেডছেট"</string>
+ <string name="audio_mode_bluetooth" msgid="3047641300848211128">"ব্লুটুথ"</string>
+ <string name="wait_prompt_str" msgid="7601815427707856238">"নিম্নোক্ত ট\'নকেইটা প্ৰেৰণ কৰেনে?\n"</string>
+ <string name="pause_prompt_str" msgid="1789964702154314806">"ট\'ন প্ৰেৰণ কৰি থকা হৈছে\n"</string>
+ <string name="send_button" msgid="4106860097497818751">"পঠিয়াওক"</string>
+ <string name="pause_prompt_yes" msgid="3564467212025151797">"হয়"</string>
+ <string name="pause_prompt_no" msgid="6686238803236884877">"নহয়"</string>
+ <string name="wild_prompt_str" msgid="5543521676355533577">"এইসমূহৰ দ্বাৰা ৱাইল্ড কেৰেক্টাৰ সলনি কৰক"</string>
+ <string name="no_vm_number" msgid="4164780423805688336">"ভইচমেইল নম্বৰ নাই"</string>
+ <string name="no_vm_number_msg" msgid="1300729501030053828">"ছিম কাৰ্ডত কোনো ভইচমেইল নম্বৰ সঞ্চিত কৰি থোৱা হোৱা নাই।"</string>
+ <string name="add_vm_number_str" msgid="4676479471644687453">"নম্বৰ যোগ কৰক"</string>
+ <string name="voice_number_setting_primary_user_only" msgid="6596604364907022416">"ভইচমেইল ছেটিংসমূহ কেৱল মুখ্য ব্যৱহাৰকাৰীয়ে হে সংশোধন কৰিব পাৰে।"</string>
+ <string name="puk_unlocked" msgid="2284912838477558454">"আপোনাৰ ছিম কাৰ্ডখন অৱৰোধৰ পৰা আঁতৰোৱা হ’ল। আপোনাৰ ফ\'নটো আনলক কৰি থকা হৈছে…"</string>
+ <string name="label_ndp" msgid="780479633159517250">"ছিম নেটৱৰ্ক আনলক পিন"</string>
+ <string name="sim_ndp_unlock_text" msgid="683628237760543009">"আনলক"</string>
+ <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"অগ্ৰাহ্য কৰক"</string>
+ <string name="requesting_unlock" msgid="6412629401033249351">"নেটৱৰ্ক আনলক কৰিবলৈ অনুৰোধ কৰি থকা হৈছে…"</string>
+ <string name="unlock_failed" msgid="6490531697031504225">"নেটৱৰ্ক আনলক অনুৰোধ বিফল হৈছে।"</string>
+ <string name="unlock_success" msgid="6770085622238180152">"নেটৱৰ্ক আনলক অনুৰোধ সফল হৈছে।"</string>
+ <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"এই ব্যৱহাৰকাৰীৰ বাবে ম’বাইল নেটৱৰ্ক ছেটিংসমূহ উপলব্ধ নহয়"</string>
+ <string name="labelGSMMore" msgid="5930842194056092106">"GSM কল ছেটিংসমূহ"</string>
+ <string name="labelGsmMore_with_label" msgid="2674012918829238901">"GSM কল ছেটিংসমূহ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA কল ছেটিংসমূহ"</string>
+ <string name="labelCdmaMore_with_label" msgid="6333588719319970399">"CDMA কল ছেটিংসমূহ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="apn_settings" msgid="9043423184895642077">"একচেছ পইণ্টৰ নামসমূহ"</string>
+ <string name="settings_label" msgid="3876743539816984008">"নেটৱৰ্ক ছেটিংসমূহ"</string>
+ <string name="phone_accounts" msgid="6376603393888116364">"কলিং একাউণ্ট"</string>
+ <string name="phone_accounts_make_calls_with" msgid="1969188078933152231">"ইয়াৰ জৰিয়তে কল কৰক"</string>
+ <string name="phone_accounts_make_sip_calls_with" msgid="4677789312053828493">"ইয়াৰ জৰিয়তে SIP কল কৰক"</string>
+ <string name="phone_accounts_ask_every_time" msgid="4346499067149985702">"প্ৰথমে সুধক"</string>
+ <string name="phone_accounts_default_account_label" msgid="4183772241814460014">"কোনো নেটৱৰ্ক উপলব্ধ নহয়"</string>
+ <string name="phone_accounts_settings_header" msgid="4141710640883261094">"ছেটিংসমূহ"</string>
+ <string name="phone_accounts_choose_accounts" msgid="5232948804226424002">"একাউণ্ট বাছক"</string>
+ <string name="phone_accounts_selection_header" msgid="1365215726106915865">"ফ\'ন একাউণ্টসমূহ"</string>
+ <string name="phone_accounts_add_sip_account" msgid="2023821743341923271">"SIP একাউণ্ট যোগ কৰক"</string>
+ <string name="phone_accounts_configure_account_settings" msgid="1361715069911607109">"একাউণ্ট ছেটিংসমূহ কনফিগাৰ কৰক"</string>
+ <string name="phone_accounts_all_calling_accounts" msgid="207619531589278471">"সকলো কলিং একাউণ্ট"</string>
+ <string name="phone_accounts_all_calling_accounts_summary" msgid="8594186415822657011">"কোন কোনটো একাউণ্টে ফন কৰিব পাৰে বাছক"</string>
+ <string name="wifi_calling" msgid="739018212480165598">"ৱাই-ফাই কলিং"</string>
+ <string name="connection_service_default_label" msgid="1498481943805913754">"বিল্ট-ইন সংযোগ সেৱা"</string>
+ <string name="voicemail" msgid="8693759337917898954">"ভইচমেইল"</string>
+ <string name="voicemail_settings_with_label" msgid="152724978380748296">"ভইচমেইল (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
+ <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"জাননীসমূহ"</string>
+ <string name="cell_broadcast_settings" msgid="8740238216690502563">"জৰুৰীকালীন সম্প্ৰচাৰসমূহ"</string>
+ <string name="call_settings" msgid="6112441768261754562">"কল ছেটিংসমূহ"</string>
+ <string name="additional_gsm_call_settings" msgid="1391795981938800617">"অতিৰিক্ত ছেটিংসমূহ"</string>
+ <string name="additional_gsm_call_settings_with_label" msgid="1385241520708457376">"অতিৰিক্ত ছেটিংসমূহ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="sum_gsm_call_settings" msgid="4076647190996778012">"অতিৰিক্ত কেৱল GSM মাত্ৰ কল ছেটিংসমূহ"</string>
+ <string name="additional_cdma_call_settings" msgid="8628958775721886909">"অতিৰিক্ত CDMA কল ছেটিংসমূহ"</string>
+ <string name="sum_cdma_call_settings" msgid="284753265979035549">"অতিৰিক্ত কেৱল CDMA মাত্ৰ কল ছেটিংসমূহ"</string>
+ <string name="labelNwService" msgid="4699970172021870983">"নেটৱৰ্ক সেৱা ছেটিংসমূহ"</string>
+ <string name="labelCallerId" msgid="3888899447379069198">"কলাৰ আইডি"</string>
+ <string name="sum_loading_settings" msgid="1826692909391168620">"ছেটিংসমূহ ল’ড কৰি থকা হৈছে…"</string>
+ <string name="sum_hide_caller_id" msgid="1071407020290873782">"বহিৰ্গামী কলত নম্বৰ গুপ্ত হৈ থাকে"</string>
+ <string name="sum_show_caller_id" msgid="6768534125447290401">"বহিৰ্গামী কলত নম্বৰ দেখুওৱা হয়"</string>
+ <string name="sum_default_caller_id" msgid="1954518825510901365">"বহিৰ্গামী কলত মোৰ নম্বৰটো দেখুওৱাবলৈ ডিফ\'ল্ট অপাৰেটৰ ছেটিংসমূহ ব্যৱহাৰ কৰক"</string>
+ <string name="labelCW" msgid="6120513814915920200">"কল অপেক্ষাৰত"</string>
+ <string name="sum_cw_enabled" msgid="8083061901633671397">"মোক কল চলি থাকোঁতে অন্তৰ্গামী কলৰ জাননী দিয়ক"</string>
+ <string name="sum_cw_disabled" msgid="3648693907300104575">"মোক কল চলি থাকোঁতে অন্তৰ্গামী কলৰ জাননী দিয়ক"</string>
+ <string name="call_forwarding_settings" msgid="3378927671091537173">"কল ফৰৱাৰ্ডিং ছেটিংসমূহ"</string>
+ <string name="call_forwarding_settings_with_label" msgid="8569489414006897127">"কল ফৰৱাৰ্ডিং ছেটিংসমূহ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="labelCF" msgid="2574386948026924737">"কল ফৰৱাৰ্ডিং"</string>
+ <string name="labelCFU" msgid="8147177368148660600">"সদায় ফৰৱাৰ্ড কৰক"</string>
+ <string name="messageCFU" msgid="3560082430662923687">"এই নম্বৰটো সদায় ব্যৱহাৰ কৰক"</string>
+ <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"সকলো কল ফৰৱাৰ্ড কৰা হৈছে"</string>
+ <string name="sum_cfu_enabled" msgid="2450052502198827927">"সকলো কল <xliff:g id="PHONENUMBER">{0}</xliff:g>লৈ ফৰৱাৰ্ড কৰা হৈছে"</string>
+ <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"নম্বৰ উপলব্ধ নহয়"</string>
+ <string name="sum_cfu_disabled" msgid="8384177689501334080">"অফ"</string>
+ <string name="labelCFB" msgid="6139853033106283172">"ব্যস্ত হৈ থাকোঁতে"</string>
+ <string name="messageCFB" msgid="3711089705936187129">"ব্যস্ত হৈ থাকোঁতে নম্বৰ"</string>
+ <string name="sum_cfb_enabled" msgid="5984198104833116690">"<xliff:g id="PHONENUMBER">{0}</xliff:g>লৈ ফৰৱাৰ্ড কৰা হৈছে"</string>
+ <string name="sum_cfb_disabled" msgid="4913145177320506827">"অফ"</string>
+ <string name="disable_cfb_forbidden" msgid="3506984333877998061">"আপোনাৰ অপাৰেটৰে আপোনাৰ ফ\'নটো ব্যস্ত হৈ থাকোতে কল ফৰৱাৰ্ডিং অক্ষম কৰাৰ সুবিধা নিদিয়ে।"</string>
+ <string name="labelCFNRy" msgid="1736067178393744351">"উত্তৰ নিদিয়া অৱস্থাত"</string>
+ <string name="messageCFNRy" msgid="672317899884380374">"উত্তৰ নিদিয়াৰ সময়ত নম্বৰ"</string>
+ <string name="sum_cfnry_enabled" msgid="6955775691317662910">"<xliff:g id="PHONENUMBER">{0}</xliff:g>লৈ ফৰৱাৰ্ড কৰা হৈছে"</string>
+ <string name="sum_cfnry_disabled" msgid="3884684060443538097">"অফ"</string>
+ <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"আপোনাৰ অপাৰেটৰে আপোনাৰ ফ\'নটোৰ উত্তৰ নিদিয়া অৱস্থাত কল ফৰৱাৰ্ডিং অক্ষম কৰাৰ সুবিধা নিদিয়ে।"</string>
+ <string name="labelCFNRc" msgid="2614827454402079766">"সংযোগ সীমাৰ পৰা বাহিৰত থাকোঁতে"</string>
+ <string name="messageCFNRc" msgid="6380695421020295119">"সংযোগ সীমাৰ পৰা বাহিৰত থাকোঁতে নম্বৰ"</string>
+ <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"<xliff:g id="PHONENUMBER">{0}</xliff:g>লৈ ফৰৱাৰ্ড কৰা হৈছে"</string>
+ <string name="sum_cfnrc_disabled" msgid="2684474391807469832">"অফ"</string>
+ <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"আপোনাৰ অপাৰেটৰে আপোনাৰ ফ\'নটো সংযোগ সীমাৰ পৰা বাহিৰত থাকোতে কল ফৰৱাৰ্ডিং অক্ষম কৰাৰ সুবিধা নিদিয়ে।"</string>
+ <string name="updating_title" msgid="6146755386174019046">"কল ছেটিংসমূহ"</string>
+ <string name="call_settings_admin_user_only" msgid="4526094783818216374">"কেৱল প্ৰশাসকে কল ছেটিংসমূহ সলনি কৰিব পাৰে।"</string>
+ <string name="call_settings_with_label" msgid="3401177261468593519">"ছেটিংসমূহ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="error_updating_title" msgid="7970259216988931777">"কল ছেটিংসমূহত আসোঁৱাহ"</string>
+ <string name="reading_settings" msgid="1920291699287055284">"ছেটিংসমূহ পঢ়ি থকা হৈছে…"</string>
+ <string name="updating_settings" msgid="8171225533884883252">"ছেটিংসমূহ আপডে’ট কৰি থকা হৈছে…"</string>
+ <string name="reverting_settings" msgid="4752151682666912828">"ছেটিংসমূহ পূৰ্বৰ অৱস্থালৈ নিয়া হৈছে…"</string>
+ <string name="response_error" msgid="6674110501330139405">"নেটৱৰ্কৰ পৰা অনাকাংক্ষিত উত্তৰ পোৱা গৈছে।"</string>
+ <string name="exception_error" msgid="7027667130619518211">"নেটৱৰ্ক বা ছিম কাৰ্ডৰ আসোঁৱাহ।"</string>
+ <string name="stk_cc_ss_to_dial_error" msgid="4440038807310535377">"SS অনুৰোধ নিয়মীয়া কললৈ সলনি কৰা হ’ল"</string>
+ <string name="stk_cc_ss_to_ussd_error" msgid="6095812685884176176">"SS অনুৰোধ USSD অনুৰোধলৈ সলনি কৰা হ’ল"</string>
+ <string name="stk_cc_ss_to_ss_error" msgid="7920654012697945858">"নতুন SS অনুৰোধলৈ সলনি কৰা হ’ল"</string>
+ <string name="stk_cc_ss_to_dial_video_error" msgid="3873905132181743781">"SS অনুৰোধ ভিডিঅ\' কললৈ সলনি কৰা হ’ল"</string>
+ <string name="fdn_check_failure" msgid="18200614306525434">"আপোনাৰ ফ\'ন এপটোৰ ফিক্সড্ ডায়েলিং নম্বৰ ছেটিঙটো অন কৰি থোৱা আছে। ফলস্বৰূপে, কল সম্পৰ্কীয় কিছুমান সুবিধাই কাম কৰা নাই।"</string>
+ <string name="radio_off_error" msgid="2304459933248513376">"এই ছেটিংসমূহ চোৱাৰ আগতে ৰেডিঅ\' অন কৰক।"</string>
+ <string name="close_dialog" msgid="2365884406356986917">"ঠিক"</string>
+ <string name="enable" msgid="7248657275000173526">"অন কৰক"</string>
+ <string name="disable" msgid="4678348128118573672">"অফ কৰক"</string>
+ <string name="change_num" msgid="239476305819844391">"আপডে’ট"</string>
+ <string-array name="clir_display_values">
+ <item msgid="5560134294467334594">"নেটৱৰ্ক ডিফ\'ল্ট"</item>
+ <item msgid="7876195870037833661">"নম্বৰ লুকুৱাওক"</item>
+ <item msgid="1108394741608734023">"নম্বৰ দেখুৱাওক"</item>
+ </string-array>
+ <string name="vm_changed" msgid="380744030726254139">"ভইচমেইলৰ নম্বৰটো সলনি কৰা হ’ল।"</string>
+ <string name="vm_change_failed" msgid="3352934863246208918">"ভইচমেইলৰ নম্বৰটো সলনি কৰিব পৰা নগ\'ল।\nযদিহে সমস্যাটো সমাধান নহয়, তেন্তে আপোনাৰ বাহকৰ সৈতে যোগাযোগ কৰক।"</string>
+ <string name="fw_change_failed" msgid="5298103228470214665">"ফৰৱাৰ্ডিং নম্বৰটো সলনি কৰিব পৰা নগ\'ল। \nযদিহে সমস্যাটো সমাধান নহয়, তেন্তে আপোনাৰ বাহকৰ সৈতে যোগাযোগ কৰক।"</string>
+ <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"চলিত ফৰৱাৰ্ডিং নম্বৰ ছেটিংসমূহ উলিয়াব আৰু ছেভ কৰিব পৰা নগ\'ল।\nযিহ\'লেও নতুন প্ৰদানকাৰীলৈ সলনি কৰিবনে?"</string>
+ <string name="no_change" msgid="3186040086622435212">"কোনো সালসলনি কৰা নহ\'ল।"</string>
+ <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"ভইচমেইল সেৱা বাছক"</string>
+ <string name="voicemail_default" msgid="2001233554889016880">"আপোনাৰ বাহক"</string>
+ <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"পুৰণি পিন"</string>
+ <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"নতুন পিন"</string>
+ <string name="vm_change_pin_progress_message" msgid="3977357361934350336">"অনুগ্রহ কৰি অপেক্ষা কৰক।"</string>
+ <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"নতুন পিনটো অতিকে চুটি।"</string>
+ <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"নতুন পিনটো অত্যধিক দীঘল।"</string>
+ <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"নতুন পিনটো খুবেই দুৰ্বল। এটা জটিল পাছৱৰ্ড সেইটো য\'ত ধাৰাবাহিক বৰ্ণ বা সংখ্যা নাথাকে বা য\'ত একেটা সংখ্যাকে বাৰে বাৰে ব্যৱহাৰ কৰা নহয়।"</string>
+ <string name="vm_change_pin_error_mismatch" msgid="2754685537970757317">"পুৰণি পিনটো মিলা নাই।"</string>
+ <string name="vm_change_pin_error_invalid" msgid="3972205462701668653">"নতুন পিনটোত অমান্য বৰ্ণ আছে।"</string>
+ <string name="vm_change_pin_error_system_error" msgid="6610603326230000207">"পিন সলনি কৰিব পৰা নাই"</string>
+ <string name="vvm_unsupported_message_format" msgid="11795090778411977">"বাৰ্তাৰ প্ৰকাৰ সমৰ্থিত নহয়, শুনিবলৈ <xliff:g id="NUMBER">%s</xliff:g>ত কল কৰক।"</string>
+ <string name="network_settings_title" msgid="514120489499925574">"ম’বাইল নেটৱৰ্ক"</string>
+ <string name="label_available" msgid="1181658289009300430">"উপলব্ধ নেটৱৰ্কসমূহ"</string>
+ <string name="load_networks_progress" msgid="5230707536168902952">"সন্ধান কৰি থকা হৈছে…"</string>
+ <string name="empty_networks_list" msgid="4249426905018815316">"কোনো নেটৱৰ্ক বিচাৰি পোৱা নগ\'ল।"</string>
+ <string name="network_query_error" msgid="8466081377231178298">"নেটৱৰ্ক বিচাৰি পোৱা নগ\'ল। আকৌ চেষ্টা কৰক।"</string>
+ <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g>ৰ লগত পঞ্জীয়ন কৰি থকা হৈছে…"</string>
+ <string name="not_allowed" msgid="5613353860205691579">"আপোনাৰ ছিম কাৰ্ডখনে এই নেটৱৰ্কটোৰ সৈতে সংযোগ কৰিবলৈ অনুমতি নিদিয়ে।"</string>
+ <string name="connect_later" msgid="2308119155752343975">"এই মুহূৰ্তত এই নেটৱৰ্কটোৰ সৈতে সংযোগ কৰিব নোৱাৰি। পিছত আকৌ চেষ্টা কৰক।"</string>
+ <string name="registration_done" msgid="495135664535876612">"নেটৱৰ্কৰ লগত পঞ্জীয়ন কৰা হ’ল।"</string>
+ <string name="already_auto" msgid="6067116884321285507">"স্বয়ংক্ৰিয় বাছনিত ইতিমধ্যে আছে।"</string>
+ <string name="select_automatically" msgid="1046727200631770962">"স্বয়ংক্ৰিয়ভাৱে নেটৱৰ্ক বাছনি কৰক"</string>
+ <string name="manual_mode_disallowed_summary" msgid="70662262085937277">"%1$sলৈ সংযোগ কৰাৰ সময়ত উপলব্ধ নহয়"</string>
+ <string name="network_select_title" msgid="7733107364757544558">"নেটৱৰ্ক"</string>
+ <string name="register_automatically" msgid="6017849844573519637">"স্বয়ংক্ৰিয় পঞ্জীয়ন…"</string>
+ <string name="preferred_network_mode_title" msgid="2336624679902659306">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ প্ৰকাৰ"</string>
+ <string name="preferred_network_mode_summary" msgid="1434820673166126609">"নেটৱৰ্ক অপাৰেটিং ম\'ডটো সলনি কৰক"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="4048082093347807230">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ প্ৰকাৰ"</string>
+ <string name="forbidden_network" msgid="4384929668343563440">"(নিষিদ্ধ)"</string>
+ <string name="choose_network_title" msgid="4023911977543009350">"নেটৱৰ্ক বাছনি কৰক"</string>
+ <string name="network_disconnected" msgid="2227251609006103194">"সংযোগ বিচ্ছিন্ন"</string>
+ <string name="network_connected" msgid="1288589103624338857">"সংযোগ কৰা হ’ল"</string>
+ <string name="network_connecting" msgid="4927203097283533783">"সংযোগ কৰি থকা হৈছে..."</string>
+ <string name="network_could_not_connect" msgid="8254009365807767243">"সংযোগ কৰিব পৰা নগ\'ল"</string>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="3628460389382468528">"GSM/WCDMA অগ্ৰাধিকাৰ দিয়া হৈছে"</item>
+ <item msgid="8442633436636425221">"GSM মাত্ৰ"</item>
+ <item msgid="2032314385791760810">"WCDMA মাত্ৰ"</item>
+ <item msgid="6334554401059422303">"GSM/WCDMA স্বয়ংক্ৰিয়"</item>
+ <item msgid="1462198368200398663">"CDMA/EvDo স্বয়ংক্ৰিয়"</item>
+ <item msgid="3611460019185359968">"EvDo নোহোৱাকৈ CDMA"</item>
+ <item msgid="545430093607698090">"EvDo মাত্ৰ"</item>
+ <item msgid="4286774020869405140">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="4006002265696868538">"CDMA + LTE/EvDo"</item>
+ <item msgid="8973936140318359205">"GSM/WCDMA/LTE"</item>
+ <item msgid="3471059554252610472">"গোলকীয়"</item>
+ <item msgid="2882615514545171802">"এলটিই"</item>
+ <item msgid="8076204422288290116">"LTE / WCDMA"</item>
+ <item msgid="3982984144824159726">"TDSCDMA মাত্ৰ"</item>
+ <item msgid="3686191974505922271">"TDSCDMA/WCDMA"</item>
+ <item msgid="7135671700201836475">"LTE/TDSCDMA"</item>
+ <item msgid="3736619459066330755">"TDSCDMA/GSM"</item>
+ <item msgid="4778666570887216861">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="2952322596201849456">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="115984258536697617">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="7957991936217192636">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="2828588917858484655">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="4989979948139945854">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: WCDMA অগ্ৰাধিকাৰ দিয়া হৈছে"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: GSM মাত্ৰ"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: WCDMA মাত্ৰ"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: CDMA মাত্ৰ"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: EvDo মাত্ৰ"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: গোলকীয়"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="633315028976225026">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="3722647806454528426">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="8021016193718678775">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="2405154895437348623">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="2104702896644235637">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="4893784445338396204">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1815169717046729757">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="2195358773359424099">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="1181424059695667803">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2526539326505354382">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8195248059196614939">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5596733053095592791">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্ক ম\'ড: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="call_category" msgid="5863978196309462052">"কলিং"</string>
+ <string name="network_operator_category" msgid="4830701959205735636">"নেটৱৰ্ক"</string>
+ <string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"পৰিৱৰ্ধিত 4G এলটিই ম’ড"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
+ <string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"ধ্বনি আৰু অইন যোগাযোগ উন্নত কৰিবলৈ এলটিই সেৱা ব্যৱহাৰ কৰক (অনুমোদিত)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"ভইচ কল আৰু অন্য যোগাযোগৰ সুবিধাসমূহ উন্নত কৰিবলৈ 4G সেৱাসমূহ ব্যৱহাৰ কৰক (চুপাৰিছ কৰা)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
+ <string name="data_enabled" msgid="5972538663568715366">"ডেটা সক্ষম কৰা হ’ল"</string>
+ <string name="data_enable_summary" msgid="2382798156640007971">"ডেটাৰ ব্যৱহাৰৰ অনুমতি দিয়ক"</string>
+ <string name="dialog_alert_title" msgid="6751344986194435476">"মন কৰিব"</string>
+ <string name="roaming" msgid="7894878421600247140">"ৰ\'মিং"</string>
+ <string name="roaming_enable" msgid="7331106985174381987">"ৰ’মিঙৰ সময়ত ডেটা সেৱাৰ সৈতে সংযোগ কৰক"</string>
+ <string name="roaming_disable" msgid="1843417228755568110">"ৰ’মিঙৰ সময়ত ডেটা সেৱাৰ সৈতে সংযোগ কৰক"</string>
+ <string name="roaming_reenable_message" msgid="6843814381576397939">"ডেটা ৰ\'মিং অফ হৈ আছে। অন কৰিবলৈ টিপক"</string>
+ <string name="roaming_notification_title" msgid="4749053220884743110">"ম’বাইল ডেটা বিচ্ছিন্ন হৈছে"</string>
+ <string name="roaming_warning" msgid="1603164667540144353">"আপুনি যথেষ্ট পৰিমাণৰ খৰচ বহন কৰিবলগীয়া হ’ব পাৰে।"</string>
+ <string name="roaming_check_price_warning" msgid="7497570906830902550">"দৰ-দাম জানিবলৈ আপোনাৰ বাহকৰ সৈতে যোগাযোগ কৰক।"</string>
+ <string name="roaming_alert_title" msgid="3654815360303826008">"ডেটা ৰ\'মিঙৰ অনুমতি দিবনে?"</string>
+ <string name="data_usage_title" msgid="4042209259808900283">"এপৰ ডেটা ব্যৱহাৰ"</string>
+ <string name="data_usage_template" msgid="8526428824844656364">"<xliff:g id="ID_1">%1$s</xliff:g> ব্যৱহৃত ম’বাইল ডেটা <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="advanced_options_title" msgid="8074895510265488035">"উচ্চখাপৰ ছেটিংসমূহ"</string>
+ <string name="carrier_settings_euicc" msgid="6714062862127226405">"বাহক"</string>
+ <string name="keywords_carrier_settings_euicc" msgid="6861505396475991277">"বাহক, ই-ছিম, ছিম, euicc, বাহক সলনি কৰক, বাহক যোগ কৰক"</string>
+ <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<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="4661165467914727157">"ম’বাইল ডেটা"</string>
+ <string name="mobile_data_settings_summary" msgid="5087255915840576895">"ম’বাইল নেটৱৰ্ক ব্যৱহাৰ কৰি থাকোঁতে ডেটা ব্যৱহাৰ কৰক"</string>
+ <string name="data_usage_disable_mobile" msgid="3577275288809667615">"ম’বাইল ডেটা অফ কৰিবনে?"</string>
+ <string name="sim_selection_required_pref" msgid="7049424902961844236">"বাছনি কৰা প্ৰয়োজন"</string>
+ <string name="sim_change_data_title" msgid="5332425991853799280">"ডেটা ছিম সলনি কৰিবনে?"</string>
+ <string name="sim_change_data_message" msgid="2163963581444907496">"<xliff:g id="OLD_SIM">%2$s</xliff:g>ৰ সলনি <xliff:g id="NEW_SIM">%1$s</xliff:g>ক ম’বাইল ডেটাৰ বাবে ব্যৱহাৰ কৰিব খোজে নেকি?"</string>
+ <string name="wifi_calling_settings_title" msgid="7741961465416430470">"ৱাই-ফাই কলিং"</string>
+ <string name="video_calling_settings_title" msgid="539714564273795574">"বাহকৰ ভিডিঅ\' কলিং"</string>
+ <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS বিকল্পসমূহ"</string>
+ <string name="cdma_options" msgid="4016822858172249884">"CDMA বিকল্পসমূহ"</string>
+ <string name="throttle_data_usage" msgid="3715677828160555808">"ডেটাৰ ব্যৱহাৰ"</string>
+ <string name="throttle_current_usage" msgid="8762280193043815361">"চলিত কালত ব্যৱহাৰ কৰা ডেটাৰ পৰিমাণ"</string>
+ <string name="throttle_time_frame" msgid="1915198770363734685">"ডেটাৰ ব্যৱহাৰ কাল"</string>
+ <string name="throttle_rate" msgid="4710388992676803508">"ডেটাৰ হাৰৰ নীতি"</string>
+ <string name="throttle_help" msgid="243651091785169900">"অধিক জানক"</string>
+ <string name="throttle_status_subtext" msgid="1657318943142085170">"<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="6029276011123694701">"<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="7492763592720107737">"<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="7732763021560399960">"চক্ৰৰ <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="2149102656120726855">"ডেটা ব্যৱহাৰৰ সীমা অতিক্ৰম কৰিলে ডেটাৰ হাৰ <xliff:g id="USED">%1$d</xliff:g> কেবি/ছে-লৈ কম কৰা হয়"</string>
+ <string name="throttle_help_subtext" msgid="5217706521499010816">"আপোনাৰ বাহকৰ ম’বাইল নেটৱৰ্ক ডেটা ব্যৱহাৰৰ নীতিৰ বিষয়ে অধিক তথ্য"</string>
+ <string name="cell_broadcast_sms" msgid="5584192824053625842">"চেল সম্প্ৰচাৰ এছএমএছ"</string>
+ <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"চেল সম্প্ৰচাৰ এছএমএছ"</string>
+ <string name="cell_bc_sms_enable" msgid="6441688565738921084">"চেল সম্প্ৰচাৰ এছএমএছ সক্ষম কৰা হ’ল"</string>
+ <string name="cell_bc_sms_disable" msgid="3398365088309408749">"চেল সম্প্ৰচাৰ এছএমএছ অক্ষম কৰা হ’ল"</string>
+ <string name="cb_sms_settings" msgid="651715019785107312">"চেল সম্প্ৰচাৰ এছএমএছ ছেটিংসমূহ"</string>
+ <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"জৰুৰীকালীন সম্প্ৰচাৰ"</string>
+ <string name="emergency_broadcast_enable" msgid="2645980025414010211">"জৰুৰীকালীন সম্প্ৰচাৰ সক্ষম কৰা হ’ল"</string>
+ <string name="emergency_broadcast_disable" msgid="3665199821267569426">"জৰুৰীকালীন সম্প্ৰচাৰ অক্ষম কৰা হ’ল"</string>
+ <string name="enable_disable_administrative" msgid="6501582322182059412">"প্ৰশাসকীয়"</string>
+ <string name="administrative_enable" msgid="1750086122962032235">"প্ৰশাসকীয় সক্ষম কৰা হ’ল"</string>
+ <string name="administrative_disable" msgid="8433273857248698539">"প্ৰশাসকীয় অক্ষম কৰা হ’ল"</string>
+ <string name="enable_disable_maintenance" msgid="1819693083025106678">"তত্বাৱধান"</string>
+ <string name="maintenance_enable" msgid="8566636458770971189">"তত্বাৱধান সক্ষম কৰা হ’ল"</string>
+ <string name="maintenance_disable" msgid="7340189100885066077">"তত্বাৱধান অক্ষম কৰা হ’ল"</string>
+ <string name="general_news_settings" msgid="4968779723948432978">"সাধাৰণ বাতৰি"</string>
+ <string name="bf_news_settings" msgid="3935593091894685267">"ব্যৱসায় আৰু অৰ্থনীতি সম্পৰ্কীয় বাতৰি"</string>
+ <string name="sports_news_settings" msgid="7649399631270052835">"ক্ৰীড়া বাতৰি"</string>
+ <string name="entertainment_news_settings" msgid="5051153952959405035">"মনোৰঞ্জন সম্পৰ্কীয় বাতৰি"</string>
+ <string name="enable_disable_local" msgid="7890281063123416120">"স্থানীয়"</string>
+ <string name="local_enable" msgid="6370463247609136359">"স্থানীয় বাতৰি সক্ষম কৰা হ’ল"</string>
+ <string name="local_disable" msgid="4405691986943795798">"স্থানীয় বাতৰি অক্ষম কৰা হ’ল"</string>
+ <string name="enable_disable_regional" msgid="4905652414535565872">"আঞ্চলিক"</string>
+ <string name="regional_enable" msgid="4434680415437834759">"আঞ্চলিক বাতৰি সক্ষম কৰা হ’ল"</string>
+ <string name="regional_disable" msgid="5359325527213850077">"আঞ্চলিক বাতৰি অক্ষম কৰা হ’ল"</string>
+ <string name="enable_disable_national" msgid="236278090206880734">"ৰাষ্ট্ৰীয়"</string>
+ <string name="national_enable" msgid="1172443648912246952">"ৰাষ্ট্ৰীয় বাতৰি সক্ষম কৰা হ’ল"</string>
+ <string name="national_disable" msgid="326018148178601166">"ৰাষ্ট্ৰীয় বাতৰি অক্ষম কৰা হ’ল"</string>
+ <string name="enable_disable_international" msgid="7535348799604565592">"আন্তঃৰাষ্ট্ৰীয়"</string>
+ <string name="international_enable" msgid="5855356769925044927">"আন্তঃৰাষ্ট্ৰীয় বাতৰি সক্ষম কৰা হ’ল"</string>
+ <string name="international_disable" msgid="2850648591041088931">"আন্তঃৰাষ্ট্ৰীয় বাতৰি অক্ষম কৰা হ’ল"</string>
+ <string name="list_language_title" msgid="2841683501919760043">"ভাষা"</string>
+ <string name="list_language_summary" msgid="8109546531071241601">"বাতৰিৰ ভাষা বাছক"</string>
+ <string-array name="list_language_entries">
+ <item msgid="6137851079727305485">"ইংৰাজী"</item>
+ <item msgid="1151988412809572526">"ফৰাচী"</item>
+ <item msgid="577840534704312665">"স্পেনিশ্ব"</item>
+ <item msgid="8385712091143148180">"জাপানী"</item>
+ <item msgid="1858401628368130638">"কোৰিয়ান"</item>
+ <item msgid="1933212028684529632">"চীনা"</item>
+ <item msgid="1908428006803639064">"হিব্ৰু"</item>
+ </string-array>
+ <string-array name="list_language_values">
+ <item msgid="1804908636436467150">"১"</item>
+ <item msgid="289708030346890334">"২"</item>
+ <item msgid="1121469729692402684">"৩"</item>
+ <item msgid="2614093115912897722">"৪"</item>
+ <item msgid="2411164639857960614">"৫"</item>
+ <item msgid="5884448729274543324">"৬"</item>
+ <item msgid="5511864807618312598">"৭"</item>
+ </string-array>
+ <string name="list_language_dtitle" msgid="5442908726538951934">"ভাষা"</string>
+ <string name="enable_disable_local_weather" msgid="986967454867219114">"স্থানীয় বতৰ"</string>
+ <string name="local_weather_enable" msgid="6199315114382448922">"স্থানীয় বতৰ সক্ষম কৰা হ’ল"</string>
+ <string name="local_weather_disable" msgid="2510158089142626480">"স্থানীয় বতৰ অক্ষম কৰা হ’ল"</string>
+ <string name="enable_disable_atr" msgid="8339572391278872343">"আঞ্চলিক যান-বাহন গতিবিধি সম্পৰ্কীয় প্ৰতিবেদন"</string>
+ <string name="atr_enable" msgid="5541757457789181799">"আঞ্চলিক যান-বাহনৰ গতিবিধি সম্পৰ্কীয় প্ৰতিবেদন সক্ষম কৰা হ’ল"</string>
+ <string name="atr_disable" msgid="7085558154727596455">"আঞ্চলিক যান-বাহনৰ গতিবিধি সম্পৰ্কীয় প্ৰতিবেদন অক্ষম কৰা হ’ল"</string>
+ <string name="enable_disable_lafs" msgid="668189073721277199">"স্থানীয় বিমান বন্দৰৰ উৰণসূচী"</string>
+ <string name="lafs_enable" msgid="2791978667205137052">"স্থানীয় বিমান বন্দৰৰ উৰণসূচী সক্ষম কৰা হ’ল"</string>
+ <string name="lafs_disable" msgid="2391212397725495350">"স্থানীয় বিমান বন্দৰৰ উৰণসূচী অক্ষম কৰা হ’ল"</string>
+ <string name="enable_disable_restaurants" msgid="6240381945336814024">"ৰেষ্টুৰা"</string>
+ <string name="restaurants_enable" msgid="5137657479469118847">"ৰেষ্টুৰাসমূহ সক্ষম কৰা হ’ল"</string>
+ <string name="restaurants_disable" msgid="3678480270938424092">"ৰেষ্টুৰাসমূহ অক্ষম কৰা হ’ল"</string>
+ <string name="enable_disable_lodgings" msgid="1822029172658551202">"থকাৰ ব্যৱস্থা"</string>
+ <string name="lodgings_enable" msgid="3230042508992850322">"থকাৰ ব্যৱস্থা সক্ষম কৰা হ’ল"</string>
+ <string name="lodgings_disable" msgid="3387879742320682391">"থকাৰ ব্যৱস্থা অক্ষম কৰা হ’ল"</string>
+ <string name="enable_disable_retail_directory" msgid="1357809784475660303">"খুচুৰা ডাইৰেক্টৰী"</string>
+ <string name="retail_directory_enable" msgid="3280626290436111496">"খুচুৰা ডাইৰেক্টৰী সক্ষম কৰা হ’ল"</string>
+ <string name="retail_directory_disable" msgid="6479739816662879027">"খুচুৰা ডাইৰেক্টৰী অক্ষম কৰা হ’ল"</string>
+ <string name="enable_disable_advertisements" msgid="5999495926176182128">"বিজ্ঞাপন"</string>
+ <string name="advertisements_enable" msgid="2050305021264683786">"বিজ্ঞাপন সক্ষম কৰা হ’ল"</string>
+ <string name="advertisements_disable" msgid="8350985908788707935">"বিজ্ঞাপন অক্ষম কৰা হ’ল"</string>
+ <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"ষ্টক ক\'ট"</string>
+ <string name="stock_quotes_enable" msgid="4384802470887170543">"ষ্টক ক\'ট সক্ষম কৰা হ’ল"</string>
+ <string name="stock_quotes_disable" msgid="4781450084565594998">"ষ্টক ক\'ট অক্ষম কৰা হ’ল"</string>
+ <string name="enable_disable_eo" msgid="4863043263443942494">"সংস্থাপনৰ সুযোগ"</string>
+ <string name="eo_enable" msgid="8623559062015685813">"সংস্থাপনৰ সুযোগ সক্ষম কৰা হ’ল"</string>
+ <string name="eo_disable" msgid="3863812478090907609">"সংস্থাপনৰ সুযোগ অক্ষম কৰা হ’ল"</string>
+ <string name="enable_disable_mhh" msgid="908214593528968522">"চিকিৎসা, স্বাস্থ্য আৰু হস্পিটেল"</string>
+ <string name="mhh_enable" msgid="5544500632306446815">"চিকিৎসা, স্বাস্থ্য আৰু হস্পিটেল সক্ষম কৰা হ’ল"</string>
+ <string name="mhh_disable" msgid="8998210550117117437">"চিকিৎসা, স্বাস্থ্য আৰু হস্পিটেল অক্ষম কৰা হ’ল"</string>
+ <string name="enable_disable_technology_news" msgid="3517184627114999149">"প্ৰযুক্তবিদ্যা সম্পৰ্কীয় বাতৰি"</string>
+ <string name="technology_news_enable" msgid="7995209394210455181">"প্ৰযুক্তবিদ্যা সম্পৰ্কীয় বাতৰি সক্ষম কৰা হ’ল"</string>
+ <string name="technology_news_disable" msgid="5483490380561851946">"প্ৰযুক্তবিদ্যা সম্পৰ্কীয় বাতৰি অক্ষম কৰা হ’ল"</string>
+ <string name="enable_disable_multi_category" msgid="626771003122899280">"বহু-বৰ্গীয়"</string>
+ <string name="multi_category_enable" msgid="1179299804641721768">"বহু-বৰ্গীয় সক্ষম কৰা হ’ল"</string>
+ <string name="multi_category_disable" msgid="880104702904139505">"বহু-বৰ্গীয় অক্ষম কৰা হ’ল"</string>
+ <string name="network_lte" msgid="7702681952521375754">"LTE (অনুমোদিত)"</string>
+ <string name="network_4G" msgid="2723512640529983138">"4G (অনুমোদিত)"</string>
+ <string name="network_global" msgid="1323190488685355309">"গোলকীয়"</string>
+ <string name="cdma_system_select_title" msgid="5757657769327732833">"ছিষ্টেম বাছনি"</string>
+ <string name="cdma_system_select_summary" msgid="60460043745797517">"CDMA ৰ\'মিং ম\'ড সলনি কৰক"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"ছিষ্টেম বাছনি"</string>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="176474317493999285">"হ\'ম মাত্ৰ"</item>
+ <item msgid="1205664026446156265">"স্বয়ংক্ৰিয়"</item>
+ </string-array>
+ <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA গ্ৰাহকভুক্তি"</string>
+ <string name="cdma_subscription_summary" msgid="2530890766115781140">"RUIM/SIM আৰু NVৰ মাজত সলনি কৰক"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"গ্ৰাহকভুক্তি"</string>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="2258014151300708431">"RUIM/SIM"</item>
+ <item msgid="5127722015571873880">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="7494167883478914080">"০"</item>
+ <item msgid="6043847456049107742">"১"</item>
+ </string-array>
+ <string name="cdma_activate_device" msgid="3793805892364814518">"ডিভাইচ সক্ৰিয় কৰক"</string>
+ <string name="cdma_lte_data_service" msgid="4255018217292548962">"ডেটা সেৱা ছেট আপ কৰক"</string>
+ <string name="carrier_settings_title" msgid="9028166176523012300">"বাহকৰ ছেটিংসমূহ"</string>
+ <string name="fdn" msgid="7878832555095183202">"ফিক্সড্ ডায়েলিং নম্বৰসমূহ"</string>
+ <string name="fdn_with_label" msgid="187084204115493366">"ফিক্সড্ ডায়েলিং নম্বৰসমূহ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="manage_fdn_list" msgid="8777755791892122369">"FDN তালিকা"</string>
+ <string name="fdn_list_with_label" msgid="7437232552210469217">"FDN তালিকা (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="fdn_activation" msgid="2156479741307463576">"FDN সক্ৰিয়কৰণ"</string>
+ <string name="fdn_enabled" msgid="5238109009915521240">"ফিক্সড্ ডায়েলিং নম্বৰসমূহ সক্ষম কৰা হ’ল"</string>
+ <string name="fdn_disabled" msgid="4700049736675368279">"ফিক্সড্ ডায়েলিং নম্বৰসমূহ অক্ষম কৰা হ’ল"</string>
+ <string name="enable_fdn" msgid="3740191529180493851">"FDN সক্ষম কৰক"</string>
+ <string name="disable_fdn" msgid="7944020890722540616">"FDN অক্ষম কৰক"</string>
+ <string name="change_pin2" msgid="2153563695382176676">"PIN2 সলনি কৰক"</string>
+ <string name="enable_fdn_ok" msgid="7215588870329688132">"FDN অক্ষম কৰক"</string>
+ <string name="disable_fdn_ok" msgid="5727046928930740173">"FDN সক্ষম কৰক"</string>
+ <string name="sum_fdn" msgid="1959399454900272878">"ফিক্সড্ ডায়েলিং নম্বৰসমূহ পৰিচালনা কৰক"</string>
+ <string name="sum_fdn_change_pin" msgid="6666549734792827932">"FDN প্ৰৱেশৰ বাবে পিন সলনি কৰক"</string>
+ <string name="sum_fdn_manage_list" msgid="8431088265332628316">"ফ\'ন নম্বৰৰ তালিকা পৰিচালনা কৰক"</string>
+ <string name="voice_privacy" msgid="3776841382844614716">"কণ্ঠধ্বনি গোপনীয়তা"</string>
+ <string name="voice_privacy_summary" msgid="3159383389833516214">"বৰ্ধিত গোপনীয়তা ম\'ড সক্ষম কৰক"</string>
+ <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY ম\'ড"</string>
+ <string name="tty_mode_option_summary" msgid="1073835131534808732">"TTY ম\'ড ছেট কৰক"</string>
+ <string name="auto_retry_mode_title" msgid="4073265511427813322">"স্বয়ংক্ৰিয় পুনৰ প্ৰয়াস"</string>
+ <string name="auto_retry_mode_summary" msgid="4973886004067532288">"স্বয়ংক্ৰিয় পুনৰ প্ৰয়াস সক্ষম কৰক"</string>
+ <string name="tty_mode_not_allowed_video_call" msgid="3795846787901909176">"ভিডিঅ\' কল চলি থাকোঁতে TTY ম\'ড সলনি কৰিবলৈ অনুমতি দিয়া নহয়"</string>
+ <string name="menu_add" msgid="1882023737425114762">"সম্পর্ক যোগ কৰক"</string>
+ <string name="menu_edit" msgid="7143003705504672374">"সম্পৰ্ক সম্পাদনা কৰক"</string>
+ <string name="menu_delete" msgid="3977150783449642851">"সম্পৰ্ক মচক"</string>
+ <string name="menu_dial" msgid="3223106222819685808">"সম্পৰ্ক ডায়েল কৰক"</string>
+ <string name="get_pin2" msgid="8204677063922225311">"PIN2 টাইপ কৰক"</string>
+ <string name="name" msgid="7329028332786872378">"নাম"</string>
+ <string name="number" msgid="7905950798349903858">"সংখ্যা"</string>
+ <string name="save" msgid="4094274636321939086">"ছেভ কৰক"</string>
+ <string name="add_fdn_contact" msgid="2481915899633353976">"ফিক্সড্ ডায়েলিং নম্বৰ যোগ কৰক"</string>
+ <string name="adding_fdn_contact" msgid="7627379633721940991">"ফিক্সড্ ডায়েলিং নম্বৰ যোগ কৰি থকা হৈছে…"</string>
+ <string name="fdn_contact_added" msgid="7458335758501736665">"ফিক্সড্ ডায়েলিং নম্বৰ যোগ কৰা হ’ল।"</string>
+ <string name="edit_fdn_contact" msgid="7976936035587081480">"ফিক্সড্ ডায়েলিং নম্বৰ সম্পাদনা কৰক"</string>
+ <string name="updating_fdn_contact" msgid="8370929876849803600">"ফিক্সড্ ডায়েলিং নম্বৰ আপডে’ট কৰি থকা হৈছে…"</string>
+ <string name="fdn_contact_updated" msgid="5497828782609005017">"ফিক্সড্ ডায়েলিং নম্বৰ আপডে’ট কৰা হ’ল।"</string>
+ <string name="delete_fdn_contact" msgid="6668958073074151717">"ফিক্সড্ ডায়েলিং নম্বৰ মচক"</string>
+ <string name="deleting_fdn_contact" msgid="5669163206349319969">"ফিক্সড্ ডায়েলিং নম্বৰ মচি থকা হৈছে…"</string>
+ <string name="fdn_contact_deleted" msgid="7154162327112259569">"ফিক্সড্ ডায়েলিং নম্বৰ মচা হ’ল।"</string>
+ <string name="pin2_invalid" msgid="5470854099230755944">"আপুনি ভুল পিন টাইপ কৰা কাৰণে FDN আপডে’ট কৰা নহ\'ল।"</string>
+ <string name="fdn_invalid_number" msgid="2062898833049589309">"FDN আপডে’ট কৰা নহ\'ল কাৰণ নম্বৰটো ২০টা অংকতকৈ বেছি হৈছে।"</string>
+ <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN আপডে’ট কৰা নহ\'ল। PIN2টো ভুল আছিল বা ফ\'নটো নম্বৰটো নাকচ কৰা হৈছে।"</string>
+ <string name="fdn_failed" msgid="540018079008319747">"FDN অপাৰেশ্বন বিফল হ’ল।"</string>
+ <string name="simContacts_emptyLoading" msgid="2203331234764498011">"ছিম কাৰ্ডৰ পৰা পঢ়ি থকা হৈছে…"</string>
+ <string name="simContacts_empty" msgid="5270660846489561932">"আপোনাৰ ছিম কাৰ্ডত কোনো সম্পৰ্কসূচী নাই।"</string>
+ <string name="simContacts_title" msgid="1861472842524839921">"আমদানি কৰিবলৈ সম্পৰ্ক বাছনি কৰক"</string>
+ <string name="simContacts_airplaneMode" msgid="5254946758982621072">"ছিম কাৰ্ডৰ পৰা সম্পৰ্কসূচী আমদানি কৰিবলৈ এয়াৰপ্লেইন ম\'ড অফ কৰক।"</string>
+ <string name="enable_pin" msgid="5422767284133234860">"SIM PIN সক্ষম/অক্ষম কৰক"</string>
+ <string name="change_pin" msgid="9174186126330785343">"ছিমৰ পিন সলনি কৰক"</string>
+ <string name="enter_pin_text" msgid="8532615714751931951">"SIM PIN:"</string>
+ <string name="oldPinLabel" msgid="5287773661246368314">"পুৰণি পিন"</string>
+ <string name="newPinLabel" msgid="207488227285336897">"নতুন পিন"</string>
+ <string name="confirmPinLabel" msgid="257597715098070206">"নতুন পিন নিশ্চিত কৰক"</string>
+ <string name="badPin" msgid="8955102849303984935">"আপুনি লিখা পুৰণি পিনটো শুদ্ধ নহয়। আকৌ চেষ্টা কৰক।"</string>
+ <string name="mismatchPin" msgid="5923253370683071889">"আপুনি লিখা পিনবিলাক মিলা নাই। আকৌ চেষ্টা কৰক।"</string>
+ <string name="invalidPin" msgid="5981171102258684792">"৪টাৰ পৰা ৮টা সংখ্যাযুক্ত এটা পিন লিখক।"</string>
+ <string name="disable_sim_pin" msgid="3419351358300716472">"ছিম পিন মচক"</string>
+ <string name="enable_sim_pin" msgid="4845145659651484248">"নতুন ছিম পিন ছেট কৰক"</string>
+ <string name="enable_in_progress" msgid="3417917024688497010">"পিন ছেট কৰি থকা হৈছে…"</string>
+ <string name="enable_pin_ok" msgid="2918545971413270063">"পিন ছেট কৰা হ’ল"</string>
+ <string name="disable_pin_ok" msgid="2109571368635883688">"পিন মচা হ’ল"</string>
+ <string name="pin_failed" msgid="5644377896213584760">"ভুল পিন"</string>
+ <string name="pin_changed" msgid="4455736268023261662">"পিন আপডে’ট কৰা হ’ল"</string>
+ <string name="puk_requested" msgid="5921393215789090200">"ভুল পাছৱৰ্ড। এতিয়া পিন অৱৰোধ কৰা হৈছে। PUK অনুৰোধ কৰা হৈছে।"</string>
+ <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+ <string name="oldPin2Label" msgid="8559146795026261502">"পুৰণি PIN2"</string>
+ <string name="newPin2Label" msgid="4573956902204349054">"নতুন PIN2"</string>
+ <string name="confirmPin2Label" msgid="8100319484454787708">"নতুন PIN2 নিশ্চিত কৰক"</string>
+ <string name="badPuk2" msgid="7910064009531541708">"PUK2টো ভুল। আকৌ চেষ্টা কৰক।"</string>
+ <string name="badPin2" msgid="6646896629970023109">"পুৰণি PIN2টো ভুল। আকৌ চেষ্টা কৰক।"</string>
+ <string name="mismatchPin2" msgid="4177967478551851117">"PIN2বিলাক মিলা নাই। আকৌ চেষ্টা কৰক।"</string>
+ <string name="invalidPin2" msgid="1757045131429105595">"৪ৰ পৰা ৮টা সংখ্যাৰ এটা PIN2 নম্বৰ লিখক।"</string>
+ <string name="invalidPuk2" msgid="7059081153334815973">"৮টা সংখ্যাৰ এটা PIN2 নম্বৰ লিখক।"</string>
+ <string name="pin2_changed" msgid="3724522579945610956">"PIN2 আপডে’ট কৰা হ’ল"</string>
+ <string name="label_puk2_code" msgid="4688069961795341948">"PUK2 ক\'ড দিয়ক"</string>
+ <string name="fdn_enable_puk2_requested" msgid="4991074891459554705">"ভুল পাছৱৰ্ড। এতিয়া PIN2 অৱৰোধ কৰা হ’ল আকৌ চেষ্টা কৰিবলৈ PIN 2 সলনি কৰক।"</string>
+ <string name="puk2_requested" msgid="5831015200030161434">"ভুল পাছৱৰ্ড। এতিয়া ছিম লক কৰা হৈছে। PUK2 লিখক।"</string>
+ <string name="puk2_blocked" msgid="3150263853077280049">"PUK2 স্থায়ীভাৱে অৱৰোধ কৰা হৈছে।"</string>
+ <string name="pin2_attempts" msgid="720736232885011507">\n"আপোনাৰ হাতত <xliff:g id="NUMBER">%d</xliff:g>টা প্ৰয়াস বাকী আছে।"</string>
+ <string name="pin2_unblocked" msgid="7791600368153469078">"PIN2 আৰু অৱৰোধ হৈ থকা নাই"</string>
+ <string name="pin2_error_exception" msgid="1088689322248996699">"নেটৱৰ্ক বা ছিম কাৰ্ডৰ আসোঁৱাহ।"</string>
+ <string name="doneButton" msgid="2859593360997984240">"হ’ল"</string>
+ <string name="voicemail_settings_number_label" msgid="8524164258691887790">"ভইচমেইলৰ নম্বৰ"</string>
+ <string name="card_title_dialing" msgid="5769417478498348054">"ডায়েল কৰা হৈছে"</string>
+ <string name="card_title_redialing" msgid="8253487008234167266">"পুনৰ ডায়েল কৰা হৈছে"</string>
+ <string name="card_title_conf_call" msgid="1162980346189744501">"কনফাৰেঞ্চ কল"</string>
+ <string name="card_title_incoming_call" msgid="7364539451234646909">"অন্তৰ্গামী কল"</string>
+ <string name="card_title_call_ended" msgid="5544730338889702298">"কল শেষ হ’ল"</string>
+ <string name="card_title_on_hold" msgid="821463117892339942">"হ\'ল্ডত আছে"</string>
+ <string name="card_title_hanging_up" msgid="3999101620995182450">"কল সমাপ্ত কৰি থকা হৈছে"</string>
+ <string name="card_title_in_call" msgid="6346543933068225205">"কল চলি আছে"</string>
+ <string name="notification_voicemail_title" msgid="8933468752045550523">"নতুন ভইচমেইল"</string>
+ <string name="notification_voicemail_title_count" msgid="4366360747660929916">"(<xliff:g id="COUNT">%d</xliff:g>)টা নতুন ভইচমেইল"</string>
+ <string name="notification_voicemail_text_format" msgid="4447323569453981685">"ডায়েল <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+ <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"ভইচমেইলৰ নম্বৰ অজ্ঞাত"</string>
+ <string name="notification_network_selection_title" msgid="4224455487793492772">"কোনো সেৱা নাই"</string>
+ <string name="notification_network_selection_text" msgid="7550380440576731104">"বাছনি কৰা (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) নেটৱৰ্কটো উপলব্ধ নহয়"</string>
+ <string name="incall_error_power_off" product="watch" msgid="2007450435656211658">"কল কৰিবৰ কাৰণে ম’বাইল নেটৱৰ্ক অন কৰক, এয়াৰপ্লেইন ম\'ড অফ কৰক বা বেটাৰি সঞ্চয়কাৰী ম\'ড অফ কৰক।"</string>
+ <string name="incall_error_power_off" product="default" msgid="2947938060513306698">"কল কৰিবৰ কাৰণে এয়াৰপ্লেইন ম\'ড অফ কৰক।"</string>
+ <string name="incall_error_power_off_wfc" msgid="8711428920632416575">"কল কৰিবৰ কাৰণে এয়াৰপ্লেইন ম\'ড অফ কৰক বা কোনো বেতাঁৰ নেটৱৰ্কৰ সৈতে সংযোগ কৰক।"</string>
+ <string name="incall_error_ecm_emergency_only" msgid="738708660612388692">"সাধাৰণ কল কৰিবৰ কাৰণে জৰুৰীকালীন কলবেক ম\'ডৰ পৰা বাহিৰ হওক।"</string>
+ <string name="incall_error_emergency_only" msgid="4678640422710818317">"নেটৱৰ্কত পঞ্জীকৃত নহয়।"</string>
+ <string name="incall_error_out_of_service" msgid="8587993036435080418">"ম’বাইল নেটৱৰ্ক উপলব্ধ নহয়।"</string>
+ <string name="incall_error_out_of_service_wfc" msgid="8741629779555132471">"ম’বাইল নেটৱৰ্ক উপলব্ধ নহয়। কল কৰিবৰ কাৰণে কোনো বেতাঁৰ নেটৱৰ্কৰ সৈতে সংযোগ কৰক।"</string>
+ <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"কল কৰিবৰ কাৰণে এটা মান্য নম্বৰ দিয়ক।"</string>
+ <string name="incall_error_call_failed" msgid="5891978320269774095">"কল বিফল হৈছে"</string>
+ <string name="incall_error_cannot_add_call" msgid="8878159278947023326">"এই মুহূৰ্তত কল যোগ কৰিব নোৱাৰি। আপুনি এটা বাৰ্তা পঠাই যোগাযোগ কৰিবলৈ চেষ্টা কৰি চাব পাৰে।"</string>
+ <string name="incall_error_supp_service_unknown" msgid="655570339115407698">"সেৱা ব্যৱহাৰ কৰিব নোৱাৰি"</string>
+ <string name="incall_error_supp_service_switch" msgid="5237002176899962862">"কল সলনি কৰিব নোৱাৰি।"</string>
+ <string name="incall_error_supp_service_resume" msgid="7147983409782027448">"কল অব্যাহত ৰাখিব নোৱাৰি।"</string>
+ <string name="incall_error_supp_service_separate" msgid="7224393405134545246">"কল পৃথক কৰিব নোৱাৰি।"</string>
+ <string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"স্থানান্তৰ কৰিব নোৱাৰি।"</string>
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"কল একেলগ কৰিব পৰা নগ\'ল"</string>
+ <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"কল প্ৰত্যাখান কৰিব নোৱাৰি।"</string>
+ <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"কল(সমূহ) কাটিব নোৱাৰি।"</string>
+ <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"কলসমূহ হ\'ল্ডত ৰাখিব নোৱাৰি।"</string>
+ <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"কল কৰিবলৈ কোনো বেতাঁৰ নেটৱৰ্কৰ সৈতে সংযোগ কৰক।"</string>
+ <string name="incall_error_promote_wfc" msgid="106510757624022064">"কল কৰিবৰ কাৰণে ৱাই-ফাই কলিং সুবিধা সক্ষম কৰক।"</string>
+ <string name="emergency_information_hint" msgid="399011533038204351">"জৰুৰীকালীন তথ্য"</string>
+ <string name="emergency_information_owner_hint" msgid="688331472291637149">"গৰাকী"</string>
+ <string name="emergency_information_confirm_hint" msgid="4039012670779853030">"তথ্য চাবলৈ পুনৰ টিপক"</string>
+ <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"জৰুৰীকালীন কল"</string>
+ <string name="emergency_dialpad_title" msgid="6052294225467269233">"জৰুৰীকালীন কল মাত্ৰ"</string>
+ <string name="single_emergency_number_title" msgid="4959203129714396515">"জৰুৰীকালীন নম্বৰ"</string>
+ <string name="numerous_emergency_numbers_title" msgid="754158099451343898">"জৰুৰীকালীন নম্বৰসমূহ"</string>
+ <string name="emergency_call_shortcut_hint" msgid="6506167229097004348">"<xliff:g id="EMERGENCY_NUMBER">%s</xliff:g>ত কল কৰিবলৈ আকৌ টিপক"</string>
+ <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ৰেডিঅ\' অন কৰা হৈছে…"</string>
+ <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"কোনো সেৱা নাই। পুনৰ চেষ্টা কৰক…"</string>
+ <string name="radio_off_during_emergency_call" msgid="2535800034010306830">"জৰুৰীকালীন কল চলি থাকোঁতে এয়াৰপ্লেইন ম\'ডত প্ৰৱেশ কৰিব নোৱাৰি।"</string>
+ <string name="dial_emergency_error" msgid="1509085166367420355">"কল কৰিব নোৱাৰি। <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> এইটো জৰুৰীকালীন নম্বৰ নহয়।"</string>
+ <string name="dial_emergency_empty_error" msgid="9130194953830414638">"কল কৰিব নোৱাৰি। জৰুৰী নম্বৰ এটা ডায়েল কৰক।"</string>
+ <string name="dial_emergency_calling_not_available" msgid="5675557523782491826">"জৰুৰীকালীন কলিঙৰ সুবিধা উপলব্ধ নহয়"</string>
+ <string name="police_type_description" msgid="5324410799919829693">"পুলিচ"</string>
+ <string name="ambulance_type_description" msgid="4114815025408089866">"এম্বুলেঞ্চ"</string>
+ <string name="fire_type_description" msgid="7145996705197064710">"জুই"</string>
+ <string name="description_concat_format" msgid="7141070875487870177">"%1$s, %2$s"</string>
+ <string name="dialerKeyboardHintText" msgid="9192914825413747792">"ডায়েল কৰিবলৈ কীব\'ৰ্ড ব্যৱহাৰ কৰক"</string>
+ <string name="onscreenHoldText" msgid="2285258239691145872">"হ\'ল্ড কৰক"</string>
+ <string name="onscreenEndCallText" msgid="4403855834875398585">"সমাপ্ত"</string>
+ <string name="onscreenShowDialpadText" msgid="8561805492659639893">"ডায়েলপেড"</string>
+ <string name="onscreenMuteText" msgid="5011369181754261374">"মিউট"</string>
+ <string name="onscreenAddCallText" msgid="5140385634712287403">"কল যোগ কৰক"</string>
+ <string name="onscreenMergeCallsText" msgid="6640195098064538950">"কল একেলগ কৰক"</string>
+ <string name="onscreenSwapCallsText" msgid="1602990689244030047">"বিনিময় কৰক"</string>
+ <string name="onscreenManageCallsText" msgid="5473231160123254154">"কল পৰিচালনা কৰক"</string>
+ <string name="onscreenManageConferenceText" msgid="6485935856534311346">"কনফাৰেন্স পৰিচালনা কৰক"</string>
+ <string name="onscreenAudioText" msgid="1710087112800041743">"অডিঅ’"</string>
+ <string name="onscreenVideoCallText" msgid="4800924186056115442">"ভিডিঅ\' কল"</string>
+ <string name="importSimEntry" msgid="6614358325359736031">"আমদানি কৰক"</string>
+ <string name="importAllSimEntries" msgid="1503181169636198673">"সকলো আমদানি কৰক"</string>
+ <string name="importingSimContacts" msgid="7374056215462575769">"ছিম সম্পৰ্কসূচীৰ পৰা আমদানি কৰি থকা হৈছে"</string>
+ <string name="importToFDNfromContacts" msgid="2130620207013368580">"সম্পৰ্কসূচীৰ পৰা আমদানি কৰক"</string>
+ <string name="singleContactImportedMsg" msgid="6868483416182599206">"আমদানি কৰা সম্পৰ্কসূচী"</string>
+ <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"সম্পৰ্ক আমদানি কৰিব পৰা নগ\'ল"</string>
+ <string name="hac_mode_title" msgid="8740268574688743289">"শ্ৰৱণ যন্ত্ৰ"</string>
+ <string name="hac_mode_summary" msgid="6833851160514929341">"শ্ৰৱণ যন্ত্ৰ খাপ খুউৱাৰ সুবিধা অন কৰক"</string>
+ <string name="rtt_mode_title" msgid="6954652435543570121">"প্ৰকৃত সময়ত বাৰ্তা (RTT) কল"</string>
+ <string name="rtt_mode_summary" msgid="5146344277246544580">"ভইচ কল চলি থকাৰ সময়ত বাৰ্তা পঠিওৱাৰ অনুমতি দিয়ক"</string>
+ <string name="rtt_mode_more_information" msgid="6080420780730383030">"RTTয়ে বধিৰ বা শ্ৰৱণশক্তি কম থকা, বাকশক্তি সম্পৰ্কীয় দিব্য়াংগ বা কল কৰোঁতে কণ্ঠস্বৰতকৈ অধিক সুবিধাৰ প্ৰয়োজন হোৱা ব্য়ক্তিসকলক সহায় কৰে।<br> <a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>>অধিক জানক</a>\n <br><br> - RTT কলসমূহক বাৰ্তাৰ ট্ৰান্সক্ৰিপ্ট হিচাপে ছেভ কৰা হয়\n <br> - RTT ভিডিঅ\' কলৰ বাবে উপলব্ধ নহয়"</string>
+ <string-array name="tty_mode_entries">
+ <item msgid="512950011423868021">"TTY বন্ধ হৈ আছে"</item>
+ <item msgid="3971695875449640648">"TTY সম্পূৰ্ণ"</item>
+ <item msgid="1937509904407445684">"TTY HCO"</item>
+ <item msgid="5644925873488772224">"TTY VCO"</item>
+ </string-array>
+ <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF ট\'ন"</string>
+ <string name="dtmf_tones_summary" msgid="3351820372864020331">"DTMF ট\'নৰ দৈৰ্ঘ্য নিৰ্ধাৰিত কৰক"</string>
+ <string-array name="dtmf_tone_entries">
+ <item msgid="899650777817315681">"সাধাৰণ"</item>
+ <item msgid="2883365539347850535">"দীঘল"</item>
+ </string-array>
+ <string name="network_info_message" msgid="7738596060242881930">"নেটৱৰ্ক বাৰ্তা"</string>
+ <string name="network_error_message" msgid="3394780436230411413">"আসোঁৱাহ বাৰ্তা"</string>
+ <string name="ota_title_activate" msgid="8616918561356194398">"আপোনাৰ ফ\'নটো সক্ৰিয় কৰক"</string>
+ <string name="ota_touch_activate" msgid="6553212803262586244">"আপোনাৰ ফ\'নৰ সেৱা সক্ৰিয় কৰিবলৈ এটা বিশেষ কল কৰা প্ৰয়োজন। \n\nআপোনাৰ ফ\'নটো সক্ৰিয় কৰিবলৈ \"সক্ৰিয় কৰক\"ত টিপাৰ পিছত নিৰ্দেশনাসমূহ শুনক।"</string>
+ <string name="ota_hfa_activation_title" msgid="2234246934160473981">"সক্ৰিয় কৰি থকা হৈছে..."</string>
+ <string name="ota_hfa_activation_dialog_message" msgid="8092479227918463415">"ফ\'নটোৱে আপোনাৰ ম’বাইল ডেটা সেৱা সক্ৰিয় কৰি আছে।\n\nএই কামটো সম্পূৰ্ণ হ\'বলৈ ৫ মিনিট পৰ্যন্ত সময় লাগিব পাৰে।"</string>
+ <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"সক্ৰিয়কৰণ এৰি যায় নেকি?"</string>
+ <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"যদিহে আপুনি সক্ৰিয়কৰণ এৰি থৈ যায়, তেন্তে আপুনি কল কৰিব বা ম’বাইল ডেটা নেটৱৰ্কৰ সৈতে সংযোগ কৰিব নোৱাৰিব (যদিও আপুনি ৱাই-ফাই নেটৱৰ্কৰ লগত সংযোগ কৰিব পাৰিব)। আপুনি ফ\'নটো সক্ৰিয় নকৰালৈকে প্ৰতিবাৰে ইয়াক অন কৰোঁতে সক্ৰিয় কৰিবলৈ আপোনাক কোৱা হ\'ব।"</string>
+ <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"এৰি যাওক"</string>
+ <string name="ota_activate" msgid="1368528132525626264">"সক্ৰিয় কৰক"</string>
+ <string name="ota_title_activate_success" msgid="6570240212263372046">"ফ\'ন সক্ৰিয় কৰা হ’ল।"</string>
+ <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"সক্ৰিয় কৰোঁতে আসোঁৱাহৰ সৃষ্টি হৈছে"</string>
+ <string name="ota_listen" msgid="162923839877584937">"যেতিয়ালৈ সক্ৰিয়কৰণ সম্পূৰ্ণ হ’ল বুলি কোৱা নুশুনে তেতিয়ালৈকে কথিত নিৰ্দেশনাসমূহ পালন কৰক।"</string>
+ <string name="ota_speaker" msgid="6904589278542719647">"স্পীকাৰ"</string>
+ <string name="ota_progress" msgid="460876637828044519">"আপোনাৰ ফ\'নটো প্ৰ\'গ্ৰাম কৰিব পৰা নগ\'ল…"</string>
+ <string name="ota_failure" msgid="7713756181204620397">"আপোনাৰ ফ\'নটো প্ৰ\'গ্ৰাম কৰিব পৰা নগ\'ল"</string>
+ <string name="ota_successful" msgid="1880780692887077407">"আপোনাৰ ফ\'নটো এতিয়া সক্ৰিয় কৰা হ’ল। সেৱা আৰম্ভ হ\'বলৈ ১৫ মিনিট পৰ্যন্ত সময় লাগিব পাৰে।"</string>
+ <string name="ota_unsuccessful" msgid="8072141612635635357">"আপোনাৰ ফ\'নটো সক্ৰিয় কৰিব পৰা নগ\'ল। \nআপুনি হয়তো ভাল ছিগনেল পাব পৰা কোনো ঠাই বিচাৰিবলগীয়া হ\'ব পাৰে (খিৰিকিৰ কাষত বা ঘৰৰ বাহিৰত)। \n\nআকৌ চেষ্টা কৰক বা অধিক বিকল্পৰ বিষয়ে জানিবলৈ গ্ৰাহক সেৱা কেন্দ্ৰৰ সৈতে যোগাযোগ কৰক।"</string>
+ <string name="ota_spc_failure" msgid="3909983542575030796">"অত্যধিক SPC বিফলতা"</string>
+ <string name="ota_call_end" msgid="4537279738134612388">"উভতি যাওক"</string>
+ <string name="ota_try_again" msgid="7685477206465902290">"আকৌ চেষ্টা কৰক"</string>
+ <string name="ota_next" msgid="3904945374358235910">"পৰৱৰ্তী"</string>
+ <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+ <string name="phone_entered_ecm_text" msgid="6266424252578731203">"জৰুৰীকালীন কলবেক ম\'ডত প্ৰৱেশ কৰা হ’ল"</string>
+ <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"জৰুৰীকালীন কলবেক ম\'ড"</string>
+ <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"ডেটা সংযোগ অক্ষম কৰা হ’ল"</string>
+ <string name="phone_in_ecm_notification_complete_time" msgid="7730376844178948351">"<xliff:g id="COMPLETETIME">%s</xliff:g>লৈকে কোনো ডেটা সংযোগ নাথাকে"</string>
+ <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="7179911675595441201">
+ <item quantity="one"><xliff:g id="COUNT_1">%s</xliff:g> মিনিটৰ বাবে ফ\'নটো জৰুৰীকালীন কলবেক ম\'ডত থাকিব। এই ম\'ডত থাকোঁতে ডেটা সংযোগ দৰকাৰ হোৱা কোনো এপ্ ব্যৱহাৰ কৰিব নোৱাৰি। আপুনি এতিয়া বাহিৰ হ\'ব খোজে নেকি?</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%s</xliff:g> মিনিটৰ বাবে ফ\'নটো জৰুৰীকালীন কলবেক ম\'ডত থাকিব। এই ম\'ডত থাকোঁতে ডেটা সংযোগ দৰকাৰ হোৱা কোনো এপ্ ব্যৱহাৰ কৰিব নোৱাৰি। আপুনি এতিয়া বাহিৰ হ\'ব খোজে নেকি?</item>
+ </plurals>
+ <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="8042973425225093895">
+ <item quantity="one">বাছনি কৰা কাৰ্যকলাপটো জৰুৰীকালীন কলবেক ম\'ডত উপলব্ধ নহয়। ফ\'নটো এই ম\'ডত <xliff:g id="COUNT_1">%s</xliff:g> মিনিটৰ বাবে থাকিব। আপুনি এতিয়া বাহিৰ হ\'ব খোজে নেকি?</item>
+ <item quantity="other">বাছনি কৰা কাৰ্যকলাপটো জৰুৰীকালীন কলবেক ম\'ডত উপলব্ধ নহয়। ফ\'নটো এই ম\'ডত <xliff:g id="COUNT_1">%s</xliff:g> মিনিটৰ বাবে থাকিব। আপুনি এতিয়া বাহিৰ হ\'ব খোজে নেকি?</item>
+ </plurals>
+ <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"জৰুৰীকালীন কল চলি থকাৰ সময়ত বাছনি কৰা কাৰ্যটো উপলব্ধ নহয়।"</string>
+ <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"জৰুৰীকালীন কলবেক ম\'ডৰ পৰা প্ৰস্থান কৰা হৈছে"</string>
+ <string name="alert_dialog_yes" msgid="6674268047820703974">"হয়"</string>
+ <string name="alert_dialog_no" msgid="1476091437797628703">"নহয়"</string>
+ <string name="alert_dialog_dismiss" msgid="2491494287075907171">"অগ্ৰাহ্য কৰক"</string>
+ <string name="voicemail_provider" msgid="5135942703327136909">"সেৱা"</string>
+ <string name="voicemail_settings" msgid="72448049107749316">"ছেট আপ কৰক"</string>
+ <string name="voicemail_number_not_set" msgid="6724904736891087856">"<ছেট কৰা হোৱা নাই>"</string>
+ <string name="other_settings" msgid="3672912580359716394">"অইন কল ছেটিংসমূহ"</string>
+ <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>ৰ জৰিয়তে কল কৰক"</string>
+ <string name="contactPhoto" msgid="4713193418046639466">"সম্পৰ্কৰ ফট\'"</string>
+ <string name="goPrivate" msgid="865837794424530980">"গোপন কৰক"</string>
+ <string name="selectContact" msgid="781975788478987237">"সম্পৰ্ক বাছনি কৰক"</string>
+ <string name="not_voice_capable" msgid="2739898841461577811">"ভইচ কলিং কৰাৰ সুবিধা নাই"</string>
+ <string name="description_dial_button" msgid="7459705245418435351">"ডায়েল"</string>
+ <string name="description_dialpad_button" msgid="5220006811894230590">"ডায়েলপেড দেখুৱাওক"</string>
+ <string name="pane_title_emergency_dialpad" msgid="1148505414688493134">"জৰুৰীকালীন ডায়েলপেড"</string>
+ <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"দৃশ্যগত ভইচমেইল"</string>
+ <string name="voicemail_set_pin_dialog_title" msgid="2797924461029093837">"পিন ছেট কৰক"</string>
+ <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"পিন সলনি কৰক"</string>
+ <string name="preference_category_ringtone" msgid="5197960752529332721">"ৰিংট’ন আৰু কম্পন"</string>
+ <string name="pstn_connection_service_label" msgid="1743245930577325900">"বিল্ট-ইন ছিম কাৰ্ড"</string>
+ <string name="enable_video_calling_title" msgid="7237253660669000899">"ভিডিঅ\' কলিং অন কৰক"</string>
+ <string name="enable_video_calling_dialog_msg" msgid="8948186136957417948">"আপুনি ভিডিঅ\' কলিং অন কৰিবলৈ নেটৱৰ্ক ছেটিংসমূহত পৰিৱৰ্ধিত 4G এলটিই ম’ড সক্ষম কৰিব লাগিব।"</string>
+ <string name="enable_video_calling_dialog_settings" msgid="576528473599603249">"নেটৱৰ্ক ছেটিংসমূহ"</string>
+ <string name="enable_video_calling_dialog_close" msgid="7411471282167927991">"বন্ধ কৰক"</string>
+ <string name="sim_label_emergency_calls" msgid="4847699229529306397">"জৰুৰীকালীন কল"</string>
+ <string name="sim_description_emergency_calls" msgid="7535215397212301562">"জৰুৰীকালীন কল মাত্ৰ"</string>
+ <string name="sim_description_default" msgid="4778679519938775515">"ছিম কাৰ্ড, শ্লট: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
+ <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"সাধ্য সুবিধাসমূহ"</string>
+ <string name="status_hint_label_incoming_wifi_call" msgid="5932176406432044638">"এওঁৰ পৰা ৱাই-ফাই কল আহিছে"</string>
+ <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"ৱাই-ফাই কল"</string>
+ <string name="emergency_action_launch_hint" msgid="4906759256275562674">"খুলিবলৈ পুনৰাই টিপক"</string>
+ <string name="message_decode_error" msgid="3456481534066924855">"বাৰ্তাটো ডিক\'ড কৰোঁতে আসোঁৱাহৰ সৃষ্টি হৈছিল।"</string>
+ <string name="callFailed_cdma_activation" msgid="2307989779233262164">"এখন ছিম কাৰ্ডে আপোনাৰ সেৱাসমূহ সক্ৰিয় কৰিছে আৰু আপোনাৰ ফ\'নটোৰ ৰ\'মিং সক্ষমতাসমূহো আপডে’ট কৰিছে।"</string>
+ <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"কেইবাটাও কল ইতিমধ্যে সক্ৰিয় হৈ আছে। নতুন কল এটা কৰাৰ আগেয়ে অনুগ্ৰহ কৰি সেইবোৰ একেলগ কৰক বা সমাপ্ত কৰক।"</string>
+ <string name="callFailed_imei_not_accepted" msgid="132192626901238542">"সংযোগ কৰিব পৰা নাই, অনুগ্ৰহ কৰি এখন মান্য ছিম কাৰ্ড ভৰাওক।"</string>
+ <string name="callFailed_wifi_lost" msgid="5968076625137297184">"ৱাই-ফাইৰ সৈতে সংযোগ বিচ্ছিন্ন হৈছে। কলৰ অন্ত পৰিছে।"</string>
+ <string name="dialFailed_low_battery" msgid="8760548177088774268">"বেটাৰি কম থকাৰ বাবে ভিডিঅ\' কল কৰিব নোৱাৰি।"</string>
+ <string name="callFailed_low_battery" msgid="4913582435905872616">"বেটাৰি কম থকাৰ বাবে ভিডিঅ\' কলৰ অন্ত পৰিছে।"</string>
+ <string name="change_pin_title" msgid="7790232089699034029">"ভইচমেইলৰ পিন সলনি কৰক"</string>
+ <string name="change_pin_continue_label" msgid="2135088662420163447">"অব্যাহত ৰাখক"</string>
+ <string name="change_pin_cancel_label" msgid="353535488390948596">"বাতিল কৰক"</string>
+ <string name="change_pin_ok_label" msgid="6204308560844889926">"ঠিক"</string>
+ <string name="change_pin_enter_old_pin_header" msgid="419179847657548887">"আপোনাৰ পুৰণি পিন নিশ্চিত কৰক"</string>
+ <string name="change_pin_enter_old_pin_hint" msgid="8579171678763615453">"অব্যাহত ৰাখিবলৈ আপোনাৰ ভইচমেইল পিনটো দিয়ক।"</string>
+ <string name="change_pin_enter_new_pin_header" msgid="2611191814590251532">"এটা নতুন পিন ছেট কৰক"</string>
+ <string name="change_pin_enter_new_pin_hint" msgid="2322940054329689309">"পিন <xliff:g id="MIN">%1$d</xliff:g>-<xliff:g id="MAX">%2$d</xliff:g> অংকৰ হ\'বই লাগিব।"</string>
+ <string name="change_pin_confirm_pin_header" msgid="8113764019347322170">"আপোনাৰ পিন নিশ্চিত কৰক"</string>
+ <string name="change_pin_confirm_pins_dont_match" msgid="4795052654904027909">"পিনসমূহ মিলা নাই"</string>
+ <string name="change_pin_succeeded" msgid="2022852286442211151">"ভইচমেইল পিন আপডে’ট কৰা হ’ল"</string>
+ <string name="change_pin_system_error" msgid="8308462387154257840">"পিন ছেট কৰিব পৰা নাই"</string>
+ <string name="mobile_data_status_roaming_turned_off_subtext" msgid="935636805765823307">"ডেটা ৰ\'মিং অফ কৰি থোৱা আছে"</string>
+ <string name="mobile_data_status_roaming_turned_on_subtext" msgid="1335176927083781041">"ডেটা ৰ\'মিং অন কৰি থোৱা আছে"</string>
+ <string name="mobile_data_status_roaming_without_plan_subtext" msgid="3568412513831673037">"বৰ্তমান ৰ\'মিঙত আছে, ডেটা আঁচনিৰ প্ৰয়োজন"</string>
+ <string name="mobile_data_status_roaming_with_plan_subtext" msgid="8721998948811064377">"বৰ্তমান ৰ\'মিঙত আছে, ডেটা আঁচনি সক্ৰিয় হৈ আছে"</string>
+ <string name="mobile_data_status_no_plan_subtext" msgid="4887747337017565725">"কোনো ম’বাইল ডেটা বাকী ৰোৱা নাই"</string>
+ <string name="mobile_data_activate_prepaid" msgid="7447025165850512683">"কোনো ম’বাইল ডেটা বাকী ৰোৱা নাই"</string>
+ <string name="mobile_data_activate_prepaid_summary" msgid="5705389791791637666">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>ৰ জৰিয়তে ম’বাইল ডেটা যোগ কৰক"</string>
+ <string name="mobile_data_activate_roaming_plan" msgid="5998161536947086264">"কোনো ৰ\'মিং আঁচনি নাই"</string>
+ <string name="mobile_data_activate_roaming_plan_summary" msgid="511202908883425459">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>ৰ জৰিয়তে ৰ\'মিং আঁচনি যোগ কৰক"</string>
+ <string name="mobile_data_activate_footer" msgid="5979019929980140594">"আপুনি আপোনাৰ বাহক <xliff:g id="PROVIDER_NAME">%s</xliff:g>ৰ জৰিয়তে ম’বাইল ডেটা বা ৰ\'মিং আঁচনি যোগ কৰিব পাৰে।"</string>
+ <string name="mobile_data_activate_diag_title" msgid="9044252207707864493">"ডেটা যোগ কৰেনে?"</string>
+ <string name="mobile_data_activate_diag_message" msgid="8216154678758451453">"আপুনি <xliff:g id="PROVIDER_NAME">%s</xliff:g>ৰ জৰিয়তে ডেটা যোগ কৰিবলগীয়া হ\'ব পাৰে"</string>
+ <string name="mobile_data_activate_button" msgid="3682400969184405446">"ডেটা যোগ কৰক"</string>
+ <string name="mobile_data_activate_cancel_button" msgid="1708022171547398765">"বাতিল কৰক"</string>
+ <string name="clh_card_title_call_ended_txt" msgid="4072101334811753823">"কল শেষ হ’ল"</string>
+ <string name="clh_callFailed_powerOff_txt" msgid="1049579267090569308">"এয়াৰপ্লেইন ম\'ড অন হৈ আছে"</string>
+ <string name="clh_callFailed_simError_txt" msgid="7273306159809203315">"ছিম কাৰ্ডত প্ৰৱেশ কৰিব পৰা নাই"</string>
+ <string name="clh_incall_error_out_of_service_txt" msgid="3974373603657193827">"ম’বাইল নেটৱৰ্ক উপলব্ধ নহয়"</string>
+ <string name="clh_callFailed_unassigned_number_txt" msgid="4722164461846838251">"আপুনি ডায়েল কৰিব খোজা ফ\'ন নম্বৰত আসোঁৱাহ আছে। আসোঁৱাহ ক\'ড ১।"</string>
+ <string name="clh_callFailed_no_route_to_destination_txt" msgid="2259464183880140671">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৩।"</string>
+ <string name="clh_callFailed_channel_unacceptable_txt" msgid="3159336281525222855">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৬।"</string>
+ <string name="clh_callFailed_operator_determined_barring_txt" msgid="1831977101604817389">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৮।"</string>
+ <string name="clh_callFailed_normal_call_clearing_txt" msgid="7369313431310446847">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ১৬।"</string>
+ <string name="clh_callFailed_user_busy_txt" msgid="2736095995784746915">"ব্যৱহাৰকাৰী ব্যস্ত হৈ আছে"</string>
+ <string name="clh_callFailed_no_user_responding_txt" msgid="3675206502567252162">"ব্যৱহাৰকাৰীয়ে কোনো সঁহাৰি দিয়া নাই"</string>
+ <string name="clh_callFailed_user_alerting_txt" msgid="363445537769733281">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ১৯।"</string>
+ <string name="clh_callFailed_call_rejected_txt" msgid="8001665478195793223">"কল নাকচ কৰা হৈছে"</string>
+ <string name="clh_callFailed_number_changed_txt" msgid="5127909898925154242">"নম্বৰ সলনি হৈছে"</string>
+ <string name="clh_callFailed_pre_emption_txt" msgid="1100414016302714854">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ২৫।"</string>
+ <string name="clh_callFailed_non_selected_user_clearing_txt" msgid="6248192300127702626">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ২৬।"</string>
+ <string name="clh_callFailed_destination_out_of_order_txt" msgid="4879936907430554772">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ২৭।"</string>
+ <string name="clh_callFailed_invalid_number_format_txt" msgid="6987646655639655370">"অমান্য নম্বৰ ফৰমেট (অসম্পূৰ্ণ নম্বৰ)"</string>
+ <string name="clh_callFailed_facility_rejected_txt" msgid="1028912823639389563">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ২৯।"</string>
+ <string name="clh_callFailed_response_to_STATUS_ENQUIRY_txt" msgid="1250833944238081212">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৩০।"</string>
+ <string name="clh_callFailed_normal_unspecified_txt" msgid="8765640093649364786">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৩১।"</string>
+ <string name="clh_callFailed_no_circuit_available_txt" msgid="6884477141997665736">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৩৪।"</string>
+ <string name="clh_callFailed_network_out_of_order_txt" msgid="76447023032000125">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৩৮।"</string>
+ <string name="clh_callFailed_temporary_failure_txt" msgid="5057716306945664356">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৪১।"</string>
+ <string name="clh_callFailed_switching_equipment_congestion_txt" msgid="4958831706265227632">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৪২।"</string>
+ <string name="clh_callFailed_access_information_discarded_txt" msgid="5033636666434831179">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৪৩।"</string>
+ <string name="clh_callFailed_requested_circuit_txt" msgid="3221429183862933558">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৪৪।"</string>
+ <string name="clh_callFailed_resources_unavailable_unspecified_txt" msgid="1385943395137055442">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৪৭।"</string>
+ <string name="clh_callFailed_quality_of_service_unavailable_txt" msgid="8464132603057397297">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৪৯।"</string>
+ <string name="clh_callFailed_requested_facility_not_subscribed_txt" msgid="3853815238079666882">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৫০।"</string>
+ <string name="clh_callFailed_incoming_calls_barred_within_the_CUG_txt" msgid="6791665425652545510">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৫৫।"</string>
+ <string name="clh_callFailed_bearer_capability_not_authorized_txt" msgid="2975453855928450909">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৫৭।"</string>
+ <string name="clh_callFailed_bearer_capability_not_presently_available_txt" msgid="753763978405557873">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৫৮।"</string>
+ <string name="clh_callFailed_service_or_option_not_available_unspecified_txt" msgid="1714515856150546668">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৬৩।"</string>
+ <string name="clh_callFailed_bearer_service_not_implemented_txt" msgid="5433179845809692163">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৬৫।"</string>
+ <string name="clh_callFailed_ACM_equal_to_or_greater_than_ACMmax_txt" msgid="4339523227014428123">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৬৮।"</string>
+ <string name="clh_callFailed_requested_facility_not_implemented_txt" msgid="5217500914101821728">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৬৯।"</string>
+ <string name="clh_callFailed_only_restricted_digital_information_bearer_capability_is_available_txt" msgid="2423146296631060723">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৭০।"</string>
+ <string name="clh_callFailed_service_or_option_not_implemented_unspecified_txt" msgid="873208782556277597">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৭৯।"</string>
+ <string name="clh_callFailed_invalid_transaction_identifier_value_txt" msgid="3926779129494281620">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৮১।"</string>
+ <string name="clh_callFailed_user_not_member_of_CUG_txt" msgid="2517559636224367413">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৮৭।"</string>
+ <string name="clh_callFailed_incompatible_destination_txt" msgid="7994154962189949306">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৮৮।"</string>
+ <string name="clh_callFailed_invalid_transit_network_selection_txt" msgid="5847046471813330674">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৯১।"</string>
+ <string name="clh_callFailed_semantically_incorrect_message_txt" msgid="5419940790658960361">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৯৫।"</string>
+ <string name="clh_callFailed_invalid_mandatory_information_txt" msgid="3350178645665420102">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৯৬।"</string>
+ <string name="clh_callFailed_message_type_non_existent_or_not_implemented_txt" msgid="7080310506268713895">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৯৭।"</string>
+ <string name="clh_callFailed_message_type_not_compatible_with_protocol_state_txt" msgid="5251558113020693277">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৯৮।"</string>
+ <string name="clh_callFailed_information_element_non_existent_or_not_implemented_txt" msgid="1643642065908165846">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ৯৯।"</string>
+ <string name="clh_callFailed_conditional_IE_error_txt" msgid="1622467860490603665">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ১০০।"</string>
+ <string name="clh_callFailed_message_not_compatible_with_protocol_state_txt" msgid="3776039646804248109">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ১০১।"</string>
+ <string name="clh_callFailed_recovery_on_timer_expiry_txt" msgid="4529313282997136028">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ১০২।"</string>
+ <string name="clh_callFailed_protocol_Error_unspecified_txt" msgid="4900075501687505296">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ১১১।"</string>
+ <string name="clh_callFailed_interworking_unspecified_txt" msgid="6701560054199411045">"কলটো সম্পূৰ্ণ কৰিব পৰা নগ\'ল। আসোঁৱাহ ক\'ড ১২৭।"</string>
+ <string name="labelCallBarring" msgid="3452870940716226978">"কল প্ৰতিবন্ধকতা"</string>
+ <string name="sum_call_barring_enabled" msgid="6804489690436703488">"অন"</string>
+ <string name="sum_call_barring_disabled" msgid="5900772179198857783">"অফ"</string>
+ <string name="call_barring_baoc" msgid="1199843944333106035">"সকলো বহিৰ্গামী"</string>
+ <string name="call_barring_baoc_enabled" msgid="8112118391869380361">"সকলো বহিৰ্গামী কল অৱৰোধ কৰাটো অক্ষম কৰিবনে?"</string>
+ <string name="call_barring_baoc_disabled" msgid="7806697133004697974">"সকলো বহিৰ্গামী কল অৱৰোধ কৰিবনে?"</string>
+ <string name="call_barring_baoic" msgid="3162154267825211826">"আন্তঃৰাষ্ট্ৰীয় বহিৰ্গামী"</string>
+ <string name="call_barring_baoic_enabled" msgid="2634377543147258105">"আন্তঃৰাষ্ট্ৰীয় বহিৰ্গামী কল অৱৰোধ কৰাটো অক্ষম কৰিবনে?"</string>
+ <string name="call_barring_baoic_disabled" msgid="5817895648306183464">"আন্তঃৰাষ্ট্ৰীয় বহিৰ্গামী কল অৱৰোধ কৰিবনে?"</string>
+ <string name="call_barring_baoicr" msgid="8951699885885742076">"আন্তঃৰাষ্ট্ৰীয় বহিৰ্গামী ৰ\'মিং"</string>
+ <string name="call_barring_baoicr_enabled" msgid="2519630715322138317">"আন্তঃৰাষ্ট্ৰীয় বহিৰ্গামী ৰ\'মিং অৱৰোধ কৰাটো অক্ষম কৰিবনে?"</string>
+ <string name="call_barring_baoicr_disabled" msgid="5831267468931377699">"আন্তঃৰাষ্ট্ৰীয় বহিৰ্গামী ৰ\'মিং অৱৰোধ কৰিবনে?"</string>
+ <string name="call_barring_baic" msgid="5272726081458339912">"সকলো অন্তৰ্গামী"</string>
+ <string name="call_barring_baic_enabled" msgid="2457134916223203380">"সকলো অন্তৰ্গামী কল অৱৰোধ কৰাটো অক্ষম কৰিবনে?"</string>
+ <string name="call_barring_baic_disabled" msgid="6945604947500275636">"সকলো অন্তৰ্গামী কল অৱৰোধ কৰিবনে?"</string>
+ <string name="call_barring_baicr" msgid="5728784220691481693">"অন্তৰ্গামী আন্তঃৰাষ্ট্ৰীয় ৰ\'মিং"</string>
+ <string name="call_barring_baicr_enabled" msgid="6533336994391716127">"অন্তৰ্গামী আন্তঃৰাষ্ট্ৰীয় ৰ\'মিং অৱৰোধ কৰাটো অক্ষম কৰিবনে?"</string>
+ <string name="call_barring_baicr_disabled" msgid="6746329853943256566">"অন্তৰ্গামী আন্তঃৰাষ্ট্ৰীয় ৰ\'মিং অৱৰোধ কৰিবনে?"</string>
+ <string name="call_barring_deactivate_all" msgid="5269788384941003415">"সকলো নিষ্ক্ৰিয় কৰক"</string>
+ <string name="call_barring_deactivate_all_description" msgid="4972365443287257704">"সকলো কল প্ৰতিবন্ধক ছেটিং নিষ্ক্ৰিয় কৰক"</string>
+ <string name="call_barring_deactivate_success" msgid="8014685598632000936">"কল প্ৰতিবন্ধক নিষ্ক্ৰিয় কৰা হ’ল"</string>
+ <string name="call_barring_change_pwd" msgid="6887420609726284232">"পাছৱৰ্ড সলনি কৰক"</string>
+ <string name="call_barring_change_pwd_description" msgid="5505087790260233953">"কল প্ৰতিবন্ধক পাছৱৰ্ড সলনি কৰক"</string>
+ <string name="call_barring_change_pwd_description_disabled" msgid="7630770327645349957">"কল প্ৰতিবন্ধক পাছৱৰ্ড সলনি কৰিব নোৱাৰি।"</string>
+ <string name="call_barring_pwd_not_match" msgid="6716711689350314525">"পাছৱৰ্ডসমূহ মিলা নাই"</string>
+ <string name="call_barring_right_pwd_number" msgid="2902966502520410446">"৪টা সংখ্যাৰ এটা পাছৱৰ্ড লিখক"</string>
+ <string name="call_barring_change_pwd_success" msgid="3278310763742760321">"পাছৱৰ্ড সলনি কৰা হ’ল"</string>
+ <string name="call_barring_old_pwd" msgid="6080515987320238522">"পুৰণি পাছৱৰ্ড"</string>
+ <string name="call_barring_new_pwd" msgid="7048532299150269547">"নতুন পাছৱৰ্ড"</string>
+ <string name="call_barring_confirm_pwd" msgid="1947167278466285411">"পাছৱৰ্ড নিশ্চিত কৰক"</string>
+ <string name="messageCallBarring" msgid="2412123220272136055">"পাছৱৰ্ড দিয়ক"</string>
+ <string name="call_barring_settings" msgid="80766145008623645">"কল প্ৰতিবন্ধক ছেটিংসমূহ"</string>
+ <string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"সকলো কল প্ৰতিবন্ধক ছেটিং নিষ্ক্ৰিয় কৰেনে?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"নেটৱৰ্ক ব্যস্ত। অনুগ্ৰহ কৰি কিছুসময় পিছত আকৌ কল কৰাৰ চেষ্টা কৰক।"</string>
+ <string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"কলটো বিচ্যুত কৰা হৈছে।"</string>
+ <string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"কলটো ফৰৱাৰ্ড কৰা হ’ল।"</string>
+ <string name="supp_service_notification_call_waiting" msgid="789154111899572489">"কল অপেক্ষাৰত।"</string>
+ <string name="supp_service_clir_suppression_rejected" msgid="1581851661582189045">"নম্বৰ অৱৰোধ প্ৰত্যাখান কৰা হৈছে।"</string>
+ <string name="supp_service_closed_user_group_call" msgid="5761735840904590950">"আৱদ্ধ ব্যৱহাৰকাৰীৰ দলৰ কল"</string>
+ <string name="supp_service_incoming_calls_barred" msgid="3248813207307882723">"অন্তৰ্গামী কল প্ৰতিবন্ধিত কৰি থোৱা হৈছে।"</string>
+ <string name="supp_service_outgoing_calls_barred" msgid="1962644621292054081">"বহিৰ্গামী কল প্ৰতিবন্ধিত কৰি থোৱা হৈছে।"</string>
+ <string name="supp_service_call_forwarding_active" msgid="1253134771682248735">"কল ফৰৱাৰ্ডিং সক্ৰিয় হৈ আছে।"</string>
+ <string name="supp_service_additional_call_forwarded" msgid="5228624725214727315">"অতিৰিক্ত কল ফৰৱাৰ্ড কৰা হ’ল।"</string>
+ <string name="supp_service_additional_ect_connected" msgid="6396964292513707102">"অশালীন কলৰ স্থানান্তৰণ সম্পূৰ্ণ হৈছে।"</string>
+ <string name="supp_service_additional_ect_connecting" msgid="5443373059716058480">"অশালীন কলৰ স্থানান্তৰণ চলি আছে।"</string>
+ <string name="supp_service_call_on_hold" msgid="1478976782361795422">"কল হ\'ল্ডত আছে।"</string>
+ <string name="supp_service_call_resumed" msgid="1656475289958070674">"কল পুনৰ আৰম্ভ কৰা হৈছে।"</string>
+ <string name="supp_service_deflected_call" msgid="138970419873492166">"কলটো বিচ্যুত কৰা হৈছে।"</string>
+ <string name="supp_service_forwarded_call" msgid="4509980341645679803">"ফৰৱাৰ্ড কৰা কল।"</string>
+ <string name="supp_service_conference_call" msgid="4448616364004466832">"কনফাৰেঞ্চ কলত অংশ গ্ৰহণ কৰিবলৈ লোৱা হৈছে।"</string>
+ <string name="supp_service_held_call_released" msgid="2030677825038709779">"হ’ল্ড কৰি থোৱা কলটো মুকলি কৰি দিয়া হ’ল।"</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"ডিভাইচটোত বৰ্তমান তৃতীয় পক্ষৰ পৰিচালনাৰ সুবিধা সক্ষম থকাৰ বাবে কল কৰিব নোৱাৰি।"</string>
+ <string name="callFailed_already_dialing" msgid="4652915396769232226">"অইন এটা বহিৰ্গামী কল ডায়েল কৰি থকাৰ কাৰণে বেলেগ কল কৰিব নোৱাৰি।"</string>
+ <string name="callFailed_already_ringing" msgid="7747655701540586943">"বেলেগ কল কৰিব নোৱাৰি, কাৰণ এটা অন্তৰ্গামী কল এতিয়াও সক্ৰিয় হৈ আছে যাৰ উত্তৰ দিয়া হোৱা নাই। নতুন কল এটা কৰাৰ আগেয়ে সেই কলটোৰ উত্তৰ দিয়ক বা কলটো প্ৰত্যাখ্যান কৰক।"</string>
+ <string name="callFailed_calling_disabled" msgid="7257184079619449933">"কোনো কল কৰিব নোৱাৰি কাৰণ ro.telephony.disable-call ছিষ্টেম প্ৰ’পাৰ্টি ব্যৱহাৰ কৰি কল কৰাৰ সুবিধা অক্ষম কৰা হৈছে।"</string>
+ <string name="callFailed_too_many_calls" msgid="3023051919216926990">"কোনো কল কৰিব নোৱাৰি কাৰণ ইতিমধ্যে দুটা বেলেগ কল চলি আছে। নতুন এটা কল কৰাৰ আগেয়ে সেই দুটাৰ ভিতৰত এটাৰ সংযোগ বিচ্ছিন্ন কৰক বা কল দুটা একত্ৰিত কৰি এটা কনফাৰেন্স কললৈ সলনি কৰক।"</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ব্যৱহাৰ কৰিবলৈ ম’বাইল ডেটা অন হৈ থকাটো নিশ্চিত কৰক। আপুনি ম’বাইল নেটৱৰ্ক ছেটিংসমূহ-লৈ গৈ ইয়াক সলনি কৰিব পাৰে।"</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ব্যৱহাৰ কৰিবলৈ ম’বাইল ডেটা আৰু ডেটা ৰ’মিং অন হৈ থকাটো নিশ্চিত কৰক। আপুনি ম’বাইল নেটৱৰ্ক ছেটিংসমূহ-লৈ গৈ ইয়াক সলনি কৰিব পাৰে।"</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ব্যৱহাৰ কৰিবলৈ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ছিমত ম’বাইল ডেটা অন হৈ থকাটো নিশ্চিত কৰক। আপুনি ম’বাইল নেটৱৰ্ক ছেটিংসমূহ-লৈ গৈ ইয়াক সলনি কৰিব পাৰে।"</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ব্যৱহাৰ কৰিবলৈ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ছিমত ম’বাইল ডেটা আৰু ডেটা ৰ’মিং অন হৈ থকাটো নিশ্চিত কৰক। আপুনি ম’বাইল নেটৱৰ্ক ছেটিংসমূহ-লৈ গৈ ইয়াক সলনি কৰিব পাৰে।"</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"অগ্ৰাহ্য কৰক"</string>
+</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index c105ce0..6e1e986 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD kod işləyir..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI kodu ləğv olundu"</string>
<string name="cancel" msgid="5044513931633602634">"Ləğv et"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD mesaj <xliff:g id="MIN_LEN">%d</xliff:g> və <xliff:g id="MAX_LEN">%d</xliff:g> simvol arası olmalıdır. Lütfən, yenidən sınayın."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD mesaj <xliff:g id="MIN_LEN">%1$d</xliff:g> və <xliff:g id="MAX_LEN">%2$d</xliff:g> simvol arası olmalıdır. Lütfən, yenidən sınayın."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Konfrans zəngini idarə edin"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Dinamik"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Səsli məktub"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Səsli məktub (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"SP:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Bildirişlər"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Təcili yayımlar"</string>
<string name="call_settings" msgid="6112441768261754562">"Zəng parametrləri"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Təkmil 4G LTE Rejimi"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Səs və digər kommunikasiyaları təkmilləşdirmək üçün LTE xidmətlərindən istifadə edin (tövsiyə olunur)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Səs və digər kommunikasiyaları təkmilləşdirmək üçün 4G xidmətlərindən istifadə edin (tövsiyə olunur)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Data aktivdir"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Data istifadəsinə icazə verin"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Diqqət"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Zəngə davam etmək mümkün deyil."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Zəngi ayırmaq mümkün deyil."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Ötürmək mümkün deyil."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Xanaları birləşdirin."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Zəngi rədd etmək mümkün deyil."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Zəngləri buraxmaq mümkün deyil."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Zənglər saxlanıla bilməz."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Parol daxil edin"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Zəng bloklama ayarları"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Bütün zəng bloklama ayarları deaktiv edilsin?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Şəbəkə məşğuldur. Sonra yenidən zəng edin."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Call dəyişdirildi."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Zəng yönləndirildi."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Zəng gözləmədədir."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Yönləndirilmiş zəng."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Konfrans zənginə qoşulursunuz."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Gözləmədə olan zəngin bağlantısı kəsildi."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Hazırda cihaz təmin edildiyindən zəng etmək mümkün deyil."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Başqa gedən zəngin nömrəsi yığıldığına görə zəng etmək mümkün deyil."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Cavabsız gələn zəng olduğuna görə zəng etmək mümkün deyil. Yeni zəng etməzdən əvvəl gələn zəngə cavab verin və ya imtina edin."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Zəng ro.telephony.disable-call sistem funksiyası ilə deaktiv edildiyinə görə zəng etmək mümkün deyil."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Davam edən iki zəng olduğuna görə zəng etmək mümkün deyil. Zənglərin birini kəsin və ya yeni zəng etməzdən əvvəl onları konfransa birləşdirin."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> istifadə etmək üçün mobil datanın aktiv olduğundan əmin olun. Bunu mobil şəbəkə ayarlarında dəyişə bilərsiniz."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> istifadə etmək üçün mobil data və data rouminqin aktiv olduğundan əmin olun. Bunu mobil şəbəkə ayarlarında dəyişə bilərsiniz."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> istifadə etmək üçün <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM nömrəsində mobil datanın aktiv olduğundan əmin olun. Bunu mobil şəbəkə ayarlarında dəyişə bilərsiniz."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> istifadə etmək üçün <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM nömrəsində mobil data və data rouminqin aktiv olduğundan əmin olun. Bunu mobil şəbəkə ayarlarında dəyişə bilərsiniz."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Rədd edin"</string>
</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index eff2adb..4745921 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD kôd je pokrenut…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI kôd je otkazan"</string>
<string name="cancel" msgid="5044513931633602634">"Otkaži"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD poruka mora da ima između <xliff:g id="MIN_LEN">%d</xliff:g> i <xliff:g id="MAX_LEN">%d</xliff:g> znakova. Probajte ponovo."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD poruka mora da ima između <xliff:g id="MIN_LEN">%1$d</xliff:g> i <xliff:g id="MAX_LEN">%2$d</xliff:g> znakova. Probajte ponovo."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Upravljanje konferencijskim pozivom"</string>
<string name="ok" msgid="3811371167865772377">"Potvrdi"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Zvučnik"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Govorna pošta"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Glasovna pošta (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Obaveštenja"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Hitni prenosi"</string>
<string name="call_settings" msgid="6112441768261754562">"Podešavanja poziva"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Poboljšani 4G LTE režim"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Korišćenje LTE usluga za poboljšanje glasovnih i drugih komunikacija (preporučeno)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Koristi 4G usluge za poboljšanje glasovne i druge komunikacije (preporučeno)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Podaci su omogućeni"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Omogućavanje potrošnje podataka"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Pažnja"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Nismo uspeli da nastavimo poziv."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Razdvajanje poziva nije uspelo."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Prebacivanje nije uspelo."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Objedinjavanje poziva nije uspelo."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Odbijanje poziva nije uspelo."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Uspostavljanje poziva nije uspelo."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Nije moguće stavljati pozive na čekanje."</string>
@@ -748,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Unesite lozinku"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Podešavanja ograničavanja poziva"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Želite li da deaktivirate sva podešavanja ograničavanja poziva?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Mreža je zauzeta. Probajte ponovo da uputite poziv kasnije."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Poziv je preusmeren."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Poziv je prosleđen."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Poziv je na čekanju."</string>
@@ -765,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Prosleđen poziv."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Ulazite u konferencijski poziv."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Poziv više nije na čekanju."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Trenutno ne možete da uputite poziv zato što se uređaju dodeljuje usluga."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Ne možete da pozovete jer se već upućuje drugi odlazni poziv."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Ne možete da pozovete jer imate dolazni poziv na koji niste odgovorili. Odgovorite na dolazni poziv ili ga odbijte pre upućivanja novog poziva."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Ne možete da pozovete jer je pozivanje onemogućeno preko svojstva sistema ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Ne možete da pozovete jer su dva poziva već u toku. Prekinite jedan od poziva ili ih objedinite u konferenciju da biste uputili novi poziv."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Da biste koristili <xliff:g id="SUPP_SERVICE">%s</xliff:g>, uverite se da su uključeni mobilni podaci. To možete da promenite u podešavanjima mobilne mreže."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Da biste koristili <xliff:g id="SUPP_SERVICE">%s</xliff:g>, uverite se da su uključeni mobilni podaci i prenos podataka u romingu. To možete da promenite u podešavanjima mobilne mreže."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Da biste koristili <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, uverite se da su za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključeni mobilni podaci. To možete da promenite u podešavanjima mobilne mreže."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Da biste koristili <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, uverite se da su za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključeni mobilni podaci i prenos podataka u romingu. To možete da promenite u podešavanjima mobilne mreže."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Odbaci"</string>
</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 38f46be..cd80c3c 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Запускаецца USSD-код..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Код MMI адменены"</string>
<string name="cancel" msgid="5044513931633602634">"Адмяніць"</string>
- <string name="enter_input" msgid="1810529547726803893">"Паведамленне USSD павінна складацца з наступнай колькасцi знакаў: ад <xliff:g id="MIN_LEN">%d</xliff:g> да <xliff:g id="MAX_LEN">%d</xliff:g>. Паспрабуйце яшчэ раз."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Паведамленне USSD павінна складацца з наступнай колькасцi знакаў: ад <xliff:g id="MIN_LEN">%1$d</xliff:g> да <xliff:g id="MAX_LEN">%2$d</xliff:g>. Паспрабуйце яшчэ раз."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Кіраванне канферэнц-выклікам"</string>
<string name="ok" msgid="3811371167865772377">"ОК"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Дынамік"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Галасавая пошта"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Галасавая пошта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"ГП:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Апавяшчэнні"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Экстранныя трансляцыі"</string>
<string name="call_settings" msgid="6112441768261754562">"Налады выклікаў"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Удасканалены рэжым 4G LTE"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Карыстайцеся службамі LTE, каб палепшыць галасавую і іншую сувязь (рэкаменд.)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Карыстайцеся службамі 4G, каб палепшыць галасавую і іншую сувязь (рэкамендавана)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Дадзеныя ўключаныя"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Дазволіць выкарыстанне даных"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Увага"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Не ўдалося ўзнавіць выклік."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Немагчыма аддзяліць выклік."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Немагчыма перадаць выклік."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Не ўдалося аб\'яднаць выклікі."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Немагчыма адхіліць выклік."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Немагчыма скончыць выклік(і)."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Немагчыма ўтрымліваць выклікі."</string>
@@ -534,7 +543,7 @@
<string name="onscreenSwapCallsText" msgid="1602990689244030047">"Пераключыць"</string>
<string name="onscreenManageCallsText" msgid="5473231160123254154">"Кіраваць выклікамі"</string>
<string name="onscreenManageConferenceText" msgid="6485935856534311346">"Кірав. канферэнцыяй"</string>
- <string name="onscreenAudioText" msgid="1710087112800041743">"Аўдыё"</string>
+ <string name="onscreenAudioText" msgid="1710087112800041743">"Аўдыя"</string>
<string name="onscreenVideoCallText" msgid="4800924186056115442">"Відэавыклік"</string>
<string name="importSimEntry" msgid="6614358325359736031">"Імпартаваць"</string>
<string name="importAllSimEntries" msgid="1503181169636198673">"Імпартаваць усе"</string>
@@ -750,6 +759,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Увядзіце пароль"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Налады забароны выкліку"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Адключыць усе налады забароны выкліку?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Сетка занятая. Паўтарыце выклік пазней."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Выклік адхілены."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Выклік пераадрасаваны."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Лінія занятая. Чакаецца падключэнне."</string>
@@ -767,8 +777,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Пераадрасаваны выклік."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Ідзе далучэнне да канферэнц-выкліку."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Утрыманы выклік быў завершаны."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Немагчыма зрабіць выклік, паколькі зараз збіраецца інфармацыя аб забеспячэнні прылады."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Немагчыма зрабіць выклік, паколькі зараз ідзе выходны выклік."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Нельга зрабіць выклік, паколькі ёсць уваходны выклік без адказу. Адкажыце на ўваходны выклік або адхіліце яго, каб зрабіць новы."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Немагчыма зрабіць выклік, паколькі выклікі адключаны ў сістэмных наладах ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Немагчыма зрабіць выклік, паколькі зараз выконваюцца два выклікі. Адключыце адзін з выклікаў або аб\'яднайце іх у канферэнцыю, каб зрабіць новы выклік."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Уключыце перадачу мабільных даных для выкарыстання сэрвісу <xliff:g id="SUPP_SERVICE">%s</xliff:g>. Гэта можна зрабіць у наладах мабільнай сеткі."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Уключыце перадачу мабільных даных і інтэрнэт-роўмінг для выкарыстання сэрвісу <xliff:g id="SUPP_SERVICE">%s</xliff:g>. Гэта можна зрабіць у наладах мабільнай сеткі."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Уключыце перадачу мабільных даных на SIM-карце <xliff:g id="SIM_NUMBER">%2$d</xliff:g> для выкарыстання сэрвісу <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Гэта можна зрабіць у наладах мабільнай сеткі."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Уключыце перадачу мабільных даных і інтэрнэт-роўмінг на SIM-карце <xliff:g id="SIM_NUMBER">%2$d</xliff:g> для выкарыстання сэрвісу <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Гэта можна зрабіць у наладах мабільнай сеткі."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Закрыць"</string>
</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index a4c26be..55feedc 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD кодът се изпълнява…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI кодът бе анулиран"</string>
<string name="cancel" msgid="5044513931633602634">"Отказ"</string>
- <string name="enter_input" msgid="1810529547726803893">"Съобщението с USSD трябва да бъде между <xliff:g id="MIN_LEN">%d</xliff:g> и <xliff:g id="MAX_LEN">%d</xliff:g> знака. Моля, опитайте отново."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Съобщението с USSD трябва да бъде между <xliff:g id="MIN_LEN">%1$d</xliff:g> и <xliff:g id="MAX_LEN">%2$d</xliff:g> знака. Моля, опитайте отново."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Управление на конферентно обаждане"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Говорител"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Гласова поща"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Гласова поща (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Известия"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Спешни излъчвания"</string>
<string name="call_settings" msgid="6112441768261754562">"Настройки за обаждане"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Подобрен режим с 4G LTE"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Ползване на LTE услуги за подобряване на гласовите и др. комуникации (препоръч.)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Използване на 4G услуги за подобряване на гласовите и други комуникации (препоръчително)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Данните са активирани"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Разрешаване на преноса на данни"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Внимание"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Обаждането не може да се възобнови."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Обаждането не може да се отдели."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Не може да се прехвърли."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Обажданията не могат да се обединят."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Обаждането не може да се отхвърли."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Обаждането или съответно обажданията не могат да се освободят."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Не може да се извършват обаждания."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Въведете парола"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Настройки за забрана на обажданията"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Да се деактивират ли всички настройки за забрана за обаждания?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Мрежата е заета. Моля, опитайте да се обадите отново по-късно."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Обаждането е отклонено."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Обаждането е пренасочено."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Обаждането чака."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Пренасочено обаждане."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Присъединявате се към конферентно обаждане."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Задържаното обаждане бе освободено."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Не може да се извърши обаждане, тъй като в момента устройството се обезпечава."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Не може да се извърши обаждане, тъй като в момента се набира друго изходящо обаждане."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Не може да се извърши обаждане, тъй като има неотговорено входящо обаждане. Отговорете му или го отхвърлете, преди да извършите ново обаждане."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Не може да се извърши обаждане, тъй като обажданията са деактивирани чрез системното свойство ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Не може да се извърши обаждане, тъй като вече се провеждат две обаждания. Прекъснете едно от тях или ги обединете в конферентен разговор, преди да извършите ново обаждане."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"За да използвате <xliff:g id="SUPP_SERVICE">%s</xliff:g>, мобилните данни трябва да са включени. Можете да промените това в настройките за мобилната мрежа."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"За да използвате <xliff:g id="SUPP_SERVICE">%s</xliff:g>, мобилните данни и роумингът на данни трябва да са включени. Можете да промените това в настройките за мобилната мрежа."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"За да използвате <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, мобилните данни за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> трябва да са включени. Можете да промените това в настройките за мобилната мрежа."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"За да използвате <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, мобилните данни и роумингът на данни за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> трябва да са включени. Можете да промените това в настройките за мобилната мрежа."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Отхвърляне"</string>
</resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index cc65a3c..d339480 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD কোড চলছে…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI কোড বাতিল করা হয়েছে"</string>
<string name="cancel" msgid="5044513931633602634">"বাতিল করুন"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD বার্তাকে আবশ্যিকভাবে <xliff:g id="MIN_LEN">%d</xliff:g> ও <xliff:g id="MAX_LEN">%d</xliff:g> অক্ষরের মধ্যে হতে হবে৷ দয়া করে আবার চেষ্টা করুন৷"</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD বার্তাকে আবশ্যিকভাবে <xliff:g id="MIN_LEN">%1$d</xliff:g> ও <xliff:g id="MAX_LEN">%2$d</xliff:g> অক্ষরের মধ্যে হতে হবে৷ দয়া করে আবার চেষ্টা করুন৷"</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"কনফারেন্স কল পরিচালনা করুন"</string>
<string name="ok" msgid="3811371167865772377">"ঠিক আছে"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"স্পিকার"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"ভয়েসমেল"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"ভয়েসমেল (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"বিজ্ঞপ্তি"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"জরুরী সম্প্রচার"</string>
<string name="call_settings" msgid="6112441768261754562">"কল সেটিংস"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"উন্নত 4G LTE মোড"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"ভয়েস এবং অন্যান্য যোগাযোগব্যবস্থা উন্নত করতে LTE পরিষেবা ব্যবহার করুন (প্রস্তাবিত)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"ভয়েস এবং অন্যান্য যোগাযোগ ব্যবস্থা (সাজেস্ট করা হয়েছে) আরও ভাল করতে 4G পরিষেবা ব্যবহার করুন"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"ডেটা সক্ষম করা হয়েছে"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"ডেটা ব্যবহারের অনুমতি দিন"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"খেয়াল করুন"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"কলটি চালানো যাচ্ছে না।"</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"কল আলাদা করা যাবে না৷"</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"হস্তান্তর করা যাবে না৷"</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"কলগুলি মার্জ করা যাচ্ছে না।"</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"কল প্রত্যাখ্যান কলা যাবে না৷"</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"কল(গুলি) কাটা যাবে না৷"</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"কলগুলি ধরে রাখা যাবে না।"</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"পাসওয়ার্ড লিখুন"</string>
<string name="call_barring_settings" msgid="80766145008623645">"কল নিষিদ্ধ করার সেটিংস"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"কল নিষিদ্ধ করার সমস্ত সেটিংস নিষ্ক্রিয় করবেন?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"নেটওয়ার্ক ব্যস্ত আছে। পরে আবার কল করার চেষ্টা করুন।"</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"কল ডিফ্লেক্ট করা হয়েছে।"</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"কল ফরওয়ার্ড করা হয়েছে।"</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"কল অপেক্ষায় রয়েছে।"</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"ফরওয়ার্ড করা কল।"</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"কনফারেন্স কলে যোগ দেওয়া হচ্ছে।"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"হোল্ডে থাকা কলটি রিলিজ করা রয়েছে।"</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"কল করা যাবে না কারণ ডিভাইসটি বর্তমানে প্রভিশনিং করা হচ্ছে।"</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"আপনি আগেই আউটগোয়িং কল ডায়াল করেছেন তাই অন্য কল করা যাবে না।"</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"কল করতে পারবেন না কারণ এমন একটি ইনকামিং কল আছে যার উত্তর দেওয়া হয়নি। নতুন কল করতে বর্তমান কলটির উত্তর দিন অথবা প্রত্যাখান করুন।"</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"\'ro.telephony কল বন্ধ করা সিস্টেম প্রপার্টি\' ব্যবহার করে কল বন্ধ করা হয়েছে তাই কল করা যাবে না।"</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"আগে থেকেই দুটি কল চলছে তাই কল করা যাবে না। নতুন কল করতে একটি কল বন্ধ করুন অথবা কনফারেন্স কলে মার্জ করুন।"</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ব্যবহার করতে হলে, মোবাইল ডেটা চালু আছে কিনা দেখে নিন। আপনি সেটিংস থেকে এটি পরিবর্তন করতে পারেন।"</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ব্যবহার করতে হলে, মোবাইল ডেটা এবং ডেটা রোমিং চালু আছে কিনা দেখে নিন। আপনি সেটিংস থেকে এটি পরিবর্তন করতে পারেন।"</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ব্যবহার করতে হলে, <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-এ মোবাইল ডেটা চালু আছে কিনা দেখে নিন। আপনি সেটিংস থেকে এটি পরিবর্তন করতে পারেন।"</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ব্যবহার করতে হলে, <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-এ মোবাইল ডেটা এবং ডেটা রোমিং চালু আছে কিনা দেখে নিন। আপনি সেটিংস থেকে এটি পরিবর্তন করতে পারেন।"</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"খারিজ করুন"</string>
</resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 37d5af3..fc29589 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD kȏd je pokrenut…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI kȏd je otkazan"</string>
<string name="cancel" msgid="5044513931633602634">"Otkaži"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD poruka mora imati između <xliff:g id="MIN_LEN">%d</xliff:g> i <xliff:g id="MAX_LEN">%d</xliff:g> znakova. Pokušajte ponovo."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD poruka mora imati između <xliff:g id="MIN_LEN">%1$d</xliff:g> i <xliff:g id="MAX_LEN">%2$d</xliff:g> znakova. Pokušajte ponovo."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Upravljanje konferencijskim pozivom"</string>
<string name="ok" msgid="3811371167865772377">"Uredu"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Zvučnik"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Govorna pošta"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Govorna pošta (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"GP:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Obavještenja"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Hitna emitiranja"</string>
<string name="call_settings" msgid="6112441768261754562">"Postavke poziva"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Poboljšani 4G LTE način rada"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Koristi LTE usluge za poboljšanje glasovne i drugih komunikacija (preporučeno)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Koristi 4G usluge za poboljšanje glasovne i drugih komunikacija (preporučeno)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Podaci su omogućeni"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Dozvoli korištenje podataka"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Pažnja"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Nije moguće nastaviti poziv."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Nije moguće odvojiti poziv."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Prijenos nije moguć."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Nije moguće spajanje poziva."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Nije moguće odbiti poziv."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nije moguće uputiti poziv(e)."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Nije moguće staviti pozive na čekanje."</string>
@@ -748,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Unesite lozinku"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Postavke zabrane poziva"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Deaktivirati sve postavke zabrane poziva?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Mreža je zauzeta. Pokušajte ponovo pozvati kasnije."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Poziv je preusmjeren."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Poziv je proslijeđen."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Poziv je na čekanju."</string>
@@ -765,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Poziv je proslijeđen."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Pridruživanje konferencijskom pozivu."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Čekanje poziva na čekanju je prekinuto."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Nije moguće uputiti poziv jer se usluge dodjeljuju uređaju."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Nije moguće uputiti poziv zbog uspostavljanja drugog odlaznog poziva."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Nije moguće uputiti poziv zbog neodgovorenog dolaznog poziva. Odgovorite ili odbijte dolazni poziv prije upućivanja novog poziva."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Nije moguće uputiti poziv zbog onemogućenog pozivanja putem sistemske funkcije ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Nije moguće uputiti poziv jer su dva poziva već u toku. Prekinite jedan od njih ili ih objedinite u konferencijski poziv prije upućivanja novog poziva."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Za korištenje usluge <xliff:g id="SUPP_SERVICE">%s</xliff:g>, provjerite je li uključen prijenos podataka na mobilnoj mreži. Ovo možete promijeniti u postavkama mobilne mreže."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Za korištenje usluge <xliff:g id="SUPP_SERVICE">%s</xliff:g>, provjerite jesu li uključeni prijenos podataka na mobilnoj mreži i roming podataka. Ovo možete promijeniti u postavkama mobilne mreže."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Za korištenje usluge <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, provjerite je li za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključen prijenos podataka na mobilnoj mreži. Ovo možete promijeniti u postavkama mobilne mreže."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Za korištenje usluge <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, provjerite jesu li za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključeni prijenos podataka na mobilnoj mreži i roming podataka. Ovo možete promijeniti u postavkama mobilne mreže."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Odbaci"</string>
</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 707d731..45889e9 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"S\'està executant el codi USSD..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Codi MMI cancel·lat"</string>
<string name="cancel" msgid="5044513931633602634">"Cancel·la"</string>
- <string name="enter_input" msgid="1810529547726803893">"El missatge USSD ha de contenir entre <xliff:g id="MIN_LEN">%d</xliff:g> i <xliff:g id="MAX_LEN">%d</xliff:g> caràcters. Torna-ho a provar."</string>
+ <string name="enter_input" msgid="1810529547726803893">"El missatge USSD ha de contenir entre <xliff:g id="MIN_LEN">%1$d</xliff:g> i <xliff:g id="MAX_LEN">%2$d</xliff:g> caràcters. Torna-ho a provar."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Gestiona la trucada de conferència"</string>
<string name="ok" msgid="3811371167865772377">"D\'acord"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Altaveu"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Bústia de veu"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Bústia de veu (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"CV:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notificacions"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Missatges d\'emergència"</string>
<string name="call_settings" msgid="6112441768261754562">"Configuració de trucada"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Mode 4G LTE millorat"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Utilitza els serveis LTE per millorar la veu i la comunicació (opció recomanada)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Utilitza els serveis 4G per millorar la veu i la comunicació (opció recomanada)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Dades activades"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Permet l\'ús de dades"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Atenció"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"No es pot reprendre la trucada."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"No es pot separar la trucada."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"No es poden realitzar transferències."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"No es poden combinar les trucades."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"No es pot rebutjar la trucada."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"No es poden alliberar trucades."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"No es poden posar les trucades en espera."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Escriu la contrasenya"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Configuració de restricció de trucades"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Vols desactivar la configuració de restricció de trucades?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"La xarxa està ocupada. Torna a provar de trucar més tard."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"S\'ha derivat la trucada."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"S\'ha desviat la trucada."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"La trucada està en espera."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"S\'ha desviat la trucada."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"T\'estàs unint a la conferència."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"S\'ha desconnectat la trucada en espera."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"No es pot fer la trucada perquè s\'està duent a terme el proveïment del dispositiu."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"No es pot fer la trucada perquè ja hi ha una trucada sortint en curs."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"No es pot fer la trucada perquè hi ha una trucada entrant sense resposta. Respon-hi o rebutja-la abans de fer més trucades."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"No es pot fer la trucada perquè l\'opció de trucar s\'ha desactivat mitjançant la propietat del sistema ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"No es pot fer la trucada perquè ja n\'hi ha dues en curs. Desconnecta\'n una o combina-les en una conferència abans de fer-ne més de noves."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Comprova que les dades mòbils estiguin activades per utilitzar <xliff:g id="SUPP_SERVICE">%s</xliff:g>. Pots canviar aquesta opció a la configuració de xarxa mòbil."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Comprova que les dades mòbils i la itinerància de dades estiguin activades per utilitzar <xliff:g id="SUPP_SERVICE">%s</xliff:g>. Pots canviar aquestes opcions a la configuració de xarxa mòbil."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Comprova que les dades mòbils estiguin activades a la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> per utilitzar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Pots canviar aquesta opció a la configuració de xarxa mòbil."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Comprova que les dades mòbils i la itinerància de dades estiguin activades a la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> per utilitzar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Pots canviar aquestes opcions a la configuració de xarxa mòbil."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Ignora"</string>
</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 14af2ed..746e645 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Kód USSD je spuštěn..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Kód MMI byl zrušen"</string>
<string name="cancel" msgid="5044513931633602634">"Zrušit"</string>
- <string name="enter_input" msgid="1810529547726803893">"Zpráva USSD musí mít délku od <xliff:g id="MIN_LEN">%d</xliff:g> do <xliff:g id="MAX_LEN">%d</xliff:g> znaků. Zkuste to znovu."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Zpráva USSD musí mít délku od <xliff:g id="MIN_LEN">%1$d</xliff:g> do <xliff:g id="MAX_LEN">%2$d</xliff:g> znaků. Zkuste to znovu."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Spravovat konferenční hovor"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Reproduktor"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Hlasová schránka"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Hlasová schránka (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"HS:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Oznámení"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Výstražné zprávy o výjimečné situaci"</string>
<string name="call_settings" msgid="6112441768261754562">"Nastavení hovorů"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Vylepšený režim 4G LTE"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Používat ke zlepšení hlasové a další komunikace služby LTE (doporučeno)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Používat ke zlepšení hlasové a další komunikace služby 4G (doporučeno)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Dat. přenosy aktivovány"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Povolit používání dat"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Pozor"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"V hovoru není možné pokračovat."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Hovor nelze rozdělit."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Hovor nelze předat."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Hovory se nepodařilo spojit."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Hovor nelze odmítnout."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Hovor nelze ukončit."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Hovory nelze podržet."</string>
@@ -750,6 +759,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Zadejte heslo"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Nastavení blokování hovorů"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Vypnout všechna nastavení blokování hovorů?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Síť je zaneprázdněná. Zkuste zavolat znovu později."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Hovor byl odkloněn."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Hovor byl přesměrován."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Hovor čeká."</string>
@@ -767,8 +777,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Přesměrovaný hovor."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Připojování ke konferenčnímu hovoru."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Podržený hovor byl odpojen."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Nemůžete provést hovor, protože zařízení se právě zajišťuje."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Nemůžete provést hovor, když už se jeden odchozí hovor vytáčí."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Nemůžete provést hovor, protože máte nepřijatý příchozí hovor. Přijměte nebo odmítněte příchozí hovor, než provedete nový."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Nemůžete provést hovor, protože volání bylo zakázáno systémovým příkazem ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Nemůžete provést hovor, protože už probíhají dva hovory. Odpojte jeden hovor nebo je slučte do konference, než provedete nový hovor."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Pokud chcete používat službu <xliff:g id="SUPP_SERVICE">%s</xliff:g>, zkontrolujte, že máte zapnutá mobilní data. Můžete to změnit v nastavení mobilní sítě."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Pokud chcete používat službu <xliff:g id="SUPP_SERVICE">%s</xliff:g>, zkontrolujte, že máte zapnutá mobilní data a datový roaming. Můžete to změnit v nastavení mobilní sítě."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Pokud chcete používat službu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, zkontrolujte, že máte zapnutá mobilní data pro SIM kartu <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Můžete to změnit v nastavení mobilní sítě."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Pokud chcete používat službu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, zkontrolujte, že máte zapnutá mobilní data a datový roaming pro SIM kartu <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Můžete to změnit v nastavení mobilní sítě."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Zavřít"</string>
</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index a02374a..8a03d00 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD-kode kører ..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI-nummer annulleret"</string>
<string name="cancel" msgid="5044513931633602634">"Annuller"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD-meddelelse skal være mellem <xliff:g id="MIN_LEN">%d</xliff:g> og <xliff:g id="MAX_LEN">%d</xliff:g> tegn. Prøv igen."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD-meddelelse skal være mellem <xliff:g id="MIN_LEN">%1$d</xliff:g> og <xliff:g id="MAX_LEN">%2$d</xliff:g> tegn. Prøv igen."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Administrer telefonmøde"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Højttaler"</string>
@@ -77,7 +77,13 @@
<string name="voicemail" msgid="8693759337917898954">"Telefonsvarer"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Telefonsvarer (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
- <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Underretninger"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
+ <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifikationer"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Nødudsendelser"</string>
<string name="call_settings" msgid="6112441768261754562">"Indstillinger for opkald"</string>
<string name="additional_gsm_call_settings" msgid="1391795981938800617">"Yderligere indstillinger"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Udvidet 4G LTE-tilstand"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Anvend LTE-tjenester til at forbedre tale og anden kommunikation (anbefalet)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Anvend 4G-tjenester til at forbedre tale og anden kommunikation (anbefalet)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Data aktiveret"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Tillad dataforbrug"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Bemærk!"</string>
@@ -249,14 +259,14 @@
<string name="roaming_warning" msgid="1603164667540144353">"Du kan risikere at skulle betale høje gebyrer."</string>
<string name="roaming_check_price_warning" msgid="7497570906830902550">"Kontakt din netværksudbyder for at få oplyst priser."</string>
<string name="roaming_alert_title" msgid="3654815360303826008">"Vil du tillade dataroaming?"</string>
- <string name="data_usage_title" msgid="4042209259808900283">"Appens dataforbrug"</string>
+ <string name="data_usage_title" msgid="4042209259808900283">"Dataforbrug fra apps"</string>
<string name="data_usage_template" msgid="8526428824844656364">"<xliff:g id="ID_1">%1$s</xliff:g> mobildata er brugt i perioden <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="advanced_options_title" msgid="8074895510265488035">"Avanceret"</string>
<string name="carrier_settings_euicc" msgid="6714062862127226405">"Mobilselskab"</string>
<string name="keywords_carrier_settings_euicc" msgid="6861505396475991277">"mobilselskab, esim, sim-kort, euicc, skift mobilselskab, tilføj mobilselskab"</string>
<string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<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="4661165467914727157">"Mobildata"</string>
- <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Få adgang til data via mobilnetværk"</string>
+ <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Brug data via mobilnetværk"</string>
<string name="data_usage_disable_mobile" msgid="3577275288809667615">"Vil du deaktivere mobildata?"</string>
<string name="sim_selection_required_pref" msgid="7049424902961844236">"Du har ikke valgt endnu"</string>
<string name="sim_change_data_title" msgid="5332425991853799280">"Skift SIM-kortet til data?"</string>
@@ -273,13 +283,9 @@
<!-- String.format failed for translation -->
<!-- no translation found for throttle_status_subtext (1657318943142085170) -->
<skip />
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
- <skip />
+ <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<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="7492763592720107737">"<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.format failed for translation -->
- <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
- <skip />
+ <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<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>
<string name="throttle_rate_subtext" msgid="2149102656120726855">"Datahastigheden er nedsat til <xliff:g id="USED">%1$d</xliff:g> Kb/s, hvis datagrænsen overskrides"</string>
<string name="throttle_help_subtext" msgid="5217706521499010816">"Oplysninger om mobilselskabets politik om databrug på netværket"</string>
<string name="cell_broadcast_sms" msgid="5584192824053625842">"Cell Broadcast-sms"</string>
@@ -439,7 +445,7 @@
<string name="simContacts_emptyLoading" msgid="2203331234764498011">"Læser fra SIM-kort ..."</string>
<string name="simContacts_empty" msgid="5270660846489561932">"Der er ingen kontakter på dit SIM-kort."</string>
<string name="simContacts_title" msgid="1861472842524839921">"Vælg kontakter, der skal importeres"</string>
- <string name="simContacts_airplaneMode" msgid="5254946758982621072">"Slå flytilstand fra for at importere kontaktpersoner fra SIM-kortet."</string>
+ <string name="simContacts_airplaneMode" msgid="5254946758982621072">"Slå flytilstand fra for at importere kontakter fra SIM-kortet."</string>
<string name="enable_pin" msgid="5422767284133234860">"Aktiver/deaktiver pinkode til SIM-kort"</string>
<string name="change_pin" msgid="9174186126330785343">"Skift pinkode til SIM-kort"</string>
<string name="enter_pin_text" msgid="8532615714751931951">"Pinkode til SIM-kort:"</string>
@@ -505,14 +511,13 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Opkaldet kan ikke genoptages."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Kan ikke adskille opkald."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Kan ikke overføre."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Opkaldene kunne ikke flettes."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Kan ikke afvise opkaldet."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Kan ikke frigive et eller flere opkald."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Opkald kan ikke sættes i venteposition."</string>
<string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Opret forbindelse til et trådløst netværk for at foretage et opkald."</string>
<string name="incall_error_promote_wfc" msgid="106510757624022064">"Aktivér Wi-Fi-opkald for at foretage et opkald."</string>
- <string name="emergency_information_hint" msgid="399011533038204351">"Oplysninger i nødsituationer"</string>
+ <string name="emergency_information_hint" msgid="399011533038204351">"Info til nødsituationer"</string>
<string name="emergency_information_owner_hint" msgid="688331472291637149">"Ejer"</string>
<string name="emergency_information_confirm_hint" msgid="4039012670779853030">"Tryk igen for at se oplysninger"</string>
<string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Nødopkald"</string>
@@ -752,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Angiv adgangskode"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Indstillinger for opkaldsspærring"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Vil du deaktivere alle indstillinger for opkaldsspærring?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Netværket er optaget. Prøv at ringe igen senere."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Opkaldet er viderestillet."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Opkaldet er videresendt."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Opkaldet er i venteposition."</string>
@@ -769,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Videresendt opkald."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Du deltager i konferenceopkaldet."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Det parkerede opkald er blevet frigivet."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Opkaldet kan ikke foretages, fordi enheden pt. provisioneres."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Der kan ikke foretages et opkald, fordi et udgående opkald allerede ringer."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Der kan ikke foretages et opkald, fordi et indgående opkald ringer. Besvar eller afvis det indgående opkald, før du foretager et nyt opkald."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Der kan ikke foretages et opkald, fordi foretagelse af opkald er blevet deaktiveret ved hjælp af systemegenskaben ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Der kan ikke foretages et opkald, fordi der allerede er to igangværende opkald. Afslut et af opkaldene, eller flet dem til et konferenceopkald, før du foretager et nyt opkald."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Hvis du vil bruge <xliff:g id="SUPP_SERVICE">%s</xliff:g>, skal du sørge for, at mobildata er slået til. Du kan ændre dette under indstillingerne for mobilnetværk."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Hvis du vil bruge <xliff:g id="SUPP_SERVICE">%s</xliff:g>, skal du sørge for, at mobildata og dataroaming er slået til. Du kan ændre dette under indstillingerne for mobilnetværk."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Hvis du vil bruge <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, skal du sørge for, at mobildata er slået til for SIM-kortet <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Du kan ændre dette under indstillingerne for mobilnetværk."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Hvis du vil bruge <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, skal du sørge for, at mobildata og dataroaming er slået til for SIM-kortet <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Du kan ændre dette under indstillingerne for mobilnetværk."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Luk"</string>
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index faa42e0..88c6952 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD-Code wird ausgeführt..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI-Code abgebrochen"</string>
<string name="cancel" msgid="5044513931633602634">"Abbrechen"</string>
- <string name="enter_input" msgid="1810529547726803893">"Die USSD-Nachricht muss zwischen <xliff:g id="MIN_LEN">%d</xliff:g> und <xliff:g id="MAX_LEN">%d</xliff:g> Zeichen lang sein. Bitte versuche es noch einmal."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Die USSD-Nachricht muss zwischen <xliff:g id="MIN_LEN">%1$d</xliff:g> und <xliff:g id="MAX_LEN">%2$d</xliff:g> Zeichen lang sein. Bitte versuche es noch einmal."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Telefonkonferenz verwalten"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Lautsprecher"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Mailbox"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Mailbox (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"MB:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Benachrichtigungen"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Notfallbenachrichtigungen"</string>
<string name="call_settings" msgid="6112441768261754562">"Anrufeinstellungen"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Erweiterter 4G LTE-Modus"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Zur Verbesserung von Sprache und Kommunikation LTE-Dienste verwenden (empfohlen)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Zur Verbesserung von Sprache und Kommunikation 4G-Dienste verwenden (empfohlen)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Daten aktiviert"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Datennutzung zulassen"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Achtung"</string>
@@ -273,11 +283,9 @@
<!-- String.format failed for translation -->
<!-- no translation found for throttle_status_subtext (1657318943142085170) -->
<skip />
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
- <skip />
+ <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<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="7492763592720107737">"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="7732763021560399960">"<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>
+ <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<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>
<string name="throttle_rate_subtext" msgid="2149102656120726855">"Datenrate wird auf <xliff:g id="USED">%1$d</xliff:g> kbit/s reduziert, wenn Datennutzungslimit überschritten wird."</string>
<string name="throttle_help_subtext" msgid="5217706521499010816">"Weitere Informationen über die Richtlinien deines Mobilfunkanbieters zur Nutzung der Mobilfunknetzdaten"</string>
<string name="cell_broadcast_sms" msgid="5584192824053625842">"Cell Broadcast SMS"</string>
@@ -503,8 +511,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Anruf kann nicht fortgesetzt werden."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Anruf kann nicht getrennt werden."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Anruf kann nicht übergeben werden."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Anrufe können nicht zusammengeführt werden."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Anruf kann nicht abgelehnt werden."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Anrufe können nicht freigegeben werden."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Anrufe können nicht gehalten werden."</string>
@@ -526,7 +533,7 @@
<string name="dial_emergency_calling_not_available" msgid="5675557523782491826">"Notruf nicht verfügbar"</string>
<string name="police_type_description" msgid="5324410799919829693">"Polizei"</string>
<string name="ambulance_type_description" msgid="4114815025408089866">"Krankenwagen"</string>
- <string name="fire_type_description" msgid="7145996705197064710">"Feuer"</string>
+ <string name="fire_type_description" msgid="7145996705197064710">"Feuerwehr"</string>
<string name="description_concat_format" msgid="7141070875487870177">"%1$s, %2$s"</string>
<string name="dialerKeyboardHintText" msgid="9192914825413747792">"Zum Wählen Tastatur verwenden"</string>
<string name="onscreenHoldText" msgid="2285258239691145872">"Halten"</string>
@@ -750,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Passwort eingeben"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Einstellungen zur Anrufsperre"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Alle Einstellungen zur Anrufsperre deaktivieren?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Das Netzwerk ist ausgelastet. Bitte versuche es später noch einmal."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Anruf umgeleitet."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Anruf weitergeleitet."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Anklopfen."</string>
@@ -767,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Anruf weitergeleitet."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"An Telefonkonferenz teilnehmen."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Gehaltener Anruf wurde beendet."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Der Anruf kann nicht getätigt werden, da das Gerät gerade bereitgestellt wird."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Anruf nicht möglich, da bereits ein anderer ausgehender Anruf aufgebaut wird."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Anruf nicht möglich, da ein nicht angenommener eingehender Anruf vorhanden ist. Nimm den eingehenden Anruf an oder lehne ihn ab, bevor du einen neuen Anruf startest."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Anruf nicht möglich, weil Anrufe über die Systemeigenschaft \"ro.telephony.disable-call\" deaktiviert wurden."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Anruf nicht möglich, weil bereits zwei Anrufe aktiv sind. Beenden einen der Anrufe oder führe beide Anrufe in einer Telefonkonferenz zusammen, bevor du einen neuen Anruf startest."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Damit du <xliff:g id="SUPP_SERVICE">%s</xliff:g> nutzen kannst, müssen mobile Daten aktiviert sein. Du kannst dies in den Einstellungen für das Mobilfunknetz ändern."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Damit du <xliff:g id="SUPP_SERVICE">%s</xliff:g> nutzen kannst, müssen mobile Daten und Daten-Roaming aktiviert sein. Du kannst dies in den Einstellungen für das Mobilfunknetz ändern."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Damit du <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> nutzen kannst, müssen mobile Daten für SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> aktiviert sein. Du kannst dies in den Einstellungen für das Mobilfunknetz ändern."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Damit du <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> nutzen kannst, müssen mobile Daten und Daten-Roaming für SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> aktiviert sein. Du kannst dies in den Einstellungen für das Mobilfunknetz ändern."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Schließen"</string>
</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index a9c4aef..0999e97 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Ο κώδικας USSD εκτελείται..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Ο κώδικας MMI ακυρώθηκε"</string>
<string name="cancel" msgid="5044513931633602634">"Ακύρωση"</string>
- <string name="enter_input" msgid="1810529547726803893">"Το μήνυμα USSD θα πρέπει να αποτελείται από <xliff:g id="MIN_LEN">%d</xliff:g> έως <xliff:g id="MAX_LEN">%d</xliff:g> χαρακτήρες. Δοκιμάστε ξανά."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Το μήνυμα USSD θα πρέπει να αποτελείται από <xliff:g id="MIN_LEN">%1$d</xliff:g> έως <xliff:g id="MAX_LEN">%2$d</xliff:g> χαρακτήρες. Δοκιμάστε ξανά."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Διαχείριση κλήσης συνδιάσκεψης"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Ηχείο"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Αυτόματος τηλεφωνητής"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Τηλεφωνητής (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"ΑΤ:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Ειδοποιήσεις"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Εκπομπές έκτακτης ανάγκης"</string>
<string name="call_settings" msgid="6112441768261754562">"Ρυθμίσεις κλήσης"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Βελτιωμένη λειτουργία 4G LTE"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Χρήση υπηρεσιών LTE για τη βελτίωση της φωνητικής επικοινωνίας και άλλου είδους επικοινωνιών (συνιστάται)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Χρήση υπηρεσιών 4G για τη βελτίωση της φωνητικής επικοινωνίας και άλλου είδους επικοινωνιών (συνιστάται)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Ενεργοποίηση δεδομένων"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Επιτρέπεται η χρήση δεδομένων"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Προσοχή"</string>
@@ -250,7 +260,7 @@
<string name="roaming_check_price_warning" msgid="7497570906830902550">"Επικοινωνήστε με τον πάροχο του δικτύου για τις τιμές."</string>
<string name="roaming_alert_title" msgid="3654815360303826008">"Να επιτρέπεται η περιαγωγή δεδομένων;"</string>
<string name="data_usage_title" msgid="4042209259808900283">"Χρήση δεδομένων εφαρμογής"</string>
- <string name="data_usage_template" msgid="8526428824844656364">"<xliff:g id="ID_1">%1$s</xliff:g> δεδομένα κινητής τηλεφωνίας σε χρήση μεταξύ <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="data_usage_template" msgid="8526428824844656364">"<xliff:g id="ID_1">%1$s</xliff:g> δεδομένων κινητής τηλεφωνίας χρησιμοποιήθηκαν μεταξύ <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="advanced_options_title" msgid="8074895510265488035">"Σύνθετες ρυθμίσεις"</string>
<string name="carrier_settings_euicc" msgid="6714062862127226405">"Εταιρεία κινητής τηλεφωνίας"</string>
<string name="keywords_carrier_settings_euicc" msgid="6861505396475991277">"εταιρεία κινητής τηλεφωνίας, esim, sim, euicc, αλλαγή εταιρείας κινητής τηλεφωνίας, προσθήκη εταιρείας κινητής τηλεφωνίας"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Δεν είναι δυνατή η συνέχιση της κλήσης."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Δεν είναι δυνατός ο διαχωρισμός της κλήσης."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Δεν είναι δυνατή η μεταφορά."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Δεν είναι δυνατή η συγχώνευση των κλήσεων."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Δεν είναι δυνατή η απόρριψη της κλήσης."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Δεν είναι δυνατή η πραγματοποίηση κλήσεων."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Δεν είναι δυνατή η αναμονή κλήσεων."</string>
@@ -522,7 +531,7 @@
<string name="dial_emergency_calling_not_available" msgid="5675557523782491826">"Η δυνατότητα κλήσεων έκτακτης ανάγκης δεν είναι διαθέσιμη"</string>
<string name="police_type_description" msgid="5324410799919829693">"Αστυνομία"</string>
<string name="ambulance_type_description" msgid="4114815025408089866">"Ασθενοφόρο"</string>
- <string name="fire_type_description" msgid="7145996705197064710">"Πυρκαγιά"</string>
+ <string name="fire_type_description" msgid="7145996705197064710">"Πυροσβεστική"</string>
<string name="description_concat_format" msgid="7141070875487870177">"%1$s, %2$s"</string>
<string name="dialerKeyboardHintText" msgid="9192914825413747792">"Χρησιμοποιήστε το πληκτρολόγιο για να πραγματοποιήσετε καλέσετε έναν αριθμό"</string>
<string name="onscreenHoldText" msgid="2285258239691145872">"Αναμονή"</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Εισαγωγή κωδικού πρόσβασης"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Ρυθμίσεις φραγής κλήσεων"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Απενεργοποίηση όλων των ρυθμίσεων φραγής κλήσεων;"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Το δίκτυο είναι απασχολημένο. Δοκιμάστε να καλέσετε αργότερα."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Έγινε εκτροπή της κλήσης."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Η κλήση προωθήθηκε."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Η κλήση είναι σε αναμονή."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Έγινε προώθηση της κλήσης."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Συμμετοχή σε κλήση διάσκεψης."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Έγινε αποδέσμευση της κλήσης σε κράτηση."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Δεν είναι δυνατή η πραγματοποίηση κλήσης, καθώς εκτελείται παροχή υπηρεσιών στη συσκευή αυτήν τη στιγμή."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Δεν είναι δυνατή η πραγματοποίηση της κλήσης, επειδή βρίσκεται ήδη σε εξέλιξη εξερχόμενη κλήση."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Δεν είναι δυνατή η πραγματοποίηση κλήσης, επειδή υπάρχει αναπάντητη εισερχόμενη κλήση. Απαντήστε ή απορρίψτε την εισερχόμενη κλήση, προτού πραγματοποιήσετε μια νέα κλήση."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Δεν είναι δυνατή η πραγματοποίηση κλήσης επειδή η κλήση έχει απενεργοποιηθεί μέσω της ιδιότητας συστήματος ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Δεν είναι δυνατή η πραγματοποίηση κλήσης, επειδή υπάρχουν ήδη δύο κλήσεις σε εξέλιξη. Αποσυνδέστε μια από τις κλήσεις ή συγχωνεύστε τες σε μια διάσκεψη, προτού πραγματοποιήσετε μια νέα κλήση."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Για να χρησιμοποιήσετε την υπηρεσία \"<xliff:g id="SUPP_SERVICE">%s</xliff:g>\", βεβαιωθείτε ότι τα δεδομένα κινητής τηλεφωνίας είναι ενεργοποιημένα. Μπορείτε να το αλλάξετε αυτό από τις ρυθμίσεις δικτύου κινητής τηλεφωνίας."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Για να χρησιμοποιήσετε την υπηρεσία \"<xliff:g id="SUPP_SERVICE">%s</xliff:g>\", βεβαιωθείτε ότι τα δεδομένα κινητής τηλεφωνίας, καθώς και η περιαγωγή δεδομένων, είναι ενεργοποιημένα. Μπορείτε να το αλλάξετε αυτό από τις ρυθμίσεις δικτύου κινητής τηλεφωνίας."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Για να χρησιμοποιήσετε την υπηρεσία \"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>\", βεβαιωθείτε ότι τα δεδομένα κινητής τηλεφωνίας είναι ενεργοποιημένα για τη SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Μπορείτε να το αλλάξετε αυτό από τις ρυθμίσεις δικτύου κινητής τηλεφωνίας."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Για να χρησιμοποιήσετε την υπηρεσία \"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>\", βεβαιωθείτε ότι τα δεδομένα κινητής τηλεφωνίας, καθώς και η περιαγωγή δεδομένων, είναι ενεργοποιημένα για τη SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Μπορείτε να το αλλάξετε αυτό από τις ρυθμίσεις δικτύου κινητής τηλεφωνίας."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Απόρριψη"</string>
</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 7175099..07a9a84 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD code running…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI code cancelled"</string>
<string name="cancel" msgid="5044513931633602634">"Cancel"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD message must be between <xliff:g id="MIN_LEN">%d</xliff:g> and <xliff:g id="MAX_LEN">%d</xliff:g> characters. Please try again."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD message must be between <xliff:g id="MIN_LEN">%1$d</xliff:g> and <xliff:g id="MAX_LEN">%2$d</xliff:g> characters. Please try again."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Manage conference call"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Speaker"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Voicemail"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifications"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Emergency broadcasts"</string>
<string name="call_settings" msgid="6112441768261754562">"Call settings"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Enhanced 4G LTE Mode"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Use LTE services to improve voice and other communications (recommended)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Use 4G services to improve voice and other communications (recommended)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Data enabled"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Allow data usage"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Attention"</string>
@@ -745,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Enter password"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Call barring settings"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Deactivate all call barring settings?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Network is busy. Please try placing your call again later."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Call deflected."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Call forwarded."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Call is waiting."</string>
@@ -762,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Forwarded call."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Joining conference call."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Held call has been released."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Cannot place a call as the device is currently being provisioned."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Cannot place a call as another outgoing call is already dialling."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Cannot place a call as there is an unanswered incoming call. Answer or reject the incoming call prior to placing a new call."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Cannot place a call as calling has been disabled using the ro.telephony.disable-call system property."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Cannot place a call a there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data is turned on. You can change this in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data and data roaming are turned on. You can change these in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data and data roaming are turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change these in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Dismiss"</string>
</resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index cce7ebc..3aa7e78 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD code running…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI code cancelled"</string>
<string name="cancel" msgid="5044513931633602634">"Cancel"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD message must be between <xliff:g id="MIN_LEN">%d</xliff:g> and <xliff:g id="MAX_LEN">%d</xliff:g> characters. Please try again."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD message must be between <xliff:g id="MIN_LEN">%1$d</xliff:g> and <xliff:g id="MAX_LEN">%2$d</xliff:g> characters. Please try again."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Manage conference call"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Speaker"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Voicemail"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifications"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Emergency broadcasts"</string>
<string name="call_settings" msgid="6112441768261754562">"Call settings"</string>
@@ -127,10 +133,10 @@
<string name="reverting_settings" msgid="4752151682666912828">"Reverting settings…"</string>
<string name="response_error" msgid="6674110501330139405">"Unexpected response from network."</string>
<string name="exception_error" msgid="7027667130619518211">"Network or SIM card error."</string>
- <string name="stk_cc_ss_to_dial_error" msgid="2816779198916570502">"SS request modified to DIAL request."</string>
- <string name="stk_cc_ss_to_ussd_error" msgid="7490626178582654236">"SS request modified to USSD request."</string>
- <string name="stk_cc_ss_to_ss_error" msgid="5057846756489053759">"SS request modified to new SS request."</string>
- <string name="stk_cc_ss_to_dial_video_error" msgid="3091186225006683939">"SS request modified to Video DIAL request."</string>
+ <string name="stk_cc_ss_to_dial_error" msgid="4440038807310535377">"SS request changed to regular call"</string>
+ <string name="stk_cc_ss_to_ussd_error" msgid="6095812685884176176">"SS request changed to USSD request"</string>
+ <string name="stk_cc_ss_to_ss_error" msgid="7920654012697945858">"Changed to new SS request"</string>
+ <string name="stk_cc_ss_to_dial_video_error" msgid="3873905132181743781">"SS request changed to video call"</string>
<string name="fdn_check_failure" msgid="18200614306525434">"Your Phone app\'s fixed dialling numbers setting is turned on. As a result, some call-related features aren\'t working."</string>
<string name="radio_off_error" msgid="2304459933248513376">"Please turn on the radio before viewing these settings."</string>
<string name="close_dialog" msgid="2365884406356986917">"OK"</string>
@@ -163,19 +169,25 @@
<string name="label_available" msgid="1181658289009300430">"Available networks"</string>
<string name="load_networks_progress" msgid="5230707536168902952">"Searching…"</string>
<string name="empty_networks_list" msgid="4249426905018815316">"No networks found."</string>
- <string name="network_query_error" msgid="6828516148953325006">"Error while searching for networks."</string>
+ <string name="network_query_error" msgid="8466081377231178298">"Couldn\'t find networks. Try again."</string>
<string name="register_on_network" msgid="9055203954040805084">"Registering on <xliff:g id="NETWORK">%s</xliff:g>…"</string>
<string name="not_allowed" msgid="5613353860205691579">"Your SIM card doesn\'t allow a connection to this network."</string>
<string name="connect_later" msgid="2308119155752343975">"Can\'t connect to this network at the moment. Try again later."</string>
<string name="registration_done" msgid="495135664535876612">"Registered on network."</string>
<string name="already_auto" msgid="6067116884321285507">"Already in automatic selection."</string>
<string name="select_automatically" msgid="1046727200631770962">"Automatically select network"</string>
+ <string name="manual_mode_disallowed_summary" msgid="70662262085937277">"Unavailable when connected to %1$s"</string>
<string name="network_select_title" msgid="7733107364757544558">"Network"</string>
<string name="register_automatically" msgid="6017849844573519637">"Automatic registration..."</string>
<string name="preferred_network_mode_title" msgid="2336624679902659306">"Preferred network type"</string>
<string name="preferred_network_mode_summary" msgid="1434820673166126609">"Change the network operating mode"</string>
<string name="preferred_network_mode_dialogtitle" msgid="4048082093347807230">"Preferred network type"</string>
<string name="forbidden_network" msgid="4384929668343563440">"(forbidden)"</string>
+ <string name="choose_network_title" msgid="4023911977543009350">"Choose network"</string>
+ <string name="network_disconnected" msgid="2227251609006103194">"Disconnected"</string>
+ <string name="network_connected" msgid="1288589103624338857">"Connected"</string>
+ <string name="network_connecting" msgid="4927203097283533783">"Connecting…"</string>
+ <string name="network_could_not_connect" msgid="8254009365807767243">"Couldn’t connect"</string>
<string-array name="preferred_network_mode_choices">
<item msgid="3628460389382468528">"GSM/WCDMA preferred"</item>
<item msgid="8442633436636425221">"GSM only"</item>
@@ -230,22 +242,27 @@
<string name="call_category" msgid="5863978196309462052">"Calling"</string>
<string name="network_operator_category" msgid="4830701959205735636">"Network"</string>
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Enhanced 4G LTE Mode"</string>
- <string name="enhanced_4g_lte_mode_title_variant" msgid="4871126028907265406">"Advanced calling"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Use LTE services to improve voice and other communications (recommended)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Use 4G services to improve voice and other communications (recommended)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Data enabled"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Allow data usage"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Attention"</string>
<string name="roaming" msgid="7894878421600247140">"Roaming"</string>
<string name="roaming_enable" msgid="7331106985174381987">"Connect to data services when roaming"</string>
<string name="roaming_disable" msgid="1843417228755568110">"Connect to data services when roaming"</string>
- <string name="roaming_reenable_message" msgid="8913735676127858115">"You have lost data connectivity because you left your home network with data roaming turned off."</string>
+ <string name="roaming_reenable_message" msgid="6843814381576397939">"Data roaming is turned off. Tap to turn on."</string>
+ <string name="roaming_notification_title" msgid="4749053220884743110">"Lost mobile data connection"</string>
<string name="roaming_warning" msgid="1603164667540144353">"You may incur significant charges."</string>
<string name="roaming_check_price_warning" msgid="7497570906830902550">"Check with your network provider for pricing."</string>
<string name="roaming_alert_title" msgid="3654815360303826008">"Allow data roaming?"</string>
- <string name="data_usage_title" msgid="8759619109516889802">"Data usage"</string>
+ <string name="data_usage_title" msgid="4042209259808900283">"App data usage"</string>
<string name="data_usage_template" msgid="8526428824844656364">"<xliff:g id="ID_1">%1$s</xliff:g> mobile data used <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="advanced_options_title" msgid="8074895510265488035">"Advanced"</string>
- <string name="carrier_settings_euicc" msgid="6714062862127226405">"Operator"</string>
+ <string name="carrier_settings_euicc" msgid="6714062862127226405">"Carrier"</string>
<string name="keywords_carrier_settings_euicc" msgid="6861505396475991277">"operator, esim, sim, euicc, switch operators, add operator"</string>
<string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<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="4661165467914727157">"Mobile data"</string>
@@ -476,7 +493,7 @@
<string name="notification_voicemail_text_format" msgid="4447323569453981685">"Dial <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
<string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Voicemail number unknown"</string>
<string name="notification_network_selection_title" msgid="4224455487793492772">"No service"</string>
- <string name="notification_network_selection_text" msgid="2607085729661923269">"Selected network (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) unavailable"</string>
+ <string name="notification_network_selection_text" msgid="7550380440576731104">"Selected network<xliff:g id="OPERATOR_NAME">%s</xliff:g> unavailable"</string>
<string name="incall_error_power_off" product="watch" msgid="2007450435656211658">"Turn on mobile network, turn off airplane mode or turn off battery saver mode to make a call."</string>
<string name="incall_error_power_off" product="default" msgid="2947938060513306698">"Turn off aeroplane mode to make a call."</string>
<string name="incall_error_power_off_wfc" msgid="8711428920632416575">"Turn off aeroplane mode or connect to a wireless network to make a call."</string>
@@ -489,20 +506,33 @@
<string name="incall_error_cannot_add_call" msgid="8878159278947023326">"Call cannot be added at this time. You can try to get in touch by sending a message."</string>
<string name="incall_error_supp_service_unknown" msgid="655570339115407698">"Service not supported"</string>
<string name="incall_error_supp_service_switch" msgid="5237002176899962862">"Can\'t switch calls."</string>
+ <string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Can\'t resume call."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Can\'t separate call."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Can\'t transfer."</string>
- <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Unable to conference calls."</string>
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Unable to merge calls."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Can\'t reject call."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Can\'t release call(s)."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Can\'t hold calls."</string>
<string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Connect to a wireless network to make a call."</string>
<string name="incall_error_promote_wfc" msgid="106510757624022064">"Enable Wi-Fi calling to make a call."</string>
+ <string name="emergency_information_hint" msgid="399011533038204351">"Emergency information"</string>
+ <string name="emergency_information_owner_hint" msgid="688331472291637149">"Owner"</string>
+ <string name="emergency_information_confirm_hint" msgid="4039012670779853030">"Tap again to view info"</string>
<string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Emergency call"</string>
+ <string name="emergency_dialpad_title" msgid="6052294225467269233">"Emergency calls only"</string>
+ <string name="single_emergency_number_title" msgid="4959203129714396515">"Emergency number"</string>
+ <string name="numerous_emergency_numbers_title" msgid="754158099451343898">"Emergency numbers"</string>
+ <string name="emergency_call_shortcut_hint" msgid="6506167229097004348">"Tap again to call <xliff:g id="EMERGENCY_NUMBER">%s</xliff:g>"</string>
<string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Turning on radio…"</string>
<string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"No service. Trying again…"</string>
<string name="radio_off_during_emergency_call" msgid="2535800034010306830">"Cannot enter aeroplane mode during an emergency call."</string>
<string name="dial_emergency_error" msgid="1509085166367420355">"Can\'t call. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is not an emergency number."</string>
<string name="dial_emergency_empty_error" msgid="9130194953830414638">"Can\'t call. Dial an emergency number."</string>
+ <string name="dial_emergency_calling_not_available" msgid="5675557523782491826">"Emergency calling not available"</string>
+ <string name="police_type_description" msgid="5324410799919829693">"Police"</string>
+ <string name="ambulance_type_description" msgid="4114815025408089866">"Ambulance"</string>
+ <string name="fire_type_description" msgid="7145996705197064710">"Fire"</string>
+ <string name="description_concat_format" msgid="7141070875487870177">"%1$s, %2$s"</string>
<string name="dialerKeyboardHintText" msgid="9192914825413747792">"Use keyboard to dial"</string>
<string name="onscreenHoldText" msgid="2285258239691145872">"Hold"</string>
<string name="onscreenEndCallText" msgid="4403855834875398585">"End"</string>
@@ -523,8 +553,9 @@
<string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Failed to import contact"</string>
<string name="hac_mode_title" msgid="8740268574688743289">"Hearing aids"</string>
<string name="hac_mode_summary" msgid="6833851160514929341">"Turn on hearing-aid compatibility"</string>
- <string name="rtt_mode_title" msgid="5868105073514206953">"RTT"</string>
- <string name="rtt_mode_summary" msgid="7346441783429748083">"Turn RTT on or off"</string>
+ <string name="rtt_mode_title" msgid="6954652435543570121">"Real-time text (RTT) call"</string>
+ <string name="rtt_mode_summary" msgid="5146344277246544580">"Allow messaging within a voice call"</string>
+ <string name="rtt_mode_more_information" msgid="6080420780730383030">"RTT assists callers who are deaf, hard of hearing, have a speech disability or need more than voice alone.<br> <a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>>Learn more</a>\n <br><br> – RTT calls are saved as a message transcript\n <br> – RTT is not available for video calls"</string>
<string-array name="tty_mode_entries">
<item msgid="512950011423868021">"TTY off"</item>
<item msgid="3971695875449640648">"TTY full"</item>
@@ -587,6 +618,8 @@
<string name="selectContact" msgid="781975788478987237">"select contact"</string>
<string name="not_voice_capable" msgid="2739898841461577811">"Voice calling not supported"</string>
<string name="description_dial_button" msgid="7459705245418435351">"dial"</string>
+ <string name="description_dialpad_button" msgid="5220006811894230590">"show dial pad"</string>
+ <string name="pane_title_emergency_dialpad" msgid="1148505414688493134">"Emergency dial pad"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Visual Voicemail"</string>
<string name="voicemail_set_pin_dialog_title" msgid="2797924461029093837">"Set PIN"</string>
<string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Change PIN"</string>
@@ -637,58 +670,58 @@
<string name="mobile_data_activate_button" msgid="3682400969184405446">"ADD DATA"</string>
<string name="mobile_data_activate_cancel_button" msgid="1708022171547398765">"CANCEL"</string>
<string name="clh_card_title_call_ended_txt" msgid="4072101334811753823">"Call ended"</string>
- <string name="clh_callFailed_powerOff_txt" msgid="3773036949107147708">"Radio off"</string>
- <string name="clh_callFailed_simError_txt" msgid="757650590524277969">"No SIM card or SIM card error"</string>
+ <string name="clh_callFailed_powerOff_txt" msgid="1049579267090569308">"Aeroplane mode is on"</string>
+ <string name="clh_callFailed_simError_txt" msgid="7273306159809203315">"Can\'t access SIM card"</string>
<string name="clh_incall_error_out_of_service_txt" msgid="3974373603657193827">"Mobile network not available"</string>
- <string name="clh_callFailed_unassigned_number_txt" msgid="7635996793232604064">"Unassigned (unallocated) number"</string>
- <string name="clh_callFailed_no_route_to_destination_txt" msgid="8561586745288855167">"No route to destination"</string>
- <string name="clh_callFailed_channel_unacceptable_txt" msgid="8048626924246611459">"Channel unacceptable"</string>
- <string name="clh_callFailed_operator_determined_barring_txt" msgid="6889705714244076823">"Operator determined barring"</string>
- <string name="clh_callFailed_normal_call_clearing_txt" msgid="2810975267106345820">"Normal call clearing"</string>
+ <string name="clh_callFailed_unassigned_number_txt" msgid="4722164461846838251">"Issue with phone number you are trying to dial. Error code 1."</string>
+ <string name="clh_callFailed_no_route_to_destination_txt" msgid="2259464183880140671">"Couldn\'t complete call. Error code 3."</string>
+ <string name="clh_callFailed_channel_unacceptable_txt" msgid="3159336281525222855">"Couldn\'t complete call. Error code 6."</string>
+ <string name="clh_callFailed_operator_determined_barring_txt" msgid="1831977101604817389">"Couldn\'t complete call. Error code 8."</string>
+ <string name="clh_callFailed_normal_call_clearing_txt" msgid="7369313431310446847">"Couldn\'t complete call. Error code 16."</string>
<string name="clh_callFailed_user_busy_txt" msgid="2736095995784746915">"User busy"</string>
- <string name="clh_callFailed_no_user_responding_txt" msgid="1421543095873040084">"No user responding"</string>
- <string name="clh_callFailed_user_alerting_txt" msgid="6606245970376797447">"User alerting, no answer"</string>
+ <string name="clh_callFailed_no_user_responding_txt" msgid="3675206502567252162">"User not responding"</string>
+ <string name="clh_callFailed_user_alerting_txt" msgid="363445537769733281">"Couldn\'t complete call. Error code 19."</string>
<string name="clh_callFailed_call_rejected_txt" msgid="8001665478195793223">"Call rejected"</string>
<string name="clh_callFailed_number_changed_txt" msgid="5127909898925154242">"Number changed"</string>
- <string name="clh_callFailed_pre_emption_txt" msgid="6864702416751338567">"Pre-emption"</string>
- <string name="clh_callFailed_non_selected_user_clearing_txt" msgid="8725898326616836656">"Non-selected user clearing"</string>
- <string name="clh_callFailed_destination_out_of_order_txt" msgid="6626355413556362437">"Destination out of order"</string>
+ <string name="clh_callFailed_pre_emption_txt" msgid="1100414016302714854">"Couldn\'t complete call. Error code 25."</string>
+ <string name="clh_callFailed_non_selected_user_clearing_txt" msgid="6248192300127702626">"Couldn\'t complete call. Error code 26."</string>
+ <string name="clh_callFailed_destination_out_of_order_txt" msgid="4879936907430554772">"Couldn\'t complete call. Error code 27."</string>
<string name="clh_callFailed_invalid_number_format_txt" msgid="6987646655639655370">"Invalid number format (incomplete number)"</string>
- <string name="clh_callFailed_facility_rejected_txt" msgid="4539787567476563415">"Facility rejected"</string>
- <string name="clh_callFailed_response_to_STATUS_ENQUIRY_txt" msgid="178503536263624366">"Response to STATUS ENQUIRY"</string>
- <string name="clh_callFailed_normal_unspecified_txt" msgid="2777574148560245427">"Normal, unspecified"</string>
- <string name="clh_callFailed_no_circuit_available_txt" msgid="2894749820848784700">"No circuit/channel available"</string>
- <string name="clh_callFailed_network_out_of_order_txt" msgid="807472585030492179">"Network out of order"</string>
- <string name="clh_callFailed_temporary_failure_txt" msgid="1985847623937655151">"Temporary failure"</string>
- <string name="clh_callFailed_switching_equipment_congestion_txt" msgid="465517139462928431">"Switching equipment congestion"</string>
- <string name="clh_callFailed_access_information_discarded_txt" msgid="132851305339579892">"Access information discarded"</string>
- <string name="clh_callFailed_requested_circuit_txt" msgid="2316345471851443847">"Requested circuit/channel not available"</string>
- <string name="clh_callFailed_resources_unavailable_unspecified_txt" msgid="4460267429142724322">"Resources unavailable, unspecified"</string>
- <string name="clh_callFailed_quality_of_service_unavailable_txt" msgid="7315823047206338755">"Quality of service unavailable"</string>
- <string name="clh_callFailed_requested_facility_not_subscribed_txt" msgid="1688438372518949530">"Requested facility not subscribed"</string>
- <string name="clh_callFailed_incoming_calls_barred_within_the_CUG_txt" msgid="3922231620226043342">"Incoming calls barred within the CUG"</string>
- <string name="clh_callFailed_bearer_capability_not_authorized_txt" msgid="6515594235334537340">"Bearer capability not authorised"</string>
- <string name="clh_callFailed_bearer_capability_not_presently_available_txt" msgid="8013567156449692135">"Bearer capability not presently available"</string>
- <string name="clh_callFailed_service_or_option_not_available_unspecified_txt" msgid="8663374141880847414">"Service or option not available, unspecified"</string>
- <string name="clh_callFailed_bearer_service_not_implemented_txt" msgid="2772484977847973583">"Bearer service not implemented"</string>
- <string name="clh_callFailed_ACM_equal_to_or_greater_than_ACMmax_txt" msgid="2192709279981159761">"ACM equal to or greater than ACMmax"</string>
- <string name="clh_callFailed_requested_facility_not_implemented_txt" msgid="406404292085779118">"Requested facility not implemented"</string>
- <string name="clh_callFailed_only_restricted_digital_information_bearer_capability_is_available_txt" msgid="4817899794531157207">"Only restricted digital information bearer capability is available"</string>
- <string name="clh_callFailed_service_or_option_not_implemented_unspecified_txt" msgid="2968655784896862505">"Service or option not implemented, unspecified"</string>
- <string name="clh_callFailed_invalid_transaction_identifier_value_txt" msgid="3843478518660918642">"Invalid transaction identifier value"</string>
- <string name="clh_callFailed_user_not_member_of_CUG_txt" msgid="8462852903153938988">"User not member of CUG"</string>
- <string name="clh_callFailed_incompatible_destination_txt" msgid="2580750652910253219">"Incompatible destination"</string>
- <string name="clh_callFailed_invalid_transit_network_selection_txt" msgid="6589916900457111005">"Invalid transit network selection"</string>
- <string name="clh_callFailed_semantically_incorrect_message_txt" msgid="2329284157442218683">"Semantically incorrect message"</string>
- <string name="clh_callFailed_invalid_mandatory_information_txt" msgid="9081556111928912676">"Invalid mandatory information"</string>
- <string name="clh_callFailed_message_type_non_existent_or_not_implemented_txt" msgid="2641350895896546715">"Message type non-existent or not implemented"</string>
- <string name="clh_callFailed_message_type_not_compatible_with_protocol_state_txt" msgid="6598180735494982466">"Message type not compatible with protocol state"</string>
- <string name="clh_callFailed_information_element_non_existent_or_not_implemented_txt" msgid="4725610801664706983">"Information element non-existent or not implemented"</string>
- <string name="clh_callFailed_conditional_IE_error_txt" msgid="9140031076499566143">"Conditional IE error"</string>
- <string name="clh_callFailed_message_not_compatible_with_protocol_state_txt" msgid="6586005128633024271">"Message not compatible with protocol state"</string>
- <string name="clh_callFailed_recovery_on_timer_expiry_txt" msgid="3680765722923600294">"Recovery on timer expiry"</string>
- <string name="clh_callFailed_protocol_Error_unspecified_txt" msgid="8294907817156524790">"Protocol error, unspecified"</string>
- <string name="clh_callFailed_interworking_unspecified_txt" msgid="8838850798491763729">"Interworking, unspecified"</string>
+ <string name="clh_callFailed_facility_rejected_txt" msgid="1028912823639389563">"Couldn\'t complete call. Error code 29."</string>
+ <string name="clh_callFailed_response_to_STATUS_ENQUIRY_txt" msgid="1250833944238081212">"Couldn\'t complete call. Error code 30."</string>
+ <string name="clh_callFailed_normal_unspecified_txt" msgid="8765640093649364786">"Couldn\'t complete call. Error code 31."</string>
+ <string name="clh_callFailed_no_circuit_available_txt" msgid="6884477141997665736">"Couldn\'t complete call. Error code 34."</string>
+ <string name="clh_callFailed_network_out_of_order_txt" msgid="76447023032000125">"Couldn\'t complete call. Error code 38."</string>
+ <string name="clh_callFailed_temporary_failure_txt" msgid="5057716306945664356">"Couldn\'t complete call. Error code 41."</string>
+ <string name="clh_callFailed_switching_equipment_congestion_txt" msgid="4958831706265227632">"Couldn\'t complete call. Error code 42."</string>
+ <string name="clh_callFailed_access_information_discarded_txt" msgid="5033636666434831179">"Couldn\'t complete call. Error code 43."</string>
+ <string name="clh_callFailed_requested_circuit_txt" msgid="3221429183862933558">"Couldn\'t complete call. Error code 44."</string>
+ <string name="clh_callFailed_resources_unavailable_unspecified_txt" msgid="1385943395137055442">"Couldn\'t complete call. Error code 47."</string>
+ <string name="clh_callFailed_quality_of_service_unavailable_txt" msgid="8464132603057397297">"Couldn\'t complete call. Error code 49."</string>
+ <string name="clh_callFailed_requested_facility_not_subscribed_txt" msgid="3853815238079666882">"Couldn\'t complete call. Error code 50."</string>
+ <string name="clh_callFailed_incoming_calls_barred_within_the_CUG_txt" msgid="6791665425652545510">"Couldn\'t complete call. Error code 55."</string>
+ <string name="clh_callFailed_bearer_capability_not_authorized_txt" msgid="2975453855928450909">"Couldn\'t complete call. Error code 57."</string>
+ <string name="clh_callFailed_bearer_capability_not_presently_available_txt" msgid="753763978405557873">"Couldn\'t complete call. Error code 58."</string>
+ <string name="clh_callFailed_service_or_option_not_available_unspecified_txt" msgid="1714515856150546668">"Couldn\'t complete call. Error code 63."</string>
+ <string name="clh_callFailed_bearer_service_not_implemented_txt" msgid="5433179845809692163">"Couldn\'t complete call. Error code 65."</string>
+ <string name="clh_callFailed_ACM_equal_to_or_greater_than_ACMmax_txt" msgid="4339523227014428123">"Couldn\'t complete call. Error code 68."</string>
+ <string name="clh_callFailed_requested_facility_not_implemented_txt" msgid="5217500914101821728">"Couldn\'t complete call. Error code 69."</string>
+ <string name="clh_callFailed_only_restricted_digital_information_bearer_capability_is_available_txt" msgid="2423146296631060723">"Couldn\'t complete call. Error code 70."</string>
+ <string name="clh_callFailed_service_or_option_not_implemented_unspecified_txt" msgid="873208782556277597">"Couldn\'t complete call. Error code 79."</string>
+ <string name="clh_callFailed_invalid_transaction_identifier_value_txt" msgid="3926779129494281620">"Couldn\'t complete call. Error code 81."</string>
+ <string name="clh_callFailed_user_not_member_of_CUG_txt" msgid="2517559636224367413">"Couldn\'t complete call. Error code 87."</string>
+ <string name="clh_callFailed_incompatible_destination_txt" msgid="7994154962189949306">"Couldn\'t complete call. Error code 88."</string>
+ <string name="clh_callFailed_invalid_transit_network_selection_txt" msgid="5847046471813330674">"Couldn\'t complete call. Error code 91."</string>
+ <string name="clh_callFailed_semantically_incorrect_message_txt" msgid="5419940790658960361">"Couldn\'t complete call. Error code 95."</string>
+ <string name="clh_callFailed_invalid_mandatory_information_txt" msgid="3350178645665420102">"Couldn\'t complete call. Error code 96."</string>
+ <string name="clh_callFailed_message_type_non_existent_or_not_implemented_txt" msgid="7080310506268713895">"Couldn\'t complete call. Error code 97."</string>
+ <string name="clh_callFailed_message_type_not_compatible_with_protocol_state_txt" msgid="5251558113020693277">"Couldn\'t complete call. Error code 98."</string>
+ <string name="clh_callFailed_information_element_non_existent_or_not_implemented_txt" msgid="1643642065908165846">"Couldn\'t complete call. Error code 99."</string>
+ <string name="clh_callFailed_conditional_IE_error_txt" msgid="1622467860490603665">"Couldn\'t complete call. Error code 100."</string>
+ <string name="clh_callFailed_message_not_compatible_with_protocol_state_txt" msgid="3776039646804248109">"Couldn\'t complete call. Error code 101."</string>
+ <string name="clh_callFailed_recovery_on_timer_expiry_txt" msgid="4529313282997136028">"Couldn\'t complete call. Error code 102."</string>
+ <string name="clh_callFailed_protocol_Error_unspecified_txt" msgid="4900075501687505296">"Couldn\'t complete call. Error code 111."</string>
+ <string name="clh_callFailed_interworking_unspecified_txt" msgid="6701560054199411045">"Couldn\'t complete call. Error code 127."</string>
<string name="labelCallBarring" msgid="3452870940716226978">"Call barring"</string>
<string name="sum_call_barring_enabled" msgid="6804489690436703488">"On"</string>
<string name="sum_call_barring_disabled" msgid="5900772179198857783">"Off"</string>
@@ -722,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Enter password"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Call barring settings"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Deactivate all call barring settings?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Network is busy. Please try placing your call again later."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Call deflected."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Call forwarded."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Call is waiting."</string>
@@ -739,4 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Forwarded call."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Joining conference call."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Held call has been released."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Cannot place a call as the device is currently being provisioned."</string>
+ <string name="callFailed_already_dialing" msgid="4652915396769232226">"Cannot place a call as another outgoing call is already dialling."</string>
+ <string name="callFailed_already_ringing" msgid="7747655701540586943">"Cannot place a call as there is an unanswered incoming call. Answer or reject the incoming call prior to placing a new call."</string>
+ <string name="callFailed_calling_disabled" msgid="7257184079619449933">"Cannot place a call as calling has been disabled using the ro.telephony.disable-call system property."</string>
+ <string name="callFailed_too_many_calls" msgid="3023051919216926990">"Cannot place a call a there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data is turned on. You can change this in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data and data roaming are turned on. You can change these in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data and data roaming are turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change these in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Dismiss"</string>
</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 7175099..07a9a84 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD code running…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI code cancelled"</string>
<string name="cancel" msgid="5044513931633602634">"Cancel"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD message must be between <xliff:g id="MIN_LEN">%d</xliff:g> and <xliff:g id="MAX_LEN">%d</xliff:g> characters. Please try again."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD message must be between <xliff:g id="MIN_LEN">%1$d</xliff:g> and <xliff:g id="MAX_LEN">%2$d</xliff:g> characters. Please try again."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Manage conference call"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Speaker"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Voicemail"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifications"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Emergency broadcasts"</string>
<string name="call_settings" msgid="6112441768261754562">"Call settings"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Enhanced 4G LTE Mode"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Use LTE services to improve voice and other communications (recommended)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Use 4G services to improve voice and other communications (recommended)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Data enabled"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Allow data usage"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Attention"</string>
@@ -745,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Enter password"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Call barring settings"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Deactivate all call barring settings?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Network is busy. Please try placing your call again later."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Call deflected."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Call forwarded."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Call is waiting."</string>
@@ -762,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Forwarded call."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Joining conference call."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Held call has been released."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Cannot place a call as the device is currently being provisioned."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Cannot place a call as another outgoing call is already dialling."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Cannot place a call as there is an unanswered incoming call. Answer or reject the incoming call prior to placing a new call."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Cannot place a call as calling has been disabled using the ro.telephony.disable-call system property."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Cannot place a call a there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data is turned on. You can change this in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data and data roaming are turned on. You can change these in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data and data roaming are turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change these in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Dismiss"</string>
</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 7175099..07a9a84 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD code running…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI code cancelled"</string>
<string name="cancel" msgid="5044513931633602634">"Cancel"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD message must be between <xliff:g id="MIN_LEN">%d</xliff:g> and <xliff:g id="MAX_LEN">%d</xliff:g> characters. Please try again."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD message must be between <xliff:g id="MIN_LEN">%1$d</xliff:g> and <xliff:g id="MAX_LEN">%2$d</xliff:g> characters. Please try again."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Manage conference call"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Speaker"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Voicemail"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifications"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Emergency broadcasts"</string>
<string name="call_settings" msgid="6112441768261754562">"Call settings"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Enhanced 4G LTE Mode"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Use LTE services to improve voice and other communications (recommended)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Use 4G services to improve voice and other communications (recommended)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Data enabled"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Allow data usage"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Attention"</string>
@@ -745,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Enter password"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Call barring settings"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Deactivate all call barring settings?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Network is busy. Please try placing your call again later."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Call deflected."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Call forwarded."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Call is waiting."</string>
@@ -762,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Forwarded call."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Joining conference call."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Held call has been released."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Cannot place a call as the device is currently being provisioned."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Cannot place a call as another outgoing call is already dialling."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Cannot place a call as there is an unanswered incoming call. Answer or reject the incoming call prior to placing a new call."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Cannot place a call as calling has been disabled using the ro.telephony.disable-call system property."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Cannot place a call a there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data is turned on. You can change this in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data and data roaming are turned on. You can change these in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data and data roaming are turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change these in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Dismiss"</string>
</resources>
diff --git a/res/values-en-rXC/arrays.xml b/res/values-en-rXC/arrays.xml
index f96e211..af96efa 100644
--- a/res/values-en-rXC/arrays.xml
+++ b/res/values-en-rXC/arrays.xml
@@ -18,13 +18,13 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string-array name="preferred_network_mode_choices_world_mode">
- <item msgid="3391522821603584785">"Global"</item>
- <item msgid="6753774959494729275">"LTE / CDMA"</item>
- <item msgid="8658695584186942227">"LTE / GSM / UMTS"</item>
+ <item msgid="3391522821603584785">"Global"</item>
+ <item msgid="6753774959494729275">"LTE / CDMA"</item>
+ <item msgid="8658695584186942227">"LTE / GSM / UMTS"</item>
</string-array>
<string-array name="preferred_network_mode_values_world_mode">
- <item msgid="8390941159766263625">"10"</item>
- <item msgid="6103348346295810336">"8"</item>
- <item msgid="3494519853214024879">"9"</item>
+ <item msgid="8390941159766263625">"10"</item>
+ <item msgid="6103348346295810336">"8"</item>
+ <item msgid="3494519853214024879">"9"</item>
</string-array>
</resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 097e36b..ee5217a 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -16,727 +16,771 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobile Data"</string>
- <string name="phoneAppLabel" product="default" msgid="6790717591729922998">"Phone Services"</string>
- <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Emergency Dialer"</string>
- <string name="phoneIconLabel" msgid="2331230813161304895">"Phone"</string>
- <string name="fdnListLabel" msgid="8630418672279521003">"FDN list"</string>
- <string name="unknown" msgid="6878797917991465859">"Unknown"</string>
- <string name="private_num" msgid="6713286113000232309">"Private number"</string>
- <string name="payphone" msgid="4793877574636445118">"Payphone"</string>
- <string name="onHold" msgid="9035493194749959955">"On hold"</string>
- <string name="mmiStarted" msgid="6347869857061147003">"MMI code started"</string>
- <string name="ussdRunning" msgid="485588686340541690">"USSD code running…"</string>
- <string name="mmiCancelled" msgid="2771923949751842276">"MMI code canceled"</string>
- <string name="cancel" msgid="5044513931633602634">"Cancel"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD message must be between <xliff:g id="MIN_LEN">%d</xliff:g> and <xliff:g id="MAX_LEN">%d</xliff:g> characters. Please try again."</string>
- <string name="manageConferenceLabel" msgid="4691922394301969053">"Manage conference call"</string>
- <string name="ok" msgid="3811371167865772377">"OK"</string>
- <string name="audio_mode_speaker" msgid="27649582100085266">"Speaker"</string>
- <string name="audio_mode_earpiece" msgid="4156527186373869107">"Handset earpiece"</string>
- <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Wired headset"</string>
- <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
- <string name="wait_prompt_str" msgid="7601815427707856238">"Send the following tones?\n"</string>
- <string name="pause_prompt_str" msgid="1789964702154314806">"Sending tones\n"</string>
- <string name="send_button" msgid="4106860097497818751">"Send"</string>
- <string name="pause_prompt_yes" msgid="3564467212025151797">"Yes"</string>
- <string name="pause_prompt_no" msgid="6686238803236884877">"No"</string>
- <string name="wild_prompt_str" msgid="5543521676355533577">"Replace wild character with"</string>
- <string name="no_vm_number" msgid="4164780423805688336">"Missing voicemail number"</string>
- <string name="no_vm_number_msg" msgid="1300729501030053828">"No voicemail number is stored on the SIM card."</string>
- <string name="add_vm_number_str" msgid="4676479471644687453">"Add number"</string>
- <string name="voice_number_setting_primary_user_only" msgid="6596604364907022416">"Voicemail Settings can only be modified by the Primary User."</string>
- <string name="puk_unlocked" msgid="2284912838477558454">"Your SIM card has been unblocked. Your phone is unlocking…"</string>
- <string name="label_ndp" msgid="780479633159517250">"SIM network unlock PIN"</string>
- <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Unlock"</string>
- <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Dismiss"</string>
- <string name="requesting_unlock" msgid="6412629401033249351">"Requesting network unlock…"</string>
- <string name="unlock_failed" msgid="6490531697031504225">"Network unlock request unsuccessful."</string>
- <string name="unlock_success" msgid="6770085622238180152">"Network unlock successful."</string>
- <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Mobile network settings are not available for this user"</string>
- <string name="labelGSMMore" msgid="5930842194056092106">"GSM call settings"</string>
- <string name="labelGsmMore_with_label" msgid="2674012918829238901">"GSM call settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
- <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA call settings"</string>
- <string name="labelCdmaMore_with_label" msgid="6333588719319970399">"CDMA call settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
- <string name="apn_settings" msgid="9043423184895642077">"Access Point Names"</string>
- <string name="settings_label" msgid="3876743539816984008">"Network settings"</string>
- <string name="phone_accounts" msgid="6376603393888116364">"Calling accounts"</string>
- <string name="phone_accounts_make_calls_with" msgid="1969188078933152231">"Make calls with"</string>
- <string name="phone_accounts_make_sip_calls_with" msgid="4677789312053828493">"Make SIP calls with"</string>
- <string name="phone_accounts_ask_every_time" msgid="4346499067149985702">"Ask first"</string>
- <string name="phone_accounts_default_account_label" msgid="4183772241814460014">"No network available"</string>
- <string name="phone_accounts_settings_header" msgid="4141710640883261094">"Settings"</string>
- <string name="phone_accounts_choose_accounts" msgid="5232948804226424002">"Choose accounts"</string>
- <string name="phone_accounts_selection_header" msgid="1365215726106915865">"Phone accounts"</string>
- <string name="phone_accounts_add_sip_account" msgid="2023821743341923271">"Add SIP account"</string>
- <string name="phone_accounts_configure_account_settings" msgid="1361715069911607109">"Configure account settings"</string>
- <string name="phone_accounts_all_calling_accounts" msgid="207619531589278471">"All calling accounts"</string>
- <string name="phone_accounts_all_calling_accounts_summary" msgid="8594186415822657011">"Select which accounts can make calls"</string>
- <string name="wifi_calling" msgid="739018212480165598">"Wi-Fi calling"</string>
- <string name="connection_service_default_label" msgid="1498481943805913754">"Built-in connection service"</string>
- <string name="voicemail" msgid="8693759337917898954">"Voicemail"</string>
- <string name="voicemail_settings_with_label" msgid="152724978380748296">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
- <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
- <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifications"</string>
- <string name="cell_broadcast_settings" msgid="8740238216690502563">"Emergency broadcasts"</string>
- <string name="call_settings" msgid="6112441768261754562">"Call settings"</string>
- <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Additional settings"</string>
- <string name="additional_gsm_call_settings_with_label" msgid="1385241520708457376">"Additional settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
- <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Additional GSM only call settings"</string>
- <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Additional CDMA call settings"</string>
- <string name="sum_cdma_call_settings" msgid="284753265979035549">"Additional CDMA only call settings"</string>
- <string name="labelNwService" msgid="4699970172021870983">"Network service settings"</string>
- <string name="labelCallerId" msgid="3888899447379069198">"Caller ID"</string>
- <string name="sum_loading_settings" msgid="1826692909391168620">"Loading settings…"</string>
- <string name="sum_hide_caller_id" msgid="1071407020290873782">"Number hidden in outgoing calls"</string>
- <string name="sum_show_caller_id" msgid="6768534125447290401">"Number displayed in outgoing calls"</string>
- <string name="sum_default_caller_id" msgid="1954518825510901365">"Use default operator settings to display my number in outgoing calls"</string>
- <string name="labelCW" msgid="6120513814915920200">"Call waiting"</string>
- <string name="sum_cw_enabled" msgid="8083061901633671397">"During a call, notify me of incoming calls"</string>
- <string name="sum_cw_disabled" msgid="3648693907300104575">"During a call, notify me of incoming calls"</string>
- <string name="call_forwarding_settings" msgid="3378927671091537173">"Call forwarding settings"</string>
- <string name="call_forwarding_settings_with_label" msgid="8569489414006897127">"Call forwarding settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
- <string name="labelCF" msgid="2574386948026924737">"Call forwarding"</string>
- <string name="labelCFU" msgid="8147177368148660600">"Always forward"</string>
- <string name="messageCFU" msgid="3560082430662923687">"Always use this number"</string>
- <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Forwarding all calls"</string>
- <string name="sum_cfu_enabled" msgid="2450052502198827927">"Forwarding all calls to <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
- <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Number is unavailable"</string>
- <string name="sum_cfu_disabled" msgid="8384177689501334080">"Off"</string>
- <string name="labelCFB" msgid="6139853033106283172">"When busy"</string>
- <string name="messageCFB" msgid="3711089705936187129">"Number when busy"</string>
- <string name="sum_cfb_enabled" msgid="5984198104833116690">"Forwarding to <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
- <string name="sum_cfb_disabled" msgid="4913145177320506827">"Off"</string>
- <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Your operator doesn\'t support disabling call forwarding when your phone is busy."</string>
- <string name="labelCFNRy" msgid="1736067178393744351">"When unanswered"</string>
- <string name="messageCFNRy" msgid="672317899884380374">"Number when unanswered"</string>
- <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Forwarding to <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
- <string name="sum_cfnry_disabled" msgid="3884684060443538097">"Off"</string>
- <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Your operator doesn\'t support disabling call forwarding when your phone doesn\'t answer."</string>
- <string name="labelCFNRc" msgid="2614827454402079766">"When unreachable"</string>
- <string name="messageCFNRc" msgid="6380695421020295119">"Number when unreachable"</string>
- <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Forwarding to <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
- <string name="sum_cfnrc_disabled" msgid="2684474391807469832">"Off"</string>
- <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Your carrier doesn\'t support disabling call forwarding when your phone is unreachable."</string>
- <string name="updating_title" msgid="6146755386174019046">"Call settings"</string>
- <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Call settings can only be changed by the admin user."</string>
- <string name="call_settings_with_label" msgid="3401177261468593519">"Settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
- <string name="error_updating_title" msgid="7970259216988931777">"Call settings error"</string>
- <string name="reading_settings" msgid="1920291699287055284">"Reading settings…"</string>
- <string name="updating_settings" msgid="8171225533884883252">"Updating settings…"</string>
- <string name="reverting_settings" msgid="4752151682666912828">"Reverting settings…"</string>
- <string name="response_error" msgid="6674110501330139405">"Unexpected response from network."</string>
- <string name="exception_error" msgid="7027667130619518211">"Network or SIM card error."</string>
- <string name="stk_cc_ss_to_dial_error" msgid="2816779198916570502">"SS request modified to DIAL request."</string>
- <string name="stk_cc_ss_to_ussd_error" msgid="7490626178582654236">"SS request modified to USSD request."</string>
- <string name="stk_cc_ss_to_ss_error" msgid="5057846756489053759">"SS request modified to new SS request."</string>
- <string name="stk_cc_ss_to_dial_video_error" msgid="3091186225006683939">"SS request modified to Video DIAL request."</string>
- <string name="fdn_check_failure" msgid="18200614306525434">"Your Phone app\'s Fixed Dialing Numbers setting is turned on. As a result, some call-related features aren\'t working."</string>
- <string name="radio_off_error" msgid="2304459933248513376">"Turn on the radio before viewing these settings."</string>
- <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
- <string name="enable" msgid="7248657275000173526">"Turn on"</string>
- <string name="disable" msgid="4678348128118573672">"Turn off"</string>
- <string name="change_num" msgid="239476305819844391">"Update"</string>
+ <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Mobile Data"</string>
+ <string name="phoneAppLabel" product="default" msgid="6790717591729922998">"Phone Services"</string>
+ <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Emergency Dialer"</string>
+ <string name="phoneIconLabel" msgid="2331230813161304895">"Phone"</string>
+ <string name="fdnListLabel" msgid="8630418672279521003">"FDN list"</string>
+ <string name="unknown" msgid="6878797917991465859">"Unknown"</string>
+ <string name="private_num" msgid="6713286113000232309">"Private number"</string>
+ <string name="payphone" msgid="4793877574636445118">"Payphone"</string>
+ <string name="onHold" msgid="9035493194749959955">"On hold"</string>
+ <string name="mmiStarted" msgid="6347869857061147003">"MMI code started"</string>
+ <string name="ussdRunning" msgid="485588686340541690">"USSD code running…"</string>
+ <string name="mmiCancelled" msgid="2771923949751842276">"MMI code canceled"</string>
+ <string name="cancel" msgid="5044513931633602634">"Cancel"</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD message must be between <xliff:g id="MIN_LEN">%1$d</xliff:g> and <xliff:g id="MAX_LEN">%2$d</xliff:g> characters. Please try again."</string>
+ <string name="manageConferenceLabel" msgid="4691922394301969053">"Manage conference call"</string>
+ <string name="ok" msgid="3811371167865772377">"OK"</string>
+ <string name="audio_mode_speaker" msgid="27649582100085266">"Speaker"</string>
+ <string name="audio_mode_earpiece" msgid="4156527186373869107">"Handset earpiece"</string>
+ <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Wired headset"</string>
+ <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+ <string name="wait_prompt_str" msgid="7601815427707856238">"Send the following tones?\n"</string>
+ <string name="pause_prompt_str" msgid="1789964702154314806">"Sending tones\n"</string>
+ <string name="send_button" msgid="4106860097497818751">"Send"</string>
+ <string name="pause_prompt_yes" msgid="3564467212025151797">"Yes"</string>
+ <string name="pause_prompt_no" msgid="6686238803236884877">"No"</string>
+ <string name="wild_prompt_str" msgid="5543521676355533577">"Replace wild character with"</string>
+ <string name="no_vm_number" msgid="4164780423805688336">"Missing voicemail number"</string>
+ <string name="no_vm_number_msg" msgid="1300729501030053828">"No voicemail number is stored on the SIM card."</string>
+ <string name="add_vm_number_str" msgid="4676479471644687453">"Add number"</string>
+ <string name="voice_number_setting_primary_user_only" msgid="6596604364907022416">"Voicemail Settings can only be modified by the Primary User."</string>
+ <string name="puk_unlocked" msgid="2284912838477558454">"Your SIM card has been unblocked. Your phone is unlocking…"</string>
+ <string name="label_ndp" msgid="780479633159517250">"SIM network unlock PIN"</string>
+ <string name="sim_ndp_unlock_text" msgid="683628237760543009">"Unlock"</string>
+ <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Dismiss"</string>
+ <string name="requesting_unlock" msgid="6412629401033249351">"Requesting network unlock…"</string>
+ <string name="unlock_failed" msgid="6490531697031504225">"Network unlock request unsuccessful."</string>
+ <string name="unlock_success" msgid="6770085622238180152">"Network unlock successful."</string>
+ <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"Mobile network settings are not available for this user"</string>
+ <string name="labelGSMMore" msgid="5930842194056092106">"GSM call settings"</string>
+ <string name="labelGsmMore_with_label" msgid="2674012918829238901">"GSM call settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA call settings"</string>
+ <string name="labelCdmaMore_with_label" msgid="6333588719319970399">"CDMA call settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="apn_settings" msgid="9043423184895642077">"Access Point Names"</string>
+ <string name="settings_label" msgid="3876743539816984008">"Network settings"</string>
+ <string name="phone_accounts" msgid="6376603393888116364">"Calling accounts"</string>
+ <string name="phone_accounts_make_calls_with" msgid="1969188078933152231">"Make calls with"</string>
+ <string name="phone_accounts_make_sip_calls_with" msgid="4677789312053828493">"Make SIP calls with"</string>
+ <string name="phone_accounts_ask_every_time" msgid="4346499067149985702">"Ask first"</string>
+ <string name="phone_accounts_default_account_label" msgid="4183772241814460014">"No network available"</string>
+ <string name="phone_accounts_settings_header" msgid="4141710640883261094">"Settings"</string>
+ <string name="phone_accounts_choose_accounts" msgid="5232948804226424002">"Choose accounts"</string>
+ <string name="phone_accounts_selection_header" msgid="1365215726106915865">"Phone accounts"</string>
+ <string name="phone_accounts_add_sip_account" msgid="2023821743341923271">"Add SIP account"</string>
+ <string name="phone_accounts_configure_account_settings" msgid="1361715069911607109">"Configure account settings"</string>
+ <string name="phone_accounts_all_calling_accounts" msgid="207619531589278471">"All calling accounts"</string>
+ <string name="phone_accounts_all_calling_accounts_summary" msgid="8594186415822657011">"Select which accounts can make calls"</string>
+ <string name="wifi_calling" msgid="739018212480165598">"Wi-Fi calling"</string>
+ <string name="connection_service_default_label" msgid="1498481943805913754">"Built-in connection service"</string>
+ <string name="voicemail" msgid="8693759337917898954">"Voicemail"</string>
+ <string name="voicemail_settings_with_label" msgid="152724978380748296">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
+ <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifications"</string>
+ <string name="cell_broadcast_settings" msgid="8740238216690502563">"Emergency broadcasts"</string>
+ <string name="call_settings" msgid="6112441768261754562">"Call settings"</string>
+ <string name="additional_gsm_call_settings" msgid="1391795981938800617">"Additional settings"</string>
+ <string name="additional_gsm_call_settings_with_label" msgid="1385241520708457376">"Additional settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="sum_gsm_call_settings" msgid="4076647190996778012">"Additional GSM only call settings"</string>
+ <string name="additional_cdma_call_settings" msgid="8628958775721886909">"Additional CDMA call settings"</string>
+ <string name="sum_cdma_call_settings" msgid="284753265979035549">"Additional CDMA only call settings"</string>
+ <string name="labelNwService" msgid="4699970172021870983">"Network service settings"</string>
+ <string name="labelCallerId" msgid="3888899447379069198">"Caller ID"</string>
+ <string name="sum_loading_settings" msgid="1826692909391168620">"Loading settings…"</string>
+ <string name="sum_hide_caller_id" msgid="1071407020290873782">"Number hidden in outgoing calls"</string>
+ <string name="sum_show_caller_id" msgid="6768534125447290401">"Number displayed in outgoing calls"</string>
+ <string name="sum_default_caller_id" msgid="1954518825510901365">"Use default operator settings to display my number in outgoing calls"</string>
+ <string name="labelCW" msgid="6120513814915920200">"Call waiting"</string>
+ <string name="sum_cw_enabled" msgid="8083061901633671397">"During a call, notify me of incoming calls"</string>
+ <string name="sum_cw_disabled" msgid="3648693907300104575">"During a call, notify me of incoming calls"</string>
+ <string name="call_forwarding_settings" msgid="3378927671091537173">"Call forwarding settings"</string>
+ <string name="call_forwarding_settings_with_label" msgid="8569489414006897127">"Call forwarding settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="labelCF" msgid="2574386948026924737">"Call forwarding"</string>
+ <string name="labelCFU" msgid="8147177368148660600">"Always forward"</string>
+ <string name="messageCFU" msgid="3560082430662923687">"Always use this number"</string>
+ <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"Forwarding all calls"</string>
+ <string name="sum_cfu_enabled" msgid="2450052502198827927">"Forwarding all calls to <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+ <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"Number is unavailable"</string>
+ <string name="sum_cfu_disabled" msgid="8384177689501334080">"Off"</string>
+ <string name="labelCFB" msgid="6139853033106283172">"When busy"</string>
+ <string name="messageCFB" msgid="3711089705936187129">"Number when busy"</string>
+ <string name="sum_cfb_enabled" msgid="5984198104833116690">"Forwarding to <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+ <string name="sum_cfb_disabled" msgid="4913145177320506827">"Off"</string>
+ <string name="disable_cfb_forbidden" msgid="3506984333877998061">"Your operator doesn\'t support disabling call forwarding when your phone is busy."</string>
+ <string name="labelCFNRy" msgid="1736067178393744351">"When unanswered"</string>
+ <string name="messageCFNRy" msgid="672317899884380374">"Number when unanswered"</string>
+ <string name="sum_cfnry_enabled" msgid="6955775691317662910">"Forwarding to <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+ <string name="sum_cfnry_disabled" msgid="3884684060443538097">"Off"</string>
+ <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"Your operator doesn\'t support disabling call forwarding when your phone doesn\'t answer."</string>
+ <string name="labelCFNRc" msgid="2614827454402079766">"When unreachable"</string>
+ <string name="messageCFNRc" msgid="6380695421020295119">"Number when unreachable"</string>
+ <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"Forwarding to <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+ <string name="sum_cfnrc_disabled" msgid="2684474391807469832">"Off"</string>
+ <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"Your carrier doesn\'t support disabling call forwarding when your phone is unreachable."</string>
+ <string name="updating_title" msgid="6146755386174019046">"Call settings"</string>
+ <string name="call_settings_admin_user_only" msgid="4526094783818216374">"Call settings can only be changed by the admin user."</string>
+ <string name="call_settings_with_label" msgid="3401177261468593519">"Settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="error_updating_title" msgid="7970259216988931777">"Call settings error"</string>
+ <string name="reading_settings" msgid="1920291699287055284">"Reading settings…"</string>
+ <string name="updating_settings" msgid="8171225533884883252">"Updating settings…"</string>
+ <string name="reverting_settings" msgid="4752151682666912828">"Reverting settings…"</string>
+ <string name="response_error" msgid="6674110501330139405">"Unexpected response from network."</string>
+ <string name="exception_error" msgid="7027667130619518211">"Network or SIM card error."</string>
+ <string name="stk_cc_ss_to_dial_error" msgid="4440038807310535377">"SS request changed to regular call"</string>
+ <string name="stk_cc_ss_to_ussd_error" msgid="6095812685884176176">"SS request changed to USSD request"</string>
+ <string name="stk_cc_ss_to_ss_error" msgid="7920654012697945858">"Changed to new SS request"</string>
+ <string name="stk_cc_ss_to_dial_video_error" msgid="3873905132181743781">"SS request changed to video call"</string>
+ <string name="fdn_check_failure" msgid="18200614306525434">"Your Phone app\'s Fixed Dialing Numbers setting is turned on. As a result, some call-related features aren\'t working."</string>
+ <string name="radio_off_error" msgid="2304459933248513376">"Turn on the radio before viewing these settings."</string>
+ <string name="close_dialog" msgid="2365884406356986917">"OK"</string>
+ <string name="enable" msgid="7248657275000173526">"Turn on"</string>
+ <string name="disable" msgid="4678348128118573672">"Turn off"</string>
+ <string name="change_num" msgid="239476305819844391">"Update"</string>
<string-array name="clir_display_values">
- <item msgid="5560134294467334594">"Network default"</item>
- <item msgid="7876195870037833661">"Hide number"</item>
- <item msgid="1108394741608734023">"Show number"</item>
+ <item msgid="5560134294467334594">"Network default"</item>
+ <item msgid="7876195870037833661">"Hide number"</item>
+ <item msgid="1108394741608734023">"Show number"</item>
</string-array>
- <string name="vm_changed" msgid="380744030726254139">"Voicemail number changed."</string>
- <string name="vm_change_failed" msgid="3352934863246208918">"Couldn\'t change the voicemail number.\nContact your carrier if this problem persists."</string>
- <string name="fw_change_failed" msgid="5298103228470214665">"Couldn\'t change the forwarding number.\nContact your carrier if this problem persists."</string>
- <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Couldn\'t retrieve and save current forwarding number settings.\nSwitch to the new provider anyway?"</string>
- <string name="no_change" msgid="3186040086622435212">"No changes were made."</string>
- <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Choose voicemail service"</string>
- <string name="voicemail_default" msgid="2001233554889016880">"Your carrier"</string>
- <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Old PIN"</string>
- <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"New PIN"</string>
- <string name="vm_change_pin_progress_message" msgid="3977357361934350336">"Please wait."</string>
- <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"The new PIN is too short."</string>
- <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"The new PIN is too long."</string>
- <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"The new PIN is too weak. A strong password should not have continuous sequence or repeated digits."</string>
- <string name="vm_change_pin_error_mismatch" msgid="2754685537970757317">"The old PIN does not match."</string>
- <string name="vm_change_pin_error_invalid" msgid="3972205462701668653">"The new PIN contains invalid characters."</string>
- <string name="vm_change_pin_error_system_error" msgid="6610603326230000207">"Unable to change PIN"</string>
- <string name="vvm_unsupported_message_format" msgid="11795090778411977">"Unsupported message type, call <xliff:g id="NUMBER">%s</xliff:g> to listen."</string>
- <string name="network_settings_title" msgid="514120489499925574">"Mobile network"</string>
- <string name="label_available" msgid="1181658289009300430">"Available networks"</string>
- <string name="load_networks_progress" msgid="5230707536168902952">"Searching…"</string>
- <string name="empty_networks_list" msgid="4249426905018815316">"No networks found."</string>
- <string name="network_query_error" msgid="6828516148953325006">"Error while searching for networks."</string>
- <string name="register_on_network" msgid="9055203954040805084">"Registering on <xliff:g id="NETWORK">%s</xliff:g>…"</string>
- <string name="not_allowed" msgid="5613353860205691579">"Your SIM card doesn\'t allow a connection to this network."</string>
- <string name="connect_later" msgid="2308119155752343975">"Can\'t connect to this network right now. Try again later."</string>
- <string name="registration_done" msgid="495135664535876612">"Registered on network."</string>
- <string name="already_auto" msgid="6067116884321285507">"Already in automatic selection."</string>
- <string name="select_automatically" msgid="1046727200631770962">"Automatically select network"</string>
- <string name="network_select_title" msgid="7733107364757544558">"Network"</string>
- <string name="register_automatically" msgid="6017849844573519637">"Automatic registration…"</string>
- <string name="preferred_network_mode_title" msgid="2336624679902659306">"Preferred network type"</string>
- <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Change the network operating mode"</string>
- <string name="preferred_network_mode_dialogtitle" msgid="4048082093347807230">"Preferred network type"</string>
- <string name="forbidden_network" msgid="4384929668343563440">"(forbidden)"</string>
+ <string name="vm_changed" msgid="380744030726254139">"Voicemail number changed."</string>
+ <string name="vm_change_failed" msgid="3352934863246208918">"Couldn\'t change the voicemail number.\nContact your carrier if this problem persists."</string>
+ <string name="fw_change_failed" msgid="5298103228470214665">"Couldn\'t change the forwarding number.\nContact your carrier if this problem persists."</string>
+ <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"Couldn\'t retrieve and save current forwarding number settings.\nSwitch to the new provider anyway?"</string>
+ <string name="no_change" msgid="3186040086622435212">"No changes were made."</string>
+ <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"Choose voicemail service"</string>
+ <string name="voicemail_default" msgid="2001233554889016880">"Your carrier"</string>
+ <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"Old PIN"</string>
+ <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"New PIN"</string>
+ <string name="vm_change_pin_progress_message" msgid="3977357361934350336">"Please wait."</string>
+ <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"The new PIN is too short."</string>
+ <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"The new PIN is too long."</string>
+ <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"The new PIN is too weak. A strong password should not have continuous sequence or repeated digits."</string>
+ <string name="vm_change_pin_error_mismatch" msgid="2754685537970757317">"The old PIN does not match."</string>
+ <string name="vm_change_pin_error_invalid" msgid="3972205462701668653">"The new PIN contains invalid characters."</string>
+ <string name="vm_change_pin_error_system_error" msgid="6610603326230000207">"Unable to change PIN"</string>
+ <string name="vvm_unsupported_message_format" msgid="11795090778411977">"Unsupported message type, call <xliff:g id="NUMBER">%s</xliff:g> to listen."</string>
+ <string name="network_settings_title" msgid="514120489499925574">"Mobile network"</string>
+ <string name="label_available" msgid="1181658289009300430">"Available networks"</string>
+ <string name="load_networks_progress" msgid="5230707536168902952">"Searching…"</string>
+ <string name="empty_networks_list" msgid="4249426905018815316">"No networks found."</string>
+ <string name="network_query_error" msgid="8466081377231178298">"Couldn\'t find networks. Try again."</string>
+ <string name="register_on_network" msgid="9055203954040805084">"Registering on <xliff:g id="NETWORK">%s</xliff:g>…"</string>
+ <string name="not_allowed" msgid="5613353860205691579">"Your SIM card doesn\'t allow a connection to this network."</string>
+ <string name="connect_later" msgid="2308119155752343975">"Can\'t connect to this network right now. Try again later."</string>
+ <string name="registration_done" msgid="495135664535876612">"Registered on network."</string>
+ <string name="already_auto" msgid="6067116884321285507">"Already in automatic selection."</string>
+ <string name="select_automatically" msgid="1046727200631770962">"Automatically select network"</string>
+ <string name="manual_mode_disallowed_summary" msgid="70662262085937277">"Unavailable when connected to %1$s"</string>
+ <string name="network_select_title" msgid="7733107364757544558">"Network"</string>
+ <string name="register_automatically" msgid="6017849844573519637">"Automatic registration…"</string>
+ <string name="preferred_network_mode_title" msgid="2336624679902659306">"Preferred network type"</string>
+ <string name="preferred_network_mode_summary" msgid="1434820673166126609">"Change the network operating mode"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="4048082093347807230">"Preferred network type"</string>
+ <string name="forbidden_network" msgid="4384929668343563440">"(forbidden)"</string>
+ <string name="choose_network_title" msgid="4023911977543009350">"Choose network"</string>
+ <string name="network_disconnected" msgid="2227251609006103194">"Disconnected"</string>
+ <string name="network_connected" msgid="1288589103624338857">"Connected"</string>
+ <string name="network_connecting" msgid="4927203097283533783">"Connecting..."</string>
+ <string name="network_could_not_connect" msgid="8254009365807767243">"Couldn’t connect"</string>
<string-array name="preferred_network_mode_choices">
- <item msgid="3628460389382468528">"GSM/WCDMA preferred"</item>
- <item msgid="8442633436636425221">"GSM only"</item>
- <item msgid="2032314385791760810">"WCDMA only"</item>
- <item msgid="6334554401059422303">"GSM/WCDMA auto"</item>
- <item msgid="1462198368200398663">"CDMA/EvDo auto"</item>
- <item msgid="3611460019185359968">"CDMA w/o EvDo"</item>
- <item msgid="545430093607698090">"EvDo only"</item>
- <item msgid="4286774020869405140">"CDMA/EvDo/GSM/WCDMA"</item>
- <item msgid="4006002265696868538">"CDMA + LTE/EvDo"</item>
- <item msgid="8973936140318359205">"GSM/WCDMA/LTE"</item>
- <item msgid="3471059554252610472">"Global"</item>
- <item msgid="2882615514545171802">"LTE"</item>
- <item msgid="8076204422288290116">"LTE / WCDMA"</item>
- <item msgid="3982984144824159726">"TDSCDMA only"</item>
- <item msgid="3686191974505922271">"TDSCDMA/WCDMA"</item>
- <item msgid="7135671700201836475">"LTE/TDSCDMA"</item>
- <item msgid="3736619459066330755">"TDSCDMA/GSM"</item>
- <item msgid="4778666570887216861">"LTE/TDSCDMA/GSM"</item>
- <item msgid="2952322596201849456">"TDSCDMA/GSM/WCDMA"</item>
- <item msgid="115984258536697617">"LTE/TDSCDMA/WCDMA"</item>
- <item msgid="7957991936217192636">"LTE/TDSCDMA/GSM/WCDMA"</item>
- <item msgid="2828588917858484655">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
- <item msgid="4989979948139945854">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="3628460389382468528">"GSM/WCDMA preferred"</item>
+ <item msgid="8442633436636425221">"GSM only"</item>
+ <item msgid="2032314385791760810">"WCDMA only"</item>
+ <item msgid="6334554401059422303">"GSM/WCDMA auto"</item>
+ <item msgid="1462198368200398663">"CDMA/EvDo auto"</item>
+ <item msgid="3611460019185359968">"CDMA w/o EvDo"</item>
+ <item msgid="545430093607698090">"EvDo only"</item>
+ <item msgid="4286774020869405140">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="4006002265696868538">"CDMA + LTE/EvDo"</item>
+ <item msgid="8973936140318359205">"GSM/WCDMA/LTE"</item>
+ <item msgid="3471059554252610472">"Global"</item>
+ <item msgid="2882615514545171802">"LTE"</item>
+ <item msgid="8076204422288290116">"LTE / WCDMA"</item>
+ <item msgid="3982984144824159726">"TDSCDMA only"</item>
+ <item msgid="3686191974505922271">"TDSCDMA/WCDMA"</item>
+ <item msgid="7135671700201836475">"LTE/TDSCDMA"</item>
+ <item msgid="3736619459066330755">"TDSCDMA/GSM"</item>
+ <item msgid="4778666570887216861">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="2952322596201849456">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="115984258536697617">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="7957991936217192636">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="2828588917858484655">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="4989979948139945854">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
</string-array>
- <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Preferred network mode: WCDMA preferred"</string>
- <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Preferred network mode: GSM only"</string>
- <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Preferred network mode: WCDMA only"</string>
- <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Preferred network mode: GSM / WCDMA"</string>
- <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Preferred network mode: CDMA"</string>
- <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Preferred network mode: CDMA / EvDo"</string>
- <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Preferred network mode: CDMA only"</string>
- <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Preferred network mode: EvDo only"</string>
- <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Preferred network mode: CDMA/EvDo/GSM/WCDMA"</string>
- <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Preferred network mode: LTE"</string>
- <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Preferred network mode: GSM/WCDMA/LTE"</string>
- <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Preferred network mode: CDMA+LTE/EVDO"</string>
- <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Preferred network mode: Global"</string>
- <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Preferred network mode: LTE / WCDMA"</string>
- <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="633315028976225026">"Preferred network mode: LTE / GSM / UMTS"</string>
- <string name="preferred_network_mode_lte_cdma_summary" msgid="3722647806454528426">"Preferred network mode: LTE / CDMA"</string>
- <string name="preferred_network_mode_tdscdma_summary" msgid="8021016193718678775">"Preferred network mode: TDSCDMA"</string>
- <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="2405154895437348623">"Preferred network mode: TDSCDMA / WCDMA"</string>
- <string name="preferred_network_mode_lte_tdscdma_summary" msgid="2104702896644235637">"Preferred network mode: LTE / TDSCDMA"</string>
- <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="4893784445338396204">"Preferred network mode: TDSCDMA / GSM"</string>
- <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1815169717046729757">"Preferred network mode: LTE/GSM/TDSCDMA"</string>
- <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="2195358773359424099">"Preferred network mode: TDSCDMA/GSM/WCDMA"</string>
- <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="1181424059695667803">"Preferred network mode: LTE/TDSCDMA/WCDMA"</string>
- <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2526539326505354382">"Preferred network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
- <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8195248059196614939">"Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
- <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5596733053095592791">"Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
- <string name="call_category" msgid="5863978196309462052">"Calling"</string>
- <string name="network_operator_category" msgid="4830701959205735636">"Network"</string>
- <string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Enhanced 4G LTE Mode"</string>
- <string name="enhanced_4g_lte_mode_title_variant" msgid="4871126028907265406">"Advanced Calling"</string>
- <string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Use LTE services to improve voice and other communications (recommended)"</string>
- <string name="data_enabled" msgid="5972538663568715366">"Data enabled"</string>
- <string name="data_enable_summary" msgid="2382798156640007971">"Allow data usage"</string>
- <string name="dialog_alert_title" msgid="6751344986194435476">"Attention"</string>
- <string name="roaming" msgid="7894878421600247140">"Roaming"</string>
- <string name="roaming_enable" msgid="7331106985174381987">"Connect to data services when roaming"</string>
- <string name="roaming_disable" msgid="1843417228755568110">"Connect to data services when roaming"</string>
- <string name="roaming_reenable_message" msgid="8913735676127858115">"You\'ve lost data connectivity because you left your home network with data roaming turned off."</string>
- <string name="roaming_warning" msgid="1603164667540144353">"You may incur significant charges."</string>
- <string name="roaming_check_price_warning" msgid="7497570906830902550">"Check with your network provider for pricing."</string>
- <string name="roaming_alert_title" msgid="3654815360303826008">"Allow data roaming?"</string>
- <string name="data_usage_title" msgid="8759619109516889802">"Data usage"</string>
- <string name="data_usage_template" msgid="8526428824844656364">"<xliff:g id="ID_1">%1$s</xliff:g> mobile data used <xliff:g id="ID_2">%2$s</xliff:g>"</string>
- <string name="advanced_options_title" msgid="8074895510265488035">"Advanced"</string>
- <string name="carrier_settings_euicc" msgid="6714062862127226405">"Carrier"</string>
- <string name="keywords_carrier_settings_euicc" msgid="6861505396475991277">"carrier, esim, sim, euicc, switch carriers, add carrier"</string>
- <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<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="4661165467914727157">"Mobile data"</string>
- <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Access data using mobile network"</string>
- <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Turn off mobile data?"</string>
- <string name="sim_selection_required_pref" msgid="7049424902961844236">"Selection required"</string>
- <string name="sim_change_data_title" msgid="5332425991853799280">"Change data SIM?"</string>
- <string name="sim_change_data_message" msgid="2163963581444907496">"Use <xliff:g id="NEW_SIM">%1$s</xliff:g> instead of <xliff:g id="OLD_SIM">%2$s</xliff:g> for mobile data?"</string>
- <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi calling"</string>
- <string name="video_calling_settings_title" msgid="539714564273795574">"Carrier video calling"</string>
- <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS Options"</string>
- <string name="cdma_options" msgid="4016822858172249884">"CDMA Options"</string>
- <string name="throttle_data_usage" msgid="3715677828160555808">"Data usage"</string>
- <string name="throttle_current_usage" msgid="8762280193043815361">"Data used in current period"</string>
- <string name="throttle_time_frame" msgid="1915198770363734685">"Data use period"</string>
- <string name="throttle_rate" msgid="4710388992676803508">"Data rate policy"</string>
- <string name="throttle_help" msgid="243651091785169900">"Learn more"</string>
- <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) of <xliff:g id="USED_2">%3$s</xliff:g> period maximum\nNext period starts in <xliff:g id="USED_3">%4$d</xliff:g> days (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
- <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) of <xliff:g id="USED_2">%3$s</xliff:g> period maximum"</string>
- <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> maximum exceeded\nData rate reduced to <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
- <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ of cycle elapsed\nNext period starts in <xliff:g id="USED_1">%2$d</xliff:g> days (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
- <string name="throttle_rate_subtext" msgid="2149102656120726855">"Data rate reduced to <xliff:g id="USED">%1$d</xliff:g> Kb/s if data use limit is exceeded"</string>
- <string name="throttle_help_subtext" msgid="5217706521499010816">"More information about your carrier\'s mobile network data use policy"</string>
- <string name="cell_broadcast_sms" msgid="5584192824053625842">"Cell Broadcast SMS"</string>
- <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Cell Broadcast SMS"</string>
- <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Cell Broadcast SMS enabled"</string>
- <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Cell Broadcast SMS disabled"</string>
- <string name="cb_sms_settings" msgid="651715019785107312">"Cell Broadcast SMS settings"</string>
- <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Emergency Broadcast"</string>
- <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Emergency Broadcast enabled"</string>
- <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Emergency Broadcast disabled"</string>
- <string name="enable_disable_administrative" msgid="6501582322182059412">"Administrative"</string>
- <string name="administrative_enable" msgid="1750086122962032235">"Administrative enabled"</string>
- <string name="administrative_disable" msgid="8433273857248698539">"Administrative disabled"</string>
- <string name="enable_disable_maintenance" msgid="1819693083025106678">"Maintenance"</string>
- <string name="maintenance_enable" msgid="8566636458770971189">"Maintenance enabled"</string>
- <string name="maintenance_disable" msgid="7340189100885066077">"Maintenance disabled"</string>
- <string name="general_news_settings" msgid="4968779723948432978">"General News"</string>
- <string name="bf_news_settings" msgid="3935593091894685267">"Business and Financial News"</string>
- <string name="sports_news_settings" msgid="7649399631270052835">"Sports News"</string>
- <string name="entertainment_news_settings" msgid="5051153952959405035">"Entertainment News"</string>
- <string name="enable_disable_local" msgid="7890281063123416120">"Local"</string>
- <string name="local_enable" msgid="6370463247609136359">"Local news enabled"</string>
- <string name="local_disable" msgid="4405691986943795798">"Local news disabled"</string>
- <string name="enable_disable_regional" msgid="4905652414535565872">"Regional"</string>
- <string name="regional_enable" msgid="4434680415437834759">"Regional news enabled"</string>
- <string name="regional_disable" msgid="5359325527213850077">"Regional news disabled"</string>
- <string name="enable_disable_national" msgid="236278090206880734">"National"</string>
- <string name="national_enable" msgid="1172443648912246952">"National news enabled"</string>
- <string name="national_disable" msgid="326018148178601166">"National news disabled"</string>
- <string name="enable_disable_international" msgid="7535348799604565592">"International"</string>
- <string name="international_enable" msgid="5855356769925044927">"International news enabled"</string>
- <string name="international_disable" msgid="2850648591041088931">"International news disabled"</string>
- <string name="list_language_title" msgid="2841683501919760043">"Language"</string>
- <string name="list_language_summary" msgid="8109546531071241601">"Select the news language"</string>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"Preferred network mode: WCDMA preferred"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"Preferred network mode: GSM only"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"Preferred network mode: WCDMA only"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"Preferred network mode: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"Preferred network mode: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"Preferred network mode: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"Preferred network mode: CDMA only"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"Preferred network mode: EvDo only"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"Preferred network mode: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"Preferred network mode: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"Preferred network mode: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"Preferred network mode: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"Preferred network mode: Global"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"Preferred network mode: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="633315028976225026">"Preferred network mode: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="3722647806454528426">"Preferred network mode: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="8021016193718678775">"Preferred network mode: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="2405154895437348623">"Preferred network mode: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="2104702896644235637">"Preferred network mode: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="4893784445338396204">"Preferred network mode: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1815169717046729757">"Preferred network mode: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="2195358773359424099">"Preferred network mode: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="1181424059695667803">"Preferred network mode: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2526539326505354382">"Preferred network mode: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8195248059196614939">"Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5596733053095592791">"Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="call_category" msgid="5863978196309462052">"Calling"</string>
+ <string name="network_operator_category" msgid="4830701959205735636">"Network"</string>
+ <string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Enhanced 4G LTE Mode"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
+ <string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Use LTE services to improve voice and other communications (recommended)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Use 4G services to improve voice and other communications (recommended)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
+ <string name="data_enabled" msgid="5972538663568715366">"Data enabled"</string>
+ <string name="data_enable_summary" msgid="2382798156640007971">"Allow data usage"</string>
+ <string name="dialog_alert_title" msgid="6751344986194435476">"Attention"</string>
+ <string name="roaming" msgid="7894878421600247140">"Roaming"</string>
+ <string name="roaming_enable" msgid="7331106985174381987">"Connect to data services when roaming"</string>
+ <string name="roaming_disable" msgid="1843417228755568110">"Connect to data services when roaming"</string>
+ <string name="roaming_reenable_message" msgid="6843814381576397939">"Data roaming is turned off. Tap to turn on."</string>
+ <string name="roaming_notification_title" msgid="4749053220884743110">"Lost mobile data connection"</string>
+ <string name="roaming_warning" msgid="1603164667540144353">"You may incur significant charges."</string>
+ <string name="roaming_check_price_warning" msgid="7497570906830902550">"Check with your network provider for pricing."</string>
+ <string name="roaming_alert_title" msgid="3654815360303826008">"Allow data roaming?"</string>
+ <string name="data_usage_title" msgid="4042209259808900283">"App data usage"</string>
+ <string name="data_usage_template" msgid="8526428824844656364">"<xliff:g id="ID_1">%1$s</xliff:g> mobile data used <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+ <string name="advanced_options_title" msgid="8074895510265488035">"Advanced"</string>
+ <string name="carrier_settings_euicc" msgid="6714062862127226405">"Carrier"</string>
+ <string name="keywords_carrier_settings_euicc" msgid="6861505396475991277">"carrier, esim, sim, euicc, switch carriers, add carrier"</string>
+ <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<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="4661165467914727157">"Mobile data"</string>
+ <string name="mobile_data_settings_summary" msgid="5087255915840576895">"Access data using mobile network"</string>
+ <string name="data_usage_disable_mobile" msgid="3577275288809667615">"Turn off mobile data?"</string>
+ <string name="sim_selection_required_pref" msgid="7049424902961844236">"Selection required"</string>
+ <string name="sim_change_data_title" msgid="5332425991853799280">"Change data SIM?"</string>
+ <string name="sim_change_data_message" msgid="2163963581444907496">"Use <xliff:g id="NEW_SIM">%1$s</xliff:g> instead of <xliff:g id="OLD_SIM">%2$s</xliff:g> for mobile data?"</string>
+ <string name="wifi_calling_settings_title" msgid="7741961465416430470">"Wi-Fi calling"</string>
+ <string name="video_calling_settings_title" msgid="539714564273795574">"Carrier video calling"</string>
+ <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS Options"</string>
+ <string name="cdma_options" msgid="4016822858172249884">"CDMA Options"</string>
+ <string name="throttle_data_usage" msgid="3715677828160555808">"Data usage"</string>
+ <string name="throttle_current_usage" msgid="8762280193043815361">"Data used in current period"</string>
+ <string name="throttle_time_frame" msgid="1915198770363734685">"Data use period"</string>
+ <string name="throttle_rate" msgid="4710388992676803508">"Data rate policy"</string>
+ <string name="throttle_help" msgid="243651091785169900">"Learn more"</string>
+ <string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) of <xliff:g id="USED_2">%3$s</xliff:g> period maximum\nNext period starts in <xliff:g id="USED_3">%4$d</xliff:g> days (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
+ <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) of <xliff:g id="USED_2">%3$s</xliff:g> period maximum"</string>
+ <string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> maximum exceeded\nData rate reduced to <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
+ <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ of cycle elapsed\nNext period starts in <xliff:g id="USED_1">%2$d</xliff:g> days (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
+ <string name="throttle_rate_subtext" msgid="2149102656120726855">"Data rate reduced to <xliff:g id="USED">%1$d</xliff:g> Kb/s if data use limit is exceeded"</string>
+ <string name="throttle_help_subtext" msgid="5217706521499010816">"More information about your carrier\'s mobile network data use policy"</string>
+ <string name="cell_broadcast_sms" msgid="5584192824053625842">"Cell Broadcast SMS"</string>
+ <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"Cell Broadcast SMS"</string>
+ <string name="cell_bc_sms_enable" msgid="6441688565738921084">"Cell Broadcast SMS enabled"</string>
+ <string name="cell_bc_sms_disable" msgid="3398365088309408749">"Cell Broadcast SMS disabled"</string>
+ <string name="cb_sms_settings" msgid="651715019785107312">"Cell Broadcast SMS settings"</string>
+ <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Emergency Broadcast"</string>
+ <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Emergency Broadcast enabled"</string>
+ <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Emergency Broadcast disabled"</string>
+ <string name="enable_disable_administrative" msgid="6501582322182059412">"Administrative"</string>
+ <string name="administrative_enable" msgid="1750086122962032235">"Administrative enabled"</string>
+ <string name="administrative_disable" msgid="8433273857248698539">"Administrative disabled"</string>
+ <string name="enable_disable_maintenance" msgid="1819693083025106678">"Maintenance"</string>
+ <string name="maintenance_enable" msgid="8566636458770971189">"Maintenance enabled"</string>
+ <string name="maintenance_disable" msgid="7340189100885066077">"Maintenance disabled"</string>
+ <string name="general_news_settings" msgid="4968779723948432978">"General News"</string>
+ <string name="bf_news_settings" msgid="3935593091894685267">"Business and Financial News"</string>
+ <string name="sports_news_settings" msgid="7649399631270052835">"Sports News"</string>
+ <string name="entertainment_news_settings" msgid="5051153952959405035">"Entertainment News"</string>
+ <string name="enable_disable_local" msgid="7890281063123416120">"Local"</string>
+ <string name="local_enable" msgid="6370463247609136359">"Local news enabled"</string>
+ <string name="local_disable" msgid="4405691986943795798">"Local news disabled"</string>
+ <string name="enable_disable_regional" msgid="4905652414535565872">"Regional"</string>
+ <string name="regional_enable" msgid="4434680415437834759">"Regional news enabled"</string>
+ <string name="regional_disable" msgid="5359325527213850077">"Regional news disabled"</string>
+ <string name="enable_disable_national" msgid="236278090206880734">"National"</string>
+ <string name="national_enable" msgid="1172443648912246952">"National news enabled"</string>
+ <string name="national_disable" msgid="326018148178601166">"National news disabled"</string>
+ <string name="enable_disable_international" msgid="7535348799604565592">"International"</string>
+ <string name="international_enable" msgid="5855356769925044927">"International news enabled"</string>
+ <string name="international_disable" msgid="2850648591041088931">"International news disabled"</string>
+ <string name="list_language_title" msgid="2841683501919760043">"Language"</string>
+ <string name="list_language_summary" msgid="8109546531071241601">"Select the news language"</string>
<string-array name="list_language_entries">
- <item msgid="6137851079727305485">"English"</item>
- <item msgid="1151988412809572526">"French"</item>
- <item msgid="577840534704312665">"Spanish"</item>
- <item msgid="8385712091143148180">"Japanese"</item>
- <item msgid="1858401628368130638">"Korean"</item>
- <item msgid="1933212028684529632">"Chinese"</item>
- <item msgid="1908428006803639064">"Hebrew"</item>
+ <item msgid="6137851079727305485">"English"</item>
+ <item msgid="1151988412809572526">"French"</item>
+ <item msgid="577840534704312665">"Spanish"</item>
+ <item msgid="8385712091143148180">"Japanese"</item>
+ <item msgid="1858401628368130638">"Korean"</item>
+ <item msgid="1933212028684529632">"Chinese"</item>
+ <item msgid="1908428006803639064">"Hebrew"</item>
</string-array>
<string-array name="list_language_values">
- <item msgid="1804908636436467150">"1"</item>
- <item msgid="289708030346890334">"2"</item>
- <item msgid="1121469729692402684">"3"</item>
- <item msgid="2614093115912897722">"4"</item>
- <item msgid="2411164639857960614">"5"</item>
- <item msgid="5884448729274543324">"6"</item>
- <item msgid="5511864807618312598">"7"</item>
+ <item msgid="1804908636436467150">"1"</item>
+ <item msgid="289708030346890334">"2"</item>
+ <item msgid="1121469729692402684">"3"</item>
+ <item msgid="2614093115912897722">"4"</item>
+ <item msgid="2411164639857960614">"5"</item>
+ <item msgid="5884448729274543324">"6"</item>
+ <item msgid="5511864807618312598">"7"</item>
</string-array>
- <string name="list_language_dtitle" msgid="5442908726538951934">"Languages"</string>
- <string name="enable_disable_local_weather" msgid="986967454867219114">"Local Weather"</string>
- <string name="local_weather_enable" msgid="6199315114382448922">"Local Weather enabled"</string>
- <string name="local_weather_disable" msgid="2510158089142626480">"Local Weather disabled"</string>
- <string name="enable_disable_atr" msgid="8339572391278872343">"Area Traffic Reports"</string>
- <string name="atr_enable" msgid="5541757457789181799">"Area Traffic Reports enabled"</string>
- <string name="atr_disable" msgid="7085558154727596455">"Area Traffic Reports disabled"</string>
- <string name="enable_disable_lafs" msgid="668189073721277199">"Local Airport Flight Schedules"</string>
- <string name="lafs_enable" msgid="2791978667205137052">"Local Airport Flight Schedules enabled"</string>
- <string name="lafs_disable" msgid="2391212397725495350">"Local Airport Flight Schedules disabled"</string>
- <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restaurants"</string>
- <string name="restaurants_enable" msgid="5137657479469118847">"Restaurants enabled"</string>
- <string name="restaurants_disable" msgid="3678480270938424092">"Restaurants disabled"</string>
- <string name="enable_disable_lodgings" msgid="1822029172658551202">"Lodgings"</string>
- <string name="lodgings_enable" msgid="3230042508992850322">"Lodgings enabled"</string>
- <string name="lodgings_disable" msgid="3387879742320682391">"Lodgings disabled"</string>
- <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Retail Directory"</string>
- <string name="retail_directory_enable" msgid="3280626290436111496">"Retail Directory enabled"</string>
- <string name="retail_directory_disable" msgid="6479739816662879027">"Retail Directory disabled"</string>
- <string name="enable_disable_advertisements" msgid="5999495926176182128">"Advertisements"</string>
- <string name="advertisements_enable" msgid="2050305021264683786">"Advertisements enabled"</string>
- <string name="advertisements_disable" msgid="8350985908788707935">"Advertisements disabled"</string>
- <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Stock Quotes"</string>
- <string name="stock_quotes_enable" msgid="4384802470887170543">"Stock Quotes enabled"</string>
- <string name="stock_quotes_disable" msgid="4781450084565594998">"Stock Quotes disabled"</string>
- <string name="enable_disable_eo" msgid="4863043263443942494">"Employment Opportunities"</string>
- <string name="eo_enable" msgid="8623559062015685813">"Employment Opportunities enabled"</string>
- <string name="eo_disable" msgid="3863812478090907609">"Employment Opportunities disabled"</string>
- <string name="enable_disable_mhh" msgid="908214593528968522">"Medical, Health, and Hospital"</string>
- <string name="mhh_enable" msgid="5544500632306446815">"Medical, Health, and Hospital enabled"</string>
- <string name="mhh_disable" msgid="8998210550117117437">"Medical, Health, and Hospital disabled"</string>
- <string name="enable_disable_technology_news" msgid="3517184627114999149">"Technology News"</string>
- <string name="technology_news_enable" msgid="7995209394210455181">"Technology News enabled"</string>
- <string name="technology_news_disable" msgid="5483490380561851946">"Technology News disabled"</string>
- <string name="enable_disable_multi_category" msgid="626771003122899280">"Multi-category"</string>
- <string name="multi_category_enable" msgid="1179299804641721768">"Multi-category enabled"</string>
- <string name="multi_category_disable" msgid="880104702904139505">"Multi-category disabled"</string>
- <string name="network_lte" msgid="7702681952521375754">"LTE (recommended)"</string>
- <string name="network_4G" msgid="2723512640529983138">"4G (recommended)"</string>
- <string name="network_global" msgid="1323190488685355309">"Global"</string>
- <string name="cdma_system_select_title" msgid="5757657769327732833">"System select"</string>
- <string name="cdma_system_select_summary" msgid="60460043745797517">"Change the CDMA roaming mode"</string>
- <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"System select"</string>
+ <string name="list_language_dtitle" msgid="5442908726538951934">"Languages"</string>
+ <string name="enable_disable_local_weather" msgid="986967454867219114">"Local Weather"</string>
+ <string name="local_weather_enable" msgid="6199315114382448922">"Local Weather enabled"</string>
+ <string name="local_weather_disable" msgid="2510158089142626480">"Local Weather disabled"</string>
+ <string name="enable_disable_atr" msgid="8339572391278872343">"Area Traffic Reports"</string>
+ <string name="atr_enable" msgid="5541757457789181799">"Area Traffic Reports enabled"</string>
+ <string name="atr_disable" msgid="7085558154727596455">"Area Traffic Reports disabled"</string>
+ <string name="enable_disable_lafs" msgid="668189073721277199">"Local Airport Flight Schedules"</string>
+ <string name="lafs_enable" msgid="2791978667205137052">"Local Airport Flight Schedules enabled"</string>
+ <string name="lafs_disable" msgid="2391212397725495350">"Local Airport Flight Schedules disabled"</string>
+ <string name="enable_disable_restaurants" msgid="6240381945336814024">"Restaurants"</string>
+ <string name="restaurants_enable" msgid="5137657479469118847">"Restaurants enabled"</string>
+ <string name="restaurants_disable" msgid="3678480270938424092">"Restaurants disabled"</string>
+ <string name="enable_disable_lodgings" msgid="1822029172658551202">"Lodgings"</string>
+ <string name="lodgings_enable" msgid="3230042508992850322">"Lodgings enabled"</string>
+ <string name="lodgings_disable" msgid="3387879742320682391">"Lodgings disabled"</string>
+ <string name="enable_disable_retail_directory" msgid="1357809784475660303">"Retail Directory"</string>
+ <string name="retail_directory_enable" msgid="3280626290436111496">"Retail Directory enabled"</string>
+ <string name="retail_directory_disable" msgid="6479739816662879027">"Retail Directory disabled"</string>
+ <string name="enable_disable_advertisements" msgid="5999495926176182128">"Advertisements"</string>
+ <string name="advertisements_enable" msgid="2050305021264683786">"Advertisements enabled"</string>
+ <string name="advertisements_disable" msgid="8350985908788707935">"Advertisements disabled"</string>
+ <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"Stock Quotes"</string>
+ <string name="stock_quotes_enable" msgid="4384802470887170543">"Stock Quotes enabled"</string>
+ <string name="stock_quotes_disable" msgid="4781450084565594998">"Stock Quotes disabled"</string>
+ <string name="enable_disable_eo" msgid="4863043263443942494">"Employment Opportunities"</string>
+ <string name="eo_enable" msgid="8623559062015685813">"Employment Opportunities enabled"</string>
+ <string name="eo_disable" msgid="3863812478090907609">"Employment Opportunities disabled"</string>
+ <string name="enable_disable_mhh" msgid="908214593528968522">"Medical, Health, and Hospital"</string>
+ <string name="mhh_enable" msgid="5544500632306446815">"Medical, Health, and Hospital enabled"</string>
+ <string name="mhh_disable" msgid="8998210550117117437">"Medical, Health, and Hospital disabled"</string>
+ <string name="enable_disable_technology_news" msgid="3517184627114999149">"Technology News"</string>
+ <string name="technology_news_enable" msgid="7995209394210455181">"Technology News enabled"</string>
+ <string name="technology_news_disable" msgid="5483490380561851946">"Technology News disabled"</string>
+ <string name="enable_disable_multi_category" msgid="626771003122899280">"Multi-category"</string>
+ <string name="multi_category_enable" msgid="1179299804641721768">"Multi-category enabled"</string>
+ <string name="multi_category_disable" msgid="880104702904139505">"Multi-category disabled"</string>
+ <string name="network_lte" msgid="7702681952521375754">"LTE (recommended)"</string>
+ <string name="network_4G" msgid="2723512640529983138">"4G (recommended)"</string>
+ <string name="network_global" msgid="1323190488685355309">"Global"</string>
+ <string name="cdma_system_select_title" msgid="5757657769327732833">"System select"</string>
+ <string name="cdma_system_select_summary" msgid="60460043745797517">"Change the CDMA roaming mode"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"System select"</string>
<string-array name="cdma_system_select_choices">
- <item msgid="176474317493999285">"Home only"</item>
- <item msgid="1205664026446156265">"Automatic"</item>
+ <item msgid="176474317493999285">"Home only"</item>
+ <item msgid="1205664026446156265">"Automatic"</item>
</string-array>
- <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA subscription"</string>
- <string name="cdma_subscription_summary" msgid="2530890766115781140">"Change between RUIM/SIM and NV"</string>
- <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"subscription"</string>
+ <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA subscription"</string>
+ <string name="cdma_subscription_summary" msgid="2530890766115781140">"Change between RUIM/SIM and NV"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"subscription"</string>
<string-array name="cdma_subscription_choices">
- <item msgid="2258014151300708431">"RUIM/SIM"</item>
- <item msgid="5127722015571873880">"NV"</item>
+ <item msgid="2258014151300708431">"RUIM/SIM"</item>
+ <item msgid="5127722015571873880">"NV"</item>
</string-array>
<string-array name="cdma_subscription_values">
- <item msgid="7494167883478914080">"0"</item>
- <item msgid="6043847456049107742">"1"</item>
+ <item msgid="7494167883478914080">"0"</item>
+ <item msgid="6043847456049107742">"1"</item>
</string-array>
- <string name="cdma_activate_device" msgid="3793805892364814518">"Activate device"</string>
- <string name="cdma_lte_data_service" msgid="4255018217292548962">"Set up data service"</string>
- <string name="carrier_settings_title" msgid="9028166176523012300">"Carrier settings"</string>
- <string name="fdn" msgid="7878832555095183202">"Fixed Dialing Numbers"</string>
- <string name="fdn_with_label" msgid="187084204115493366">"Fixed Dialing Numbers (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
- <string name="manage_fdn_list" msgid="8777755791892122369">"FDN list"</string>
- <string name="fdn_list_with_label" msgid="7437232552210469217">"FDN list (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
- <string name="fdn_activation" msgid="2156479741307463576">"FDN activation"</string>
- <string name="fdn_enabled" msgid="5238109009915521240">"Fixed Dialing Numbers are enabled"</string>
- <string name="fdn_disabled" msgid="4700049736675368279">"Fixed Dialing Numbers are disabled"</string>
- <string name="enable_fdn" msgid="3740191529180493851">"Enable FDN"</string>
- <string name="disable_fdn" msgid="7944020890722540616">"Disable FDN"</string>
- <string name="change_pin2" msgid="2153563695382176676">"Change PIN2"</string>
- <string name="enable_fdn_ok" msgid="7215588870329688132">"Disable FDN"</string>
- <string name="disable_fdn_ok" msgid="5727046928930740173">"Enable FDN"</string>
- <string name="sum_fdn" msgid="1959399454900272878">"Manage Fixed Dialing Numbers"</string>
- <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Change PIN for FDN access"</string>
- <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Manage phone number list"</string>
- <string name="voice_privacy" msgid="3776841382844614716">"Voice privacy"</string>
- <string name="voice_privacy_summary" msgid="3159383389833516214">"Enable enhanced privacy mode"</string>
- <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY mode"</string>
- <string name="tty_mode_option_summary" msgid="1073835131534808732">"Set TTY mode"</string>
- <string name="auto_retry_mode_title" msgid="4073265511427813322">"Auto-retry"</string>
- <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Enable Auto-retry mode"</string>
- <string name="tty_mode_not_allowed_video_call" msgid="3795846787901909176">"TTY Mode change is not allowed during a video call"</string>
- <string name="menu_add" msgid="1882023737425114762">"Add contact"</string>
- <string name="menu_edit" msgid="7143003705504672374">"Edit contact"</string>
- <string name="menu_delete" msgid="3977150783449642851">"Delete contact"</string>
- <string name="menu_dial" msgid="3223106222819685808">"Dial contact"</string>
- <string name="get_pin2" msgid="8204677063922225311">"Type PIN2"</string>
- <string name="name" msgid="7329028332786872378">"Name"</string>
- <string name="number" msgid="7905950798349903858">"Number"</string>
- <string name="save" msgid="4094274636321939086">"Save"</string>
- <string name="add_fdn_contact" msgid="2481915899633353976">"Add fixed dialing number"</string>
- <string name="adding_fdn_contact" msgid="7627379633721940991">"Adding fixed dialing number…"</string>
- <string name="fdn_contact_added" msgid="7458335758501736665">"Fixed dialing number added."</string>
- <string name="edit_fdn_contact" msgid="7976936035587081480">"Edit fixed dialing number"</string>
- <string name="updating_fdn_contact" msgid="8370929876849803600">"Updating fixed dialing number…"</string>
- <string name="fdn_contact_updated" msgid="5497828782609005017">"Fixed dialing number updated."</string>
- <string name="delete_fdn_contact" msgid="6668958073074151717">"Delete fixed dialing number"</string>
- <string name="deleting_fdn_contact" msgid="5669163206349319969">"Deleting fixed dialing number…"</string>
- <string name="fdn_contact_deleted" msgid="7154162327112259569">"Fixed dialing number deleted."</string>
- <string name="pin2_invalid" msgid="5470854099230755944">"FDN wasn\'t updated because you typed an incorrect PIN."</string>
- <string name="fdn_invalid_number" msgid="2062898833049589309">"FDN wasn\'t updated because the number exceeds 20 digits."</string>
- <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN wasn\'t updated. The PIN2 was incorrect, or the phone number was rejected."</string>
- <string name="fdn_failed" msgid="540018079008319747">"FDN operation failed."</string>
- <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Reading from SIM card…"</string>
- <string name="simContacts_empty" msgid="5270660846489561932">"No contacts on your SIM card."</string>
- <string name="simContacts_title" msgid="1861472842524839921">"Select contacts to import"</string>
- <string name="simContacts_airplaneMode" msgid="5254946758982621072">"Turn off airplane mode to import contacts from the SIM card."</string>
- <string name="enable_pin" msgid="5422767284133234860">"Enable/disable SIM PIN"</string>
- <string name="change_pin" msgid="9174186126330785343">"Change SIM PIN"</string>
- <string name="enter_pin_text" msgid="8532615714751931951">"SIM PIN:"</string>
- <string name="oldPinLabel" msgid="5287773661246368314">"Old PIN"</string>
- <string name="newPinLabel" msgid="207488227285336897">"New PIN"</string>
- <string name="confirmPinLabel" msgid="257597715098070206">"Confirm new PIN"</string>
- <string name="badPin" msgid="8955102849303984935">"The old PIN you typed isn\'t correct. Try again."</string>
- <string name="mismatchPin" msgid="5923253370683071889">"The PINs you typed don\'t match. Try again."</string>
- <string name="invalidPin" msgid="5981171102258684792">"Type a PIN that is 4 to 8 numbers."</string>
- <string name="disable_sim_pin" msgid="3419351358300716472">"Clear SIM PIN"</string>
- <string name="enable_sim_pin" msgid="4845145659651484248">"Set SIM PIN"</string>
- <string name="enable_in_progress" msgid="3417917024688497010">"Setting PIN…"</string>
- <string name="enable_pin_ok" msgid="2918545971413270063">"PIN set"</string>
- <string name="disable_pin_ok" msgid="2109571368635883688">"PIN cleared"</string>
- <string name="pin_failed" msgid="5644377896213584760">"PIN incorrect"</string>
- <string name="pin_changed" msgid="4455736268023261662">"PIN updated"</string>
- <string name="puk_requested" msgid="5921393215789090200">"Password incorrect. PIN now blocked. PUK requested."</string>
- <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
- <string name="oldPin2Label" msgid="8559146795026261502">"Old PIN2"</string>
- <string name="newPin2Label" msgid="4573956902204349054">"New PIN2"</string>
- <string name="confirmPin2Label" msgid="8100319484454787708">"Confirm new PIN2"</string>
- <string name="badPuk2" msgid="7910064009531541708">"PUK2 incorrect. Try again."</string>
- <string name="badPin2" msgid="6646896629970023109">"Old PIN2 incorrect. Try again."</string>
- <string name="mismatchPin2" msgid="4177967478551851117">"PIN2s don\'t match. Try again."</string>
- <string name="invalidPin2" msgid="1757045131429105595">"Enter a PIN2 that is 4 to 8 numbers."</string>
- <string name="invalidPuk2" msgid="7059081153334815973">"Enter a PUK2 that is 8 numbers."</string>
- <string name="pin2_changed" msgid="3724522579945610956">"PIN2 updated"</string>
- <string name="label_puk2_code" msgid="4688069961795341948">"Enter PUK2 code"</string>
- <string name="fdn_enable_puk2_requested" msgid="4991074891459554705">"Password incorrect. PIN2 now Blocked. To try again, change PIN 2."</string>
- <string name="puk2_requested" msgid="5831015200030161434">"Password incorrect. SIM now locked. Enter PUK2."</string>
- <string name="puk2_blocked" msgid="3150263853077280049">"PUK2 is permanently blocked."</string>
- <string name="pin2_attempts" msgid="720736232885011507">"\nYou have <xliff:g id="NUMBER">%d</xliff:g> remaining attempts."</string>
- <string name="pin2_unblocked" msgid="7791600368153469078">"PIN2 no longer blocked"</string>
- <string name="pin2_error_exception" msgid="1088689322248996699">"Network or SIM card error"</string>
- <string name="doneButton" msgid="2859593360997984240">"Done"</string>
- <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Voicemail number"</string>
- <string name="card_title_dialing" msgid="5769417478498348054">"Dialing"</string>
- <string name="card_title_redialing" msgid="8253487008234167266">"Redialing"</string>
- <string name="card_title_conf_call" msgid="1162980346189744501">"Conference call"</string>
- <string name="card_title_incoming_call" msgid="7364539451234646909">"Incoming call"</string>
- <string name="card_title_call_ended" msgid="5544730338889702298">"Call ended"</string>
- <string name="card_title_on_hold" msgid="821463117892339942">"On hold"</string>
- <string name="card_title_hanging_up" msgid="3999101620995182450">"Hanging up"</string>
- <string name="card_title_in_call" msgid="6346543933068225205">"In call"</string>
- <string name="notification_voicemail_title" msgid="8933468752045550523">"New voicemail"</string>
- <string name="notification_voicemail_title_count" msgid="4366360747660929916">"New voicemail (<xliff:g id="COUNT">%d</xliff:g>)"</string>
- <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Dial <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
- <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Voicemail number unknown"</string>
- <string name="notification_network_selection_title" msgid="4224455487793492772">"No service"</string>
- <string name="notification_network_selection_text" msgid="2607085729661923269">"Selected network (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) unavailable"</string>
- <string name="incall_error_power_off" product="watch" msgid="2007450435656211658">"Turn on mobile network, turn off airplane mode or turn off battery saver mode to make a call."</string>
- <string name="incall_error_power_off" product="default" msgid="2947938060513306698">"Turn off airplane mode to make a call."</string>
- <string name="incall_error_power_off_wfc" msgid="8711428920632416575">"Turn off airplane mode or connect to a wireless network to make a call."</string>
- <string name="incall_error_ecm_emergency_only" msgid="738708660612388692">"Exit emergency callback mode to make a non-emergency call."</string>
- <string name="incall_error_emergency_only" msgid="4678640422710818317">"Not registered on network."</string>
- <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mobile network not available."</string>
- <string name="incall_error_out_of_service_wfc" msgid="8741629779555132471">"Mobile network is not available. Connect to a wireless network to make a call."</string>
- <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"To place a call, enter a valid number."</string>
- <string name="incall_error_call_failed" msgid="5891978320269774095">"Call failed."</string>
- <string name="incall_error_cannot_add_call" msgid="8878159278947023326">"Call cannot be added at this time. You can try to reach out by sending a message."</string>
- <string name="incall_error_supp_service_unknown" msgid="655570339115407698">"Service not supported"</string>
- <string name="incall_error_supp_service_switch" msgid="5237002176899962862">"Can\'t switch calls."</string>
- <string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Can\'t separate call."</string>
- <string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Can\'t transfer."</string>
- <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Unable to conference calls."</string>
- <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Can\'t reject call."</string>
- <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Can\'t release call(s)."</string>
- <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Can\'t hold calls."</string>
- <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Connect to a wireless network to make a call."</string>
- <string name="incall_error_promote_wfc" msgid="106510757624022064">"Enable Wi-Fi calling to make a call."</string>
- <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Emergency call"</string>
- <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Turning on radio…"</string>
- <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"No service. Trying again…"</string>
- <string name="radio_off_during_emergency_call" msgid="2535800034010306830">"Cannot enter airplane mode during an emergency call."</string>
- <string name="dial_emergency_error" msgid="1509085166367420355">"Can\'t call. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is not an emergency number."</string>
- <string name="dial_emergency_empty_error" msgid="9130194953830414638">"Can\'t call. Dial an emergency number."</string>
- <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Use keyboard to dial"</string>
- <string name="onscreenHoldText" msgid="2285258239691145872">"Hold"</string>
- <string name="onscreenEndCallText" msgid="4403855834875398585">"End"</string>
- <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Dialpad"</string>
- <string name="onscreenMuteText" msgid="5011369181754261374">"Mute"</string>
- <string name="onscreenAddCallText" msgid="5140385634712287403">"Add call"</string>
- <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Merge calls"</string>
- <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Swap"</string>
- <string name="onscreenManageCallsText" msgid="5473231160123254154">"Manage calls"</string>
- <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Manage conference"</string>
- <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
- <string name="onscreenVideoCallText" msgid="4800924186056115442">"Video call"</string>
- <string name="importSimEntry" msgid="6614358325359736031">"Import"</string>
- <string name="importAllSimEntries" msgid="1503181169636198673">"Import all"</string>
- <string name="importingSimContacts" msgid="7374056215462575769">"Importing SIM contacts"</string>
- <string name="importToFDNfromContacts" msgid="2130620207013368580">"Import from contacts"</string>
- <string name="singleContactImportedMsg" msgid="6868483416182599206">"Imported contact"</string>
- <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Failed to import contact"</string>
- <string name="hac_mode_title" msgid="8740268574688743289">"Hearing aids"</string>
- <string name="hac_mode_summary" msgid="6833851160514929341">"Turn on hearing aid compatibility"</string>
- <string name="rtt_mode_title" msgid="5868105073514206953">"RTT"</string>
- <string name="rtt_mode_summary" msgid="7346441783429748083">"Turn RTT on or off"</string>
+ <string name="cdma_activate_device" msgid="3793805892364814518">"Activate device"</string>
+ <string name="cdma_lte_data_service" msgid="4255018217292548962">"Set up data service"</string>
+ <string name="carrier_settings_title" msgid="9028166176523012300">"Carrier settings"</string>
+ <string name="fdn" msgid="7878832555095183202">"Fixed Dialing Numbers"</string>
+ <string name="fdn_with_label" msgid="187084204115493366">"Fixed Dialing Numbers (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="manage_fdn_list" msgid="8777755791892122369">"FDN list"</string>
+ <string name="fdn_list_with_label" msgid="7437232552210469217">"FDN list (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="fdn_activation" msgid="2156479741307463576">"FDN activation"</string>
+ <string name="fdn_enabled" msgid="5238109009915521240">"Fixed Dialing Numbers are enabled"</string>
+ <string name="fdn_disabled" msgid="4700049736675368279">"Fixed Dialing Numbers are disabled"</string>
+ <string name="enable_fdn" msgid="3740191529180493851">"Enable FDN"</string>
+ <string name="disable_fdn" msgid="7944020890722540616">"Disable FDN"</string>
+ <string name="change_pin2" msgid="2153563695382176676">"Change PIN2"</string>
+ <string name="enable_fdn_ok" msgid="7215588870329688132">"Disable FDN"</string>
+ <string name="disable_fdn_ok" msgid="5727046928930740173">"Enable FDN"</string>
+ <string name="sum_fdn" msgid="1959399454900272878">"Manage Fixed Dialing Numbers"</string>
+ <string name="sum_fdn_change_pin" msgid="6666549734792827932">"Change PIN for FDN access"</string>
+ <string name="sum_fdn_manage_list" msgid="8431088265332628316">"Manage phone number list"</string>
+ <string name="voice_privacy" msgid="3776841382844614716">"Voice privacy"</string>
+ <string name="voice_privacy_summary" msgid="3159383389833516214">"Enable enhanced privacy mode"</string>
+ <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY mode"</string>
+ <string name="tty_mode_option_summary" msgid="1073835131534808732">"Set TTY mode"</string>
+ <string name="auto_retry_mode_title" msgid="4073265511427813322">"Auto-retry"</string>
+ <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Enable Auto-retry mode"</string>
+ <string name="tty_mode_not_allowed_video_call" msgid="3795846787901909176">"TTY Mode change is not allowed during a video call"</string>
+ <string name="menu_add" msgid="1882023737425114762">"Add contact"</string>
+ <string name="menu_edit" msgid="7143003705504672374">"Edit contact"</string>
+ <string name="menu_delete" msgid="3977150783449642851">"Delete contact"</string>
+ <string name="menu_dial" msgid="3223106222819685808">"Dial contact"</string>
+ <string name="get_pin2" msgid="8204677063922225311">"Type PIN2"</string>
+ <string name="name" msgid="7329028332786872378">"Name"</string>
+ <string name="number" msgid="7905950798349903858">"Number"</string>
+ <string name="save" msgid="4094274636321939086">"Save"</string>
+ <string name="add_fdn_contact" msgid="2481915899633353976">"Add fixed dialing number"</string>
+ <string name="adding_fdn_contact" msgid="7627379633721940991">"Adding fixed dialing number…"</string>
+ <string name="fdn_contact_added" msgid="7458335758501736665">"Fixed dialing number added."</string>
+ <string name="edit_fdn_contact" msgid="7976936035587081480">"Edit fixed dialing number"</string>
+ <string name="updating_fdn_contact" msgid="8370929876849803600">"Updating fixed dialing number…"</string>
+ <string name="fdn_contact_updated" msgid="5497828782609005017">"Fixed dialing number updated."</string>
+ <string name="delete_fdn_contact" msgid="6668958073074151717">"Delete fixed dialing number"</string>
+ <string name="deleting_fdn_contact" msgid="5669163206349319969">"Deleting fixed dialing number…"</string>
+ <string name="fdn_contact_deleted" msgid="7154162327112259569">"Fixed dialing number deleted."</string>
+ <string name="pin2_invalid" msgid="5470854099230755944">"FDN wasn\'t updated because you typed an incorrect PIN."</string>
+ <string name="fdn_invalid_number" msgid="2062898833049589309">"FDN wasn\'t updated because the number exceeds 20 digits."</string>
+ <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN wasn\'t updated. The PIN2 was incorrect, or the phone number was rejected."</string>
+ <string name="fdn_failed" msgid="540018079008319747">"FDN operation failed."</string>
+ <string name="simContacts_emptyLoading" msgid="2203331234764498011">"Reading from SIM card…"</string>
+ <string name="simContacts_empty" msgid="5270660846489561932">"No contacts on your SIM card."</string>
+ <string name="simContacts_title" msgid="1861472842524839921">"Select contacts to import"</string>
+ <string name="simContacts_airplaneMode" msgid="5254946758982621072">"Turn off airplane mode to import contacts from the SIM card."</string>
+ <string name="enable_pin" msgid="5422767284133234860">"Enable/disable SIM PIN"</string>
+ <string name="change_pin" msgid="9174186126330785343">"Change SIM PIN"</string>
+ <string name="enter_pin_text" msgid="8532615714751931951">"SIM PIN:"</string>
+ <string name="oldPinLabel" msgid="5287773661246368314">"Old PIN"</string>
+ <string name="newPinLabel" msgid="207488227285336897">"New PIN"</string>
+ <string name="confirmPinLabel" msgid="257597715098070206">"Confirm new PIN"</string>
+ <string name="badPin" msgid="8955102849303984935">"The old PIN you typed isn\'t correct. Try again."</string>
+ <string name="mismatchPin" msgid="5923253370683071889">"The PINs you typed don\'t match. Try again."</string>
+ <string name="invalidPin" msgid="5981171102258684792">"Type a PIN that is 4 to 8 numbers."</string>
+ <string name="disable_sim_pin" msgid="3419351358300716472">"Clear SIM PIN"</string>
+ <string name="enable_sim_pin" msgid="4845145659651484248">"Set SIM PIN"</string>
+ <string name="enable_in_progress" msgid="3417917024688497010">"Setting PIN…"</string>
+ <string name="enable_pin_ok" msgid="2918545971413270063">"PIN set"</string>
+ <string name="disable_pin_ok" msgid="2109571368635883688">"PIN cleared"</string>
+ <string name="pin_failed" msgid="5644377896213584760">"PIN incorrect"</string>
+ <string name="pin_changed" msgid="4455736268023261662">"PIN updated"</string>
+ <string name="puk_requested" msgid="5921393215789090200">"Password incorrect. PIN now blocked. PUK requested."</string>
+ <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+ <string name="oldPin2Label" msgid="8559146795026261502">"Old PIN2"</string>
+ <string name="newPin2Label" msgid="4573956902204349054">"New PIN2"</string>
+ <string name="confirmPin2Label" msgid="8100319484454787708">"Confirm new PIN2"</string>
+ <string name="badPuk2" msgid="7910064009531541708">"PUK2 incorrect. Try again."</string>
+ <string name="badPin2" msgid="6646896629970023109">"Old PIN2 incorrect. Try again."</string>
+ <string name="mismatchPin2" msgid="4177967478551851117">"PIN2s don\'t match. Try again."</string>
+ <string name="invalidPin2" msgid="1757045131429105595">"Enter a PIN2 that is 4 to 8 numbers."</string>
+ <string name="invalidPuk2" msgid="7059081153334815973">"Enter a PUK2 that is 8 numbers."</string>
+ <string name="pin2_changed" msgid="3724522579945610956">"PIN2 updated"</string>
+ <string name="label_puk2_code" msgid="4688069961795341948">"Enter PUK2 code"</string>
+ <string name="fdn_enable_puk2_requested" msgid="4991074891459554705">"Password incorrect. PIN2 now Blocked. To try again, change PIN 2."</string>
+ <string name="puk2_requested" msgid="5831015200030161434">"Password incorrect. SIM now locked. Enter PUK2."</string>
+ <string name="puk2_blocked" msgid="3150263853077280049">"PUK2 is permanently blocked."</string>
+ <string name="pin2_attempts" msgid="720736232885011507">"\nYou have <xliff:g id="NUMBER">%d</xliff:g> remaining attempts."</string>
+ <string name="pin2_unblocked" msgid="7791600368153469078">"PIN2 no longer blocked"</string>
+ <string name="pin2_error_exception" msgid="1088689322248996699">"Network or SIM card error"</string>
+ <string name="doneButton" msgid="2859593360997984240">"Done"</string>
+ <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Voicemail number"</string>
+ <string name="card_title_dialing" msgid="5769417478498348054">"Dialing"</string>
+ <string name="card_title_redialing" msgid="8253487008234167266">"Redialing"</string>
+ <string name="card_title_conf_call" msgid="1162980346189744501">"Conference call"</string>
+ <string name="card_title_incoming_call" msgid="7364539451234646909">"Incoming call"</string>
+ <string name="card_title_call_ended" msgid="5544730338889702298">"Call ended"</string>
+ <string name="card_title_on_hold" msgid="821463117892339942">"On hold"</string>
+ <string name="card_title_hanging_up" msgid="3999101620995182450">"Hanging up"</string>
+ <string name="card_title_in_call" msgid="6346543933068225205">"In call"</string>
+ <string name="notification_voicemail_title" msgid="8933468752045550523">"New voicemail"</string>
+ <string name="notification_voicemail_title_count" msgid="4366360747660929916">"New voicemail (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+ <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Dial <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+ <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Voicemail number unknown"</string>
+ <string name="notification_network_selection_title" msgid="4224455487793492772">"No service"</string>
+ <string name="notification_network_selection_text" msgid="7550380440576731104">"Selected network<xliff:g id="OPERATOR_NAME">%s</xliff:g> unavailable"</string>
+ <string name="incall_error_power_off" product="watch" msgid="2007450435656211658">"Turn on mobile network, turn off airplane mode or turn off battery saver mode to make a call."</string>
+ <string name="incall_error_power_off" product="default" msgid="2947938060513306698">"Turn off airplane mode to make a call."</string>
+ <string name="incall_error_power_off_wfc" msgid="8711428920632416575">"Turn off airplane mode or connect to a wireless network to make a call."</string>
+ <string name="incall_error_ecm_emergency_only" msgid="738708660612388692">"Exit emergency callback mode to make a non-emergency call."</string>
+ <string name="incall_error_emergency_only" msgid="4678640422710818317">"Not registered on network."</string>
+ <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mobile network not available."</string>
+ <string name="incall_error_out_of_service_wfc" msgid="8741629779555132471">"Mobile network is not available. Connect to a wireless network to make a call."</string>
+ <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"To place a call, enter a valid number."</string>
+ <string name="incall_error_call_failed" msgid="5891978320269774095">"Call failed."</string>
+ <string name="incall_error_cannot_add_call" msgid="8878159278947023326">"Call cannot be added at this time. You can try to reach out by sending a message."</string>
+ <string name="incall_error_supp_service_unknown" msgid="655570339115407698">"Service not supported"</string>
+ <string name="incall_error_supp_service_switch" msgid="5237002176899962862">"Can\'t switch calls."</string>
+ <string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Can\'t resume call."</string>
+ <string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Can\'t separate call."</string>
+ <string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Can\'t transfer."</string>
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Unable to merge calls."</string>
+ <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Can\'t reject call."</string>
+ <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Can\'t release call(s)."</string>
+ <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Can\'t hold calls."</string>
+ <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Connect to a wireless network to make a call."</string>
+ <string name="incall_error_promote_wfc" msgid="106510757624022064">"Enable Wi-Fi calling to make a call."</string>
+ <string name="emergency_information_hint" msgid="399011533038204351">"Emergency information"</string>
+ <string name="emergency_information_owner_hint" msgid="688331472291637149">"Owner"</string>
+ <string name="emergency_information_confirm_hint" msgid="4039012670779853030">"Tap again to view info"</string>
+ <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Emergency call"</string>
+ <string name="emergency_dialpad_title" msgid="6052294225467269233">"Emergency calls only"</string>
+ <string name="single_emergency_number_title" msgid="4959203129714396515">"Emergency number"</string>
+ <string name="numerous_emergency_numbers_title" msgid="754158099451343898">"Emergency numbers"</string>
+ <string name="emergency_call_shortcut_hint" msgid="6506167229097004348">"Tap again to call <xliff:g id="EMERGENCY_NUMBER">%s</xliff:g>"</string>
+ <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Turning on radio…"</string>
+ <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"No service. Trying again…"</string>
+ <string name="radio_off_during_emergency_call" msgid="2535800034010306830">"Cannot enter airplane mode during an emergency call."</string>
+ <string name="dial_emergency_error" msgid="1509085166367420355">"Can\'t call. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is not an emergency number."</string>
+ <string name="dial_emergency_empty_error" msgid="9130194953830414638">"Can\'t call. Dial an emergency number."</string>
+ <string name="dial_emergency_calling_not_available" msgid="5675557523782491826">"Emergency calling not available"</string>
+ <string name="police_type_description" msgid="5324410799919829693">"Police"</string>
+ <string name="ambulance_type_description" msgid="4114815025408089866">"Ambulance"</string>
+ <string name="fire_type_description" msgid="7145996705197064710">"Fire"</string>
+ <string name="description_concat_format" msgid="7141070875487870177">"%1$s, %2$s"</string>
+ <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Use keyboard to dial"</string>
+ <string name="onscreenHoldText" msgid="2285258239691145872">"Hold"</string>
+ <string name="onscreenEndCallText" msgid="4403855834875398585">"End"</string>
+ <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Dialpad"</string>
+ <string name="onscreenMuteText" msgid="5011369181754261374">"Mute"</string>
+ <string name="onscreenAddCallText" msgid="5140385634712287403">"Add call"</string>
+ <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Merge calls"</string>
+ <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Swap"</string>
+ <string name="onscreenManageCallsText" msgid="5473231160123254154">"Manage calls"</string>
+ <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Manage conference"</string>
+ <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
+ <string name="onscreenVideoCallText" msgid="4800924186056115442">"Video call"</string>
+ <string name="importSimEntry" msgid="6614358325359736031">"Import"</string>
+ <string name="importAllSimEntries" msgid="1503181169636198673">"Import all"</string>
+ <string name="importingSimContacts" msgid="7374056215462575769">"Importing SIM contacts"</string>
+ <string name="importToFDNfromContacts" msgid="2130620207013368580">"Import from contacts"</string>
+ <string name="singleContactImportedMsg" msgid="6868483416182599206">"Imported contact"</string>
+ <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"Failed to import contact"</string>
+ <string name="hac_mode_title" msgid="8740268574688743289">"Hearing aids"</string>
+ <string name="hac_mode_summary" msgid="6833851160514929341">"Turn on hearing aid compatibility"</string>
+ <string name="rtt_mode_title" msgid="6954652435543570121">"Real-time text (RTT) call"</string>
+ <string name="rtt_mode_summary" msgid="5146344277246544580">"Allow messaging within a voice call"</string>
+ <string name="rtt_mode_more_information" msgid="6080420780730383030">"RTT assists callers who are deaf, hard of hearing, have a speech disability, or need more than voice alone.<br> <a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>>Learn more</a>\n <br><br> - RTT calls are saved as a message transcript\n <br> - RTT is not available for video calls"</string>
<string-array name="tty_mode_entries">
- <item msgid="512950011423868021">"TTY Off"</item>
- <item msgid="3971695875449640648">"TTY Full"</item>
- <item msgid="1937509904407445684">"TTY HCO"</item>
- <item msgid="5644925873488772224">"TTY VCO"</item>
+ <item msgid="512950011423868021">"TTY Off"</item>
+ <item msgid="3971695875449640648">"TTY Full"</item>
+ <item msgid="1937509904407445684">"TTY HCO"</item>
+ <item msgid="5644925873488772224">"TTY VCO"</item>
</string-array>
- <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF tones"</string>
- <string name="dtmf_tones_summary" msgid="3351820372864020331">"Set the length of DTMF tones"</string>
+ <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF tones"</string>
+ <string name="dtmf_tones_summary" msgid="3351820372864020331">"Set the length of DTMF tones"</string>
<string-array name="dtmf_tone_entries">
- <item msgid="899650777817315681">"Normal"</item>
- <item msgid="2883365539347850535">"Long"</item>
+ <item msgid="899650777817315681">"Normal"</item>
+ <item msgid="2883365539347850535">"Long"</item>
</string-array>
- <string name="network_info_message" msgid="7738596060242881930">"Network message"</string>
- <string name="network_error_message" msgid="3394780436230411413">"Error message"</string>
- <string name="ota_title_activate" msgid="8616918561356194398">"Activate your phone"</string>
- <string name="ota_touch_activate" msgid="6553212803262586244">"A special call needs to be made to activate your phone service. \n\nAfter pressing “Activate”, listen to the instructions provided to activate your phone."</string>
- <string name="ota_hfa_activation_title" msgid="2234246934160473981">"Activating..."</string>
- <string name="ota_hfa_activation_dialog_message" msgid="8092479227918463415">"The phone is activating your mobile data service.\n\nThis can take up to 5 minutes."</string>
- <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Skip activation?"</string>
- <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"If you skip activation, you can\'t place calls or connect to mobile data networks (though you can connect to Wi-Fi networks). Until you activate your phone, you are asked to activate it each time you turn it on."</string>
- <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Skip"</string>
- <string name="ota_activate" msgid="1368528132525626264">"Activate"</string>
- <string name="ota_title_activate_success" msgid="6570240212263372046">"Phone is activated."</string>
- <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problem with activation"</string>
- <string name="ota_listen" msgid="162923839877584937">"Follow the spoken instructions until you hear that activation is complete."</string>
- <string name="ota_speaker" msgid="6904589278542719647">"Speaker"</string>
- <string name="ota_progress" msgid="460876637828044519">"Programming your phone…"</string>
- <string name="ota_failure" msgid="7713756181204620397">"Couldn\'t program your phone"</string>
- <string name="ota_successful" msgid="1880780692887077407">"Your phone is now activated. It may take up to 15 minutes for service to start."</string>
- <string name="ota_unsuccessful" msgid="8072141612635635357">"Your phone didn\'t activate. \nYou may need to find an area with better coverage (near a window, or outside). \n\nTry again or call customer service for more options."</string>
- <string name="ota_spc_failure" msgid="3909983542575030796">"EXCESS SPC FAILURES"</string>
- <string name="ota_call_end" msgid="4537279738134612388">"Back"</string>
- <string name="ota_try_again" msgid="7685477206465902290">"Try again"</string>
- <string name="ota_next" msgid="3904945374358235910">"Next"</string>
- <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
- <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Entered Emergency Callback Mode"</string>
- <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Emergency Callback Mode"</string>
- <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Data connection disabled"</string>
- <string name="phone_in_ecm_notification_complete_time" msgid="7730376844178948351">"No data connection until <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
+ <string name="network_info_message" msgid="7738596060242881930">"Network message"</string>
+ <string name="network_error_message" msgid="3394780436230411413">"Error message"</string>
+ <string name="ota_title_activate" msgid="8616918561356194398">"Activate your phone"</string>
+ <string name="ota_touch_activate" msgid="6553212803262586244">"A special call needs to be made to activate your phone service. \n\nAfter pressing “Activate”, listen to the instructions provided to activate your phone."</string>
+ <string name="ota_hfa_activation_title" msgid="2234246934160473981">"Activating..."</string>
+ <string name="ota_hfa_activation_dialog_message" msgid="8092479227918463415">"The phone is activating your mobile data service.\n\nThis can take up to 5 minutes."</string>
+ <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"Skip activation?"</string>
+ <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"If you skip activation, you can\'t place calls or connect to mobile data networks (though you can connect to Wi-Fi networks). Until you activate your phone, you are asked to activate it each time you turn it on."</string>
+ <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"Skip"</string>
+ <string name="ota_activate" msgid="1368528132525626264">"Activate"</string>
+ <string name="ota_title_activate_success" msgid="6570240212263372046">"Phone is activated."</string>
+ <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"Problem with activation"</string>
+ <string name="ota_listen" msgid="162923839877584937">"Follow the spoken instructions until you hear that activation is complete."</string>
+ <string name="ota_speaker" msgid="6904589278542719647">"Speaker"</string>
+ <string name="ota_progress" msgid="460876637828044519">"Programming your phone…"</string>
+ <string name="ota_failure" msgid="7713756181204620397">"Couldn\'t program your phone"</string>
+ <string name="ota_successful" msgid="1880780692887077407">"Your phone is now activated. It may take up to 15 minutes for service to start."</string>
+ <string name="ota_unsuccessful" msgid="8072141612635635357">"Your phone didn\'t activate. \nYou may need to find an area with better coverage (near a window, or outside). \n\nTry again or call customer service for more options."</string>
+ <string name="ota_spc_failure" msgid="3909983542575030796">"EXCESS SPC FAILURES"</string>
+ <string name="ota_call_end" msgid="4537279738134612388">"Back"</string>
+ <string name="ota_try_again" msgid="7685477206465902290">"Try again"</string>
+ <string name="ota_next" msgid="3904945374358235910">"Next"</string>
+ <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+ <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Entered Emergency Callback Mode"</string>
+ <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Emergency Callback Mode"</string>
+ <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Data connection disabled"</string>
+ <string name="phone_in_ecm_notification_complete_time" msgid="7730376844178948351">"No data connection until <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
<plurals name="alert_dialog_exit_ecm" formatted="false" msgid="7179911675595441201">
- <item quantity="other">The phone will be in Emergency Callback mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes. While in this mode no applications using a data connection can be used. Do you want to exit now?</item>
- <item quantity="one">The phone will be in Emergency Callback mode for <xliff:g id="COUNT_0">%s</xliff:g> minute. While in this mode no apps using a data connection can be used. Do you want to exit now?</item>
+ <item quantity="other">The phone will be in Emergency Callback mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes. While in this mode no applications using a data connection can be used. Do you want to exit now?</item>
+ <item quantity="one">The phone will be in Emergency Callback mode for <xliff:g id="COUNT_0">%s</xliff:g> minute. While in this mode no apps using a data connection can be used. Do you want to exit now?</item>
</plurals>
<plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="8042973425225093895">
- <item quantity="other">The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes. Do you want to exit now?</item>
- <item quantity="one">The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="COUNT_0">%s</xliff:g> minute. Do you want to exit now?</item>
+ <item quantity="other">The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes. Do you want to exit now?</item>
+ <item quantity="one">The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="COUNT_0">%s</xliff:g> minute. Do you want to exit now?</item>
</plurals>
- <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"The selected action isn\'t available while in an emergency call."</string>
- <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Exiting Emergency Callback mode"</string>
- <string name="alert_dialog_yes" msgid="6674268047820703974">"Yes"</string>
- <string name="alert_dialog_no" msgid="1476091437797628703">"No"</string>
- <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Dismiss"</string>
- <string name="voicemail_provider" msgid="5135942703327136909">"Service"</string>
- <string name="voicemail_settings" msgid="72448049107749316">"Setup"</string>
- <string name="voicemail_number_not_set" msgid="6724904736891087856">"<Not set>"</string>
- <string name="other_settings" msgid="3672912580359716394">"Other call settings"</string>
- <string name="calling_via_template" msgid="4839419581866928142">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
- <string name="contactPhoto" msgid="4713193418046639466">"contact photo"</string>
- <string name="goPrivate" msgid="865837794424530980">"go private"</string>
- <string name="selectContact" msgid="781975788478987237">"select contact"</string>
- <string name="not_voice_capable" msgid="2739898841461577811">"Voice calling not supported"</string>
- <string name="description_dial_button" msgid="7459705245418435351">"dial"</string>
- <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Visual Voicemail"</string>
- <string name="voicemail_set_pin_dialog_title" msgid="2797924461029093837">"Set PIN"</string>
- <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Change PIN"</string>
- <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringtone & Vibrate"</string>
- <string name="pstn_connection_service_label" msgid="1743245930577325900">"Built-in SIM cards"</string>
- <string name="enable_video_calling_title" msgid="7237253660669000899">"Turn on video calling"</string>
- <string name="enable_video_calling_dialog_msg" msgid="8948186136957417948">"To turn on video calling, you need to enable Enhanced 4G LTE Mode in network settings."</string>
- <string name="enable_video_calling_dialog_settings" msgid="576528473599603249">"Network settings"</string>
- <string name="enable_video_calling_dialog_close" msgid="7411471282167927991">"Close"</string>
- <string name="sim_label_emergency_calls" msgid="4847699229529306397">"Emergency calls"</string>
- <string name="sim_description_emergency_calls" msgid="7535215397212301562">"Emergency calling only"</string>
- <string name="sim_description_default" msgid="4778679519938775515">"SIM card, slot: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
- <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Accessibility"</string>
- <string name="status_hint_label_incoming_wifi_call" msgid="5932176406432044638">"Wi-Fi call from"</string>
- <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi call"</string>
- <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Tap again to open"</string>
- <string name="message_decode_error" msgid="3456481534066924855">"There was an error while decoding the message."</string>
- <string name="callFailed_cdma_activation" msgid="2307989779233262164">"A SIM card has activated your service and updated your phone\'s roaming capabilities."</string>
- <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"There are too many active calls. Please end or merge existing calls before placing a new one."</string>
- <string name="callFailed_imei_not_accepted" msgid="132192626901238542">"Unable to connect, please insert a valid SIM card."</string>
- <string name="callFailed_wifi_lost" msgid="5968076625137297184">"Wi-Fi connection lost. Call ended."</string>
- <string name="dialFailed_low_battery" msgid="8760548177088774268">"Your video call cannot be placed due to low battery."</string>
- <string name="callFailed_low_battery" msgid="4913582435905872616">"Video call ended due to low battery."</string>
- <string name="change_pin_title" msgid="7790232089699034029">"Change Voicemail PIN"</string>
- <string name="change_pin_continue_label" msgid="2135088662420163447">"Continue"</string>
- <string name="change_pin_cancel_label" msgid="353535488390948596">"Cancel"</string>
- <string name="change_pin_ok_label" msgid="6204308560844889926">"Ok"</string>
- <string name="change_pin_enter_old_pin_header" msgid="419179847657548887">"Confirm your old PIN"</string>
- <string name="change_pin_enter_old_pin_hint" msgid="8579171678763615453">"Enter your voicemail PIN to continue."</string>
- <string name="change_pin_enter_new_pin_header" msgid="2611191814590251532">"Set a new PIN"</string>
- <string name="change_pin_enter_new_pin_hint" msgid="2322940054329689309">"PIN must be <xliff:g id="MIN">%1$d</xliff:g>-<xliff:g id="MAX">%2$d</xliff:g> digits."</string>
- <string name="change_pin_confirm_pin_header" msgid="8113764019347322170">"Confirm your PIN"</string>
- <string name="change_pin_confirm_pins_dont_match" msgid="4795052654904027909">"PINs don\'t match"</string>
- <string name="change_pin_succeeded" msgid="2022852286442211151">"Voicemail PIN updated"</string>
- <string name="change_pin_system_error" msgid="8308462387154257840">"Unable to set PIN"</string>
- <string name="mobile_data_status_roaming_turned_off_subtext" msgid="935636805765823307">"Data roaming is turned off"</string>
- <string name="mobile_data_status_roaming_turned_on_subtext" msgid="1335176927083781041">"Data roaming is turned on"</string>
- <string name="mobile_data_status_roaming_without_plan_subtext" msgid="3568412513831673037">"Currently roaming, need data plan"</string>
- <string name="mobile_data_status_roaming_with_plan_subtext" msgid="8721998948811064377">"Currently roaming, data plan is active"</string>
- <string name="mobile_data_status_no_plan_subtext" msgid="4887747337017565725">"No mobile data left"</string>
- <string name="mobile_data_activate_prepaid" msgid="7447025165850512683">"No mobile data left"</string>
- <string name="mobile_data_activate_prepaid_summary" msgid="5705389791791637666">"Add mobile data through <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
- <string name="mobile_data_activate_roaming_plan" msgid="5998161536947086264">"No roaming plan"</string>
- <string name="mobile_data_activate_roaming_plan_summary" msgid="511202908883425459">"Add roaming plan through <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
- <string name="mobile_data_activate_footer" msgid="5979019929980140594">"You can add mobile data or a roaming plan through your carrier, <xliff:g id="PROVIDER_NAME">%s</xliff:g>."</string>
- <string name="mobile_data_activate_diag_title" msgid="9044252207707864493">"Add data?"</string>
- <string name="mobile_data_activate_diag_message" msgid="8216154678758451453">"You may need to add data through <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
- <string name="mobile_data_activate_button" msgid="3682400969184405446">"ADD DATA"</string>
- <string name="mobile_data_activate_cancel_button" msgid="1708022171547398765">"CANCEL"</string>
- <string name="clh_card_title_call_ended_txt" msgid="4072101334811753823">"Call ended"</string>
- <string name="clh_callFailed_powerOff_txt" msgid="3773036949107147708">"Radio off"</string>
- <string name="clh_callFailed_simError_txt" msgid="757650590524277969">"No SIM card or SIM card error"</string>
- <string name="clh_incall_error_out_of_service_txt" msgid="3974373603657193827">"Mobile network not available"</string>
- <string name="clh_callFailed_unassigned_number_txt" msgid="7635996793232604064">"Unassigned (unallocated) number"</string>
- <string name="clh_callFailed_no_route_to_destination_txt" msgid="8561586745288855167">"No route to destination"</string>
- <string name="clh_callFailed_channel_unacceptable_txt" msgid="8048626924246611459">"Channel unacceptable"</string>
- <string name="clh_callFailed_operator_determined_barring_txt" msgid="6889705714244076823">"Operator determined barring"</string>
- <string name="clh_callFailed_normal_call_clearing_txt" msgid="2810975267106345820">"Normal call clearing"</string>
- <string name="clh_callFailed_user_busy_txt" msgid="2736095995784746915">"User busy"</string>
- <string name="clh_callFailed_no_user_responding_txt" msgid="1421543095873040084">"No user responding"</string>
- <string name="clh_callFailed_user_alerting_txt" msgid="6606245970376797447">"User alerting, no answer"</string>
- <string name="clh_callFailed_call_rejected_txt" msgid="8001665478195793223">"Call rejected"</string>
- <string name="clh_callFailed_number_changed_txt" msgid="5127909898925154242">"Number changed"</string>
- <string name="clh_callFailed_pre_emption_txt" msgid="6864702416751338567">"Pre-emption"</string>
- <string name="clh_callFailed_non_selected_user_clearing_txt" msgid="8725898326616836656">"Non selected user clearing"</string>
- <string name="clh_callFailed_destination_out_of_order_txt" msgid="6626355413556362437">"Destination out of order"</string>
- <string name="clh_callFailed_invalid_number_format_txt" msgid="6987646655639655370">"Invalid number format (incomplete number)"</string>
- <string name="clh_callFailed_facility_rejected_txt" msgid="4539787567476563415">"Facility rejected"</string>
- <string name="clh_callFailed_response_to_STATUS_ENQUIRY_txt" msgid="178503536263624366">"Response to STATUS ENQUIRY"</string>
- <string name="clh_callFailed_normal_unspecified_txt" msgid="2777574148560245427">"Normal, unspecified"</string>
- <string name="clh_callFailed_no_circuit_available_txt" msgid="2894749820848784700">"No circuit/channel available"</string>
- <string name="clh_callFailed_network_out_of_order_txt" msgid="807472585030492179">"Network out of order"</string>
- <string name="clh_callFailed_temporary_failure_txt" msgid="1985847623937655151">"Temporary failure"</string>
- <string name="clh_callFailed_switching_equipment_congestion_txt" msgid="465517139462928431">"Switching equipment congestion"</string>
- <string name="clh_callFailed_access_information_discarded_txt" msgid="132851305339579892">"Access information discarded"</string>
- <string name="clh_callFailed_requested_circuit_txt" msgid="2316345471851443847">"Requested circuit/channel not available"</string>
- <string name="clh_callFailed_resources_unavailable_unspecified_txt" msgid="4460267429142724322">"Resources unavailable, unspecified"</string>
- <string name="clh_callFailed_quality_of_service_unavailable_txt" msgid="7315823047206338755">"Quality of service unavailable"</string>
- <string name="clh_callFailed_requested_facility_not_subscribed_txt" msgid="1688438372518949530">"Requested facility not subscribed"</string>
- <string name="clh_callFailed_incoming_calls_barred_within_the_CUG_txt" msgid="3922231620226043342">"Incoming calls barred within the CUG"</string>
- <string name="clh_callFailed_bearer_capability_not_authorized_txt" msgid="6515594235334537340">"Bearer capability not authorized"</string>
- <string name="clh_callFailed_bearer_capability_not_presently_available_txt" msgid="8013567156449692135">"Bearer capability not presently available"</string>
- <string name="clh_callFailed_service_or_option_not_available_unspecified_txt" msgid="8663374141880847414">"Service or option not available, unspecified"</string>
- <string name="clh_callFailed_bearer_service_not_implemented_txt" msgid="2772484977847973583">"Bearer service not implemented"</string>
- <string name="clh_callFailed_ACM_equal_to_or_greater_than_ACMmax_txt" msgid="2192709279981159761">"ACM equal to or greater than ACMmax"</string>
- <string name="clh_callFailed_requested_facility_not_implemented_txt" msgid="406404292085779118">"Requested facility not implemented"</string>
- <string name="clh_callFailed_only_restricted_digital_information_bearer_capability_is_available_txt" msgid="4817899794531157207">"Only restricted digital information bearer capability is available"</string>
- <string name="clh_callFailed_service_or_option_not_implemented_unspecified_txt" msgid="2968655784896862505">"Service or option not implemented, unspecified"</string>
- <string name="clh_callFailed_invalid_transaction_identifier_value_txt" msgid="3843478518660918642">"Invalid transaction identifier value"</string>
- <string name="clh_callFailed_user_not_member_of_CUG_txt" msgid="8462852903153938988">"User not member of CUG"</string>
- <string name="clh_callFailed_incompatible_destination_txt" msgid="2580750652910253219">"Incompatible destination"</string>
- <string name="clh_callFailed_invalid_transit_network_selection_txt" msgid="6589916900457111005">"Invalid transit network selection"</string>
- <string name="clh_callFailed_semantically_incorrect_message_txt" msgid="2329284157442218683">"Semantically incorrect message"</string>
- <string name="clh_callFailed_invalid_mandatory_information_txt" msgid="9081556111928912676">"Invalid mandatory information"</string>
- <string name="clh_callFailed_message_type_non_existent_or_not_implemented_txt" msgid="2641350895896546715">"Message type non-existent or not implemented"</string>
- <string name="clh_callFailed_message_type_not_compatible_with_protocol_state_txt" msgid="6598180735494982466">"Message type not compatible with protocol state"</string>
- <string name="clh_callFailed_information_element_non_existent_or_not_implemented_txt" msgid="4725610801664706983">"Information element non-existent or not implemented"</string>
- <string name="clh_callFailed_conditional_IE_error_txt" msgid="9140031076499566143">"Conditional IE error"</string>
- <string name="clh_callFailed_message_not_compatible_with_protocol_state_txt" msgid="6586005128633024271">"Message not compatible with protocol state"</string>
- <string name="clh_callFailed_recovery_on_timer_expiry_txt" msgid="3680765722923600294">"Recovery on timer expiry"</string>
- <string name="clh_callFailed_protocol_Error_unspecified_txt" msgid="8294907817156524790">"Protocol error, unspecified"</string>
- <string name="clh_callFailed_interworking_unspecified_txt" msgid="8838850798491763729">"Interworking, unspecified"</string>
- <string name="labelCallBarring" msgid="3452870940716226978">"Call barring"</string>
- <string name="sum_call_barring_enabled" msgid="6804489690436703488">"On"</string>
- <string name="sum_call_barring_disabled" msgid="5900772179198857783">"Off"</string>
- <string name="call_barring_baoc" msgid="1199843944333106035">"All outgoing"</string>
- <string name="call_barring_baoc_enabled" msgid="8112118391869380361">"Disable blocking of all outgoing calls?"</string>
- <string name="call_barring_baoc_disabled" msgid="7806697133004697974">"Block all outgoing calls?"</string>
- <string name="call_barring_baoic" msgid="3162154267825211826">"Outgoing international"</string>
- <string name="call_barring_baoic_enabled" msgid="2634377543147258105">"Disable blocking of outgoing international calls?"</string>
- <string name="call_barring_baoic_disabled" msgid="5817895648306183464">"Block outgoing international calls?"</string>
- <string name="call_barring_baoicr" msgid="8951699885885742076">"Outgoing international roaming"</string>
- <string name="call_barring_baoicr_enabled" msgid="2519630715322138317">"Disable blocking of outgoing international roaming?"</string>
- <string name="call_barring_baoicr_disabled" msgid="5831267468931377699">"Block outgoing international roaming?"</string>
- <string name="call_barring_baic" msgid="5272726081458339912">"All incoming"</string>
- <string name="call_barring_baic_enabled" msgid="2457134916223203380">"Disable blocking of all incoming calls?"</string>
- <string name="call_barring_baic_disabled" msgid="6945604947500275636">"Block all incoming calls?"</string>
- <string name="call_barring_baicr" msgid="5728784220691481693">"Incoming international roaming"</string>
- <string name="call_barring_baicr_enabled" msgid="6533336994391716127">"Disable blocking of all incoming international roaming?"</string>
- <string name="call_barring_baicr_disabled" msgid="6746329853943256566">"Block incoming international roaming?"</string>
- <string name="call_barring_deactivate_all" msgid="5269788384941003415">"Deactivate all"</string>
- <string name="call_barring_deactivate_all_description" msgid="4972365443287257704">"Deactivate all call barring settings"</string>
- <string name="call_barring_deactivate_success" msgid="8014685598632000936">"Call barring deactivated"</string>
- <string name="call_barring_change_pwd" msgid="6887420609726284232">"Change password"</string>
- <string name="call_barring_change_pwd_description" msgid="5505087790260233953">"Change call barring password"</string>
- <string name="call_barring_change_pwd_description_disabled" msgid="7630770327645349957">"Cannot change call barring password."</string>
- <string name="call_barring_pwd_not_match" msgid="6716711689350314525">"Passwords do not match"</string>
- <string name="call_barring_right_pwd_number" msgid="2902966502520410446">"Enter a password with 4 numbers"</string>
- <string name="call_barring_change_pwd_success" msgid="3278310763742760321">"Password changed"</string>
- <string name="call_barring_old_pwd" msgid="6080515987320238522">"Old password"</string>
- <string name="call_barring_new_pwd" msgid="7048532299150269547">"New password"</string>
- <string name="call_barring_confirm_pwd" msgid="1947167278466285411">"Confirm password"</string>
- <string name="messageCallBarring" msgid="2412123220272136055">"Enter password"</string>
- <string name="call_barring_settings" msgid="80766145008623645">"Call barring settings"</string>
- <string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Deactivate all call barring settings?"</string>
- <string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Call deflected."</string>
- <string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Call forwarded."</string>
- <string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Call is waiting."</string>
- <string name="supp_service_clir_suppression_rejected" msgid="1581851661582189045">"Number blocking is rejected."</string>
- <string name="supp_service_closed_user_group_call" msgid="5761735840904590950">"Closed user group call."</string>
- <string name="supp_service_incoming_calls_barred" msgid="3248813207307882723">"Incoming calls barred."</string>
- <string name="supp_service_outgoing_calls_barred" msgid="1962644621292054081">"Outgoing calls barred."</string>
- <string name="supp_service_call_forwarding_active" msgid="1253134771682248735">"Call forwarding active."</string>
- <string name="supp_service_additional_call_forwarded" msgid="5228624725214727315">"Additional call forwarded."</string>
- <string name="supp_service_additional_ect_connected" msgid="6396964292513707102">"Explicit call transfer complete."</string>
- <string name="supp_service_additional_ect_connecting" msgid="5443373059716058480">"Explicit call transfer in progress."</string>
- <string name="supp_service_call_on_hold" msgid="1478976782361795422">"Call on hold."</string>
- <string name="supp_service_call_resumed" msgid="1656475289958070674">"Call resumed."</string>
- <string name="supp_service_deflected_call" msgid="138970419873492166">"Call was deflected."</string>
- <string name="supp_service_forwarded_call" msgid="4509980341645679803">"Forwarded call."</string>
- <string name="supp_service_conference_call" msgid="4448616364004466832">"Joining conference call."</string>
- <string name="supp_service_held_call_released" msgid="2030677825038709779">"Held call has been released."</string>
+ <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"The selected action isn\'t available while in an emergency call."</string>
+ <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Exiting Emergency Callback mode"</string>
+ <string name="alert_dialog_yes" msgid="6674268047820703974">"Yes"</string>
+ <string name="alert_dialog_no" msgid="1476091437797628703">"No"</string>
+ <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Dismiss"</string>
+ <string name="voicemail_provider" msgid="5135942703327136909">"Service"</string>
+ <string name="voicemail_settings" msgid="72448049107749316">"Setup"</string>
+ <string name="voicemail_number_not_set" msgid="6724904736891087856">"<Not set>"</string>
+ <string name="other_settings" msgid="3672912580359716394">"Other call settings"</string>
+ <string name="calling_via_template" msgid="4839419581866928142">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+ <string name="contactPhoto" msgid="4713193418046639466">"contact photo"</string>
+ <string name="goPrivate" msgid="865837794424530980">"go private"</string>
+ <string name="selectContact" msgid="781975788478987237">"select contact"</string>
+ <string name="not_voice_capable" msgid="2739898841461577811">"Voice calling not supported"</string>
+ <string name="description_dial_button" msgid="7459705245418435351">"dial"</string>
+ <string name="description_dialpad_button" msgid="5220006811894230590">"show dialpad"</string>
+ <string name="pane_title_emergency_dialpad" msgid="1148505414688493134">"Emergency Dialpad"</string>
+ <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Visual Voicemail"</string>
+ <string name="voicemail_set_pin_dialog_title" msgid="2797924461029093837">"Set PIN"</string>
+ <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Change PIN"</string>
+ <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringtone & Vibrate"</string>
+ <string name="pstn_connection_service_label" msgid="1743245930577325900">"Built-in SIM cards"</string>
+ <string name="enable_video_calling_title" msgid="7237253660669000899">"Turn on video calling"</string>
+ <string name="enable_video_calling_dialog_msg" msgid="8948186136957417948">"To turn on video calling, you need to enable Enhanced 4G LTE Mode in network settings."</string>
+ <string name="enable_video_calling_dialog_settings" msgid="576528473599603249">"Network settings"</string>
+ <string name="enable_video_calling_dialog_close" msgid="7411471282167927991">"Close"</string>
+ <string name="sim_label_emergency_calls" msgid="4847699229529306397">"Emergency calls"</string>
+ <string name="sim_description_emergency_calls" msgid="7535215397212301562">"Emergency calling only"</string>
+ <string name="sim_description_default" msgid="4778679519938775515">"SIM card, slot: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
+ <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Accessibility"</string>
+ <string name="status_hint_label_incoming_wifi_call" msgid="5932176406432044638">"Wi-Fi call from"</string>
+ <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"Wi-Fi call"</string>
+ <string name="emergency_action_launch_hint" msgid="4906759256275562674">"Tap again to open"</string>
+ <string name="message_decode_error" msgid="3456481534066924855">"There was an error while decoding the message."</string>
+ <string name="callFailed_cdma_activation" msgid="2307989779233262164">"A SIM card has activated your service and updated your phone\'s roaming capabilities."</string>
+ <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"There are too many active calls. Please end or merge existing calls before placing a new one."</string>
+ <string name="callFailed_imei_not_accepted" msgid="132192626901238542">"Unable to connect, please insert a valid SIM card."</string>
+ <string name="callFailed_wifi_lost" msgid="5968076625137297184">"Wi-Fi connection lost. Call ended."</string>
+ <string name="dialFailed_low_battery" msgid="8760548177088774268">"Your video call cannot be placed due to low battery."</string>
+ <string name="callFailed_low_battery" msgid="4913582435905872616">"Video call ended due to low battery."</string>
+ <string name="change_pin_title" msgid="7790232089699034029">"Change Voicemail PIN"</string>
+ <string name="change_pin_continue_label" msgid="2135088662420163447">"Continue"</string>
+ <string name="change_pin_cancel_label" msgid="353535488390948596">"Cancel"</string>
+ <string name="change_pin_ok_label" msgid="6204308560844889926">"Ok"</string>
+ <string name="change_pin_enter_old_pin_header" msgid="419179847657548887">"Confirm your old PIN"</string>
+ <string name="change_pin_enter_old_pin_hint" msgid="8579171678763615453">"Enter your voicemail PIN to continue."</string>
+ <string name="change_pin_enter_new_pin_header" msgid="2611191814590251532">"Set a new PIN"</string>
+ <string name="change_pin_enter_new_pin_hint" msgid="2322940054329689309">"PIN must be <xliff:g id="MIN">%1$d</xliff:g>-<xliff:g id="MAX">%2$d</xliff:g> digits."</string>
+ <string name="change_pin_confirm_pin_header" msgid="8113764019347322170">"Confirm your PIN"</string>
+ <string name="change_pin_confirm_pins_dont_match" msgid="4795052654904027909">"PINs don\'t match"</string>
+ <string name="change_pin_succeeded" msgid="2022852286442211151">"Voicemail PIN updated"</string>
+ <string name="change_pin_system_error" msgid="8308462387154257840">"Unable to set PIN"</string>
+ <string name="mobile_data_status_roaming_turned_off_subtext" msgid="935636805765823307">"Data roaming is turned off"</string>
+ <string name="mobile_data_status_roaming_turned_on_subtext" msgid="1335176927083781041">"Data roaming is turned on"</string>
+ <string name="mobile_data_status_roaming_without_plan_subtext" msgid="3568412513831673037">"Currently roaming, need data plan"</string>
+ <string name="mobile_data_status_roaming_with_plan_subtext" msgid="8721998948811064377">"Currently roaming, data plan is active"</string>
+ <string name="mobile_data_status_no_plan_subtext" msgid="4887747337017565725">"No mobile data left"</string>
+ <string name="mobile_data_activate_prepaid" msgid="7447025165850512683">"No mobile data left"</string>
+ <string name="mobile_data_activate_prepaid_summary" msgid="5705389791791637666">"Add mobile data through <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+ <string name="mobile_data_activate_roaming_plan" msgid="5998161536947086264">"No roaming plan"</string>
+ <string name="mobile_data_activate_roaming_plan_summary" msgid="511202908883425459">"Add roaming plan through <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+ <string name="mobile_data_activate_footer" msgid="5979019929980140594">"You can add mobile data or a roaming plan through your carrier, <xliff:g id="PROVIDER_NAME">%s</xliff:g>."</string>
+ <string name="mobile_data_activate_diag_title" msgid="9044252207707864493">"Add data?"</string>
+ <string name="mobile_data_activate_diag_message" msgid="8216154678758451453">"You may need to add data through <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+ <string name="mobile_data_activate_button" msgid="3682400969184405446">"ADD DATA"</string>
+ <string name="mobile_data_activate_cancel_button" msgid="1708022171547398765">"CANCEL"</string>
+ <string name="clh_card_title_call_ended_txt" msgid="4072101334811753823">"Call ended"</string>
+ <string name="clh_callFailed_powerOff_txt" msgid="1049579267090569308">"Airplane mode is on"</string>
+ <string name="clh_callFailed_simError_txt" msgid="7273306159809203315">"Can\'t access SIM card"</string>
+ <string name="clh_incall_error_out_of_service_txt" msgid="3974373603657193827">"Mobile network not available"</string>
+ <string name="clh_callFailed_unassigned_number_txt" msgid="4722164461846838251">"Issue with phone number you are trying to dial. Error code 1."</string>
+ <string name="clh_callFailed_no_route_to_destination_txt" msgid="2259464183880140671">"Couldn\'t complete call. Error code 3."</string>
+ <string name="clh_callFailed_channel_unacceptable_txt" msgid="3159336281525222855">"Couldn\'t complete call. Error code 6."</string>
+ <string name="clh_callFailed_operator_determined_barring_txt" msgid="1831977101604817389">"Couldn\'t complete call. Error code 8."</string>
+ <string name="clh_callFailed_normal_call_clearing_txt" msgid="7369313431310446847">"Couldn\'t complete call. Error code 16."</string>
+ <string name="clh_callFailed_user_busy_txt" msgid="2736095995784746915">"User busy"</string>
+ <string name="clh_callFailed_no_user_responding_txt" msgid="3675206502567252162">"User not responding"</string>
+ <string name="clh_callFailed_user_alerting_txt" msgid="363445537769733281">"Couldn\'t complete call. Error code 19."</string>
+ <string name="clh_callFailed_call_rejected_txt" msgid="8001665478195793223">"Call rejected"</string>
+ <string name="clh_callFailed_number_changed_txt" msgid="5127909898925154242">"Number changed"</string>
+ <string name="clh_callFailed_pre_emption_txt" msgid="1100414016302714854">"Couldn\'t complete call. Error code 25."</string>
+ <string name="clh_callFailed_non_selected_user_clearing_txt" msgid="6248192300127702626">"Couldn\'t complete call. Error code 26."</string>
+ <string name="clh_callFailed_destination_out_of_order_txt" msgid="4879936907430554772">"Couldn\'t complete call. Error code 27."</string>
+ <string name="clh_callFailed_invalid_number_format_txt" msgid="6987646655639655370">"Invalid number format (incomplete number)"</string>
+ <string name="clh_callFailed_facility_rejected_txt" msgid="1028912823639389563">"Couldn\'t complete call. Error code 29."</string>
+ <string name="clh_callFailed_response_to_STATUS_ENQUIRY_txt" msgid="1250833944238081212">"Couldn\'t complete call. Error code 30."</string>
+ <string name="clh_callFailed_normal_unspecified_txt" msgid="8765640093649364786">"Couldn\'t complete call. Error code 31."</string>
+ <string name="clh_callFailed_no_circuit_available_txt" msgid="6884477141997665736">"Couldn\'t complete call. Error code 34."</string>
+ <string name="clh_callFailed_network_out_of_order_txt" msgid="76447023032000125">"Couldn\'t complete call. Error code 38."</string>
+ <string name="clh_callFailed_temporary_failure_txt" msgid="5057716306945664356">"Couldn\'t complete call. Error code 41."</string>
+ <string name="clh_callFailed_switching_equipment_congestion_txt" msgid="4958831706265227632">"Couldn\'t complete call. Error code 42."</string>
+ <string name="clh_callFailed_access_information_discarded_txt" msgid="5033636666434831179">"Couldn\'t complete call. Error code 43."</string>
+ <string name="clh_callFailed_requested_circuit_txt" msgid="3221429183862933558">"Couldn\'t complete call. Error code 44."</string>
+ <string name="clh_callFailed_resources_unavailable_unspecified_txt" msgid="1385943395137055442">"Couldn\'t complete call. Error code 47."</string>
+ <string name="clh_callFailed_quality_of_service_unavailable_txt" msgid="8464132603057397297">"Couldn\'t complete call. Error code 49."</string>
+ <string name="clh_callFailed_requested_facility_not_subscribed_txt" msgid="3853815238079666882">"Couldn\'t complete call. Error code 50."</string>
+ <string name="clh_callFailed_incoming_calls_barred_within_the_CUG_txt" msgid="6791665425652545510">"Couldn\'t complete call. Error code 55."</string>
+ <string name="clh_callFailed_bearer_capability_not_authorized_txt" msgid="2975453855928450909">"Couldn\'t complete call. Error code 57."</string>
+ <string name="clh_callFailed_bearer_capability_not_presently_available_txt" msgid="753763978405557873">"Couldn\'t complete call. Error code 58."</string>
+ <string name="clh_callFailed_service_or_option_not_available_unspecified_txt" msgid="1714515856150546668">"Couldn\'t complete call. Error code 63."</string>
+ <string name="clh_callFailed_bearer_service_not_implemented_txt" msgid="5433179845809692163">"Couldn\'t complete call. Error code 65."</string>
+ <string name="clh_callFailed_ACM_equal_to_or_greater_than_ACMmax_txt" msgid="4339523227014428123">"Couldn\'t complete call. Error code 68."</string>
+ <string name="clh_callFailed_requested_facility_not_implemented_txt" msgid="5217500914101821728">"Couldn\'t complete call. Error code 69."</string>
+ <string name="clh_callFailed_only_restricted_digital_information_bearer_capability_is_available_txt" msgid="2423146296631060723">"Couldn\'t complete call. Error code 70."</string>
+ <string name="clh_callFailed_service_or_option_not_implemented_unspecified_txt" msgid="873208782556277597">"Couldn\'t complete call. Error code 79."</string>
+ <string name="clh_callFailed_invalid_transaction_identifier_value_txt" msgid="3926779129494281620">"Couldn\'t complete call. Error code 81."</string>
+ <string name="clh_callFailed_user_not_member_of_CUG_txt" msgid="2517559636224367413">"Couldn\'t complete call. Error code 87."</string>
+ <string name="clh_callFailed_incompatible_destination_txt" msgid="7994154962189949306">"Couldn\'t complete call. Error code 88."</string>
+ <string name="clh_callFailed_invalid_transit_network_selection_txt" msgid="5847046471813330674">"Couldn\'t complete call. Error code 91."</string>
+ <string name="clh_callFailed_semantically_incorrect_message_txt" msgid="5419940790658960361">"Couldn\'t complete call. Error code 95."</string>
+ <string name="clh_callFailed_invalid_mandatory_information_txt" msgid="3350178645665420102">"Couldn\'t complete call. Error code 96."</string>
+ <string name="clh_callFailed_message_type_non_existent_or_not_implemented_txt" msgid="7080310506268713895">"Couldn\'t complete call. Error code 97."</string>
+ <string name="clh_callFailed_message_type_not_compatible_with_protocol_state_txt" msgid="5251558113020693277">"Couldn\'t complete call. Error code 98."</string>
+ <string name="clh_callFailed_information_element_non_existent_or_not_implemented_txt" msgid="1643642065908165846">"Couldn\'t complete call. Error code 99."</string>
+ <string name="clh_callFailed_conditional_IE_error_txt" msgid="1622467860490603665">"Couldn\'t complete call. Error code 100."</string>
+ <string name="clh_callFailed_message_not_compatible_with_protocol_state_txt" msgid="3776039646804248109">"Couldn\'t complete call. Error code 101."</string>
+ <string name="clh_callFailed_recovery_on_timer_expiry_txt" msgid="4529313282997136028">"Couldn\'t complete call. Error code 102."</string>
+ <string name="clh_callFailed_protocol_Error_unspecified_txt" msgid="4900075501687505296">"Couldn\'t complete call. Error code 111."</string>
+ <string name="clh_callFailed_interworking_unspecified_txt" msgid="6701560054199411045">"Couldn\'t complete call. Error code 127."</string>
+ <string name="labelCallBarring" msgid="3452870940716226978">"Call barring"</string>
+ <string name="sum_call_barring_enabled" msgid="6804489690436703488">"On"</string>
+ <string name="sum_call_barring_disabled" msgid="5900772179198857783">"Off"</string>
+ <string name="call_barring_baoc" msgid="1199843944333106035">"All outgoing"</string>
+ <string name="call_barring_baoc_enabled" msgid="8112118391869380361">"Disable blocking of all outgoing calls?"</string>
+ <string name="call_barring_baoc_disabled" msgid="7806697133004697974">"Block all outgoing calls?"</string>
+ <string name="call_barring_baoic" msgid="3162154267825211826">"Outgoing international"</string>
+ <string name="call_barring_baoic_enabled" msgid="2634377543147258105">"Disable blocking of outgoing international calls?"</string>
+ <string name="call_barring_baoic_disabled" msgid="5817895648306183464">"Block outgoing international calls?"</string>
+ <string name="call_barring_baoicr" msgid="8951699885885742076">"Outgoing international roaming"</string>
+ <string name="call_barring_baoicr_enabled" msgid="2519630715322138317">"Disable blocking of outgoing international roaming?"</string>
+ <string name="call_barring_baoicr_disabled" msgid="5831267468931377699">"Block outgoing international roaming?"</string>
+ <string name="call_barring_baic" msgid="5272726081458339912">"All incoming"</string>
+ <string name="call_barring_baic_enabled" msgid="2457134916223203380">"Disable blocking of all incoming calls?"</string>
+ <string name="call_barring_baic_disabled" msgid="6945604947500275636">"Block all incoming calls?"</string>
+ <string name="call_barring_baicr" msgid="5728784220691481693">"Incoming international roaming"</string>
+ <string name="call_barring_baicr_enabled" msgid="6533336994391716127">"Disable blocking of all incoming international roaming?"</string>
+ <string name="call_barring_baicr_disabled" msgid="6746329853943256566">"Block incoming international roaming?"</string>
+ <string name="call_barring_deactivate_all" msgid="5269788384941003415">"Deactivate all"</string>
+ <string name="call_barring_deactivate_all_description" msgid="4972365443287257704">"Deactivate all call barring settings"</string>
+ <string name="call_barring_deactivate_success" msgid="8014685598632000936">"Call barring deactivated"</string>
+ <string name="call_barring_change_pwd" msgid="6887420609726284232">"Change password"</string>
+ <string name="call_barring_change_pwd_description" msgid="5505087790260233953">"Change call barring password"</string>
+ <string name="call_barring_change_pwd_description_disabled" msgid="7630770327645349957">"Cannot change call barring password."</string>
+ <string name="call_barring_pwd_not_match" msgid="6716711689350314525">"Passwords do not match"</string>
+ <string name="call_barring_right_pwd_number" msgid="2902966502520410446">"Enter a password with 4 numbers"</string>
+ <string name="call_barring_change_pwd_success" msgid="3278310763742760321">"Password changed"</string>
+ <string name="call_barring_old_pwd" msgid="6080515987320238522">"Old password"</string>
+ <string name="call_barring_new_pwd" msgid="7048532299150269547">"New password"</string>
+ <string name="call_barring_confirm_pwd" msgid="1947167278466285411">"Confirm password"</string>
+ <string name="messageCallBarring" msgid="2412123220272136055">"Enter password"</string>
+ <string name="call_barring_settings" msgid="80766145008623645">"Call barring settings"</string>
+ <string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Deactivate all call barring settings?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Network is busy. Please try your call again later."</string>
+ <string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Call deflected."</string>
+ <string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Call forwarded."</string>
+ <string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Call is waiting."</string>
+ <string name="supp_service_clir_suppression_rejected" msgid="1581851661582189045">"Number blocking is rejected."</string>
+ <string name="supp_service_closed_user_group_call" msgid="5761735840904590950">"Closed user group call."</string>
+ <string name="supp_service_incoming_calls_barred" msgid="3248813207307882723">"Incoming calls barred."</string>
+ <string name="supp_service_outgoing_calls_barred" msgid="1962644621292054081">"Outgoing calls barred."</string>
+ <string name="supp_service_call_forwarding_active" msgid="1253134771682248735">"Call forwarding active."</string>
+ <string name="supp_service_additional_call_forwarded" msgid="5228624725214727315">"Additional call forwarded."</string>
+ <string name="supp_service_additional_ect_connected" msgid="6396964292513707102">"Explicit call transfer complete."</string>
+ <string name="supp_service_additional_ect_connecting" msgid="5443373059716058480">"Explicit call transfer in progress."</string>
+ <string name="supp_service_call_on_hold" msgid="1478976782361795422">"Call on hold."</string>
+ <string name="supp_service_call_resumed" msgid="1656475289958070674">"Call resumed."</string>
+ <string name="supp_service_deflected_call" msgid="138970419873492166">"Call was deflected."</string>
+ <string name="supp_service_forwarded_call" msgid="4509980341645679803">"Forwarded call."</string>
+ <string name="supp_service_conference_call" msgid="4448616364004466832">"Joining conference call."</string>
+ <string name="supp_service_held_call_released" msgid="2030677825038709779">"Held call has been released."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Cannot place a call as the device is currently being provisioned."</string>
+ <string name="callFailed_already_dialing" msgid="4652915396769232226">"Cannot place a call as another outgoing call is already dialing."</string>
+ <string name="callFailed_already_ringing" msgid="7747655701540586943">"Cannot place a call as there is an unanswered incoming call. Answer or reject the incoming call prior to placing a new call."</string>
+ <string name="callFailed_calling_disabled" msgid="7257184079619449933">"Cannot place a call as calling has been disabled using the ro.telephony.disable-call system property."</string>
+ <string name="callFailed_too_many_calls" msgid="3023051919216926990">"Cannot place a call a there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure mobile data is turned on. You can change this in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure mobile data and data roaming are turned on. You can change these in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure mobile data and data roaming are turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change these in mobile network settings."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Dismiss"</string>
</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 0b9b91e..56c215e 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Ejecutando código USSD..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Código MMI cancelado"</string>
<string name="cancel" msgid="5044513931633602634">"Cancelar"</string>
- <string name="enter_input" msgid="1810529547726803893">"El mensaje USSD debe tener entre <xliff:g id="MIN_LEN">%d</xliff:g> y <xliff:g id="MAX_LEN">%d</xliff:g> caracteres. Vuelve a intentarlo."</string>
+ <string name="enter_input" msgid="1810529547726803893">"El mensaje USSD debe tener entre <xliff:g id="MIN_LEN">%1$d</xliff:g> y <xliff:g id="MAX_LEN">%2$d</xliff:g> caracteres. Vuelve a intentarlo."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Administrar conferencia telefónica"</string>
<string name="ok" msgid="3811371167865772377">"Aceptar"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Altavoz"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Correo de voz"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Buzón de voz (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"Correo de voz:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notificaciones"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Transmisiones de emergencia"</string>
<string name="call_settings" msgid="6112441768261754562">"Configuración de llamadas"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Modo 4G LTE mejorado"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Usa servicios de LTE para mejorar comunicaciones de voz y otras (recomendado)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Usa servicios de 4G para mejorar la comunicación por voz y otros medios (recomendado)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Usar paquete de datos"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Permitir el uso de datos"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Atención"</string>
@@ -273,7 +283,7 @@
<string name="throttle_status_subtext" msgid="1657318943142085170">"<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> del período máximo \nEl próximo período comienza 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="6029276011123694701">"<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> máximo del período"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g>máximo excedido\nLa velocidad de la transferencia de datos se redujo a <xliff:g id="USED_1">%2$d</xliff:g> kb/seg."</string>
- <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>% del ciclo transcurrido\nEl siguiente período comienza en <xliff:g id="USED_1">%2$d</xliff:g> días (<xliff:g id="USED_2">%3$s</xliff:g>)."</string>
+ <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ del ciclo transcurrido\nEl siguiente período comienza en <xliff:g id="USED_1">%2$d</xliff:g> días (<xliff:g id="USED_2">%3$s</xliff:g>)."</string>
<string name="throttle_rate_subtext" msgid="2149102656120726855">"La velocidad de la transferencia de datos se reduce a <xliff:g id="USED">%1$d</xliff:g> Kb/seg. si se excede el límite de utilización de datos."</string>
<string name="throttle_help_subtext" msgid="5217706521499010816">"Más información acerca de la política de utilización de datos de la red móvil de tu proveedor de servicios de telefonía móvil"</string>
<string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS de emisión celular"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"No se puede reanudar la llamada."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"No se puede desviar la llamada."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"No se puede transferir."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"No se pudieron combinar las llamadas."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"No se puede rechazar la llamada."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"No se puede liberar llamadas."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"No es posible poner las llamadas en espera."</string>
@@ -522,7 +531,7 @@
<string name="dial_emergency_calling_not_available" msgid="5675557523782491826">"Las llamadas de emergencia no están disponibles"</string>
<string name="police_type_description" msgid="5324410799919829693">"Policía"</string>
<string name="ambulance_type_description" msgid="4114815025408089866">"Ambulancia"</string>
- <string name="fire_type_description" msgid="7145996705197064710">"Fuego"</string>
+ <string name="fire_type_description" msgid="7145996705197064710">"Bomberos"</string>
<string name="description_concat_format" msgid="7141070875487870177">"%1$s, %2$s"</string>
<string name="dialerKeyboardHintText" msgid="9192914825413747792">"Utilizar teclado para marcar"</string>
<string name="onscreenHoldText" msgid="2285258239691145872">"Retener"</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Ingresa la contraseña"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Configuración de restricción de llamadas"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"¿Quieres desactivar todas las opciones de restricción de llamadas?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"La red está ocupada. Vuelve a realizar la llamada más tarde."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Se desvió la llamada."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Se desvió la llamada."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Llamada en espera."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Llamada desviada."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Uniéndose a la conferencia."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Se desconectó la llamada en espera."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"No puedes realizar llamadas porque estamos verificando qué servicios están disponibles para el dispositivo."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"No puedes realizar la llamada porque ya estás marcando otra llamada saliente."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"No puedes realizar la llamada porque tienes una llamada entrante que no respondiste. Respóndela o recházala antes de realizar una nueva."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"No puedes realizar la llamada porque se desactivaron las llamadas con la propiedad ro.telephony.disable-call del sistema."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"No puedes realizar la llamada porque hay dos llamadas en curso. Antes de realizar una nueva, desconecta una de ellas o combínalas en una conferencia."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Para usar <xliff:g id="SUPP_SERVICE">%s</xliff:g>, asegúrate de que los datos móviles estén activados. Puedes cambiar esto en la configuración de la red móvil."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Para usar <xliff:g id="SUPP_SERVICE">%s</xliff:g>, asegúrate de que los datos móviles y el roaming de datos estén activados. Puedes cambiar esto en la configuración de la red móvil."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Para usar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, asegúrate de que los datos móviles estén activados para la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puedes cambiar esto en la configuración de la red móvil."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Para usar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, asegúrate de que los datos móviles y el roaming de datos estén activados para la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puedes cambiar esto en la configuración de la red móvil."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Descartar"</string>
</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 7f53937..6bd2baa 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Código USSD en ejecución..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"El código MMI se ha cancelado."</string>
<string name="cancel" msgid="5044513931633602634">"Cancelar"</string>
- <string name="enter_input" msgid="1810529547726803893">"El mensaje USSD debe tener entre <xliff:g id="MIN_LEN">%d</xliff:g> y <xliff:g id="MAX_LEN">%d</xliff:g> caracteres. Inténtalo de nuevo."</string>
+ <string name="enter_input" msgid="1810529547726803893">"El mensaje USSD debe tener entre <xliff:g id="MIN_LEN">%1$d</xliff:g> y <xliff:g id="MAX_LEN">%2$d</xliff:g> caracteres. Inténtalo de nuevo."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Administrar conferencia telefónica"</string>
<string name="ok" msgid="3811371167865772377">"Aceptar"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Altavoz"</string>
@@ -49,7 +49,7 @@
<string name="puk_unlocked" msgid="2284912838477558454">"La tarjeta SIM se ha desbloqueado. El teléfono se está desbloqueando..."</string>
<string name="label_ndp" msgid="780479633159517250">"PIN de desbloqueo de red de tarjeta SIM"</string>
<string name="sim_ndp_unlock_text" msgid="683628237760543009">"Desbloquear"</string>
- <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Descartar"</string>
+ <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"Cerrar"</string>
<string name="requesting_unlock" msgid="6412629401033249351">"Solicitando desbloqueo de red..."</string>
<string name="unlock_failed" msgid="6490531697031504225">"La solicitud de desbloqueo de red no se ha realizado correctamente."</string>
<string name="unlock_success" msgid="6770085622238180152">"El desbloqueo de red se ha realizado correctamente."</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Buzón de voz"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Buzón de voz (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"Buzón de voz:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notificaciones"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Difusiones de emergencia"</string>
<string name="call_settings" msgid="6112441768261754562">"Ajustes de llamadas"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Modo 4G LTE mejorado"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Usar servicios LTE para mejorar la voz y otras comunicaciones (recomendado)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Usar servicios 4G para mejorar la voz y otras comunicaciones (recomendado)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Habilitar datos"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Permitir uso de datos"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Atención"</string>
@@ -273,11 +283,9 @@
<!-- String.format failed for translation -->
<!-- no translation found for throttle_status_subtext (1657318943142085170) -->
<skip />
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
- <skip />
+ <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<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="7492763592720107737">"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="7732763021560399960">"<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>
+ <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<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>
<string name="throttle_rate_subtext" msgid="2149102656120726855">"Frec datos se reduce a <xliff:g id="USED">%1$d</xliff:g> Kb/s si se supera límite uso datos"</string>
<string name="throttle_help_subtext" msgid="5217706521499010816">"Más información sobre política de uso de datos móviles de tu operador"</string>
<string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS de difusión móvil"</string>
@@ -503,8 +511,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"No se ha podido reanudar la llamada."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"No se pueden separar llamadas."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"No se puede transferir."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"No se han podido combinar las llamadas."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"No se puede rechazar la llamada."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"No se pueden hacer llamadas."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"No se pueden retener llamadas."</string>
@@ -602,7 +609,7 @@
<string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Saliendo del modo de devolución de llamada de emergencia"</string>
<string name="alert_dialog_yes" msgid="6674268047820703974">"Sí"</string>
<string name="alert_dialog_no" msgid="1476091437797628703">"No"</string>
- <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Descartar"</string>
+ <string name="alert_dialog_dismiss" msgid="2491494287075907171">"Cerrar"</string>
<string name="voicemail_provider" msgid="5135942703327136909">"Servicio"</string>
<string name="voicemail_settings" msgid="72448049107749316">"Configuración"</string>
<string name="voicemail_number_not_set" msgid="6724904736891087856">"<No definido>"</string>
@@ -750,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Introduce la contraseña"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Ajustes de bloqueo de llamadas"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"¿Quieres desactivar todos los ajustes de bloqueo de llamadas?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"La red está ocupada. Intenta llamar de nuevo más tarde."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Se ha derivado la llamada."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Se ha desviado la llamada."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"La llamada está en espera."</string>
@@ -767,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Se ha desviado la llamada."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Te estás uniendo a la conferencia."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Se ha desconectado la llamada retenida."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"No se puede llamar porque el dispositivo se está aprovisionando actualmente."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"No se puede llamar porque ya se está realizando otra llamada."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"No se puede llamar porque hay una llamada entrante sin responder. Contéstala o recházala para poder llamar de nuevo."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"No se puede llamar porque se han inhabilitado las llamadas mediante la propiedad del sistema ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"No se puede llamar porque ya hay dos llamadas en curso. Interrumpe una de ellas o combínalas en una conferencia para poder llamar de nuevo."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Para utilizar <xliff:g id="SUPP_SERVICE">%s</xliff:g>, los datos móviles deben estar activados. Puedes cambiar esta opción en los ajustes de red móvil."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Para utilizar <xliff:g id="SUPP_SERVICE">%s</xliff:g>, los datos móviles y la itinerancia de datos deben estar activados. Puedes cambiar estas opciones en los ajustes de red móvil."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Para utilizar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, los datos móviles deben estar activados en la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puedes cambiar esta opción en los ajustes de red móvil."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Para utilizar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, los datos móviles y la itinerancia de datos deben estar activados en la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puedes cambiar estas opciones en los ajustes de red móvil."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Cerrar"</string>
</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index af42120..8bd71dd 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD-kood töötab ..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI-kood tühistatud"</string>
<string name="cancel" msgid="5044513931633602634">"Tühista"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD-sõnum peab jääma vahemikku <xliff:g id="MIN_LEN">%d</xliff:g> kuni <xliff:g id="MAX_LEN">%d</xliff:g> tähemärki. Proovige uuesti."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD-sõnum peab jääma vahemikku <xliff:g id="MIN_LEN">%1$d</xliff:g> kuni <xliff:g id="MAX_LEN">%2$d</xliff:g> tähemärki. Proovige uuesti."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Konverentskõne haldamine"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Kõlar"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Kõnepost"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Kõnepost (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"KP:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Märguanded"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Hädaolukorra märguanded"</string>
<string name="call_settings" msgid="6112441768261754562">"Kõneseaded"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Tõhustatud 4G LTE režiim"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Kasutage hääl- ja muu suhtluse täiustamiseks LTE-teenuseid (soovitatav)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Kasutage hääl- ja muu suhtluse täiustamiseks 4G-teenuseid (soovitatav)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Andmeside lubatud"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Luba andmekasutus"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Tähelepanu"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Kõnet ei saa jätkata."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Kõnet ei saa eraldada."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Ei saa üle kanda."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Kõnesid ei õnnestu ühendada."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Kõnet ei saa tagasi lükata."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Kõnet (kõnesid) ei saa vabastada."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Kõnesid ei saa ootele panna."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Parooli sisestamine"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Kõnede blokeerimise seaded"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Kas inaktiveerida kõik kõnede blokeerimise seaded?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Võrk on hõivatud. Proovige hiljem uuesti helistada."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Kõne suunati ümber."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Kõne suunati edasi."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Kõne on ootel."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Edasisuunatud kõne."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Konverentskõnega liitumine."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Ootel olnud kõne vabastati."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Kõnet ei saa teha, kuna seadet valmistatakse praegu ette."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Kõnet ei saa teha, kuna teist väljuvat kõnet juba valitakse."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Kõnet ei saa teha, kuna telefonis on sissetulev vastamata kõne. Enne uue kõne tegemist vastake kõnele või katkestage see."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Kõnet ei saa teha, kuna helistamine on süsteemi atribuudiga ro.telephony.disable-call keelatud."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Kõnet ei saa teha, kuna kaks kõnet on juba pooleli. Enne uue kõne tegemist katkestage üks kõnedest või liitke need konverentskõnedeks."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Teenuse <xliff:g id="SUPP_SERVICE">%s</xliff:g> kasutamiseks veenduge, et mobiilne andmeside oleks sisse lülitatud. Seda saab muuta mobiilsidevõrgu seadetes."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Teenuse <xliff:g id="SUPP_SERVICE">%s</xliff:g> kasutamiseks veenduge, et mobiilne andmeside ja andmesiderändlus oleks sisse lülitatud. Seda saab muuta mobiilsidevõrgu seadetes."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Teenuse <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> kasutamiseks veenduge, et mobiilne andmeside oleks SIM-kaardil <xliff:g id="SIM_NUMBER">%2$d</xliff:g> sisse lülitatud. Seda saab muuta mobiilsidevõrgu seadetes."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Teenuse <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> kasutamiseks veenduge, et mobiilne andmeside ja andmesiderändlus oleks SIM-kaardil <xliff:g id="SIM_NUMBER">%2$d</xliff:g> sisse lülitatud. Seda saab muuta mobiilsidevõrgu seadetes."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Loobu"</string>
</resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index cc07414..bf64ac4 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD kodea exekutatzen…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI kodea bertan behera utzi da"</string>
<string name="cancel" msgid="5044513931633602634">"Utzi"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD mezuak <xliff:g id="MIN_LEN">%d</xliff:g> eta <xliff:g id="MAX_LEN">%d</xliff:g> karaktere bitartekoa izan behar du. Saiatu berriro."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD mezuak <xliff:g id="MIN_LEN">%1$d</xliff:g> eta <xliff:g id="MAX_LEN">%2$d</xliff:g> karaktere bitartekoa izan behar du. Saiatu berriro."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Kudeatu konferentzia-deia"</string>
<string name="ok" msgid="3811371167865772377">"Ados"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Bozgorailua"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Erantzungailua"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Erantzungailua (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"Erantzungailua:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Jakinarazpenak"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Larrialdietako igorpenak"</string>
<string name="call_settings" msgid="6112441768261754562">"Deien ezarpenak"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"4G LTE modu hobetua"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Erabili LTE zerbitzuak ahotsa eta bestelako komunikazioak hobetzeko (gomendatua)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Erabili 4G zerbitzuak ahotsa eta bestelako komunikazioak hobetzeko (gomendatua)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Datuak gaituta"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Onartu datuak erabiltzea"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Erne"</string>
@@ -273,13 +283,9 @@
<!-- String.format failed for translation -->
<!-- no translation found for throttle_status_subtext (1657318943142085170) -->
<skip />
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
- <skip />
+ <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<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="7492763592720107737">"<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.format failed for translation -->
- <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
- <skip />
+ <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"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>
<string name="throttle_rate_subtext" msgid="2149102656120726855">"Datuak erabiltzeko muga gainditzen bada, datu-abiadura <xliff:g id="USED">%1$d</xliff:g> Kb/s izango da"</string>
<string name="throttle_help_subtext" msgid="5217706521499010816">"Informazio gehiago zure operadoreak sare mugikorretako datu-erabileraren inguruan dituen gidalerroei buruz"</string>
<string name="cell_broadcast_sms" msgid="5584192824053625842">"Sare mugikor bidezko SMS igorpenak"</string>
@@ -505,8 +511,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Ezin zaio berrekin deiari."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Ezin da deia bereizi."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Ezin da transferitu."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Ezin dira bateratu deiak."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Ezin da deia baztertu."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Ezin dira deiak bereizi."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Ezin dira zain utzi deiak."</string>
@@ -752,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Idatzi pasahitza"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Deiak debekatzeko ezarpenak"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Deiak debekatzeko ezarpen guztiak desaktibatu nahi dituzu?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Sarea okupatuta dago. Saiatu berriro deitzen geroago."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Automatikoki desbideratu da deia."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Desbideratu da deia."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Deia zain dago."</string>
@@ -769,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Desbideratu da deia."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Konferentzia-deian sartzen."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Askatu da zain utzitako deia."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Ezin da egin deia, une honetan gailua hornitzen ari delako."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Ezin da egin deia, beste dei bat abian delako."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Ezin da egin deia, oraindik erantzun ez diozun dei bat jasotzen ari zarelako. Beste dei bat egin aurretik, erantzun deiari edo bazter ezazu."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Ezin da egin deia, deiak egiteko aukera desgaitu egin delako sistemaren ro.telephony.disable-call propietatea erabilita."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Ezin da egin deia, dagoeneko bi dei daudelako abian. Beste dei bat egin aurretik, eten deietako bat edo bateratu deiak konferentzia-dei bakarrean."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> erabiltzeko, ziurtatu datu-konexioa aktibatuta dagoela. Sare mugikorren ezarpenetan alda dezakezu aukera hau."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> erabiltzeko, ziurtatu datu-konexioa eta datu-ibiltaritza aktibatuta daudela. Sare mugikorren ezarpenetan alda ditzakezu aukera horiek."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> erabiltzeko, ziurtatu datu-konexioa aktibatuta dagoela <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM txartelean. Sare mugikorren ezarpenetan alda dezakezu aukera hori."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> erabiltzeko, ziurtatu datu-konexioa eta datu-ibiltaritza aktibatuta daudela <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM txartelean. Sare mugikorren ezarpenetan alda ditzakezu aukera horiek."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Baztertu"</string>
</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 005baf4..0d3abb3 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"در حال اجرای کد USSD..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"کد MMI لغو شد"</string>
<string name="cancel" msgid="5044513931633602634">"لغو"</string>
- <string name="enter_input" msgid="1810529547726803893">"طول پیام USSD باید بین <xliff:g id="MIN_LEN">%d</xliff:g> تا <xliff:g id="MAX_LEN">%d</xliff:g> نویسه باشد. لطفاً دوباره امتحان کنید."</string>
+ <string name="enter_input" msgid="1810529547726803893">"طول پیام USSD باید بین <xliff:g id="MIN_LEN">%1$d</xliff:g> تا <xliff:g id="MAX_LEN">%2$d</xliff:g> نویسه باشد. لطفاً دوباره امتحان کنید."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"مدیریت تماس کنفرانس"</string>
<string name="ok" msgid="3811371167865772377">"تأیید"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"بلندگو"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"پست صوتی"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"پست صوتی (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"اعلانها"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"پخش هشدارهای اضطراری"</string>
<string name="call_settings" msgid="6112441768261754562">"تنظیمات تماس"</string>
@@ -97,7 +103,7 @@
<string name="call_forwarding_settings" msgid="3378927671091537173">"تنظیمات هدایت تماس"</string>
<string name="call_forwarding_settings_with_label" msgid="8569489414006897127">"تنظیمات هدایت تماس (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="labelCF" msgid="2574386948026924737">"هدایت تماس"</string>
- <string name="labelCFU" msgid="8147177368148660600">"همیشه هدایت"</string>
+ <string name="labelCFU" msgid="8147177368148660600">"همیشه بازارسال"</string>
<string name="messageCFU" msgid="3560082430662923687">"همیشه از این شماره استفاده شود"</string>
<string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"هدایت همه تماسها"</string>
<string name="sum_cfu_enabled" msgid="2450052502198827927">"هدایت همه تماسها به <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"حالت پیشرفته 4G LTE"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"استفاده از سرویسهای LTE جهت بهبود ارتباطات صوتی و سایر ارتباطات (توصیه میشود)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"استفاده از سرویسهای 4G برای بهبود صدا و سایر ارتباطات (توصیه میشود)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"دادهها فعال شدند"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"استفاده از داده مجاز است"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"توجه"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"ازسرگیری تماس ممکن نیست."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"نمیتوانید تماس را جدا کنید."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"نمیتوانید انتقال دهید."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"تماسها ادغام نشدند."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"نمیتوانید تماس را رد کنید."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"نمیتوانید تماس(ها) را آزاد کنید."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"نگهداشتن تماسها ممکن نیست."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"گذرواژه را وارد کنید"</string>
<string name="call_barring_settings" msgid="80766145008623645">"تنظیمات محدودیت تماس"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"همه تنظیمات محدودیت تماس غیرفعال شود؟"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"شبکه مشغول است. لطفاً بعداً دوباره تماس بگیرید."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"تماس برگردانده شد."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"تماس هدایت شد."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"تماس درحال انتظار است."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"تماس بازارسال شده است."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"درحال پیوستن به تماس کنفرانسی."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"تماس نگهداشتهشده آزاد شده است."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"نمیتوانید تماسی برقرار کنید، چون دستگاه درحالحاضر درحال تأیید خدمات دردسترس برای کاربران است."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"نمیتوانید تماسی برقرار کنید، چون تماس خروجی دیگری درحال شمارهگیری است."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"نمیتوانید تماسی برقرار کنید، چون تماس ورودی بیپاسخی درحال شمارهگیری است. قبل از برقراری تماس جدید، به آن پاسخ دهید یا آن را رد کنید."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"نمیتوانید تماسی برقرار کنید چون برقراری تماس تلفنی با استفاده از مشخصه سیستم ro.telephony.disable-call غیرفعال شده است."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"نمیتوانید تماسی برقرار کنید، چون هماکنون دو تماس دیگر درحال انجام است. قبل از برقراری تماس جدید، یکی از تماسها را قطع کنید یا آنها را بهصورت کنفرانسی ادغام کنید."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"برای استفاده از <xliff:g id="SUPP_SERVICE">%s</xliff:g>، مطمئن شوید داده تلفن همراه روشن شده باشد. میتوانید در تنظیمات شبکه تلفن همراه این تنظیم را تغییر دهید."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"برای استفاده از <xliff:g id="SUPP_SERVICE">%s</xliff:g>، مطمئن شوید داده تلفن همراه و رومینگ داده روشن شده باشد. میتوانید در تنظیمات شبکه تلفن همراه، این تنظیمات را تغییر دهید."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"برای استفاده از <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>، مطمئن شوید داده تلفن همراه برای سیمکارت <xliff:g id="SIM_NUMBER">%2$d</xliff:g> روشن باشد. میتوانید در تنظیمات شبکه تلفن همراه این تنظیم را تغییر دهید."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"برای استفاده از <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>، مطمئن شوید داده تلفن همراه و رومینگ داده برای سیمکارت <xliff:g id="SIM_NUMBER">%2$d</xliff:g> روشن باشد. میتوانید در تنظیمات شبکه تلفن همراه این تنظیمات را تغییر دهید."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"رد کردن"</string>
</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index e5bbb30..781e2f8 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD-koodi käytössä..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI-koodi peruutettu"</string>
<string name="cancel" msgid="5044513931633602634">"Peruuta"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD-viestin pituuden täytyy olla <xliff:g id="MIN_LEN">%d</xliff:g>–<xliff:g id="MAX_LEN">%d</xliff:g> merkkiä. Yritä uudelleen."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD-viestin pituuden täytyy olla <xliff:g id="MIN_LEN">%1$d</xliff:g>–<xliff:g id="MAX_LEN">%2$d</xliff:g> merkkiä. Yritä uudelleen."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Hallinnoi puhelinneuvottelua"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Kaiutin"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Vastaaja"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Puhelinvastaaja (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"Vast.:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Ilmoitukset"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Hätätilalähetykset"</string>
<string name="call_settings" msgid="6112441768261754562">"Puheluasetukset"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Enhanced 4G LTE -tila"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Käytä LTE-palveluita puheviestinnän ja muiden viestintätapojen parantamiseen (suositeltu)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Käytä 4G-palveluita puheviestinnän ja muiden viestintätapojen parantamiseen (suositeltu)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Datayhteys käytössä"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Salli tiedonsiirto"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Huomio"</string>
@@ -273,9 +283,7 @@
<!-- String.format failed for translation -->
<!-- no translation found for throttle_status_subtext (1657318943142085170) -->
<skip />
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
- <skip />
+ <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<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="7492763592720107737">"<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="7732763021560399960">"<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>
<string name="throttle_rate_subtext" msgid="2149102656120726855">"Tiedonsiirtonopeus vähennetään nopeuteen <xliff:g id="USED">%1$d</xliff:g> kt/s, jos tiedonkäyttöraja ylitetään"</string>
@@ -503,8 +511,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Puhelua ei voi jatkaa."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Puhelua ei voi erottaa."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Puhelua ei voi siirtää."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Puhelujen yhdistäminen epäonnistui."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Puhelua ei voi hylätä."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Puheluja ei voi vapauttaa."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Puhelujen pito ei onnistu."</string>
@@ -750,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Anna salasana"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Puhelunestoasetukset"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Poistetaanko kaikki puhelunestoasetukset käytöstä?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Verkko on varattu. Yritä soittaa myöhemmin uudelleen."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Puhelu siirretty automaattisesti."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Puhelu siirretty."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Puhelu odottaa."</string>
@@ -767,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Siirretty puhelu."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Liitytään puhelinneuvotteluun."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Pidossa ollut puhelu on vapautettu."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Puhelua ei voida soittaa, koska laitetta valmistellaan parhaillaan."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Puhelua ei voida soittaa, koska toisen lähtevän puhelun soittaminen on kesken."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Puhelua ei voida soittaa, koska saapuvaan puheluun ei ole vielä vastattu. Vastaa saapuvaan puheluun tai hylkää se, ennen kuin soitat uuden puhelun."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Puhelua ei voida soittaa, koska soittaminen on poistettu käytöstä ro.telephony.disable-call-järjestelmätoiminnolla."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Puhelua ei voida soittaa, koska kaksi puhelua on jo käynnissä. Katkaise toinen puheluista tai yhdistä puhelut puhelinneuvotteluksi ennen uuden puhelun soittamista."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> toimii, jos mobiilidata on käytössä. Voit ottaa mobiilidatan käyttöön mobiiliverkkoasetuksista."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> toimii, jos mobiilidata ja roaming ovat käytössä. Voit ottaa ne käyttöön mobiiliverkkoasetuksista."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> toimii, jos mobiilidata on käytössä SIM-kortilla <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Voit ottaa mobiilidatan käyttöön mobiiliverkkoasetuksista."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> toimii, jos mobiilidata ja roaming ovat käytössä SIM-kortilla <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Voit ottaa ne käyttöön mobiiliverkkoasetuksista."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Ohita"</string>
</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 24caf82..c4ee237 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Exécution du code USSD..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Code IHM annulé"</string>
<string name="cancel" msgid="5044513931633602634">"Annuler"</string>
- <string name="enter_input" msgid="1810529547726803893">"Le message USSD doit comporter entre <xliff:g id="MIN_LEN">%d</xliff:g> et <xliff:g id="MAX_LEN">%d</xliff:g> caractères. Veuillez réessayer."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Le message USSD doit comporter entre <xliff:g id="MIN_LEN">%1$d</xliff:g> et <xliff:g id="MAX_LEN">%2$d</xliff:g> caractères. Veuillez réessayer."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Gérer la conférence téléphonique"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Haut-parleur"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Messagerie vocale"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Messagerie vocale (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"MV :"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifications"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Diffusions d\'urgence"</string>
<string name="call_settings" msgid="6112441768261754562">"Paramètres d\'appel"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Mode LTE 4G avancé"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Utiliser les services LTE pour améliorer les communications vocales et autres (recommandé)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Utiliser les services 4G pour améliorer les communications vocales et autres (recommandé)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Données activées"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Autoriser l\'utilisation des données"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Attention"</string>
@@ -273,11 +283,9 @@
<!-- String.format failed for translation -->
<!-- no translation found for throttle_status_subtext (1657318943142085170) -->
<skip />
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
- <skip />
+ <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<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="7492763592720107737">"<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="7732763021560399960">"<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>
+ <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<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>
<string name="throttle_rate_subtext" msgid="2149102656120726855">"Taux de transfert des données réduit à <xliff:g id="USED">%1$d</xliff:g> Ko/s si le plafond d\'utilisation est dépassé"</string>
<string name="throttle_help_subtext" msgid="5217706521499010816">"Plus d\'informations sur les règles de votre opérateur mobile concernant l\'utilisation des données sur son réseau"</string>
<string name="cell_broadcast_sms" msgid="5584192824053625842">"Diffusion cellulaire par SMS"</string>
@@ -503,8 +511,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Impossible de reprendre l\'appel."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Impossible de séparer les appels."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Impossible de transférer."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Impossible de fusionner les appels."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Impossible de refuser l\'appel."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Impossible de libérer l\'appel ou les appels."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Impossible de mettre les appels en attente."</string>
@@ -750,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Entrez le mot de passe"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Paramètres d\'interdiction d\'appel"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Désactiver tous les paramètres d\'interdiction d\'appel?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Le réseau est saturé. Veuillez rappeler plus tard."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Appel redirigé."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Appel transféré."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Appel en attente."</string>
@@ -767,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Appel transféré."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Connexion à la conférence téléphonique en cours…"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"L\'appel en attente a été déconnecté."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Impossible de passer un appel, car l\'appareil est en cours d\'approvisionnement."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Impossible de passer un appel, car un autre appel sortant est déjà en cours de composition."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Impossible de passer un appel, car il y a un appel entrant sans réponse. Répondez à l\'appel entrant ou refusez-le avant de passer un nouvel appel."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Impossible de passer un appel, car la fonction d\'appel a été désactivée à l\'aide de la propriété système ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Impossible de passer un appel, car deux appels sont déjà en cours. Déconnectez-en un ou fusionnez-les en conférence téléphonique avant de passer un nouvel appel."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Avant d\'utiliser <xliff:g id="SUPP_SERVICE">%s</xliff:g>, assurez-vous que les données cellulaires sont activées. Vous pouvez modifier cette option dans les paramètres du réseau cellulaire."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Avant d\'utiliser <xliff:g id="SUPP_SERVICE">%s</xliff:g>, assurez-vous que les données cellulaires et l\'itinérance des données sont activées. Vous pouvez modifier ces options dans les paramètres du réseau cellulaire."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Avant d\'utiliser <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assurez-vous que les données cellulaires sont activées pour la carte SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Vous pouvez modifier cette option dans les paramètres du réseau cellulaire."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Avant d\'utiliser <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assurez-vous que les données cellulaires et l\'itinérance des données sont activées pour la carte SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Vous pouvez modifier ces options dans les paramètres du réseau cellulaire."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Ignorer"</string>
</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 06af476..004fa52 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Exécution du code USSD..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Code IHM annulé"</string>
<string name="cancel" msgid="5044513931633602634">"Annuler"</string>
- <string name="enter_input" msgid="1810529547726803893">"Le message USSD doit comporter entre <xliff:g id="MIN_LEN">%d</xliff:g> et <xliff:g id="MAX_LEN">%d</xliff:g> caractères. Veuillez réessayer."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Le message USSD doit comporter entre <xliff:g id="MIN_LEN">%1$d</xliff:g> et <xliff:g id="MAX_LEN">%2$d</xliff:g> caractères. Veuillez réessayer."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Gérer la conférence téléphonique"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Haut-parleur"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Messagerie vocale"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Mess. vocale (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"MV :"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifications"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Messages d\'urgence"</string>
<string name="call_settings" msgid="6112441768261754562">"Paramètres d\'appel"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Mode LTE 4G avancé"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Utiliser les services LTE pour améliorer les communications vocales et autres (recommandé)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Utiliser les services 4G pour améliorer les communications vocales et autres (recommandé)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Données activées"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Autoriser la consommation des données"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Avertissement"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Impossible de reprendre l\'appel."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Impossible d\'isoler l\'appel."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Transfert impossible."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Impossible de fusionner les appels."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Impossible de refuser l\'appel."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Impossible de lancer les appels."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Impossible de mettre les appels en attente."</string>
@@ -522,7 +531,7 @@
<string name="dial_emergency_calling_not_available" msgid="5675557523782491826">"Appels d\'urgence non disponibles"</string>
<string name="police_type_description" msgid="5324410799919829693">"Police"</string>
<string name="ambulance_type_description" msgid="4114815025408089866">"Ambulance"</string>
- <string name="fire_type_description" msgid="7145996705197064710">"Feu"</string>
+ <string name="fire_type_description" msgid="7145996705197064710">"Pompiers"</string>
<string name="description_concat_format" msgid="7141070875487870177">"%1$s, %2$s"</string>
<string name="dialerKeyboardHintText" msgid="9192914825413747792">"Utilisez le clavier pour composer un numéro."</string>
<string name="onscreenHoldText" msgid="2285258239691145872">"En attente"</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Saisissez un mot de passe"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Paramètres d\'interdiction d\'appel"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Désactiver tous les paramètres d\'interdiction d\'appel ?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Le réseau est occupé. Veuillez réessayer plus tard."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Appel redirigé."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Appel transféré."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Un appel est en attente."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Appel transféré."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Connexion en cours à la conférence téléphonique."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"L\'appel en attente a été interrompu."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Impossible de passer un appel, car l\'appareil est en cours de préparation."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Impossible de passer un appel lorsqu\'un appel sortant est déjà en cours."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Impossible de passer un appel lorsqu\'un appel entrant attend une réponse. Répondez à cet appel ou refusez-le avant de passer un nouvel appel."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Impossible de passer un appel, car la fonction d\'appel a été désactivée à l\'aide de la propriété système ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Impossible de passer un appel, car deux appels sont déjà en cours. Mettez fin à l\'un des appels ou fusionnez-les afin de créer une conférence avant de passer un nouvel appel."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Pour utiliser <xliff:g id="SUPP_SERVICE">%s</xliff:g>, assurez-vous que les données mobiles sont activées. Vous pouvez modifier cette option dans les paramètres de réseau mobile."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Pour utiliser <xliff:g id="SUPP_SERVICE">%s</xliff:g>, assurez-vous que les données mobiles et l\'itinérance des données sont activées. Vous pouvez modifier ces options dans les paramètres de réseau mobile."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Pour utiliser <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assurez-vous que les données mobiles sont activées pour la carte SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Vous pouvez modifier cette option dans les paramètres de réseau mobile."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Pour utiliser <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assurez-vous que les données mobiles et l\'itinérance des données sont activées pour la carte SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Vous pouvez modifier cette option dans les paramètres de réseau mobile."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Ignorer"</string>
</resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 5fa02f1..a72d955 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -18,7 +18,7 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"Datos móbiles"</string>
<string name="phoneAppLabel" product="default" msgid="6790717591729922998">"Servizos de telefonía"</string>
- <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Marcador de urxencia"</string>
+ <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"Marcador de emerxencia"</string>
<string name="phoneIconLabel" msgid="2331230813161304895">"Teléfono"</string>
<string name="fdnListLabel" msgid="8630418672279521003">"Lista de NMF"</string>
<string name="unknown" msgid="6878797917991465859">"Descoñecido"</string>
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Código USSD en execución..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Código MMI cancelado"</string>
<string name="cancel" msgid="5044513931633602634">"Cancelar"</string>
- <string name="enter_input" msgid="1810529547726803893">"A mensaxe USSD debe conter entre <xliff:g id="MIN_LEN">%d</xliff:g> e <xliff:g id="MAX_LEN">%d</xliff:g> caracteres. Téntao de novo."</string>
+ <string name="enter_input" msgid="1810529547726803893">"A mensaxe USSD debe conter entre <xliff:g id="MIN_LEN">%1$d</xliff:g> e <xliff:g id="MAX_LEN">%2$d</xliff:g> caracteres. Téntao de novo."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Xestionar conferencia telefónica"</string>
<string name="ok" msgid="3811371167865772377">"Aceptar"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Altofalante"</string>
@@ -77,8 +77,14 @@
<string name="voicemail" msgid="8693759337917898954">"Correo de voz"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Correo de voz (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"CV:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notificacións"</string>
- <string name="cell_broadcast_settings" msgid="8740238216690502563">"Difusións de urxencia"</string>
+ <string name="cell_broadcast_settings" msgid="8740238216690502563">"Difusións de emerxencia"</string>
<string name="call_settings" msgid="6112441768261754562">"Configuración de chamada"</string>
<string name="additional_gsm_call_settings" msgid="1391795981938800617">"Configuración adicional"</string>
<string name="additional_gsm_call_settings_with_label" msgid="1385241520708457376">"Configuración adicional (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Modo LTE 4G mellorado"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Usa os servizos LTE para mellorar a comunicación por voz e outras (recomendado)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Usa os servizos 4G para mellorar a comunicación por voz e outras (recomendado)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Datos activados"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Permitir o uso de datos"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Atención"</string>
@@ -251,7 +261,7 @@
<string name="roaming_alert_title" msgid="3654815360303826008">"Permitir a itinerancia de datos?"</string>
<string name="data_usage_title" msgid="4042209259808900283">"Uso de datos da aplicación"</string>
<string name="data_usage_template" msgid="8526428824844656364">"Datos móbiles usados no período do <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="8074895510265488035">"Avanzado"</string>
+ <string name="advanced_options_title" msgid="8074895510265488035">"Configuración avanzada"</string>
<string name="carrier_settings_euicc" msgid="6714062862127226405">"Operador"</string>
<string name="keywords_carrier_settings_euicc" msgid="6861505396475991277">"operador, esim, sim, euicc, cambiar operadores, engadir operador"</string>
<string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>: <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
@@ -281,9 +291,9 @@
<string name="cell_bc_sms_enable" msgid="6441688565738921084">"SMS de difusión móbil activado"</string>
<string name="cell_bc_sms_disable" msgid="3398365088309408749">"SMS de difusión móbil desactivado"</string>
<string name="cb_sms_settings" msgid="651715019785107312">"Configuración de SMS da difusión móbil"</string>
- <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Difusión de urxencia"</string>
- <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Difusión de urxencia activada"</string>
- <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Difusión de urxencia desactivada"</string>
+ <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"Difusión de emerxencia"</string>
+ <string name="emergency_broadcast_enable" msgid="2645980025414010211">"Difusión de emerxencia activada"</string>
+ <string name="emergency_broadcast_disable" msgid="3665199821267569426">"Difusión de emerxencia desactivada"</string>
<string name="enable_disable_administrative" msgid="6501582322182059412">"Administrativo"</string>
<string name="administrative_enable" msgid="1750086122962032235">"Administrativo activado"</string>
<string name="administrative_disable" msgid="8433273857248698539">"Administrativo desactivado"</string>
@@ -487,7 +497,7 @@
<string name="incall_error_power_off" product="watch" msgid="2007450435656211658">"Para facer unha chamada, activa a rede de telefonía móbil, desactiva o modo avión ou desactiva o modo Aforro de batería."</string>
<string name="incall_error_power_off" product="default" msgid="2947938060513306698">"Desactiva o modo avión para facer unha chamada."</string>
<string name="incall_error_power_off_wfc" msgid="8711428920632416575">"Desactiva o modo avión ou conéctate a unha rede sen fíos para facer unha chamada."</string>
- <string name="incall_error_ecm_emergency_only" msgid="738708660612388692">"Sae do modo de devolución de chamada de urxencia para facer unha chamada que non sexa de urxencia."</string>
+ <string name="incall_error_ecm_emergency_only" msgid="738708660612388692">"Sae do modo de devolución de chamada de emerxencia para facer unha chamada que non sexa de emerxencia."</string>
<string name="incall_error_emergency_only" msgid="4678640422710818317">"Sen rexistro na rede"</string>
<string name="incall_error_out_of_service" msgid="8587993036435080418">"A rede móbil non está dispoñible."</string>
<string name="incall_error_out_of_service_wfc" msgid="8741629779555132471">"A rede móbil non está dispoñible. Conéctate a unha rede sen fíos para facer unha chamada."</string>
@@ -499,27 +509,26 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Non se puido retomar a chamada."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Non se pode separar a chamada."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Non se pode transferir."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Non se puideron combinar as chamadas."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Non se pode rexeitar a chamada."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Non se poden desconectar as chamadas."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Non se poden poñer as chamadas en espera."</string>
<string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"Conéctate a unha rede sen fíos para facer unha chamada."</string>
<string name="incall_error_promote_wfc" msgid="106510757624022064">"Activa as chamadas por wifi para facer unha chamada."</string>
- <string name="emergency_information_hint" msgid="399011533038204351">"Información de urxencia"</string>
+ <string name="emergency_information_hint" msgid="399011533038204351">"Información de emerxencia"</string>
<string name="emergency_information_owner_hint" msgid="688331472291637149">"Propietario"</string>
<string name="emergency_information_confirm_hint" msgid="4039012670779853030">"Toca de novo para consultar a información"</string>
- <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Chamada de urxencia"</string>
- <string name="emergency_dialpad_title" msgid="6052294225467269233">"Só chamadas de urxencia"</string>
- <string name="single_emergency_number_title" msgid="4959203129714396515">"Número de urxencia"</string>
- <string name="numerous_emergency_numbers_title" msgid="754158099451343898">"Números de urxencia"</string>
+ <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Chamada de emerxencia"</string>
+ <string name="emergency_dialpad_title" msgid="6052294225467269233">"Só chamadas de emerxencia"</string>
+ <string name="single_emergency_number_title" msgid="4959203129714396515">"Número de emerxencia"</string>
+ <string name="numerous_emergency_numbers_title" msgid="754158099451343898">"Números de emerxencia"</string>
<string name="emergency_call_shortcut_hint" msgid="6506167229097004348">"Toca de novo para chamar ao <xliff:g id="EMERGENCY_NUMBER">%s</xliff:g>"</string>
<string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Activando radio..."</string>
<string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Sen servizo. Tentando de novo…"</string>
- <string name="radio_off_during_emergency_call" msgid="2535800034010306830">"Non se pode activar o modo avión durante unha chamada de urxencia."</string>
- <string name="dial_emergency_error" msgid="1509085166367420355">"Non se pode chamar. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> non é un número de urxencia."</string>
- <string name="dial_emergency_empty_error" msgid="9130194953830414638">"Non se pode chamar. Marcar un número de urxencia."</string>
- <string name="dial_emergency_calling_not_available" msgid="5675557523782491826">"As chamadas de urxencia non están dispoñibles"</string>
+ <string name="radio_off_during_emergency_call" msgid="2535800034010306830">"Non se pode activar o modo avión durante unha chamada de emerxencia."</string>
+ <string name="dial_emergency_error" msgid="1509085166367420355">"Non se pode chamar. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> non é un número de emerxencia."</string>
+ <string name="dial_emergency_empty_error" msgid="9130194953830414638">"Non se pode chamar. Marcar un número de emerxencia."</string>
+ <string name="dial_emergency_calling_not_available" msgid="5675557523782491826">"As chamadas de emerxencia non están dispoñibles"</string>
<string name="police_type_description" msgid="5324410799919829693">"Policía"</string>
<string name="ambulance_type_description" msgid="4114815025408089866">"Ambulancia"</string>
<string name="fire_type_description" msgid="7145996705197064710">"Bombeiros"</string>
@@ -582,20 +591,20 @@
<string name="ota_try_again" msgid="7685477206465902290">"Tentar de novo"</string>
<string name="ota_next" msgid="3904945374358235910">"Seguinte"</string>
<string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
- <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Accedeuse ao modo de devolución de chamadas de urxencia"</string>
- <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Modo de devolución de chamadas de urxencia"</string>
+ <string name="phone_entered_ecm_text" msgid="6266424252578731203">"Accedeuse ao modo de devolución de chamadas de emerxencia"</string>
+ <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"Modo de devolución de chamadas de emerxencia"</string>
<string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"Conexión de datos desactivada"</string>
<string name="phone_in_ecm_notification_complete_time" msgid="7730376844178948351">"Sen conexión de datos ata: <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
<plurals name="alert_dialog_exit_ecm" formatted="false" msgid="7179911675595441201">
- <item quantity="other">O teléfono estará no modo de devolución de chamada de urxencia durante <xliff:g id="COUNT_1">%s</xliff:g> minutos. Mentres se atope neste modo, non se poderá usar ningunha aplicación que utilice unha conexión de datos. Queres saír agora?</item>
- <item quantity="one">O teléfono estará no modo de devolución de chamada de urxencia durante <xliff:g id="COUNT_0">%s</xliff:g> minuto. Mentres se atope neste modo, non se poderá usar ningunha aplicación que utilice unha conexión de datos. Queres saír agora?</item>
+ <item quantity="other">O teléfono estará no modo de devolución de chamada de emerxencia durante <xliff:g id="COUNT_1">%s</xliff:g> minutos. Mentres se atope neste modo, non se poderá usar ningunha aplicación que utilice unha conexión de datos. Queres saír agora?</item>
+ <item quantity="one">O teléfono estará no modo de devolución de chamada de emerxencia durante <xliff:g id="COUNT_0">%s</xliff:g> minuto. Mentres se atope neste modo, non se poderá usar ningunha aplicación que utilice unha conexión de datos. Queres saír agora?</item>
</plurals>
<plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="8042973425225093895">
- <item quantity="other">A acción seleccionada non está dispoñible durante o modo de devolución de chamadas de urxencia. O teléfono estará neste modo durante <xliff:g id="COUNT_1">%s</xliff:g> minutos. Queres saír agora?</item>
- <item quantity="one">A acción seleccionada non está dispoñible durante o modo de devolución de chamadas de urxencia. O teléfono estará neste modo durante <xliff:g id="COUNT_0">%s</xliff:g> minuto. Queres saír agora?</item>
+ <item quantity="other">A acción seleccionada non está dispoñible durante o modo de devolución de chamadas de emerxencia. O teléfono estará neste modo durante <xliff:g id="COUNT_1">%s</xliff:g> minutos. Queres saír agora?</item>
+ <item quantity="one">A acción seleccionada non está dispoñible durante o modo de devolución de chamadas de emerxencia. O teléfono estará neste modo durante <xliff:g id="COUNT_0">%s</xliff:g> minuto. Queres saír agora?</item>
</plurals>
- <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"A acción seleccionada non está dispoñible durante as chamadas de urxencia."</string>
- <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Saíndo do modo de devolución de chamadas de urxencia"</string>
+ <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"A acción seleccionada non está dispoñible durante as chamadas de emerxencia."</string>
+ <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"Saíndo do modo de devolución de chamadas de emerxencia"</string>
<string name="alert_dialog_yes" msgid="6674268047820703974">"Si"</string>
<string name="alert_dialog_no" msgid="1476091437797628703">"Non"</string>
<string name="alert_dialog_dismiss" msgid="2491494287075907171">"Rexeitar"</string>
@@ -610,7 +619,7 @@
<string name="not_voice_capable" msgid="2739898841461577811">"Chamadas de voz non compatibles"</string>
<string name="description_dial_button" msgid="7459705245418435351">"marcar"</string>
<string name="description_dialpad_button" msgid="5220006811894230590">"mostrar teclado de marcación"</string>
- <string name="pane_title_emergency_dialpad" msgid="1148505414688493134">"Teclado de urxencia"</string>
+ <string name="pane_title_emergency_dialpad" msgid="1148505414688493134">"Teclado de emerxencia"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"Correo de voz visual"</string>
<string name="voicemail_set_pin_dialog_title" msgid="2797924461029093837">"Establecer PIN"</string>
<string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"Cambiar PIN"</string>
@@ -620,8 +629,8 @@
<string name="enable_video_calling_dialog_msg" msgid="8948186136957417948">"Para activar as videochamadas, necesitas activar o Modo LTE 4G mellorado na configuración do sistema."</string>
<string name="enable_video_calling_dialog_settings" msgid="576528473599603249">"Configuración de rede"</string>
<string name="enable_video_calling_dialog_close" msgid="7411471282167927991">"Pechar"</string>
- <string name="sim_label_emergency_calls" msgid="4847699229529306397">"Chamadas de urxencia"</string>
- <string name="sim_description_emergency_calls" msgid="7535215397212301562">"Só chamadas de urxencia"</string>
+ <string name="sim_label_emergency_calls" msgid="4847699229529306397">"Chamadas de emerxencia"</string>
+ <string name="sim_description_emergency_calls" msgid="7535215397212301562">"Só chamadas de emerxencia"</string>
<string name="sim_description_default" msgid="4778679519938775515">"Tarxeta SIM, rañura: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
<string name="accessibility_settings_activity_title" msgid="8562004288733103868">"Accesibilidade"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="5932176406432044638">"Chamada por wifi de"</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Insire un contrasinal"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Configuración de restrición de chamadas"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Queres desactivar a configuración de restrición de chamadas?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"A rede está ocupada. Proba a chamar de novo máis tarde."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Derivouse a chamada."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Desviouse a chamada."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Chamada en espera."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Chamada desviada."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Entrando na conferencia telefónica."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Desconectouse a chamada retida."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Non puideches chamar porque se está realizando o aprovisionamento do dispositivo."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Non podes facer unha chamada porque xa hai outra en curso."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Non podes chamar porque te están chamando nestes momentos. Para poder facer unha chamada, primeiro tes que responder á outra ou rexeitala."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Non podes realizar unha chamada porque se desactivou esa función a través da propiedade do sistema ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Non podes realizar unha chamada porque xa hai dúas en curso. Para poder chamar, desconecta unha das que están en curso ou combínaas nunha conferencia."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Para usar <xliff:g id="SUPP_SERVICE">%s</xliff:g>, asegúrate de que os datos móbiles están activados. Podes cambiar esta opción na configuración de rede de telefonía móbil."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Para usar <xliff:g id="SUPP_SERVICE">%s</xliff:g>, asegúrate de que os datos móbiles e a itinerancia de datos están activados. Podes cambiar esta opción na configuración de rede de telefonía móbil."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Para usar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, asegúrate de que os datos móbiles da SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> están activados. Podes cambiar esta opción na configuración de rede de telefonía móbil."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Para usar <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, asegúrate de que os datos móbiles e a itinerancia de datos da SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> están activados. Podes cambiar esta opción na configuración de rede de telefonía móbil."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Ignorar"</string>
</resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index d71ef94..4d48469 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD કોડ ચાલે છે…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI કોડ રદ કર્યો"</string>
<string name="cancel" msgid="5044513931633602634">"રદ કરો"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD સંદેશ <xliff:g id="MIN_LEN">%d</xliff:g> અને <xliff:g id="MAX_LEN">%d</xliff:g> વર્ણ વચ્ચેનો હોવો આવશ્યક છે. કૃપા કરીને ફરી પ્રયાસ કરો."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD સંદેશ <xliff:g id="MIN_LEN">%1$d</xliff:g> અને <xliff:g id="MAX_LEN">%2$d</xliff:g> વર્ણ વચ્ચેનો હોવો આવશ્યક છે. કૃપા કરીને ફરી પ્રયાસ કરો."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"કોન્ફરન્સ કૉલ સંચાલિત કરો"</string>
<string name="ok" msgid="3811371167865772377">"ઓકે"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"સ્પીકર્સ"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"વૉઇસમેઇલ"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"વૉઇસમેઇલ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"સૂચનાઓ"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"કટોકટીના બ્રોડકાસ્ટ્સ"</string>
<string name="call_settings" msgid="6112441768261754562">"કૉલ સેટિંગ્સ"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"વિસ્તૃત 4G LTE મોડ"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"વૉઇસ અને અન્ય સંચારોને બહેતર બનાવવા માટે LTE સેવાઓનો ઉપયોગ કરો (ભલામણ કરેલ)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"વૉઇસ અને અન્ય સંચારોને વધુ સારા બનાવવા માટે 4G સેવાઓનો ઉપયોગ કરો (ભલામણ કરેલ)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"ડેટા સક્ષમ કરેલ છે"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"ડેટા વપરાશની મંજૂરી આપો"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"ધ્યાન આપો"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"કૉલ ફરી શરૂ કરી શકતા નથી."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"અલગ કૉલ કરી શકાતો નથી."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"સ્થાનાંતર કરી શકાતું નથી."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"કૉલને મર્જ કરી શકાતા નથી."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"કૉલ નકારી શકાતો નથી."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"કૉલ(લ્સ) રિલીઝ કરી શકતા નથી."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"કૉલ્સને હોલ્ડ કરી શકતાં નથી."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"પાસવર્ડ દાખલ કરો"</string>
<string name="call_barring_settings" msgid="80766145008623645">"કૉલ બારિંગની સેટિંગ"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"કૉલ બારિંગની બધી સેટિંગ નિષ્ક્રિય કરીએ?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"નેટવર્ક વ્યસ્ત છે. કૃપા કરીને કૉલ કરવાનો પછીથી ફરી પ્રયાસ કરો."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"કૉલ બીજે વાળ્યો."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"કૉલ ફોર્વર્ડ કર્યો."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"કૉલ પ્રતીક્ષામાં છે."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"કૉલ ફોર્વર્ડ કર્યો."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"કૉન્ફરન્સ કૉલમાં જોડાઈ રહ્યાં છીએ."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"હોલ્ડ કરેલ કૉલ રિલીઝ કર્યો."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"હાલમાં, આ ડિવાઇસ પર સેવાઓની જોગવાઈ કરવામાં આવી રહી હોવાના કારણે કૉલ કરી શકાતો નથી."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"કૉલ કરી શકાતો નથી કારણ કે બીજો આઉટગોઇંગ કૉલ પહેલાંથી ડાયલ કરવામાં આવી રહ્યો છે."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"કૉલ કરી શકાતો નથી કારણ કે ઇનકમિંગ કૉલનો જવાબ આપવામાં આવી રહ્યો નથી. નવો કૉલ કરતા પૂર્વે ઇનકમિંગ કૉલનો જવાબ આપો અથવા નકારો."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"કૉલ કરી શકાતો નથી કેમકે કૉલિંગની સુવિધા ro.telephony.disable-call સિસ્ટમ પ્રોપર્ટીનો ઉપયોગ કરીને બંધ કરવામાં આવી છે."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"કૉલ કરી શકાતો નથી કારણ કે બે કૉલ પહેલાંથી ચાલુ છે. નવો કૉલ કરતા પૂર્વે એક કૉલને ડિસ્કનેક્ટ કરો અથવા તેમને કોન્ફરન્સ કૉલમાં મર્જ કરો."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>નો ઉપયોગ કરવા માટે, મોબાઇલ ડેટા ચાલુ હોવાની ખાતરી કરો. તમે આને મોબાઇલ નેટવર્ક સેટિંગમાં બદલી શકો છો."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>નો ઉપયોગ કરવા માટે, મોબાઇલ ડેટા અને ડેટા રોમિંગ ચાલુ હોવાની ખાતરી કરો. તમે આને મોબાઇલ નેટવર્ક સેટિંગમાં બદલી શકો છો."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>નો ઉપયોગ કરવા માટે, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> માટે મોબાઇલ ડેટા ચાલુ હોવાની ખાતરી કરો. તમે આને મોબાઇલ નેટવર્ક સેટિંગમાં બદલી શકો છો."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>નો ઉપયોગ કરવા માટે, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> માટે મોબાઇલ ડેટા અને ડેટા રોમિંગ ચાલુ હોવાની ખાતરી કરો. તમે આને મોબાઇલ નેટવર્ક સેટિંગમાં બદલી શકો છો."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"છોડી દો"</string>
</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index e47a208..40367e5 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD कोड चल रहा है…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI कोड रद्द किया गया"</string>
<string name="cancel" msgid="5044513931633602634">"अभी नहीं"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD संदेश <xliff:g id="MIN_LEN">%d</xliff:g> और <xliff:g id="MAX_LEN">%d</xliff:g> वर्णों के बीच होना चाहिए. कृपया पुन: प्रयास करें."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD संदेश <xliff:g id="MIN_LEN">%1$d</xliff:g> और <xliff:g id="MAX_LEN">%2$d</xliff:g> वर्णों के बीच होना चाहिए. कृपया पुन: प्रयास करें."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"कॉन्फ़्रेंस कॉल प्रबंधित करें"</string>
<string name="ok" msgid="3811371167865772377">"ठीक है"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"स्पीकर"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"वॉयस मेल"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"वॉइसमेल (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"सूचनाएं"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"आपातकालीन प्रसारण"</string>
<string name="call_settings" msgid="6112441768261754562">"कॉल सेटिंग"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"उन्नत 4G LTE मोड"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"ध्वनि और अन्य संचारों को बेहतर बनाने हेतु LTE सेवाओं का उपयोग करें (अनुशंसित)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"ध्वनि और दूसरे संचारों को बेहतर बनाने के लिए 4G सेवाओं का इस्तेमाल करें (सुझाया गया)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"डेटा सक्षम किया गया"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"डेटा उपयोग करने दें"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"ध्यान दें"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"कॉल फिर से शुरू नहीं की जा सकती."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"कॉल अलग नहीं किया जा सकता."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"ट्रांसफर नहीं किया जा सकता."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"कॉल मर्ज नहीं किए जा सकते."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"कॉल अस्वीकार नहीं किया जा सकता."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"कॉल रिलीज़ नहीं किया जा सकता (किए जा सकते)."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"कॉल होल्ड नहीं किए जा सकते."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"पासवर्ड डालें"</string>
<string name="call_barring_settings" msgid="80766145008623645">"कॉल रोकें सुविधा की सेटिंग"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"कॉल रोकें सुविधा की सभी सेटिंग निष्क्रिय करें?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"नेटवर्क व्यस्त है. कृपया बाद में दोबारा कॉल करें."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"कॉल दूसरे नंबर पर भेजे जाने के बजाय खुद को आ गया."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"कॉल दूसरे नंबर पर भेजा गया."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"कॉल प्रतीक्षा में है."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"दूसरे नंबर पर भेजा गया कॉल."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"कॉन्फ़्रेंस कॉल में शामिल हो रहे/रही हैं."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"होल्ड किए गए कॉल को होल्ड से हटा दिया गया है."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"कॉल नहीं किया जा सकता क्योंकि इस समय डिवाइस का प्रावधान किया जा रहा है."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"कॉल नहीं किया जा सकता, क्योंकि कोई दूसरा किया गया कॉल (आउटगोइंग) पहले से ही डायल हो रहा है."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"कॉल नहीं किया जा सकता, क्योंकि एक आने वाले कॉल (इनकमिंग) का जवाब नहीं दिया जा रहा है. नया कॉल करने से पहले आने वाले कॉल (इनकमिंग) का जवाब दें या उसे अस्वीकार करें."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"कॉल नहीं किया जा सकता क्योंकि कॉलिंग की सुविधा को ROS.टेलीफ़ोनी की कॉल बंद करें सिस्टम प्रॉपर्टी का उपयोग करके बंद कर दिया गया है."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"कॉल नहीं किया जा सकता, क्योंकि पहले से ही दो कॉल जारी हैं. नया कॉल करने से पहले उनमें से किसी एक कॉल को बंद करें या उन्हें कॉन्फ़्रेंस में मर्ज करें."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> का उपयोग करने के लिए, पक्का करें कि मोबाइल डेटा चालू है. आप मोबाइल नेटवर्क सेटिंग में जाकर इसे बदल सकते हैं."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> का उपयोग करने के लिए पक्का करें कि मोबाइल डेटा और डेटा रोमिंग चालू हैं. आप मोबाइल नेटवर्क सेटिंग में जाकर इन्हें बदल सकते हैं."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> का उपयोग करने के लिए पक्का करें कि सिम <xliff:g id="SIM_NUMBER">%2$d</xliff:g> का डेटा चालू है. आप मोबाइल नेटवर्क सेटिंग में जाकर इसे बदल सकते हैं."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> का उपयोग करने के लिए पक्का करें कि सिम <xliff:g id="SIM_NUMBER">%2$d</xliff:g> का मोबाइल डेटा और डेटा रोमिंग चालू हैं. आप मोबाइल नेटवर्क सेटिंग में जाकर इन्हें बदल सकते हैं."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"खारिज करें"</string>
</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 198d472..4b72cd6 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Pokrenut je USSD kôd…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Otkazan je MMI kôd"</string>
<string name="cancel" msgid="5044513931633602634">"Odustani"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD poruka mora imati ovoliko znakova: <xliff:g id="MIN_LEN">%d</xliff:g> – <xliff:g id="MAX_LEN">%d</xliff:g>. Pokušajte ponovo."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD poruka mora imati ovoliko znakova: <xliff:g id="MIN_LEN">%1$d</xliff:g> – <xliff:g id="MAX_LEN">%2$d</xliff:g>. Pokušajte ponovo."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Upravljanje konferencijskim pozivom"</string>
<string name="ok" msgid="3811371167865772377">"U redu"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Zvučnik"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Govorna pošta"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Govorna pošta (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Obavijesti"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Hitna emitiranja"</string>
<string name="call_settings" msgid="6112441768261754562">"Postavke poziva"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Poboljšan 4G LTE način"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Upotreba LTE usluga za poboljšanje glasovne i drugih komunikacija (preporučeno)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Upotreba 4G usluga za poboljšanje glasovne i drugih komunikacija (preporučeno)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Podaci su omogućeni"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Dopusti upotrebu podataka"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Pažnja"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Poziv se ne može nastaviti."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Odvajanje poziva nije moguće."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Prijenos nije moguć."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Nije moguće spajati pozive."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Odbijanje poziva nije moguće."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Prekidanje poziva nije moguće."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Pozivi se ne mogu stavljati na čekanje."</string>
@@ -522,7 +531,7 @@
<string name="dial_emergency_calling_not_available" msgid="5675557523782491826">"Hitni pozivi nisu dostupni"</string>
<string name="police_type_description" msgid="5324410799919829693">"Policija"</string>
<string name="ambulance_type_description" msgid="4114815025408089866">"Hitna pomoć"</string>
- <string name="fire_type_description" msgid="7145996705197064710">"Vatra"</string>
+ <string name="fire_type_description" msgid="7145996705197064710">"Vatrogasci"</string>
<string name="description_concat_format" msgid="7141070875487870177">"%1$s, %2$s"</string>
<string name="dialerKeyboardHintText" msgid="9192914825413747792">"Birajte pomoću tipkovnice"</string>
<string name="onscreenHoldText" msgid="2285258239691145872">"Na čekanju"</string>
@@ -748,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Unesite zaporku"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Postavke za zabranu poziva"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Želite li deaktivirati sve postavke za zabranu poziva?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Mreža je zauzeta. Pokušajte ponovno uputiti poziv kasnije."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Poziv odbačen."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Poziv preusmjeren."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Poziv na čekanju."</string>
@@ -765,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Poziv preusmjeren."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Pridruživanje konferencijskom pozivu."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Poziv na čekanju je završen."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Poziv se ne može uspostaviti jer se uređaj trenutačno priprema."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Nije moguće uputiti poziv jer se odlazni poziv već upućuje."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Poziv se ne može uputiti jer postoji neodgovoreni dolazni poziv. Odgovorite ili odbijte dolazni poziv prije upućivanja novog poziva."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Poziv se ne može uputiti jer je pozivanje onemogućeno pomoću entiteta sustava ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Poziv se ne može uputiti jer su već dva poziva u tijeku. Prekinite jedan poziv ili spojite dva poziva u konferencijski poziv prije nego što uputite drugi poziv."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Da biste koristili uslugu <xliff:g id="SUPP_SERVICE">%s</xliff:g>, provjerite jesu li vaši mobilni podaci uključeni. Tu opciju možete promijeniti u postavkama mobilne mreže."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Da biste koristili uslugu <xliff:g id="SUPP_SERVICE">%s</xliff:g>, provjerite jesu li mobilni podaci i roaming podataka uključeni. Tu opciju možete promijeniti u postavkama mobilne mreže."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Da biste koristili uslugu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, provjerite jesu li mobilni podaci za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključeni. Tu opciju možete promijeniti u postavkama mobilne mreže."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Da biste koristili uslugu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, provjerite jesu li mobilni podaci i roaming podataka za SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> uključeni. Tu opciju možete promijeniti u postavkama mobilne mreže."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Odbaci"</string>
</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 66d76c4..4284d30 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD-kód futtatása..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI-kód megszakítva"</string>
<string name="cancel" msgid="5044513931633602634">"Mégse"</string>
- <string name="enter_input" msgid="1810529547726803893">"Az USSD-üzenet hossza <xliff:g id="MIN_LEN">%d</xliff:g> és <xliff:g id="MAX_LEN">%d</xliff:g> karakter között lehet. Kérjük, próbálja újra."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Az USSD-üzenet hossza <xliff:g id="MIN_LEN">%1$d</xliff:g> és <xliff:g id="MAX_LEN">%2$d</xliff:g> karakter között lehet. Kérjük, próbálja újra."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Konferenciahívás kezelése"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Hangszóró"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Hangposta"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Hangposta (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"HP:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Értesítések"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Sürgősségi adások"</string>
<string name="call_settings" msgid="6112441768261754562">"Hívásbeállítások"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Javított 4G LTE mód"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"LTE-szolgáltatások használata hang- és egyéb kommunikáció javításához (ajánlott)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"4G-szolgáltatások használata hang- és egyéb kommunikáció javításához (ajánlott)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Adatok engedélyezése"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Adatforgalom engedélyezése"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Figyelem"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Nem sikerült folytatni a hívást."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"A híváselkülönítés sikertelen."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Az átirányítás sikertelen."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Nem sikerült egyesíteni a hívásokat."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"A híváselutasítás sikertelen."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"A tartásban lévő hívás(ok) folytatása sikertelen."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"A hívások nem tarthatók."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Adja meg a jelszót"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Híváskorlátozási beállítások"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Deaktiválja az összes híváskorlátozási beállítást?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"A hálózat túlterhelt. Próbálkozzon a hívással később."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Hívás átirányítva egy másik számra."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Hívás átirányítva."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"A hívás várakozik."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Átirányított hívás."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Csatlakozás konferenciahíváshoz."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Várakoztatott hívás feloldva."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Nem indítható hívás, mivel az eszköz kiépítés alatt áll."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Nem kezdeményezhet hívást, mert folyamatban van egy másik kimenő hívás indítása."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Nem kezdeményezhet hívást, mert folyamatban van egy megválaszolatlan bejövő hívás. Mielőtt új hívást indítana, vegye fel, vagy utasítsa el a bejövő hívást."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Nem kezdeményezhet hívást, mivel a hívás le van tiltva ro.telephony.disable-call rendszertulajdonsággal."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Nem kezdeményezhet hívást, mivel már két hívás van folyamatban. Mielőtt új hívást indítana, tegye le az egyiket, vagy egyesítse őket egy konferenciahívásban."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"A(z) <xliff:g id="SUPP_SERVICE">%s</xliff:g> használatához győződjön meg róla, hogy a mobiladat-kapcsolat be van kapcsolva. Ezt a mobilhálózat beállításainál módosíthatja."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"A(z) <xliff:g id="SUPP_SERVICE">%s</xliff:g> használatához győződjön meg róla, hogy a mobiladat-kapcsolat és az adatbarangolás be van kapcsolva. Ezt a mobilhálózat beállításainál módosíthatja."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"A(z) <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> használatához győződjön meg róla, hogy a mobiladat-kapcsolat be van kapcsolva a SIM-kártyán (<xliff:g id="SIM_NUMBER">%2$d</xliff:g>). Ezt a mobilhálózat beállításainál módosíthatja."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"A(z) <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> használatához győződjön meg róla, hogy a mobiladat-kapcsolat és az adatbarangolás be van kapcsolva a SIM-kártyán (<xliff:g id="SIM_NUMBER">%2$d</xliff:g>). Ezt a mobilhálózat beállításainál módosíthatja."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Elvetés"</string>
</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index e2616ae..4c56123 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD կոդը գործարկվում է..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI կոդը չեղարկված է"</string>
<string name="cancel" msgid="5044513931633602634">"Չեղարկել"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD հաղորդագրությունը պետք է պարունակի <xliff:g id="MIN_LEN">%d</xliff:g>-ից <xliff:g id="MAX_LEN">%d</xliff:g> նիշ: Խնդրում ենք կրկին փորձել:"</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD հաղորդագրությունը պետք է պարունակի <xliff:g id="MIN_LEN">%1$d</xliff:g>-ից <xliff:g id="MAX_LEN">%2$d</xliff:g> նիշ: Խնդրում ենք կրկին փորձել:"</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Կառավարեք կոնֆերանս զանգը"</string>
<string name="ok" msgid="3811371167865772377">"Լավ"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Բարձրախոս"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Ձայնային փոստ"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Ձայնային փոստ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"ՁՓ՝"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Ծանուցումներ"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Ծանուցումներ արտակարգ իրավիճակների մասին"</string>
<string name="call_settings" msgid="6112441768261754562">"Զանգի կարգավորումներ"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Ընդլայնված 4G LTE ռեժիմ"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Ձայնի և կապի որակը բարելավելու համար օգտվեք LTE ծառայություններից (հանձնարարելի)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Ձայնի և կապի որակը լավացնելու համար օգտվեք 4G ծառայություններից (խորհուրդ է տրվում)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Տվյալները միացված են"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Թույլատրել տվյալների օգտագործումը"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Ուշադրություն"</string>
@@ -273,13 +283,9 @@
<!-- String.format failed for translation -->
<!-- no translation found for throttle_status_subtext (1657318943142085170) -->
<skip />
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
- <skip />
+ <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<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="7492763592720107737">"<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 (7732763021560399960) -->
- <skip />
+ <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"Շրջանի <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="2149102656120726855">"Տվյալների ծավալը կնվազի մինչև <xliff:g id="USED">%1$d</xliff:g> Կբիթ/վ, եթե տվյալների օգտագործման սահմանաչափը գերազանցվի"</string>
<string name="throttle_help_subtext" msgid="5217706521499010816">"Լրացուցիչ տեղեկություններ ձեր սպասարկողի բջջային ցանցի տվյալների օգտագործման քաղաքականության մասին"</string>
<string name="cell_broadcast_sms" msgid="5584192824053625842">"Բջջային հեռարձակման SMS"</string>
@@ -439,7 +445,7 @@
<string name="simContacts_emptyLoading" msgid="2203331234764498011">"Ընթերցում է SIM քարտից..."</string>
<string name="simContacts_empty" msgid="5270660846489561932">"Ձեր SIM քարտում կոնտակտներ չկան:"</string>
<string name="simContacts_title" msgid="1861472842524839921">"Ընտրեք կոնտակտները ներմուծման համար"</string>
- <string name="simContacts_airplaneMode" msgid="5254946758982621072">"Կոնտակտները SIM քարտից ներմուծելու համար անջատեք Ինքնաթիռի ռեժիմը:"</string>
+ <string name="simContacts_airplaneMode" msgid="5254946758982621072">"Կոնտակտները SIM քարտից ներմուծելու համար անջատեք Ավիառեժիմը:"</string>
<string name="enable_pin" msgid="5422767284133234860">"Միացնել/անջատել SIM PIN-ը"</string>
<string name="change_pin" msgid="9174186126330785343">"Փոխել SIM PIN-ը"</string>
<string name="enter_pin_text" msgid="8532615714751931951">"SIM PIN՝"</string>
@@ -491,8 +497,8 @@
<string name="notification_network_selection_title" msgid="4224455487793492772">"Ծառայություններ չկան"</string>
<string name="notification_network_selection_text" msgid="7550380440576731104">"Ընտրված ցանցը (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) անհասանելի է"</string>
<string name="incall_error_power_off" product="watch" msgid="2007450435656211658">"Զանգ կատարելու համար միացեք բջջային ցանցին, անջատեք ինքնաթիռի կամ էներգախնայման ռեժիմը:"</string>
- <string name="incall_error_power_off" product="default" msgid="2947938060513306698">"Զանգ կատարելու համար անջատեք Ինքնաթիռի ռեժիմը:"</string>
- <string name="incall_error_power_off_wfc" msgid="8711428920632416575">"Զանգ կատարելու համար անջատեք Ինքնաթիռի ռեժիմը կամ միացեք անլար ցանցին:"</string>
+ <string name="incall_error_power_off" product="default" msgid="2947938060513306698">"Զանգ կատարելու համար անջատեք Ավիառեժիմը:"</string>
+ <string name="incall_error_power_off_wfc" msgid="8711428920632416575">"Զանգ կատարելու համար անջատեք Ավիառեժիմը կամ միացեք անլար ցանցին:"</string>
<string name="incall_error_ecm_emergency_only" msgid="738708660612388692">"Սովորական զանգ կատարելու համար դուրս եկեք շտապ կանչի ռեժիմից։"</string>
<string name="incall_error_emergency_only" msgid="4678640422710818317">"Ցանցում գրանցված չէ:"</string>
<string name="incall_error_out_of_service" msgid="8587993036435080418">"Բջջային ցանցն անհասանելի է:"</string>
@@ -505,8 +511,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Չհաջողվեց վերսկսել զանգը:"</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Հնարավոր չէ առանձնացնել զանգը:"</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Հնարավոր չէ փոխանցել:"</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Չհաջողվեց միավորել զանգերը:"</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Հնարավոր չէ մերժել զանգը:"</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Հնարավոր չէ անջատել զանգ(եր)ը:"</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Հնարավոր չէ հետաձգել զանգերը:"</string>
@@ -522,7 +527,7 @@
<string name="emergency_call_shortcut_hint" msgid="6506167229097004348">"Կրկին հպեք՝ <xliff:g id="EMERGENCY_NUMBER">%s</xliff:g> համարին զանգելու համար"</string>
<string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Ռադիոն միացվում է..."</string>
<string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Ծառայությունը մատչելի չէ: Նորից փորձեք…"</string>
- <string name="radio_off_during_emergency_call" msgid="2535800034010306830">"Շտապ կանչի ժամանակ հնարավոր չէ մտնել ինքնաթիռի ռեժիմ:"</string>
+ <string name="radio_off_during_emergency_call" msgid="2535800034010306830">"Շտապ կանչի ժամանակ հնարավոր չէ մտնել Ավիառեժիմ:"</string>
<string name="dial_emergency_error" msgid="1509085166367420355">"Հնարավոր չէ զանգել: <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> համարը արտակարգ իրավիճակի համար չէ:"</string>
<string name="dial_emergency_empty_error" msgid="9130194953830414638">"Հնարավոր չէ զանգել: Հավաքեք արտակարգ իրավիճակի որևէ համար:"</string>
<string name="dial_emergency_calling_not_available" msgid="5675557523782491826">"Շտապ կանչերը հասանելի չեն"</string>
@@ -667,7 +672,7 @@
<string name="mobile_data_activate_button" msgid="3682400969184405446">"ԱՎԵԼԱՑՆԵԼ ԹՐԱՖԻԿԸ"</string>
<string name="mobile_data_activate_cancel_button" msgid="1708022171547398765">"ՉԵՂԱՐԿԵԼ"</string>
<string name="clh_card_title_call_ended_txt" msgid="4072101334811753823">"Զանգն ավարտվել է"</string>
- <string name="clh_callFailed_powerOff_txt" msgid="1049579267090569308">"Ինքնաթիռի ռեժիմը միացած է"</string>
+ <string name="clh_callFailed_powerOff_txt" msgid="1049579267090569308">"Ավիառեժիմը միացած է"</string>
<string name="clh_callFailed_simError_txt" msgid="7273306159809203315">"SIM քարտի սխալ"</string>
<string name="clh_incall_error_out_of_service_txt" msgid="3974373603657193827">"Բջջային ցանցն անհասանելի է"</string>
<string name="clh_callFailed_unassigned_number_txt" msgid="4722164461846838251">"Զանգվող բաժանորդի հեռախոսահամարի հետ խնդիր կա: Սխալի կոդը՝ 1:"</string>
@@ -752,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Մուտքագրեք գաղտնաբառը"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Զանգերի արգելափակման կարգավորումներ"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Անջատե՞լ զանգերի արգելափակման բոլոր կարգավորումները"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Ցանցը զբաղված է: Ավելի ուշ նորից փորձեք զանգել:"</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Զանգը վերահասցեավորվեց:"</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Զանգը վերահասցեավորվեց:"</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Զանգը սպասման մեջ է:"</string>
@@ -769,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Վերահասցեավորված զանգ"</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Միացում կոնֆերանս զանգի"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Զանգը հանվեց սպասման ռեժիմից:"</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Հնարավոր չէ զանգել, քանի որ սարքը ներկայումս նախապատրաստման փուլում է:"</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Հնարավոր չէ զանգել, քանի որ տվյալ պահին մեկ այլ ելքային զանգ է կատարվում:"</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Հնարավոր չէ զանգել, քանի որ անպատասխան մուտքային զանգ կա: Նախքան նոր զանգ կատարելը պատասխանեք մուտքային զանգին կամ մերժեք այն:"</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Հնարավոր չէ զանգել, քանի որ զանգելու գործառույթը զանգերի համակարգի ro.telephony.disable կարգավորման միջոցով կասեցվել է:"</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Հնարավոր չէ զանգել, քանի որ արդեն երկու ընթացիկ զանգ կա: Նախքան նոր զանգ կատարելը ավարտեք զանգերից մեկը կամ միավորեք դրանք մեկ խմբային զանգում:"</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ծառայությունից օգտվելու համար համոզվեք, որ բջջային ինտերնետը միացված է: Սա կարող եք փոխել բջջային ցանցի կարգավորումներում:"</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ծառայությունից օգտվելու համար համոզվեք, որ բջջային ինտերնետը և ինտերնետը ռոումինգում միացված են: Սրանք կարող եք փոխել բջջային ցանցի կարգավորումներում:"</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ծառայությունից օգտվելու համար համոզվեք, որ SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> քարտի համար բջջային ինտերնետը միացված է: Սա կարող եք փոխել բջջային ցանցի կարգավորումներում:"</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ծառայությունից օգտվելու համար համոզվեք, որ SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> քարտի համար բջջային ինտերնետը և ինտերնետը ռոումինգում միացված են: Սրանք կարող եք փոխել բջջային ցանցի կարգավորումներում:"</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Փակել"</string>
</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index c428c83..9f761f8 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Kode USSD sedang berjalan…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Kode MMI dibatalkan"</string>
<string name="cancel" msgid="5044513931633602634">"Batal"</string>
- <string name="enter_input" msgid="1810529547726803893">"Pesan USSD harus antara <xliff:g id="MIN_LEN">%d</xliff:g> dan <xliff:g id="MAX_LEN">%d</xliff:g> karakter. Coba lagi."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Pesan USSD harus antara <xliff:g id="MIN_LEN">%1$d</xliff:g> dan <xliff:g id="MAX_LEN">%2$d</xliff:g> karakter. Coba lagi."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Kelola konferensi telepon"</string>
<string name="ok" msgid="3811371167865772377">"Oke"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Speaker"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Kotak Pesan"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Kotak pesan (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifikasi"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Siaran darurat"</string>
<string name="call_settings" msgid="6112441768261754562">"Setelan panggilan"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Mode LTE 4G yang Ditingkatkan"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Gunakan layanan LTE untuk menyempurnakan suara dan komunikasi lainnya (disarankan)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Gunakan layanan 4G untuk menyempurnakan suara dan komunikasi lainnya (disarankan)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Data diaktifkan"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Izinkan penggunaan data"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Perhatian"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Tidak dapat melanjutkan panggilan."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Tidak dapat memisahkan panggilan telepon."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Tidak dapat mentransfer."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Tidak dapat menggabungkan panggilan."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Tidak dapat menolak panggilan telepon."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Tidak dapat melepas panggilan telepon."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Tidak dapat menahan panggilan."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Masukkan sandi"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Setelan pemblokiran panggilan"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Nonaktifkan semua setelan pemblokiran panggilan?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Jaringan sedang sibuk. Coba hubungi lagi di lain waktu."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Panggilan dialihkan."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Panggilan diteruskan."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Panggilan menunggu."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Panggilan diteruskan."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Bergabung ke panggilan konferensi."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Panggilan yang ditahan telah terputus."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Tidak dapat melakukan panggilan karena saat ini perangkat dalam proses penyediaan."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Tidak dapat melakukan panggilan karena panggilan keluar lainnya sedang berlangsung."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Tidak dapat melakukan panggilan karena ada panggilan masuk yang belum terjawab. Jawab atau tolak panggilan masuk sebelum melakukan panggilan."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Tidak dapat melakukan panggilan karena panggilan telah dinonaktifkan menggunakan properti sistem ro.telephony.disable-call"</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Tidak dapat melakukan panggilan karena ada dua panggilan yang sedang berlangsung. Putuskan salah satu panggilan atau gabungkan keduanya menjadi konferensi sebelum melakukan panggilan baru."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%s</xliff:g>, pastikan kuota internet diaktifkan. Anda dapat mengubahnya di setelan jaringan seluler."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%s</xliff:g>, pastikan kuota internet dan roaming data diaktifkan. Anda dapat mengubahnya di setelan jaringan seluler."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, pastikan kuota internet diaktifkan untuk SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Anda dapat mengubahnya di setelan jaringan seluler."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, pastikan kuota internet dan roaming data diaktifkan untuk SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Anda dapat mengubahnya di setelan jaringan seluler."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Tutup"</string>
</resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index a45823a..b1157fd 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD-kóðaskipun í gangi…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Hætt við MMI-kóðaskipun"</string>
<string name="cancel" msgid="5044513931633602634">"Hætta við"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD-skilaboð verða að vera á bilinu <xliff:g id="MIN_LEN">%d</xliff:g> til <xliff:g id="MAX_LEN">%d</xliff:g> stafir. Reyndu aftur."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD-skilaboð verða að vera á bilinu <xliff:g id="MIN_LEN">%1$d</xliff:g> til <xliff:g id="MAX_LEN">%2$d</xliff:g> stafir. Reyndu aftur."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Stjórna símafundi"</string>
<string name="ok" msgid="3811371167865772377">"Í lagi"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Hátalari"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Talhólf"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Talhólf (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"Talhólf:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Tilkynningar"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Neyðarútsendingar"</string>
<string name="call_settings" msgid="6112441768261754562">"Símtalsstillingar"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"endurbætt 4G LTE-stilling"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Nota LTE-þjónustu til að bæta talsamband og önnur samskipti (ráðlagt)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Nota 4G-þjónustu til að bæta talsamband og önnur samskipti (ráðlagt)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Kveikt á gagnaaðgangi"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Leyfa gagnanotkun"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Athugaðu"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Ekki er hægt að halda áfram með símtal."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Ekki hægt að aðskilja símtal."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Ekki hægt að flytja."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Ekki tókst að sameina símtöl."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Ekki hægt að hafna símtali."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Ekki hægt að leggja á."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Getur ekki sett símtöl í bið."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Slá inn aðgangsorð"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Stillingar fyrir útilokun símtala"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Slökkva á öllum stillingum fyrir útilokun símtala?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Símkerfið er upptekið. Reyndu að hringja aftur síðar."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Símtal flutt."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Símtal framsent."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Símtal er í bið."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Framsent símtal."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Tekur þátt í símafundi."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Símtal í bið heldur áfram."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Ekki er hægt að hringja símtal þar sem verið er að úthluta tækinu."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Ekki er hægt að hringja símtal þar sem þegar er verið að hringja annað símtal."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Ekki er hægt að hringja símtal þar sem ósvarað símtal er að berast. Svaraðu eða hafnaðu símtalinu áður en þú hringir nýtt símtal."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Ekki er hægt að hringja símtal þar sem símtöl hafa verið gerð óvirk með því að nota kerfiseiginleikann ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Ekki er hægt að hringja símtal þar sem þegar eru tvö símtöl í gangi. Aftengdu annað símtalið eða sameinaðu þau í símafund áður en þú hringir nýtt símtal."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Til að nota <xliff:g id="SUPP_SERVICE">%s</xliff:g> skaltu ganga úr skugga um að kveikt sé á farsímagögnum. Þú getur breytt þessu í stillingum farsímakerfis."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Til að nota <xliff:g id="SUPP_SERVICE">%s</xliff:g> skaltu ganga úr skugga um að kveikt sé á farsímagögnum og gagnareiki. Þú getur breytt þessu í stillingum farsímakerfis."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Til að nota <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> skaltu ganga úr skugga um að kveikt sé á farsímagögnum fyrir SIM-kortið <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Þú getur breytt þessu í stillingum farsímakerfis."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Til að nota <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> skaltu ganga úr skugga um að kveikt sé á farsímagögnum og gagnareiki fyrir SIM-kortið <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Þú getur breytt þessu í stillingum farsímakerfis."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Hunsa"</string>
</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 6dac494..b4721ca 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Esecuzione codice USSD..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Codice MMI annullato"</string>
<string name="cancel" msgid="5044513931633602634">"Annulla"</string>
- <string name="enter_input" msgid="1810529547726803893">"Il messaggio USSD deve essere compreso tra <xliff:g id="MIN_LEN">%d</xliff:g> e <xliff:g id="MAX_LEN">%d</xliff:g> caratteri. Riprova."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Il messaggio USSD deve essere compreso tra <xliff:g id="MIN_LEN">%1$d</xliff:g> e <xliff:g id="MAX_LEN">%2$d</xliff:g> caratteri. Riprova."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Gestisci audioconferenza"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Vivavoce"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Segreteria"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Segreteria (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"ST:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notifiche"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Trasmissioni di emergenza"</string>
<string name="call_settings" msgid="6112441768261754562">"Impostazioni chiamate"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Modalità 4G LTE avanzata"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Usa i servizi LTE per migliorare la voce e le altre comunicazioni (consigliato)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Usa i servizi 4G per migliorare la voce e le altre comunicazioni (consigliato)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Dati attivati"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Consenti l\'utilizzo dei dati"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Attenzione"</string>
@@ -273,11 +283,9 @@
<!-- String.format failed for translation -->
<!-- no translation found for throttle_status_subtext (1657318943142085170) -->
<skip />
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
- <skip />
+ <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<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="7492763592720107737">"<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="7732763021560399960">"<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>
+ <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<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>
<string name="throttle_rate_subtext" msgid="2149102656120726855">"Velocità dati ridotta a <xliff:g id="USED">%1$d</xliff:g> Kb/s se limite utilizzo dati superato"</string>
<string name="throttle_help_subtext" msgid="5217706521499010816">"Informazioni sulla norme di utilizzo dati della rete cellulare del gestore"</string>
<string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS cell broadcast"</string>
@@ -503,8 +511,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Impossibile riprendere la chiamata."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Impossibile separare la chiamata."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Impossibile trasferire."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Impossibile unire le chiamate."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Impossibile rifiutare la chiamata."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Impossibile riagganciare."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Impossibile mettere in attesa le chiamate."</string>
@@ -750,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Inserisci password"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Impostazioni di blocco chiamate"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Disattivare tutte le impostazioni di blocco chiamate?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"La rete è occupata. Riprova a chiamare di nuovo più tardi."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Chiamata deviata."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Trasferimento di chiamata."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Chiamata in attesa."</string>
@@ -767,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Trasferimento di chiamata."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Accesso all\'audioconferenza."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"La chiamata in attesa è stata chiusa."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Impossibile effettuare una chiamata perché il dispositivo è attualmente in fase di provisioning."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Impossibile effettuare una chiamata perché è già presente un\'altra chiamata in uscita in composizione."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Impossibile effettuare una chiamata perché è presente una chiamata in arrivo senza risposta. Rispondi o rifiuta la chiamata in arrivo prima di effettuare una nuova chiamata."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Impossibile effettuare una chiamata perché le chiamate sono state disattivate utilizzando la proprietà di sistema ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Impossibile effettuare una chiamata perché sono già presenti due chiamate in corso. Unisci le chiamate in una conferenza o scollegane una prima di effettuare una nuova chiamata."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Per utilizzare <xliff:g id="SUPP_SERVICE">%s</xliff:g>, assicurati che i dati mobili siano attivi. Puoi modificare questa opzione nelle impostazioni della rete mobile."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Per utilizzare <xliff:g id="SUPP_SERVICE">%s</xliff:g>, assicurati che i dati mobili e il roaming dei dati siano attivi. Puoi modificare queste opzioni nelle impostazioni della rete mobile."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Per utilizzare <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assicurati che i dati mobili siano attivi per la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puoi modificare questa opzione nelle impostazioni della rete mobile."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Per utilizzare <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, assicurati che i dati mobili e il roaming dei dati siano attivi per la SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puoi modificare queste opzioni nelle impostazioni della rete mobile."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Ignora"</string>
</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 25c3c97..e066cf7 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"קוד USSD פועל…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"קוד MMI מבוטל"</string>
<string name="cancel" msgid="5044513931633602634">"ביטול"</string>
- <string name="enter_input" msgid="1810529547726803893">"הודעת USSD חייבת להיות באורך של <xliff:g id="MIN_LEN">%d</xliff:g> עד <xliff:g id="MAX_LEN">%d</xliff:g> תווים. נסה שוב."</string>
+ <string name="enter_input" msgid="1810529547726803893">"הודעת USSD חייבת להיות באורך של <xliff:g id="MIN_LEN">%1$d</xliff:g> עד <xliff:g id="MAX_LEN">%2$d</xliff:g> תווים. נסה שוב."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"ניהול שיחת ועידה"</string>
<string name="ok" msgid="3811371167865772377">"אישור"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"רמקול"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"דואר קולי"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"דואר קולי (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"דואר קולי:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"עדכונים"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"שידורי חירום"</string>
<string name="call_settings" msgid="6112441768261754562">"הגדרות שיחה"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"מצב 4G LTE משופר"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"השתמש בשירותי LTE כדי לשפר את הקול ודרכי תקשורת אחרות (מומלץ)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"שימוש בשירותי 4G כדי לשפר את הקול ודרכי תקשורת אחרות (מומלץ)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"נתונים מופעלים"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"התר שימוש בנתונים"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"זהירות"</string>
@@ -398,16 +408,16 @@
<string name="disable_fdn" msgid="7944020890722540616">"השבתת מספרי חיוג קבועים"</string>
<string name="change_pin2" msgid="2153563695382176676">"שנה PIN2"</string>
<string name="enable_fdn_ok" msgid="7215588870329688132">"השבת מספרי חיוג קבועים"</string>
- <string name="disable_fdn_ok" msgid="5727046928930740173">"הפעל מספרי חיוג קבועים"</string>
+ <string name="disable_fdn_ok" msgid="5727046928930740173">"הפעלה של מספרי חיוג קבועים"</string>
<string name="sum_fdn" msgid="1959399454900272878">"ניהול מספרי חיוג קבועים"</string>
<string name="sum_fdn_change_pin" msgid="6666549734792827932">"שנה את קוד הגישה למספרי חיוג קבועים"</string>
<string name="sum_fdn_manage_list" msgid="8431088265332628316">"ניהול רשימת מספרי טלפון"</string>
<string name="voice_privacy" msgid="3776841382844614716">"פרטיות קול"</string>
- <string name="voice_privacy_summary" msgid="3159383389833516214">"הפוך מצב פרטיות משופרת לפעיל"</string>
+ <string name="voice_privacy_summary" msgid="3159383389833516214">"הפעלת מצב פרטיות משופרת"</string>
<string name="tty_mode_option_title" msgid="9033098925144434669">"מצב TTY"</string>
<string name="tty_mode_option_summary" msgid="1073835131534808732">"הגדר מצב TTY"</string>
<string name="auto_retry_mode_title" msgid="4073265511427813322">"ניסיון חוזר אוטומטי"</string>
- <string name="auto_retry_mode_summary" msgid="4973886004067532288">"אפשר מצב \'ניסיון חוזר\'."</string>
+ <string name="auto_retry_mode_summary" msgid="4973886004067532288">"הפעלת מצב \'ניסיון חוזר\'."</string>
<string name="tty_mode_not_allowed_video_call" msgid="3795846787901909176">"שינוי מצב TTY אינו מותר במהלך שיחת וידאו"</string>
<string name="menu_add" msgid="1882023737425114762">"הוסף איש קשר"</string>
<string name="menu_edit" msgid="7143003705504672374">"ערוך איש קשר"</string>
@@ -434,7 +444,7 @@
<string name="simContacts_empty" msgid="5270660846489561932">"אין אנשי קשר בכרטיס ה-SIM."</string>
<string name="simContacts_title" msgid="1861472842524839921">"בחר אנשי קשר לייבוא"</string>
<string name="simContacts_airplaneMode" msgid="5254946758982621072">"בטל את מצב טיסה כדי לייבא אנשי קשר מכרטיס ה-SIM."</string>
- <string name="enable_pin" msgid="5422767284133234860">"הפוך לפעיל/השבת PIN של SIM"</string>
+ <string name="enable_pin" msgid="5422767284133234860">"הפעלה/השבתה של ה-PIN של SIM"</string>
<string name="change_pin" msgid="9174186126330785343">"שנה PIN של SIM"</string>
<string name="enter_pin_text" msgid="8532615714751931951">"PIN של SIM:"</string>
<string name="oldPinLabel" msgid="5287773661246368314">"PIN ישן"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"לא ניתן להמשיך את השיחה."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"לא ניתן להפריד שיחה."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"לא ניתן להעביר."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"לא ניתן היה למזג את השיחות."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"לא ניתן לדחות שיחה."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"לא ניתן לשחרר שיחות."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"לא ניתן להחזיק שיחות."</string>
@@ -566,8 +575,8 @@
<string name="ota_hfa_activation_title" msgid="2234246934160473981">"מפעיל..."</string>
<string name="ota_hfa_activation_dialog_message" msgid="8092479227918463415">"הטלפון מפעיל את שירותי הנתונים שלך לנייד.\n\nהתהליך עשוי לארוך עד 5 דקות."</string>
<string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"לדלג על ההפעלה?"</string>
- <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"אם תדלג על ההפעלה, לא תוכל להתקשר או להתחבר לרשתות נתונים לנייד (אך תוכל להתחבר לרשתות Wi-Fi). עד שתפעיל את הטלפון, תתבקש להפעיל אותו בכל פעם שתדליק אותו."</string>
- <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"דלג"</string>
+ <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"אם מדלגים על ההפעלה, אי אפשר להתקשר או להתחבר לרשתות נתונים לנייד (אך אפשר להתחבר לרשתות Wi-Fi). עד להפעלת הטלפון תופיע הודעה שמבקשת לבצע את ההפעלה בכל פעם שמדליקים את הטלפון."</string>
+ <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"דילוג"</string>
<string name="ota_activate" msgid="1368528132525626264">"הפעל"</string>
<string name="ota_title_activate_success" msgid="6570240212263372046">"הטלפון מופעל."</string>
<string name="ota_title_problem_with_activation" msgid="7095824491970084367">"בעיה בהפעלה"</string>
@@ -579,7 +588,7 @@
<string name="ota_unsuccessful" msgid="8072141612635635357">"הטלפון שלך לא הופעל. \nייתכן שעליך למצוא מקום שהקליטה בו טובה יותר (ליד חלון או בחוץ). \n\nנסה שוב או התקשר לשירות לקוחות לקבלת אפשרויות נוספות."</string>
<string name="ota_spc_failure" msgid="3909983542575030796">"כשלים מרובים של SPC"</string>
<string name="ota_call_end" msgid="4537279738134612388">"הקודם"</string>
- <string name="ota_try_again" msgid="7685477206465902290">"נסה שוב"</string>
+ <string name="ota_try_again" msgid="7685477206465902290">"נסו שוב"</string>
<string name="ota_next" msgid="3904945374358235910">"הבא"</string>
<string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
<string name="phone_entered_ecm_text" msgid="6266424252578731203">"נכנס למצב חירום של התקשרות חזרה"</string>
@@ -630,7 +639,7 @@
<string name="accessibility_settings_activity_title" msgid="8562004288733103868">"נגישות"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="5932176406432044638">"שיחת Wi-Fi מאת"</string>
<string name="status_hint_label_wifi_call" msgid="8900805254974653903">"שיחת Wi-Fi"</string>
- <string name="emergency_action_launch_hint" msgid="4906759256275562674">"הקש שוב כדי לפתוח"</string>
+ <string name="emergency_action_launch_hint" msgid="4906759256275562674">"יש להקיש שוב כדי לפתוח"</string>
<string name="message_decode_error" msgid="3456481534066924855">"אירעה שגיאה בעת פענוח ההודעה."</string>
<string name="callFailed_cdma_activation" msgid="2307989779233262164">"כרטיס SIM הפעיל את השירות שלך ועדכן את יכולות הנדידה של הטלפון."</string>
<string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"יש יותר מדי שיחות פעילות. כדי להתחיל שיחה חדשה עליך לסיים או למזג חלק מהשיחות הפעילות."</string>
@@ -750,6 +759,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"זה המקום להזין סיסמה"</string>
<string name="call_barring_settings" msgid="80766145008623645">"ההגדרות של חסימת שיחות"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"להשבית את כל ההגדרות של חסימת שיחות?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"יש עומס על הרשת. אפשר לנסות להתקשר שוב מאוחר יותר."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"השיחה נותבה למספר אחר."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"השיחה הועברה."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"שיחה ממתינה."</string>
@@ -767,8 +777,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"השיחה הועברה."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"אנחנו מצרפים אותך לשיחת הוועידה."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"השיחה שוחררה מהמתנה."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"אי אפשר להתקשר כי הקצאת המכשיר לא הסתיימה."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"אי אפשר להתקשר כי יש שיחה יוצאת אחרת."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"אי אפשר להתקשר כי יש שיחה נכנסת אחרת. צריך לענות לשיחה או לדחות אותה ורק אז לנסות להתקשר למספר אחר."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"אי אפשר להתקשר כי השיחות הושבתו באמצעות מאפיין המערכת ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"אי אפשר להתקשר כי כבר יש שתי שיחות פעילות. צריך לנתק את אחת מהשיחות או למזג אותן לשיחת ועידה ורק אז לנסות להתקשר למספר אחר."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"כדי להשתמש בשירות \'<xliff:g id="SUPP_SERVICE">%s</xliff:g>\', צריך לוודא שהחיבור לחבילת הגלישה מופעל. אפשר להפעיל אותו בהגדרות של הרשת הסלולרית."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"כדי להשתמש בשירות \'<xliff:g id="SUPP_SERVICE">%s</xliff:g>\', צריך לוודא שהחיבור לחבילת הגלישה והנדידה מופעלים. אפשר להפעיל אותם בהגדרות של הרשת הסלולרית."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"כדי להשתמש בשירות \'<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>\', צריך לוודא שהחיבור לחבילת הגלישה מופעל בכרטיס ה-SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. אפשר להפעיל אותו בהגדרות של הרשת הסלולרית."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"כדי להשתמש בשירות \'<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>\', צריך לוודא שהחיבור לחבילת הגלישה והנדידה מופעלים בכרטיס ה-SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. אפשר להפעיל אותם בהגדרות של הרשת הסלולרית."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"סגירה"</string>
</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index b2e3947..014ba6d 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSDコードを実行中..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMIコードはキャンセルされました"</string>
<string name="cancel" msgid="5044513931633602634">"キャンセル"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSDメッセージの文字数は<xliff:g id="MIN_LEN">%d</xliff:g>~<xliff:g id="MAX_LEN">%d</xliff:g>です。もう一度お試しください。"</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSDメッセージの文字数は<xliff:g id="MIN_LEN">%1$d</xliff:g>~<xliff:g id="MAX_LEN">%2$d</xliff:g>です。もう一度お試しください。"</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"グループ通話オプション"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"スピーカー"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"ボイスメール"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"ボイスメール(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"通知"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"緊急速報メール"</string>
<string name="call_settings" msgid="6112441768261754562">"通話設定"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"4G LTE拡張モード"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"LTEサービスを使用して音声などの通信を改善する(推奨)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"4G サービスを使用して、音声やその他の通話の品質を改善する(推奨)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"データ通信を有効にする"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"データ使用を許可"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"注意"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"通話を再開できません。"</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"通話を分割できません。"</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"転送できません。"</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"通話を統合できませんでした。"</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"着信を拒否できません。"</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"通話を解放できません。"</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"通話を保留にできません。"</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"パスワードを入力"</string>
<string name="call_barring_settings" msgid="80766145008623645">"通話制限設定"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"通話制限設定をすべて無効にしますか?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"ネットワークがビジー状態です。しばらくしてからもう一度通話を発信してみてください。"</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"通話が転送されました。"</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"通話が転送されました。"</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"応答保留中です。"</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"転送されてきた電話。"</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"グループ通話に参加しようとしています。"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"通話の保留が解除されました。"</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"現在この端末のプロビジョニングを行っているため、通話を発信することはできません。"</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"すでに別の通話を発信中のため、新しく通話を発信することはできません。"</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"通話を着信中のため、新しく通話を発信することはできません。着信中の通話に応答するか、通話を拒否すると、新しく通話を発信できるようになります。"</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"ro.telephony.disable-call システム プロパティを使用して通話機能が無効に設定されているため、通話を発信することはできません。"</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"通話中の電話がすでに 2 件あるため、新しく通話を発信することはできません。通話中の電話のどちらかを終了するか、2 件の通話を統合してグループ通話にすると、新しく通話を発信できるようになります。"</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>を利用するには、モバイルデータが ON になっている必要があります。モバイルデータの ON と OFF の切り替えは、モバイル ネットワーク設定で行えます。"</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>を利用するには、モバイルデータとデータ ローミングが ON になっている必要があります。これらの ON と OFF の切り替えは、モバイル ネットワーク設定で行えます。"</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>を利用するには、SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> のモバイルデータが ON になっている必要があります。モバイルデータの ON と OFF の切り替えは、モバイル ネットワーク設定で行えます。"</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>を利用するには、SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> のモバイルデータとデータ ローミングが ON になっている必要があります。これらの ON と OFF の切り替えは、モバイル ネットワーク設定で行えます。"</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"閉じる"</string>
</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 521d106..768cbae 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD კოდი გაშვებულია…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI კოდი გაუქმდა"</string>
<string name="cancel" msgid="5044513931633602634">"გაუქმება"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD შეტყობინება უნდა შედგებოდეს მინიმუმ <xliff:g id="MIN_LEN">%d</xliff:g>-სა და მაქსიმუმ <xliff:g id="MAX_LEN">%d</xliff:g> სიმბოლოსგან. გთხოვთ, სცადოთ ისევ."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD შეტყობინება უნდა შედგებოდეს მინიმუმ <xliff:g id="MIN_LEN">%1$d</xliff:g>-სა და მაქსიმუმ <xliff:g id="MAX_LEN">%2$d</xliff:g> სიმბოლოსგან. გთხოვთ, სცადოთ ისევ."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"საკონფერენციო ზარის მართვა"</string>
<string name="ok" msgid="3811371167865772377">"კარგი"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"სპიკერი"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"ხმოვანი ფოსტა"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"ხმოვანი ფოსტა (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"შეტყობინებები"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"სასწრაფო გადაცემები"</string>
<string name="call_settings" msgid="6112441768261754562">"ზარის პარამეტრები"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"გაუმჯობესებული 4G LTE რეჟიმი"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"ხმოვანი და სხვა სახის კომუნიკაციებიგამოიყენეთ LTE მომსახურება გაუმჯობესება ხმა და სხვა კომუნიკაციები (რეკომენდირებულია)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"გამოიყენეთ 4G სერვისები ხმისა და სხვა კომუნიკაციების გასაუმჯობესებლად (რეკომენდებული)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"მონაცემთა გადაცემა ჩართულია჻"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"მონაცემების გამოყენება"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"ყურადღება"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"ზარის განახლება შეუძლებელია."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"ვერ ხორციელდება ზარის გამოყოფა."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"გადაცემა ვერ ხორციელდება."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"ზარების გაერთიანება ვერ ხერხდება."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"ზარის უარყოფა ვერ ხორციელდება."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ვერ ხერხდება ზარ(ებ)ის გაშვება."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ზარების დაყოვნება ვერ ხერხდება."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"შეიყვანეთ პაროლი"</string>
<string name="call_barring_settings" msgid="80766145008623645">"ზარების აკრძალვის პარამეტრები"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"გსურთ ზარების აკრძალვის ყველა პარამეტრის დეაქტივაცია?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"ქსელი დაკავებულია. გთხოვთ, სცადოთ დარეკვა მოგვიანებით."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"მოხდა ზარის აცილება."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"ზარი გადამისამართდა."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"ზარი იცდის."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"ზარი გადამისამართდა."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"მიმდინარეობს საკონფერენციო ზართან შეერთება."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"ზარი გათავისუფლდა მოცდის რეჟიმიდან."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"ზარის განთავსება შეუძლებელია, რადგან მიმდინარეობს მოწყობილობის მიერ სერვისების უზრუნველყოფის დადასტურება."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"ზარის განხორციელება შეუძლებელია, რადგან სხვა გამავალი ზარი უკვე იკრიფება."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"ზარის განხორციელება შეუძლებელია, რადგან გაქვთ უპასუხო შემომავალი ზარი. უპასუხეთ ან უარყავით შემომავალი ზარი ახალი ზარის განხორციელებამდე."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"ზარის განხორციელება შეუძლებელია, რადგან დარეკვა გამორთულია ro.telephony.disable-call სისტემის თვისების გამოყენებით."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"ზარის განხორციელება შეუძლებელია, რადგან უკვე ორი ზარი მიმდინარეობს. ახალი ზარის განსახორციელებლად გათიშეთ ერთ-ერთი ზარი ან გააერთიანეთ ისინი კონფერენციად."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>-ის გამოსაყენებლად დარწმუნდით, რომ მობილური ინტერნეტი ჩართულია. ეს შეგიძლიათ მობილური ქსელის პარამეტრებში შეცვალოთ."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>-ის გამოსაყენებლად დარწმუნდით, რომ მობილური ინტერნეტი და ინტერნეტის როუმინგი ჩართულია. ეს შეგიძლიათ მობილური ქსელის პარამეტრებში შეცვალოთ."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>-ის გამოსაყენებლად დარწმუნდით, რომ მობილური ინტერნეტი ჩართულია SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-სთვის. ეს შეგიძლიათ მობილური ქსელის პარამეტრებში შეცვალოთ."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>-ის გამოსაყენებლად დარწმუნდით, რომ მობილური ინტერნეტი და ინტერნეტის როუმინგი ჩართულია SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-სთვის. ეს შეგიძლიათ მობილური ქსელის პარამეტრებში შეცვალოთ."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"დახურვა"</string>
</resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 657b050..923aa0b 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD коды қосулы…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI коды жарамсыздандырылған"</string>
<string name="cancel" msgid="5044513931633602634">"Тоқтату"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD хабары <xliff:g id="MIN_LEN">%d</xliff:g> және <xliff:g id="MAX_LEN">%d</xliff:g> аралығындағы таңбалардан тұруы тиіс. Қайта әрекеттеніп көріңіз"</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD хабары <xliff:g id="MIN_LEN">%1$d</xliff:g> және <xliff:g id="MAX_LEN">%2$d</xliff:g> аралығындағы таңбалардан тұруы тиіс. Қайта әрекеттеніп көріңіз"</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Мәжіліс қоңырауын басқару"</string>
<string name="ok" msgid="3811371167865772377">"Жарайды"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Үндеткіш"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Дауыстық пошта"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Дауыстық пошта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"ДХ:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Хабарландырулар"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Жедел таратылымдар"</string>
<string name="call_settings" msgid="6112441768261754562">"Қоңырау параметрлері"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Жақсартылған 4G LTE режимі"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Дауыстық және басқа байланыстарды жақсарту үшін LTE қызметтерін пайдалану (ұсынылады)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Дауыстық және басқа байланыстарды жақсарту үшін 4G қызметтерін пайдалану (ұсынылады)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Дерекқор қосылған"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Деректерді пайдалануға рұқсат ету"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Назар аударыңыз"</string>
@@ -406,8 +416,8 @@
<string name="voice_privacy_summary" msgid="3159383389833516214">"Жетілдірілген құпиялылық режимін қосу"</string>
<string name="tty_mode_option_title" msgid="9033098925144434669">"Tелетайп режимі"</string>
<string name="tty_mode_option_summary" msgid="1073835131534808732">"Телетайп режиміне реттеу"</string>
- <string name="auto_retry_mode_title" msgid="4073265511427813322">"Қайта авто әрекеттену"</string>
- <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Қайта авто әрекеттену режимін қосу"</string>
+ <string name="auto_retry_mode_title" msgid="4073265511427813322">"Әрекетті автоматты қайталау"</string>
+ <string name="auto_retry_mode_summary" msgid="4973886004067532288">"Әрекетті автоматты қайталау режимін қосу"</string>
<string name="tty_mode_not_allowed_video_call" msgid="3795846787901909176">"Бейне қоңырау барысында Телетайп режимін өзгертуге рұқсат етілмеген"</string>
<string name="menu_add" msgid="1882023737425114762">"Байланыс қосу"</string>
<string name="menu_edit" msgid="7143003705504672374">"Байланыс өңдеу"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Қоңырауды жалғастыру мүмкін болмады."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Қоңырауды бөлу мүмкін емес."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Тасымалдау мүмкін емес."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Қоңыраулар біріктірілмеді."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Қоңырауды қабылдамау мүмкін емес."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Қоңырау(лар)ды босату мүмкін емес."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Қоңырауларды ұстау мүмкін емес."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Құпия сөзді енгізу"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Қоңырау шектеу параметрлері"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Қоңырау шектеу параметрлерінің барлығын өшіру қажет пе?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Желі бос емес. Кейінірек қайта қоңырау шалып көріңіз."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Қоңырау басқа нөмірге жіберілді."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Қоңырау басқа нөмірге бағытталды."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Қоңырау күту күйінде."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Қоңырау басқа нөмірге бағытталды."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Мәжіліс қоңырауына қосылуда."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Күтудегі қоңырау жалғанды."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Қоңырау шалу мүмкін емес, себебі қазіргі уақытта құрылғыға қолжетімді қызметтер тексерілуде."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Қоңырау шалу мүмкін емес, себебі басқа шығыс қоңырау орындалуда."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Қоңырау шалу мүмкін емес, себебі жауап берілмеген кіріс қоңырау бар. Кіріс қоңырауға жауап беріңіз немесе оны өшіріңіз."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Қоңырау шалу мүмкін емес, себебі қоңырау шалу функциясы ro.telephony.disable-call жүйелік параметрі арқылы өшірілген."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Қоңырау шалу мүмкін емес, себебі екі қоңырау орындалуда. Жаңа қоңырауды бастау үшін олардың біреуін тоқтатыңыз немесе бір конференцияға қосыңыз."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> пайдалану үшін мобильді интернеттің қосылғанына көз жеткізіңіз. Оны мобильдік желі параметрлерінен өзгертуге болады."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> пайдалану үшін мобильді интернет пен деректер роумингінің қосылғанына көз жеткізіңіз. Оны мобильдік желі параметрлерінен өзгертуге болады."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> пайдалану үшін SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> картасында мобильді интернеттің қосылғанына көз жеткізіңіз. Оны мобильдік желі параметрлерінен өзгертуге болады."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> пайдалану үшін SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> картасында мобильді интернет пен деректер роумингінің қосылғанына көз жеткізіңіз. Оны мобильдік желі параметрлерінен өзгертуге болады."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Жабу"</string>
</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index c4619d8..18de5c0 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"កូដ USSD កំពុងដំណើរការ…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"បានបោះបង់កូដ MMI"</string>
<string name="cancel" msgid="5044513931633602634">"បោះបង់"</string>
- <string name="enter_input" msgid="1810529547726803893">"សារ USSD ត្រូវតែមានតួអក្សរចន្លោះ <xliff:g id="MIN_LEN">%d</xliff:g> និង <xliff:g id="MAX_LEN">%d</xliff:g> ។ សូមព្យាយាមម្ដងទៀត។"</string>
+ <string name="enter_input" msgid="1810529547726803893">"សារ USSD ត្រូវតែមានតួអក្សរចន្លោះ <xliff:g id="MIN_LEN">%1$d</xliff:g> និង <xliff:g id="MAX_LEN">%2$d</xliff:g> ។ សូមព្យាយាមម្ដងទៀត។"</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"គ្រប់គ្រងការហៅជាសន្និសីទ"</string>
<string name="ok" msgid="3811371167865772377">"យល់ព្រម"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"អូប៉ាល័រ"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"សារជាសំឡេង"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"សារជាសម្លេង (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"ការជូនដំណឹង"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"ការផ្សាយពេលមានអាសន្ន"</string>
<string name="call_settings" msgid="6112441768261754562">"កំណត់ការហៅ"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"របៀប 4G LTE ធ្វើឲ្យប្រសើរឡើង"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"ប្រើសេវាកម្ម LTE ដើម្បីធ្វើឲ្យសម្លេង និងការទំនាក់ទំនងផ្សេងទៀតប្រសើរឡើង (បានណែនាំ)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"ប្រើប្រាស់សេវាកម្ម 4G ដើម្បីកែលម្អសំឡេង និងការប្រាស្រ័យទាក់ទងផ្សេងៗ (បានណែនាំ)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"បានបើកទិន្នន័យ"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"អនុញ្ញាតឲ្យប្រើប្រាស់ទិន្នន័យ"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"ប្រយ័ត្ន"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"មិនអាចបន្តការហៅទូរសព្ទបានទេ។"</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"មិនអាចបំបែកការហៅបានទេ។"</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"មិនអាចផ្ទេរបានទេ។"</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"មិនអាចដាក់ការហៅទូរសព្ទបញ្ចូលគ្នាបានទេ។"</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"មិនអាចបដិសេធការហៅបានទេ។"</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"មិនអាចបញ្ចេញការហៅបានទេ។"</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"មិនអាចរង់ចាំការហៅទេ"</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"បញ្ចូលពាក្យសម្ងាត់"</string>
<string name="call_barring_settings" msgid="80766145008623645">"ការកំណត់ការរារាំងការហៅទូរសព្ទ"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"បិទដំណើរការនៃការកំណត់ការរារាំងការហៅទូរសព្ទទាំងអស់ដែរទេ?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"បណ្ដាញកំពុងរវល់។ សូមព្យាយាមការហៅទូរសព្ទរបស់អ្នកម្ដងទៀតនៅពេលក្រោយ។"</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"បានហៅទៅលេខផ្សេង។"</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"បានបញ្ជូនបន្តការហៅទូរសព្ទ។"</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"ការហៅកំពុងរង់ចាំ។"</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"បានបញ្ជូនបន្តការហៅទូរសព្ទ។"</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"កំពុងចូលរួមការហៅជាក្រុម។"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"ការហៅដែលបានរង់ចាំត្រូវបានផ្ដាច់។"</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"មិនអាចធ្វើការហៅទូរសព្ទបានទេ ដោយសារឧបករណ៍កំពុងទទួលសេវាកម្មនៅពេលនេះ។"</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"មិនអាចធ្វើការហៅទូរសព្ទបានទេ ដោយសារមានគេកំពុងហៅទូរសព្ទចេញរួចហើយ។"</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"មិនអាចធ្វើការហៅទូរសព្ទបានទេ ដោយសារមានការហៅទូរសព្ទចូលមួយមិនបានឆ្លើយ។ ឆ្លើយតប ឬបដិសេធការហៅទូរសព្ទចូល មុនពេលធ្វើការហៅទូរសព្ទថ្មីមួយទៀត។"</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"មិនអាចធ្វើការហៅទូរសព្ទបានទេ ដោយសារមានការហៅទូរសព្ទមួយត្រូវបានបិទតាមរយៈការប្រើប្រាស់លក្ខណៈប្រព័ន្ធ ro.telephony.disable-call ។"</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"មិនអាចធ្វើការហៅទូរសព្ទបានទេ ដោយសារមានការហៅទូរសព្ទពីរកំពុងដំណើរការរួចហើយ។ ផ្ដាច់ការហៅទូរសព្ទមួយ ឬបញ្ចូលការហៅទូរសព្ទទាំងពីរចូលគ្នាជាការប្រជុំមួយ មុននឹងធ្វើការហៅទូរសព្ទថ្មីមួយ។"</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"ដើម្បីប្រើប្រាស់ <xliff:g id="SUPP_SERVICE">%s</xliff:g> សូមប្រាកដថាទិន្នន័យទូរសព្ទចល័តត្រូវបានបើក។ អ្នកអាចផ្លាស់ប្ដូរជម្រើសនេះនៅក្នុងការកំណត់បណ្ដាញទូរសព្ទចល័ត។"</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"ដើម្បីប្រើប្រាស់ <xliff:g id="SUPP_SERVICE">%s</xliff:g> សូមប្រាកដថាទិន្នន័យទូរសព្ទចល័ត និងការរ៉ូមីងទិន្នន័យត្រូវបានបើក។ អ្នកអាចផ្លាស់ប្ដូរជម្រើសទាំងនេះនៅក្នុងការកំណត់បណ្ដាញទូរសព្ទចល័ត។"</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"ដើម្បីប្រើប្រាស់ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> សូមប្រាកដថាទិន្នន័យទូរសព្ទចល័តត្រូវបានបើកសម្រាប់ស៊ីម <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ។ អ្នកអាចផ្លាស់ប្ដូរជម្រើសនេះនៅក្នុងការកំណត់បណ្ដាញទូរសព្ទចល័ត។"</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"ដើម្បីប្រើប្រាស់ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> សូមប្រាកដថាទិន្នន័យទូរសព្ទចល័ត និងការរ៉ូមីងទិន្នន័យត្រូវបានបើកសម្រាប់ស៊ីម <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ។ អ្នកអាចផ្លាស់ប្ដូរជម្រើសទាំងនេះនៅក្នុងការកំណត់បណ្ដាញទូរសព្ទចល័ត។"</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"បដិសេធ"</string>
</resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 3bf0ad3..8c226c9 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD ಕೋಡ್ ಚಾಲನೆಯಲ್ಲಿದೆ…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI ಕೋಡ್ ರದ್ದು ಮಾಡಲಾಗಿದೆ"</string>
<string name="cancel" msgid="5044513931633602634">"ರದ್ದುಮಾಡಿ"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD ಸಂದೇಶದ ಅಕ್ಷರಗಳು <xliff:g id="MIN_LEN">%d</xliff:g> ಮತ್ತು <xliff:g id="MAX_LEN">%d</xliff:g> ನಡುವೆ ಇರಬೇಕು. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD ಸಂದೇಶದ ಅಕ್ಷರಗಳು <xliff:g id="MIN_LEN">%1$d</xliff:g> ಮತ್ತು <xliff:g id="MAX_LEN">%2$d</xliff:g> ನಡುವೆ ಇರಬೇಕು. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"ಕಾನ್ಫರೆನ್ಸ್ ಕರೆಯನ್ನು ನಿರ್ವಹಿಸಿ"</string>
<string name="ok" msgid="3811371167865772377">"ಸರಿ"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"ಸ್ಪೀಕರ್"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"ಧ್ವನಿಮೇಲ್"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"ಧ್ವನಿಮೇಲ್ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"ಅಧಿಸೂಚನೆಗಳು"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"ತುರ್ತು ಪ್ರಸಾರಗಳು"</string>
<string name="call_settings" msgid="6112441768261754562">"ಕರೆ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"ವರ್ಧಿಸಲಾದ 4G LTE ಮೋಡ್"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"ಧ್ವನಿ ಮತ್ತು ಇತರ ಸಂವಹನಗಳನ್ನು ಸುಧಾರಿಸಲು LTE ಸೇವೆಗಳನ್ನು ಬಳಸಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"ಧ್ವನಿ ಮತ್ತು ಇತರ ಸಂವಹನಗಳನ್ನು ಸುಧಾರಿಸಲು 4G ಸೇವೆಗಳನ್ನು ಬಳಸಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"ಡೇಟಾ ಸಕ್ರಿಯಗೊಂಡಿದೆ"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"ಡೇಟಾ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸಿ"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"ಎಚ್ಚರಿಕೆ"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"ಕರೆಯನ್ನು ಮುಂದುವರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"ಕರೆಯನ್ನು ಪ್ರತ್ಯೇಕಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"ವರ್ಗಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"ಕರೆಗಳನ್ನು ವಿಲೀನಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"ಕರೆಯನ್ನು ತಿರಸ್ಕರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ಕರೆ(ಗಳು) ಬಿಡುಗಡೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ಕರೆಗಳನ್ನು ಹೋಲ್ಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"ಪಾಸ್ವರ್ಡ್ ನಮೂದಿಸಿ"</string>
<string name="call_barring_settings" msgid="80766145008623645">"ಕರೆ ನಿಷೇಧಿಸುವಿಕೆ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"ಎಲ್ಲಾ ಕರೆ ನಿಷೇಧಿಸುವಿಕೆ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದೇ?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"ನೆಟ್ವರ್ಕ್ ಕಾರ್ಯನಿರತವಾಗಿದೆ ನಿಮ್ಮ ಕರೆಯನ್ನು ಪುನಃ ನಂತರ ಪ್ರಯತ್ನಿಸಿ"</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"ಕರೆ ಫಾರ್ವರ್ಡ್ ಮಾಡಲಾಗಿದೆ."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"ಕರೆಯನ್ನು ಫಾರ್ವರ್ಡ್ ಮಾಡಲಾಗಿದೆ."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"ಕರೆಯು ನಿರೀಕ್ಷಣೆಯಲ್ಲಿದೆ."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"ಫಾರ್ವರ್ಡ್ ಮಾಡಲಾದ ಕರೆ."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"ಕಾನ್ಫರೆನ್ಸ್ ಕರೆಗೆ ಸೇರಿಕೊಳ್ಳುತ್ತಿದ್ದಾರೆ."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"ಹೋಲ್ಡ್ ಮಾಡಿದ ಕರೆಯನ್ನು ಕಡಿತಗೊಳಿಸಲಾಗಿದೆ."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"ಪ್ರಸ್ತುತವಾಗಿ ಸಾಧನಕ್ಕೆ ಸೇವೆಯನ್ನು ಒದಗಿಸುತ್ತಿರುವುದರಿಂದ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"ಹೊಸ ಕರೆಯನ್ನು ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ ಏಕೆಂದರೆ ಮತ್ತೊಂದು ಕರೆಯನ್ನು ಈಗಾಗಲೇ ಮಾಡಲಾಗುತ್ತಿದೆ."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"ಉತ್ತರಿಸದೇ ಒಳಬರುವ ಕರೆ ಬರುತ್ತಿರುವುದರಿಂದ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಹೊಸ ಕರೆಯನ್ನು ಮಾಡುವ ಮೊದಲು ಕರೆಗೆ ಉತ್ತರ ನೀಡಿ ಅಥವಾ ತಿರಸ್ಕರಿಸಿ."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"ಕರೆ ವೈಶಿಷ್ಟ್ಯವನ್ನು ro.telephony.disable-call ಸಿಸ್ಟಂ ಗುಣಲಕ್ಷಣದಿಂದ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿರುತ್ತದೆ, ಆದ್ದರಿಂದ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"ಈಗಾಗಲೇ ಎರಡು ಕರೆಗಳು ಪ್ರಗತಿಯಲ್ಲಿರುವುದರಿಂದ, ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.ಒಂದು ಕರೆಯ ಸಂಪರ್ಕವನ್ನು ಕಡಿತಗೊಳಿಸಿ ಅಥವಾ ನೀವು ಹೊಸ ಕರೆಯನ್ನು ಮಾಡುವ ಮೊದಲು ಎರಡು ಕರೆಗಳನ್ನು ಒಂದೇ ಕಾನ್ಫರೆನ್ಸ್ನಲ್ಲಿ ವಿಲೀನಗೊಳಿಸಿ."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ಅನ್ನು ಬಳಸಲು, ಮೊಬೈಲ್ ಡೇಟಾ ಆನ್ ಆಗಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ನೀವು ಇದನ್ನು ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ಅನ್ನು ಬಳಸಲು, ಮೊಬೈಲ್ ಡೇಟಾ ಮತ್ತು ಡೇಟಾ ರೋಮಿಂಗ್ ಆನ್ ಆಗಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ನೀವು ಇದನ್ನು ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ಅನ್ನು ಬಳಸಲು, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ಸಿಮ್ಗಾಗಿ ಮೊಬೈಲ್ ಡೇಟಾ ಆನ್ ಆಗಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ನೀವು ಇದನ್ನು ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ಅನ್ನು ಬಳಸಲು, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ಸಿಮ್ ಗಾಗಿ ಮೊಬೈಲ್ ಡೇಟಾ ಮತ್ತು ಡೇಟಾ ರೋಮಿಂಗ್ ಆನ್ ಆಗಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ನೀವು ಇದನ್ನು ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"ವಜಾಗೊಳಿಸಿ"</string>
</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 59ee93d..cacea12 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD 코드 실행 중..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI 코드 취소됨"</string>
<string name="cancel" msgid="5044513931633602634">"취소"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD 메시지는 <xliff:g id="MIN_LEN">%d</xliff:g>~<xliff:g id="MAX_LEN">%d</xliff:g>자 사이여야 합니다. 다시 시도하세요."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD 메시지는 <xliff:g id="MIN_LEN">%1$d</xliff:g>~<xliff:g id="MAX_LEN">%2$d</xliff:g>자 사이여야 합니다. 다시 시도하세요."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"다자간 통화 관리"</string>
<string name="ok" msgid="3811371167865772377">"확인"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"스피커"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"음성사서함"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"음성사서함(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"알림"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"긴급 방송"</string>
<string name="call_settings" msgid="6112441768261754562">"통화 설정"</string>
@@ -131,7 +137,7 @@
<string name="stk_cc_ss_to_ussd_error" msgid="6095812685884176176">"SS 요청이 USSD 요청으로 변경됨"</string>
<string name="stk_cc_ss_to_ss_error" msgid="7920654012697945858">"새 SS 요청으로 변경됨"</string>
<string name="stk_cc_ss_to_dial_video_error" msgid="3873905132181743781">"SS 요청이 화상 통화로 변경됨"</string>
- <string name="fdn_check_failure" msgid="18200614306525434">"휴대전화 앱의 발신 제한 번호 설정을 사용하기 때문에 일부 통화 관련 기능이 작동되지 않습니다."</string>
+ <string name="fdn_check_failure" msgid="18200614306525434">"전화 앱의 발신 제한 번호 설정을 사용하기 때문에 일부 통화 관련 기능이 작동되지 않습니다."</string>
<string name="radio_off_error" msgid="2304459933248513376">"이러한 설정을 보려면 무선을 사용해야 합니다."</string>
<string name="close_dialog" msgid="2365884406356986917">"확인"</string>
<string name="enable" msgid="7248657275000173526">"사용"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"향상된 4G LTE 모드"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"LTE 서비스를 사용하여 음성 및 기타 통신을 개선할 수 있습니다(권장)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"4G 서비스를 사용하여 음성 및 기타 통신을 개선할 수 있습니다(권장)."</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"데이터 사용"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"데이터 사용 허용"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"주의"</string>
@@ -484,7 +494,7 @@
<string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"알 수 없는 음성사서함 번호"</string>
<string name="notification_network_selection_title" msgid="4224455487793492772">"서비스 불가"</string>
<string name="notification_network_selection_text" msgid="7550380440576731104">"선택한 네트워크(<xliff:g id="OPERATOR_NAME">%s</xliff:g>)를 사용할 수 없음"</string>
- <string name="incall_error_power_off" product="watch" msgid="2007450435656211658">"전화를 걸려면 모바일 네트워크를 사용 설정하고 비행기 모드 또는 배터리 세이버 모드를 사용 중지하세요."</string>
+ <string name="incall_error_power_off" product="watch" msgid="2007450435656211658">"전화를 걸려면 모바일 네트워크를 사용 설정하고 비행기 모드 또는 절전 모드를 사용 중지하세요."</string>
<string name="incall_error_power_off" product="default" msgid="2947938060513306698">"전화를 걸려면 비행기 모드를 사용 중지하세요."</string>
<string name="incall_error_power_off_wfc" msgid="8711428920632416575">"전화를 걸려면 비행기 모드를 사용 중지하거나 무선 네트워크에 연결하세요."</string>
<string name="incall_error_ecm_emergency_only" msgid="738708660612388692">"일반 전화를 걸려면 긴급 콜백 모드를 해제하세요."</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"통화를 계속할 수 없습니다."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"통화를 분리할 수 없습니다."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"통화를 전환할 수 없습니다."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"통화를 병합할 수 없습니다."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"통화를 거절할 수 없습니다."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"통화를 끊을 수 없습니다."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"통화를 보류할 수 없습니다."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"비밀번호 입력"</string>
<string name="call_barring_settings" msgid="80766145008623645">"착발신 제한 설정"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"모든 착발신 제한 설정을 비활성화하시겠습니까?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"네트워크 사용량이 많습니다. 나중에 다시 전화해 주세요."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"통화가 착신전환되었습니다."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"통화가 착신전환되었습니다."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"통화 대기 중입니다."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"착신전환된 통화입니다."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"다자간 통화에 참여합니다."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"통화 보류가 해제되었습니다."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"현재 기기를 프로비저닝하는 중이므로 전화를 걸 수 없습니다."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"이미 다른 발신 전화에서 다이얼 중이므로 전화를 걸 수 없습니다."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"받지 않은 수신 전화가 있으므로 전화를 걸 수 없습니다. 새로 전화를 걸기 전에 수신 전화를 받거나 거절하세요."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"ro.telephony.disable-call 시스템 속성을 사용하여 통화 기능이 사용 중지되었으므로 전화를 걸 수 없습니다."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"이미 진행 중인 두 건의 통화가 있으므로 전화를 걸 수 없습니다. 새로 전화를 걸기 전에 통화 중 하나를 연결 해제하거나 두 통화를 다자간 통화로 병합하세요."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>을(를) 사용하려면 모바일 데이터가 사용 설정되어 있는지 확인하세요. 이 설정은 모바일 네트워크 설정에서 변경할 수 있습니다."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>을(를) 사용하려면 모바일 데이터 및 데이터 로밍이 사용 설정되어 있는지 확인하세요. 이 설정은 모바일 네트워크 설정에서 변경할 수 있습니다."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>을(를) 사용하려면 SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>에 모바일 데이터가 사용 설정되어 있는지 확인하세요. 이 설정은 모바일 네트워크 설정에서 변경할 수 있습니다."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>을(를) 사용하려면 SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>에 모바일 데이터 및 데이터 로밍이 사용 설정되어 있는지 확인하세요. 이 설정은 모바일 네트워크 설정에서 변경할 수 있습니다."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"닫기"</string>
</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 728b1d9..13e083c 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -30,7 +30,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD коду иштеп жатат…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI код жокко чыгарылды"</string>
<string name="cancel" msgid="5044513931633602634">"Жокко чыгаруу"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD билдирүүсү <xliff:g id="MIN_LEN">%d</xliff:g> - <xliff:g id="MAX_LEN">%d</xliff:g> белгиден турушу керек. Сураныч, кайрадан аракеттениңиз."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD билдирүүсү <xliff:g id="MIN_LEN">%1$d</xliff:g> - <xliff:g id="MAX_LEN">%2$d</xliff:g> белгиден турушу керек. Сураныч, кайрадан аракеттениңиз."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Конференц-чалууну башкаруу"</string>
<string name="ok" msgid="3811371167865772377">"Жарайт"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Катуу сүйлөткүч"</string>
@@ -78,6 +78,12 @@
<string name="voicemail" msgid="8693759337917898954">"Үн почтасы"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Үн почтасы (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"ҮП:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Эскертмелер"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Өзгөчө кырдаал тууралуу кулактандыруу"</string>
<string name="call_settings" msgid="6112441768261754562">"Чалуу жөндөөлөрү"</string>
@@ -239,6 +245,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Жакшыртылган 4G LTE режими"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Үн жана башка байлнштрд жакшыртуу үчүн LTE кызматтарын пайдаланыңыз (сунушталат)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Үн жана башка байланыштарды жакшыртуу үчүн 4G кызматтарын пайдаланыңыз (сунушталат)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Дайындар иштетилсин"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Дайындарды пайдаланууга уруксат берүү"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Көңүл буруңуз"</string>
@@ -502,8 +512,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Чалуу улантылбай жатат"</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Чалуу бөлүнбөй жатат."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Өткөрүлбөй жатат."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Чалуулар бириктирилбей жатат."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Чалуу четке кагылбай жатат."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Чалуу(лар) бошотулбай жатат."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Чалууну кармап туруу мүмкүн эмес."</string>
@@ -749,6 +758,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Сырсөздү киргизиңиз"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Чалууларга тыюу салуу функциясынын жөндөөлөрү"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Чалууларга тыюу салуу функциясынын жөндөөлөрү өчүрүлсүнбү?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Тармак бош эмес. Кийинчерээк кайра чалыңыз."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Чалуу кабыл алынган жок."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Чалуу багытталды."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Чалуу күтүү режиминде."</string>
@@ -766,8 +776,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Чалуу башка номерден багытталды."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Конференц-чалууга кошулуу."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Чалуу күтүү режиминен чыгарылды."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Чалуу аткарылбайт, анткени түзмөк учурда даярдалып жатат."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Чалуу аткарылбайт, анткени башка чыгуучу чалуу терилүүдө."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Чалуу аткарылбайт, анткени кирүүчү чалууга жооп берилген жок. Жаңы чалуу аткаруудан мурун кирүүчү чалууга жооп берип же четке кагыңыз."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Чалуу аткарылбайт, анткени чалуу ro.telephony.disable-call тутуму аркылуу өчүрүлгөн."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Чалуу аткарылбайт, анткени эки чалуу аткарылууда. Бир чалууну өчүрүңүз же аларды конференцияга бириктириңиз."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> колдонуу үчүн мобилдик Интернет күйгүзүлгөнүн текшериңиз. Муну мобилдик тармак жөндөөлөрүнөн өзгөртсөңүз болот."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> колдонуу үчүн мобилдик Интернет жана Интернет-роуминг күйгүзүлгөнүн текшериңиз. Муну мобилдик тармак жөндөөлөрүнөн өзгөртсөңүз болот."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> колдонуу үчүн <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM-картасында мобилдик Интернет күйгүзүлгөнүн текшериңиз. Муну мобилдик тармак жөндөөлөрүнөн өзгөртсөңүз болот."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> колдонуу үчүн <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM-картасында мобилдик Интернет жана Интернет-роуминг күйгүзүлгөнүн текшериңиз. Муну мобилдик тармак жөндөөлөрүнөн өзгөртсөңүз болот."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Жабуу"</string>
</resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 63d3ca9..b7aef0c 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"ກຳລັງແລ່ນລະຫັດ USSD..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"ຍົກເລີກລະຫັດ MMI ແລ້ວ"</string>
<string name="cancel" msgid="5044513931633602634">"ຍົກເລີກ"</string>
- <string name="enter_input" msgid="1810529547726803893">"ຂໍ້ຄວາມ USSD ຕ້ອງມີໂຕອັກສອນລະຫວ່າງ <xliff:g id="MIN_LEN">%d</xliff:g> ແລະ <xliff:g id="MAX_LEN">%d</xliff:g> ໂຕ. ກະລຸນາລອງໃໝ່ອີກຄັ້ງ."</string>
+ <string name="enter_input" msgid="1810529547726803893">"ຂໍ້ຄວາມ USSD ຕ້ອງມີໂຕອັກສອນລະຫວ່າງ <xliff:g id="MIN_LEN">%1$d</xliff:g> ແລະ <xliff:g id="MAX_LEN">%2$d</xliff:g> ໂຕ. ກະລຸນາລອງໃໝ່ອີກຄັ້ງ."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"ຈັດການການປະຊຸມສາຍ"</string>
<string name="ok" msgid="3811371167865772377">"ຕົກລົງ"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"ລຳໂພງ"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"ຂໍ້ຄວາມສຽງ"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"ຂໍ້ຄວາມສຽງ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"ການແຈ້ງເຕືອນ"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"ການອອກອາກາດສຸກເສີນ"</string>
<string name="call_settings" msgid="6112441768261754562">"ການຕັ້ງຄ່າການໂທ"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"ໂໝດ Enhanced 4G LTE"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"ໃຊ້ການບໍລິການ LTE ເພື່ອປັບປຸງສຽງ ແລະການບໍລິການອື່ນໆ (ແນະນຳ)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"ໃຊ້ການບໍລິການ 4G ເພື່ອປັບປຸງສຽງ ແລະ ການສື່ສານອື່ນໆ (ແນະນຳ)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"ເປີດໃຊ້ເດຕາ"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"ອະນຸຍາດໃຫ້ໃຊ້ຂໍ້ມູນ"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"ກະລຸນາຮັບຊາບ"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"ບໍ່ສາມາດສືບຕໍ່ການໂທໄດ້."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"ບໍ່ສາມາດແຍກສາຍໂທໄດ້."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"ບໍ່ສາມາດໂອນໄດ້."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"ບໍ່ສາມາດຮວມສາຍໄດ້."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"ບໍ່ສາມາດປະຕິເສດສາຍໂທໄດ້."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ບໍ່ສາມາດປ່ອຍສາຍໂທໄດ້."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ບໍ່ສາມາດພັກສາຍໄດ້."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"ໃສ່ລະຫັດຜ່ານ"</string>
<string name="call_barring_settings" msgid="80766145008623645">"ການຕັ້ງຄ່າການຍົກເລີກການໂທ"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"ປິດການຕັ້ງຄ່າການຍົກເລີກການໂທທັງໝົດບໍ?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"ເຄືອຂ່າຍບໍ່ຫວ່າງ. ກະລຸນາລອງໂທໃໝ່ໃນພາຍຫຼັງ."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"ໂອນສາຍມາແລ້ວ."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"ໂອນສາຍໄປແລ້ວ."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"ກຳລັງລໍຖ້າສາຍ."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"ໂອນສາຍແລ້ວ."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"ກຳລັງເຂົ້າຮ່ວມການປະຊຸມສາຍ."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"ວາງສາຍທີ່ພັກໄວ້ແລ້ວ."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"ບໍ່ສາມາດໂທໄດ້ເນື່ອງຈາກຕອນນີ້ອຸປະກອນກຳລັງຖືກຈັດຫາມາຢູ່."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"ບໍ່ສາມາດໂທອອກໄດ້ເນື່ອງຈາກກຳລັງມີສາຍໂທອອກຢູ່ກ່ອນແລ້ວ."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"ບໍ່ສາມາດໂທອອກໄດ້ເນື່ອງຈາກມີສາຍທີ່ກຳລັງໂທເຂົ້າມາທີ່ຍັງບໍ່ໄດ້ຮັບຢູ່. ກະລຸນາຮັບສາຍ ຫຼື ວາງສາຍທີ່ກຳລັງໂທເຂົ້າມາກ່ອນຈະໂທໃໝ່."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"ບໍ່ສາມາດໂທໄດ້ເນື່ອງຈາກມີການປິດການໂທໂດຍໃຊ້ຄຸນສົມບັດລະບົບ ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"ບໍ່ສາມາດໂທໄດ້ເນື່ອງຈາກມີສອງສາຍກຳລັງໂທຢູ່. ກະລຸນາຕັດການເຊື່ອມຕໍ່ສາຍໃດໜຶ່ງອອກ ຫຼື ຮວມສາຍເປັນການປະຊຸມສາຍກ່ອນໂທໃໝ່."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"ເພື່ອໃຊ້ <xliff:g id="SUPP_SERVICE">%s</xliff:g>, ກະລຸນາກວດສອບວ່າເປີດໃຊ້ອິນເຕີເນັດມືຖືແລ້ວ. ທ່ານສາມາດປ່ຽນໄດ້ໃນການຕັ້ງຄ່າເຄືອຂ່າຍ."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"ເພື່ອໃຊ້ <xliff:g id="SUPP_SERVICE">%s</xliff:g>, ກະລຸນາກວດສອບວ່າເປີດໃຊ້ອິນເຕີເນັດມືຖື ແລະ ການໂຣມມິງອິນເຕີເນັດແລ້ວ. ທ່ານສາມາດປ່ຽນໄດ້ໃນການຕັ້ງຄ່າເຄືອຂ່າຍ."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"ເພື່ອໃຊ້ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, ກະລຸນາກວດສອບວ່າເປີດໃຊ້ອິນເຕີເນັດມືຖືສຳລັບຊິມ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ແລ້ວ. ທ່ານສາມາດປ່ຽນໄດ້ໃນການຕັ້ງຄ່າເຄືອຂ່າຍ."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"ເພື່ອໃຊ້ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, ກະລຸນາກວດສອບວ່າເປີດໃຊ້ອິນເຕີເນັດມືຖື ແລະ ການໂຣມມິງອິນເຕີເນັດສຳລັບຊິມ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> ແລ້ວ. ທ່ານສາມາດປ່ຽນໄດ້ໃນການຕັ້ງຄ່າເຄືອຂ່າຍ."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"ປິດໄວ້"</string>
</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 46749b5..b7dc1bc 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Paleistas USSD kodas..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Atšauktas MMI kodas"</string>
<string name="cancel" msgid="5044513931633602634">"Atšaukti"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD pranešimą gali sudaryti nuo <xliff:g id="MIN_LEN">%d</xliff:g> iki <xliff:g id="MAX_LEN">%d</xliff:g> simbol. Bandykite dar kartą."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD pranešimą gali sudaryti nuo <xliff:g id="MIN_LEN">%1$d</xliff:g> iki <xliff:g id="MAX_LEN">%2$d</xliff:g> simbol. Bandykite dar kartą."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Valdyti konferencinį skambutį"</string>
<string name="ok" msgid="3811371167865772377">"Gerai"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Garsiakalbis"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Balso paštas"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Balso paštas (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"BP:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Pranešimai"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Avarinės transliacijos"</string>
<string name="call_settings" msgid="6112441768261754562">"Skambinimo nustatymai"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Patobulintas 4G LTE režimas"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Naudoti LTE paslaugas „Voice“ ir kitiems ryšiams patobulinti (rekomenduojama)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Naudoti 4G paslaugas „Voice“ ir kitiems ryšiams patobulinti (rekomenduojama)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Duomenys įgalinti"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Leisti naudoti duomenis"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Dėmesio"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Nepavyko pratęsti skambučio."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Nepavyko atskirti skambučio."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Nepavyko peradresuoti."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Nepavyko sujungti skambučių."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Nepavyko atmesti skambučio."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nepavyko atjungti skamb."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Negalima sulaikyti skambučių."</string>
@@ -750,6 +759,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Įveskite slaptažodį"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Skambučių blokavimo nustatymai"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Išaktyvinti visus skambučių blokavimo nustatymus?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Tinklas užimtas. Vėliau pabandykite dar kartą paskambinti."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Skambutis nukreiptas."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Skambutis peradresuojamas."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Laukiantis skambutis."</string>
@@ -767,8 +777,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Peradresuotas skambutis."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Prisijungiama prie konferencinio skambučio."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Sulaikytas skambutis nutrauktas."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Negalite skambinti, nes įrenginys šiuo metu yra rengiamas naudoti."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Negalite skambinti, nes šiuo metu vykdomas kitas siunčiamasis skambutis."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Negalite skambinti, nes yra neatsakytas gaunamasis skambutis. Atsiliepkite arba atmeskite gaunamąjį skambutį prieš pradėdami naują."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Negalite skambinti, nes skambinimo funkcija išjungta naudojant sistemos ypatybę „ro.telephony.disable-call“."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Negalite skambinti, nes jau dalyvaujate dviejuose skambučiuose. Užbaikite vieną iš skambučių arba sujunkite juos į konferenciją prieš pradėdami naują skambutį."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Norėdami naudoti paslaugą (<xliff:g id="SUPP_SERVICE">%s</xliff:g>), įsitikinkite, kad mobiliojo ryšio duomenys įjungti. Tai galite pakeisti apsilankę mobiliojo ryšio tinklo nustatymuose."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Norėdami naudoti paslaugą (<xliff:g id="SUPP_SERVICE">%s</xliff:g>), įsitikinkite, kad mobiliojo ryšio duomenys ir tarptinklinis duomenų ryšys įjungti. Tai galite pakeisti apsilankę mobiliojo ryšio nustatymuose."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Norėdami naudoti paslaugą (<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>0, įsitikinkite, kad <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM kortelės mobiliojo ryšio duomenys įjungti. Tai galite pakeisti apsilankę mobiliojo ryšio tinklo nustatymuose."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Norėdami naudoti paslaugą (<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>), įsitikinkite, kad <xliff:g id="SIM_NUMBER">%2$d</xliff:g> SIM kortelės mobiliojo ryšio duomenys ir tarptinklinis duomenų ryšys įjungti. Tai galite pakeisti apsilankę mobiliojo ryšio nustatymuose."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Atsisakyti"</string>
</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 1e0fe05..08d2ec2 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD kods darbojas…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI kods ir atcelts"</string>
<string name="cancel" msgid="5044513931633602634">"Atcelt"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD ziņojumam ir jābūt <xliff:g id="MIN_LEN">%d</xliff:g>–<xliff:g id="MAX_LEN">%d</xliff:g> rakstzīmes garam. Lūdzu, mēģiniet vēlreiz."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD ziņojumam ir jābūt <xliff:g id="MIN_LEN">%1$d</xliff:g>–<xliff:g id="MAX_LEN">%2$d</xliff:g> rakstzīmes garam. Lūdzu, mēģiniet vēlreiz."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Pārvaldīt konferences zvanu"</string>
<string name="ok" msgid="3811371167865772377">"Labi"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Skaļrunis"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Balss pasts"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Balss pasts (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"BP:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Paziņojumi"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Ārkārtas paziņojumi"</string>
<string name="call_settings" msgid="6112441768261754562">"Zvanu iestatījumi"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Uzlabota 4G LTE režīms"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Lietojiet LTE pakalpojumus, lai uzlabotu balss un cita veida saziņu (ieteicams)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Lietojiet 4G pakalpojumus, lai uzlabotu balss un cita veida saziņu (ieteicams)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Dati ir iespējoti."</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Atļaut datu izmantošanu"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Uzmanību!"</string>
@@ -273,9 +283,7 @@
<string name="throttle_status_subtext" msgid="1657318943142085170">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) no <xliff:g id="USED_2">%3$s</xliff:g> perioda maksimuma\nNākamais periods sākas pēc <xliff:g id="USED_3">%4$d</xliff:g> dienas(-ām) (<xliff:g id="USED_4">%5$s</xliff:g>)"</string>
<string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) no <xliff:g id="USED_2">%3$s</xliff:g> perioda maksimuma"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g> maksimums ir pārsniegts\nDatu ātrums ir samazināts līdz <xliff:g id="USED_1">%2$d</xliff:g> Kb/s."</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
- <skip />
+ <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ no cikla ir pagājis(-uši)\nNākamais periods sākas pēc <xliff:g id="USED_1">%2$d</xliff:g> dienas(-ām) (<xliff:g id="USED_2">%3$s</xliff:g>)"</string>
<string name="throttle_rate_subtext" msgid="2149102656120726855">"Datu ātrums tiek samazināts līdz <xliff:g id="USED">%1$d</xliff:g> Kb/s, ja ir pārsniegts datu lietojuma ierobežojums."</string>
<string name="throttle_help_subtext" msgid="5217706521499010816">"Papildinformācija par mobilo sakaru operatora mobilā tīkla datu lietošanas politiku"</string>
<string name="cell_broadcast_sms" msgid="5584192824053625842">"Šūnu apraides īsziņa"</string>
@@ -501,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Nevar atsākt zvanu."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Nevar nošķirt zvanu."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Nevar pāradresēt."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Nevar apvienot zvanus."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Nevar noraidīt zvanu."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nevar pārtraukt zvanu(-us)."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Nevar aizturēt zvanus."</string>
@@ -750,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Ievadiet paroli"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Zvanu aizliegšanas iestatījumi"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Vai deaktivizēt visus zvanu aizliegšanas iestatījumus?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Tīkls ir aizņemts. Lūdzu, vēlāk mēģiniet zvanīt vēlreiz."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Zvans novirzīts."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Zvans pāradresēts."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Notiek zvana gaidīšana."</string>
@@ -767,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Pāradresēts zvans."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Notiek pievienošanās konferences zvanam."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Tika atvienots aizturēts zvans."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Nevar veikt zvanu, jo pašlaik tiek veikts ierīces nodrošināšanas process."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Nevar veikt zvanu, jo jau tiek sastādīts numurs citam izejošajam zvanam."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Nevar veikt zvanu, jo ir neatbildēts ienākošais zvans. Pirms jauna zvana veikšanas atbildiet uz ienākošo zvanu vai noraidiet to."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Nevar veikt zvanu, jo zvanīšana ir atspējota, izmantojot sistēmas rekvizītu ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Nevar veikt zvanu, jo pašlaik jau notiek divi zvani. Pirms jauna zvana veikšanas pārtrauciet vienu no pašreizējiem zvaniem vai apvienojiet tos konferences zvanā."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Lai izmantotu pakalpojumu <xliff:g id="SUPP_SERVICE">%s</xliff:g>, jāieslēdz mobilie dati. Tos var ieslēgt mobilā tīkla iestatījumos."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Lai izmantotu pakalpojumu <xliff:g id="SUPP_SERVICE">%s</xliff:g>, jāieslēdz mobilie dati un datu viesabonēšana. Tos var ieslēgt mobilā tīkla iestatījumos."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Lai izmantotu pakalpojumu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, jāieslēdz mobilie dati SIM kartei <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Tos var ieslēgt mobilā tīkla iestatījumos."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Lai izmantotu pakalpojumu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, jāieslēdz mobilie dati un datu viesabonēšana SIM kartei <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Tos var ieslēgt mobilā tīkla iestatījumos."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Nerādīt"</string>
</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 8eca256..01974ed 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD кодот се извршува..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI кодот е откажан"</string>
<string name="cancel" msgid="5044513931633602634">"Откажи"</string>
- <string name="enter_input" msgid="1810529547726803893">"Пораката на USSD мора да биде меѓу <xliff:g id="MIN_LEN">%d</xliff:g> и <xliff:g id="MAX_LEN">%d</xliff:g> знаци. Обидете се повторно."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Пораката на USSD мора да биде меѓу <xliff:g id="MIN_LEN">%1$d</xliff:g> и <xliff:g id="MAX_LEN">%2$d</xliff:g> знаци. Обидете се повторно."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Конференциски повик"</string>
<string name="ok" msgid="3811371167865772377">"Во ред"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Звучник"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Говорна пошта"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Говорна пошта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"ГП:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Известувања"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Итни емитувања"</string>
<string name="call_settings" msgid="6112441768261754562">"Поставки на повик"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Режим на подобрени 4G LTE"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Користете ги услугите на LTE за да ја подобрите гласовната и другите видови комуникација (препорачано)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Користете ги услугите 4G за да ја подобрите гласовната и другите видови комуникација (препорачано)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Податоците се овозможени"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Дозволи користење интернет"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Внимание"</string>
@@ -273,13 +283,9 @@
<!-- String.format failed for translation -->
<!-- no translation found for throttle_status_subtext (1657318943142085170) -->
<skip />
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
- <skip />
+ <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<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="7492763592720107737">"<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 (7732763021560399960) -->
- <skip />
+ <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<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="2149102656120726855">"Преносот на податоци се сведува на <xliff:g id="USED">%1$d</xliff:g> кб/с ако се надмине границата на потрошен интернет"</string>
<string name="throttle_help_subtext" msgid="5217706521499010816">"Повеќе информации за политиката на користање податоци на мобилната мрежа на вашиот оператор"</string>
<string name="cell_broadcast_sms" msgid="5584192824053625842">"SMS за емитување од мобилен"</string>
@@ -505,8 +511,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Не може да се продолжи повикот."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Не може да оддели повик."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Не може да пренесе."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Не може да се спојат повиците."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Не може да отфрли повик."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Не може да реализира повик(ци)."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Не може да се задржат повици."</string>
@@ -752,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Внесете лозинка"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Поставки за забрана на повици"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Да се деактивираат сите поставки за забрана на повици?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Мрежата е зафатена. Обидете се да повикате повторно подоцна."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Повикот е пренасочен."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Повикот е проследен."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Повик на чекање."</string>
@@ -769,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Проследен повик."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Се придружувате на конференциски повик."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Повикот на чекање е прекинат."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Не може да се воспостави повик затоа што уредот се подготвува во моментов."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Не може да се воспостави повик затоа што веќе се бира друг појдовен повик."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Не може да се воспостави повик затоа што има неодговорен дојдовен повик. Одговорете или одбијте го дојдовниот повик пред воспоставувањето на новиот повик."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Не може да се воспостави повик затоа што повикувањето е оневозможено со системското својство ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Не може да се воспостави повик затоа што два повика веќе се во тек. Исклучете го едниот од повиците или спојте ги во конференциски повик пред да воспоставите нов повик."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"За користење <xliff:g id="SUPP_SERVICE">%s</xliff:g>, уверете се дека мобилниот интернет е вклучен. Тоа може да го промените во поставките за мобилна мрежа."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"За користење <xliff:g id="SUPP_SERVICE">%s</xliff:g>, уверете се дека мобилниот интернет и интернет роамингот се вклучени. Овие може да ги промените во поставките за мобилна мрежа."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"За користење <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, уверете се дека мобилниот интернет е вклучен за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Тоа може да го промените во поставките за мобилна мрежа."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"За користење <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, уверете се дека мобилниот интернет и интернет роамингот се вклучени за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Овие може да ги промените во поставките за мобилна мрежа."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Отфрли"</string>
</resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 5091d07..3e434fa 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD കോഡ് പ്രവർത്തിക്കുന്നു…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI കോഡ് റദ്ദാക്കി"</string>
<string name="cancel" msgid="5044513931633602634">"റദ്ദാക്കുക"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD സന്ദേശങ്ങൾ <xliff:g id="MIN_LEN">%d</xliff:g> മുതൽ <xliff:g id="MAX_LEN">%d</xliff:g> വരെ പ്രതീകങ്ങൾക്കിടയിലായിരിക്കണം. വീണ്ടും ശ്രമിക്കുക."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD സന്ദേശങ്ങൾ <xliff:g id="MIN_LEN">%1$d</xliff:g> മുതൽ <xliff:g id="MAX_LEN">%2$d</xliff:g> വരെ പ്രതീകങ്ങൾക്കിടയിലായിരിക്കണം. വീണ്ടും ശ്രമിക്കുക."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"കോൺഫറൻസ് കോൾ നിയന്ത്രിക്കുക"</string>
<string name="ok" msgid="3811371167865772377">"ശരി"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"സ്പീക്കർ"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"വോയ്സ് മെയില്"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"ശബ്ദമെയിൽ(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"അറിയിപ്പുകൾ"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"അടിയന്തര പ്രക്ഷേപണങ്ങൾ"</string>
<string name="call_settings" msgid="6112441768261754562">"കോൾ ക്രമീകരണങ്ങൾ"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"മെച്ചപ്പെടുത്തിയ 4G LTE മോഡ്"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"വോയ്സ്, മറ്റ് ആശയവിനിമയങ്ങൾ (ശുപാർശിതം) എന്നിവ മികച്ചതാക്കുന്നതിന് LTE സേവനങ്ങൾ ഉപയോഗിക്കുക"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"വോയ്സ്, മറ്റ് ആശയവിനിമയങ്ങൾ (നിർദ്ദേശിതം) എന്നിവ മികച്ചതാക്കുന്നതിന് 4G സേവനങ്ങൾ ഉപയോഗിക്കുക"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"ഡാറ്റ പ്രവർത്തനക്ഷമമാക്കി"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"ഡാറ്റ ഉപയോഗം അനുവദിക്കുക"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"ശ്രദ്ധിക്കുക"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"കോൾ പുനരാരംഭിക്കാനാവില്ല."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"കോൾ വേർതിരിക്കാനാവില്ല."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"കൈമാറ്റം ചെയ്യാനാവില്ല."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"കോളുകൾ ലയിപ്പിക്കാനായില്ല"</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"കോൾ നിരസിക്കാനാവില്ല."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"കോൾ (കോളുകൾ) വിളിക്കാനാവില്ല."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"കോളുകൾ ഹോൾഡുചെയ്യാൻ കഴിയില്ല."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"പാസ്വേഡ് നൽകുക"</string>
<string name="call_barring_settings" msgid="80766145008623645">"കോൾ തടയൽ ക്രമീകരണം"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"എല്ലാ കോൾ തടയൽ ക്രമീകരണവും നിർജ്ജീവമാക്കണോ?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"നെറ്റ്വർക്ക് തിരക്കിലാണ്. കോൾ ചെയ്യാൻ പിന്നീട് വീണ്ടും ശ്രമിക്കുക."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"കോൾ വഴി തിരിച്ചുവിട്ടു."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"കോൾ കൈമാറി."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"കോൾ വെയ്റ്റിംഗിലാണ്."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"കൈമാറിയ കോൾ."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"കോൺഫറൻസ് കോളിൽ ചേരുന്നു."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"ഹോൾഡ് ചെയ്ത കോൾ സ്വതന്ത്രമാക്കി."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"ഉപകരണം നിലവിൽ പ്രൊവിഷൻ ചെയ്തുകൊണ്ടിരിക്കുന്നതിനാൽ, ഒരു കോൾ നടത്താനാവില്ല."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"മറ്റൊരു ഔട്ട്ഗോയിംഗ് കോൾ മുമ്പേ തന്നെ ഡയൽ ചെയ്യുന്നതിനാൽ, ഒരു കോൾ നടത്താനാവില്ല."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"മറുപടി ലഭിക്കാത്ത ഒരു ഇൻകമിംഗ് കോൾ ഉള്ളതിനാൽ, ഒരു കോൾ നടത്താനാവില്ല. ഒരു പുതിയ കോൾ നടത്തുന്നതിന് മുൻപായി ഇൻകമിംഗ് കോളിന് മറുപടി നൽകുക അല്ലെങ്കിൽ നിരസിക്കുക."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"ro.telephony.disable-കോൾ സിസ്റ്റം പ്രോപ്പർട്ടി ഉപയോഗിച്ച് കോൾ ചെയ്യൽ പ്രവർത്തനരഹിതമാക്കിയതിനാൽ ഒരു കോൾ നടത്താനാവില്ല."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"മുമ്പേ രണ്ട് കോളുകൾ പുരോഗതിയിൽ ആയതിനാൽ ഒരു പുതിയ കോൾ നടത്താനാവില്ല. ഒരു പുതിയ കോൾ നടത്താനായി, മുമ്പത്തെ കോളുകളിലൊന്ന് വിച്ഛേദിക്കുകയോ അല്ലെങ്കിൽ അവയെ ഒരു കോൺഫറൻസ് കോളിലേക്ക് ലയിപ്പിക്കുകയോ ചെയ്യുക."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> എന്നത് ഉപയോഗിക്കാൻ, മൊബൈൽ ഡാറ്റ ഓണാണ് എന്ന് ഉറപ്പാക്കുക. നിങ്ങൾക്ക് ഇത് മൊബൈൽ നെറ്റ്വർക്ക് ക്രമീകരണത്തിൽ മാറ്റാം."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> എന്നത് ഉപയോഗിക്കാൻ, നിങ്ങളുടെ മൊബൈൽ ഡാറ്റയും ഡാറ്റ റോമിംഗും ഓണാണ് എന്ന് ഉറപ്പാക്കുക. നിങ്ങൾക്ക് ഇത് മൊബൈൽ നെറ്റ്വർക്ക് ക്രമീകരണത്തിൽ മാറ്റാം."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ഉപയോഗിക്കാൻ, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> എന്നതിനായി മൊബൈൽ ഡാറ്റ ഓണാണ് എന്ന് ഉറപ്പാക്കുക. നിങ്ങൾക്ക് ഇത് മൊബൈൽ നെറ്റ്വർക്ക് ക്രമീകരണത്തിൽ മാറ്റാം."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> എന്നത് ഉപയോഗിക്കാൻ, മൊബൈൽ ഡാറ്റയും ഡാറ്റ റോമിംഗും, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> എന്നതിനായി ഓണാണ് എന്ന് ഉറപ്പാക്കുക. നിങ്ങൾക്ക് ഇത് മൊബൈൽ നെറ്റ്വർക്ക് ക്രമീകരണത്തിൽ മാറ്റാം."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"നിരസിക്കുക"</string>
</resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 86dd495..8eb700c 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD код ажиллаж байна…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI код цуцлагдсан"</string>
<string name="cancel" msgid="5044513931633602634">"Цуцлах"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD зурвасын үсгийн тоо <xliff:g id="MIN_LEN">%d</xliff:g> болон <xliff:g id="MAX_LEN">%d</xliff:g> хооронд байх шаардлагатай. Дахин оролдоно уу."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD зурвасын үсгийн тоо <xliff:g id="MIN_LEN">%1$d</xliff:g> болон <xliff:g id="MAX_LEN">%2$d</xliff:g> хооронд байх шаардлагатай. Дахин оролдоно уу."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Хурлын дуудлага удирдах"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Чанга яригч"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Дуут шуудан"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Дуут шуудан ( <xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g> )"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"ДШ:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Мэдэгдэл"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Онцгой байдлын нэвтрүүлэг"</string>
<string name="call_settings" msgid="6112441768261754562">"Дуудлагын тохиргоо"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Сайжруулсан 4G LTE горим"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"LTE-г ашиглан дуут болон бусад төрлийн харилцаа холбооны хэрэгслийг сайжруул (зөвлөхүйц)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"4G үйлчилгээг дуу хоолой болон бусад харилцаа холбоог (санал болгосон) сайжруулахад ашиглах"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Өгөгдөл идэвхжсэн"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Дата ашиглалтыг зөвшөөрөх"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Анхааруулга"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Дуудлагыг үргэлжлүүлэх боломжгүй."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Дуудлагыг салгаж чадахгүй байна."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Шилжүүлэх боломжгүй байна."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Дуудлагуудыг нэгтгэх боломжгүй."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Дуудлага татгалзах боломжгүй байна."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Дуудлага чөлөөлөх боломжгүй байна."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Дуудлагыг хадгалах боломжгүй байна."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Нууц үг оруулна уу"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Дуудлага хаах тохиргоо"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Бүх дуудлага хаах тохиргоог идэвхгүй болгох уу?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Сүлжээ завгүй байна. Та дуудлагаа дараа дахин оролдоно уу."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Дуудлагыг шилжүүлсэн."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Дуудлагыг дамжуулсан."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Дуудлагыг хүлээлгэж байна."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Дамжуулсан дуудлага."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Хурлын дуудлагад нэгдэж байна."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Хүлээлгэсэн дуудлагыг холбосон."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Одоогоор төхөөрөмжийг бэлдэж байгаа тул дуудлага хийх боломжгүй байна."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Өөр залгасан дугаар руу аль хэдийн залгаж байх үед дуудлага хийх боломжгүй."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Хариулаагүй ирсэн дуудлага байх үед дуудлага хийх боломжгүй. Шинэ дуудлага хийхийн өмнө ирсэн дуудлагад хариулах эсвэл татгалзана уу."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"ro.telephony.disable-call системийн өмчийг ашиглан дуудлагыг цуцалсан бол дуудлага хийх боломжгүй."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Аль хэдийн хоёр дуудлага хийж байгаа үед дуудлага хийх боломжгүй. Шинэ дуудлага хийхийн өмнө аль нэг дуудлагыг цуцлах эсвэл хурал болгон нэгтгэнэ үү."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>-г ашиглахын тулд мобайл датаг асаасан эсэхээ шалгана уу. Та үүнийг мобайл сүлжээний тохиргоонд өөрчлөх боломжтой."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>-г ашиглахын тулд мобайл дата болон дата роуминг асаасан эсэхээ шалгана уу. Та эдгээрийг мобайл сүлжээний тохиргоонд өөрчлөх боломжтой."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>-г ашиглахын тулд SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-д мобайл датаг асаасан эсэхээ шалгана уу. Та үүнийг мобайл сүлжээний тохиргоонд өөрчлөх боломжтой."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>-г ашиглахын тулд SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>-д мобайл дата болон дата роуминг асаасан эсэхээ шалгана уу. Та эдгээрийг мобайл сүлжээний тохиргоонд өөрчлөх боломжтой."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Үл хэрэгсэх"</string>
</resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index d112f09..4851fcd 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD कोड चालू…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI कोड रद्द केला"</string>
<string name="cancel" msgid="5044513931633602634">"रद्द करा"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD मेसेज <xliff:g id="MIN_LEN">%d</xliff:g> आणि <xliff:g id="MAX_LEN">%d</xliff:g> वर्णांमधील असणे आवश्यक आहे. कृपया पुन्हा प्रयत्न करा."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD मेसेज <xliff:g id="MIN_LEN">%1$d</xliff:g> आणि <xliff:g id="MAX_LEN">%2$d</xliff:g> वर्णांमधील असणे आवश्यक आहे. कृपया पुन्हा प्रयत्न करा."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"कॉन्फरन्स कॉल व्यवस्थापित करा"</string>
<string name="ok" msgid="3811371167865772377">"ठीक"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"स्पीकर"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"व्हॉइसमेल"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"व्हॉइसमेल (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"सूचना"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"आणीबाणी प्रसारणे"</string>
<string name="call_settings" msgid="6112441768261754562">"कॉल सेटिंग्ज"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"वर्धित 4G LTE मोड"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"व्हॉइस आणि इतर संप्रेषणे (शिफारस केलेली) सुधारित करण्यासाठी LTE सेवांचा वापर करा"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"व्हॉइस आणि इतर संभाषणे (शिफारस केलेली) सुधारित करण्यासाठी LTE सेवांचा वापर करा"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"डेटा सक्षम केला"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"डेटा वापरास अनुमती द्या"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"लक्ष द्या"</string>
@@ -249,7 +259,7 @@
<string name="roaming_warning" msgid="1603164667540144353">"आपल्याला लक्षणीय रोमिंग शुल्क लागू शकते."</string>
<string name="roaming_check_price_warning" msgid="7497570906830902550">"किंमतींबद्दल तुमच्या नेटवर्क प्रदात्याला विचारा."</string>
<string name="roaming_alert_title" msgid="3654815360303826008">"डेटा रोमिंगला अनुमती द्यायची?"</string>
- <string name="data_usage_title" msgid="4042209259808900283">"अॅप डेटा वापर"</string>
+ <string name="data_usage_title" msgid="4042209259808900283">"अॅप डेटा वापर"</string>
<string name="data_usage_template" msgid="8526428824844656364">"<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="8074895510265488035">"प्रगत"</string>
<string name="carrier_settings_euicc" msgid="6714062862127226405">"वाहक"</string>
@@ -432,8 +442,8 @@
<string name="fdn_failed" msgid="540018079008319747">"FDN कार्य अयशस्वी झाले."</string>
<string name="simContacts_emptyLoading" msgid="2203331234764498011">"सिक कार्डमधून वाचत आहे..."</string>
<string name="simContacts_empty" msgid="5270660846489561932">"आपल्या सिम कार्डवर कोणतेही संपर्क नाहीत."</string>
- <string name="simContacts_title" msgid="1861472842524839921">"आयात करण्यासाठी संपर्क निवडा"</string>
- <string name="simContacts_airplaneMode" msgid="5254946758982621072">"सिम कार्डमधील संपर्क आयात करण्यासाठी विमान मोड बंद करा."</string>
+ <string name="simContacts_title" msgid="1861472842524839921">"इंपोर्ट करण्यासाठी संपर्क निवडा"</string>
+ <string name="simContacts_airplaneMode" msgid="5254946758982621072">"सिम कार्डमधील संपर्क इंपोर्ट करण्यासाठी विमान मोड बंद करा."</string>
<string name="enable_pin" msgid="5422767284133234860">"सिम पिन सक्षम करा/अक्षम करा"</string>
<string name="change_pin" msgid="9174186126330785343">"सिम पिन बदला"</string>
<string name="enter_pin_text" msgid="8532615714751931951">"सिम पिन"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"कॉल पुन्हा सुरू करू शकत नाही."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"कॉल विभक्त करू शकत नाही."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"हस्तांतर करू शकत नाही."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"कॉल विलीन करता आले नाहीत."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"कॉल नाकारू शकत नाही."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"कॉल रिलीज करू शकत नाही."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"कॉल सुरु ठेवू शकत नाही."</string>
@@ -536,12 +545,12 @@
<string name="onscreenManageConferenceText" msgid="6485935856534311346">"परिषद व्यवस्थापित करा"</string>
<string name="onscreenAudioText" msgid="1710087112800041743">"ऑडिओ"</string>
<string name="onscreenVideoCallText" msgid="4800924186056115442">"व्हिडिओ कॉल"</string>
- <string name="importSimEntry" msgid="6614358325359736031">"आयात"</string>
- <string name="importAllSimEntries" msgid="1503181169636198673">"सर्व आयात करा"</string>
- <string name="importingSimContacts" msgid="7374056215462575769">"सिम संपर्क आयात करत आहे"</string>
- <string name="importToFDNfromContacts" msgid="2130620207013368580">"संपर्कांमधून आयात करा"</string>
- <string name="singleContactImportedMsg" msgid="6868483416182599206">"आयात केलेला संपर्क"</string>
- <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"संपर्क आयात करण्यात अयशस्वी"</string>
+ <string name="importSimEntry" msgid="6614358325359736031">"इंपोर्ट"</string>
+ <string name="importAllSimEntries" msgid="1503181169636198673">"सर्व इंपोर्ट करा"</string>
+ <string name="importingSimContacts" msgid="7374056215462575769">"सिम संपर्क इंपोर्ट करत आहे"</string>
+ <string name="importToFDNfromContacts" msgid="2130620207013368580">"संपर्कांमधून इंपोर्ट करा"</string>
+ <string name="singleContactImportedMsg" msgid="6868483416182599206">"इंपोर्ट केलेला संपर्क"</string>
+ <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"संपर्क इंपोर्ट करण्यात अयशस्वी"</string>
<string name="hac_mode_title" msgid="8740268574688743289">"श्रवणयंत्रे"</string>
<string name="hac_mode_summary" msgid="6833851160514929341">"श्रवणयंत्र सुसंगतता चालू करा"</string>
<string name="rtt_mode_title" msgid="6954652435543570121">"रीअल-टाइम टेक्स्ट (RTT) कॉल"</string>
@@ -587,8 +596,8 @@
<string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"डेटा कनेक्शन अक्षम केले"</string>
<string name="phone_in_ecm_notification_complete_time" msgid="7730376844178948351">"<xliff:g id="COMPLETETIME">%s</xliff:g> पर्यंत कोणतेही डेटा कनेक्शन नाही"</string>
<plurals name="alert_dialog_exit_ecm" formatted="false" msgid="7179911675595441201">
- <item quantity="one">फोन <xliff:g id="COUNT_1">%s</xliff:g> मिनिटासाठी आणीबाणी कॉलबॅक मोडमध्ये राहील. या मोडमध्ये असताना डेटा कनेक्शन वापरणारे कोणतेही अॅप्लिकेशन वापरले जाऊ शकत नाहीत. तुम्ही आता बाहेर पडू इच्छिता?</item>
- <item quantity="other">फोन <xliff:g id="COUNT_1">%s</xliff:g> मिनिटांसाठी आणीबाणी कॉलबॅक मोडमध्ये राहील. या मोडमध्ये असताना डेटा कनेक्शन वापरणारे कोणतेही अॅप्लिकेशन वापरले जाऊ शकत नाहीत. तुम्ही आता बाहेर पडू इच्छिता?</item>
+ <item quantity="one">फोन <xliff:g id="COUNT_1">%s</xliff:g> मिनिटासाठी आणीबाणी कॉलबॅक मोडमध्ये राहील. या मोडमध्ये असताना डेटा कनेक्शन वापरणारे कोणतेही अॅप्लिकेशन वापरले जाऊ शकत नाहीत. तुम्ही आता बाहेर पडू इच्छिता?</item>
+ <item quantity="other">फोन <xliff:g id="COUNT_1">%s</xliff:g> मिनिटांसाठी आणीबाणी कॉलबॅक मोडमध्ये राहील. या मोडमध्ये असताना डेटा कनेक्शन वापरणारे कोणतेही अॅप्लिकेशन वापरले जाऊ शकत नाहीत. तुम्ही आता बाहेर पडू इच्छिता?</item>
</plurals>
<plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="8042973425225093895">
<item quantity="one">आणीबाणी कॉलबॅक मोडमध्ये असताना निवडलेली क्रिया उपलब्ध नसते. फोन <xliff:g id="COUNT_1">%s</xliff:g> मिनिटासाठी या मोडमध्ये राहील. तुम्ही आता बाहेर पडू इच्छिता?</item>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"पासवर्ड टाका"</string>
<string name="call_barring_settings" msgid="80766145008623645">"कॉल बारिंग सेटिंग्ज"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"सर्व कॉल बारिंग़ सेटिंग्ज बंद करायच्या का?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"नेटवर्क व्यस्त आहे कृपया तुमचा कॉल नंतर पुन्हा करण्याचा प्रयत्न करा."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"कॉल वळवला."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"कॉल फॉरवर्ड केला."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"कॉल प्रतीक्षेत आहे."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"कॉल फॉरवर्ड केला."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"कॉन्फरन्स कॉलमध्ये सामील होत आहे."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"घेतलेला कॉल बंद केला."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"सध्या डिव्हाइसची तरतूद केली जात असल्यामुळे कॉल करू शकत नाही."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"दुसरा आउटगोइंग कॉल आधीच डायल होत असल्यामुळे कॉल करू शकत नाही."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"अनुत्तरित इनकमिंग कॉल असल्यामुळे कॉल करू शकत नाही. नवीन कॉल करण्याआधी इनकमिंग कॉलला उत्तर द्या किंवा तो नाकारा."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"ro.telephony.disable-call सिस्टम प्रॉपर्टी वापरून कॉल करणे बंद केले गेल्यामुळे कॉल करू शकत नाही."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"दोन कॉल आधीच प्रगतीपथावर असल्यामुळे कॉल करू शकत नाही. नवीन कॉल करण्याआधी एक कॉल डिस्कनेक्ट करा किंवा त्यांना कॉन्फरंस कॉलमध्ये विलीन करा."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> वापरण्यासाठी, मोबाइल डेटा सुरू केलेला आहे याची खात्री करा. तुम्ही हे मोबाइल नेटवर्क सेटिंग्जमध्ये बदलू शकता."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> वापरण्यासाठी, मोबाइल डेटा आणि डेटा रोमिंग सुरू केलेले आहेत याची खात्री करा. तुम्ही हे मोबाइल नेटवर्क सेटिंग्जमध्ये बदलू शकता."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> वापरण्यासाठी, सिम <xliff:g id="SIM_NUMBER">%2$d</xliff:g> साठी मोबाइल डेटा सुरू केलेला आहे याची खात्री करा. तुम्ही हे मोबाइल नेटवर्क सेटिंग्जमध्ये बदलू शकता."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> वापरण्यासाठी, सिम <xliff:g id="SIM_NUMBER">%2$d</xliff:g> साठी मोबाइल डेटा आणि डेटा रोमिंग सुरू केलेले आहेत याची खात्री करा. तुम्ही हे मोबाइल नेटवर्क सेटिंग्जमध्ये बदलू शकता."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"डिसमिस करा"</string>
</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 36f42c1..81a97f7 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Kod USSD dijalankan..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Kod MMI dibatalkan"</string>
<string name="cancel" msgid="5044513931633602634">"Batal"</string>
- <string name="enter_input" msgid="1810529547726803893">"Mesej USSD mestilah antara <xliff:g id="MIN_LEN">%d</xliff:g> dan <xliff:g id="MAX_LEN">%d</xliff:g> aksara. Sila cuba lagi."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Mesej USSD mestilah antara <xliff:g id="MIN_LEN">%1$d</xliff:g> dan <xliff:g id="MAX_LEN">%2$d</xliff:g> aksara. Sila cuba lagi."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Urus panggilan sidang"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Pembesar suara"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Mel suara"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Mel suara (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Pemberitahuan"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Siaran kecemasan"</string>
<string name="call_settings" msgid="6112441768261754562">"Tetapan panggilan"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Mod 4G LTE Dipertingkat"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Gunakan perkhidmatan LTE untuk memperbaik suara dan komunikasi lain (disyorkan)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Gunakan perkhidmatan 4G untuk memperbaik suara dan komunikasi lain (disyorkan)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Data didayakan"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Benarkan penggunaan data"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Perhatian"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Tidak dapat menyambung semula panggilan."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Tidak dapat mengasingkan panggilan."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Tidak dapat memindahkan panggilan."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Tidak dapat menggabungkan panggilan."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Tidak dapat menolak panggilan."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Tidak dapat melepaskan panggilan."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Tidak dapat menunda panggilan."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Masukkan kata laluan"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Tetapan sekatan panggilan"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Nyahaktifkan semua tetapan sekatan panggilan?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Rangkaian sibuk. Cuba buat panggilan sebentar lagi."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Panggilan dipesongkan."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Panggilan dimajukan."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Panggilan sedang menunggu."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Panggilan dimajukan."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Menyertai panggilan sidang."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Panggilan yang ditunda telah dilepaskan."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Tidak dapat membuat panggilan kerana peranti sedang diperuntukkan."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Tidak dapat membuat panggilan kerana panggilan keluar lain sudah pun mendail."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Tidak dapat membuat panggilan kerana terdapat panggilan masuk yang tidak dijawab. Jawab atau tolak panggilan masuk itu sebelum membuat panggilan baharu."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Tidak dapat membuat panggilan kerana panggilan telah dilumpuhkan menggunakan sifat sistem ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Tidak dapat membuat panggilan kerana sudah terdapat dua panggilan yang sedang berlangsung. Putuskan salah satu panggilan itu atau gabungkan panggilan tersebut menjadi panggilan persidangan sebelum membuat panggilan baharu."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%s</xliff:g>, pastikan data mudah alih dihidupkan. Anda boleh menukar tetapan ini dalam tetapan rangkaian mudah alih."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%s</xliff:g>, pastikan data mudah alih dan perayauan data dihidupkan. Anda boleh menukar tetapan ini dalam tetapan rangkaian mudah alih."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, pastikan data mudah alih dihidupkan bagi SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Anda boleh menukar tetapan ini dalam tetapan rangkaian mudah alih."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, pastikan data mudah alih dan perayauan data dihidupkan bagi SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Anda boleh menukar tetapan ini dalam tetapan rangkaian mudah alih."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Ketepikan"</string>
</resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 41c50d9..b5a28df 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD ကုဒ် လုပ်ဆောင်နေပါသည်…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMIကုတ်နံပါတ်ကို ပယ်ဖျက်ပြီးပါပြီ"</string>
<string name="cancel" msgid="5044513931633602634">"မလုပ်တော့"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD စာများဟာ စာလုံးရေ <xliff:g id="MIN_LEN">%d</xliff:g> မှ<xliff:g id="MAX_LEN">%d</xliff:g> အတွင်း ဖြစ်ရပါမည်။ နောက်တစ်ခေါက်ကြိုးစားပါ"</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD စာများဟာ စာလုံးရေ <xliff:g id="MIN_LEN">%1$d</xliff:g> မှ<xliff:g id="MAX_LEN">%2$d</xliff:g> အတွင်း ဖြစ်ရပါမည်။ နောက်တစ်ခေါက်ကြိုးစားပါ"</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"ကွန်းဖရင့် ခေါ်ဆိုမှုကို ထိန်းချုပ်သည်"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"စပီကာ"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"အသံမေးလ်"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"အသံမေးလ် ( <xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g> )"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"အသံစာပို့နစ်အမှတ် -"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"အကြောင်းကြားချက်များ"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"အရေးပေါ် ထုတ်လွှင့်မှုများ"</string>
<string name="call_settings" msgid="6112441768261754562">"ဖုန်းခေါ်ဆိုခြင်း ဆက်တင်များ"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"မြှင့်တင်ထား 4G LTE မုဒ်"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"အသံခေါ်ဆိုမှုနှင့် အခြားဆက်သွယ်ရေးများ တိုးတက်စေရန် LTE ဝန်ဆောင်မှုများ ကိုအသုံးပြုမည် (အကြံပြုထား)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"အသံခေါ်ဆိုမှုနှင့် အခြားဆက်သွယ်ရေးများ ပိုမိုကောင်းမွန်စေရန် 4G ဝန်ဆောင်မှုများ အသုံးပြုပါ (အကြံပြုထားသည်)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"ဒေတာ ဖွင့်ထားပြီး"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"ဒေတာ သုံးစွဲမှု ခွင့်ပြုရန်"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"သတိပြုရန်"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"ဖုန်းဆက်ပြော၍ မရပါ။"</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"ဖုန်းခေါ်ခြင်းအား မခွဲထုတ်နိုင်ပါ။"</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"မလွှဲပြောင်းနိုင်ပါ။"</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"ဖုန်းခေါ်ဆိုမှုများကို ပေါင်းစည်း၍ မရပါ။"</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"ဖုန်းခေါ်ခြင်းအား မငြင်းဆိုနိုင်ပါ။"</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ဖုန်းခေါ်ခြင်း(များ)အား လွှတ်မပေးနိုင်ပါ။"</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ခေါ်ဆိုမှုများကို ကိုင်ထား၍မရပါ။"</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"စကားဝှက် ထည့်ရန်"</string>
<string name="call_barring_settings" msgid="80766145008623645">"ခေါ်ဆိုမှုပိတ်ပင်သော ဆက်တင်များ"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"ခေါ်ဆိုမှုပိတ်ပင်သော ဆက်တင်အားလုံးကို ပယ်ဖျက်မလား။"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"ကွန်ရက် မအားပါ။ ဖုန်းခေါ်ဆိုမှုကို နောက်မှ ထပ်စမ်းကြည့်ပါ။"</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"ခေါ်ဆိုမှုကို လွှဲထားပါသည်။"</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"ခေါ်ဆိုမှုကို ထပ်ဆင့်ပို့ထားပါသည်။"</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"ခေါ်ဆိုမှုက စောင့်ဆိုင်းနေပါသည်။"</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"ထပ်ဆင့်ပို့ထားသော ခေါ်ဆိုမှု။"</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"အစည်းအဝေးခေါ်ဆိုမှုကို ချိတ်ဆက်နေပါသည်။"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"ကိုင်ထားသော ဖုန်းကို ချလိုက်ပါပြီ။"</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"ကိရိယာကို လတ်တလော ပြင်ဆင်နေသဖြင့် ဖုန်းခေါ်၍ မရနိုင်ပါ။"</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"အထွက်ခေါ်ဆိုမှု ပြုလုပ်ထားသဖြင့် ဖုန်းထပ်ခေါ်၍ မရနိုင်ပါ။"</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"မဖြေကြားရသေးသော အဝင်ခေါ်ဆိုမှု ရှိနေသဖြင့် ဖုန်းခေါ်၍ မရနိုင်ပါ။ ဖုန်းခေါ်ဆိုမှုအသစ် မပြုလုပ်မီ ဖုန်းကိုင်ပါ (သို့) ငြင်းပယ်ပါ။"</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"ro.telephony.disable-call စနစ် မူပိုင်ခွင့် အသုံးပြုပြီး ခေါ်ဆိုခြင်းကို ပိတ်ထားသဖြင့် ဖုန်းခေါ်၍ မရနိုင်ပါ။"</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"ဖုန်းခေါ်ဆိုမှုနှစ်ခုကို ပြုလုပ်နေဆဲ ဖြစ်သဖြင့် ဖုန်းခေါ်၍ မရနိုင်ပါ။ ခေါ်ဆိုမှုအသစ် မပြုလုပ်မီ ၎င်းတို့ထဲမှ တစ်ခုကို ဖုန်းချပါ (သို့) အဖွဲ့လိုက် ပြောဆိုခြင်းအဖြစ် ပေါင်းစည်းပါ။"</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> အသုံးပြုရန် မိုဘိုင်းဒေတာကို ဖွင့်ထားကြောင်း သေချာပါစေ။ ဤအရာကို မိုဘိုင်းကွန်ရက် ဆက်တင်များတွင် ပြောင်းနိုင်ပါသည်။"</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> အသုံးပြုရန် မိုဘိုင်းဒေတာနှင့် ကွန်ရက်ပြင်ပဒေတာ အသုံးပြုခြင်းတို့ကို ဖွင့်ထားကြောင်း သေချာပါစေ။ ဤအရာများကို မိုဘိုင်းကွန်ရက် ဆက်တင်များတွင် ပြောင်းနိုင်ပါသည်။"</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> အသုံးပြုရန် ဆင်းမ်ကတ် <xliff:g id="SIM_NUMBER">%2$d</xliff:g> အတွက် မိုဘိုင်းဒေတာကို ဖွင့်ထားကြောင်း သေချာပါစေ။ ဤအရာကို မိုဘိုင်းကွန်ရက် ဆက်တင်များတွင် ပြောင်းနိုင်ပါသည်။"</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> အသုံးပြုရန် ဆင်းမ်ကတ် <xliff:g id="SIM_NUMBER">%2$d</xliff:g> အတွက် မိုဘိုင်းဒေတာနှင့် ကွန်ရက်ပြင်ပဒေတာ အသုံးပြုခြင်းတို့ကို ဖွင့်ထားကြောင်း သေချာပါစေ။ ဤအရာများကို မိုဘိုင်းကွန်ရက် ဆက်တင်များတွင် ပြောင်းနိုင်ပါသည်။"</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"ပယ်ရန်"</string>
</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index d3a7265..5083551 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD-kode kjører…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI-kode avbrutt"</string>
<string name="cancel" msgid="5044513931633602634">"Avbryt"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD-meldingen må ha <xliff:g id="MIN_LEN">%d</xliff:g> til <xliff:g id="MAX_LEN">%d</xliff:g> tegn. Prøv på nytt."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD-meldingen må ha <xliff:g id="MIN_LEN">%1$d</xliff:g> til <xliff:g id="MAX_LEN">%2$d</xliff:g> tegn. Prøv på nytt."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Administrer konferansesamtale"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Høyttaler"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Talepostkasse"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Talepostkasse (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"Svarer:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Varsler"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Nødvarsler"</string>
<string name="call_settings" msgid="6112441768261754562">"Samtaleinnstillinger"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Forbedret 4G LTE-modus"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Bruk LTE-tjenester for å forbedre stemme- og andre typer kommunikasjon (anbefalt)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Bruk 4G-tjenester for å forbedre stemmekommunikasjon og andre typer kommunikasjon (anbefalt)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Data aktivert"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Tillat databruk"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Obs!"</string>
@@ -277,9 +287,7 @@
<!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
<skip />
<string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<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.format failed for translation -->
- <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
- <skip />
+ <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<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="2149102656120726855">"Datahastigheten reduseres til <xliff:g id="USED">%1$d</xliff:g> Kb/s hvis databruken overskrider grenseverdien"</string>
<string name="throttle_help_subtext" msgid="5217706521499010816">"Les mer om mobiloperatørens retningslinjer for bruk av nettverksdata"</string>
<string name="cell_broadcast_sms" msgid="5584192824053625842">"Kringkastings-SMS"</string>
@@ -505,8 +513,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Kan ikke gjenoppta anropet."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Kan ikke splitte opp samtale."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Kan ikke overføre."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Kan ikke slå sammen anropene."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Kan ikke avvise anropet."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Kan ikke frigjøre samtale(r)."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Kan ikke sette samtaler på vent."</string>
@@ -752,6 +759,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Skriv inn passordet"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Innstillinger for anropsblokkering"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Vil du deaktivere alle innstillinger for anropsblokkering?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Nettverket er opptatt. Prøv å ringe på nytt senere."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Anropet er omdirigert."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Anropet er viderekoblet."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Et anrop venter."</string>
@@ -769,8 +777,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Viderekoblet anrop."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Blir med i konferansesamtalen."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Anropet som var på vent, er frigitt."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Kan ikke foreta et anrop fordi enheten er i ferd med å bli klargjort for administrering."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Du kan ikke ringe fordi telefonen allerede slår nummeret for et annet utgående anrop."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Du kan ikke ringe fordi du ikke har svart på et innkommende anrop. Svar på eller avvis det innkommende anropet før du ringer på nytt."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Du kan ikke ringe fordi anrop er deaktivert ved hjelp av systemegenskapen ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Du kan ikke ringe fordi to andre anrop allerede pågår. Koble fra ett av anropene eller slå dem sammen i en konferansesamtale, før du ringer på nytt."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Før du bruker <xliff:g id="SUPP_SERVICE">%s</xliff:g>, må du sørge for at mobildata er slått på. Du kan endre dette i mobilnettverksinnstillingene."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Før du bruker <xliff:g id="SUPP_SERVICE">%s</xliff:g>, må du sørge for at mobildata og data-roaming er slått på. Du kan endre dette i mobilnettverksinnstillingene."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Før du bruker <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, må du sørge for at mobildata er slått på for SIM-kortet <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Du kan endre dette i mobilnettverksinnstillingene."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Før du bruker <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, må du sørge for at mobildata og data-roaming er slått på for SIM-kortet <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Du kan endre dette i mobilnettverksinnstillingene."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Lukk"</string>
</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 5608f15..23db82a 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD कोड चल्दै..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI कोड रद्द गरियो।"</string>
<string name="cancel" msgid="5044513931633602634">"रद्द गर्नुहोस्"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD सन्देश <xliff:g id="MIN_LEN">%d</xliff:g> र <xliff:g id="MAX_LEN">%d</xliff:g> अक्षरहरूका बीच हुनै पर्दछ। कृपया पुनःप्रयास गर्नुहोस्।"</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD सन्देश <xliff:g id="MIN_LEN">%1$d</xliff:g> र <xliff:g id="MAX_LEN">%2$d</xliff:g> अक्षरहरूका बीच हुनै पर्दछ। कृपया पुनःप्रयास गर्नुहोस्।"</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"सम्मेलन कल प्रबन्ध गर्नुहोस्"</string>
<string name="ok" msgid="3811371167865772377">"ठिक छ"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"स्पिकर"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"भ्वाइसमेल"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"भ्वाइस मेल (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"सूचनाहरू"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"आपतकालीन प्रसारणहरू"</string>
<string name="call_settings" msgid="6112441768261754562">"कल सेटिङहरू"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Enhanced 4G LTE Mode"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"आवाज र अन्य सञ्चार सुधार गर्न LTE सेवाहरूको प्रयोग गर्नुहोस् (सिफारिस गरिएको)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"आवाज र अन्य सञ्चार सुधार गर्न 4G सेवाहरूको प्रयोग गर्नुहोस् (सिफारिस गरिएको)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"डेटा सक्षम भयो"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"डेटा उपयोगलाई अनुमति दिनुहोस्"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"ध्यानाकर्षण"</string>
@@ -458,12 +468,12 @@
<string name="badPuk2" msgid="7910064009531541708">"PUK2 गलत। फेरि प्रयास गर्नुहोस्।"</string>
<string name="badPin2" msgid="6646896629970023109">"पुरानो PIN2 गलत। फेरि प्रयास गर्नुहोस्।"</string>
<string name="mismatchPin2" msgid="4177967478551851117">"PIN2हरू मेल खाएनन्। फेरि प्रयास गर्नुहोस्।"</string>
- <string name="invalidPin2" msgid="1757045131429105595">"4 देखि 8 नम्बरको एक PIN2 प्रविष्ट गर्नुहोस्।"</string>
- <string name="invalidPuk2" msgid="7059081153334815973">"8 नम्बरको एक PUK2 प्रविष्ट गर्नुहोस्।"</string>
+ <string name="invalidPin2" msgid="1757045131429105595">"4 देखि 8 नम्बरको एक PIN2 प्रविष्टि गर्नुहोस्।"</string>
+ <string name="invalidPuk2" msgid="7059081153334815973">"8 नम्बरको एक PUK2 प्रविष्टि गर्नुहोस्।"</string>
<string name="pin2_changed" msgid="3724522579945610956">"PIN2 अद्यावधिक गरियो"</string>
- <string name="label_puk2_code" msgid="4688069961795341948">"PUK2 कोड प्रविष्ट गर्नुहोस्"</string>
+ <string name="label_puk2_code" msgid="4688069961795341948">"PUK2 कोड प्रविष्टि गर्नुहोस्"</string>
<string name="fdn_enable_puk2_requested" msgid="4991074891459554705">"पासवर्ड गलत छ। PIN2 अहिले ब्लक गरिएको छ। पिन 2 परिवर्तन, फेरि प्रयास गर्नुहोस्।"</string>
- <string name="puk2_requested" msgid="5831015200030161434">"पासवर्ड गलत छ। सिम अब ब्लक गरिएको छ। PUK2 प्रविष्ट गर्नुहोस्।"</string>
+ <string name="puk2_requested" msgid="5831015200030161434">"पासवर्ड गलत छ। सिम अब ब्लक गरिएको छ। PUK2 प्रविष्टि गर्नुहोस्।"</string>
<string name="puk2_blocked" msgid="3150263853077280049">"PUK2 स्थायी रूपमा रोक्का गरियो।"</string>
<string name="pin2_attempts" msgid="720736232885011507">\n" तपाईंसँग <xliff:g id="NUMBER">%d</xliff:g> प्रयास बाँकी छन्।"</string>
<string name="pin2_unblocked" msgid="7791600368153469078">"PIN2 अब ब्लक गरिएको छैन"</string>
@@ -491,7 +501,7 @@
<string name="incall_error_emergency_only" msgid="4678640422710818317">"नेटवर्कमा दर्ता भएको छैन।"</string>
<string name="incall_error_out_of_service" msgid="8587993036435080418">"मोबाइल नेटवर्क उपलब्ध छैन।"</string>
<string name="incall_error_out_of_service_wfc" msgid="8741629779555132471">"मोबाइल नेटवर्क उपलब्ध छैन। कल गर्न तारविनाको नेटवर्कमा जडान गर्नुहोस्।"</string>
- <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"एक कल गर्नको लागि, एक वैध नम्बर प्रविष्ट गर्नुहोस्।"</string>
+ <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"एक कल गर्नको लागि, एक वैध नम्बर प्रविष्टि गर्नुहोस्।"</string>
<string name="incall_error_call_failed" msgid="5891978320269774095">"कल विफल भयो।"</string>
<string name="incall_error_cannot_add_call" msgid="8878159278947023326">"यतिबेला कल गर्न सकिएन। तपाईंले कुनै सन्देश पठाएर सम्पर्क गर्ने प्रयास गर्न सक्नुहुन्छ।"</string>
<string name="incall_error_supp_service_unknown" msgid="655570339115407698">"सेवा समर्थित छैन"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"कल सुचारु गर्न सकिएन"</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"कल अलग गर्न सक्दैन।"</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"हस्तान्तरण गर्न सक्दैन।"</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"कलहरू गाभ्न सकिएन।"</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"कल अस्वीकार गर्न सक्दैन।"</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"कल (हरू) जारी गर्न सकिँदैन ।"</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"कल सञ्चालन गर्न सकिँदैन।"</string>
@@ -639,7 +648,7 @@
<string name="change_pin_cancel_label" msgid="353535488390948596">"रद्द गर्नुहोस्"</string>
<string name="change_pin_ok_label" msgid="6204308560844889926">"ठिक छ"</string>
<string name="change_pin_enter_old_pin_header" msgid="419179847657548887">"आफ्नो पुरानो PIN को पुष्टि गर्नुहोस्"</string>
- <string name="change_pin_enter_old_pin_hint" msgid="8579171678763615453">"जारी राख्नका लागि आफ्नो भ्वाइस मेलको PIN प्रविष्ट गर्नुहोस्।"</string>
+ <string name="change_pin_enter_old_pin_hint" msgid="8579171678763615453">"जारी राख्नका लागि आफ्नो भ्वाइस मेलको PIN प्रविष्टि गर्नुहोस्।"</string>
<string name="change_pin_enter_new_pin_header" msgid="2611191814590251532">"एउटा नयाँ PIN सेट गर्नुहोस्"</string>
<string name="change_pin_enter_new_pin_hint" msgid="2322940054329689309">"PIN <xliff:g id="MIN">%1$d</xliff:g>-<xliff:g id="MAX">%2$d</xliff:g> अङ्कको हुनु पर्छ।"</string>
<string name="change_pin_confirm_pin_header" msgid="8113764019347322170">"तपाईँको PIN को पुष्टि गर्नुहोस्"</string>
@@ -738,14 +747,15 @@
<string name="call_barring_change_pwd_description" msgid="5505087790260233953">"कल ब्यारिङको पासवर्ड परिवर्तन गर्नुहोस्"</string>
<string name="call_barring_change_pwd_description_disabled" msgid="7630770327645349957">"कल ब्यारिङको पासवर्ड परिवर्तन गर्न सकिएन।"</string>
<string name="call_barring_pwd_not_match" msgid="6716711689350314525">"पासवर्डहरू मेल खाँदैनन्"</string>
- <string name="call_barring_right_pwd_number" msgid="2902966502520410446">"कुनै ४ अङ्कको पासवर्ड प्रविष्ट गर्नुहोस्"</string>
+ <string name="call_barring_right_pwd_number" msgid="2902966502520410446">"कुनै ४ अङ्कको पासवर्ड प्रविष्टि गर्नुहोस्"</string>
<string name="call_barring_change_pwd_success" msgid="3278310763742760321">"पासवर्ड परिवर्तन गरियो"</string>
<string name="call_barring_old_pwd" msgid="6080515987320238522">"पुरानो पासवर्ड"</string>
<string name="call_barring_new_pwd" msgid="7048532299150269547">"नयाँ पासवर्ड"</string>
<string name="call_barring_confirm_pwd" msgid="1947167278466285411">"पासवर्ड निश्चित गर्नुहोस्"</string>
- <string name="messageCallBarring" msgid="2412123220272136055">"पासवर्ड प्रविष्ट गर्नुहोस्"</string>
+ <string name="messageCallBarring" msgid="2412123220272136055">"पासवर्ड प्रविष्टि गर्नुहोस्"</string>
<string name="call_barring_settings" msgid="80766145008623645">"कल ब्यारिङसम्बन्धी सेटिङहरू"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"कल ब्यारिङसम्बन्धी सबै सेटिङहरू निष्क्रिय पार्ने हो?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"नेटवर्क व्यस्त छ। कृपया पछि फेरि कल गरी हेर्नुहोस्।"</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"कल अर्को नम्बरमा स्थानान्तरण गरियो।"</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"कल फर्वार्ड गरियो।"</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"कल प्रतीक्षामा छ।"</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"कल फर्वार्ड गरियो।"</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"सम्मेलन कलमा सामेल हुँदै छ।"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"होल्डमा राखिएको कललाई विच्छेद गरियो।"</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"यन्त्रमा हाल सेवाहरूको व्यवस्था गरिँदै हुनाले कल गर्न सकिँदैन।"</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"अर्को बहिर्गमन कल पहिले नै डायल भएका हुनाले कल गर्न सकिँदैन।"</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"जवाफ नदिइएको आगमन कल जारी रहेकाले नयाँ कल गर्न सकिँदैन। कुनै नयाँ कल गर्नुअघि आगमन कलको जवाफ दिनुहोस् वा त्यसलाई अस्वीकार गर्नुहोस्।"</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"ro.telephony.disable-call प्रणालीको गुण प्रयोग गरेर कल गर्ने सुविधा असक्षम पारिएको हुनाले कल गर्न सकिँदैन।"</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"पहिले नै दुईवटा कलहरू जारी रहेकाले कुनै नयाँ कल गर्न सकिँदैन। नयाँ कल गर्नुअघि हाल जारी कलहरूमध्ये कुनै एउटा कल विच्छेद गर्नुहोस् वा ती दुवैलाई सम्मेलन कलमा गाभ्नुहोस्।"</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> प्रयोग गर्न मोबाइल डेटा सक्रिय गरिएको कुरा सुनिश्चित गर्नुहोस्। तपाईं मोबाइल नेटवर्कका सेटिङहरूमा गई यसलाई बदल्न सक्नुहुन्छ।"</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> प्रयोग गर्न मोबाइल डेटा र डेटा रोमिङ सक्रिय गरिएको कुरा सुनिश्चित गर्नुहोस्। तपाईं मोबाइल नेटवर्कका सेटिङहरूमा गई यी कुराहरू बदल्न सक्नुहुन्छ।"</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> प्रयोग गर्न SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> मा मोबाइल डेटा सक्रिय गरिएको कुरा सुनिश्चित गर्नुहोस्। तपाईं मोबाइल नेटवर्कका सेटिङहरूमा गई यसलाई बदल्न सक्नुहुन्छ।"</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> प्रयोग गर्न SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> मा मोबाइल डेटा र डेटा रोमिङ सक्रिय गरिएको कुरा सुनिश्चित गर्नुहोस्। तपाईं मोबाइल नेटवर्कका सेटिङहरूमा गई यी कुराहरू बदल्न सक्नुहुन्छ।"</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"खारेज गर्नुहोस्"</string>
</resources>
diff --git a/res/values-night/styles.xml b/res/values-night/styles.xml
new file mode 100644
index 0000000..648ceeb
--- /dev/null
+++ b/res/values-night/styles.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<resources>
+
+ <style name="DialerSettingsLight" parent="SettingsLight">
+ <!-- Action bar.-->
+ <item name="android:windowBackground">@color/dialer_background_color</item>
+ <item name="android:actionModeBackground">@color/dialer_background_color</item>
+ <!-- Navigation bar.-->
+ <item name="android:navigationBarColor">@color/dialer_background_color</item>
+ <item name="android:navigationBarDividerColor">@color/dialer_divider_color</item>
+ <item name="android:colorAccent">@color/dialer_theme_color</item>
+ <item name="android:dialogTheme">@style/DialerAlertDialogTheme</item>
+ </style>
+
+</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index cc9373f..8405e53 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD-code uitvoeren..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI-code geannuleerd"</string>
<string name="cancel" msgid="5044513931633602634">"Annuleren"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD-bericht moet tussen <xliff:g id="MIN_LEN">%d</xliff:g> en <xliff:g id="MAX_LEN">%d</xliff:g> tekens lang zijn. Probeer het opnieuw."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD-bericht moet tussen <xliff:g id="MIN_LEN">%1$d</xliff:g> en <xliff:g id="MAX_LEN">%2$d</xliff:g> tekens lang zijn. Probeer het opnieuw."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Telefonische vergadering beheren"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Luidspreker"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Voicemail"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Meldingen"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Nooduitzendingen"</string>
<string name="call_settings" msgid="6112441768261754562">"Gespreksinstellingen"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Geoptimaliseerde 4G LTE-modus"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"LTE-services gebruiken voor betere spraak- en andere communicatie (aanbevolen)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"4G-services gebruiken voor betere gesproken en andere communicatie (aanbevolen)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Gegevenstoegang aan"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Gegevensgebruik toestaan"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Let op"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Kan gesprek niet hervatten."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Kan gesprek niet scheiden."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Kan niet doorschakelen."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Kan gesprekken niet samenvoegen."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Kan gesprek niet weigeren."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Kan gesprek(ken) niet vrijgeven."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Kan gesprekken niet in de wacht zetten."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Wachtwoord invoeren"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Blokkeerinstellingen voor gesprekken"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Alle blokkeerinstellingen voor gesprekken deactiveren?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Netwerk is bezet. Probeer je gesprek later opnieuw uit te voeren."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Gesprek doorgeschakeld naar ander nummer."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Gesprek doorgeschakeld."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Wisselgesprek."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Doorgeschakeld gesprek."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Deelnemen aan telefonische vergadering…"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"In de wacht gezette gesprek is vrijgegeven."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Kan geen gesprek plaatsen omdat het apparaat momenteel wordt geregistreerd."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Kan gesprek niet plaatsen omdat er al een uitgaand gesprek is gestart."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Kan gesprek niet plaatsen omdat er een niet-beantwoord inkomend gesprek is. Beantwoord of weiger het inkomende gesprek voordat je een nieuw gesprek plaatst."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Kan gesprek niet plaatsen omdat bellen is uitgeschakeld via de systeemeigenschap ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Kan gesprek niet plaatsen omdat er al twee actieve gesprekken zijn. Verbreek de verbinding in een van de gesprekken of voeg ze samen tot een conferencecall voordat je een nieuw gesprek plaatst."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Als je <xliff:g id="SUPP_SERVICE">%s</xliff:g> wilt gebruiken, zorg je dat je mobiele data hebt ingeschakeld. Je kunt dit wijzigen via de mobiele netwerkinstellingen."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Als je <xliff:g id="SUPP_SERVICE">%s</xliff:g> wilt gebruiken, zorg je dat je mobiele data en dataroaming hebt ingeschakeld. Je kunt dit wijzigen via de mobiele netwerkinstellingen."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Als je <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> wilt gebruiken, zorg je dat je mobiele data hebt ingeschakeld voor sim <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Je kunt dit wijzigen via de mobiele netwerkinstellingen."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Als je <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> wilt gebruiken, zorg je dat je mobiele data en dataroaming hebt ingeschakeld voor sim <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Je kunt dit wijzigen via de mobiele netwerkinstellingen."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Sluiten"</string>
</resources>
diff --git a/res/values-or/arrays.xml b/res/values-or/arrays.xml
new file mode 100644
index 0000000..2f73b66
--- /dev/null
+++ b/res/values-or/arrays.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item msgid="3391522821603584785">"ଗ୍ଲୋବାଲ୍"</item>
+ <item msgid="6753774959494729275">"LTE / CDMA"</item>
+ <item msgid="8658695584186942227">"LTE / GSM / UMTS"</item>
+ </string-array>
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item msgid="8390941159766263625">"10"</item>
+ <item msgid="6103348346295810336">"8"</item>
+ <item msgid="3494519853214024879">"9"</item>
+ </string-array>
+</resources>
diff --git a/res/values-or/config.xml b/res/values-or/config.xml
new file mode 100644
index 0000000..509a3c8
--- /dev/null
+++ b/res/values-or/config.xml
@@ -0,0 +1,28 @@
+<?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 name="system_visual_voicemail_client" msgid="1787338073957698459"></string>
+</resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
new file mode 100644
index 0000000..97e8e4d
--- /dev/null
+++ b/res/values-or/strings.xml
@@ -0,0 +1,786 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="phoneAppLabel" product="tablet" msgid="8576272342240415145">"ମୋବାଇଲ୍ ଡାଟା"</string>
+ <string name="phoneAppLabel" product="default" msgid="6790717591729922998">"ଫୋନ୍ ସେବା"</string>
+ <string name="emergencyDialerIconLabel" msgid="7812140032168171053">"ଜରୁରୀକାଳିନ ଡାଏଲର୍"</string>
+ <string name="phoneIconLabel" msgid="2331230813161304895">"ଫୋନ୍"</string>
+ <string name="fdnListLabel" msgid="8630418672279521003">"FDN ତାଲିକା"</string>
+ <string name="unknown" msgid="6878797917991465859">"ଅଜଣା"</string>
+ <string name="private_num" msgid="6713286113000232309">"ବ୍ୟକ୍ତିଗତ ନମ୍ବର୍"</string>
+ <string name="payphone" msgid="4793877574636445118">"ପେ-ଫୋନ୍"</string>
+ <string name="onHold" msgid="9035493194749959955">"ହୋଲ୍ଡରେ ଅଛି"</string>
+ <string name="mmiStarted" msgid="6347869857061147003">"MMI କୋଡ୍କୁ ଆରମ୍ଭ କରାଯାଇଛି"</string>
+ <string name="ussdRunning" msgid="485588686340541690">"USSD କୋଡ୍ ରନ୍ କରୁଛି…"</string>
+ <string name="mmiCancelled" msgid="2771923949751842276">"MMI କୋଡ୍କୁ କ୍ୟାନ୍ସଲ୍ କରାଯାଇଛି"</string>
+ <string name="cancel" msgid="5044513931633602634">"କ୍ୟାନ୍ସଲ୍ କରନ୍ତୁ"</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD ମେସେଜ୍ ନିଶ୍ଚିତରୂପେ <xliff:g id="MIN_LEN">%1$d</xliff:g> ଓ <xliff:g id="MAX_LEN">%2$d</xliff:g>ଟି ଅକ୍ଷର ମଧ୍ୟରେ ରହିବ। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
+ <string name="manageConferenceLabel" msgid="4691922394301969053">"କନଫରେନ୍ସ କଲ୍କୁ ପରିଚାଳନା କରନ୍ତୁ"</string>
+ <string name="ok" msgid="3811371167865772377">"ଠିକ୍ ଅଛି"</string>
+ <string name="audio_mode_speaker" msgid="27649582100085266">"ସ୍ପିକର୍"</string>
+ <string name="audio_mode_earpiece" msgid="4156527186373869107">"ହ୍ୟାଣ୍ଡସେଟ୍ ଇୟରପିସ୍"</string>
+ <string name="audio_mode_wired_headset" msgid="1465350758489175975">"ଖରାପ୍ଥିବା ହେଡସେଟ୍"</string>
+ <string name="audio_mode_bluetooth" msgid="3047641300848211128">"ବ୍ଲୁ-ଟୂଥ୍"</string>
+ <string name="wait_prompt_str" msgid="7601815427707856238">"ନିମ୍ନଲିଖିତ ଟୋନ୍ ପଠାନ୍ତୁ?\n"</string>
+ <string name="pause_prompt_str" msgid="1789964702154314806">"ଟୋନ୍ ପଠାଯାଉଛି \n"</string>
+ <string name="send_button" msgid="4106860097497818751">"ପଠାନ୍ତୁ"</string>
+ <string name="pause_prompt_yes" msgid="3564467212025151797">"ହଁ"</string>
+ <string name="pause_prompt_no" msgid="6686238803236884877">"ନାହିଁ"</string>
+ <string name="wild_prompt_str" msgid="5543521676355533577">"ୱାଇଲଡ୍ ଅକ୍ଷରକୁ ଏହା ସହିତ ବଦଳାନ୍ତୁ"</string>
+ <string name="no_vm_number" msgid="4164780423805688336">"ହଜିଯାଇଥିବା ଭଏସମେଲ୍ ନମ୍ବର୍"</string>
+ <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM କାର୍ଡରେ କୌଣସି ଭଏସମେଲ୍ ନମ୍ବର୍ ଷ୍ଟୋର୍ କରାଯାଇନାହିଁ।"</string>
+ <string name="add_vm_number_str" msgid="4676479471644687453">"ନମ୍ବର୍ ଯୋଡ଼ନ୍ତୁ"</string>
+ <string name="voice_number_setting_primary_user_only" msgid="6596604364907022416">"କେବଳ ପ୍ରାଥମିକ ୟୁଜରଙ୍କ ଦ୍ଵାରା ଭଏସମେଲ୍ ସେଟିଙ୍ଗକୁ ସଂଶୋଧିତ କରାଯାଇପାରିବ।"</string>
+ <string name="puk_unlocked" msgid="2284912838477558454">"ଆପଣଙ୍କର SIM କାର୍ଡକୁ ଅବରୋଧ କରିଦିଆଯାଇଛି। ଆପଣଙ୍କର ଫୋନ୍ ଅନଲକ୍ ହେଉଛି…"</string>
+ <string name="label_ndp" msgid="780479633159517250">"SIM ନେଟ୍ୱର୍କକୁ ଅନଲକ୍ କରିବା ପାଇଁ PIN"</string>
+ <string name="sim_ndp_unlock_text" msgid="683628237760543009">"ଅନଲକ୍ କରନ୍ତୁ"</string>
+ <string name="sim_ndp_dismiss_text" msgid="1604823375752456947">"ଖାରଜ କରନ୍ତୁ"</string>
+ <string name="requesting_unlock" msgid="6412629401033249351">"ନେଟ୍ୱର୍କକୁ ଅନଲକ୍ କରିବା ପାଇଁ ଅନୁରୋଧ କରାଯାଉଛି…"</string>
+ <string name="unlock_failed" msgid="6490531697031504225">"ନେଟ୍ୱର୍କ ଅନଲକ୍ କରିବା ପାଇଁ ଅନୁରୋଧ ବିଫଳ ହୋଇଛି।"</string>
+ <string name="unlock_success" msgid="6770085622238180152">"ନେଟ୍ୱର୍କ ଅନଲକ୍ କରିବା ସଫଳ ହେଲା।"</string>
+ <string name="mobile_network_settings_not_available" msgid="7355254462995117896">"ଏହି ୟୁଜରଙ୍କ ପାଇଁ ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ସେଟିଙ୍ଗ ଉପଲବ୍ଧ ନାହିଁ"</string>
+ <string name="labelGSMMore" msgid="5930842194056092106">"GSM କଲ୍ ସେଟିଙ୍ଗ"</string>
+ <string name="labelGsmMore_with_label" msgid="2674012918829238901">"GSM କଲ୍ ସେଟିଙ୍ଗ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="labelCDMAMore" msgid="1630676740428229339">"CDMA କଲ୍ ସେଟିଙ୍ଗ"</string>
+ <string name="labelCdmaMore_with_label" msgid="6333588719319970399">"CDMA କଲ୍ ସେଟିଙ୍ଗ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="apn_settings" msgid="9043423184895642077">"ଆକ୍ସେସ୍ ପଏଣ୍ଟ ନାମ"</string>
+ <string name="settings_label" msgid="3876743539816984008">"ନେଟ୍ୱର୍କ ସେଟିଙ୍ଗ"</string>
+ <string name="phone_accounts" msgid="6376603393888116364">"କଲ୍ କରିବା ଆକାଉଣ୍ଟ"</string>
+ <string name="phone_accounts_make_calls_with" msgid="1969188078933152231">"ଏହା ସହିତ କଲ୍ କରନ୍ତୁ"</string>
+ <string name="phone_accounts_make_sip_calls_with" msgid="4677789312053828493">"ଏହା ସହିତ SIP କଲ୍ କରନ୍ତୁ"</string>
+ <string name="phone_accounts_ask_every_time" msgid="4346499067149985702">"ପ୍ରଥମେ ପଚାରନ୍ତୁ"</string>
+ <string name="phone_accounts_default_account_label" msgid="4183772241814460014">"କୈଣସି ନେଟ୍ୱର୍କ ଉପଲବ୍ଧ ନାହିଁ"</string>
+ <string name="phone_accounts_settings_header" msgid="4141710640883261094">"ସେଟିଙ୍ଗ"</string>
+ <string name="phone_accounts_choose_accounts" msgid="5232948804226424002">"ଆକାଉଣ୍ଟ ଚୟନ କରନ୍ତୁ"</string>
+ <string name="phone_accounts_selection_header" msgid="1365215726106915865">"ଫୋନ୍ ଆକାଉଣ୍ଟ"</string>
+ <string name="phone_accounts_add_sip_account" msgid="2023821743341923271">"SIP ଆକାଉଣ୍ଟକୁ ଯୋଡ଼ନ୍ତୁ"</string>
+ <string name="phone_accounts_configure_account_settings" msgid="1361715069911607109">"ଆକାଉଣ୍ଟ ସେଟିଙ୍ଗକୁ କନଫିଗର୍ କରନ୍ତୁ"</string>
+ <string name="phone_accounts_all_calling_accounts" msgid="207619531589278471">"ସମସ୍ତ କଲିଙ୍ଗ ଆକାଉଣ୍ଟ"</string>
+ <string name="phone_accounts_all_calling_accounts_summary" msgid="8594186415822657011">"କଲ୍ କରିପାରୁଥିବା ଆକାଉଣ୍ଟକୁ ଚୟନ କରନ୍ତୁ"</string>
+ <string name="wifi_calling" msgid="739018212480165598">"ୱାଇ-ଫାଇ କଲିଙ୍ଗ"</string>
+ <string name="connection_service_default_label" msgid="1498481943805913754">"ବିଲ୍ଟ-ଇନ୍ ସଂଯୋଗ ସେବା"</string>
+ <string name="voicemail" msgid="8693759337917898954">"ଭଏସମେଲ୍"</string>
+ <string name="voicemail_settings_with_label" msgid="152724978380748296">"ଭଏସମେଲ୍ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
+ <string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"ବିଜ୍ଞପ୍ତି"</string>
+ <string name="cell_broadcast_settings" msgid="8740238216690502563">"ଜରୁରିକାଳୀନ ପ୍ରସାରଣ"</string>
+ <string name="call_settings" msgid="6112441768261754562">"କଲ୍ ସେଟିଙ୍ଗ"</string>
+ <string name="additional_gsm_call_settings" msgid="1391795981938800617">"ଅତିରିକ୍ତ ସେଟିଙ୍ଗ"</string>
+ <string name="additional_gsm_call_settings_with_label" msgid="1385241520708457376">"ଅତିରିକ୍ତ ସେଟିଙ୍ଗ(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="sum_gsm_call_settings" msgid="4076647190996778012">"ଅତିରିକ୍ତ କେବଳ GSM କଲ୍ ସେଟିଙ୍ଗ"</string>
+ <string name="additional_cdma_call_settings" msgid="8628958775721886909">"ଅତିରିକ୍ତ CDMA କଲ୍ ସେଟିଙ୍ଗ"</string>
+ <string name="sum_cdma_call_settings" msgid="284753265979035549">"ଅତିରିକ୍ତ କେବଳ CDMA କଲ୍ ସେଟିଙ୍ଗ"</string>
+ <string name="labelNwService" msgid="4699970172021870983">"ନେଟ୍ୱର୍କ ସେବା ସେଟିଙ୍ଗ"</string>
+ <string name="labelCallerId" msgid="3888899447379069198">"କଲର୍ ID"</string>
+ <string name="sum_loading_settings" msgid="1826692909391168620">"ସେଟିଙ୍ଗ ଲୋଡ୍ ହେଉଛି…"</string>
+ <string name="sum_hide_caller_id" msgid="1071407020290873782">"ଆଉଟ୍ଗୋଇଙ୍ଗ କଲ୍ରେ ଲୁଚିଥିବା କଲ୍"</string>
+ <string name="sum_show_caller_id" msgid="6768534125447290401">"ଆଉଟ୍ଗୋଇଙ୍ଗ କଲ୍ରେ ନମ୍ବର୍ ଡିସପ୍ଲେ ହୋଇଛି"</string>
+ <string name="sum_default_caller_id" msgid="1954518825510901365">"ଆଉଟ୍ଗୋଇଙ୍ଗ କଲ୍ରେ ମୋର ନମ୍ବର୍କୁ ଦେଖାଇବା ପାଇଁ ଡିଫଲ୍ଟ ଅପରେଟର୍ ସେଟିଙ୍ଗକୁ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+ <string name="labelCW" msgid="6120513814915920200">"କଲ୍ ଅପେକ୍ଷାରେ ଅଛି"</string>
+ <string name="sum_cw_enabled" msgid="8083061901633671397">"ଗୋଟିଏ କଲ୍ କରିବା ବେଳେ ଇନକମିଙ୍ଗ କଲ୍ ପାଇଁ ମୋତେ ସୂଚିତ କରନ୍ତୁ"</string>
+ <string name="sum_cw_disabled" msgid="3648693907300104575">"ଗୋଟିଏ କଲ୍ କରିବା ବେଳେ ଇନକମିଙ୍ଗ କଲ୍ ପାଇଁ ମୋତେ ସୂଚିତ କରନ୍ତୁ"</string>
+ <string name="call_forwarding_settings" msgid="3378927671091537173">"କଲ୍ ଫରୱାର୍ଡିଙ୍ଗ ସେଟିଙ୍ଗ"</string>
+ <string name="call_forwarding_settings_with_label" msgid="8569489414006897127">"କଲ୍ ଫର୍ୱାର୍ଡିଙ୍ଗ ସେଟିଙ୍ଗ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="labelCF" msgid="2574386948026924737">"କଲ୍ ଫର୍ୱାର୍ଡିଙ୍ଗ"</string>
+ <string name="labelCFU" msgid="8147177368148660600">"ସର୍ବଦା ଫର୍ୱାର୍ଡ କରନ୍ତୁ"</string>
+ <string name="messageCFU" msgid="3560082430662923687">"ସର୍ବଦା ଏହି ନମ୍ବର୍କୁ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+ <string name="sum_cfu_enabled_indicator" msgid="4014187342724130197">"ସମସ୍ତ କଲ୍ ଫରୱାର୍ଡ କରାଯାଉଛି"</string>
+ <string name="sum_cfu_enabled" msgid="2450052502198827927">"<xliff:g id="PHONENUMBER">{0}</xliff:g>କୁ ସମସ୍ତ କଲ୍ ଫରୱାର୍ଡ କରାଯାଉଛି"</string>
+ <string name="sum_cfu_enabled_no_number" msgid="6591985777096823616">"ନମ୍ବର୍ ଉପଲବ୍ଧ ନାହିଁ"</string>
+ <string name="sum_cfu_disabled" msgid="8384177689501334080">"ଅଫ୍ ଅଛି"</string>
+ <string name="labelCFB" msgid="6139853033106283172">"ବ୍ୟସ୍ତଥିବା ବେଳେ"</string>
+ <string name="messageCFB" msgid="3711089705936187129">"ବ୍ୟସ୍ତ ଥିବା ବେଳେ ନମ୍ବର୍"</string>
+ <string name="sum_cfb_enabled" msgid="5984198104833116690">"<xliff:g id="PHONENUMBER">{0}</xliff:g>କୁ ଫରୱାର୍ଡ କରାଯାଉଛି"</string>
+ <string name="sum_cfb_disabled" msgid="4913145177320506827">"ଅଫ୍ ଅଛି"</string>
+ <string name="disable_cfb_forbidden" msgid="3506984333877998061">"ଆପଣଙ୍କର ଫୋନ୍ ବ୍ୟସ୍ତ ଥିବାବେଳେ ଆପଣଙ୍କର ଅପରେଟର୍ କଲ୍ ଫର୍ୱାର୍ଡିଙ୍ଗକୁ ଅକ୍ଷମ କରିବାରେ ସପୋର୍ଟ କରିବେ ନାହିଁ।"</string>
+ <string name="labelCFNRy" msgid="1736067178393744351">"ଉତ୍ତର ଦେଉନଥିବା ବେଳେ"</string>
+ <string name="messageCFNRy" msgid="672317899884380374">"ଉତ୍ତର ଦେଉନଥିବା ବେଳେ ନମ୍ବର୍"</string>
+ <string name="sum_cfnry_enabled" msgid="6955775691317662910">"<xliff:g id="PHONENUMBER">{0}</xliff:g>କୁ ଫରୱାର୍ଡ କରାଯାଉଛି"</string>
+ <string name="sum_cfnry_disabled" msgid="3884684060443538097">"ଅଫ୍ ଅଛି"</string>
+ <string name="disable_cfnry_forbidden" msgid="4308233959150658058">"ଆପଣଙ୍କର ଫୋନ୍ ଉତ୍ତର ଦେଇନପାରିବାବେଳେ ଆପଣଙ୍କର ଅପରେଟର୍ କଲ୍ ଫର୍ୱାର୍ଡିଙ୍ଗକୁ ଅକ୍ଷମ କରିବାରେ ସପୋର୍ଟ କରିବେ ନାହିଁ।"</string>
+ <string name="labelCFNRc" msgid="2614827454402079766">"ଅପହଞ୍ଚ ଦୂରତାରେ ଥିବା ବେଳେ"</string>
+ <string name="messageCFNRc" msgid="6380695421020295119">"ଅପହଞ୍ଚ ଦୂରତାରେ ଥିବା ବେଳେ ନମ୍ବର୍"</string>
+ <string name="sum_cfnrc_enabled" msgid="7010898346095497421">"<xliff:g id="PHONENUMBER">{0}</xliff:g>କୁ ଫରୱାର୍ଡ କରାଯାଉଛି"</string>
+ <string name="sum_cfnrc_disabled" msgid="2684474391807469832">"ଅଫ୍ ଅଛି"</string>
+ <string name="disable_cfnrc_forbidden" msgid="5646361343094064333">"ଆପଣଙ୍କର ଫୋନ୍ ଅପହଞ୍ଚ ଦୂରତାରେ ଥିବାବେଳେ ଆପଣଙ୍କର କେରିଅର୍ କଲ୍ ଫର୍ୱାର୍ଡିଙ୍ଗକୁ ଅକ୍ଷମ କରିବାରେ ସପୋର୍ଟ କରିବେ ନାହିଁ।"</string>
+ <string name="updating_title" msgid="6146755386174019046">"କଲ୍ ସେଟିଙ୍ଗ"</string>
+ <string name="call_settings_admin_user_only" msgid="4526094783818216374">"କଲ୍ ସେଟିଙ୍ଗକୁ କେବଳ ଆଡମିନ୍ ୟୁଜର୍ ବଦଳାଇପାରିବେ।"</string>
+ <string name="call_settings_with_label" msgid="3401177261468593519">"ସେଟିଙ୍ଗ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="error_updating_title" msgid="7970259216988931777">"କଲ୍ ସେଟିଙ୍ଗରେ ତ୍ରୁଟି"</string>
+ <string name="reading_settings" msgid="1920291699287055284">"ସେଟିଙ୍ଗକୁ ପଢ଼ାଯାଉଛି…"</string>
+ <string name="updating_settings" msgid="8171225533884883252">"ସେଟିଙ୍ଗ ଅପଡେଟ୍ ହେଉଛି…"</string>
+ <string name="reverting_settings" msgid="4752151682666912828">"ସେଟିଙ୍ଗକୁ ଫେରାଇଅଣାଯାଉଛି…"</string>
+ <string name="response_error" msgid="6674110501330139405">"ନେଟ୍ୱର୍କରୁ ଆଶା କରାଯାଇନଥିବା ଉତ୍ତର ମିଳିଲା।"</string>
+ <string name="exception_error" msgid="7027667130619518211">"ନେଟ୍ୱର୍କ କିମ୍ବା SIM କାର୍ଡରେ ତ୍ରୁଟି।"</string>
+ <string name="stk_cc_ss_to_dial_error" msgid="4440038807310535377">"SS ଅନୁରୋଧକୁ ସ୍ଵାଭାବିକ କଲ୍ରେ ପରିବର୍ତ୍ତନ କରାଗଲା"</string>
+ <string name="stk_cc_ss_to_ussd_error" msgid="6095812685884176176">"SS ଅନୁରୋଧ, USSD ଅନୁରୋଧକୁ ପରିବର୍ତ୍ତନ ହେଲା"</string>
+ <string name="stk_cc_ss_to_ss_error" msgid="7920654012697945858">"ନୂଆ SS ଅନୁରୋଧରେ ପରିବର୍ତ୍ତନ ହେଲା"</string>
+ <string name="stk_cc_ss_to_dial_video_error" msgid="3873905132181743781">"SS ଅନୁରୋଧକୁ ଭିଡିଓ କଲ୍ରେ ପରିବର୍ତ୍ତନ କରାଗଲା"</string>
+ <string name="fdn_check_failure" msgid="18200614306525434">"ଆପଣଙ୍କ ଫୋନ୍ ଆପ୍ର ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍ ସେଟିଙ୍ଗ ଚାଲୁଅଛି। ପରିଣାମସ୍ଵରୂପ କଲ୍ ସମ୍ପର୍କିତ କିଛି ଫିଚର୍ କାମ କରୁନାହିଁ।"</string>
+ <string name="radio_off_error" msgid="2304459933248513376">"ଏହି ସେଟିଙ୍ଗକୁ ଦେଖିବା ପୂର୍ବରୁ ରେଡିଓକୁ ଚାଲୁ କରନ୍ତୁ।"</string>
+ <string name="close_dialog" msgid="2365884406356986917">"ଠିକ୍ ଅଛି"</string>
+ <string name="enable" msgid="7248657275000173526">"ଚାଲୁ କରନ୍ତୁ"</string>
+ <string name="disable" msgid="4678348128118573672">"ବନ୍ଦ କରନ୍ତୁ"</string>
+ <string name="change_num" msgid="239476305819844391">"ଅପଡେଟ୍ କରନ୍ତୁ"</string>
+ <string-array name="clir_display_values">
+ <item msgid="5560134294467334594">"ନେଟ୍ୱର୍କ ଡିଫଲ୍ଟ"</item>
+ <item msgid="7876195870037833661">"ସଂଖ୍ୟାକୁ ଲୁଚାନ୍ତୁ"</item>
+ <item msgid="1108394741608734023">"ସଂଖ୍ୟାକୁ ଦେଖାନ୍ତୁ"</item>
+ </string-array>
+ <string name="vm_changed" msgid="380744030726254139">"ଭଏସମେଲ୍ ନମ୍ବର୍ ବଦଳିଗଲା।"</string>
+ <string name="vm_change_failed" msgid="3352934863246208918">"ଭଏସମେଲ୍ ନମ୍ବର୍ ବଦଳାଯାଇପାରିଲା ନାହିଁ। \nଯଦି ଏହି ସମସ୍ୟା ଜାରିରୁହେ ତେବେ ନିଜର କେରିଅର୍ଙ୍କ ସହ ସମ୍ପର୍କ କରନ୍ତୁ।"</string>
+ <string name="fw_change_failed" msgid="5298103228470214665">"ଫଏୱାର୍ଡିଙ୍ଗ ନମ୍ବର୍କୁ ବଦଳାଇହେଲା ନାହିଁ। \n ଯଦି ଏହି ସମସ୍ୟା ଜାରିରୁହେ ତେବେ ନିଜର କେରିଅର୍ଙ୍କ ସହ ସମ୍ପର୍କ କରନ୍ତୁ।"</string>
+ <string name="fw_get_in_vm_failed" msgid="8862896836093833973">"ସାମ୍ପ୍ରତିକ ଫର୍ୱାର୍ଡିଙ୍ଗ ନମ୍ବର୍ ସେଟିଙ୍ଗକୁ ପୁନଃପ୍ରାପ୍ତ ଓ ସେଭ୍ କରିହେଲା ନାହିଁ। \nଯେକୌଣସି ଭାବେ ନୂଆ ପ୍ରଦାତାଙ୍କୁ ସ୍ଵିଚ୍ କରିବେ?"</string>
+ <string name="no_change" msgid="3186040086622435212">"କୌଣସି ପରିବର୍ତ୍ତନ କରାଯାଇନାହିଁ|"</string>
+ <string name="sum_voicemail_choose_provider" msgid="59911196126278922">"ଭଏସ୍ମେଲ୍ ସେବାକୁ ଚୟନ କରନ୍ତୁ"</string>
+ <string name="voicemail_default" msgid="2001233554889016880">"ଆପଣଙ୍କ କେରିଅର୍"</string>
+ <string name="vm_change_pin_old_pin" msgid="7295220109886682573">"ପୁରୁଣା PIN"</string>
+ <string name="vm_change_pin_new_pin" msgid="5412922262839438097">"ନୂଆ PIN"</string>
+ <string name="vm_change_pin_progress_message" msgid="3977357361934350336">"ଦୟାକରି ଅପେକ୍ଷା କରନ୍ତୁ…"</string>
+ <string name="vm_change_pin_error_too_short" msgid="5974971097302710497">"ନୂଆ PIN ଅତିଛୋଟ ଅଟେ।"</string>
+ <string name="vm_change_pin_error_too_long" msgid="8476870806115051865">"ନୂଆ PIN ଅତିଲମ୍ବା ଅଟେ।"</string>
+ <string name="vm_change_pin_error_too_weak" msgid="7883744811891784882">"ନୂଆ PIN ଅତି ଦୂର୍ବଳ ଅଟେ। ଗୋଟିଏ ସୁରକ୍ଷିତ ପାସ୍ୱର୍ଡରେ ନିରନ୍ତର କ୍ରମରେ କିମ୍ବା ଦୋହରାଯାଇଥିବା ସଂଖ୍ୟା କଦାପି ରହିବ ନାହିଁ।"</string>
+ <string name="vm_change_pin_error_mismatch" msgid="2754685537970757317">"ପୁରୁଣା PIN ଆଦୌ ମେଳ ହେଉନାହିଁ।"</string>
+ <string name="vm_change_pin_error_invalid" msgid="3972205462701668653">"ନୂଆ PINରେ ଅବୈଧ ଅକ୍ଷର ଅଛି।"</string>
+ <string name="vm_change_pin_error_system_error" msgid="6610603326230000207">"PINକୁ ବଦଳାଇବାରେ ଅକ୍ଷମ"</string>
+ <string name="vvm_unsupported_message_format" msgid="11795090778411977">"ସପୋର୍ଟ ନଥିବା ମେସେଜ୍ର ପ୍ରକାର, ଶୁଣିବା ପାଇଁ <xliff:g id="NUMBER">%s</xliff:g>କୁ କଲ୍ କରନ୍ତୁ।"</string>
+ <string name="network_settings_title" msgid="514120489499925574">"ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ"</string>
+ <string name="label_available" msgid="1181658289009300430">"ଉପଲବ୍ଧ ଥିବା ନେଟ୍ୱର୍କ"</string>
+ <string name="load_networks_progress" msgid="5230707536168902952">"ଖୋଜୁଛି…"</string>
+ <string name="empty_networks_list" msgid="4249426905018815316">"କୌଣସି ନେଟ୍ୱର୍କ ମିଳୁନାହିଁ"</string>
+ <string name="network_query_error" msgid="8466081377231178298">"ନେଟ୍ୱର୍କ ମିଳୁନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ"</string>
+ <string name="register_on_network" msgid="9055203954040805084">"<xliff:g id="NETWORK">%s</xliff:g>ରେ ପଞ୍ଜୀକରଣ ହେଉଛି…"</string>
+ <string name="not_allowed" msgid="5613353860205691579">"ଆପଣଙ୍କର SIM କାର୍ଡ ଏହି ନେଟ୍ୱର୍କରେ କନେକ୍ଟ ହେବା ପାଇଁ ଅନୁମତି ଦେବ ନାହିଁ।"</string>
+ <string name="connect_later" msgid="2308119155752343975">"ବର୍ତ୍ତମାନ ଏହି ନେଟ୍ୱର୍କରେ କନେକ୍ଟ ହୋଇପାରିବ ନାହିଁ। ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
+ <string name="registration_done" msgid="495135664535876612">"ଏହି ନେଟ୍ୱର୍କରେ ପଞ୍ଜୀକୃତ କରାଯାଇଛି।"</string>
+ <string name="already_auto" msgid="6067116884321285507">"ପୂର୍ବରୁ ସ୍ଵାଚାଳିତ ଚୟନରେ ଅଛି।"</string>
+ <string name="select_automatically" msgid="1046727200631770962">"ସ୍ଵଚାଳିତ ଭାବେ ନେଟ୍ୱର୍କ ଚୟନ କରନ୍ତୁ"</string>
+ <string name="manual_mode_disallowed_summary" msgid="70662262085937277">"%1$s ସହ କନେକ୍ଟ ହେଲେ ଉପଲବ୍ଧ ହେବ ନାହିଁ"</string>
+ <string name="network_select_title" msgid="7733107364757544558">"ନେଟ୍ୱର୍କ"</string>
+ <string name="register_automatically" msgid="6017849844573519637">"ସ୍ଵଚାଳିତ ପଞ୍ଜୀକରଣ…"</string>
+ <string name="preferred_network_mode_title" msgid="2336624679902659306">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ପ୍ରକାର"</string>
+ <string name="preferred_network_mode_summary" msgid="1434820673166126609">"ନେଟ୍ୱର୍କ ଅପରେଟିଙ୍ଗ ମୋଡ୍କୁ ବଦଳାନ୍ତୁ"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="4048082093347807230">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ପ୍ରକାର"</string>
+ <string name="forbidden_network" msgid="4384929668343563440">"(ଅନୁମତିପ୍ରାପ୍ତ ନୁହେଁ)"</string>
+ <string name="choose_network_title" msgid="4023911977543009350">"ନେଟ୍ୱର୍କ ଚୟନ କରନ୍ତୁ"</string>
+ <string name="network_disconnected" msgid="2227251609006103194">"ଡିସ୍କନେକ୍ଟ କରାଗଲା"</string>
+ <string name="network_connected" msgid="1288589103624338857">"କନେନ୍ଟ ହୋଇଛି"</string>
+ <string name="network_connecting" msgid="4927203097283533783">"କନେନ୍ଟ ହେଉଛି..."</string>
+ <string name="network_could_not_connect" msgid="8254009365807767243">"କନେକ୍ଟ କରିହେଲା ନାହିଁ"</string>
+ <string-array name="preferred_network_mode_choices">
+ <item msgid="3628460389382468528">"ନିଜ ପସନ୍ଦର GSM/WCDMA"</item>
+ <item msgid="8442633436636425221">"କେବଳ GSM"</item>
+ <item msgid="2032314385791760810">"କେବଳ WCDMA"</item>
+ <item msgid="6334554401059422303">"GSM/WCDMA ଅଟୋ"</item>
+ <item msgid="1462198368200398663">"CDMA/EvDo ଅଟୋ"</item>
+ <item msgid="3611460019185359968">"CDMA ବିନା EvDo"</item>
+ <item msgid="545430093607698090">"କେବଳ EvDo"</item>
+ <item msgid="4286774020869405140">"CDMA/EvDo/GSM/WCDMA"</item>
+ <item msgid="4006002265696868538">"CDMA + LTE/EvDo"</item>
+ <item msgid="8973936140318359205">"GSM/WCDMA/LTE"</item>
+ <item msgid="3471059554252610472">"ଗ୍ଲୋବାଲ୍"</item>
+ <item msgid="2882615514545171802">"LTE"</item>
+ <item msgid="8076204422288290116">"LTE / WCDMA"</item>
+ <item msgid="3982984144824159726">"କେବଳ TDSCDMA"</item>
+ <item msgid="3686191974505922271">"TDSCDMA/WCDMA"</item>
+ <item msgid="7135671700201836475">"LTE/TDSCDMA"</item>
+ <item msgid="3736619459066330755">"TDSCDMA/GSM"</item>
+ <item msgid="4778666570887216861">"LTE/TDSCDMA/GSM"</item>
+ <item msgid="2952322596201849456">"TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="115984258536697617">"LTE/TDSCDMA/WCDMA"</item>
+ <item msgid="7957991936217192636">"LTE/TDSCDMA/GSM/WCDMA"</item>
+ <item msgid="2828588917858484655">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ <item msgid="4989979948139945854">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+ </string-array>
+ <string name="preferred_network_mode_wcdma_perf_summary" msgid="8521677230113533809">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: WCDMAକୁ ପସନ୍ଦ କରାଯାଇଛି"</string>
+ <string name="preferred_network_mode_gsm_only_summary" msgid="3352445413437453511">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: କେବଳ GSM"</string>
+ <string name="preferred_network_mode_wcdma_only_summary" msgid="2836897236221063413">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: କେବଳ WCDMA"</string>
+ <string name="preferred_network_mode_gsm_wcdma_summary" msgid="3161255745326408587">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: GSM / WCDMA"</string>
+ <string name="preferred_network_mode_cdma_summary" msgid="3175690187294334241">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: CDMA"</string>
+ <string name="preferred_network_mode_cdma_evdo_summary" msgid="8332063064712726618">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: CDMA / EvDo"</string>
+ <string name="preferred_network_mode_cdma_only_summary" msgid="1309770926198634150">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: କେବଳ CDMA"</string>
+ <string name="preferred_network_mode_evdo_only_summary" msgid="8472220691721269155">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: କେବଳ EvDo"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="4726682079415227330">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="574752287596469136">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="8455358514068283935">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="228702246343742853">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_global_summary" msgid="1633134285545730364">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: ଗ୍ଲୋବାଲ୍"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="9180775701594742750">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="633315028976225026">"ପସନ୍ଦଦାର୍ ନେଟ୍ୱର୍କ ମୋଡ୍: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_cdma_summary" msgid="3722647806454528426">"ନିଜ ପସନ୍ଦର ନେଟ୍ୱର୍କ ମୋଡ୍: LTE / CDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="8021016193718678775">"ପସନ୍ଦଦାର୍ ନେଟ୍ୱର୍କ ମୋଡ୍: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="2405154895437348623">"ପସନ୍ଦଦାର୍ ନେଟ୍ୱର୍କ ମୋଡ୍: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="2104702896644235637">"ପସନ୍ଦଦାର୍ ନେଟ୍ୱର୍କ ମୋଡ୍: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="4893784445338396204">"ପସନ୍ଦଦାର୍ ନେଟ୍ୱର୍କ ମୋଡ୍: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1815169717046729757">"ପସନ୍ଦଦାର୍ ନେଟ୍ୱର୍କ ମୋଡ୍: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="2195358773359424099">"ପସନ୍ଦଦାର୍ ନେଟ୍ୱର୍କ ମୋଡ୍: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="1181424059695667803">"ପସନ୍ଦଦାର୍ ନେଟ୍ୱର୍କ ମୋଡ୍: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2526539326505354382">"ପସନ୍ଦଦାର୍ ନେଟ୍ୱର୍କ ମୋଡ୍: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="8195248059196614939">"ପସନ୍ଦଦାର୍ ନେଟ୍ୱର୍କ ମୋଡ୍: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="5596733053095592791">"ପସନ୍ଦଦାର୍ ନେଟ୍ୱର୍କ ମୋଡ୍: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="call_category" msgid="5863978196309462052">"କଲ୍ କରାଯାଉଛି"</string>
+ <string name="network_operator_category" msgid="4830701959205735636">"ନେଟ୍ୱର୍କ"</string>
+ <string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"ଉନ୍ନତ 4G LTE ମୋଡ୍"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
+ <string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"ଭଏସ୍ ଓ ଅନ୍ୟାନ୍ୟ ଯୋଗାଯୋଗ(ପରାମର୍ଶିତ)କୁ ଉନ୍ନତ କରିବା ପାଇଁ LTE ସେବା ବ୍ୟବହାର କରନ୍ତୁ"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"ଭଏସ୍ ଓ ଅନ୍ୟାନ୍ୟ ଯୋଗାଯୋଗ(ପରାମର୍ଶିତ)କୁ ଉନ୍ନତ କରିବା ପାଇଁ 4G ସେବା ବ୍ୟବହାର କରନ୍ତୁ"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
+ <string name="data_enabled" msgid="5972538663568715366">"ଡାଟା ସକ୍ଷମ ହୋଇଛି"</string>
+ <string name="data_enable_summary" msgid="2382798156640007971">"ଡାଟାର ବ୍ୟବହାରକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
+ <string name="dialog_alert_title" msgid="6751344986194435476">"ଧ୍ୟାନଦିଅନ୍ତୁ"</string>
+ <string name="roaming" msgid="7894878421600247140">"ରୋମିଙ୍ଗ"</string>
+ <string name="roaming_enable" msgid="7331106985174381987">"ରୋମିଙ୍ଗ ବେଳେ ଡାଟା ସେବାଗୁଡିକୁ କନେକ୍ଟ କରନ୍ତୁ"</string>
+ <string name="roaming_disable" msgid="1843417228755568110">"ରୋମିଙ୍ଗ ବେଳେ ଡାଟା ସେବାଗୁଡିକୁ କନେକ୍ଟ କରନ୍ତୁ"</string>
+ <string name="roaming_reenable_message" msgid="6843814381576397939">"ଡାଟା ରୋମିଙ୍ଗ ବନ୍ଦ କରାଯାଇଛି। ଚାଲୁ କରିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ।"</string>
+ <string name="roaming_notification_title" msgid="4749053220884743110">"ମୋବାଇଲ୍ ଡାଟା କନେକ୍ସନ୍ ଉପଲବ୍ଧ ନାହିଁ"</string>
+ <string name="roaming_warning" msgid="1603164667540144353">"ଆପଣଙ୍କୁ ଅଧିକ ଦେୟ ଲାଗୁ ହୋଇପାରେ।"</string>
+ <string name="roaming_check_price_warning" msgid="7497570906830902550">"ମୂଲ୍ୟ ଜାଣିବା ପାଇଁ ନିଜର ନେଟ୍ୱର୍କ ପ୍ରଦାତାଙ୍କ ସହ ସମ୍ପର୍କ କରନ୍ତୁ।"</string>
+ <string name="roaming_alert_title" msgid="3654815360303826008">"ଡାଟା ରୋମିଙ୍ଗର ଅନୁମତି ଦେବେ?"</string>
+ <string name="data_usage_title" msgid="4042209259808900283">"ଆପ୍ ଦ୍ୱାରା ଡାଟା ବ୍ୟବହାର"</string>
+ <string name="data_usage_template" msgid="8526428824844656364">"<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="8074895510265488035">"ଆଧୁନିକ"</string>
+ <string name="carrier_settings_euicc" msgid="6714062862127226405">"ନେଟୱର୍କ କ୍ୟାରିଅର"</string>
+ <string name="keywords_carrier_settings_euicc" msgid="6861505396475991277">"ମୋବାଇଲ୍ ଓ ଇଣ୍ଟରନେଟ୍ ସେବା ପ୍ରଦାନକାରୀ କମ୍ପାନୀ, ଇସିମ୍, ସିମ୍, euicc, ମୋବାଇଲ୍ ଓ ଇଣ୍ଟରନେଟ୍ ସେବା ପ୍ରଦାନକାରୀ କମ୍ପାନୀକୁ ସ୍ଵିଚ୍ କରନ୍ତୁ, ମୋବାଇଲ୍ ଓ ଇଣ୍ଟରନେଟ୍ ସେବା ପ୍ରଦାନକାରୀ କମ୍ପାନୀକୁ ଯୋଡ଼ନ୍ତୁ"</string>
+ <string name="carrier_settings_euicc_summary" msgid="5115001942761995457">"<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="4661165467914727157">"ମୋବାଇଲ୍ ଡାଟା"</string>
+ <string name="mobile_data_settings_summary" msgid="5087255915840576895">"ମୋବାଇଲ୍ ନେଟ୍ୱର୍କକୁ ବ୍ୟବହାରକରି ଡାଟା ଆକ୍ସେସ୍ କରନ୍ତୁ"</string>
+ <string name="data_usage_disable_mobile" msgid="3577275288809667615">"ମୋବାଇଲ୍ ଡାଟା ବନ୍ଦ କରିବେ?"</string>
+ <string name="sim_selection_required_pref" msgid="7049424902961844236">"ମନୋନୟନ ଆବଶ୍ୟକ"</string>
+ <string name="sim_change_data_title" msgid="5332425991853799280">"ଡାଟା ସିମ୍ ବଦଳାଇବେ?"</string>
+ <string name="sim_change_data_message" msgid="2163963581444907496">"ମୋବାଇଲ୍ ଡାଟା ପାଇଁ <xliff:g id="OLD_SIM">%2$s</xliff:g> ବଦଳରେ <xliff:g id="NEW_SIM">%1$s</xliff:g> ବ୍ୟବହାର କରିବେ?"</string>
+ <string name="wifi_calling_settings_title" msgid="7741961465416430470">"ୱାଇ-ଫାଇ କଲିଙ୍ଗ"</string>
+ <string name="video_calling_settings_title" msgid="539714564273795574">"କେରିଅର୍ ଭିଡିଓ କଲିଙ୍ଗ"</string>
+ <string name="gsm_umts_options" msgid="6538311689850981686">"GSM/UMTS ବିକଳ୍ପ"</string>
+ <string name="cdma_options" msgid="4016822858172249884">"CDMA ବିକଳ୍ପ"</string>
+ <string name="throttle_data_usage" msgid="3715677828160555808">"ଡାଟାର ବ୍ୟବହାର"</string>
+ <string name="throttle_current_usage" msgid="8762280193043815361">"ବର୍ତ୍ତମାନ ସମୟରେ ବ୍ୟବହାର ହୋଇଥିବା ଡାଟା"</string>
+ <string name="throttle_time_frame" msgid="1915198770363734685">"ଡାଟା ବ୍ୟବହାର ହୋଇଥିବା ଅବଧି"</string>
+ <string name="throttle_rate" msgid="4710388992676803508">"ଡାଟା ରେଟ୍ ପଲିସୀ"</string>
+ <string name="throttle_help" msgid="243651091785169900">"ଅଧିକ ଜାଣନ୍ତୁ"</string>
+ <string name="throttle_status_subtext" msgid="1657318943142085170">"<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="6029276011123694701">"<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="7492763592720107737">"<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="7732763021560399960">"ଚକ୍ରର <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="2149102656120726855">"ଯଦି ଡାଟା ବ୍ୟବହାରର ସୀମା ପାର୍ କରିଯିବ ତେବେ ଡାଟା ରେଟ୍ <xliff:g id="USED">%1$d</xliff:g> Kb/sକୁ ହ୍ରାସ ପାଇବ"</string>
+ <string name="throttle_help_subtext" msgid="5217706521499010816">"ଆପଣଙ୍କ କେରିଅର୍ର ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ଡାଟା ବ୍ୟବହାର ନୀତି ବିଷୟରେ ଅଧିକ ସୂଚନା"</string>
+ <string name="cell_broadcast_sms" msgid="5584192824053625842">"ସେଲ୍ ପ୍ରସାରଣ SMS"</string>
+ <string name="enable_disable_cell_bc_sms" msgid="4851147873691392255">"ସେଲ୍ ପ୍ରସାରଣ SMS"</string>
+ <string name="cell_bc_sms_enable" msgid="6441688565738921084">"ସେଲ୍ ପ୍ରସାରଣ SMSକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="cell_bc_sms_disable" msgid="3398365088309408749">"ସେଲ୍ ପ୍ରସାରଣ SMSକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="cb_sms_settings" msgid="651715019785107312">"ସେଲ୍ ପ୍ରସାରଣ SMS ସେଟିଙ୍ଗ"</string>
+ <string name="enable_disable_emergency_broadcast" msgid="2157014609041245335">"ଜରରୀକାଳିନ ପ୍ରସାରଣ"</string>
+ <string name="emergency_broadcast_enable" msgid="2645980025414010211">"ଜରୁରୀକାଳିନ ପ୍ରସାରଣକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="emergency_broadcast_disable" msgid="3665199821267569426">"ଜରୁରୀକାଳିନ ପ୍ରସାରଣକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="enable_disable_administrative" msgid="6501582322182059412">"ଆଡମିନିଷ୍ଟ୍ରେଟିଭ୍"</string>
+ <string name="administrative_enable" msgid="1750086122962032235">"ଆଡମିନ୍ଙ୍କ ଦ୍ଵାରା ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="administrative_disable" msgid="8433273857248698539">"ଆଡମିନ୍ଙ୍କ ଦ୍ଵାରା ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="enable_disable_maintenance" msgid="1819693083025106678">"ରକ୍ଷଣାବେକ୍ଷଣ"</string>
+ <string name="maintenance_enable" msgid="8566636458770971189">"ରକ୍ଷଣାବେକ୍ଷଣକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="maintenance_disable" msgid="7340189100885066077">"ରକ୍ଷଣାବେକ୍ଷଣକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="general_news_settings" msgid="4968779723948432978">"ସାଧାରଣ ସମାଚାର"</string>
+ <string name="bf_news_settings" msgid="3935593091894685267">"ବ୍ୟାବସାୟିକ ଓ ଆର୍ଥିକ ସମାଚାର"</string>
+ <string name="sports_news_settings" msgid="7649399631270052835">"ଖେଳ ସମାଚାର"</string>
+ <string name="entertainment_news_settings" msgid="5051153952959405035">"ମନୋରଞ୍ଜନ ସମାଚାର"</string>
+ <string name="enable_disable_local" msgid="7890281063123416120">"ସ୍ଥାନୀୟ"</string>
+ <string name="local_enable" msgid="6370463247609136359">"ସ୍ଥାନୀୟ ସମାଚାରକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="local_disable" msgid="4405691986943795798">"ସ୍ଥାନୀୟ ସମାଚାରକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="enable_disable_regional" msgid="4905652414535565872">"ଆଞ୍ଚଳିକ"</string>
+ <string name="regional_enable" msgid="4434680415437834759">"ଆଞ୍ଚଳିକ ସମାଚାରକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="regional_disable" msgid="5359325527213850077">"ଆଞ୍ଚଳିକ ସମାଚାରକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="enable_disable_national" msgid="236278090206880734">"ଜାତୀୟ"</string>
+ <string name="national_enable" msgid="1172443648912246952">"ରାଷ୍ଟ୍ରୀୟ ସମାଚାରକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="national_disable" msgid="326018148178601166">"ରାଷ୍ଟ୍ରୀୟ ସମାଚାରକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="enable_disable_international" msgid="7535348799604565592">"ଆନ୍ତର୍ଜାତୀୟ"</string>
+ <string name="international_enable" msgid="5855356769925044927">"ଅନ୍ତରାଷ୍ଟ୍ରୀୟ ସମାଚାରକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="international_disable" msgid="2850648591041088931">"ଅନ୍ତରାଷ୍ଟ୍ରୀୟ ସମାଚାରକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="list_language_title" msgid="2841683501919760043">"ଭାଷା"</string>
+ <string name="list_language_summary" msgid="8109546531071241601">"ସମାଚାର ପାଇଁ ଭାଷାକୁ ଚୟନ କରନ୍ତୁ"</string>
+ <string-array name="list_language_entries">
+ <item msgid="6137851079727305485">"ଇଙ୍ଗଲିଶ୍"</item>
+ <item msgid="1151988412809572526">"ଫ୍ରେଞ୍ଚ"</item>
+ <item msgid="577840534704312665">"ସ୍ପାନିଶ୍"</item>
+ <item msgid="8385712091143148180">"ଜାପାନିଜ୍"</item>
+ <item msgid="1858401628368130638">"କୋରିଆନ୍"</item>
+ <item msgid="1933212028684529632">"ଚାଇନିଜ୍"</item>
+ <item msgid="1908428006803639064">"ହିବ୍ର୍ୟୁ"</item>
+ </string-array>
+ <string-array name="list_language_values">
+ <item msgid="1804908636436467150">"1"</item>
+ <item msgid="289708030346890334">"2"</item>
+ <item msgid="1121469729692402684">"3"</item>
+ <item msgid="2614093115912897722">"4"</item>
+ <item msgid="2411164639857960614">"5"</item>
+ <item msgid="5884448729274543324">"6"</item>
+ <item msgid="5511864807618312598">"7"</item>
+ </string-array>
+ <string name="list_language_dtitle" msgid="5442908726538951934">"ଭାଷା"</string>
+ <string name="enable_disable_local_weather" msgid="986967454867219114">"ସ୍ଥାନୀୟ ପାଣିପାଗ"</string>
+ <string name="local_weather_enable" msgid="6199315114382448922">"ସ୍ଥାନୀୟ ପାଣିପାଗକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="local_weather_disable" msgid="2510158089142626480">"ସ୍ଥାନୀୟ ପାଣିପାଗକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="enable_disable_atr" msgid="8339572391278872343">"ଏରିଆ ଟ୍ରାଫିକ୍ ରିପୋର୍ଟ"</string>
+ <string name="atr_enable" msgid="5541757457789181799">"କ୍ଷେତ୍ରର ଟ୍ରାଫିକ୍ ରିପୋର୍ଟକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="atr_disable" msgid="7085558154727596455">"କ୍ଷେତ୍ରର ଟ୍ରାଫିକ୍ ରିପୋର୍ଟକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="enable_disable_lafs" msgid="668189073721277199">"ସ୍ଥାନୀୟ ଏୟାରପୋର୍ଟ ଫ୍ଲାଇଟ୍ଗୁଡ଼ିକର ଉଡ଼ାଣ-ଅବତରଣ ସୂଚୀ"</string>
+ <string name="lafs_enable" msgid="2791978667205137052">"ସ୍ଥାନୀୟ ଏୟାରପୋର୍ଟ ଫ୍ଲାଇଟ୍ ଉଡ଼ାଣ-ଅବତରଣ ସୂଚୀକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="lafs_disable" msgid="2391212397725495350">"ସ୍ଥାନୀୟ ଏୟାରପୋର୍ଟ ଫ୍ଲାଇଟ୍ ଉଡ଼ାଣ-ଅବତରଣ ସୂଚୀକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="enable_disable_restaurants" msgid="6240381945336814024">"ରେଷ୍ଟୁରାଣ୍ଟଗୁଡ଼ିକ"</string>
+ <string name="restaurants_enable" msgid="5137657479469118847">"ରେଷ୍ଟୁରାଣ୍ଟକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="restaurants_disable" msgid="3678480270938424092">"ରେଷ୍ଟୁରାଣ୍ଟକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="enable_disable_lodgings" msgid="1822029172658551202">"ଲଜିଙ୍ଗ"</string>
+ <string name="lodgings_enable" msgid="3230042508992850322">"ଲଜିଙ୍ଗକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="lodgings_disable" msgid="3387879742320682391">"ଲଜିଙ୍ଗକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="enable_disable_retail_directory" msgid="1357809784475660303">"ରିଟେଲ୍ ଡାଇରେକ୍ଟୋରୀ"</string>
+ <string name="retail_directory_enable" msgid="3280626290436111496">"ରିଟେଲ୍ ଡାଇରେକ୍ଟୋରୀକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="retail_directory_disable" msgid="6479739816662879027">"ରିଟେଲ୍ ଡାଇରେକ୍ଟୋରୀକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="enable_disable_advertisements" msgid="5999495926176182128">"ବିଜ୍ଞାପନ"</string>
+ <string name="advertisements_enable" msgid="2050305021264683786">"ବିଜ୍ଞାପନକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="advertisements_disable" msgid="8350985908788707935">"ବିଜ୍ଞାପନକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="enable_disable_stock_quotes" msgid="6397810445293533603">"ଷ୍ଟକ୍ କ୍ଵୋଟ୍"</string>
+ <string name="stock_quotes_enable" msgid="4384802470887170543">"ଶେୟାର୍ର ଦାମ୍କୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="stock_quotes_disable" msgid="4781450084565594998">"ଶେୟାର୍ର ଦାମ୍କୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="enable_disable_eo" msgid="4863043263443942494">"ନିଯୁକ୍ତି ସୁଯୋଗ"</string>
+ <string name="eo_enable" msgid="8623559062015685813">"ନିଯୁକ୍ତି ସୁଯୋଗକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="eo_disable" msgid="3863812478090907609">"ନିଯୁକ୍ତି ସୁଯୋଗକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="enable_disable_mhh" msgid="908214593528968522">"ଚିକିତ୍ସା, ସ୍ଵାସ୍ଥ୍ୟ ଓ ସ୍ଵାସ୍ଥ୍ୟକେନ୍ଦ୍ର"</string>
+ <string name="mhh_enable" msgid="5544500632306446815">"ଚିକିତ୍ସା, ସ୍ଵାସ୍ଥ୍ୟ ଓ ସ୍ଵାସ୍ଥ୍ୟକେନ୍ଦ୍ରକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="mhh_disable" msgid="8998210550117117437">"ଚିକିତ୍ସା, ସ୍ଵାସ୍ଥ୍ୟ ଓ ସ୍ଵାସ୍ଥ୍ୟକେନ୍ଦ୍ରକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="enable_disable_technology_news" msgid="3517184627114999149">"ବୈଷୟିକ ସମାଚାର"</string>
+ <string name="technology_news_enable" msgid="7995209394210455181">"ବୈଷୟିକ ସମାଚାରକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="technology_news_disable" msgid="5483490380561851946">"ବୈଷୟିକ ସମାଚାରକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="enable_disable_multi_category" msgid="626771003122899280">"ବିବିଧ ଶ୍ରେଣୀ"</string>
+ <string name="multi_category_enable" msgid="1179299804641721768">"ବିବିଧ ଶ୍ରେଣୀକୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="multi_category_disable" msgid="880104702904139505">"ବିବିଧ ଶ୍ରେଣୀକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="network_lte" msgid="7702681952521375754">"LTE (ପ୍ରସ୍ତାବିତ)"</string>
+ <string name="network_4G" msgid="2723512640529983138">"4G (ପ୍ରସ୍ତାବିତ)"</string>
+ <string name="network_global" msgid="1323190488685355309">"ଗ୍ଲୋବାଲ୍"</string>
+ <string name="cdma_system_select_title" msgid="5757657769327732833">"ସିଷ୍ଟମ୍ ଚୟନ କରନ୍ତୁ"</string>
+ <string name="cdma_system_select_summary" msgid="60460043745797517">"CDMAର ରୋମିଙ୍ଗ ମୋଡ୍କୁ ବଦଳାନ୍ତୁ"</string>
+ <string name="cdma_system_select_dialogtitle" msgid="6083355415165359075">"ସିଷ୍ଟମ୍ ଚୟନ କରନ୍ତୁ"</string>
+ <string-array name="cdma_system_select_choices">
+ <item msgid="176474317493999285">"କେବଳ ହୋମ୍"</item>
+ <item msgid="1205664026446156265">"ସ୍ଵଚାଳିତ"</item>
+ </string-array>
+ <string name="cdma_subscription_title" msgid="1162564010076763284">"CDMA ସବସ୍କ୍ରିପଶନ୍"</string>
+ <string name="cdma_subscription_summary" msgid="2530890766115781140">"RUIM/SIM ଓ NV ମଧ୍ୟରେ ବଦଳ କରନ୍ତୁ"</string>
+ <string name="cdma_subscription_dialogtitle" msgid="2699527950523333110">"ସବସ୍କ୍ରିପଶନ୍"</string>
+ <string-array name="cdma_subscription_choices">
+ <item msgid="2258014151300708431">"RUIM/SIM"</item>
+ <item msgid="5127722015571873880">"NV"</item>
+ </string-array>
+ <string-array name="cdma_subscription_values">
+ <item msgid="7494167883478914080">"0"</item>
+ <item msgid="6043847456049107742">"1"</item>
+ </string-array>
+ <string name="cdma_activate_device" msgid="3793805892364814518">"ସକ୍ରିୟ ଡିଭାଇସ୍"</string>
+ <string name="cdma_lte_data_service" msgid="4255018217292548962">"ଡାଟା ସେବାକୁ ସେଟଅପ୍ କରନ୍ତୁ"</string>
+ <string name="carrier_settings_title" msgid="9028166176523012300">"କେରିଅର୍ ସେଟିଙ୍ଗ"</string>
+ <string name="fdn" msgid="7878832555095183202">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍"</string>
+ <string name="fdn_with_label" msgid="187084204115493366">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="manage_fdn_list" msgid="8777755791892122369">"FDN ତାଲିକା"</string>
+ <string name="fdn_list_with_label" msgid="7437232552210469217">"FDN ତାଲିକା (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="fdn_activation" msgid="2156479741307463576">"FDNକୁ ସକ୍ରିୟ କରିବା"</string>
+ <string name="fdn_enabled" msgid="5238109009915521240">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍କୁ ସକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="fdn_disabled" msgid="4700049736675368279">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍କୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="enable_fdn" msgid="3740191529180493851">"FDNକୁ ସକ୍ଷମ କରନ୍ତୁ"</string>
+ <string name="disable_fdn" msgid="7944020890722540616">"FDNକୁ ଅକ୍ଷମ କରନ୍ତୁ"</string>
+ <string name="change_pin2" msgid="2153563695382176676">"PIN2 ବଦଳାନ୍ତୁ"</string>
+ <string name="enable_fdn_ok" msgid="7215588870329688132">"FDNକୁ ଅକ୍ଷମ କରନ୍ତୁ"</string>
+ <string name="disable_fdn_ok" msgid="5727046928930740173">"FDNକୁ ସକ୍ଷମ କରନ୍ତୁ"</string>
+ <string name="sum_fdn" msgid="1959399454900272878">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍କୁ ପରିଚାଳନା କରନ୍ତୁ"</string>
+ <string name="sum_fdn_change_pin" msgid="6666549734792827932">"FDN ଆକ୍ସେସ୍ ପାଇଁ PIN ବଦଳାନ୍ତୁ"</string>
+ <string name="sum_fdn_manage_list" msgid="8431088265332628316">"ଫୋନ୍ ନମ୍ବର୍ ତାଲିକାକୁ ପରିଚାଳନା କରନ୍ତୁ"</string>
+ <string name="voice_privacy" msgid="3776841382844614716">"ଭଏସ୍ ଗୋପନୀୟତା"</string>
+ <string name="voice_privacy_summary" msgid="3159383389833516214">"ଉନ୍ନତ ଗୋପନିୟ ମୋଡ୍କୁ ସକ୍ଷମ କରନ୍ତୁ"</string>
+ <string name="tty_mode_option_title" msgid="9033098925144434669">"TTY ମୋଡ୍"</string>
+ <string name="tty_mode_option_summary" msgid="1073835131534808732">"TTY ମୋଡ୍ ସେଟ୍ କରନ୍ତୁ"</string>
+ <string name="auto_retry_mode_title" msgid="4073265511427813322">"ଅଟୋ-ରିଟ୍ରାଏ କରନ୍ତୁ"</string>
+ <string name="auto_retry_mode_summary" msgid="4973886004067532288">"ଅଟୋ-ରିଟ୍ରାଏ ମୋଡ୍କୁ ସକ୍ଷମ କରନ୍ତୁ"</string>
+ <string name="tty_mode_not_allowed_video_call" msgid="3795846787901909176">"ଭିଡିଓ କଲ୍ କରିବା ସମୟରେ TTY ମୋଡ୍କୁ ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ ଅନୁମତି ନାହିଁ"</string>
+ <string name="menu_add" msgid="1882023737425114762">"ଯୋଗାଯୋଗକୁ ଯୋଡ଼ନ୍ତୁ"</string>
+ <string name="menu_edit" msgid="7143003705504672374">"ଯୋଗାଯୋଗକୁ ଏଡିଟ୍ କରନ୍ତୁ"</string>
+ <string name="menu_delete" msgid="3977150783449642851">"ଯୋଗାଯୋଗକୁ ଡିଲିଟ୍ କରନ୍ତୁ"</string>
+ <string name="menu_dial" msgid="3223106222819685808">"ଯୋଗାଯୋଗକୁ ଡାଏଲ୍ କରନ୍ତୁ"</string>
+ <string name="get_pin2" msgid="8204677063922225311">"PIN2 ଟାଇପ୍ କରନ୍ତୁ"</string>
+ <string name="name" msgid="7329028332786872378">"ନାମ"</string>
+ <string name="number" msgid="7905950798349903858">"ନମ୍ବର୍"</string>
+ <string name="save" msgid="4094274636321939086">"ସେଭ୍ କରନ୍ତୁ"</string>
+ <string name="add_fdn_contact" msgid="2481915899633353976">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍ ଯୋଡ଼ନ୍ତୁ"</string>
+ <string name="adding_fdn_contact" msgid="7627379633721940991">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍କୁ ଯୋଡ଼ାଯାଉଛି…"</string>
+ <string name="fdn_contact_added" msgid="7458335758501736665">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍ ଯୋଡ଼ାଗଲା।"</string>
+ <string name="edit_fdn_contact" msgid="7976936035587081480">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍କୁ ଏଡିଟ୍ କରନ୍ତୁ"</string>
+ <string name="updating_fdn_contact" msgid="8370929876849803600">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍ ଅପଡେଟ୍ ହେଉଛି…"</string>
+ <string name="fdn_contact_updated" msgid="5497828782609005017">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍ ଅପଡେଟ୍ କରାଗଲା।"</string>
+ <string name="delete_fdn_contact" msgid="6668958073074151717">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍କୁ ଡିଲିଟ୍ କରନ୍ତୁ"</string>
+ <string name="deleting_fdn_contact" msgid="5669163206349319969">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍ ଡିଲିଟ୍ ହେଉଛି…"</string>
+ <string name="fdn_contact_deleted" msgid="7154162327112259569">"ଫିକ୍ସଡ୍ ଡାଏଲିଙ୍ଗ ନମ୍ବର୍କୁ ଡିଲିଟ୍ କରାଗଲା।"</string>
+ <string name="pin2_invalid" msgid="5470854099230755944">"FDN ଅପଡେଟ୍ ହେଲା ନାହିଁ କାରଣ ଆପଣ ଗୋଟିଏ ଭୁଲ୍ PIN ଟାଇପ୍ କରିଥିଲେ।"</string>
+ <string name="fdn_invalid_number" msgid="2062898833049589309">"FDN ଅପଡେଟ୍ ହେଲା ନାହିଁ କାରଣ ନମ୍ବର୍ 20ଟି ସଂଖ୍ୟାରୁ ଅଧିକ ଅଛି।"</string>
+ <string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"FDN ଅପଡେଟ୍ ହୋଇନଥିଲା। PIN2 ଭୁଲ୍ ଥିଲା କିମ୍ବା ଫୋନ୍ ନମ୍ବର୍କୁ ଗ୍ରହଣ କରାଗଲା ନାହିଁ।"</string>
+ <string name="fdn_failed" msgid="540018079008319747">"FDN ଅପରେଶନ୍ ବିଫଳ ହେଲା।"</string>
+ <string name="simContacts_emptyLoading" msgid="2203331234764498011">"SIM କାର୍ଡରୁ ପଢ଼ାଯାଉଛି…"</string>
+ <string name="simContacts_empty" msgid="5270660846489561932">"ଆପଣଙ୍କ SIM କାର୍ଡରେ କୌଣସି ଯୋଗାଯୋଗ ନାହିଁ।"</string>
+ <string name="simContacts_title" msgid="1861472842524839921">"ଇମ୍ପୋର୍ଟ କରିବା ପାଇଁ ଯୋଗାଯୋଗକୁ ଚୟନ କରନ୍ତୁ"</string>
+ <string name="simContacts_airplaneMode" msgid="5254946758982621072">"SIM କାର୍ଡରୁ ଯୋଗାଯୋଗକୁ ଇମ୍ପୋର୍ଟ କରିବାବେଳେ ଏୟାରପ୍ଲେନ୍ ମୋଡ୍କୁ ବନ୍ଦ କରନ୍ତୁ।"</string>
+ <string name="enable_pin" msgid="5422767284133234860">"SIM PINକୁ ସକ୍ଷମ/ଅକ୍ଷମ କରନ୍ତୁ"</string>
+ <string name="change_pin" msgid="9174186126330785343">"ସିମ୍ ପିନ୍ ବଦାଳନ୍ତୁ"</string>
+ <string name="enter_pin_text" msgid="8532615714751931951">"ସିମ୍ PIN:"</string>
+ <string name="oldPinLabel" msgid="5287773661246368314">"ପୁରୁଣା PIN"</string>
+ <string name="newPinLabel" msgid="207488227285336897">"ନୂଆ PIN"</string>
+ <string name="confirmPinLabel" msgid="257597715098070206">"ନୂଆ PIN ନିଶ୍ଚିତ କରନ୍ତୁ"</string>
+ <string name="badPin" msgid="8955102849303984935">"ଆପଣ ଟାଇପ୍ କରିଥିବା ପୁରୁଣା PIN ଠିକ୍ ନୁହେଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
+ <string name="mismatchPin" msgid="5923253370683071889">"ଆପଣ ଟାଇପ୍ କରିଥିବା PINs ମେଳ ହେଉନାହିଁ। ପୁଣି ଥରେ ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
+ <string name="invalidPin" msgid="5981171102258684792">"4 ରୁ 8 ସଂଖ୍ୟା ବିଶିଷ୍ଟ ଏକ PIN ଟାଇପ୍ କରନ୍ତୁ।"</string>
+ <string name="disable_sim_pin" msgid="3419351358300716472">"SIM PINକୁ ଖାଲି କରନ୍ତୁ"</string>
+ <string name="enable_sim_pin" msgid="4845145659651484248">"SIM PINକୁ ସେଟ୍ କରନ୍ତୁ"</string>
+ <string name="enable_in_progress" msgid="3417917024688497010">"PIN ସେଟ୍ କରାଯାଉଛି…"</string>
+ <string name="enable_pin_ok" msgid="2918545971413270063">"PIN ସେଟ୍ ହୋଇଛି"</string>
+ <string name="disable_pin_ok" msgid="2109571368635883688">"PINକୁ ଖାଲି କରିଦିଆଗଲା"</string>
+ <string name="pin_failed" msgid="5644377896213584760">"PIN ଭୁଲ୍ ଅଛି"</string>
+ <string name="pin_changed" msgid="4455736268023261662">"PIN ଅପଡେଟ୍ ହୋଇଛି"</string>
+ <string name="puk_requested" msgid="5921393215789090200">"ଭୁଲ୍ ପାସ୍ୱର୍ଡ। ବର୍ତ୍ତମାନ PIN ଲକ୍ ହୋଇଗଲା। PUK2 ପାଇଁ ଅନୁରୋଧ କରାଯାଇଛି।"</string>
+ <string name="enter_pin2_text" msgid="8339444124477720345">"PIN2"</string>
+ <string name="oldPin2Label" msgid="8559146795026261502">"ପୁରୁଣା PIN2"</string>
+ <string name="newPin2Label" msgid="4573956902204349054">"ନୂଆ PIN2"</string>
+ <string name="confirmPin2Label" msgid="8100319484454787708">"ନୂଆ PIN2 ନିଶ୍ଚିତ କରନ୍ତୁ"</string>
+ <string name="badPuk2" msgid="7910064009531541708">"PUK2 ଭୁଲ୍ ଅଛି। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
+ <string name="badPin2" msgid="6646896629970023109">"ପୁରିଣା PIN2 ଭୁଲ୍ ଅଛି। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
+ <string name="mismatchPin2" msgid="4177967478551851117">"PINଗୁଡିକ ମେଳ ହେଉନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
+ <string name="invalidPin2" msgid="1757045131429105595">"ଗୋଟିଏ PIN2 ପ୍ରବେଶ କରନ୍ତୁ ଯାହା 4 ରୁ 8 ସଂଖ୍ୟାବିଶିଷ୍ଟ ଅଟେ।"</string>
+ <string name="invalidPuk2" msgid="7059081153334815973">"8 ସଂଖ୍ୟାବିଶିଷ୍ଟ ଗୋଟିଏ PUK2 ପ୍ରବେଶ କରନ୍ତୁ।"</string>
+ <string name="pin2_changed" msgid="3724522579945610956">"PIN2 ଅପଡେଟ୍ ହୋଇଛି"</string>
+ <string name="label_puk2_code" msgid="4688069961795341948">"PUK2 ହୋଡ୍ ପ୍ରବେଶ କରନ୍ତୁ"</string>
+ <string name="fdn_enable_puk2_requested" msgid="4991074891459554705">"ଭୁଲ୍ ପାସ୍ୱର୍ଡ। ବର୍ତ୍ତମାନ PIN2କୁ ଅବରୋଧ କରାଯାଇଛି। ପୁଣି ଚେଷ୍ଟା କରିବା ପାଇଁ PIN 2କୁ ବଦଳାନ୍ତୁ।"</string>
+ <string name="puk2_requested" msgid="5831015200030161434">"ଭୁଲ୍ ପାସ୍ୱର୍ଡ। ବର୍ତ୍ତମାନ SIM ଲକ୍ ହୋଇଗଲା। PUK2କୁ ପ୍ରବେଶ କରନ୍ତୁ।"</string>
+ <string name="puk2_blocked" msgid="3150263853077280049">"PUK2କୁ ସ୍ଥାୟୀରୂପେ ଅବରୋଧ କରାଯାଇଛି।"</string>
+ <string name="pin2_attempts" msgid="720736232885011507">\n"ଆପଣଙ୍କର <xliff:g id="NUMBER">%d</xliff:g>ଟି ସୁଯୋଗ ବଳକା ଅଛି।"</string>
+ <string name="pin2_unblocked" msgid="7791600368153469078">"PIN2କୁ ଆଉ ଅବରୋଧ କରାଯାଇନାହିଁ"</string>
+ <string name="pin2_error_exception" msgid="1088689322248996699">"ନେଟ୍ୱର୍କ କିମ୍ବା SIM କାର୍ଡ ତ୍ରୁଟି"</string>
+ <string name="doneButton" msgid="2859593360997984240">"ହୋଇଗଲା"</string>
+ <string name="voicemail_settings_number_label" msgid="8524164258691887790">"ଭଏସମେଲ୍ ନମ୍ବର୍"</string>
+ <string name="card_title_dialing" msgid="5769417478498348054">"ଡାଏଲ୍ କରାଯାଉଛି"</string>
+ <string name="card_title_redialing" msgid="8253487008234167266">"ପୁନଃଡାଏଲ୍ କରନ୍ତୁ"</string>
+ <string name="card_title_conf_call" msgid="1162980346189744501">"କନ୍ଫରେନ୍ସ କଲ୍"</string>
+ <string name="card_title_incoming_call" msgid="7364539451234646909">"ଇନ୍କମିଙ୍ଗ କଲ୍"</string>
+ <string name="card_title_call_ended" msgid="5544730338889702298">"କଲ୍ ସମାପ୍ତ ହେଲା"</string>
+ <string name="card_title_on_hold" msgid="821463117892339942">"ହୋଲ୍ଡରେ ଅଛି"</string>
+ <string name="card_title_hanging_up" msgid="3999101620995182450">"କଲ୍ ସମାପ୍ତ ହେଉଛି"</string>
+ <string name="card_title_in_call" msgid="6346543933068225205">"କଲ୍ରେ ଅଛନ୍ତି"</string>
+ <string name="notification_voicemail_title" msgid="8933468752045550523">"ନୂଆ ଭଏସମେଲ୍"</string>
+ <string name="notification_voicemail_title_count" msgid="4366360747660929916">"ନୂଆ ଭଏସମେଲ୍ (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+ <string name="notification_voicemail_text_format" msgid="4447323569453981685">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>କୁ ଡାଏଲ୍ କରନ୍ତୁ"</string>
+ <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"ଭଏସ୍ ମେଲ୍ ନମ୍ବର୍ ଅଜଣା"</string>
+ <string name="notification_network_selection_title" msgid="4224455487793492772">"କୌଣସି ସେବା ନାହିଁ"</string>
+ <string name="notification_network_selection_text" msgid="7550380440576731104">"ଚୟନିତ ନେଟ୍ୱର୍କ <xliff:g id="OPERATOR_NAME">%s</xliff:g> ଉପଲବ୍ଧ ନାହିଁ"</string>
+ <string name="incall_error_power_off" product="watch" msgid="2007450435656211658">"କଲ୍ କରିବା ପାଇଁ ମୋବାଇଲ୍ ନେଟ୍ୱର୍କକୁ ଚାଲୁ କରନ୍ତୁ, ଏୟାରପ୍ଲେନ୍ ମୋଡ୍କୁ ବନ୍ଦ କରନ୍ତୁ କିମ୍ବା ବ୍ୟାଟେରୀ ସେଭର୍କୁ ବନ୍ଦ କରନ୍ତୁ।"</string>
+ <string name="incall_error_power_off" product="default" msgid="2947938060513306698">"ଗୋଟିଏ କଲ୍ କରିବା ପାଇଁ ଏୟାରପ୍ଲେନ୍ ମୋଡ୍କୁ ବନ୍ଦ କରନ୍ତୁ।"</string>
+ <string name="incall_error_power_off_wfc" msgid="8711428920632416575">"ଗୋଟିଏ କଲ୍ କରିବା ପାଇଁ ଏୟାରପ୍ଲେନ୍ ମୋଡ୍କୁ ବନ୍ଦ କରନ୍ତୁ କିମ୍ବା ଏକ ତାରବିହୀନ ନେଟ୍ୱର୍କ ସହ କନେକ୍ଟ କରନ୍ତୁ।"</string>
+ <string name="incall_error_ecm_emergency_only" msgid="738708660612388692">"ଗୋଟିଏ ସାଧାରଣ କଲ୍ କରିବା ପାଇଁ ଜରୁରିକାଳୀନ କଲବ୍ୟାକ୍ ମୋଡ୍ରୁ ବାହାରି ଆସନ୍ତୁ।"</string>
+ <string name="incall_error_emergency_only" msgid="4678640422710818317">"ନେଟ୍ୱର୍କରେ ପଞ୍ଜୀକୃତ କରାଯାଇନାହିଁ।"</string>
+ <string name="incall_error_out_of_service" msgid="8587993036435080418">"ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ଉପଲବ୍ଧ ନାହିଁ।"</string>
+ <string name="incall_error_out_of_service_wfc" msgid="8741629779555132471">"ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ଉପଲବ୍ଧ ନାହିଁ। କଲ୍ କରିବା ପାଇଁ ଗୋଟିଏ ତାରବିହୀନ ନେଟ୍ୱର୍କରେ କନେକ୍ଟ କରନ୍ତୁ"</string>
+ <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"ଗୋଟିଏ କଲ୍ କରିବା ପାଇଁ ଏକ ବୈଧ ନମ୍ବର୍ ପ୍ରବେଶ କରନ୍ତୁ।"</string>
+ <string name="incall_error_call_failed" msgid="5891978320269774095">"କଲ୍ ହେଲା ନାହିଁ।"</string>
+ <string name="incall_error_cannot_add_call" msgid="8878159278947023326">"ଏବେ କଲ୍କୁ ଯୋଡ଼ାଯାଇପାରିବ ନାହିଁ। ଆପଣ ମେସେଜ୍ ପଠାଇ ସମ୍ପର୍କ କରିବା ପାଇଁ ଚେଷ୍ଟା କରିପାରନ୍ତି।"</string>
+ <string name="incall_error_supp_service_unknown" msgid="655570339115407698">"ସେବା ସପୋର୍ଟ କରୁନାହିଁ"</string>
+ <string name="incall_error_supp_service_switch" msgid="5237002176899962862">"କଲ୍କୁ ସ୍ଵିଚ୍ କରିହେବ ନାହିଁ।"</string>
+ <string name="incall_error_supp_service_resume" msgid="7147983409782027448">"କଲ୍କୁ ପୁଣି ଆରମ୍ଭ କରିହେବ ନାହିଁ।"</string>
+ <string name="incall_error_supp_service_separate" msgid="7224393405134545246">"କଲ୍କୁ ଅଲଗା କରିହେବ ନାହିଁ।"</string>
+ <string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"ଟ୍ରାନ୍ସଫର୍ କରିହେବ ନାହିଁ।"</string>
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"କଲ୍ଗୁଡିକୁ ମିଶ୍ରଣ କରାଯାଇପାରିଲା ନାହିଁ।"</string>
+ <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"କଲ୍କୁ ପ୍ରତ୍ୟାକ୍ଷାନ କରିହେବ ନାହିଁ।"</string>
+ <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"କଲ୍(ଗୁଡ଼ିକୁ)କୁ ରିଲିଜ୍ କରାଯାଇପରିବ ନାହିଁ।"</string>
+ <string name="incall_error_supp_service_hold" msgid="7967020511232222078">"କଲ୍କୁ ହୋଲ୍ଡ କରାଯାଇପାରିବ ନାହିଁ।"</string>
+ <string name="incall_error_wfc_only_no_wireless_network" msgid="1782466780452640089">"ଗୋଟିଏ କଲ୍ କରିବା ପାଇଁ ଏକ ତାରବିହୀନ ନେଟ୍ୱର୍କ ସହ କନେକ୍ଟ କରନ୍ତୁ।"</string>
+ <string name="incall_error_promote_wfc" msgid="106510757624022064">"ଗୋଟିଏ କଲ୍ କରିବା ପାଇଁ ୱାଇ-ଫାଇ କଲିଙ୍ଗକୁ ସକ୍ଷମ କରନ୍ତୁ।"</string>
+ <string name="emergency_information_hint" msgid="399011533038204351">"ଆପତ୍ତକାଳୀନ ସୂଚନା"</string>
+ <string name="emergency_information_owner_hint" msgid="688331472291637149">"ମାଲିକ"</string>
+ <string name="emergency_information_confirm_hint" msgid="4039012670779853030">"ସୂଚନା ଦେଖିବାକୁ ପୁଣିଥରେ ଟାପ୍ କରନ୍ତୁ"</string>
+ <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"ଜରୁରୀକାଳିନ କଲ୍"</string>
+ <string name="emergency_dialpad_title" msgid="6052294225467269233">"କେବଳ ଜରୁରୀକାଳୀନ କଲ୍"</string>
+ <string name="single_emergency_number_title" msgid="4959203129714396515">"ଜରୁରୀକାଳୀନ ନମ୍ବର୍"</string>
+ <string name="numerous_emergency_numbers_title" msgid="754158099451343898">"ଜରୁରୀକାଳୀନ ନମ୍ବର୍"</string>
+ <string name="emergency_call_shortcut_hint" msgid="6506167229097004348">"<xliff:g id="EMERGENCY_NUMBER">%s</xliff:g>ରେ କଲ୍ କରନ୍ତୁ"</string>
+ <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ରେଡିଓକୁ ଚାଲୁ କରାଯାଉଛି…"</string>
+ <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"କୌଣସି ସେବା ନାହିଁ। ପୁଣି ଚେଷ୍ଟାକରାଯାଉଛି…"</string>
+ <string name="radio_off_during_emergency_call" msgid="2535800034010306830">"ଗୋଟିଏ ଜରୁରିକାଳୀନ କଲ୍ କରିବାବେଳେ ଏୟାରପ୍ଲେନ୍ ମୋଡ୍କୁ ପ୍ରବେଶ କରାଯାଇପାରିବ ନାହିଁ।"</string>
+ <string name="dial_emergency_error" msgid="1509085166367420355">"କଲ୍ କରିପାରିବେ ନାହିଁ। <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ଗୋଟିଏ ଜରୁରିକାଳୀନ ନମ୍ବର୍ ନୁହେଁ।"</string>
+ <string name="dial_emergency_empty_error" msgid="9130194953830414638">"କଲ୍ କରିପାରିବେ ନାହିଁ। ଗୋଟିଏ ଜରୁରିକାଳୀନ ନମ୍ବର୍ ଡାଏଲ୍ କରନ୍ତୁ।"</string>
+ <string name="dial_emergency_calling_not_available" msgid="5675557523782491826">"ଜରୁରିକାଳୀନ କଲ୍ କରିବା ଉପଲବ୍ଧ ନାହିଁ"</string>
+ <string name="police_type_description" msgid="5324410799919829693">"ପୋଲିସ୍"</string>
+ <string name="ambulance_type_description" msgid="4114815025408089866">"ଆମ୍ବୁଲେନ୍ସ"</string>
+ <string name="fire_type_description" msgid="7145996705197064710">"ନିଆଁ"</string>
+ <string name="description_concat_format" msgid="7141070875487870177">"%1$s, %2$s"</string>
+ <string name="dialerKeyboardHintText" msgid="9192914825413747792">"ଡାଏଲ୍ କରିବା ପାଇଁ କୀବୋର୍ଡକୁ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+ <string name="onscreenHoldText" msgid="2285258239691145872">"ହୋଲ୍ଡ କରନ୍ତୁ"</string>
+ <string name="onscreenEndCallText" msgid="4403855834875398585">"ସମାପ୍ତ କରନ୍ତୁ"</string>
+ <string name="onscreenShowDialpadText" msgid="8561805492659639893">"ଡାଏଲପ୍ୟାଡ୍"</string>
+ <string name="onscreenMuteText" msgid="5011369181754261374">"ମ୍ୟୁଟ୍ କରନ୍ତୁ"</string>
+ <string name="onscreenAddCallText" msgid="5140385634712287403">"କଲ୍କୁ ଯୋଡ଼ନ୍ତୁ"</string>
+ <string name="onscreenMergeCallsText" msgid="6640195098064538950">"କଲ୍କୁ ମର୍ଜ କରନ୍ତୁ"</string>
+ <string name="onscreenSwapCallsText" msgid="1602990689244030047">"ସ୍ଵାପ୍ କରନ୍ତୁ"</string>
+ <string name="onscreenManageCallsText" msgid="5473231160123254154">"କଲ୍ ପରିଚାଳନା କରନ୍ତୁ"</string>
+ <string name="onscreenManageConferenceText" msgid="6485935856534311346">"କନଫରେନ୍ସ ପରିଚାଳନା କରନ୍ତୁ"</string>
+ <string name="onscreenAudioText" msgid="1710087112800041743">"ଅଡିଓ"</string>
+ <string name="onscreenVideoCallText" msgid="4800924186056115442">"ଭିଡିଓ କଲ୍ କରନ୍ତୁ"</string>
+ <string name="importSimEntry" msgid="6614358325359736031">"ଇମ୍ପୋର୍ଟ କରନ୍ତୁ"</string>
+ <string name="importAllSimEntries" msgid="1503181169636198673">"ସମସ୍ତ ଇମ୍ପୋର୍ଟ କରନ୍ତୁ"</string>
+ <string name="importingSimContacts" msgid="7374056215462575769">"SIMରେ ଥିବା ଯୋଗାଯୋଗକୁ ଇମ୍ପୋର୍ଟ କରାଯାଉଛି"</string>
+ <string name="importToFDNfromContacts" msgid="2130620207013368580">"ଯୋଗଯୋଗରୁ ଇମ୍ପୋର୍ଟ କରନ୍ତୁ"</string>
+ <string name="singleContactImportedMsg" msgid="6868483416182599206">"ଇମ୍ପୋର୍ଟ କରାଯାଇଥିବା ଯୋଗାଯୋଗ"</string>
+ <string name="failedToImportSingleContactMsg" msgid="415399285420353917">"ଯୋଗଯୋଗକୁ ଇମ୍ପୋର୍ଟ କରିବାରେ ବିଫଳ ହେଲା"</string>
+ <string name="hac_mode_title" msgid="8740268574688743289">"ଶ୍ରବଣ ଯନ୍ତ୍ର"</string>
+ <string name="hac_mode_summary" msgid="6833851160514929341">"ଶ୍ରବଣ ଯନ୍ତ୍ର କମ୍ପ୍ୟାଟିବିଲିଟୀକୁ ଚାଲୁ କରନ୍ତୁ"</string>
+ <string name="rtt_mode_title" msgid="6954652435543570121">"ରିଅଲ୍-ଟାଇମ୍ ଟେକ୍ସଟ୍ (RTT) କଲ୍"</string>
+ <string name="rtt_mode_summary" msgid="5146344277246544580">"ଭଏସ୍ କଲ୍ କରିବା ମଧ୍ୟରେ ମେସେଜ୍ କରିବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
+ <string name="rtt_mode_more_information" msgid="6080420780730383030">"RTT ସେହି କଲର୍ମାନଙ୍କୁ ସହାୟତା କରିଥାଏ, ଯେଉଁମାନେ ବଧିର, କ୍ଷୀଣ ଶ୍ରବଣଶକ୍ତି, ମୂକ କିମ୍ବା ଭଏସ୍ ଅପେକ୍ଷା ଅଧିକ କିଛି ଆବଶ୍ୟକ କରନ୍ତି। <br> <a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>>ଅଧିକ ଜାଣନ୍ତୁ</a>\n <br><br> - ମେସେଜ୍ ଟ୍ରାନସ୍କ୍ରିପ୍ଟ ଭାବେ RTT କଲ୍ ସେଭ୍ ହୋଇଛି\n <br> - ଭିଡିଓ କଲ୍ ପାଇଁ RTT ଉପଲବ୍ଧ ନାହିଁ"</string>
+ <string-array name="tty_mode_entries">
+ <item msgid="512950011423868021">"TTY ବନ୍ଦ ଅଛି"</item>
+ <item msgid="3971695875449640648">"TTY ପୂର୍ଣ୍ଣ"</item>
+ <item msgid="1937509904407445684">"TTY HCO"</item>
+ <item msgid="5644925873488772224">"TTY VCO"</item>
+ </string-array>
+ <string name="dtmf_tones_title" msgid="5163153771291340803">"DTMF ଟୋନ୍"</string>
+ <string name="dtmf_tones_summary" msgid="3351820372864020331">"DTMF ଟୋନ୍ର ଦୀର୍ଘତାକୁ ସେଟ୍ କରନ୍ତୁ"</string>
+ <string-array name="dtmf_tone_entries">
+ <item msgid="899650777817315681">"ସାଧାରଣ"</item>
+ <item msgid="2883365539347850535">"ଲମ୍ଵା"</item>
+ </string-array>
+ <string name="network_info_message" msgid="7738596060242881930">"ନେଟ୍ୱର୍କ ମେସେଜ୍"</string>
+ <string name="network_error_message" msgid="3394780436230411413">"ତ୍ରୁଟି ମେସେଜ୍"</string>
+ <string name="ota_title_activate" msgid="8616918561356194398">"ଆପଣଙ୍କର ଫୋନ୍କୁ ସକ୍ରିୟ କରନ୍ତୁ"</string>
+ <string name="ota_touch_activate" msgid="6553212803262586244">"ଆପଣଙ୍କ ଫୋନ୍ର ସେବାକୁ ସକ୍ରିୟ କରିବା ପାଇଁ ଗୋଟିଏ ସ୍ଵରନ୍ତ୍ର କଲ୍ କରିବା ଆବଶ୍ୟକ ହେଉଛି। \n\n “ସକ୍ରିୟ କରନ୍ତୁ”କୁ ଦାବିବା ପରେ, ନିଜର ଫୋନ୍କୁ ସକ୍ରିୟ କରିବା ପାଇଁ ଦିଆଯାଇଥିବା ନିର୍ଦ୍ଦେଶାବଳୀର ଅନୁସରଣ କରନ୍ତୁ।"</string>
+ <string name="ota_hfa_activation_title" msgid="2234246934160473981">"ସକ୍ରିୟ ହେଉଛି..."</string>
+ <string name="ota_hfa_activation_dialog_message" msgid="8092479227918463415">"ଏହି ଫୋନ୍ ଆପଣଙ୍କର ମୋବାଇଲ୍ ଡାଟା ସେବାକୁ ସକ୍ରିୟ କରୁଛି। \n\nଏଥି ପାଇଁ ପ୍ରାୟ 5 ମିନିଟ୍ ସମୟ ଲାଗିପାରେ।"</string>
+ <string name="ota_skip_activation_dialog_title" msgid="2943366608272261306">"ସକ୍ରିୟ କରିବା ଛାଡ଼ିଯିବେ?"</string>
+ <string name="ota_skip_activation_dialog_message" msgid="2440770373498870550">"ଯଦି ଆପଣ ସକ୍ରିୟ କରିବା କାର୍ଯ୍ୟକୁ ଛାଡ଼ିଯା’ନ୍ତି ତେବେ ଆପଣ କଲ୍ କରିପାରିବେ ନାହିଁ କିମ୍ବା ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ (ଯଦିଓ ଆପଣ ୱାଇ-ଫାଇ ନେଟ୍ୱର୍କ ସହିତ ଯୋଡ଼ିହୋଇପାରିବେ) ସହିତ ଯୋଡ଼ିହୋଇପାରିବେ ନାହିଁ। ଆପଣ ନିଜର ଫୋନ୍କୁ ସକ୍ରିୟ ନକରିବା ପର୍ଯ୍ୟନ୍ତ ପ୍ରତ୍ୟେକଥର ଏହାକୁ ଚାଲୁ କରିବା ସମୟରେ ସକ୍ରିୟ କରିବା ପାଇଁ କୁହାଯିବ।"</string>
+ <string name="ota_skip_activation_dialog_skip_label" msgid="3458532775091563208">"ଛାଡ଼ିଦିଅନ୍ତୁ"</string>
+ <string name="ota_activate" msgid="1368528132525626264">"ସକ୍ରିୟ କରନ୍ତୁ"</string>
+ <string name="ota_title_activate_success" msgid="6570240212263372046">"ଫୋନ୍ ସକ୍ରିୟ ହୋଇଯାଇଛି।"</string>
+ <string name="ota_title_problem_with_activation" msgid="7095824491970084367">"ସକ୍ରିୟ ହେବାରେ ସମସ୍ୟା"</string>
+ <string name="ota_listen" msgid="162923839877584937">"ଆପଣ ସକ୍ରିୟ କାର୍ଯ୍ୟ ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଛି ନଶୁଣିବା ପର୍ଯ୍ୟନ୍ତ କଥାକୁହା ନିର୍ଦ୍ଦେଶାବଳୀକୁ ଅନୁସରଣ କରନ୍ତୁ।"</string>
+ <string name="ota_speaker" msgid="6904589278542719647">"ସ୍ପିକର୍"</string>
+ <string name="ota_progress" msgid="460876637828044519">"ଆପଣଙ୍କ ଫୋନ୍କୁ ପ୍ରୋଗ୍ରାମ୍ କରାଯାଉଛି…"</string>
+ <string name="ota_failure" msgid="7713756181204620397">"ଆପଣଙ୍କ ଫୋନ୍କୁ ପ୍ରୋଗ୍ରାମ୍ କରିହେଲା ନାହିଁ"</string>
+ <string name="ota_successful" msgid="1880780692887077407">"ବର୍ତ୍ତମାନ ଆପଣଙ୍କର ଫୋନ୍ ସକ୍ରିୟ ହୋଇଯାଇଛି। ସେବା ଆରମ୍ଭ କରିବା ପାଇଁ ଏହା ପାଖାପାଖି 15 ମିନିଟ୍ ସମୟ ନେଇପାରେ।"</string>
+ <string name="ota_unsuccessful" msgid="8072141612635635357">"ଆପଣଙ୍କର ଫୋନ୍ ସକ୍ରିୟ ହେଲା ନାହିଁ। \n ଆପଣଙ୍କୁ ଭଲ ଆଚ୍ଛାଦନ ଥିବା ଗୋଟିଏ ସ୍ଥାନ ଖୋଜିବାକୁ ପଡ଼ିବ (ଝରକା ପାଖରେ କିମ୍ବା ବାହାରେ)। \n\nପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ କିମ୍ବା ଅଧିକ ବିକଳ୍ପ ପାଇଁ ଗ୍ରାହକ ସେବାକୁ କଲ୍ କରନ୍ତୁ।"</string>
+ <string name="ota_spc_failure" msgid="3909983542575030796">"ଅତିରିକ୍ତ SPC ବିଫଳତା"</string>
+ <string name="ota_call_end" msgid="4537279738134612388">"ପଛକୁ"</string>
+ <string name="ota_try_again" msgid="7685477206465902290">"ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ"</string>
+ <string name="ota_next" msgid="3904945374358235910">"ଆଗକୁ"</string>
+ <string name="ecm_exit_dialog" msgid="4448531867763097533">"EcmExitDialog"</string>
+ <string name="phone_entered_ecm_text" msgid="6266424252578731203">"ଜରୁରୀକାଳିନ କଲବ୍ୟାକ୍ ମୋଡ୍କୁ ପ୍ରବେଶ କରାଯାଉଛି"</string>
+ <string name="phone_in_ecm_notification_title" msgid="3226896828951687085">"ଜରୁରୀକାଳିନ କଲବ୍ୟାକ୍ ମୋଡ୍"</string>
+ <string name="phone_in_ecm_call_notification_text" msgid="4611608947314729773">"ଡାଟା କନେକ୍ସନ୍କୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
+ <string name="phone_in_ecm_notification_complete_time" msgid="7730376844178948351">"<xliff:g id="COMPLETETIME">%s</xliff:g> ପର୍ଯ୍ୟନ୍ତ କୌଣସି ଡାଟା କନେକ୍ସନ୍ ନାହିଁ"</string>
+ <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="7179911675595441201">
+ <item quantity="other">ଫୋନ୍ <xliff:g id="COUNT_1">%s</xliff:g> ମିନିଟ୍ ପାଇଁ ଜରୁରିକାଳୀନ କଲବ୍ୟାକ୍ ମୋଡ୍ରେ ରହିବ। ଏହି ମୋଡ୍ରେ ଥିବା ବେଳେ ଗୋଟିଏ ଡାଟା କନେକ୍ସନ୍କୁ ବ୍ୟବହାର କରୁଥିବା କୌଣସି ଆପ୍ଲିକେଶନ୍କୁ ବ୍ୟବହାର କରାଯାଇପାରିବ ନାହିଁ। ବର୍ତ୍ତମାନ ଆପଣ ବାହାରିଯିବାକୁ ଚାହାନ୍ତି କି?</item>
+ <item quantity="one">ଫୋନ୍ <xliff:g id="COUNT_0">%s</xliff:g> ମିନିଟ୍ ପାଇଁ ଜରୁରିକାଳୀନ କଲବ୍ୟାକ୍ ମୋଡ୍ରେ ରହିବ ଏହି ମୋଡ୍ରେ ଥିବା ବେଳେ ଗୋଟିଏ ଡାଟା କନେକ୍ସନ୍କୁ ବ୍ୟବହାର କରୁଥିବା କୌଣସି ଆପ୍କୁ ବ୍ୟବହାର କରାଯାଇପାରିବ ନାହିଁ। ବର୍ତ୍ତମାନ ଆପଣ ବାହାରିଯିବାକୁ ଚାହାନ୍ତି କି?</item>
+ </plurals>
+ <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="8042973425225093895">
+ <item quantity="other">ଜରୁରିକାଳୀନ କଲବ୍ୟାକ୍ ମୋଡ୍ରେ ରହିଥିବା ବେଳେ ଚୟନିତ କାର୍ଯ୍ୟ ଉପଲବ୍ଧ ହେବ ନାହିଁ। ଫୋନ୍ ଏହି ମୋଡ୍ରେ <xliff:g id="COUNT_1">%s</xliff:g> ମିନିଟ୍ ପାଇଁ ରହିବ। ବର୍ତ୍ତମାନ ଆପଣ ବାହାରିଯିବାକୁ ଚାହାନ୍ତି କି?</item>
+ <item quantity="one">ଜରୁରିକାଳୀନ କଲବ୍ୟାକ୍ ମୋଡ୍ରେ ରହିଥିବା ବେଳେ ଚୟନିତ କାର୍ଯ୍ୟ ଉପଲବ୍ଧ ହେବ ନାହିଁ। ଫୋନ୍ ଏହି ମୋଡ୍ରେ <xliff:g id="COUNT_0">%s</xliff:g> ମିନିଟ୍ ପାଇଁ ରହିବ। ବର୍ତ୍ତମାନ ଆପଣ ବାହାରିଯିବାକୁ ଚାହାନ୍ତି କି?</item>
+ </plurals>
+ <string name="alert_dialog_in_ecm_call" msgid="1886723687211887104">"ଜରୁରୀକାଳୀନ କଲ୍ କରୁଥିବାବେଳେ ଚୟନିତ କାର୍ଯ୍ୟ ଉପଲବ୍ଧ ନାହିଁ।"</string>
+ <string name="progress_dialog_exiting_ecm" msgid="4835734101617817074">"ଜରୁରୀକାଳିନ କଲବ୍ୟାକ୍ ମୋଡ୍ରୁ ବାହାରି ଆସନ୍ତୁ"</string>
+ <string name="alert_dialog_yes" msgid="6674268047820703974">"ହଁ"</string>
+ <string name="alert_dialog_no" msgid="1476091437797628703">"ନାହିଁ"</string>
+ <string name="alert_dialog_dismiss" msgid="2491494287075907171">"ଖାରଜ କରନ୍ତୁ"</string>
+ <string name="voicemail_provider" msgid="5135942703327136909">"ସେବା"</string>
+ <string name="voicemail_settings" msgid="72448049107749316">"ସେଟଅପ୍ କରନ୍ତୁ"</string>
+ <string name="voicemail_number_not_set" msgid="6724904736891087856">"<ସେଟ୍ ହୋଇନାହିଁ>"</string>
+ <string name="other_settings" msgid="3672912580359716394">"ଅନ୍ୟାନ୍ୟ କଲ୍ ସେଟିଙ୍ଗ"</string>
+ <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ମାଧ୍ୟମରେ କଲ୍ କରନ୍ତୁ"</string>
+ <string name="contactPhoto" msgid="4713193418046639466">"ଯୋଗାଯୋଗ ଫଟୋ"</string>
+ <string name="goPrivate" msgid="865837794424530980">"ବ୍ୟକ୍ତିଗତ ହୁଅନ୍ତୁ"</string>
+ <string name="selectContact" msgid="781975788478987237">"ଯୋଗାଯୋଗକୁ ଚୟନ କରନ୍ତୁ"</string>
+ <string name="not_voice_capable" msgid="2739898841461577811">"ଭଏସ୍ କଲ୍ ସପୋର୍ଟ କରୁନାହିଁ"</string>
+ <string name="description_dial_button" msgid="7459705245418435351">"ଡାଏଲ୍ କରନ୍ତୁ"</string>
+ <string name="description_dialpad_button" msgid="5220006811894230590">"ଡାୟଲ୍ପ୍ୟାଡ୍ ଦେଖାନ୍ତୁ"</string>
+ <string name="pane_title_emergency_dialpad" msgid="1148505414688493134">"ଜରୁରୀକାଳୀନ ଡାୟଲ୍ପ୍ୟାଡ୍"</string>
+ <string name="voicemail_visual_voicemail_switch_title" msgid="5012622186976275457">"ଭିଜୁଆଲ୍ ଭଏସମେଲ୍"</string>
+ <string name="voicemail_set_pin_dialog_title" msgid="2797924461029093837">"PIN ସେଟ୍ କରନ୍ତୁ"</string>
+ <string name="voicemail_change_pin_dialog_title" msgid="6035421908626121564">"PIN ବଦଳାନ୍ତୁ"</string>
+ <string name="preference_category_ringtone" msgid="5197960752529332721">"ରିଙ୍ଗଟୋନ୍ ଓ ଭାଇବ୍ରେଟ୍"</string>
+ <string name="pstn_connection_service_label" msgid="1743245930577325900">"ବିଲ୍ଟ-ଇନ୍ ଥିବା SIM କାର୍ଡ"</string>
+ <string name="enable_video_calling_title" msgid="7237253660669000899">"ଭିଡିଓ କଲ୍ ଚାଲୁ କରନ୍ତୁ"</string>
+ <string name="enable_video_calling_dialog_msg" msgid="8948186136957417948">"ଭିଡିଓ କଲ୍କୁ ଚାଲୁ କରିବା ପାଇଁ ଆପଣଙ୍କୁ ନେଟ୍ୱର୍କ ସେଟିଙ୍ଗରେ ଉନ୍ନତ 4G LTE ମୋଡ୍କୁ ସକ୍ଷମ କରିବାକୁ ପଡ଼ିବ।"</string>
+ <string name="enable_video_calling_dialog_settings" msgid="576528473599603249">"ନେଟ୍ୱର୍କ ସେଟିଙ୍ଗ"</string>
+ <string name="enable_video_calling_dialog_close" msgid="7411471282167927991">"ବନ୍ଦ କରନ୍ତୁ"</string>
+ <string name="sim_label_emergency_calls" msgid="4847699229529306397">"ଜରୁରିକାଳୀନ କଲ୍"</string>
+ <string name="sim_description_emergency_calls" msgid="7535215397212301562">"କେବଳ ଜରୁରିକାଳୀନ କଲ୍ ପାଇଁ"</string>
+ <string name="sim_description_default" msgid="4778679519938775515">"SIM କାର୍ଡ, ସ୍ଲଟ୍: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
+ <string name="accessibility_settings_activity_title" msgid="8562004288733103868">"ଆକ୍ସେସିବିଲିଟୀ"</string>
+ <string name="status_hint_label_incoming_wifi_call" msgid="5932176406432044638">"ଠାରୁ ୱାଇ-ଫାଇ କଲ୍ କରନ୍ତୁ"</string>
+ <string name="status_hint_label_wifi_call" msgid="8900805254974653903">"ୱାଇ-ଫାଇ କଲ୍"</string>
+ <string name="emergency_action_launch_hint" msgid="4906759256275562674">"ଖୋଲିବା ପାଇଁ ପୁଣି ଟାପ୍ କରନ୍ତୁ"</string>
+ <string name="message_decode_error" msgid="3456481534066924855">"ମେସେଜ୍କୁ ଡିକୋଡ୍ କରିବା ବେଳେ ଗୋଟିଏ ତ୍ରୁଟି ଦେଖାଦେଲା।"</string>
+ <string name="callFailed_cdma_activation" msgid="2307989779233262164">"ଗୋଟିଏ SIM କାର୍ଡ ଆପଣଙ୍କର ସେବାକୁ କାର୍ଯ୍ୟକ୍ଷମ କରିଛି ଏବଂ ଆପଣଙ୍କ ଫୋନ୍ର ରୋମିଙ୍ଗ କ୍ଷମତାକୁ ଅପଡେଟ୍ କରିଛି।"</string>
+ <string name="callFailed_cdma_call_limit" msgid="1556916577171457086">"ଏଠାରେ ଅନେକ ସକ୍ରିୟ କଲ୍ ଅଛି। ଗୋଟିଏ ନୂଆ କଲ୍କୁ ସ୍ଥାପନ କରିବା ପୂର୍ବରୁ ଦୟାକରି ବିଦ୍ୟମାନ ଥିବା କଲ୍କୁ ସମାପ୍ତ କିମ୍ବା ମର୍ଜ କରନ୍ତୁ।"</string>
+ <string name="callFailed_imei_not_accepted" msgid="132192626901238542">"କନେକ୍ଟ କରିହେଲା ନାହିଁ, ଦୟାକରି ଗୋଟିଏ ବୈଧ SIM କାର୍ଡ ଇନସର୍ଟ କରନ୍ତୁ।"</string>
+ <string name="callFailed_wifi_lost" msgid="5968076625137297184">"ୱାଇ-ଫାଇ କନେକ୍ସନ୍ ହଜିଗଲା। କଲ୍ ସମାପ୍ତ ହୋଇଗଲା।"</string>
+ <string name="dialFailed_low_battery" msgid="8760548177088774268">"ବ୍ୟାଟେରୀ କମ୍ ଥିବା ହେତୁ ଆପଣ ଭିଡିଓ କଲ୍ କରିପାରିବେ ନାହିଁ।"</string>
+ <string name="callFailed_low_battery" msgid="4913582435905872616">"ଅଳ୍ପ ବ୍ୟାଟେରୀ ଥିବା ହେତୁ ଭିଡିଓ କଲ୍ ସମାପ୍ତ ହୋଇଗଲା।"</string>
+ <string name="change_pin_title" msgid="7790232089699034029">"ଭଏସମେଲ୍ PINକୁ ବଦଳାନ୍ତୁ"</string>
+ <string name="change_pin_continue_label" msgid="2135088662420163447">"ଜାରି ରଖନ୍ତୁ"</string>
+ <string name="change_pin_cancel_label" msgid="353535488390948596">"କ୍ୟାନ୍ସଲ୍ କରନ୍ତୁ"</string>
+ <string name="change_pin_ok_label" msgid="6204308560844889926">"ଠିକ୍ ଅଛି"</string>
+ <string name="change_pin_enter_old_pin_header" msgid="419179847657548887">"ଆପଣଙ୍କର ପୁରୁଣା PINକୁ ନିଶ୍ଚିତ କରନ୍ତୁ"</string>
+ <string name="change_pin_enter_old_pin_hint" msgid="8579171678763615453">"ଜାରି ରଖିବା ପାଇଁ ଆପଣଙ୍କର ଭଏସମେଲ୍ PINକୁ ପ୍ରବେଶ କରନ୍ତୁ।"</string>
+ <string name="change_pin_enter_new_pin_header" msgid="2611191814590251532">"ଗୋଟିଏ ନୂଆ PIN ସେଟ୍ କରନ୍ତୁ"</string>
+ <string name="change_pin_enter_new_pin_hint" msgid="2322940054329689309">"PIN ନିଶ୍ଚିତରୂପେ <xliff:g id="MIN">%1$d</xliff:g>-<xliff:g id="MAX">%2$d</xliff:g> ଅଙ୍କବିଶିଷ୍ଟ ହେବା ଉଚିତ୍।"</string>
+ <string name="change_pin_confirm_pin_header" msgid="8113764019347322170">"ଆପଣଙ୍କ PIN ନିଶ୍ଚିତ କରନ୍ତୁ"</string>
+ <string name="change_pin_confirm_pins_dont_match" msgid="4795052654904027909">"PIN ମେଳ ହେଉ ନାହିଁ"</string>
+ <string name="change_pin_succeeded" msgid="2022852286442211151">"ଭଏସମେଲ୍ PIN ଅପଡେଟ୍ ହୋଇଛି"</string>
+ <string name="change_pin_system_error" msgid="8308462387154257840">"PIN ସେଟ୍ କରିବାରେ ଅସମର୍ଥ"</string>
+ <string name="mobile_data_status_roaming_turned_off_subtext" msgid="935636805765823307">"ଡାଟା ରୋମିଙ୍ଗ ବନ୍ଦ ଅଛି"</string>
+ <string name="mobile_data_status_roaming_turned_on_subtext" msgid="1335176927083781041">"ଡାଟା ରୋମିଙ୍ଗ ଚାଲୁ ଅଛି"</string>
+ <string name="mobile_data_status_roaming_without_plan_subtext" msgid="3568412513831673037">"ବର୍ତ୍ତମାନ ରୋମିଙ୍ଗରେ ଅଛି, ଡାଟା ପ୍କାନ୍ ଆବଶ୍ୟକ"</string>
+ <string name="mobile_data_status_roaming_with_plan_subtext" msgid="8721998948811064377">"ବର୍ତ୍ତମାନ ରୋମିଙ୍ଗରେ ଅଛି, ଡାଟା ପ୍କାନ୍ ସକ୍ରିୟ ଅଛି"</string>
+ <string name="mobile_data_status_no_plan_subtext" msgid="4887747337017565725">"ଲିଛି ମୋବାଇଲ୍ ଡାଟା ବଳକା ନାହିଁ"</string>
+ <string name="mobile_data_activate_prepaid" msgid="7447025165850512683">"ଲିଛି ମୋବାଇଲ୍ ଡାଟା ବଳକା ନାହିଁ"</string>
+ <string name="mobile_data_activate_prepaid_summary" msgid="5705389791791637666">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ମାଧ୍ୟମରେ ମୋବାଇଲ୍ ଡାଟାକୁ ଯୋଡ଼ନ୍ତୁ"</string>
+ <string name="mobile_data_activate_roaming_plan" msgid="5998161536947086264">"କୈଣସି ରୋମିଙ୍ଗ ପ୍ଲାନ୍ ନାହିଁ"</string>
+ <string name="mobile_data_activate_roaming_plan_summary" msgid="511202908883425459">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ମାଧ୍ୟମରେ ରୋମିଙ୍ଗ ପ୍ଲାନ୍କୁ ଯୋଡ଼ନ୍ତୁ"</string>
+ <string name="mobile_data_activate_footer" msgid="5979019929980140594">"ଆପଣଙ୍କ କେରିଅର୍ <xliff:g id="PROVIDER_NAME">%s</xliff:g> ମାଧ୍ୟମରେ ଆପଣ ମୋବାଇଲ୍ ଡାଟା କିମ୍ବା ରୋମିଙ୍ଗ ପ୍ଲାନ୍କୁ ଯୋଡ଼ିପାରିବେ।"</string>
+ <string name="mobile_data_activate_diag_title" msgid="9044252207707864493">"ଡାଟାକୁ ଯୋଡ଼ିବେ?"</string>
+ <string name="mobile_data_activate_diag_message" msgid="8216154678758451453">"ଆପଣଙ୍କୁ <xliff:g id="PROVIDER_NAME">%s</xliff:g> ମାଧ୍ୟମରେ ଡାଟା ଯୋଡ଼ିବାକୁ ପଡ଼ିପାରେ"</string>
+ <string name="mobile_data_activate_button" msgid="3682400969184405446">"ଡାଟା ଯୋଡ଼ନ୍ତୁ"</string>
+ <string name="mobile_data_activate_cancel_button" msgid="1708022171547398765">"କ୍ୟାନ୍ସଲ୍ କରନ୍ତୁ"</string>
+ <string name="clh_card_title_call_ended_txt" msgid="4072101334811753823">"କଲ୍ ସମାପ୍ତ ହୋଇଛି"</string>
+ <string name="clh_callFailed_powerOff_txt" msgid="1049579267090569308">"ଏୟାରପ୍ଲେନ୍ ମୋଡ୍ ଅନ୍ ଅଛି"</string>
+ <string name="clh_callFailed_simError_txt" msgid="7273306159809203315">"SIM କାର୍ଡକୁ ଆକ୍ସେସ୍ କରିହେଉନାହିଁ"</string>
+ <string name="clh_incall_error_out_of_service_txt" msgid="3974373603657193827">"ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ଉପଲବ୍ଧ ଅଛି"</string>
+ <string name="clh_callFailed_unassigned_number_txt" msgid="4722164461846838251">"ଆପଣ ଡାଏଲ୍ କରିବା ପାଇଁ ଚେଷ୍ଟା କରୁଥିବା ଫୋନ୍ ନମ୍ବର୍ରେ ସମସ୍ୟା ଅଛି। ତ୍ରୁଟି କୋଡ୍ 1।"</string>
+ <string name="clh_callFailed_no_route_to_destination_txt" msgid="2259464183880140671">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 3।"</string>
+ <string name="clh_callFailed_channel_unacceptable_txt" msgid="3159336281525222855">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 6।"</string>
+ <string name="clh_callFailed_operator_determined_barring_txt" msgid="1831977101604817389">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 8।"</string>
+ <string name="clh_callFailed_normal_call_clearing_txt" msgid="7369313431310446847">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 16।"</string>
+ <string name="clh_callFailed_user_busy_txt" msgid="2736095995784746915">"ୟୁଜର୍ ବ୍ୟସ୍ତ ଅଛନ୍ତି"</string>
+ <string name="clh_callFailed_no_user_responding_txt" msgid="3675206502567252162">"ୟୁଜର୍ ଉତ୍ତର ଦେଉନାହାନ୍ତି"</string>
+ <string name="clh_callFailed_user_alerting_txt" msgid="363445537769733281">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 19।"</string>
+ <string name="clh_callFailed_call_rejected_txt" msgid="8001665478195793223">"କଲ୍କୁ ପ୍ରତ୍ୟାଖ୍ୟାନ କରାଗଲା"</string>
+ <string name="clh_callFailed_number_changed_txt" msgid="5127909898925154242">"ନମ୍ବର୍ ବଦଳିଯାଇଛି"</string>
+ <string name="clh_callFailed_pre_emption_txt" msgid="1100414016302714854">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 25।"</string>
+ <string name="clh_callFailed_non_selected_user_clearing_txt" msgid="6248192300127702626">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 26।"</string>
+ <string name="clh_callFailed_destination_out_of_order_txt" msgid="4879936907430554772">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 27।"</string>
+ <string name="clh_callFailed_invalid_number_format_txt" msgid="6987646655639655370">"ଅବୌଧ ନମ୍ବର୍ ଫର୍ମାଟ୍ (ଅସମ୍ପୂର୍ଣ୍ଣ ନମ୍ବର୍)"</string>
+ <string name="clh_callFailed_facility_rejected_txt" msgid="1028912823639389563">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 29।"</string>
+ <string name="clh_callFailed_response_to_STATUS_ENQUIRY_txt" msgid="1250833944238081212">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 30।"</string>
+ <string name="clh_callFailed_normal_unspecified_txt" msgid="8765640093649364786">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 31।"</string>
+ <string name="clh_callFailed_no_circuit_available_txt" msgid="6884477141997665736">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 34।"</string>
+ <string name="clh_callFailed_network_out_of_order_txt" msgid="76447023032000125">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 38।"</string>
+ <string name="clh_callFailed_temporary_failure_txt" msgid="5057716306945664356">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 41।"</string>
+ <string name="clh_callFailed_switching_equipment_congestion_txt" msgid="4958831706265227632">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 42।"</string>
+ <string name="clh_callFailed_access_information_discarded_txt" msgid="5033636666434831179">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 43।"</string>
+ <string name="clh_callFailed_requested_circuit_txt" msgid="3221429183862933558">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 44।"</string>
+ <string name="clh_callFailed_resources_unavailable_unspecified_txt" msgid="1385943395137055442">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 47।"</string>
+ <string name="clh_callFailed_quality_of_service_unavailable_txt" msgid="8464132603057397297">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 49।"</string>
+ <string name="clh_callFailed_requested_facility_not_subscribed_txt" msgid="3853815238079666882">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 50।"</string>
+ <string name="clh_callFailed_incoming_calls_barred_within_the_CUG_txt" msgid="6791665425652545510">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 55।"</string>
+ <string name="clh_callFailed_bearer_capability_not_authorized_txt" msgid="2975453855928450909">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 57।"</string>
+ <string name="clh_callFailed_bearer_capability_not_presently_available_txt" msgid="753763978405557873">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 58।"</string>
+ <string name="clh_callFailed_service_or_option_not_available_unspecified_txt" msgid="1714515856150546668">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 63।"</string>
+ <string name="clh_callFailed_bearer_service_not_implemented_txt" msgid="5433179845809692163">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 65।"</string>
+ <string name="clh_callFailed_ACM_equal_to_or_greater_than_ACMmax_txt" msgid="4339523227014428123">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 68।"</string>
+ <string name="clh_callFailed_requested_facility_not_implemented_txt" msgid="5217500914101821728">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 69।"</string>
+ <string name="clh_callFailed_only_restricted_digital_information_bearer_capability_is_available_txt" msgid="2423146296631060723">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 70।"</string>
+ <string name="clh_callFailed_service_or_option_not_implemented_unspecified_txt" msgid="873208782556277597">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 79।"</string>
+ <string name="clh_callFailed_invalid_transaction_identifier_value_txt" msgid="3926779129494281620">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 81।"</string>
+ <string name="clh_callFailed_user_not_member_of_CUG_txt" msgid="2517559636224367413">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 87।"</string>
+ <string name="clh_callFailed_incompatible_destination_txt" msgid="7994154962189949306">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 88।"</string>
+ <string name="clh_callFailed_invalid_transit_network_selection_txt" msgid="5847046471813330674">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 91।"</string>
+ <string name="clh_callFailed_semantically_incorrect_message_txt" msgid="5419940790658960361">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 95।"</string>
+ <string name="clh_callFailed_invalid_mandatory_information_txt" msgid="3350178645665420102">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 96।"</string>
+ <string name="clh_callFailed_message_type_non_existent_or_not_implemented_txt" msgid="7080310506268713895">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 97।"</string>
+ <string name="clh_callFailed_message_type_not_compatible_with_protocol_state_txt" msgid="5251558113020693277">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 98।"</string>
+ <string name="clh_callFailed_information_element_non_existent_or_not_implemented_txt" msgid="1643642065908165846">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 99।"</string>
+ <string name="clh_callFailed_conditional_IE_error_txt" msgid="1622467860490603665">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 100।"</string>
+ <string name="clh_callFailed_message_not_compatible_with_protocol_state_txt" msgid="3776039646804248109">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 101।"</string>
+ <string name="clh_callFailed_recovery_on_timer_expiry_txt" msgid="4529313282997136028">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 102।"</string>
+ <string name="clh_callFailed_protocol_Error_unspecified_txt" msgid="4900075501687505296">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 111।"</string>
+ <string name="clh_callFailed_interworking_unspecified_txt" msgid="6701560054199411045">"କଲ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିହେଲା ନାହିଁ। ତ୍ରୁଟି କୋଡ୍ 127।"</string>
+ <string name="labelCallBarring" msgid="3452870940716226978">"କଲ୍ ରୋକନ୍ତୁ"</string>
+ <string name="sum_call_barring_enabled" msgid="6804489690436703488">"ଅନ୍ ଅଛି"</string>
+ <string name="sum_call_barring_disabled" msgid="5900772179198857783">"ଅଫ୍ ଅଛି"</string>
+ <string name="call_barring_baoc" msgid="1199843944333106035">"ସମସ୍ତ ଆଉଟ୍ଗୋଇଙ୍ଗ"</string>
+ <string name="call_barring_baoc_enabled" msgid="8112118391869380361">"ସମସ୍ତ ଆଉଟ୍ଗୋଇଙ୍ଗର ଅବରୋଧକୁ ଅକ୍ଷମ କରିବେ?"</string>
+ <string name="call_barring_baoc_disabled" msgid="7806697133004697974">"ସମସ୍ତ ଆଉଟ୍ଗୋଇଙ୍ଗକୁ ଅବରୋଧ କରିବେ?"</string>
+ <string name="call_barring_baoic" msgid="3162154267825211826">"ଆଉଟ୍ଗୋଇଙ୍ଗ ଅନ୍ତରାଷ୍ଟ୍ରୀୟ"</string>
+ <string name="call_barring_baoic_enabled" msgid="2634377543147258105">"ଆଉଟ୍ଗୋଇଙ୍ଗ ଅନ୍ତରାଷ୍ଟ୍ରୀୟ କଲ୍ର ଅବରୋଧକୁ ଅକ୍ଷମ କରିବେ?"</string>
+ <string name="call_barring_baoic_disabled" msgid="5817895648306183464">"ଆଉଟ୍ଗୋଇଙ୍ଗ ଅନ୍ତରାଷ୍ଟ୍ରୀୟ କଲ୍କୁ ଅବରୋଧ କରିବେ?"</string>
+ <string name="call_barring_baoicr" msgid="8951699885885742076">"ଆଉଟ୍ଗୋଇଙ୍ଗ ଅନ୍ତରାଷ୍ଟ୍ରୀୟ ରୋମିଙ୍ଗ"</string>
+ <string name="call_barring_baoicr_enabled" msgid="2519630715322138317">"ଆଉଟ୍ଗୋଇଙ୍ଗ ଅନ୍ତରାଷ୍ଟ୍ରୀୟ ରୋମିଙ୍ଗର ଅବରୋଧକୁ ଅକ୍ଷମ କରିବେ?"</string>
+ <string name="call_barring_baoicr_disabled" msgid="5831267468931377699">"ଆଉଟ୍ଗୋଇଙ୍ଗ ଅନ୍ତରାଷ୍ଟ୍ରୀୟ ରୋମିଙ୍ଗକୁ ଅବରୋଧ କରିବେ?"</string>
+ <string name="call_barring_baic" msgid="5272726081458339912">"ସମସ୍ତ ଇନ୍କମିଙ୍ଗ"</string>
+ <string name="call_barring_baic_enabled" msgid="2457134916223203380">"ସମସ୍ତ ଇନ୍କମିଙ୍ଗ କଲ୍ର ଅବରୋଧକୁ ଅକ୍ଷମ କରିବେ?"</string>
+ <string name="call_barring_baic_disabled" msgid="6945604947500275636">"ସମସ୍ତ ଇନ୍କମିଙ୍ଗ କଲ୍କୁ ଅବରୋଧ କରିବେ?"</string>
+ <string name="call_barring_baicr" msgid="5728784220691481693">"ଇନ୍କମିଙ୍ଗ ଅନ୍ତରାଷ୍ଟ୍ରୀୟ ରୋମିଙ୍ଗ"</string>
+ <string name="call_barring_baicr_enabled" msgid="6533336994391716127">"ସମସ୍ତ ଇନ୍କମିଙ୍ଗ ଅନ୍ତରାଷ୍ଟ୍ରୀୟ ରୋମିଙ୍ଗର ଅବରୋଧକୁ ଅକ୍ଷମ କରିବେ?"</string>
+ <string name="call_barring_baicr_disabled" msgid="6746329853943256566">"ଇନ୍କମିଙ୍ଗ ଅନ୍ତରାଷ୍ଟ୍ରୀୟ ରୋମିଙ୍ଗକୁ ଅବରୋଧ କରିବେ?"</string>
+ <string name="call_barring_deactivate_all" msgid="5269788384941003415">"ସମସ୍ତକୁ ନିଷ୍କ୍ରିୟ କରନ୍ତୁ"</string>
+ <string name="call_barring_deactivate_all_description" msgid="4972365443287257704">"ସମସ୍ତ କଲ୍ ରୋକିବା ସେଟିଙ୍ଗକୁ ନିଷ୍କ୍ରିୟ କରନ୍ତୁ"</string>
+ <string name="call_barring_deactivate_success" msgid="8014685598632000936">"ସମସ୍ତ କଲ୍ ରୋକିବା ନିଷ୍କ୍ରିୟ ହୋଇଯାଇଛି"</string>
+ <string name="call_barring_change_pwd" msgid="6887420609726284232">"ପାସ୍ୱର୍ଡ ବଦଳାନ୍ତୁ"</string>
+ <string name="call_barring_change_pwd_description" msgid="5505087790260233953">"କଲ୍ ରୋକିବା ପାସ୍ୱର୍ଡକୁ ବଦଳାନ୍ତୁ"</string>
+ <string name="call_barring_change_pwd_description_disabled" msgid="7630770327645349957">"କଲ୍ ରୋକିବା ପାସ୍ୱର୍ଡକୁ ବଦଳାଯାଇପାରିବ ନାହିଁ।"</string>
+ <string name="call_barring_pwd_not_match" msgid="6716711689350314525">"ପାସ୍ୱର୍ଡ ମେଳ ହେଉ ନାହିଁ"</string>
+ <string name="call_barring_right_pwd_number" msgid="2902966502520410446">"4 ଅଙ୍କ ବିଶିଷ୍ଟ ଗୋଟିଏ ପାସ୍ୱର୍ଡ ପ୍ରବେଶ କରନ୍ତୁ"</string>
+ <string name="call_barring_change_pwd_success" msgid="3278310763742760321">"ପାସ୍ୱର୍ଡ ବଦଳାଯାଇଛି"</string>
+ <string name="call_barring_old_pwd" msgid="6080515987320238522">"ପୁରୁଣା ପାସ୍ୱର୍ଡ"</string>
+ <string name="call_barring_new_pwd" msgid="7048532299150269547">"ନୂଆ ପାସ୍ୱର୍ଡ"</string>
+ <string name="call_barring_confirm_pwd" msgid="1947167278466285411">"ପାସ୍ୱର୍ଡ ସୁନିଶ୍ଚିତ କରନ୍ତୁ"</string>
+ <string name="messageCallBarring" msgid="2412123220272136055">"ପାସ୍ୱର୍ଡ ପ୍ରବେଶ କରନ୍ତୁ"</string>
+ <string name="call_barring_settings" msgid="80766145008623645">"କଲ୍ ରୋକିବା ସେଟିଙ୍ଗ"</string>
+ <string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"ସମସ୍ତ କଲ୍ ରୋକିବା ସେଟିଙ୍ଗକୁ ନିଷ୍କ୍ରିୟ କରିବେ?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"ନେଟ୍ୱର୍କ ବ୍ୟସ୍ତ ଅଛି। ଦୟାକରି ଆପଣ ପରେ ପୁଣି କଲ୍ ଚେଷ୍ଟା କରିବା ପାଇଁ ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
+ <string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"କଲ୍ ଅନ୍ୟ ପାଖକୁ ଯିବା ବଦଳରେ ନିଜ ପାଖକୁ ଆସିଯାଇଛି।"</string>
+ <string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"କଲ୍କୁ ଫରୱାର୍ଡ କରାଯାଇଛି।"</string>
+ <string name="supp_service_notification_call_waiting" msgid="789154111899572489">"କଲ୍ ଅପେକ୍ଷାରେ ଅଛି।"</string>
+ <string name="supp_service_clir_suppression_rejected" msgid="1581851661582189045">"ନମ୍ବର୍ ଅବରୋଧକୁ ପ୍ରତ୍ୟାଖ୍ୟାନ କରାଗଲା।"</string>
+ <string name="supp_service_closed_user_group_call" msgid="5761735840904590950">"ନିକଟତମ ୟୁଜର୍ ଗ୍ରୁପ୍ ଦ୍ଵାରା କଲ୍ରେ ସୀମିତ।"</string>
+ <string name="supp_service_incoming_calls_barred" msgid="3248813207307882723">"ଇନକମିଙ୍ଗ କଲ୍କୁ ରୋକାଯାଇଛି।"</string>
+ <string name="supp_service_outgoing_calls_barred" msgid="1962644621292054081">"ଆଉଟ୍ଗୋଇଙ୍ଗ କଲ୍କୁ ରୋକାଯାଇଛି।"</string>
+ <string name="supp_service_call_forwarding_active" msgid="1253134771682248735">"କଲ୍ ଫରୱାର୍ଡିଙ୍ଗ ସକ୍ରିୟ ଅଛି।"</string>
+ <string name="supp_service_additional_call_forwarded" msgid="5228624725214727315">"ଅତିରିକ୍ତ କଲ୍କୁ ଫରୱାର୍ଡ କରାଗଲା।"</string>
+ <string name="supp_service_additional_ect_connected" msgid="6396964292513707102">"ସ୍ପଷ୍ଟ କଲ୍ ଟ୍ରାନ୍ସଫର୍ ସମ୍ପୂର୍ଣ୍ଣ ହେଲା।"</string>
+ <string name="supp_service_additional_ect_connecting" msgid="5443373059716058480">"ସ୍ପଷ୍ଟ କଲ୍ ଟ୍ରାନ୍ସଫର୍ ଜାରି ଅଛି।"</string>
+ <string name="supp_service_call_on_hold" msgid="1478976782361795422">"କଲ୍ ହୋଲ୍ଡରେ ଅଛି।"</string>
+ <string name="supp_service_call_resumed" msgid="1656475289958070674">"କଲ୍ ପୁଣି ଆରମ୍ଭ ହେଲା।"</string>
+ <string name="supp_service_deflected_call" msgid="138970419873492166">"କଲ୍କୁ ଅନ୍ୟକୁ ପଠାଯାଇଥିବା ବେଳେ ତାହା ନିଜପାଖକୁ ଆସିଯାଇଥିଲା।"</string>
+ <string name="supp_service_forwarded_call" msgid="4509980341645679803">"ଫରୱାର୍ଡ କରାଯାଇଥିବା କଲ୍।"</string>
+ <string name="supp_service_conference_call" msgid="4448616364004466832">"କନଫରେନ୍ସ କଲ୍ରେ ଯୋଗ ଦେବା।"</string>
+ <string name="supp_service_held_call_released" msgid="2030677825038709779">"ହୋଲ୍ଡ କରାଯାଇଥିବା କଲ୍ରୁ ହୋଲ୍ଡ ହଟାଇଦିଆଗଲା।"</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"ଡିଭାଇସ୍ଟି ବର୍ତ୍ତମାନ ବ୍ୟବସ୍ଥିତ ହେଉଥିବା ଯୋଗୁଁ ଡିଭାଇସ୍ଭାବରେ ଏକ କଲ୍ କରି ହେବ ନାହିଁ।"</string>
+ <string name="callFailed_already_dialing" msgid="4652915396769232226">"ପୂର୍ବରୁ ଅନ୍ୟ ଏକ ଆଉଟ୍ଗୋଇଂ କଲ୍ ଡାଏଲ୍ କରାଯାଉଥିବା ଯୋଗୁଁ ଏକ କଲ୍ କରିପାରିବେ ନାହିଁ।"</string>
+ <string name="callFailed_already_ringing" msgid="7747655701540586943">"ଗୋଟିଏ ଉତ୍ତର ଦିଆଯାଇନଥିବା ଇନ୍କମିଂ କଲ୍ ଯୋଗୁଁ ଅନ୍ୟ ଏକ କଲ୍ କରିପାରିବେ ନାହିଁ । ଏକ ନୂତନ କଲ୍ କରିବା ପୂର୍ବରୁ ଇନ୍କମିଂ କଲ୍ଟିର ଉତ୍ତର ଦିଅନ୍ତୁ କିମ୍ବା ଏହାକୁ ଅଗ୍ରାହ୍ୟ କରନ୍ତୁ।"</string>
+ <string name="callFailed_calling_disabled" msgid="7257184079619449933">"ro.telephony.disable-call ସିଷ୍ଟମ୍ ଗୁଣର ପ୍ରୟୋଗ କରି କଲ୍ କରିବାର ସୁବିଧାକୁ ଅକ୍ଷମ କରାଯାଇଥିବା ଯୋଗୁଁ ଏକ କଲ୍ କରାଯାଇପାରିବ ନାହିଁ।"</string>
+ <string name="callFailed_too_many_calls" msgid="3023051919216926990">"ଏକାସଙ୍ଗେ ଦୁଇଟି କଲ୍ ପ୍ରକ୍ରିୟାରେ ଥିବା ଯୋଗୁଁ ଏକ କଲ୍ କରାଯାଇପାରିବ ନାହିଁ। ଏକ ନୂତନ କଲ୍ କରିବା ପୂର୍ବରୁ ଗୋଟିଏ କଲ୍କୁ ବିଚ୍ଛିନ୍ନ କରନ୍ତୁ କିମ୍ବା ଉଭୟ କଲ୍କୁ ଯୋଡ଼ି ଏକ କନ୍ଫରେନସ୍ କଲ୍ରେ ପରିଣତ କରନ୍ତୁ।"</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ବ୍ୟବହାର କରିବାକୁ, ମୋବାଇଲ୍ ଡାଟା ଚାଲୁଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ। ଆପଣ ଏହାକୁ ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ସେଟିଂସ୍ରେ ବଦଳାଇପାରିବେ।"</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ବ୍ୟବହାର କରିବାକୁ, ମୋବାଇଲ୍ ଡାଟା ଏବଂ ଡାଟା ରୋମିଂ ଚାଲୁ ଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ। ଆପଣ ଏହାକୁ ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ସେଟିଂସ୍ରେ ବଦଳାଇପାରିବେ।"</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ବ୍ୟବହାର କରିବାକୁ, ସିମ୍ <xliff:g id="SIM_NUMBER">%2$d</xliff:g>ରେ ମୋବାଇଲ୍ ଡାଟା ଚାଲୁ ଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ। ଆପଣ ଏହାକୁ ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ସେଟିଂସ୍ରେ ବଦଳାଇପାରିବେ।"</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ବ୍ୟବହାର କରିବାକୁ, ସିମ୍ <xliff:g id="SIM_NUMBER">%2$d</xliff:g>ରେ ମୋବାଇଲ୍ ଡାଟା ଏବଂ ଡାଟା ରୋମିଂ ଚାଲୁ ଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ। ଆପଣ ଏହାକୁ ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ସେଟିଂସ୍ରେ ବଦଳାଇପାରିବେ।"</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"ଖାରଜ କରନ୍ତୁ"</string>
+</resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index ef4d49f..f1f6efd 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD ਕੋਡ ਚੱਲ ਰਿਹਾ ਹੈ…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI ਕੋਡ ਰੱਦ ਕੀਤਾ"</string>
<string name="cancel" msgid="5044513931633602634">"ਰੱਦ ਕਰੋ"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD ਸੁਨੇਹਾ <xliff:g id="MIN_LEN">%d</xliff:g> ਅਤੇ <xliff:g id="MAX_LEN">%d</xliff:g> ਅੱਖਰਾਂ ਵਿਚਕਾਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD ਸੁਨੇਹਾ <xliff:g id="MIN_LEN">%1$d</xliff:g> ਅਤੇ <xliff:g id="MAX_LEN">%2$d</xliff:g> ਅੱਖਰਾਂ ਵਿਚਕਾਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"ਕਾਨਫਰੰਸ ਕਾਲ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
<string name="ok" msgid="3811371167865772377">"ਠੀਕ"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"ਸਪੀਕਰ"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"ਵੌਇਸਮੇਲ"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"ਵੌਇਸਮੇਲ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"ਸੂਚਨਾਵਾਂ"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"ਐਮਰਜੈਂਸੀ ਪ੍ਰਸਾਰਨ"</string>
<string name="call_settings" msgid="6112441768261754562">"ਕਾਲ ਸੈਟਿੰਗਾਂ"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"ਵਿਸਤ੍ਰਿਤ 4G LTE ਮੋਡ"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"ਵੌਇਸ ਅਤੇ ਹੋਰ ਸੰਚਾਰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ LTE ਸੇਵਾਵਾਂ ਵਰਤੋ ( ਸਿਫ਼ਾਰਸ਼ ਕੀਤਾ)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"ਅਵਾਜ਼ ਅਤੇ ਹੋਰ ਸੰਚਾਰਾਂ (ਸਿਫ਼ਾਰਸ਼ ਕੀਤੇ) ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ 4G ਸੇਵਾਵਾਂ ਵਰਤੋ"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"ਡਾਟਾ ਸਮਰਥਿਤ"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"ਡਾਟਾ ਵਰਤੋਂ ਦੀ ਆਗਿਆ ਦਿਓ"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"ਸਾਵਧਾਨ"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"ਕਾਲ ਮੁੜ-ਸ਼ੁਰੂ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।"</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"ਕਾਲ ਵੱਖ ਨਹੀਂ ਕਰ ਸਕਦਾ।"</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"ਟ੍ਰਾਂਸਫਰ ਨਹੀਂ ਕਰ ਸਕਦਾ।"</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"ਕਾਲਾਂ ਨੂੰ ਵਿਲੀਨ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ।"</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"ਕਾਲ ਅਸਵੀਕਾਰ ਨਹੀਂ ਕਰ ਸਕਦਾ।"</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ਕਾਲ(ਕਾਲਾਂ) ਰਿਲੀਜ ਨਹੀਂ ਕਰ ਸਕਦਾ।"</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ਕਾਲਾਂ ਹੋਲਡ ਨਹੀਂ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ।"</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ"</string>
<string name="call_barring_settings" msgid="80766145008623645">"ਕਾਲ ਬੈਰਿੰਗ ਸੈਟਿੰਗਾਂ"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"ਕੀ ਸਾਰੀਆਂ ਕਾਲ ਬੈਰਿੰਗ ਸੈਟਿੰਗਾਂ ਅਕਿਰਿਆਸ਼ੀਲ ਕਰਨੀਆਂ ਹਨ?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"ਨੈੱਟਵਰਕ ਰੁੱਝਿਆ ਹੋਇਆ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਆਪਣੀ ਕਾਲ ਲਈ ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"ਕਾਲ ਕਿਸੇ ਹੋਰ ਵਿਅਕਤੀ ਨੂੰ ਭੇਜੀ ਗਈ।"</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"ਕਾਲ ਅੱਗੇ ਭੇਜੀ ਗਈ।"</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"ਕਾਲ ਉਡੀਕ ਵਿੱਚ ਹੈ।"</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"ਕਾਲ ਅੱਗੇ ਭੇਜੀ ਗਈ।"</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"ਕਾਨਫਰੰਸ ਕਾਲ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਇਆ ਜਾ ਰਿਹਾ ਹੈ।"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"ਰੋਕ ਕੇ ਰੱਖੀ ਕਾਲ ਮੁੜ-ਸ਼ੁਰੂ ਹੋਈ।"</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਕਿਉਂਕਿ ਇਸ ਵੇਲੇ ਡੀਵਾਈਸ ਦਾ ਪ੍ਰਬੰਧਨ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ।"</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਕਿਉਂਕਿ ਇੱਕ ਹੋਰ ਆਊਟਗੋਇੰਗ ਕਾਲ ਪਹਿਲਾਂ ਹੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ।"</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਕਿਉਂਕਿ ਇੱਕ ਜਵਾਬ ਨਾ ਦਿੱਤੀ ਗਈ ਇਨਕਮਿੰਗ ਕਾਲ ਪਹਿਲਾਂ ਤੋਂ ਹੀ ਆ ਰਹੀ ਹੈ। ਨਵੀਂ ਕਾਲ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇਨਕਮਿੰਗ ਕਾਲ ਦਾ ਜਵਾਬ ਦਿਓ ਜਾਂ ਅਸਵੀਕਾਰ ਕਰੋ।"</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਕਿਉਂਕਿ ਕਾਲਿੰਗ ਨੂੰ ro.telephony.disable-call ਸਿਸਟਮ ਪ੍ਰਾਪਰਟੀ ਵਰਤ ਕੇ ਬੰਦ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ।"</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"ਪਹਿਲਾਂ ਤੋਂ ਦੋ ਕਾਲਾਂ ਚਾਲੂ ਹੋਣ ਕਰਕੇ ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਨਵੀਂ ਕਾਲ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਕਾਲ ਨੂੰ ਡਿਸਕਨੈਕਟ ਕਰੋ ਜਾਂ ਦੋਨੋਂ ਕਾਲਾਂ ਨੂੰ ਮਿਲਾ ਕੇ ਕਾਨਫਰੰਸ ਕਾਲ ਵਿੱਚ ਬਦਲੋ।"</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ਨੂੰ ਵਰਤਣ ਲਈ, ਪੱਕਾ ਕਰੋ ਕਿ ਮੋਬਾਈਲ ਡਾਟਾ ਚਾਲੂ ਹੋਵੇ। ਤੁਸੀਂ ਇਸਨੂੰ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਬਦਲ ਸਕਦੇ ਹੋ।"</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ਨੂੰ ਵਰਤਣ ਲਈ, ਪੱਕਾ ਕਰੋ ਕਿ ਮੋਬਾਈਲ ਡਾਟਾ ਅਤੇ ਡਾਟਾ ਰੋਮਿੰਗ ਦੋਨੋਂ ਚਾਲੂ ਹੋਣ। ਤੁਸੀਂ ਇਹਨਾਂ ਨੂੰ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਬਦਲ ਸਕਦੇ ਹੋ।"</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ਨੂੰ ਵਰਤਣ ਲਈ, ਪੱਕਾ ਕਰੋ ਕਿ ਸਿਮ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> \'ਤੇ ਮੋਬਾਈਲ ਡਾਟਾ ਚਾਲੂ ਹੋਵੇ। ਤੁਸੀਂ ਇਸਨੂੰ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਬਦਲ ਸਕਦੇ ਹੋ।"</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> ਨੂੰ ਵਰਤਣ ਲਈ, ਪੱਕਾ ਕਰੋ ਕਿ ਸਿਮ <xliff:g id="SIM_NUMBER">%2$d</xliff:g> \'ਤੇ ਮੋਬਾਈਲ ਡਾਟਾ ਅਤੇ ਡਾਟਾ ਰੋਮਿੰਗ ਦੋਨੋਂ ਚਾਲੂ ਹੋਣ। ਤੁਸੀਂ ਇਹਨਾਂ ਨੂੰ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਬਦਲ ਸਕਦੇ ਹੋ।"</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"ਖਾਰਜ ਕਰੋ"</string>
</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 2b81e54..68239cc 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Uruchomiony kod USSD..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Kod MMI został anulowany"</string>
<string name="cancel" msgid="5044513931633602634">"Anuluj"</string>
- <string name="enter_input" msgid="1810529547726803893">"Komunikat USSD musi mieć od <xliff:g id="MIN_LEN">%d</xliff:g> do <xliff:g id="MAX_LEN">%d</xliff:g> znaków. Spróbuj ponownie."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Komunikat USSD musi mieć od <xliff:g id="MIN_LEN">%1$d</xliff:g> do <xliff:g id="MAX_LEN">%2$d</xliff:g> znaków. Spróbuj ponownie."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Zarządzaj poł. konferencyjnym"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Głośnik"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Poczta głosowa"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Poczta głosowa (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"Poczta głosowa:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Powiadomienia"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Komunikaty alarmowe"</string>
<string name="call_settings" msgid="6112441768261754562">"Ustawienia połączeń"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Tryb rozszerzonego 4G LTE"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Użyj usług LTE, by poprawić łączność głosową i inną (zalecane)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Użyj usług 4G, by poprawić łączność głosową i inną (zalecane)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Włączone przesyłanie danych"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Zezwalaj na użycie danych"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Uwaga"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Nie udało się wznowić połączenia."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Nie można rozdzielić połączenia."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Nie można przekazać."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Nie udało się scalić połączeń."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Nie można odrzucić połączenia."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nie można zwolnić połączeń."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Nie można zawieszać połączeń."</string>
@@ -750,6 +759,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Wpisz hasło"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Ustawienia blokady połączeń"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Dezaktywować wszystkie ustawienia blokady połączeń?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Sieć jest zajęta. Spróbuj zadzwonić później."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Połączenie przekazane na inny numer."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Połączenie przekierowane."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Oczekiwanie na połączenie."</string>
@@ -767,8 +777,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Połączenie przekierowane."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Dołączam do połączenia konferencyjnego."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Wstrzymane połączenie zostało wznowione."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Nie można nawiązać połączenia, ponieważ urządzenie jest w tej chwili rejestrowane."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Nie można nawiązać połączenia, ponieważ inne połączenie jest już nawiązywane."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Nie można nawiązać połączenia, ponieważ masz nieodebrane połączenie przychodzące. Odbierz je lub odrzuć przed nawiązaniem nowego."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Nie można nawiązać połączenia, ponieważ ta funkcja została wyłączona przy użyciu właściwości systemowej ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Nie można nawiązać połączenia, ponieważ trwają już dwa inne połączenia. Zakończ jedno z nich lub scal je w połączenie konferencyjne, aby móc nawiązać nowe połączenie."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Aby używać usługi <xliff:g id="SUPP_SERVICE">%s</xliff:g>, włącz mobilną transmisję danych w ustawieniach sieci komórkowej."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Aby używać usługi <xliff:g id="SUPP_SERVICE">%s</xliff:g>, włącz mobilną transmisję danych i roaming danych w ustawieniach sieci komórkowej."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Aby używać usługi <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, włącz mobilną transmisję danych dla karty SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> w ustawieniach sieci komórkowej."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Aby używać usługi <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, włącz mobilną transmisję danych i roaming danych dla karty SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> w ustawieniach sieci komórkowej."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Zamknij"</string>
</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 95fb0fa..11d6d50 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"A executar código USSD..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Código de MMI cancelado"</string>
<string name="cancel" msgid="5044513931633602634">"Cancelar"</string>
- <string name="enter_input" msgid="1810529547726803893">"A mensagem USSD tem de ter entre <xliff:g id="MIN_LEN">%d</xliff:g> e <xliff:g id="MAX_LEN">%d</xliff:g> caracteres. Tente novamente."</string>
+ <string name="enter_input" msgid="1810529547726803893">"A mensagem USSD tem de ter entre <xliff:g id="MIN_LEN">%1$d</xliff:g> e <xliff:g id="MAX_LEN">%2$d</xliff:g> caracteres. Tente novamente."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Gerir chamada de conferência"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Altifalante"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Correio de voz"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Correio de voz (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"Correio de voz:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notificações"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Transmissões de emergência"</string>
<string name="call_settings" msgid="6112441768261754562">"Definições de chamada"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Modo 4G LTE avançado"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Utilizar os serviços LTE para melhorar a voz e outras comunicações (recomendado)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Utilizar os serviços 4G para melhorar a voz e outras comunicações (recomendado)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Dados ativados"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Permitir a utilização de dados"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Atenção"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Não é possível retomar a chamada."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Não é possível separar a chamada."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Não é possível transferir."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Não é possível intercalar as chamadas."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Não é possível rejeitar a chamada."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Não é possível libertar a(s) chamada(s)."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Não é possível colocar as chamadas em espera."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Introduzir palavra-passe"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Definições de barramento de chamadas"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Desativar todas as definições de barramento de chamadas?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"A rede está ocupada. Tente efetuar novamente a chamada mais tarde."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"A chamada foi desviada."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"A chamada foi reencaminhada."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"A chamada foi colocada em espera."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"A chamada foi reencaminhada."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Está a participar na conferência."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"A chamada em espera foi desligada."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Não é possível efetuar uma chamada porque o dispositivo está atualmente a ser aprovisionado."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Não é possível efetuar uma chamada porque já está a ser efetuada outra chamada."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Não pode efetuar uma chamada porque há uma chamada recebida não atendida. Atenda ou rejeite a chamada recebida antes de efetuar uma nova chamada."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Não pode efetuar uma chamada porque as chamadas foram desativadas através da propriedade de sistema ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Não pode efetuar uma chamada porque já estão em curso duas chamadas. Desligue uma das chamadas ou una-as numa conferência antes de efetuar uma nova chamada."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Para utilizar o/a <xliff:g id="SUPP_SERVICE">%s</xliff:g>, certifique-se de que os dados móveis estão ativados. Pode alterar esta definição nas definições de rede móvel."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Para utilizar o/a <xliff:g id="SUPP_SERVICE">%s</xliff:g>, certifique-se de que os dados móveis e o roaming de dados estão ativados. Pode alterar estas definições nas definições de rede móvel."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Para utilizar o/a <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, certifique-se de que os dados móveis estão ativados para o SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Pode alterar esta definição nas definições de rede móvel."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Para utilizar o/a <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, certifique-se de que os dados móveis e o roaming de dados estão ativados para o SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Pode alterar estas definições nas definições de rede móvel."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Ignorar"</string>
</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 88d76f2..638d473 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Código USSD em execução…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Código MMI cancelado"</string>
<string name="cancel" msgid="5044513931633602634">"Cancelar"</string>
- <string name="enter_input" msgid="1810529547726803893">"A mensagem USSD deve ter de <xliff:g id="MIN_LEN">%d</xliff:g> a <xliff:g id="MAX_LEN">%d</xliff:g> caracteres. Tente novamente."</string>
+ <string name="enter_input" msgid="1810529547726803893">"A mensagem USSD deve ter de <xliff:g id="MIN_LEN">%1$d</xliff:g> a <xliff:g id="MAX_LEN">%2$d</xliff:g> caracteres. Tente novamente."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Gerenciar teleconferência"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Alto-falante"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Correio de voz"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Correio de voz (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notificações"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Transmissões de emergência"</string>
<string name="call_settings" msgid="6112441768261754562">"Configurações de chamadas"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Modo 4G LTE avançado"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Usar serviços de LTE para melhorar a voz e outras comunicações (recomendado)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Usar os serviços 4G para melhorar a voz e outras comunicações (recomendado)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Dados ativados"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Permitir o uso de dados"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Atenção"</string>
@@ -327,9 +337,9 @@
<item msgid="5511864807618312598">"7"</item>
</string-array>
<string name="list_language_dtitle" msgid="5442908726538951934">"Idiomas"</string>
- <string name="enable_disable_local_weather" msgid="986967454867219114">"Clima local"</string>
- <string name="local_weather_enable" msgid="6199315114382448922">"Clima local ativado"</string>
- <string name="local_weather_disable" msgid="2510158089142626480">"Clima local desativado"</string>
+ <string name="enable_disable_local_weather" msgid="986967454867219114">"Previsão do tempo local"</string>
+ <string name="local_weather_enable" msgid="6199315114382448922">"Previsão do tempo ativada"</string>
+ <string name="local_weather_disable" msgid="2510158089142626480">"Previsão do tempo desativada"</string>
<string name="enable_disable_atr" msgid="8339572391278872343">"Relatórios de trânsito da área"</string>
<string name="atr_enable" msgid="5541757457789181799">"Relatórios de trânsito da área ativados"</string>
<string name="atr_disable" msgid="7085558154727596455">"Relatórios de trânsito da área desativados"</string>
@@ -417,15 +427,15 @@
<string name="name" msgid="7329028332786872378">"Nome"</string>
<string name="number" msgid="7905950798349903858">"Número"</string>
<string name="save" msgid="4094274636321939086">"Salvar"</string>
- <string name="add_fdn_contact" msgid="2481915899633353976">"Adicionar número de chamadas fixas"</string>
- <string name="adding_fdn_contact" msgid="7627379633721940991">"Adicionando número de chamadas fixas…"</string>
- <string name="fdn_contact_added" msgid="7458335758501736665">"Número de chamadas fixas adicionado."</string>
- <string name="edit_fdn_contact" msgid="7976936035587081480">"Editar o número de chamadas fixas"</string>
- <string name="updating_fdn_contact" msgid="8370929876849803600">"Atualizando o número de chamadas fixas…"</string>
- <string name="fdn_contact_updated" msgid="5497828782609005017">"Número de chamadas fixas atualizado."</string>
- <string name="delete_fdn_contact" msgid="6668958073074151717">"Excluir número de chamadas fixas"</string>
- <string name="deleting_fdn_contact" msgid="5669163206349319969">"Excluindo número de chamadas fixas…"</string>
- <string name="fdn_contact_deleted" msgid="7154162327112259569">"Número de chamadas fixas excluído."</string>
+ <string name="add_fdn_contact" msgid="2481915899633353976">"Adicionar número de discagem fixa"</string>
+ <string name="adding_fdn_contact" msgid="7627379633721940991">"Adicionando número de discagem fixa…"</string>
+ <string name="fdn_contact_added" msgid="7458335758501736665">"Número de discagem fixa adicionado."</string>
+ <string name="edit_fdn_contact" msgid="7976936035587081480">"Editar o número de discagem fixa"</string>
+ <string name="updating_fdn_contact" msgid="8370929876849803600">"Atualizando o número de discagem fixa…"</string>
+ <string name="fdn_contact_updated" msgid="5497828782609005017">"Número de discagem fixa atualizado."</string>
+ <string name="delete_fdn_contact" msgid="6668958073074151717">"Excluir número de discagem fixa"</string>
+ <string name="deleting_fdn_contact" msgid="5669163206349319969">"Excluindo número de discagem fixa…"</string>
+ <string name="fdn_contact_deleted" msgid="7154162327112259569">"Número de discagem fixa excluído."</string>
<string name="pin2_invalid" msgid="5470854099230755944">"O FDN não foi atualizado porque você digitou um PIN incorreto."</string>
<string name="fdn_invalid_number" msgid="2062898833049589309">"O FDN não foi atualizado porque o número excede 20 dígitos."</string>
<string name="pin2_or_fdn_invalid" msgid="6025144083384701197">"O FDN não foi atualizado. O PIN2 estava incorreto, ou o número de telefone foi rejeitado."</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Não é possível retomar a chamada."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Não é possível separar a chamada."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Não é possível transferir a chamada."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Não foi possível mesclar as chamadas."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Não é possível rejeitar a chamada."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Não é possível liberar chamadas."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Não é possível colocar chamadas em espera."</string>
@@ -550,8 +559,8 @@
<string-array name="tty_mode_entries">
<item msgid="512950011423868021">"TTY desativado"</item>
<item msgid="3971695875449640648">"TTY completo"</item>
- <item msgid="1937509904407445684">"TTY HCO"</item>
- <item msgid="5644925873488772224">"TTY VCO"</item>
+ <item msgid="1937509904407445684">"TTD HCO"</item>
+ <item msgid="5644925873488772224">"TTD VCO"</item>
</string-array>
<string name="dtmf_tones_title" msgid="5163153771291340803">"Tons DTMF"</string>
<string name="dtmf_tones_summary" msgid="3351820372864020331">"Definir duração dos tons DTMF"</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Digitar senha"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Configurações do bloqueio de chamadas"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Desativar todas as configurações do bloqueio de chamadas?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"A rede está ocupada. Ligue novamente mais tarde."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Chamada desviada."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Chamada encaminhada."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Chamada em espera."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"A chamada foi encaminhada."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Participando da teleconferência."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"A chamada em espera foi desconectada."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Não é possível ligar porque o dispositivo está sendo provisionado no momento,"</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Não é possível ligar porque há outra chamada sendo realizada."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Não é possível ligar porque há uma chamada recebida que não foi atendida. Atenda ou rejeite essa chamada antes de fazer outra."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Não é possível ligar porque as chamadas foram desativadas pela propriedade \"ro.telephony.disable-call system\"."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Não é possível ligar porque já há duas chamadas em andamento. Encerre uma das chamadas ou mescle-as em uma conferência antes de fazer outra."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Verifique se os dados móveis estão ativados para usar este serviço: <xliff:g id="SUPP_SERVICE">%s</xliff:g>. Você pode alterar essa opção nas configurações da rede móvel."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Verifique se os dados móveis e o roaming de dados estão ativados para usar este serviço: <xliff:g id="SUPP_SERVICE">%s</xliff:g>. Você pode alterar essa opção nas configurações da rede móvel."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Verifique se os dados móveis estão ativados para o SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> para usar este serviço: <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Você pode alterar essa opção nas configurações da rede móvel."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Verifique se os dados móveis e o roaming de dados estão ativados para o SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> para usar este serviço: <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>. Você pode alterar essa opção nas configurações da rede móvel."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Dispensar"</string>
</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 21a0e06..9d39b06 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Se rulează codul USSD..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Cod MMI anulat"</string>
<string name="cancel" msgid="5044513931633602634">"Anulați"</string>
- <string name="enter_input" msgid="1810529547726803893">"Mesajul USSD trebuie să aibă între <xliff:g id="MIN_LEN">%d</xliff:g> și <xliff:g id="MAX_LEN">%d</xliff:g> caractere. Încercați din nou."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Mesajul USSD trebuie să aibă între <xliff:g id="MIN_LEN">%1$d</xliff:g> și <xliff:g id="MAX_LEN">%2$d</xliff:g> caractere. Încercați din nou."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Gestionați teleconferința"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Difuzor"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Mesagerie vocală"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Mesagerie vocală (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"MV:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Notificări"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Transmisiuni de urgență"</string>
<string name="call_settings" msgid="6112441768261754562">"Setări pentru apeluri"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Mod 4G LTE îmbunătățit"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Folosiți servicii LTE pt. a îmbunătăți comunicări vocale și altele (recomandat)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Folosiți servicii 4G pentru a îmbunătăți comunicările vocale și altele (recomandat)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Date activate"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Permiteți utilizarea datelor"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Atenție"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Nu se poate relua apelul."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Apelul nu poate fi separat."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Nu se poate transfera."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Nu se pot îmbina apelurile."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Apelul nu poate fi respins."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Apelurile nu pot fi eliberate."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Apelurile nu pot fi puse în așteptare."</string>
@@ -748,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Introduceți parola"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Setări de restricționare a apelurilor"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Dezactivați toate setările de restricționare a apelurilor?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Rețeaua este ocupată. Încercați să apelați din nou mai târziu."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Apelul a fost deviat."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Apelul a fost redirecționat."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Apelul este în așteptare."</string>
@@ -765,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Apel redirecționat"</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Vă conectați la conferința telefonică."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Apelul în așteptare a fost deconectat."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Nu se poate iniția un apel, deoarece, momentan, are loc provizionarea dispozitivului."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Nu se poate iniția un apel când se efectuează deja alt apel."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Nu se poate iniția un apel când primiți un apel la care nu ați răspuns. Răspundeți sau respingeți apelul primit înainte de a iniția un apel nou."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Nu se poate iniția un apel deoarece apelarea a fost dezactivată folosindu-se funcția de sistem ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Nu se poate iniția un apel când există deja două apeluri în desfășurare. Deconectați unul dintre ele sau îmbinați-le într-o conferință înainte de a iniția un apel nou."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%s</xliff:g>, datele mobile trebuie să fie activate. Puteți modifica acest lucru în setările rețelei mobile."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%s</xliff:g>, datele mobile și roamingul de date trebuie să fie activate. Puteți modifica acest lucru în setările rețelei mobile."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, datele mobile trebuie să fie activate pentru cardul SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puteți modifica acest lucru în setările rețelei mobile."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, datele mobile și roamingul de date trebuie să fie activate pentru cardul SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Puteți modifica acest lucru în setările rețelei mobile."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Închideți"</string>
</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 3e44959..b7597b7 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Выполняется запрос USSD…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Код MMI отменен"</string>
<string name="cancel" msgid="5044513931633602634">"Отмена"</string>
- <string name="enter_input" msgid="1810529547726803893">"Допустимая длина USSD-сообщения: <xliff:g id="MIN_LEN">%d</xliff:g>–<xliff:g id="MAX_LEN">%d</xliff:g> символов. Повторите попытку."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Допустимая длина USSD-сообщения: <xliff:g id="MIN_LEN">%1$d</xliff:g>–<xliff:g id="MAX_LEN">%2$d</xliff:g> символов. Повторите попытку."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Управление конференц-связью"</string>
<string name="ok" msgid="3811371167865772377">"ОК"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Динамик"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Голосовая почта"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Голосовая почта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"ГП:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Уведомления"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Оповещения о чрезвычайных ситуациях"</string>
<string name="call_settings" msgid="6112441768261754562">"Вызовы"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Режим 4G LTE"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Использовать сервисы LTE, чтобы улучшить качество связи (рекомендуется)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Использовать сервисы 4G, чтобы улучшить качество связи (рекомендуется)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Передача данных"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Разрешить использование данных"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Внимание!"</string>
@@ -501,8 +511,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Не удалось возобновить вызов."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Не удалось разделить вызов."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Не удалось перенести."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Не удалось объединить вызовы"</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Не удалось отклонить вызов."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Не удалось разъединить."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Удержание невозможно."</string>
@@ -752,6 +761,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Введите пароль"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Настройки запрета вызовов"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Отключить все настройки запрета вызовов?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Сеть занята. Попробуйте выполнить вызов позже."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Абонент переадресовал вызов."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Переадресация вызова."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Ожидание вызова."</string>
@@ -769,8 +779,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Переадресация вызова."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Присоединение к конференц-вызову…"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Вызов снят с удержания."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Невозможно позвонить: выполняется подготовка устройства"</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Невозможно позвонить, поскольку ещё не завершен другой исходящий вызов."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Невозможно позвонить, поскольку вы не ответили на входящий вызов. Примите или отклоните текущий звонок."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Невозможно позвонить, поскольку вызовы запрещены системным свойством ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Невозможно позвонить, поскольку ещё не завершены два текущих вызова. Чтобы начать звонок, сбросьте один из вызовов или объедините их в конференцию."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Для работы этого сервиса (<xliff:g id="SUPP_SERVICE">%s</xliff:g>) необходимо подключение к мобильному Интернету. Этот параметр можно изменить в настройках мобильной сети."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Для работы этого сервиса (<xliff:g id="SUPP_SERVICE">%s</xliff:g>) необходимо подключение к мобильному Интернету и интернет-роумингу. Эти параметры можно изменить в настройках мобильной сети."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Для работы этого сервиса (<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>) необходимо подключение к мобильному Интернету через SIM-карту <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Этот параметр можно изменить в настройках мобильной сети."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Для работы этого сервиса (<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>) необходимо подключение к мобильному Интернету и доступ к интернет-роумингу через SIM-карту <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Эти параметры можно изменить в настройках мобильной сети."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Закрыть"</string>
</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 056988f..2af9b68 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD කේතය ධාවනය වෙමින්…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI කේතය අවලංගු කෙරුණි"</string>
<string name="cancel" msgid="5044513931633602634">"අවලංගු කරන්න"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD පණිවිඩය අකුරු <xliff:g id="MIN_LEN">%d</xliff:g> ත් <xliff:g id="MAX_LEN">%d</xliff:g> අතර විය යුතුය. කරුණාකර යළි උත්සාහ කරන්න."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD පණිවිඩය අකුරු <xliff:g id="MIN_LEN">%1$d</xliff:g> ත් <xliff:g id="MAX_LEN">%2$d</xliff:g> අතර විය යුතුය. කරුණාකර යළි උත්සාහ කරන්න."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"සම්මන්ත්රණ ඇමතුම කළමනාකරණය කරන්න"</string>
<string name="ok" msgid="3811371167865772377">"හරි"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"නාදකය"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"හඬ තැපෑල"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"හඬ තැපෑල (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"දැනුම්දීම්"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"හදිසි විකාශන"</string>
<string name="call_settings" msgid="6112441768261754562">"ඇමතුම් සැකසුම්"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"දියුණු කරන ලද 4G LTE මෝඩය"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"හඬ සහ වෙනත් සන්නිවේදනයන් දියුණු කිරීමට LTE සේවාව භාවිතා කරන්න (නිර්දේශ කළ)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"හඬ සහ වෙනත් සන්නිවේදන දියුණු කිරීමට 4G සේවා භාවිත කරන්න (නිර්දේශිත)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"දත්ත සබලයි"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"දත්ත භාවිතයට ඉඩ දෙන්න"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"අවධානය යොමු කරන්න"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"ඇමතුම නැවත පටන් ගැනීමට නොහැකිය."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"ඇමතුම වෙන් කිරීම කළ නොහැක."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"මාරු කිරීමට නොහැක."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"ඇමතුම් ඒකාබද්ධ කිරීමට නොහැකිය."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"ඇමතුම ප්රතික්ෂේප කළ නොහැක."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ඇමතුම(ම්) මුදාහැරීම කළ නොහැක."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ඇමතුම් රඳවා තැබීමට නොහැකිය."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"මුරපදය ඇතුළු කරන්න"</string>
<string name="call_barring_settings" msgid="80766145008623645">"ඇමතුම් අවහිර කිරීම් සැකසීම්"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"සියලු ඇමතුම් අවහිර කිරීම් සැකසීම් අක්රිය කරන්නද?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"ජාලය කාර්ය බහුලයි. කරුණාකර පසුව නැවත ඔබේ ඇමතුම උත්සාහ කරන්න."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"ඇමතුම හරවන ලදී."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"ඇමතුම යොමු කරන ලදී."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"ඇමතුම පොරොත්තුවෙන්."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"යොමු කළ ඇමතුම."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"සම්මන්ත්රණ ඇමතුමට එක් වෙමින්."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"රඳවා ගත් ඇමතුම නිදහස් කර ඇත."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"උපාංගය දැනට සුදානම් කරමින් පවතින නිසා ඇමතුමක් ගැනීමට නොහැකිය."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"තවත් යන ඇමතුමක් දැනටමත් ඩයල් කරමින් පවතින නිසා අැමතුමක් ගැනීමට නොහැකිය."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"පිළිතුරු නොදුන් එන ඇමතුමක් තිබෙන නිසා අැමතුමක් ගැනීමට නොහැකිය. නව ඇමතුමක් ගැනීමට පෙර එන අැමතුමට පිළිතුරු දෙන්න නැතහොත් ප්රතික්ෂේප කරන්න."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"ඇමතුම ro.telephony.disable-call පද්ධති ගුණාංගය භාවිතයෙන් ඇමතුම අබල කර ඇති නිසා ඇමතුමක් ගැනීමට නොහැකිය."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"දැනටමත් ඇමතුම් දෙකක් කෙරෙමින් පවතින නිසා ඇමතුමක් ගැනීමට නොහැකිය. නව ඇමතුමක් ගැනීමට පෙරාතුව ඇමතුම්වලින් එකක් විසන්ධි කරන්න නැතහොත් ඒවා සම්මන්ත්රණයකට ඒකාබද්ධ කරන්න."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> භාවිත කිරීමට, ඔබේ ජංගම දත්ත ක්රියාත්මක කර ඇති බව සහතික කර ගන්න. ඔබට මෙය ජංගම ජාල සැකසීම් තුළ වෙනස් කිරීමට හැකිය."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> භාවිත කිරීමට, ජංගම දත්ත සහ දත්ත රෝමිං ක්රියාත්මක කර ඇති බව සහතික කර ගන්න. ඔබට මේවා ජංගම ජාල සැකසීම් තුළ වෙනස් කිරීමට හැකිය."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> භාවිත කිරීමට, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> සඳහා ජංගම දත්ත ක්රියාත්මක කර ඇති බව සහතික කර ගන්න. ඔබට මෙය ජංගම ජාල සැකසීම් තුළ වෙනස් කිරීමට හැකිය."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> භාවිත කිරීමට, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> සඳහා ජංගම දත්ත සහ දත්ත රෝමිං ක්රියාත්මක කර ඇති බව සහතික කර ගන්න. ඔබට මේවා ජංගම ජාල සැකසීම් තුළ වෙනස් කිරීමට හැකිය."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"ඉවත ලන්න"</string>
</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 30c9303..c7c40c5 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Kód USSD je spustený..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Kód MMI bol zrušený"</string>
<string name="cancel" msgid="5044513931633602634">"Zrušiť"</string>
- <string name="enter_input" msgid="1810529547726803893">"Správa USSD musí mať od <xliff:g id="MIN_LEN">%d</xliff:g> do <xliff:g id="MAX_LEN">%d</xliff:g> znakov. Skúste to znova."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Správa USSD musí mať od <xliff:g id="MIN_LEN">%1$d</xliff:g> do <xliff:g id="MAX_LEN">%2$d</xliff:g> znakov. Skúste to znova."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Spravovať konferenčný hovor"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Reproduktor"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Hlasová schránka"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Hlasová schránka (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"HS:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Upozornenia"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Núdzové vysielania"</string>
<string name="call_settings" msgid="6112441768261754562">"Nastavenia hovorov"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Zlepšený režim 4G LTE"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Použiť služby LTE na vylepšenie hlasu a ďalších komunikácií (odporúčané)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Používať na zlepšovanie hlasovej a ďalšej komunikácie služby 4G (odporúčané)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Povoliť dát. prenosy"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Povoliť využívanie dát"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Pozor"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Hovor sa nedá obnoviť."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Nedá sa rozdeliť hovor"</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Nedá sa preniesť"</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Hovory nie je možné zlúčiť."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Nedá sa odmietnuť hovor"</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nedajú sa ukončiť hovory"</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Hovory nie je možné podržať."</string>
@@ -521,8 +530,8 @@
<string name="dial_emergency_empty_error" msgid="9130194953830414638">"Hovor nie je možné uskutočniť. Vytočte číslo tiesňového volania."</string>
<string name="dial_emergency_calling_not_available" msgid="5675557523782491826">"Tiesňové volania nie sú k dispozícii"</string>
<string name="police_type_description" msgid="5324410799919829693">"Polícia"</string>
- <string name="ambulance_type_description" msgid="4114815025408089866">"Sanitka"</string>
- <string name="fire_type_description" msgid="7145996705197064710">"Požiar"</string>
+ <string name="ambulance_type_description" msgid="4114815025408089866">"Záchranka"</string>
+ <string name="fire_type_description" msgid="7145996705197064710">"Hasiči"</string>
<string name="description_concat_format" msgid="7141070875487870177">"%1$s, %2$s"</string>
<string name="dialerKeyboardHintText" msgid="9192914825413747792">"Číslo vytočíte pomocou klávesnice."</string>
<string name="onscreenHoldText" msgid="2285258239691145872">"Podržať"</string>
@@ -750,6 +759,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Zadajte heslo"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Nastavenia blokovania hovorov"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Deaktivovať všetky nastavenia blokovania hovorov?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Sieť je zaneprázdnená. Skúste svoj hovor zopakovať neskôr."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Hovor bol odklonený."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Hovor bol presmerovaný."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Hovor čaká."</string>
@@ -767,8 +777,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Presmerovaný hovor."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Pripájate sa ku konferenčnému hovoru."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Podržaný hovor bol odpojený."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Nie je možné uskutočniť hovor, pretože práve prebieha komunikácia zariadenia s operátorom."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Hovor sa nedá uskutočniť, pretože sa už vytáča iný odchádzajúci hovor."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Hovor sa nedá uskutočniť, pretože máte neprijatý prichádzajúci hovor. Prijmite alebo odmietnite prichádzajúci hovor a až potom uskutočnite nový hovor."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Hovor sa nedá uskutočniť, pretože hovory boli zakázané systémovým príkazom ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Hovor sa nedá uskutočniť, pretože už prebiehajú dva hovory. Odpojte jeden hovor alebo ich zlúčte do konferencie a až potom uskutočnite nový hovor."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Ak chcete používať službu <xliff:g id="SUPP_SERVICE">%s</xliff:g>, skontrolujte, či máte zapnuté mobilné dáta. Môžete to zmeniť v nastaveniach mobilnej siete."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Ak chcete používať službu <xliff:g id="SUPP_SERVICE">%s</xliff:g>, skontrolujte, či máte zapnuté mobilné dáta a dátový roaming. Môžete to zmeniť v nastaveniach mobilnej siete."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Ak chcete používať službu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, skontrolujte, či máte pre SIM kartu <xliff:g id="SIM_NUMBER">%2$d</xliff:g> zapnuté mobilné dáta. Môžete to zmeniť v nastaveniach mobilnej siete."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Ak chcete používať službu <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, skontrolujte, či máte pre SIM kartu <xliff:g id="SIM_NUMBER">%2$d</xliff:g> zapnuté mobilné dáta a dátový roaming. Môžete to zmeniť v nastaveniach mobilnej siete."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Zavrieť"</string>
</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index b92115a..00c5add 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Koda USSD se izvaja ..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Koda MMI preklicana"</string>
<string name="cancel" msgid="5044513931633602634">"Prekliči"</string>
- <string name="enter_input" msgid="1810529547726803893">"Sporočila USSD morajo imeti od <xliff:g id="MIN_LEN">%d</xliff:g> do <xliff:g id="MAX_LEN">%d</xliff:g> znakov. Poskusite znova."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Sporočila USSD morajo imeti od <xliff:g id="MIN_LEN">%1$d</xliff:g> do <xliff:g id="MAX_LEN">%2$d</xliff:g> znakov. Poskusite znova."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Upravljanje konferenčnih klicev"</string>
<string name="ok" msgid="3811371167865772377">"V redu"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Zvočnik"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Glasovna pošta"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Odzivnik (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Obvestila"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Oddaje v sili"</string>
<string name="call_settings" msgid="6112441768261754562">"Nastavitve klicev"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Izboljšan način 4G LTE"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Uporaba storitev LTE za izboljšanje glas. in drugih komunikacij (priporočeno)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Uporaba storitev 4G za izboljšanje glasovne in druge komunikacije (priporočeno)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Podatki omogočeni"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Dovoli prenos podatkov"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Opozorilo"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Klica ni mogoče nadaljevati."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Ločitev klica ni mogoča."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Prenos ni mogoč."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Klicev ni mogoče združiti."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Zavrnitev klica ni mogoča."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Prevzem klicev ni mogoč."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Klicev ni mogoče zadržati."</string>
@@ -750,6 +759,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Vnesite geslo"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Nastavitve zapore klicev"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Želite deaktivirati vse nastavitve za zaporo klicev?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Omrežje je zasedeno. Poskusite znova poklicati pozneje."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Klic je preusmerjen z druge številke."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Klic je preusmerjen."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Čakajoči klic."</string>
@@ -767,8 +777,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Preusmerjeni klic."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Pridruževanje konferenčnemu klicu."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Zadržani klici so sproščeni."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Klica ni mogoče opraviti, ker trenutno poteka priprava naprave za uporabo."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Klica ni mogoče opraviti, ker že poteka vzpostavljanje drugega odhodnega klica."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Klica ni mogoče opraviti, ker imate dohodni klic, na katerega še niste odgovorili. Preden začnete z opravljanjem novega klica, sprejmite ali zavrnite dohodni klic."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Klica ni mogoče opraviti, ker je klicanje onemogočeno zaradi sistemske lastnosti ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Klica ni mogoče opraviti, ker potekata že dva klica. Preden začnete z opravljanjem novega klica, prekinite enega od klicev ali ju združite v konferenčni klic."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Če želite uporabiti storitev <xliff:g id="SUPP_SERVICE">%s</xliff:g>, najprej preverite, ali je vklopljen prenos podatkov v mobilnem omrežju. To izbiro lahko spremenite v nastavitvah mobilnega omrežja."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Če želite uporabiti storitev <xliff:g id="SUPP_SERVICE">%s</xliff:g>, najprej preverite, ali sta vklopljena prenos podatkov v mobilnem omrežju in podatkovno gostovanje. Ti izbiri lahko spremenite v nastavitvah mobilnega omrežja."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Če želite uporabiti storitev <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, najprej preverite, ali je prenos podatkov v mobilnem omrežju vklopljen za kartico SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. To izbiro lahko spremenite v nastavitvah mobilnega omrežja."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Če želite uporabiti storitev <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, najprej preverite, ali sta prenos podatkov v mobilnem omrežju in podatkovno gostovanje vklopljena za kartico SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Ti izbiri lahko spremenite v nastavitvah mobilnega omrežja."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Opusti"</string>
</resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 37976ad..c691046 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Kodi USSD po punon…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Kodi MMI u anulua"</string>
<string name="cancel" msgid="5044513931633602634">"Anulo"</string>
- <string name="enter_input" msgid="1810529547726803893">"Mesazhi USSD duhet të jetë mes karaktereve <xliff:g id="MIN_LEN">%d</xliff:g> dhe <xliff:g id="MAX_LEN">%d</xliff:g>. Provo sërish."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Mesazhi USSD duhet të jetë mes karaktereve <xliff:g id="MIN_LEN">%1$d</xliff:g> dhe <xliff:g id="MAX_LEN">%2$d</xliff:g>. Provo sërish."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Menaxho telefonatën-konferencë"</string>
<string name="ok" msgid="3811371167865772377">"Në rregull"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Altoparlant"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Posta zanore"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Posta zanore (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Njoftimet"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Transmetimet e urgjencës"</string>
<string name="call_settings" msgid="6112441768261754562">"Cilësimet e telefonatës"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Modaliteti i përparuar 4G LTE"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Përdor shërbimet LTE për të përmirësuar komunikimet zanore dhe të tjera (rekomandohet)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Përdor shërbimet 4G për të përmirësuar komunikimet zanore dhe të tjera (rekomandohet)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Të dhënat janë të aktivizuara"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Lejo përdorimin e të dhënave"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Kujdes!"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Telefonata nuk mund të vazhdojë."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Nuk mund të ndajë telefonatën."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Nuk mund të transferojë."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Telefonatat nuk mund të shkrihen."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Nuk mund të refuzojë telefonatën."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nuk mund të lëshojë telefonatën(at)."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Telefonatat nuk mund të mbahen në pritje."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Fut fjalëkalimin"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Cilësimet e bllokimit të telefonatave"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Të çaktivizohen të gjitha cilësimet e bllokimit të telefonatave?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Rrjeti është i zënë. Provo ta kryesh telefonatën përsëri më vonë."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Telefonata u devijua."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Telefonata u transferua."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Telefonata është në pritje."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Telefonatë e transferuar."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Po bashkohesh në një telefonatë konferencë."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Telefonata në pritje u shkëput."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Telefonata nuk mund të kryhet sepse pajisja po përgatitet aktualisht."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Nuk mund të kryhet një telefonatë pasi një telefonatë tjetër dalëse është duke u kryer tashmë."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Nuk mund të kryhet një telefonatë sepse është një telefonatë hyrëse që nuk ka marrë përgjigje. Përgjigju ose refuzoje telefonatën hyrëse para se të kryesh një telefonatë të re."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Nuk mund të kryhet një telefonatë sepse telefonata është çaktivizuar duke përdorur vetinë e sistemit ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Nuk mund të kryhet një telefonatë sepse janë tashmë dy telefonata në vazhdim. Shkëput një nga telefonatat ose shkriji ato në një konferencë para se të kryesh një telefonatë të re."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Për të përdorur <xliff:g id="SUPP_SERVICE">%s</xliff:g>, sigurohu që të dhënat celulare janë të aktivizuara. Mund ta ndryshosh këtë te cilësimet e rrjetit celular."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Për të përdorur <xliff:g id="SUPP_SERVICE">%s</xliff:g>, sigurohu që të dhënat celulare dhe roaming për të dhënat janë aktivizuar. Mund ta ndryshosh këtë te cilësimet e rrjetit celular."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Për të përdorur <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, sigurohu që të dhënat celulare janë të aktivizuara për kartën SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Mund ta ndryshosh këtë te cilësimet e rrjetit celular."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Për të përdorur <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, sigurohu që të dhënat celulare dhe roaming për të dhënat janë aktivizuar për kartën SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Mund ta ndryshosh këtë te cilësimet e rrjetit celular."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Hiq"</string>
</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 55f32ab..d792c02 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD кôд је покренут…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI кôд је отказан"</string>
<string name="cancel" msgid="5044513931633602634">"Откажи"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD порука мора да има између <xliff:g id="MIN_LEN">%d</xliff:g> и <xliff:g id="MAX_LEN">%d</xliff:g> знакова. Пробајте поново."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD порука мора да има између <xliff:g id="MIN_LEN">%1$d</xliff:g> и <xliff:g id="MAX_LEN">%2$d</xliff:g> знакова. Пробајте поново."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Управљање конференцијским позивом"</string>
<string name="ok" msgid="3811371167865772377">"Потврди"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Звучник"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Говорна пошта"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Гласовна пошта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Обавештења"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Хитни преноси"</string>
<string name="call_settings" msgid="6112441768261754562">"Подешавања позива"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Побољшани 4G LTE режим"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Коришћење LTE услуга за побољшање гласовних и других комуникација (препоручено)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Користи 4G услуге за побољшање гласовне и друге комуникације (препоручено)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Подаци су омогућени"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Омогућавање потрошње података"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Пажња"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Нисмо успели да наставимо позив."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Раздвајање позива није успело."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Пребацивање није успело."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Обједињавање позива није успело."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Одбијање позива није успело."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Успостављање позива није успело."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Није могуће стављати позиве на чекање."</string>
@@ -748,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Унесите лозинку"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Подешавања ограничавања позива"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Желите ли да деактивирате сва подешавања ограничавања позива?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Мрежа је заузета. Пробајте поново да упутите позив касније."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Позив је преусмерен."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Позив је прослеђен."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Позив је на чекању."</string>
@@ -765,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Прослеђен позив."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Улазите у конференцијски позив."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Позив више није на чекању."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Тренутно не можете да упутите позив зато што се уређају додељује услуга."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Не можете да позовете јер се већ упућује други одлазни позив."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Не можете да позовете јер имате долазни позив на који нисте одговорили. Одговорите на долазни позив или га одбијте пре упућивања новог позива."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Не можете да позовете јер је позивање онемогућено преко својства система ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Не можете да позовете јер су два позива већ у току. Прекините један од позива или их обједините у конференцију да бисте упутили нови позив."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Да бисте користили <xliff:g id="SUPP_SERVICE">%s</xliff:g>, уверите се да су укључени мобилни подаци. То можете да промените у подешавањима мобилне мреже."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Да бисте користили <xliff:g id="SUPP_SERVICE">%s</xliff:g>, уверите се да су укључени мобилни подаци и пренос података у ромингу. То можете да промените у подешавањима мобилне мреже."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Да бисте користили <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, уверите се да су за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> укључени мобилни подаци. То можете да промените у подешавањима мобилне мреже."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Да бисте користили <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, уверите се да су за SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> укључени мобилни подаци и пренос података у ромингу. То можете да промените у подешавањима мобилне мреже."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Одбаци"</string>
</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 3975f48..e0ecac8 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD-kod körs…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI-koden har annullerats"</string>
<string name="cancel" msgid="5044513931633602634">"Avbryt"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD-meddelandet måste innehålla mellan <xliff:g id="MIN_LEN">%d</xliff:g> och <xliff:g id="MAX_LEN">%d</xliff:g> tecken. Försök igen."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD-meddelandet måste innehålla mellan <xliff:g id="MIN_LEN">%1$d</xliff:g> och <xliff:g id="MAX_LEN">%2$d</xliff:g> tecken. Försök igen."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Hantera konferenssamtal"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Högtalare"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Röstbrevlåda"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Röstbrevlåda (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"RB:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Aviseringar"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Nödsändningar"</string>
<string name="call_settings" msgid="6112441768261754562">"Samtalsinställningar"</string>
@@ -89,7 +95,7 @@
<string name="labelCallerId" msgid="3888899447379069198">"Nummerpresentatör"</string>
<string name="sum_loading_settings" msgid="1826692909391168620">"Inställningarna läses in ..."</string>
<string name="sum_hide_caller_id" msgid="1071407020290873782">"Dolt nummer i utgående samtal"</string>
- <string name="sum_show_caller_id" msgid="6768534125447290401">"Nummer som visas för utgående samtal"</string>
+ <string name="sum_show_caller_id" msgid="6768534125447290401">"Nummer visas för utgående samtal"</string>
<string name="sum_default_caller_id" msgid="1954518825510901365">"Använd operatörens standardinställningar när mitt nummer visas för utgående samtal"</string>
<string name="labelCW" msgid="6120513814915920200">"Samtal väntar"</string>
<string name="sum_cw_enabled" msgid="8083061901633671397">"Meddela mig om inkommande samtal under pågående samtal"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Förbättrat 4G LTE-läge"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Använd LTE-tjänster för att förbättra bl.a. röstkommunikation (rekommenderas)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Använd 4G-tjänster för att förbättra bl.a. röstkommunikation (rekommenderas)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Data är aktiverat"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Tillåt dataanvändning"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Obs!"</string>
@@ -277,9 +287,7 @@
<!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
<skip />
<string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<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.format failed for translation -->
- <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
- <skip />
+ <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<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="2149102656120726855">"Datahastigheten sänks till <xliff:g id="USED">%1$d</xliff:g> kbit/s om dataanvändningsgränsen överskrids"</string>
<string name="throttle_help_subtext" msgid="5217706521499010816">"Mer information om operatörens dataanvändningspolicy för mobilnätverket"</string>
<string name="cell_broadcast_sms" msgid="5584192824053625842">"Cell Broadcast SMS"</string>
@@ -505,8 +513,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Det går inte att återuppta samtalet."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Det gick inte att koppla isär samtalen."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Det gick inte att överföra."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Det går inte att koppla ihop samtal."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Det gick inte att avvisa samtalet."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Det gick inte att släppa samtal."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Det går inte att hålla kvar samtal."</string>
@@ -752,6 +759,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Ange lösenord"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Inställningar för samtalsspärr"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Nätverket är upptaget. Försök att ringa igen senare."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Samtal avböjt."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Samtal vidarekopplat."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Samtal väntar."</string>
@@ -769,8 +777,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Vidarekopplat samtal."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Ansluter till konferenssamtal."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Parkerat samtal återupptaget."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Det går inte att ringa ett samtal eftersom enheten för närvarande tillhandahålls."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Det går inte att ringa ett samtal eftersom ett annat utgående samtal ringer upp."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Det går inte att ringa eftersom det finns ett obesvarat inkommande samtal. Svara eller avvisa det innan du ringer ett nytt samtal."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Det går inte att ringa eftersom uppringning har inaktiverats med systemegenskapen ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Det går inte att ringa eftersom det redan finns två pågående samtal. Koppla bort ett eller slå ihop dem till en konferens innan du ringer ett nytt samtal."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Använd <xliff:g id="SUPP_SERVICE">%s</xliff:g> genom att säkerställa att mobildata är aktiverat. Det går att ändra i inställningarna för mobilt nätverk."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Använd <xliff:g id="SUPP_SERVICE">%s</xliff:g> genom att säkerställa att mobildata och dataroaming är aktiverat. Det går att ändra i inställningarna för mobilt nätverk."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Använd <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> genom att säkerställa att mobildata är aktiverat för SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Det går att ändra i inställningarna för mobilt nätverk."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Använd <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> genom att säkerställa att mobildata och dataroaming är aktiverat för SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Det går att ändra i inställningarna för mobilt nätverk."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Stäng"</string>
</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 5e951f3..85b17f7 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Msimbo wa USSD unafungua"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Msimbo wa MMI umeghairiwa"</string>
<string name="cancel" msgid="5044513931633602634">"Ghairi"</string>
- <string name="enter_input" msgid="1810529547726803893">"Ujumbe wa USSD lazima uwe kati ya herufi <xliff:g id="MIN_LEN">%d</xliff:g> na <xliff:g id="MAX_LEN">%d</xliff:g>. Tafadhali jaribu tena."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Ujumbe wa USSD lazima uwe kati ya herufi <xliff:g id="MIN_LEN">%1$d</xliff:g> na <xliff:g id="MAX_LEN">%2$d</xliff:g>. Tafadhali jaribu tena."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Dhibiti simu ya kongamano"</string>
<string name="ok" msgid="3811371167865772377">"Sawa"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Spika"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Ujumbe wa sauti"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Ujumbe wa sauti (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Arifa"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Matangazo ya dharura"</string>
<string name="call_settings" msgid="6112441768261754562">"Mipangilio ya simu"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Hali Iliyoimarishwa ya 4G LTE"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Tumia huduma za LTE ili uboreshe sauti na mawasiliano mengine (inapendekezwa)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Tumia huduma za 4G ili uboreshe sauti na mawasiliano mengine (inapendekezwa)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Data imewashwa"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Ruhusu matumizi ya data"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Ilani"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Imeshindwa kuendelea kupiga simu."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Haiwezi kutenganisha simu."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Haiwezi kuhamisha."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Imeshindwa kuunganisha simu."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Haiwezi kukataa simu."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Haiwezi kutoa simu."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Haiwezi kushikilia simu."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Weka nenosiri"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Mipangilio ya kuzuia upigaji simu"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Je, ungependa kuzima mipangilio yote ya kuzuia upigaji simu?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Mtandao unatumika. Tafadhali jaribu kupiga simu yako tena baadaye."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Simu unayopiga imeelekezwa kwingine."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Simu imesambazwa."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Simu inasubiri."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Simu iliyosambazwa."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Unajiunga kwenye simu ya mkutano."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Simu iliyositishwa imekatwa."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Haiwezi kupiga simu kwa sababu tayari kifaa kinaratibiwa kutoa huduma mpya kwa wateja kwa sasa."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Haiwezi kupiga simu kwa sababu tayari unapiga simu nyingine."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Haiwezi kupiga simu kwa sababu kuna simu inayoingia ambayo hujajibu. Jibu au ukatae simu hiyo inayoingia kabla ya kupiga simu mpya."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Haiwezi kupiga simu kwa sababu upigaji simu umezuiwa kupitia kipengele cha mfumo cha ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Haiwezi kupiga simu kwa sababu tayari kuna simu mbili zinazoendelea. Kata mojawapo ya simu hizo au uziunganishe ili ziwe mkutano kabla ya kupiga simu mpya."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Ili uweze kutumia huduma ya <xliff:g id="SUPP_SERVICE">%s</xliff:g>, hakikisha data ya mtandao wa simu imewashwa. Unaweza kubadilisha hali hii katika mipangilio ya mtandao wa simu."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Ili uweze kutumia huduma ya <xliff:g id="SUPP_SERVICE">%s</xliff:g>, hakikisha vipengele vya data ya mtandao wa simu na matumizi ya mitandao ya ng\'ambo vimewashwa. Unaweza kubadilisha hali hizi kwenye mipangilio ya mtandao wa simu."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Ili uweze kutumia huduma ya <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, hakikisha data ya mtandao wa simu imewashwa katika SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Unaweza kubadilisha hali hii katika mipangilio ya data ya mtandao wa simu."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Ili uweze kutumia huduma ya <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, hakikisha vipengele vya data ya mtandao wa simu na matumizi ya mitandao ya ng\'ambo vimewashwa katika SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Unaweza kubadilisha hali hizi katika mipangilio ya mtandao wa simu."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Ondoa"</string>
</resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 9dce6c8..5befbb6 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD குறியீடு இயங்குகிறது…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI குறியீடு ரத்தானது"</string>
<string name="cancel" msgid="5044513931633602634">"ரத்துசெய்"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD செய்தி <xliff:g id="MIN_LEN">%d</xliff:g> மற்றும் <xliff:g id="MAX_LEN">%d</xliff:g> எழுத்துக்குறிகளுக்கு இடையே இருக்க வேண்டும். மீண்டும் முயற்சிக்கவும்."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD செய்தி <xliff:g id="MIN_LEN">%1$d</xliff:g> மற்றும் <xliff:g id="MAX_LEN">%2$d</xliff:g> எழுத்துக்குறிகளுக்கு இடையே இருக்க வேண்டும். மீண்டும் முயற்சிக்கவும்."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"குழு அழைப்பை நிர்வகிக்கவும்"</string>
<string name="ok" msgid="3811371167865772377">"சரி"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"ஸ்பீக்கர்"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"குரலஞ்சல்"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"குரலஞ்சல் (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"அறிவிப்புகள்"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"அவசரகால அலைபரப்புகள்"</string>
<string name="call_settings" msgid="6112441768261754562">"அழைப்பு அமைப்பு"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"மேம்பட்ட 4G LTE பயன்முறை"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"குரல் மற்றும் பிற தொடர்புமுறைகளை மேம்படுத்த, LTE சேவைகளைப் பயன்படுத்தவும் (பரிந்துரைக்கப்பட்டது)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"குரல் மற்றும் பிற தகவல்தொடர்புகளை மேம்படுத்த, 4G சேவைகளைப் பயன்படுத்தவும் (பரிந்துரைக்கப்பட்டது)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"தரவு இயக்கப்பட்டது"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"டேட்டா உபயோகத்தை அனுமதி"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"கவனம் தேவை"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"அழைப்பைத் தொடர முடியவில்லை."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"அழைப்பைப் பிரிக்க முடியாது."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"மாற்ற முடியாது."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"அழைப்புகளை இணைக்க முடியவில்லை."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"அழைப்பை நிராகரிக்க முடியாது."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"அழைப்பை(அழைப்புகளை) விடுவிக்க முடியாது."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"அழைப்புகளை ஹோல்டு செய்ய முடியாது."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"கடவுச்சொல்லை உள்ளிடவும்"</string>
<string name="call_barring_settings" msgid="80766145008623645">"அழைப்புத் தடுப்பு அமைப்புகள்"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"எல்லா அழைப்புத் தடுப்பு அமைப்புகளையும் முடக்கவா?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"நெட்வொர்க் பிஸியாக உள்ளது. பிறகு அழைக்கவும்."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"அழைப்புத் திருப்பிவிடப்பட்டது."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"அழைப்புப் பகிரப்பட்டது."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"அழைப்புக் காத்திருப்பில் உள்ளது."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"பகிரப்பட்ட அழைப்பு."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"குழு அழைப்பில் சேர்கிறீர்கள்."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"ஹோல்டில் இருந்த அழைப்புத் துண்டிக்கப்பட்டது."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"தற்போது சாதனத்தை அமைத்துக் கொண்டிருப்பதால், அழைப்பை மேற்கொள்ள முடியாது."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"ஏற்கனவே ஒரு அழைப்பு டயல் ஆகிக்கொண்டிருப்பதால், இந்த அழைப்பைச் செய்ய முடியாது."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"உள்வரும் அழைப்பிற்கு இன்னும் பதிலளிக்காததால், இந்த அழைப்பைச் செய்ய முடியாது. புதிதாக ஒரு அழைப்பைச் செய்வதற்கு முன்னர், உள்வரும் அழைப்பிற்குப் பதிலளிக்கவும் அல்லது நிராகரிக்கவும்."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"ro.telephony.disable-call எனும் சிஸ்டம் பிராப்பர்ட்டியைப் பயன்படுத்தி அழைப்பதற்கான வசதி முடக்கப்பட்டுள்ளதால், இந்த அழைப்பைச் செய்ய முடியாது."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"இரண்டு அழைப்புகள் ஏற்கனவே செயலில் இருப்பதால், இந்த அழைப்பைச் செய்ய முடியாது. புதிதாக ஒரு அழைப்பைச் செய்வதற்கு முன்னர், ஏதாவது ஒரு அழைப்பைத் துண்டிக்கவும் அல்லது அவற்றை இணைத்து குழு அழைப்பாக மாற்றவும்."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>ஐப் பயன்படுத்த, மொபைல் டேட்டா இயக்கத்தில் இருப்பதை உறுதிப்படுத்திக் கொள்ளவும். இதை மொபைல் நெட்வொர்க் அமைப்புகளில் மாற்றலாம்."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>ஐப் பயன்படுத்த, மொபைல் டேட்டாவும் டேட்டா ரோமிங்கும் இயக்கத்தில் இருப்பதை உறுதிப்படுத்திக் கொள்ளவும். இவற்றை மொபைல் நெட்வொர்க் அமைப்புகளில் மாற்றலாம்."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ஐப் பயன்படுத்த, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> சிம்மிற்கான மொபைல் டேட்டா இயக்கத்தில் இருப்பதை உறுதிப்படுத்திக் கொள்ளவும். இதை மொபைல் நெட்வொர்க் அமைப்புகளில் மாற்றலாம்."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ஐப் பயன்படுத்த, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> சிம்மிற்கான மொபைல் டேட்டாவும் டேட்டா ரோமிங்கும் இயக்கத்தில் இருப்பதை உறுதிப்படுத்திக் கொள்ளவும். இவற்றை மொபைல் நெட்வொர்க் அமைப்புகளில் மாற்றலாம்."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"நிராகரி"</string>
</resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index ddf18a6..eaeb7f0 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD కోడ్ అమలు చేయబడుతోంది…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI కోడ్ రద్దు చేయబడింది"</string>
<string name="cancel" msgid="5044513931633602634">"రద్దు చేయి"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD సందేశం తప్పనిసరిగా <xliff:g id="MIN_LEN">%d</xliff:g> మరియు <xliff:g id="MAX_LEN">%d</xliff:g> అక్షరాల మధ్య ఉండాలి. దయచేసి మళ్లీ ప్రయత్నించండి."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD సందేశం తప్పనిసరిగా <xliff:g id="MIN_LEN">%1$d</xliff:g> మరియు <xliff:g id="MAX_LEN">%2$d</xliff:g> అక్షరాల మధ్య ఉండాలి. దయచేసి మళ్లీ ప్రయత్నించండి."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"కాన్ఫరెన్స్ కాల్ను నిర్వహించండి"</string>
<string name="ok" msgid="3811371167865772377">"సరే"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"స్పీకర్"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"వాయిస్ మెయిల్"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"వాయిస్ మెయిల్ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"నోటిఫికేషన్లు"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"అత్యవసర ప్రసారాలు"</string>
<string name="call_settings" msgid="6112441768261754562">"కాల్ సెట్టింగ్లు"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"మెరుగుపరిచిన 4G LTE మోడ్"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"వాయిస్, ఇతర కమ్యూనికే. మెరుగుపరచడానికి LTE సేవలను ఉపయోగించు (సిఫార్సు చేయబడింది)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"వాయిస్, ఇతర కమ్యూనికేషన్లను మెరుగుపరచడానికి 4G సేవలను ఉపయోగించండి (సిఫార్సు చేయబడింది)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"డేటా ప్రారంభించబడింది"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"డేటా వినియోగాన్ని అనుమతించు"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"హెచ్చరిక"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"కాల్ను పునఃప్రారంభించలేరు."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"కాల్ను వేరు చేయలేరు."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"బదిలీ చేయలేరు."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"కాల్లను విలీనం చేయడం సాధ్యపడలేదు."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"కాల్ను తిరస్కరించలేరు."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"కాల్(ల)ను విడిచిపెట్టలేరు."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"కాల్లను హోల్డ్ చేయలేరు."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"పాస్వర్డ్ని నమోదు చేయండి"</string>
<string name="call_barring_settings" msgid="80766145008623645">"కాల్ బేరింగ్ సెట్టింగ్లు"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"అన్ని కాల్ బేరింగ్ సెట్టింగ్లను నిష్క్రియం చేయాలా?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"నెట్వర్క్ బిజీగా ఉంది. దయచేసి తిరిగి తర్వాత కాల్ చేయండి."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"కాల్ మళ్లించబడింది."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"కాల్ ఫార్వార్డ్ చేయబడింది."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"కాల్ నిరీక్షణలో ఉంది."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"కాల్ ఫార్వార్డ్ చేయబడింది."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"కాన్ఫరెన్స్ కాల్లో చేరుతున్నారు"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"హోల్డ్లో ఉంచిన కాల్ ప్రారంభించబడింది."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"వినియోగదారుకు ప్రస్తుతం ఏ సేవలు అందుబాటులో ఉన్నాయనే విచారణ పనిలో పరికరం ఉన్నందున కాల్ చేయడం సాధ్యం కాదు."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"ఇంకొక అవుట్గోయింగ్ కాల్ ఇప్పటికే చేస్తున్నందున మరో కాల్ చేయడం సాధ్యపడదు."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"మాట్లాడాల్సిన ఇన్కమింగ్ కాల్ వస్తున్నందున బయటికి కాల్ చేయడం సాధ్యపడదు. కొత్త కాల్ చేయడం కంటే ముందుగా ఇన్కమింగ్ కాల్కి జవాబివ్వండి లేదా కాల్ నిరాకరించండి."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"ro.telephony.disable-call సిస్టమ్ లక్షణాన్ని ఉపయోగించి కాలింగ్ని నిలిపివేసినందున, ఇప్పుడు కాల్ చేయలేరు."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"ఇప్పటికే రెండు కాల్లు జరుగుతున్నందున కాల్ చేయడం సాధ్యపడదు. ఆ కాల్లలో ఒకదానిని డిస్కనెక్ట్ చేయండి లేదా అవి రెండింటినీ కలిపి ఒక కాన్ఫరెన్స్ కాల్గా మార్చి, తర్వాత కొత్త కాల్ చేయండి."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>ని ఉపయోగించడానికి, మొబైల్ డేటాను తప్పకుండా ఆన్ చేసారని నిర్ధారించుకోండి. మీరు దీనిని మొబైల్ నెట్వర్క్ సెట్టింగ్లలో మార్చవచ్చు."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>ని ఉపయోగించడానికి, మొబైల్ డేటా మరియు డేటా రోమింగ్ని తప్పకుండా ఆన్ చేసారని నిర్ధారించుకోండి. మీరు వీటిని మొబైల్ నెట్వర్క్ సెట్టింగ్లలో మార్చవచ్చు."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ని ఉపయోగించడానికి, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> కోసం మొబైల్ డేటాను తప్పకుండా ఆన్ చేసారని నిర్ధారించుకోండి. మీరు దీనిని మొబైల్ నెట్వర్క్ సెట్టింగ్లలో మార్చవచ్చు."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ని ఉపయోగించడానికి, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> కోసం మొబైల్ డేటా మరియు డేటా రోమింగ్ని తప్పకుండా ఆన్ చేసారని నిర్ధారించుకోండి. మీరు వీటిని మొబైల్ నెట్వర్క్ సెట్టింగ్లలో మార్చవచ్చు."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"తీసివేయి"</string>
</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 2b346a2..b5c07e8 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"กำลังรันรหัส USSD..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"ยกเลิกรหัส MMI แล้ว"</string>
<string name="cancel" msgid="5044513931633602634">"ยกเลิก"</string>
- <string name="enter_input" msgid="1810529547726803893">"ข้อความ USSD ต้องมีจำนวนอักขระระหว่าง <xliff:g id="MIN_LEN">%d</xliff:g> และ <xliff:g id="MAX_LEN">%d</xliff:g> อักขระ โปรดลองอีกครั้ง"</string>
+ <string name="enter_input" msgid="1810529547726803893">"ข้อความ USSD ต้องมีจำนวนอักขระระหว่าง <xliff:g id="MIN_LEN">%1$d</xliff:g> และ <xliff:g id="MAX_LEN">%2$d</xliff:g> อักขระ โปรดลองอีกครั้ง"</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"จัดการการประชุมสาย"</string>
<string name="ok" msgid="3811371167865772377">"ตกลง"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"ลำโพง"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"ข้อความเสียง"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"ข้อความเสียง (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"การแจ้งเตือน"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"การเผยแพร่ข้อมูลฉุกเฉิน"</string>
<string name="call_settings" msgid="6112441768261754562">"การตั้งค่าการโทร"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"โหมด 4G LTE ที่ปรับปรุงแล้ว"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"ใช้บริการ LTE เพื่อปรับปรุงเสียงและการติดต่อสื่อสารด้วยวิธีอื่นๆ (แนะนำ)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"ใช้บริการ 4G เพื่อปรับปรุงเสียงและการติดต่อสื่อสารด้วยวิธีอื่นๆ (แนะนำ)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"เปิดใช้งานข้อมูลแล้ว"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"อนุญาตการใช้ข้อมูล"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"โปรดทราบ"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"โทรต่อไม่ได้"</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"ไม่สามารถแยกสายได้"</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"ไม่สามารถโอนได้"</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"รวมสายไม่ได้"</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"ไม่สามารถปฏิเสธสายได้"</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ไม่สามารถเริ่มการโทรได้"</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"ไม่สามารถถือสายรอได้"</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"ป้อนรหัสผ่าน"</string>
<string name="call_barring_settings" msgid="80766145008623645">"การตั้งค่าระงับการโทร"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"ปิดใช้งานการตั้งค่าระงับการโทรทั้งหมดไหม"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"เครือข่ายไม่ว่าง โปรดลองโทรอีกครั้ง"</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"มีการส่งต่อสาย"</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"มีการโอนสาย"</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"กำลังรอสาย"</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"สายโอน"</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"กำลังเข้าร่วมการประชุมสาย"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"สายที่พักไว้หลุดไปแล้ว"</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"ไม่สามารถโทรออกได้เนื่องจากอุปกรณ์กำลังมีการจัดสรรอยู่"</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"ไม่สามารถโทรออกได้เนื่องจากมีสายโทรออกอยู่แล้ว"</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"ไม่สามารถโทรออกได้เนื่องจากมีสายเรียกเข้าที่ยังไม่ได้รับ รับหรือปฏิเสธสายเรียกเข้าก่อนโทรออกใหม่"</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"ไม่สามารถโทรออกได้เนื่องจากมีการปิดใช้การโทรโดยใช้คุณสมบัติของระบบ ro.telephony.disable-call"</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"ไม่สามารถโทรออกได้เนื่องจากมีการโทรสองสายกำลังดำเนินการอยู่ ตัดการเชื่อมต่อหนึ่งสายหรือรวมเป็นการประชุมสายก่อนโทรออกใหม่"</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"หากต้องการใช้ <xliff:g id="SUPP_SERVICE">%s</xliff:g> โปรดเปิดเน็ตมือถือ คุณเปลี่ยนตัวเลือกนี้ได้ในการตั้งค่าเครือข่ายมือถือ"</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"หากต้องการใช้ <xliff:g id="SUPP_SERVICE">%s</xliff:g> โปรดเปิดเน็ตมือถือและการโรมมิ่งข้อมูล คุณเปลี่ยนตัวเลือกเหล่านี้ได้ในการตั้งค่าเครือข่ายมือถือ"</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"หากต้องการใช้ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> โปรดเปิดเน็ตมือถือสำหรับ SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> คุณเปลี่ยนตัวเลือกนี้ได้ในการตั้งค่าเครือข่ายมือถือ"</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"หากต้องการใช้ <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> โปรดเปิดเน็ตมือถือและการโรมมิ่งข้อมูลสำหรับ SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> คุณเปลี่ยนตัวเลือกเหล่านี้ได้ในการตั้งค่าเครือข่ายมือถือ"</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"ปิด"</string>
</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 0138ba3..bb630db 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Tumatakbo ang USSD code…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Kinansela ang MMI code"</string>
<string name="cancel" msgid="5044513931633602634">"Kanselahin"</string>
- <string name="enter_input" msgid="1810529547726803893">"Dapat na nasa pagitan ng <xliff:g id="MIN_LEN">%d</xliff:g> at <xliff:g id="MAX_LEN">%d</xliff:g> (na) character ang mensaheng USSD. Pakisubukang muli."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Dapat na nasa pagitan ng <xliff:g id="MIN_LEN">%1$d</xliff:g> at <xliff:g id="MAX_LEN">%2$d</xliff:g> (na) character ang mensaheng USSD. Pakisubukang muli."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Pamahalaan ang conference call"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Speaker"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Voicemail"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Mga Notification"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Mga pang-emergency na broadcast"</string>
<string name="call_settings" msgid="6112441768261754562">"Mga setting ng tawag"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Enhanced 4G LTE Mode"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Gamitin ang LTE upang pahusayin ang voice at ibang komunikasyon (inirerekomenda)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Gamitin ang mga serbisyo ng 4G para pahusayin ang mga tawag at iba pang komunikasyon (inirerekomenda)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Pinagana ang data"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Payagan ang paggamit ng data"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Bigyang-pansin"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Hindi maituloy ang tawag."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Hindi mapaghiwalay ang tawag"</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Hindi mailipat."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Hindi na-merge ang mga tawag."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Hindi matanggihan ang tawag."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Hindi mailabas ang (mga) tawag."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Hindi makakapag-hold ng mga tawag."</string>
@@ -522,7 +531,7 @@
<string name="dial_emergency_calling_not_available" msgid="5675557523782491826">"Hindi available ang emergency na pagtawag"</string>
<string name="police_type_description" msgid="5324410799919829693">"Pulis"</string>
<string name="ambulance_type_description" msgid="4114815025408089866">"Ambulansya"</string>
- <string name="fire_type_description" msgid="7145996705197064710">"Apoy"</string>
+ <string name="fire_type_description" msgid="7145996705197064710">"Sunog"</string>
<string name="description_concat_format" msgid="7141070875487870177">"%1$s, %2$s"</string>
<string name="dialerKeyboardHintText" msgid="9192914825413747792">"Gamitin ang keyboard upang mag-dial"</string>
<string name="onscreenHoldText" msgid="2285258239691145872">"I-hold"</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Ilagay ang password"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Mga setting ng pag-bar ng tawag"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"I-deactivate ang lahat ng setting ng pag-bar ng tawag?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Busy ang network. Pakisubukan muling tumawag sa ibang pagkakataon."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Na-deflect ang tawag."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Ipinasa ang tawag."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"May naghihintay na tawag."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Ipinasa ang tawag."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Sumasali sa conference call."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Inalis ang pag-hold sa tawag."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Hindi maaaring tumawag dahil kasalukuyang pino-provision ang device."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Hindi maaaring tumawag dahil mayroon nang dina-dial na isa pang papalabas na tawag."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Hindi maaaring tumawag dahil mayroong hindi nasagot na papasok na tawag. Sagutin o tanggihan ang papasok na tawag bago gumawa ng bagong pagtawag."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Hindi maaaring tumawag dahil na-disable ang pagtawag gamit ang ro.telephony.disable-call na system property."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Hindi maaaring tumawag dahil mayroon nang dalawang tawag na kasalukuyang nagaganap. Idiskonekta ang isa sa mga tawag o i-merge ang mga ito sa isang kumperensya bago gumawa ng bagong pagtawag."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Para gamitin ang <xliff:g id="SUPP_SERVICE">%s</xliff:g>, tiyaking naka-on ang mobile data. Maaari mo itong baguhin sa mga setting ng mobile network."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Para gamitin ang <xliff:g id="SUPP_SERVICE">%s</xliff:g>, tiyaking naka-on ang mobile data at data roaming. Maaari mong baguhin ang mga ito sa mga setting ng mobile network."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Para gamitin ang <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, tiyaking naka-on ang mobile data para sa SIM na <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Maaari mo itong baguhin sa mga setting ng mobile network."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Para gamitin ang <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, tiyaking naka-on ang mobile data at data roaming para sa SIM na <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Maaari mong baguhin ang mga ito sa mga setting ng mobile network."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"I-dismiss"</string>
</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 2fa790c..f6fa7ea 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD kodu çalışıyor…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI kodu iptal edildi"</string>
<string name="cancel" msgid="5044513931633602634">"İptal"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD mesajları <xliff:g id="MIN_LEN">%d</xliff:g>-<xliff:g id="MAX_LEN">%d</xliff:g> arası karakter içermelidir. Lütfen tekrar deneyin."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD mesajları <xliff:g id="MIN_LEN">%1$d</xliff:g>-<xliff:g id="MAX_LEN">%2$d</xliff:g> arası karakter içermelidir. Lütfen tekrar deneyin."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Konferans görüşmesini yönet"</string>
<string name="ok" msgid="3811371167865772377">"Tamam"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Hoparlör"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Sesli mesaj"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Sesli mesaj (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Bildirimler"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Acil durum yayınları"</string>
<string name="call_settings" msgid="6112441768261754562">"Çağrı ayarları"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Geliştirilmiş 4G LTE Modu"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Sesi ve diğer iletişimleri iyileştirmek için LTE hizmetlerini kullanın (önerilir)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Sesi ve diğer iletişimleri iyileştirmek için 4G hizmetlerini kullanın (önerilir)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Veri etkin"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Veri kullanımına izin ver"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Dikkat"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Çağrı devam ettirilemiyor."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Çağrı ayrılamıyor."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Aktarılamıyor."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Aramalar birleştirilemedi."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Çağrı reddedilemiyor."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Çağrılar bırakılamıyor."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Çağrılar beklemeye alınamıyor."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Şifreyi girin"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Çağrı engelleme ayarları"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Tüm çağrı engelleme ayarları devre dışı bırakılsın mı?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Ağ meşgul. Lütfen daha sonra tekrar aramayı deneyin."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Çarının yönü değiştirildi."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Çağrı yönlendirildi."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Çağrı bekliyor."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Yönlendirilmiş çağrı."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Konferans çağrısına katılınıyor."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Beklemedeki çağrı serbest bırakıldı."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Şu anda cihazın temel hazırlığı yapılmakta olduğu için arama yapılamıyor."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Zaten aranmakta olan bir numara olduğu için arama yapılamıyor."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Cevaplanmamış bir gelen arama olduğu için arama yapılamıyor. Yeni bir arama yapmadan önce gelen aramayı cevaplayın veya reddedin."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Telefon etme ro.telephony.disable-call sistem özelliği kullanılarak devre dışı bırakıldığı için arama yapılamıyor."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Devam eden iki arama olduğu için arama yapılamıyor. Yeni bir arama yapmadan önce aramalardan birini sonlandırın veya iki aramayı bir konferans aramasında birleştirin."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> hizmetini kullanmak için mobil verinin etkin olduğundan emin olun. Bunu mobil ağ ayarlarından değiştirebilirsiniz."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> hizmetini kullanmak için mobil verinin ve veri dolaşımının etkin olduğundan emin olun. Bunları mobil ağ ayarlarından değiştirebilirsiniz."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> hizmetini kullanmak üzere, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> numaralı SIM için mobil verinin etkin olduğundan emin olun. Bunu mobil ağ ayarlarından değiştirebilirsiniz."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> hizmetini kullanmak üzere, <xliff:g id="SIM_NUMBER">%2$d</xliff:g> numaralı SIM için mobil verinin ve veri dolaşımının etkin olduğundan emin olun. Bunları mobil ağ ayarlarından değiştirebilirsiniz."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Kapat"</string>
</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index bf05f15..16a6b2d 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Виконується запит USSD…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Код MMI скасовано"</string>
<string name="cancel" msgid="5044513931633602634">"Скасувати"</string>
- <string name="enter_input" msgid="1810529547726803893">"Кількість символів повідомлення USSD має становити від <xliff:g id="MIN_LEN">%d</xliff:g> до <xliff:g id="MAX_LEN">%d</xliff:g>. Повторіть спробу."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Кількість символів повідомлення USSD має становити від <xliff:g id="MIN_LEN">%1$d</xliff:g> до <xliff:g id="MAX_LEN">%2$d</xliff:g>. Повторіть спробу."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Керувати конференц-викликом"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Динамік"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Голосова пошта"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Голосова пошта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"ГП:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Сповіщення"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Повідомлення екстрених служб"</string>
<string name="call_settings" msgid="6112441768261754562">"Виклики"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Розширений режим 4G LTE"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Використ. служби LTE для покращення голосового й інших типів зв’язку (рекоменд.)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Використовувати служби 4G для покращення голосового й інших типів зв’язку (рекомендовано)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Передавання даних"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Дозволити використання даних"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Увага"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Не вдається відновити виклик."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Неможливо розділити виклик."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Неможливо перенести."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Не вдалося об’єднати виклики."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Неможливо відхилити виклик."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Неможливо телефонувати."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Не можна призупиняти виклики."</string>
@@ -750,6 +759,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Введіть пароль"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Налаштування заборони дзвінків"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Дезактивувати всі налаштування заборони дзвінків?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Мережа зайнята. Зателефонуйте пізніше."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Виклик переспрямовано."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Виклик переадресовано."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Очікування відповіді."</string>
@@ -767,8 +777,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Переадресований виклик."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Приєднання до конференц-виклику."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Утримуваний виклик скасовано."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Неможливо здійснити виклик, оскільки наразі збирається інформація про доступність послуги."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Неможливо здійснити виклик, оскільки ви вже телефонуєте на інший номер."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Неможливо здійснити виклик. Прийміть або відхиліть вхідний виклик, перш ніж здійснювати новий."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Неможливо здійснити виклик, оскільки дзвінки вимкнено за допомогою системного параметра ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Неможливо здійснити виклик, оскільки наразі вже тривають два виклики. Припиніть один із викликів або з’єднайте їх у конференцію, перш ніж здійснити новий виклик."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Щоб використовувати <xliff:g id="SUPP_SERVICE">%s</xliff:g>, потрібно ввімкнути мобільне передавання даних (у налаштуваннях мобільної мережі)."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Щоб використовувати <xliff:g id="SUPP_SERVICE">%s</xliff:g>, потрібно ввімкнути мобільне передавання й роумінг даних (у налаштуваннях мобільної мережі)."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Щоб використовувати <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, потрібно ввімкнути мобільне передавання даних для SIM-карти <xliff:g id="SIM_NUMBER">%2$d</xliff:g> (у налаштуваннях мобільної мережі)."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Щоб використовувати <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, потрібно ввімкнути мобільне передавання й роумінг даних для SIM-карти <xliff:g id="SIM_NUMBER">%2$d</xliff:g> (у налаштуваннях мобільної мережі)."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Закрити"</string>
</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 11671fb..ccbfd64 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD کوڈ چل رہا ہے…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI کوڈ منسوخ ہوگیا"</string>
<string name="cancel" msgid="5044513931633602634">"منسوخ کریں"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD پیغام <xliff:g id="MIN_LEN">%d</xliff:g> اور <xliff:g id="MAX_LEN">%d</xliff:g> حروف کے بیچ ہونا چاہیے۔ براہ کرم دوبارہ کوشش کریں۔"</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD پیغام <xliff:g id="MIN_LEN">%1$d</xliff:g> اور <xliff:g id="MAX_LEN">%2$d</xliff:g> حروف کے بیچ ہونا چاہیے۔ براہ کرم دوبارہ کوشش کریں۔"</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"کانفرنس کال کا نظم کریں"</string>
<string name="ok" msgid="3811371167865772377">"ٹھیک ہے"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"اسپیکر"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"صوتی میل"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"صوتی میل (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"اطلاعات"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"ہنگامی براڈکاسٹس"</string>
<string name="call_settings" msgid="6112441768261754562">"کال کی ترتیبات"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Enhanced 4G LTE وضع"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"صوتی اور دیگر مواصلات کو بہتر بنانے کیلئے LTE سروسز استعمال کریں (تجویز کردہ)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"صوتی اور دیگر مواصلات کو بہتر بنانے کے لیے 4G سروسز استعمال کریں (تجویز کردہ)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"ڈیٹا فعال ہوگیا"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"ڈیٹا کے استعمال کی اجازت دیں"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"توجہ دیں"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"کال دوبارہ شروع نہیں کی جا سکتی۔"</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"کال کو الگ نہیں کر سکتے۔"</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"منتقل نہیں کر سکتے۔"</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"کالز کو ضم کرنے سے قاصر۔"</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"کال مسترد نہیں کی جا سکتی۔"</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"کال(ز) ریلیز نہیں کر سکتے۔"</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"کالز کو ہولڈ نہیں کیا جا سکتا۔"</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"پاس ورڈ درج کریں"</string>
<string name="call_barring_settings" msgid="80766145008623645">"کال میں رکاوٹ کی ترتیبات"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"کال میں رکاوٹ والی سبھی ترتیبات کو غیر فعال کریں؟"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"نیٹ ورک مصروف ہے۔ براہ کرم بعد میں دوبارہ اپنی کال آزمائیں۔"</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"کال کو مُنصرف کیا گیا۔"</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"کال آگے منتقل کر دی گئی۔"</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"کال انتظار میں ہے۔"</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"کال کو آگے منتقل کیا گیا۔"</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"کانفرنس کال میں شمولیت ہو رہی ہے۔"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"ہولڈ پر رکھی کال جاری ہو گئی۔"</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"کال نہیں کی جا سکتی کیوںکہ فی الحال آلہ فراہم کیا جا رہا ہے۔"</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"کال نہیں کی جا سکتی کیونکہ باہر جانے والی دوسری کال پہلے سے ڈائل کی جا رہی ہے۔"</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"ایک جواب نہ ملنے والی موصول ہونے والی کال کی وجہ سے کال نہیں کی جا سکتی۔ نئی کال کرنے کے لیے پہلے موصول ہونے والی کال کا جواب دیں یا مسترد کریں۔"</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"ro.telephony.disable-call سسٹم کی خصوصیت کے ذریعے کال کرنے کو غیر فعال کر دیے جانے کی وجہ سے کال نہیں کی جا سکتی۔"</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"پہلے سے دو کالز کے پیش رفت میں ہونے کی وجہ سے کال نہیں کی جا سکتی۔ نئی کال کرنے کے لیے پہلے ان میں سے ایک کو غیر منسلک کریں یا انہیں کانفرنس میں ضم کریں۔"</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> استعمال کرنے کے لیے، یقینی بنائيں کہ موبائل ڈیٹا آن ہے۔ آپ موبائل یٹ ورک کی ترتیبات میں اسے تبدیل کر سکتے ہیں۔"</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> استعمال کرنے کے لیے، یقینی بنائيں کہ موبائل ڈیٹا اور ڈیٹا رومنگ آن ہیں۔ آپ موبائل نیٹ ورک کی ترتیبات میں انہیں تبدیل کر سکتے ہیں۔"</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> استعمال کرنے کے لیے، یقینی بنائيں کہ موبائل ڈیٹا SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> کے لیے آن ہے۔ آپ موبائل نیٹ ورک کی ترتیبات میں اسے تبدیل کر سکتے ہیں۔"</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> استعمال کرنے کے لیے، یقینی بنائيں کہ موبائل ڈیٹا اور ڈیٹا رومنگ SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> کے لیے آن ہیں۔ آپ موبائل نیٹ ورک کی ترتیبات میں اسے تبدیل کر سکتے ہیں۔"</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"مسترد کریں"</string>
</resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 2043c41..604da70 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"USSD so‘rov bajarilmoqda…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI kodi bekor qilindi"</string>
<string name="cancel" msgid="5044513931633602634">"Bekor qilish"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD xabari <xliff:g id="MIN_LEN">%d</xliff:g>dan <xliff:g id="MAX_LEN">%d</xliff:g>tagacha belgi bo‘lishi kerak. Yana urinib ko‘ring."</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD xabari <xliff:g id="MIN_LEN">%1$d</xliff:g>dan <xliff:g id="MAX_LEN">%2$d</xliff:g>tagacha belgi bo‘lishi kerak. Yana urinib ko‘ring."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Konferensiya qo‘ng‘irog‘ini boshqarish"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Karnay"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Ovozli pochta"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Ovozli pochta (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Bildirishnomalar"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Favqulodda tarqatma xabarlar"</string>
<string name="call_settings" msgid="6112441768261754562">"Chaqiruv sozlamalari"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Kuchaytirilgan 4G LTE rejimi"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Ovozli va boshqa aloqalarni yaxshilash uchun LTE xizmatlaridan foydalaning"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Ovozli va boshqa aloqalar sifatini yaxshilash uchun 4G xizmatlaridan foydalaning (tavsiya etiladi)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Internet yoqildi"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Mobil internetdan foydalanishga ruxsat"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Diqqat"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Chaqiruv davom ettirilmadi"</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Qo‘ng‘iroqni ajratib bo‘lmadi."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"O‘tkazib bo‘lmadi."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Chaqiruvlarni birlashtirish imkonsiz."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Qo‘ng‘iroqni rad qilib bo‘lmadi."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Qo‘ng‘iroq(lar)ni chiqarib bo‘lmadi."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Qo‘ng‘iroqlarni ushlab turib bo‘lmadi."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Parolni kiriting"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Chaqiruvlarni taqiqlash sozlamalari"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Barcha chaqiruvlarni taqiqlash sozlamalari faolsizlantirilsinmi?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Tarmoq band. Chaqiruvni keyinroq qayta takrorlang."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Chiquvchi chaqiruv uzatildi."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Chiquvchi chaqiruv uzatildi."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Chiquvchi chaqiruv kutmoqda."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Uzatilgan kiruvchi chaqiruv."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Konferens-aloqaga qo‘shilmoqda…"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Chaqiruv kutish rejimidan chiqarildi."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Telefon qilish imkonsiz: qurilma tayyorlanmoqda"</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Telefon qilish imkonsiz, chunki siz allaqachon boshqa raqamga telefon qilmoqdasiz."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Telefon qilish imkonsiz. Telefon qilish uchun avval kiruvchi chaqiruvni qabul qiling yoki rad eting."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Telefon qilish imkonsiz, chunki chaqiruvlar ro.telephony.disable-call tizim parametrida faolsizlantirilgan."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Telefon qilish imkonsiz, chunki ayni paytda ikkita chaqiruv davom etmoqda. Telefon qilish uchun chaqiruvlardan birini tugating yoki ularni konferens-aloqaga birlashtiring."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> imkoniyatlaridan foydalanish uchun mobil internet yoqilgan bo‘lishi lozim. Buning uchun mobil tarmoq sozlamalariga kiring."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> imkoniyatlaridan foydalanish uchun mobil internet va internet rouming yoqilgan bo‘lishi lozim. Buning uchun mobil tarmoq sozlamalariga kiring."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> imkoniyatlaridan foydalanish uchun <xliff:g id="SIM_NUMBER">%2$d</xliff:g> raqamida mobil internet yoqilgan bo‘lishi lozim. Buning uchun mobil tarmoq sozlamalariga kiring."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g> imkoniyatlaridan foydalanish uchun <xliff:g id="SIM_NUMBER">%2$d</xliff:g> raqamida mobil internet va internet rouming yoqilgan bo‘lishi lozim. Buning uchun mobil tarmoq sozlamalariga kiring."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Yopish"</string>
</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 3a71328..efc1487 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Mã USSD đang chạy…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Mã MMI đã bị hủy"</string>
<string name="cancel" msgid="5044513931633602634">"Hủy"</string>
- <string name="enter_input" msgid="1810529547726803893">"Tin nhắn USSD phải có độ dài trong khoảng từ <xliff:g id="MIN_LEN">%d</xliff:g> đến <xliff:g id="MAX_LEN">%d</xliff:g> ký tự. Vui lòng thử lại."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Tin nhắn USSD phải có độ dài trong khoảng từ <xliff:g id="MIN_LEN">%1$d</xliff:g> đến <xliff:g id="MAX_LEN">%2$d</xliff:g> ký tự. Vui lòng thử lại."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Quản lý cuộc gọi hội nghị"</string>
<string name="ok" msgid="3811371167865772377">"OK"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Loa"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Thư thoại"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Thư thoại (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"Thư thoại:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Thông báo"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Phát sóng trong tình huống khẩn cấp"</string>
<string name="call_settings" msgid="6112441768261754562">"Cài đặt cuộc gọi"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Chế độ 4G LTE tăng cường"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Sử dụng dịch vụ LTE để cải tiến tính năng thoại và các phương thức giao tiếp khác (khuyến nghị)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Sử dụng dịch vụ 4G để cải tiến tính năng thoại và các phương thức giao tiếp khác (đề xuất)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Đã bật dữ liệu"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Cho phép sử dụng dữ liệu"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Chú ý"</string>
@@ -295,8 +305,8 @@
<string name="sports_news_settings" msgid="7649399631270052835">"Tin tức Thể thao"</string>
<string name="entertainment_news_settings" msgid="5051153952959405035">"Tin tức Giải trí"</string>
<string name="enable_disable_local" msgid="7890281063123416120">"Địa phương"</string>
- <string name="local_enable" msgid="6370463247609136359">"Đã bật tin tức địa phương"</string>
- <string name="local_disable" msgid="4405691986943795798">"Đã vô hiệu hóa tin tức địa phương"</string>
+ <string name="local_enable" msgid="6370463247609136359">"Đã bật tin trong nước"</string>
+ <string name="local_disable" msgid="4405691986943795798">"Đã tắt tin trong nước"</string>
<string name="enable_disable_regional" msgid="4905652414535565872">"Khu vực"</string>
<string name="regional_enable" msgid="4434680415437834759">"Bật tin tức khu vực"</string>
<string name="regional_disable" msgid="5359325527213850077">"Đã vô hiệu hóa tin tức khu vực"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Không thể tiếp tục cuộc gọi."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Không tách được cuộc gọi."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Không chuyển được cuộc gọi."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Không thể hợp nhất các cuộc gọi."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Không từ chối được cuộc gọi."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Không thực hiện được cuộc gọi."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Không thể giữ cuộc gọi."</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Nhập mật khẩu"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Cài đặt chặn cuộc gọi"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Bạn muốn hủy kích hoạt tất cả cài đặt chặn cuộc gọi?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Tất cả các nhân viên hỗ trợ hiện đang bận. Vui lòng thử gọi lại sau."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Đã chuyển hướng cuộc gọi."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Đã chuyển tiếp cuộc gọi."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Cuộc gọi đang chờ."</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Cuộc gọi đã được chuyển tiếp."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Đang tham gia cuộc gọi nhiều bên."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Đã ngắt kết nối cuộc gọi chờ."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Không thể thực hiện cuộc gọi vì thiết bị hiện đang trong quá trình xác nhận dịch vụ."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Không thể thực hiện cuộc gọi vì đang gọi đi số khác."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Không thể thực hiện cuộc gọi vì chưa trả lời cuộc gọi đến. Hãy trả lời hoặc từ chối cuộc gọi đến trước khi thực hiện cuộc gọi mới."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Không thể thực hiện cuộc gọi vì tính năng gọi điện đã bị tắt bằng cách sử dụng thuộc tính hệ thống ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Không thể thực hiện cuộc gọi vì có 2 cuộc gọi đang diễn ra. Hãy ngắt kết nối một trong các cuộc gọi hoặc gộp thành cuộc gọi kiểu hội nghị trước khi thực hiện cuộc gọi mới."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Để sử dụng <xliff:g id="SUPP_SERVICE">%s</xliff:g>, hãy đảm bảo dữ liệu di động đang bật. Bạn có thể thay đổi tùy chọn cài đặt này trong mục cài đặt mạng di động."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Để sử dụng <xliff:g id="SUPP_SERVICE">%s</xliff:g>, hãy đảm bảo dữ liệu di động và tính năng chuyển vùng dữ liệu đang bật. Bạn có thể thay đổi các tùy chọn này trong mục cài đặt mạng di động."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Để sử dụng <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, hãy đảm bảo dữ liệu di động cho SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> đang bật. Bạn có thể thay đổi tùy chọn cài đặt này trong mục cài đặt mạng di động."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Để sử dụng <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, hãy đảm bảo dữ liệu di động và tính năng chuyển vùng dữ liệu cho SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> đang bật. Bạn có thể thay đổi các tùy chọn cài đặt này trong mục cài đặt mạng di động."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Bỏ qua"</string>
</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 13e8ac1..4854db7 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"正在运行 USSD 代码..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI 码已取消"</string>
<string name="cancel" msgid="5044513931633602634">"取消"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD 消息的长度必须介于<xliff:g id="MIN_LEN">%d</xliff:g>与<xliff:g id="MAX_LEN">%d</xliff:g>个字符之间,请重试。"</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD 消息的长度必须介于<xliff:g id="MIN_LEN">%1$d</xliff:g>与<xliff:g id="MAX_LEN">%2$d</xliff:g>个字符之间,请重试。"</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"管理电话会议"</string>
<string name="ok" msgid="3811371167865772377">"确定"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"扬声器"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"语音信箱"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"语音信箱(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"语音信箱:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"通知"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"紧急广播"</string>
<string name="call_settings" msgid="6112441768261754562">"通话设置"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"增强型 4G LTE 模式"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"使用 LTE 服务改进语音和其他通信功能(推荐)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"使用 4G 服务改善语音和其他通讯方式的质量(推荐)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"启用移动数据网络"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"允许使用数据流量"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"注意"</string>
@@ -499,8 +509,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"无法恢复通话。"</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"无法单独通话。"</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"无法转移呼叫。"</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"无法合并通话。"</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"无法拒接来电。"</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"无法挂断电话。"</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"无法保持通话。"</string>
@@ -746,6 +755,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"输入密码"</string>
<string name="call_barring_settings" msgid="80766145008623645">"通话限制设置"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"要停用所有通话限制设置吗?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"网络繁忙,请稍后再次尝试致电。"</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"已转移通话。"</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"已转接通话。"</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"呼叫等待。"</string>
@@ -763,8 +773,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"已转接来电。"</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"正在加入电话会议。"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"保持的通话已中断。"</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"由于设备正在配置中,因此无法拨打电话。"</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"由于已在拨打另一个电话,因此无法拨打新电话。"</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"由于有未接来电,因此无法拨打电话。请先接听或拒绝来电,然后才能拨打新电话。"</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"通话功能已经由 ro.telephony.disable-call 系统属性停用,因此无法拨打电话。"</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"由于已有两个正在进行的通话,因此无法拨打电话。请先中断其中一个通话或将两个通话合并到同一个会议中,然后才能拨打新电话。"</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"要使用<xliff:g id="SUPP_SERVICE">%s</xliff:g>服务,请确保已开启移动数据。您可以在移动网络设置中进行更改。"</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"要使用<xliff:g id="SUPP_SERVICE">%s</xliff:g>服务,请确保已开启移动数据和数据网络漫游。您可以在移动网路设置中进行更改。"</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>服务,请确保已为 SIM (<xliff:g id="SIM_NUMBER">%2$d</xliff:g>) 开启移动数据。您可以在移动网络设置中进行更改。"</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>服务,请确保已为 SIM (<xliff:g id="SIM_NUMBER">%2$d</xliff:g>) 开启移动数据和数据网络漫游。您可以在移动网络设置中进行更改。"</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"关闭"</string>
</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 0be45a4..3a38b97 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"正在執行 USSD 碼..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI 碼已取消"</string>
<string name="cancel" msgid="5044513931633602634">"取消"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD 訊息必須介乎 <xliff:g id="MIN_LEN">%d</xliff:g> 至 <xliff:g id="MAX_LEN">%d</xliff:g> 個字元,請再試一次。"</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD 訊息必須介乎 <xliff:g id="MIN_LEN">%1$d</xliff:g> 至 <xliff:g id="MAX_LEN">%2$d</xliff:g> 個字元,請再試一次。"</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"管理會議通話"</string>
<string name="ok" msgid="3811371167865772377">"確定"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"揚聲器"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"留言信箱"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"留言信箱 (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"留言信箱:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"通知"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"緊急廣播"</string>
<string name="call_settings" msgid="6112441768261754562">"通話設定"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"強化 4G LTE 模式"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"使用 LTE 服務改善語音及其他通訊 (建議)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"使用 4G 服務改善語音及其他通訊 (建議)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"啟用流動數據"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"允許使用數據"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"注意"</string>
@@ -273,13 +283,9 @@
<!-- String.format failed for translation -->
<!-- no translation found for throttle_status_subtext (1657318943142085170) -->
<skip />
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
- <skip />
+ <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<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="7492763592720107737">"已達 <xliff:g id="USED_0">%1$s</xliff:g> 上限\n資料速率降低至 <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
- <skip />
+ <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"已經過 <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="2149102656120726855">"若已達資料用量上限,資料傳輸速率會降低至 <xliff:g id="USED">%1$d</xliff:g> Kb/秒"</string>
<string name="throttle_help_subtext" msgid="5217706521499010816">"更多有關流動網絡供應商流動網絡資料使用政策的資訊"</string>
<string name="cell_broadcast_sms" msgid="5584192824053625842">"區域廣播 SMS"</string>
@@ -751,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"輸入密碼"</string>
<string name="call_barring_settings" msgid="80766145008623645">"通話限制設定"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"要停用所有通話限制設定嗎?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"網絡忙碌中。請稍後再撥。"</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"通話已轉向。"</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"通話已轉駁。"</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"通話尚待接聽。"</string>
@@ -768,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"來電已轉駁。"</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"正在加入電話會議。"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"通話已取消保留。"</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"目前正在佈建裝置,無法撥打電話。"</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"系統正在撥打另一通電話,因此無法撥打電話。"</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"由於目前有尚未接聽的來電,因此無法撥打電話。請先接聽或拒絕來電,然後再撥打電話。"</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"通話功能已由 ro.telephony.disable-call 系統屬性停用,因此無法撥打電話。"</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"由於目前已有兩個正在進行的通話,因此無法撥打電話。請先中斷其中一個通話,或將兩個通話合併至相同會議,然後再撥打電話。"</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"如要使用<xliff:g id="SUPP_SERVICE">%s</xliff:g>,請確保流動數據已開啟。您可以在流動網絡設定中變更此設定。"</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"如要使用<xliff:g id="SUPP_SERVICE">%s</xliff:g>,請確保流動數據和數據漫遊已開啟。您可以在流動網絡設定中變更此設定。"</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"如要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>,請確保 SIM 卡 (<xliff:g id="SIM_NUMBER">%2$d</xliff:g>) 的流動數據已開啟。您可以在流動網絡設定中變更此設定。"</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"如要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>,請確保 SIM 卡 <xliff:g id="SIM_NUMBER">%2$d</xliff:g> 的流動數據和數據漫遊已開啟。您可以在流動網絡設定中變更此設定。"</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"關閉"</string>
</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 1787101..3ccaa6c 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"正在執行 USSD 碼…"</string>
<string name="mmiCancelled" msgid="2771923949751842276">"MMI 碼已取消"</string>
<string name="cancel" msgid="5044513931633602634">"取消"</string>
- <string name="enter_input" msgid="1810529547726803893">"USSD 訊息字元數必須在 <xliff:g id="MIN_LEN">%d</xliff:g> 到 <xliff:g id="MAX_LEN">%d</xliff:g> 之間,請再試一次。"</string>
+ <string name="enter_input" msgid="1810529547726803893">"USSD 訊息字元數必須在 <xliff:g id="MIN_LEN">%1$d</xliff:g> 到 <xliff:g id="MAX_LEN">%2$d</xliff:g> 之間,請再試一次。"</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"管理會議通話"</string>
<string name="ok" msgid="3811371167865772377">"確定"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"喇叭"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"語音信箱"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"語音信箱 (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"語音信箱:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"通知"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"緊急廣播"</string>
<string name="call_settings" msgid="6112441768261754562">"通話設定"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"加強型 4G LTE 模式"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"使用 LTE 服務提升語音通訊和其他通訊的效能 (建議)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"使用 4G 服務改善語音和其他通訊的品質 (建議)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"啟用行動數據服務"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"允許使用行動數據"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"敬請注意"</string>
@@ -246,7 +256,7 @@
<string name="roaming_disable" msgid="1843417228755568110">"漫遊時連線到數據傳輸服務"</string>
<string name="roaming_reenable_message" msgid="6843814381576397939">"漫遊服務已關閉,輕觸即可開啟。"</string>
<string name="roaming_notification_title" msgid="4749053220884743110">"行動數據連線中斷"</string>
- <string name="roaming_warning" msgid="1603164667540144353">"您可能需要支付可觀的費用。"</string>
+ <string name="roaming_warning" msgid="1603164667540144353">"你可能需要支付可觀的費用。"</string>
<string name="roaming_check_price_warning" msgid="7497570906830902550">"請向你的網路供應商洽詢定價。"</string>
<string name="roaming_alert_title" msgid="3654815360303826008">"允許漫遊服務?"</string>
<string name="data_usage_title" msgid="4042209259808900283">"應用程式數據用量"</string>
@@ -273,13 +283,9 @@
<!-- String.format failed for translation -->
<!-- no translation found for throttle_status_subtext (1657318943142085170) -->
<skip />
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_data_usage_subtext (6029276011123694701) -->
- <skip />
+ <string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<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="7492763592720107737">"已達 <xliff:g id="USED_0">%1$s</xliff:g> 上限\n資料速率降低至 <xliff:g id="USED_1">%2$d</xliff:g> Kb/s"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
- <skip />
+ <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"已經過 <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="2149102656120726855">"若已達數據用量上限,數據傳輸速率會降低至 <xliff:g id="USED">%1$d</xliff:g> Kb/秒"</string>
<string name="throttle_help_subtext" msgid="5217706521499010816">"更多有關行動業者行動網路資料使用政策的資訊"</string>
<string name="cell_broadcast_sms" msgid="5584192824053625842">"區域廣播簡訊"</string>
@@ -505,8 +511,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"無法恢復通話。"</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"無法分割通話。"</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"無法轉接。"</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"無法合併通話。"</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"無法拒接來電。"</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"無法掛斷電話。"</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"無法保留通話。"</string>
@@ -752,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"輸入密碼"</string>
<string name="call_barring_settings" msgid="80766145008623645">"通話限制設定"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"要停用所有通話限制設定嗎?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"目前忙線中,請稍後再撥號。"</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"通話已自動轉接。"</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"來電轉駁。"</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"正在等待對方接聽電話。"</string>
@@ -769,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"來電轉駁。"</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"正在加入會議通話。"</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"保留中的通話已斷線。"</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"裝置目前正在佈建服務,因此無法撥打電話。"</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"你正在撥出其他電話,因此無法再撥號。"</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"你尚未接聽來電,因此無法撥打電話。你必須先決定接聽或拒接來電,才能再撥打電話。"</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"通話功能已透過 ro.telephony.disable-call system 屬性停用,因此無法撥打電話。"</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"你目前有兩場正在進行的通話,因此無法撥打電話。你必須掛斷其中一場通話或將通話合併成會議,才能再撥打電話。"</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"如要使用<xliff:g id="SUPP_SERVICE">%s</xliff:g>,請確認行動數據功能已開啟。你可以前往行動網路設定進行變更。"</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"如要使用<xliff:g id="SUPP_SERVICE">%s</xliff:g>,請確認行動數據功能和漫遊服務已開啟。你可以前往行動網路設定進行變更。"</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"如要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>,請確認 SIM 卡 <xliff:g id="SIM_NUMBER">%2$d</xliff:g> 的行動數據功能已開啟。你可以前往行動網路設定進行變更。"</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"如要使用<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>,請確認 SIM 卡 <xliff:g id="SIM_NUMBER">%2$d</xliff:g> 的行動數據功能和漫遊服務已開啟。你可以前往行動網路設定進行變更。"</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"關閉"</string>
</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index a040b23..55a9a1a 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -29,7 +29,7 @@
<string name="ussdRunning" msgid="485588686340541690">"Ikhodi ye-USSD iyasebenza..."</string>
<string name="mmiCancelled" msgid="2771923949751842276">"Ikhodi ye-MMI ikhanseliwe"</string>
<string name="cancel" msgid="5044513931633602634">"Khansela"</string>
- <string name="enter_input" msgid="1810529547726803893">"Umlayezo we-USSD kuzomele ube phakathi kuka-<xliff:g id="MIN_LEN">%d</xliff:g> nezinhlamvu ezingu-<xliff:g id="MAX_LEN">%d</xliff:g>. Sicela uzame futhi."</string>
+ <string name="enter_input" msgid="1810529547726803893">"Umlayezo we-USSD kuzomele ube phakathi kuka-<xliff:g id="MIN_LEN">%1$d</xliff:g> nezinhlamvu ezingu-<xliff:g id="MAX_LEN">%2$d</xliff:g>. Sicela uzame futhi."</string>
<string name="manageConferenceLabel" msgid="4691922394301969053">"Phatha ucingo lwengqungquthela"</string>
<string name="ok" msgid="3811371167865772377">"KULUNGILE"</string>
<string name="audio_mode_speaker" msgid="27649582100085266">"Isipikha"</string>
@@ -77,6 +77,12 @@
<string name="voicemail" msgid="8693759337917898954">"Ivoyisimeyili"</string>
<string name="voicemail_settings_with_label" msgid="152724978380748296">"Ivoyisimeyili (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="2215592488517217448">"VM:"</string>
+ <!-- no translation found for make_and_receive_calls (1258596928285972166) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu (3874243342391798449) -->
+ <skip />
+ <!-- no translation found for smart_forwarding_settings_menu_summary (8962247659470565059) -->
+ <skip />
<string name="voicemail_notifications_preference_title" msgid="4019728578955102213">"Izaziso"</string>
<string name="cell_broadcast_settings" msgid="8740238216690502563">"Ukusakazwa okuphuthumayo"</string>
<string name="call_settings" msgid="6112441768261754562">"Izilungiselelo zekholi"</string>
@@ -238,6 +244,10 @@
<string name="enhanced_4g_lte_mode_title" msgid="522191650223239171">"Imodi ye-4G LTE ethuthukisiwe"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (4447454259719947406) -->
<string name="enhanced_4g_lte_mode_summary" msgid="2332175070522125850">"Sebenzisa amasevisi we-LTE ukuze uthuthukise izwi nokunye ukuxhumana (kunconyiwe)"</string>
+ <string name="enhanced_4g_lte_mode_summary_o2" msgid="2467813449068614988">"Sebenzisa amasevisi we-G4 ukuze uthuthukise izwi nokunye ukuxhumana (kunconyiwe)"</string>
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2602242047481988063) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (989876442920201921) -->
+ <!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (8852017734075358040) -->
<string name="data_enabled" msgid="5972538663568715366">"Idatha ivunyelwe"</string>
<string name="data_enable_summary" msgid="2382798156640007971">"Vumela ukusetshenziswa kwedatha"</string>
<string name="dialog_alert_title" msgid="6751344986194435476">"Qaphela"</string>
@@ -275,9 +285,7 @@
<skip />
<string name="throttle_data_usage_subtext" msgid="6029276011123694701">"<xliff:g id="USED_0">%1$s</xliff:g> (<xliff:g id="USED_1">%2$d</xliff:g>٪) ye- <xliff:g id="USED_2">%3$s</xliff:g> isikhathi esiphezulu"</string>
<string name="throttle_data_rate_reduced_subtext" msgid="7492763592720107737">"<xliff:g id="USED_0">%1$s</xliff:g>okuphezulu kufinyelelwe\nIsilinganiso sedatha sehliselwe ku- <xliff:g id="USED_1">%2$d</xliff:g> ama-Kb"</string>
- <!-- String.format failed for translation -->
- <!-- no translation found for throttle_time_frame_subtext (7732763021560399960) -->
- <skip />
+ <string name="throttle_time_frame_subtext" msgid="7732763021560399960">"<xliff:g id="USED_0">%1$d</xliff:g>٪ lesikhathi esiphelile\nIsikhathi esilandelayo siqala ezinsukwini <xliff:g id="USED_1">%2$d</xliff:g> ezingu <xliff:g id="USED_2">%3$s</xliff:g>)"</string>
<string name="throttle_rate_subtext" msgid="2149102656120726855">"Isilinganiso sedatha sehliselwe ku-<xliff:g id="USED">%1$d</xliff:g> ama-Kb uma ukusebenzisa umkhawulo wedatha ufinyelelwe"</string>
<string name="throttle_help_subtext" msgid="5217706521499010816">"Olunye ulwazi mayelana nenqubomgomo yokusebenzisa idatha yenethiwekhi yesiphathi sakho sefoni."</string>
<string name="cell_broadcast_sms" msgid="5584192824053625842">"I-SMS Yokusakaza Iseli"</string>
@@ -503,8 +511,7 @@
<string name="incall_error_supp_service_resume" msgid="7147983409782027448">"Ayikwazi ukuqalisa kabusha ikholi."</string>
<string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Ayikwazi ukuhlukanisa ikholi."</string>
<string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Ayikwazi ukudlulisela."</string>
- <!-- no translation found for incall_error_supp_service_conference (2530955482970678150) -->
- <skip />
+ <string name="incall_error_supp_service_conference" msgid="2530955482970678150">"Ayikwazi ukuhlanganisa amakholi."</string>
<string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Ayikwazi ukunqabela ikholi."</string>
<string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Ayikwazi ukukhipha amakholi."</string>
<string name="incall_error_supp_service_hold" msgid="7967020511232222078">"Ayikwazi ukubamba amakholi."</string>
@@ -750,6 +757,7 @@
<string name="messageCallBarring" msgid="2412123220272136055">"Faka iphasiwedi"</string>
<string name="call_barring_settings" msgid="80766145008623645">"Izilungiselelo zokuvimbela ikholi"</string>
<string name="call_barring_deactivate_all_no_password" msgid="920902774366557311">"Yeka ukusebenzisa zonke izilungiselelo zokuvimbela?"</string>
+ <string name="callFailed_NetworkBusy" msgid="1068322087736565421">"Inethiwekhi imatasa. Sicela uzame ikholi yakho futhi ngemuva kwesikhathi."</string>
<string name="supp_service_notification_call_deflected" msgid="9195460512875330926">"Ikholi yehlisiwe."</string>
<string name="supp_service_notification_call_forwarded" msgid="7818548630812124053">"Ikholi idluliselwe."</string>
<string name="supp_service_notification_call_waiting" msgid="789154111899572489">"Ikholi ilindile."</string>
@@ -767,8 +775,14 @@
<string name="supp_service_forwarded_call" msgid="4509980341645679803">"Ikholi edluliselwe phambili."</string>
<string name="supp_service_conference_call" msgid="4448616364004466832">"Ijoyina ikholi yengqungquthela."</string>
<string name="supp_service_held_call_released" msgid="2030677825038709779">"Ikholi ebanjiwe ikhululiwe."</string>
+ <string name="callFailed_otasp_provisioning_in_process" msgid="6361786376484384454">"Ayikwazi ukubeka ikholi njengoba idivayisi okwamanje iyanikezwa."</string>
<string name="callFailed_already_dialing" msgid="4652915396769232226">"Ayikwazi ukubeka ikholi njengoba enye ikholi ephumayo isivele iyadayela."</string>
<string name="callFailed_already_ringing" msgid="7747655701540586943">"Ayikwazi ukubeka ikholi njengoba kunekholi engenayo engaphenduliwe. Phendula noma nqaba ikholi engenayo ngaphambi kokubeka ikholi entsha."</string>
<string name="callFailed_calling_disabled" msgid="7257184079619449933">"Ayikwazi ukubeka ikholi njengoba ukushaya kukhutshaziwe kusetshenziswa isistimu ye-ro.telephony.disable-call."</string>
<string name="callFailed_too_many_calls" msgid="3023051919216926990">"Ayikwazi ukubeka ikholi njengoba sekuvele kunamakholi amabili aqhubekayo. Nqamula eyodwa yamakholi noma ahlanganise ngaphambi ngaphambi kokubeka ikholi entsha."</string>
+ <string name="supp_service_over_ut_precautions" msgid="2565837355815074278">"Ukuze usebenzise i-<xliff:g id="SUPP_SERVICE">%s</xliff:g>, qiniseka ukuthi idatha yeselula ivuliwe. Ungashintsha lokhu kuzilungiselelo zenethiwekhi yeselula."</string>
+ <string name="supp_service_over_ut_precautions_roaming" msgid="1597142936802114092">"Ukuze usebenzise i-<xliff:g id="SUPP_SERVICE">%s</xliff:g>, qiniseka ukuthi idatha yeselula kanye nokuzula kuvuliwe. Ungashintsha lokhu kuzilungiselelo zenethiwekhi yeselula."</string>
+ <string name="supp_service_over_ut_precautions_dual_sim" msgid="1682814794340311300">"Ukuze usebenzise i-<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, qiniseka ukuthi idatha yeselula ivuliwe ku-SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Ungashintsha lokhu kuzilungiselelo zenethiwekhi yeselula."</string>
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="8062345092837168385">"Ukuze usebenzise i-<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, qiniseka ukuthi idatha yeselula kanye nokuzula kuvuliwe ku-SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Ungashintsha lokhu kuzilungiselelo zenethiwekhi yeselula."</string>
+ <string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5061044213859557398">"Chitha"</string>
</resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 065515a..679eba6 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -36,15 +36,15 @@
<!-- Settings screen should use the same colors as the Dialer -->
<color name="phone_settings_background_color">#f5f5f5</color>
- <!-- Action bar text color. Ensure this stays in sync with Dialer actionbar_text_color. -->
- <color name="phone_settings_actionbar_text_color">#FFFFFF</color>
+ <!-- Action bar text color. Ensure this stays in sync with dialer_icon_color in action bar. -->
+ <color name="phone_settings_actionbar_text_color">#5f6368</color>
<!-- Background color of action bars. Ensure this stays in sync with Dialer
actionbar_background_color. -->
- <color name="actionbar_background_color">#fafafa</color>
+ <color name="actionbar_background_color">#ffffff</color>
<!-- Dark variant of the action bar color. Ensure this stays in sync with Dialer version. -->
- <color name="actionbar_background_color_dark">#fafafa</color>
+ <color name="actionbar_background_color_dark">#ffffff</color>
<!-- Color for icons in the actionbar. Ensure this stays in sync with Dialer version. -->
- <color name="actionbar_icon_color">#ffffff</color>
+ <color name="actionbar_icon_color">#5f6368</color>
<!-- Color for the setting text. -->
<color name="setting_primary_color">#333333</color>
@@ -58,7 +58,7 @@
<color name="emergency_shortcut_confirm_button_background_color">#E25142</color>
<!-- Color matches dialer settings light M2 theme.-->
- <color name="dialer_background_color">#fafafa</color>
+ <color name="dialer_background_color">#ffffff</color>
<color name="dialer_divider_color">#d8d8d8</color>
<color name="dialer_primary_text_color">#202124</color>
<color name="dialer_secondary_text_color">#5f6368</color>
diff --git a/res/values/config.xml b/res/values/config.xml
index 6b6bf04..8bc1919 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -154,9 +154,9 @@
<string name="dialer_default_class" translatable="false">com.android.dialer.DialtactsActivity</string>
<!-- Package name for the mobile network settings [DO NOT TRANSLATE] -->
- <string name="mobile_network_settings_package" translatable="false">com.android.phone</string>
+ <string name="mobile_network_settings_package" translatable="false">com.android.settings</string>
<!-- Class name for the mobile network settings activity [DO NOT TRANSLATE] -->
- <string name="mobile_network_settings_class" translatable="false">com.android.phone.MobileNetworkSettings</string>
+ <string name="mobile_network_settings_class" translatable="false">com.android.settings.network.telephony.MobileNetworkActivity</string>
<!-- CDMA activation goes through HFA -->
<!-- DEPRECATED: Use CarrierConfigManager#KEY_USE_HFA_FOR_PROVISIONING_BOOL -->
@@ -251,10 +251,14 @@
audio stream which the remote party will be able to hear. -->
<bool name="config_support_telephony_audio_device">false</bool>
- <!-- Intent action to launch target emergency app. -->
- <string name="config_emergency_app_intent" translatable="false"></string>
-
<!-- The country list that shortcut view can be enabled. -->
<string-array name="config_countries_to_enable_shortcut_view" translatable="false">
</string-array>
+
+ <!-- When an emergency call is placed and the carrier supports network initiated SUPL requests
+ for location, this configuration dictates whether or not the modem supports SUPL requests
+ being handled on the logical slot that is not currently configured as the default data
+ 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>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index d2845ae..dd8abe7 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -42,6 +42,10 @@
<string name="payphone">Payphone</string>
<!-- In-call screen: status label for a call that's on hold -->
<string name="onHold">On hold</string>
+ <!-- Title for carrier MMI message -->
+ <string name="carrier_mmi_msg_title">(<xliff:g id="mmicarrier" example="T-Mobile">%s</xliff:g>) Message</string>
+ <!-- Default title for carrier MMI message -->
+ <string name="default_carrier_mmi_msg_title">Carrier Message</string>
<!-- Possible error messages with outgoing calls --><skip/>
<string name="mmiStarted">MMI code started</string>
<!-- Dialog label when a USSD code starts running -->
@@ -175,6 +179,13 @@
<!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
<string name="voicemail_notifications_key" translatable="false">voicemail_notification_key</string>
+ <!-- Title for Make and receive calls category. -->
+ <string name="make_and_receive_calls">Make & receive calls</string>
+ <!-- Title for the button to launch smart forwarding which will configure call forwarding on both SIMs to forward the call to the other SIM number when its not reachable. -->
+ <string name="smart_forwarding_settings_menu">Smart Forwarding</string>
+ <!-- Description of smart forwarding setting. -->
+ <string name="smart_forwarding_settings_menu_summary">When one number isn\'t reachable, always forward calls to your other number</string>
+
<!-- Voicemail notifications title. The user clicks on this preference navigate to the system settings screen for that channel
.[CHAR LIMIT=30] -->
<string name="voicemail_notifications_preference_title">Notifications</string>
@@ -557,8 +568,13 @@
lose data connectivity because you're roaming and you have the
"data roaming" feature turned off. -->
<string name="roaming_reenable_message">Data roaming is turned off. Tap to turn on.</string>
+ <!-- Mobile network settings UI: notification message shown when you
+ are roaming and you have the "data roaming" feature turned on. -->
+ <string name="roaming_enabled_message">Roaming charges may apply. Tap to modify.</string>
<!-- Roaming notification tile, notifying lost of roaming data connection -->
<string name="roaming_notification_title">Lost mobile data connection</string>
+ <!-- Roaming notification tile, notifying continued roaming data connection -->
+ <string name="roaming_on_notification_title">Data roaming is on</string>
<!-- Mobile network settings screen, dialog message when user selects the Data roaming check box -->
<string name="roaming_warning">You may incur significant charges.</string>
<!-- Mobile network settings screen, message asking the user to check their pricing with their Carrier, when enabling Data roaming. -->
@@ -1152,8 +1168,6 @@
<string name="emergency_information_confirm_hint">Tap again to view info</string>
<!-- Dialog title for the "radio enable" UI for emergency calls -->
<string name="emergency_enable_radio_dialog_title">Emergency call</string>
- <!-- Title for the emergency dialpad UI -->
- <string name="emergency_dialpad_title">Emergency calls only</string>
<!-- Emergency dialer: Title of single emergency shortcut button -->
<string name="single_emergency_number_title">Emergency number</string>
<!-- Emergency dialer: Title of numerous emergency shortcut buttons -->
@@ -1247,6 +1261,8 @@
<br><br> - RTT calls are saved as a message transcript
<br> - RTT is not available for video calls</string>
+ <string name="no_rtt_when_roaming">Note: RTT is not available while roaming</string>
+
<!-- Service option entries. -->
<string-array name="tty_mode_entries">
<item>TTY Off</item>
@@ -1531,6 +1547,15 @@
message is shown when an in-progress call is ended due to the battery being low. -->
<string name="callFailed_low_battery">Video call ended due to low battery.</string>
+ <!-- In-call screen: error message shown when the user attempts to place an emergency call
+ over wifi calling (WFC), but emergency services are not available in the current
+ location. -->
+ <string name="callFailed_emergency_call_over_wfc_not_available">Emergency calls over Wi-Fi calling not available in this location.</string>
+
+ <!-- In-call screen: error message shown when the user attempts to place a call over wifi
+ calling (WFC), but wifi calling is not available in the current location. -->
+ <string name="callFailed_wfc_service_not_available_in_this_location">Wi-Fi calling is not available in this location.</string>
+
<!-- The title for the change voicemail PIN activity -->
<string name="change_pin_title">Change Voicemail PIN</string>
<!-- The label for the continue button in change voicemail PIN activity -->
@@ -1764,6 +1789,10 @@
<!-- In-call screen: error message shown when the user attempts to place a call, but the network
does not have enough resources (e.g. it is busy) and the call cannot be placed. -->
<string name="callFailed_NetworkBusy">Network is busy. Please try your call again later.</string>
+ <!-- In-call screen: error message shown when the user attempts to place a call, but the network
+ does not have enough resources (e.g. it is congested) and the call cannot be placed. -->
+ <string name="callFailed_NetworkCongested">Network is congested. Contact your mobile operator
+ for assistance.</string>
<!-- Message displayed to the user when an outgoing call is deflected. This means that the
party the user is calling has chosen to send the call to another phone number. -->
<string name="supp_service_notification_call_deflected">Call deflected.</string>
@@ -1834,4 +1863,22 @@
<!-- In-call screen: error message shown when the user attempts to place a call, but calling has
been disabled using a debug property. -->
<string name="callFailed_too_many_calls">Cannot place a call a there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call.</string>
+ <!-- Message displayed to the user when they attempt to edit options for a supplementary service
+ (call waiting, call barring, call forwarding, and caller ID), but they are required to
+ enable mobile data first. -->
+ <string name="supp_service_over_ut_precautions">To use <xliff:g id="supp service">%s</xliff:g>, make sure mobile data is turned on. You can change this in mobile network settings.</string>
+ <!-- Message displayed to the user when they attempt to edit options for a supplementary service
+ (call waiting, call barring, call forwarding, and caller ID) in roaming, but they are
+ required to enable mobile data and data roaming first. -->
+ <string name="supp_service_over_ut_precautions_roaming">To use <xliff:g id="supp service">%s</xliff:g>, make sure mobile data and data roaming are turned on. You can change these in mobile network settings.</string>
+ <!-- Message displayed to the user when they attempt to edit options for a supplementary service
+ (call waiting, call barring, call forwarding, and caller ID), but they are
+ required to enable mobile data first for each sim. -->
+ <string name="supp_service_over_ut_precautions_dual_sim">To use <xliff:g id="supp service">%1$s</xliff:g>, make sure mobile data is turned on for SIM <xliff:g id="sim number">%2$d</xliff:g>. You can change this in mobile network settings.</string>
+ <!-- Message displayed to the user when they attempt to edit options for a supplementary service
+ (call waiting, call barring, call forwarding, and caller ID) in roaming device, but
+ they are required to enable mobile data and data roaming first for each sim. -->
+ <string name="supp_service_over_ut_precautions_roaming_dual_sim">To use <xliff:g id="supp service">%1$s</xliff:g>, make sure mobile data and data roaming are turned on for SIM <xliff:g id="sim number">%2$d</xliff:g>. You can change these in mobile network settings.</string>
+ <!-- supplementary services over ut precaution exit dialog choice -->
+ <string name="supp_service_over_ut_precautions_dialog_dismiss">Dismiss</string>
</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index f2db63d..5f9a453 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -154,6 +154,7 @@
</style>
<style name="SettingsLight" parent="android:Theme.Material.Light">
+ <item name="android:forceDarkAllowed">true</item>
<item name="android:windowBackground">@color/phone_settings_background_color</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:actionBarStyle">@style/DialtactsActionBarStyle</item>
@@ -169,7 +170,6 @@
<style name="DialerSettingsLight" parent="SettingsLight">
<!-- Action bar.-->
- <item name="android:tint">@color/dialer_secondary_text_color</item>
<item name="android:windowBackground">@color/dialer_background_color</item>
<item name="android:actionModeBackground">@color/dialer_background_color</item>
<item name="android:windowLightStatusBar">true</item>
@@ -179,15 +179,18 @@
<item name="android:windowLightNavigationBar">true</item>
<item name="android:colorAccent">@color/dialer_theme_color</item>
<item name="android:dialogTheme">@style/DialerAlertDialogTheme</item>
+ <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
</style>
<style name="DialerAlertDialogTheme"
parent="@android:style/Theme.Material.Light.Dialog">
+ <item name="android:forceDarkAllowed">true</item>
<item name="android:colorAccent">@color/dialer_theme_color</item>
<item name="android:textColor">?android:attr/textColorPrimaryInverseDisableOnly</item>
</style>
<style name="NetworkOperatorsSettingsTheme" parent="@android:style/Theme.DeviceDefault.Settings">
+ <item name="android:forceDarkAllowed">true</item>
<item name="android:switchPreferenceStyle">@style/SettingsSwitchPreference</item>
<item name="android:preferenceCategoryStyle">@style/SettingsPreferenceCategory</item>
<item name="android:preferenceStyle">@style/SettingsPreference</item>
@@ -202,6 +205,7 @@
</style>
<style name="Empty" parent="@android:style/Theme.Material.Light">
+ <item name="android:forceDarkAllowed">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
@@ -268,6 +272,7 @@
</style>
<style name="EmergencyDialerTheme" parent="@*android:style/Theme.DeviceDefault.Settings.Dark.NoActionBar">
+ <item name="android:forceDarkAllowed">true</item>
<item name="android:colorPrimaryDark">?android:attr/colorPrimary</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowShowWallpaper">true</item>
@@ -279,17 +284,21 @@
</style>
<style name="EmergencyDialerThemeDark" parent="@style/EmergencyDialerTheme">
+ <item name="android:forceDarkAllowed">true</item>
<item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
<item name="emergencyButtonBackgroundColor">#19414549</item>
+ <item name="android:colorControlHighlight">#40000000</item>
<item name="dialpadTheme">@style/Dialpad_LightTransparent</item>
</style>
<style name="EmergencyDialerAlertDialogTheme"
parent="@android:style/Theme.Material.Dialog">
+ <item name="android:forceDarkAllowed">true</item>
<item name="android:textColor">?android:attr/textColorPrimary</item>
</style>
<style name="SimImportTheme" parent="@android:style/Theme.Material.Light">
+ <item name="android:forceDarkAllowed">true</item>
<item name="android:actionBarStyle">@style/TelephonyActionBarStyle</item>
<item name="android:colorPrimaryDark">@color/dialer_theme_color_dark</item>
<item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
@@ -297,6 +306,7 @@
</style>
<style name="OutgoingCallBroadcasterTheme" parent="@android:style/Theme.Holo.NoActionBar">
+ <item name="android:forceDarkAllowed">true</item>
<item name="android:windowBackground">@android:color/black</item>
<item name="*android:windowAnimationStyle">@style/OutgoingAnimationStyle</item>
@@ -321,6 +331,7 @@
</style>
<style name="CallSettingsWithoutDividerTheme" parent="SettingsLight">
+ <item name="android:forceDarkAllowed">true</item>
<item name="android:listDivider">@null</item>
</style>
diff --git a/res/xml/carrier_ss_string.xml b/res/xml/carrier_ss_string.xml
new file mode 100644
index 0000000..826f0ea
--- /dev/null
+++ b/res/xml/carrier_ss_string.xml
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 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.
+-->
+<!-- This xml is the command's structure about supplementary service by ussd command.
+ It defines the feature (e.g. call forwarding , caller id), command, parameter, result,
+ response ,and response's value definition.
+ Developer can use the CarrierXmlParser.java to load this xml structure and use function to
+ make ussd command by structure and analyze the ussd response.
+
+ If developer need to define ussd command by specific carrier, developer can add new xml and
+ xml is named carrier_ss_string_carrierId.xml. The carrierId is a number and is defined in
+ <a href="https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/master/assets/carrier_list.textpb">here</a>
+ For example: carrier_ss_string_850.xml
+
+ The tags define as below:
+ <regular_parser> : It is a regular expression for response massage.
+ <feature name="callforwarding"> : It defines feature about call forwarding.
+ <command name="query"> : The command which is named "query" in feature.
+ <service_code> : The command's service code. The value defines by carrier.
+ <action_code> : From TS 22.030 6.5.2, the procedure always starts with *, #, **, ## or *#.
+ <parameter number="1"> : The parameter is supplementary Information. The number defines the
+ number of entries.
+ <entry position="1">1</entry> :
+ This defines the entry and entry's position and entry's text.
+ The 'position' is the parameter's position.
+ For example: #120*parameter1*parameter2*parameter3*parameter4#
+ parameter1 position=1
+ parameter2 position=2
+ parameter3 position=3
+ parameter4 position=4
+ The entry's text is define the parameter's value. If developer want to dynamic input,
+ text can use string witch start with "tag_" and define in CarrierXmlParser.java.
+ e.g. "tag_number","tag_time"
+ <response_format number ="3"> : This defines the response message format. The number means
+ the number of parameters.
+ <entry position="6" key="status_code"/> :
+ It defines response message's parameter.
+ The 'position' is the index of parser result which is by <regular_parser>.
+ The 'key' is the variable's name which is defined in CarrierXmlParser.java. Developer can
+ get response value by key's name.
+ For example:
+ 120*1*7*number*time*1*0*0# parse by <regular_parser>
+ 120 position= 2
+ 1 position= 4
+ 7 position= 6
+ number position= 8
+ time position= 10
+ <command_result number="3"> :
+ It defines the meaning for 'key' of 'response_format'.
+ The 'number' means the number of entries.
+ <entry key="status_code" definition="activate">7</entry> :
+ The 'key' is the same as 'key' of <response_format>.
+ The 'definition' is meaning for 'key' when response value is the same as text.
+ For example:
+ If response command is 120*1*7*1# and entry is
+ <entry key="status_code" definition="activate">7</entry>
+ After message parse, the result is that key="status_code" and value is 7.
+ After mapping <command_result>, this means that status_code is activate, when key's value
+ is 7 from response message.
+-->
+
+<resources>
+ <!-- This is a parser format by Regular Expression.
+ "response_format"'s position follow below index.
+ ((\d{2,3})(\*([^*#]*)(\*([^*#]*)(\*([^*#]*)(\*([^*#]*)(\*([^*#]*)(\*([^*#]*)(\*([^*#]*))?)?)?)?)?)?)?#)
+ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+ -->
+ <regular_parser>((\d{2,3})(\*([^*#]*)(\*([^*#]*)(\*([^*#]*)(\*([^*#]*)(\*([^*#]*)(\*([^*#]*)(\*([^*#]*))?)?)?)?)?)?)?#)</regular_parser>
+ <feature name="callforwarding">
+ <command name="query"><!--For example: *#120*1#-->
+ <service_code>120</service_code>
+ <action_code>*#</action_code>
+ <parameter number="1">
+ <entry position="1">1</entry>
+ </parameter>
+ <response_format number ="3"><!--For example: 120*1*7*number*time*1*0*0#-->
+ <entry position="6" key="status_code"/>
+ <entry position="8" key="number"/>
+ <entry position="10" key="time" />
+ </response_format>
+ </command>
+ <command name="activate"><!--For example: *120*1*number*time#-->
+ <service_code>120</service_code>
+ <action_code>*</action_code>
+ <parameter number="3">
+ <entry position="1">1</entry>
+ <entry position="2">tag_number</entry>
+ <entry position="3">tag_time</entry>
+ </parameter>
+ <response_format number="1"><!--For example: 120*1*7*1#-->
+ <entry position="6" key="status_code"/>
+ </response_format>
+ </command>
+ <command name="deactivate"><!--For example: #120*1#-->
+ <service_code>120</service_code>
+ <action_code>#</action_code>
+ <parameter number="1">
+ <entry position="1">1</entry>
+ </parameter>
+ <response_format number="1"><!--For example: 120*1*6*2#-->
+ <entry position="6" key="status_code"/>
+ </response_format>
+ </command>
+ <command_result number="3">
+ <entry key="status_code" definition="activate">7</entry>
+ <entry key="status_code" definition="deactivate">6</entry>
+ <entry key="status_code" definition="unregister">4</entry>
+ </command_result>
+ </feature>
+ <feature name="callerid">
+ <command name="activate"><!--For example: *148*2*password#-->
+ <service_code>148</service_code>
+ <action_code>*</action_code>
+ <parameter number="2">
+ <entry position="1">2</entry>
+ <entry position="2">tag_password</entry>
+ </parameter>
+ <response_format number="1"><!--For example: 148*7#-->
+ <entry position="4" key="status_code"/>
+ </response_format>
+ </command>
+ <command name="deactivate"><!--For example: *148*1*password#-->
+ <service_code>148</service_code>
+ <action_code>*</action_code>
+ <parameter number="2">
+ <entry position="1">1</entry>
+ <entry position="2">tag_password</entry>
+ </parameter>
+ <response_format number="1"><!--For example: 148*7#-->
+ <entry position="4" key="status_code"/>
+ </response_format>
+ </command>
+ <command_result number="1">
+ <entry key="status_code" definition="ok">7</entry>
+ </command_result>
+ </feature>
+</resources>
diff --git a/res/xml/carrier_ss_string_850.xml b/res/xml/carrier_ss_string_850.xml
new file mode 100644
index 0000000..86d5743
--- /dev/null
+++ b/res/xml/carrier_ss_string_850.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 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.
+-->
+<!-- This xml is the command's structure about supplementary service by ussd command for
+ carrier id 850.
+ <a href="https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/master/assets/carrier_list.textpb">here</a>
+ The introduction is same as carrier_ss_string.xml. @see carrier_ss_string_carrierId.xml
+-->
+
+<resources>
+ <!-- This is a parser format by Regular Expression.
+ "response_format"'s position follow below index.
+ ((\d{2,3})(\*([^*#]*)(\*([^*#]*)(\*([^*#]*)(\*([^*#]*)(\*([^*#]*)(\*([^*#]*)(\*([^*#]*))?)?)?)?)?)?)?#)
+ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+ -->
+ <regular_parser>((\d{2,3})(\*([^*#]*)(\*([^*#]*)(\*([^*#]*)(\*([^*#]*)(\*([^*#]*)(\*([^*#]*)(\*([^*#]*))?)?)?)?)?)?)?#)</regular_parser>
+ <feature name="callforwarding">
+ <command name="query"><!--For example: *#120*1#-->
+ <service_code>120</service_code>
+ <action_code>*#</action_code>
+ <parameter number="1">
+ <entry position="1">1</entry>
+ </parameter>
+ <response_format number ="3"><!--For example: 120*1*7*number*time*1*0*0#-->
+ <entry position="6" key="status_code"/>
+ <entry position="8" key="number"/>
+ <entry position="10" key="time" />
+ </response_format>
+ </command>
+ <command name="activate"><!--For example: *120*1*number*time#-->
+ <service_code>120</service_code>
+ <action_code>*</action_code>
+ <parameter number="3">
+ <entry position="1">1</entry>
+ <entry position="2">tag_number</entry>
+ <entry position="3">tag_time</entry>
+ </parameter>
+ <response_format number="1"><!--For example: 120*1*7*1#-->
+ <entry position="6" key="status_code"/>
+ </response_format>
+ </command>
+ <command name="deactivate"><!--For example: #120*1#-->
+ <service_code>120</service_code>
+ <action_code>#</action_code>
+ <parameter number="1">
+ <entry position="1">1</entry>
+ </parameter>
+ <response_format number="1"><!--For example: 120*1*6*2#-->
+ <entry position="6" key="status_code"/>
+ </response_format>
+ </command>
+ <command_result number="3">
+ <entry key="status_code" definition="activate">7</entry>
+ <entry key="status_code" definition="deactivate">6</entry>
+ <entry key="status_code" definition="unregister">4</entry>
+ </command_result>
+ </feature>
+ <feature name="callerid">
+ <command name="activate"><!--For example: *148*2*password#-->
+ <service_code>148</service_code>
+ <action_code>*</action_code>
+ <parameter number="2">
+ <entry position="1">2</entry>
+ <entry position="2">tag_password</entry>
+ </parameter>
+ <response_format number="1"><!--For example: 148*7#-->
+ <entry position="4" key="status_code"/>
+ </response_format>
+ </command>
+ <command name="deactivate"><!--For example: *148*1*password#-->
+ <service_code>148</service_code>
+ <action_code>*</action_code>
+ <parameter number="2">
+ <entry position="1">1</entry>
+ <entry position="2">tag_password</entry>
+ </parameter>
+ <response_format number="1"><!--For example: 148*7#-->
+ <entry position="4" key="status_code"/>
+ </response_format>
+ </command>
+ <command_result number="1">
+ <entry key="status_code" definition="ok">7</entry>
+ </command_result>
+ </feature>
+</resources>
diff --git a/res/xml/cdma_options.xml b/res/xml/cdma_options.xml
deleted file mode 100644
index f6ef97a..0000000
--- a/res/xml/cdma_options.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 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.
--->
-
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
-
- <com.android.phone.CdmaSystemSelectListPreference
- android:key="cdma_system_select_key"
- android:title="@string/cdma_system_select_title"
- android:summary="@string/cdma_system_select_summary"
- android:entries="@array/cdma_system_select_choices"
- android:entryValues="@array/cdma_system_select_values"
- android:dialogTitle="@string/cdma_system_select_dialogtitle" />
-
- <com.android.phone.CdmaSubscriptionListPreference
- android:key="cdma_subscription_key"
- android:title="@string/cdma_subscription_title"
- android:summary="@string/cdma_subscription_summary"
- android:entries="@array/cdma_subscription_choices"
- android:entryValues="@array/cdma_subscription_values"
- android:dialogTitle="@string/cdma_subscription_dialogtitle" />
-
- <!--We want separate APN setting from reset of settings because-->
- <!--we want user to change it with caution.-->
- <PreferenceCategory
- android:key="category_cdma_apn_key">
- <!-- The launching Intent will be defined thru code as we need to pass some Extra -->
- <com.android.phone.RestrictedPreference
- android:key="button_cdma_apn_key"
- android:title="@string/apn_settings"
- android:persistent="false"/>
- </PreferenceCategory>
-
- <Preference
- android:key="carrier_settings_key"
- android:title="@string/carrier_settings_title">
- <intent android:action="android.intent.action.MAIN"
- android:targetPackage="@string/carrier_settings"
- android:targetClass="@string/carrier_settings_menu" />
- </Preference>
-
-</PreferenceScreen>
diff --git a/res/xml/gsm_umts_options.xml b/res/xml/gsm_umts_options.xml
deleted file mode 100644
index 81b2deb..0000000
--- a/res/xml/gsm_umts_options.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 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.
--->
-
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
-
- <com.android.phone.NetworkOperators
- android:key="network_operators_category_key"
- android:title="@string/network_operator_category"
- android:persistent="false">
-
- <SwitchPreference
- android:key="button_auto_select_key"
- android:title="@string/select_automatically"
- android:persistent="false"/>
-
- <com.android.phone.NetworkSelectListPreference
- android:key="button_network_select_key"
- android:title="@string/network_select_title"
- android:persistent="false"/>
-
- <Preference
- android:key="button_choose_network_key"
- android:title="@string/choose_network_title"
- android:fragment="com.android.phone.NetworkSelectSetting" />
- </com.android.phone.NetworkOperators>
-
- <!--We want separate APN setting from reset of settings because-->
- <!--we want user to change it with caution.-->
- <PreferenceCategory
- android:key="category_gsm_apn_key"
- android:layout="@layout/preference_category_no_label">
-
- <com.android.phone.RestrictedPreference
- android:key="button_gsm_apn_key"
- android:title="@string/apn_settings"
- android:persistent="false" />
- </PreferenceCategory>
-
- <PreferenceScreen
- android:key="carrier_settings_key"
- android:title="@string/carrier_settings_title">
- <intent android:action="android.intent.action.MAIN"
- android:targetPackage="@string/carrier_settings"
- android:targetClass="@string/carrier_settings_menu" />
- </PreferenceScreen>
-
-</PreferenceScreen>
diff --git a/res/xml/network_setting_fragment.xml b/res/xml/network_setting_fragment.xml
deleted file mode 100644
index d334861..0000000
--- a/res/xml/network_setting_fragment.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 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.
--->
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
-
- <PreferenceScreen
- android:key="cdma_lte_data_service_key"
- android:title="@string/cdma_lte_data_service">
- </PreferenceScreen>
-
- <com.android.phone.MobileDataPreference
- android:key="mobile_data_enable"
- android:title="@string/mobile_data_settings_title"
- android:summary="@string/mobile_data_settings_summary"/>
-
- <com.android.phone.RestrictedSwitchPreference
- android:key="button_roaming_key"
- android:title="@string/roaming"
- android:persistent="false"
- android:summaryOn="@string/roaming_enable"
- android:summaryOff="@string/roaming_disable"/>
-
- <com.android.phone.DataUsagePreference
- android:key="data_usage_summary"
- android:title="@string/data_usage_title" />
-
- <com.android.phone.AdvancedOptionsPreference
- android:key="advanced_options"/>
-
- <SwitchPreference
- android:key="enhanced_4g_lte"
- android:title="@string/enhanced_4g_lte_mode_title"
- android:persistent="false"
- android:summary="@string/enhanced_4g_lte_mode_summary"/>
-
- <ListPreference
- android:key="preferred_network_mode_key"
- android:title="@string/preferred_network_mode_title"
- android:summary="@string/preferred_network_mode_summary"
- android:entries="@array/preferred_network_mode_choices"
- android:entryValues="@array/preferred_network_mode_values"
- android:dialogTitle="@string/preferred_network_mode_dialogtitle" />
-
- <ListPreference
- android:key="enabled_networks_key"
- android:title="@string/preferred_network_mode_title"
- android:summary="@string/preferred_network_mode_summary"
- android:entries="@array/enabled_networks_choices"
- android:entryValues="@array/enabled_networks_values"
- android:dialogTitle="@string/preferred_network_mode_dialogtitle" />
-
- <Preference
- android:key="carrier_settings_euicc_key"
- android:title="@string/carrier_settings_euicc" />
-
- <PreferenceCategory
- android:key="calling"
- android:title="@string/call_category">
-
- <PreferenceScreen
- android:key="wifi_calling_key"
- android:title="@string/wifi_calling_settings_title">
-
- <intent android:action="android.intent.action.MAIN"
- android:targetPackage="com.android.settings"
- android:targetClass="com.android.settings.Settings$WifiCallingSettingsActivity">
- <extra android:name="show_drawer_menu" android:value="true" />
- </intent>
-
- </PreferenceScreen>
-
- <SwitchPreference
- android:key="video_calling_key"
- android:title="@string/video_calling_settings_title"
- android:persistent="true"/>
-
- </PreferenceCategory>
-
-</PreferenceScreen>
diff --git a/res/xml/phone_account_settings.xml b/res/xml/phone_account_settings.xml
index d230328..a243a65 100644
--- a/res/xml/phone_account_settings.xml
+++ b/res/xml/phone_account_settings.xml
@@ -21,19 +21,11 @@
android:key="phone_accounts_accounts_list_category_key"
android:title="@string/phone_accounts_settings_header">
- <com.android.phone.settings.AccountSelectionPreference
- android:key="default_outgoing_account"
- android:title="@string/phone_accounts_make_calls_with"
- android:defaultValue=""
- android:persistent="false"
- android:order="1" />
-
<PreferenceScreen
android:key="phone_accounts_all_calling_accounts"
android:title="@string/phone_accounts_all_calling_accounts"
android:summary="@string/phone_accounts_all_calling_accounts_summary"
- android:persistent="false"
- android:order="1000" >
+ android:persistent="false" >
<intent android:action="android.intent.action.MAIN"
android:targetPackage="com.android.server.telecom"
@@ -43,6 +35,27 @@
</PreferenceCategory>
<PreferenceCategory
+ android:key="make_and_receive_calls_settings_category_key"
+ android:title="@string/make_and_receive_calls"
+ android:persistent="false">
+
+ <com.android.phone.settings.AccountSelectionPreference
+ android:key="default_outgoing_account"
+ android:title="@string/phone_accounts_make_calls_with"
+ android:defaultValue=""
+ android:persistent="false"/>
+
+ <PreferenceScreen
+ android:key="smart_forwarding_configuration_key"
+ android:title="@string/smart_forwarding_settings_menu"
+ android:summary="@string/smart_forwarding_settings_menu_summary"
+ android:persistent="false">
+
+ </PreferenceScreen>
+
+ </PreferenceCategory>
+
+ <PreferenceCategory
android:key="phone_accounts_sip_settings_category_key"
android:title="@string/sip_settings"
android:persistent="false">
diff --git a/sip/res/values-as/strings.xml b/sip/res/values-as/strings.xml
new file mode 100644
index 0000000..0063799
--- /dev/null
+++ b/sip/res/values-as/strings.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="sip_settings" msgid="3768482698061677257">"SIP ছেটিংসমূহ"</string>
+ <string name="sip_accounts" msgid="85559497282185405">"SIP একাউণ্টসমূহ"</string>
+ <string name="sip_accounts_title" msgid="2082527045326874519">"একাউণ্টসমূহ"</string>
+ <string name="sip_receive_calls" msgid="426678617137462173">"অন্তৰ্গামী কল লাভ কৰি থকা হৈছে"</string>
+ <string name="sip_receive_calls_summary" msgid="946161517528227523">"বেটাৰি অধিক ব্যৱহাৰ কৰে"</string>
+ <string name="sip_call_options_title" msgid="8421210494703869806">"SIP কলিং ব্যৱহাৰ কৰক"</string>
+ <string name="sip_call_options_wifi_only_title" msgid="5112579243580893890">"SIP কলিং ব্যৱহাৰ কৰক (কেৱল ৱাই-ফাই)"</string>
+ <string name="sip_call_options_entry_1" msgid="7217659161237099900">"ডেটা নেটৱৰ্ক উপলব্ধ থাকোঁতে সকলো কলৰ বাবে"</string>
+ <string name="sip_call_options_entry_2" msgid="1815335903940609729">"কেৱল SIP কলৰ বাবে"</string>
+ <string name="sip_call_options_wifi_only_entry_1" msgid="1358513095551847314">"সকলো কলৰ বাবে"</string>
+ <string name="add_sip_account" msgid="800843669753980091">"একাউণ্ট যোগ কৰক"</string>
+ <string name="remove_sip_account" msgid="1367664438506503690">"একাউণ্ট আঁতৰাওক"</string>
+ <string name="sip_account_list" msgid="5610858485304821480">"SIP একাউণ্টসমূহ"</string>
+ <string name="saving_account" msgid="5336529880235177448">"একাউণ্টটো ছেভ কৰা হৈছে…"</string>
+ <string name="removing_account" msgid="5537351356808985756">"একাউণ্টটো আঁতৰোৱা হৈছে…"</string>
+ <string name="sip_menu_save" msgid="7882219814563869225">"ছেভ কৰক"</string>
+ <string name="sip_menu_discard" msgid="2350421645423888438">"অগ্ৰাহ্য কৰক"</string>
+ <string name="alert_dialog_close" msgid="1326011828713435134">"প্ৰ\'ফাইলটো বন্ধ কৰক"</string>
+ <string name="alert_dialog_ok" msgid="4752048404605388940">"ঠিক"</string>
+ <string name="close_profile" msgid="3122414058856309881">"বন্ধ কৰক"</string>
+ <string name="registration_status_checking_status" msgid="6136793741862200337">"স্থিতি পৰীক্ষা কৰি থকা হৈছে…"</string>
+ <string name="registration_status_registering" msgid="2677183977796278749">"পঞ্জীয়ন কৰি থকা হৈছে…"</string>
+ <string name="registration_status_still_trying" msgid="7648151061205513458">"এতিয়াও চেষ্টা কৰি থকা হৈছে…"</string>
+ <string name="registration_status_not_receiving" msgid="7620333886153361090">"কল লাভ কৰি থকা নাই।"</string>
+ <string name="registration_status_no_data" msgid="2541999976218192413">"ইণ্টাৰনেট সংযোগ নথকাৰ বাবে একাউণ্টৰ পঞ্জীয়ন বন্ধ কৰা হ’ল।"</string>
+ <string name="registration_status_no_wifi_data" msgid="9154717387473039546">"ৱাই-ফাই সংযোগ নথকাৰ বাবে একাউণ্টৰ পঞ্জীয়ন বন্ধ কৰা হ’ল।"</string>
+ <string name="registration_status_not_running" msgid="514205414303796800">"একাউণ্টৰ পঞ্জীয়ন বিফল হৈছে।"</string>
+ <string name="registration_status_done" msgid="3264961069247314253">"কল লাভ কৰি থকা হৈছে…"</string>
+ <string name="registration_status_failed_try_later" msgid="2199970021756384317">"একাউণ্টৰ পঞ্জীয়ন বিফল হৈছে: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); পিছত আকৌ চেষ্টা কৰা হ\'ব"</string>
+ <string name="registration_status_invalid_credentials" msgid="8406872554323334182">"একাউণ্টৰ পঞ্জীয়ন বিফল হৈছে: ব্যৱহাৰকাৰী নাম ভুল বা পাছৱৰ্ড ভুল"</string>
+ <string name="registration_status_server_unreachable" msgid="7710275557045148634">"একাউণ্টৰ পঞ্জীয়ন বিফল হৈছে: ছাৰ্ভাৰৰ নামটো পৰীক্ষা কৰক।"</string>
+ <string name="third_party_account_summary" msgid="9041060473615403041">"এই একাউণ্টটো বৰ্তমান <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> এপটোৱে ব্যৱহাৰ কৰি আছে।"</string>
+ <string name="sip_edit_title" msgid="1967247832635750410">"SIP একাউণ্টৰ সবিশেষ"</string>
+ <string name="sip_edit_new_title" msgid="266414118302574305">"SIP একাউণ্টৰ সবিশেষ"</string>
+ <string name="domain_address_title" msgid="1968479941328225423">"ছাৰ্ভাৰ"</string>
+ <string name="username_title" msgid="6770064611005663470">"ব্যৱহাৰকাৰীৰ নাম"</string>
+ <string name="password_title" msgid="5289013731515564295">"পাছৱৰ্ড"</string>
+ <string name="display_name_title" msgid="579241787583079773">"ডিছপ্লেৰ নাম"</string>
+ <string name="proxy_address_title" msgid="6890163365640631841">"বহিৰ্গামী প্ৰ\'ক্সি ঠিকনা"</string>
+ <string name="port_title" msgid="6693965912656593862">"প\'ৰ্ট নম্বৰ"</string>
+ <string name="transport_title" msgid="889155457465372527">"ট্ৰান্সপ\'ৰ্টৰ প্ৰকাৰ"</string>
+ <string name="send_keepalive_title" msgid="599627072150501159">"কীপ-এলাইভ প্ৰেৰণ কৰক"</string>
+ <string name="advanced_settings" msgid="6622996380747040711">"ঐচ্ছিক ছেটিংসমূহ"</string>
+ <string name="auth_username_title" msgid="8262491689004708265">"বিশ্বাসযোগ্যতা প্ৰমাণীকৰণ ব্যৱহাৰকাৰীৰ নাম"</string>
+ <string name="auth_username_summary" msgid="941160241371436473">"বিশ্বাসযোগ্যতা প্ৰমাণীকৰণৰ বাবে ব্যৱহৃত ব্যৱহাৰকাৰীৰ নাম"</string>
+ <string name="default_preference_summary_username" msgid="8404717434312826082">"<ছেট কৰা হোৱা নাই>"</string>
+ <string name="default_preference_summary_password" msgid="4464464672997027904">"<ছেট কৰা হোৱা নাই>"</string>
+ <string name="default_preference_summary_domain_address" msgid="4871971710197441673">"<ছেট কৰা হোৱা নাই>"</string>
+ <string name="display_name_summary" msgid="7155076491675565407">"<ব্যৱহাৰকাৰীৰ নামৰ সৈতে একেই>"</string>
+ <string name="optional_summary" msgid="2363105560396317624">"<ঐচ্ছিক>"</string>
+ <string name="advanced_settings_show" msgid="7838761602853998622">"▷ সকলো দেখুওৱাবলৈ স্পৰ্শ কৰক"</string>
+ <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ সকলো লুকুৱাবলৈ স্পৰ্শ কৰক"</string>
+ <string name="all_empty_alert" msgid="4087734950375192387">"নতুন SIP একাউণ্টৰ সবিশেষ লিখক।"</string>
+ <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> দৰকাৰী আৰু ইয়াক খালীকৈ এৰি যাব নোৱাৰি।"</string>
+ <string name="not_a_valid_port" msgid="7931422555587011830">"প\'ৰ্ট নম্বৰটো 1000 আৰু 65534ৰ ভিতৰত হ\'ব লাগিব।"</string>
+ <string name="no_internet_available" msgid="5523747991760017298">"SIP কল কৰিবলৈ প্ৰথমে আপোনাৰ ইণ্টাৰনেট সংযোগ পৰীক্ষা কৰক।"</string>
+ <string name="no_wifi_available" msgid="1955023904229673488">"আপুনি SIP কল কৰিবলৈ কোনো ৱাই-ফাই নেটৱৰ্কৰ সৈতে সংযুক্ত হৈ থাকিব লাগিব (বেতাঁৰ আৰু নেটৱৰ্ক ছেটিংসমূহ ব্যৱহাৰ কৰক)।"</string>
+ <string name="no_voip" msgid="3038021971231952704">"SIP কলিং কৰাৰ সুবিধা নাই"</string>
+ <string name="sip_system_decide" msgid="5577696249416700671">"স্বয়ংক্ৰিয়"</string>
+ <string name="sip_always_send_keepalive" msgid="4773022409239823318">"সদায় প্ৰেৰণ কৰক"</string>
+ <string name="sip_connection_service_label" msgid="6935325004265884453">"বিল্ট-ইন SIP কলিং"</string>
+</resources>
diff --git a/sip/res/values-be/strings.xml b/sip/res/values-be/strings.xml
index 2252024..96104cd 100644
--- a/sip/res/values-be/strings.xml
+++ b/sip/res/values-be/strings.xml
@@ -53,7 +53,7 @@
<string name="domain_address_title" msgid="1968479941328225423">"Сервер"</string>
<string name="username_title" msgid="6770064611005663470">"Імя карыстальніка"</string>
<string name="password_title" msgid="5289013731515564295">"Пароль"</string>
- <string name="display_name_title" msgid="579241787583079773">"Бачнае імя"</string>
+ <string name="display_name_title" msgid="579241787583079773">"Бачная назва"</string>
<string name="proxy_address_title" msgid="6890163365640631841">"Адрас выходнага проксі-сервера"</string>
<string name="port_title" msgid="6693965912656593862">"Нумар порта"</string>
<string name="transport_title" msgid="889155457465372527">"Тып транспарту"</string>
diff --git a/sip/res/values-bs/strings.xml b/sip/res/values-bs/strings.xml
index b066ddf..7f0b727 100644
--- a/sip/res/values-bs/strings.xml
+++ b/sip/res/values-bs/strings.xml
@@ -59,8 +59,8 @@
<string name="transport_title" msgid="889155457465372527">"Vrsta prijenosa"</string>
<string name="send_keepalive_title" msgid="599627072150501159">"Pošalji keep-alive poruku"</string>
<string name="advanced_settings" msgid="6622996380747040711">"Opcionalne postavke"</string>
- <string name="auth_username_title" msgid="8262491689004708265">"Korisničko ime za provjeru vjerodostojnosti"</string>
- <string name="auth_username_summary" msgid="941160241371436473">"Korisničko ime upotrijebljeno za provjeru vjerodostojnosti"</string>
+ <string name="auth_username_title" msgid="8262491689004708265">"Korisničko ime za autentifikaciju"</string>
+ <string name="auth_username_summary" msgid="941160241371436473">"Korisničko ime upotrijebljeno za autentifikaciju"</string>
<string name="default_preference_summary_username" msgid="8404717434312826082">"<Nije postavljeno>"</string>
<string name="default_preference_summary_password" msgid="4464464672997027904">"<Nije postavljeno>"</string>
<string name="default_preference_summary_domain_address" msgid="4871971710197441673">"<Nije postavljeno>"</string>
diff --git a/sip/res/values-da/strings.xml b/sip/res/values-da/strings.xml
index b6764a9..bdce773 100644
--- a/sip/res/values-da/strings.xml
+++ b/sip/res/values-da/strings.xml
@@ -48,8 +48,8 @@
<string name="registration_status_invalid_credentials" msgid="8406872554323334182">"Registreringen af kontoen mislykkedes: Forkert brugernavn eller adgangskode."</string>
<string name="registration_status_server_unreachable" msgid="7710275557045148634">"Registreringen af kontoen mislykkedes. Tjek servernavn."</string>
<string name="third_party_account_summary" msgid="9041060473615403041">"Denne konto benyttes i øjeblikket af appen <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
- <string name="sip_edit_title" msgid="1967247832635750410">"Oplysninger om SIP-konto"</string>
- <string name="sip_edit_new_title" msgid="266414118302574305">"Oplysninger om SIP-konto"</string>
+ <string name="sip_edit_title" msgid="1967247832635750410">"Info om SIP-konto"</string>
+ <string name="sip_edit_new_title" msgid="266414118302574305">"Info om SIP-konto"</string>
<string name="domain_address_title" msgid="1968479941328225423">"Server"</string>
<string name="username_title" msgid="6770064611005663470">"Brugernavn"</string>
<string name="password_title" msgid="5289013731515564295">"Adgangskode"</string>
diff --git a/sip/res/values-en-rXC/strings.xml b/sip/res/values-en-rXC/strings.xml
index 06afc77..f543fce 100644
--- a/sip/res/values-en-rXC/strings.xml
+++ b/sip/res/values-en-rXC/strings.xml
@@ -16,65 +16,65 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="sip_settings" msgid="3768482698061677257">"SIP settings"</string>
- <string name="sip_accounts" msgid="85559497282185405">"SIP accounts"</string>
- <string name="sip_accounts_title" msgid="2082527045326874519">"Accounts"</string>
- <string name="sip_receive_calls" msgid="426678617137462173">"Receive incoming calls"</string>
- <string name="sip_receive_calls_summary" msgid="946161517528227523">"Uses more battery life"</string>
- <string name="sip_call_options_title" msgid="8421210494703869806">"Use SIP calling"</string>
- <string name="sip_call_options_wifi_only_title" msgid="5112579243580893890">"Use SIP calling (Wi-Fi only)"</string>
- <string name="sip_call_options_entry_1" msgid="7217659161237099900">"For all calls when data network is available"</string>
- <string name="sip_call_options_entry_2" msgid="1815335903940609729">"Only for SIP calls"</string>
- <string name="sip_call_options_wifi_only_entry_1" msgid="1358513095551847314">"For all calls"</string>
- <string name="add_sip_account" msgid="800843669753980091">"Add account"</string>
- <string name="remove_sip_account" msgid="1367664438506503690">"Remove account"</string>
- <string name="sip_account_list" msgid="5610858485304821480">"SIP accounts"</string>
- <string name="saving_account" msgid="5336529880235177448">"Saving the account…"</string>
- <string name="removing_account" msgid="5537351356808985756">"Removing the account…"</string>
- <string name="sip_menu_save" msgid="7882219814563869225">"Save"</string>
- <string name="sip_menu_discard" msgid="2350421645423888438">"Discard"</string>
- <string name="alert_dialog_close" msgid="1326011828713435134">"Close the profile"</string>
- <string name="alert_dialog_ok" msgid="4752048404605388940">"OK"</string>
- <string name="close_profile" msgid="3122414058856309881">"Close"</string>
- <string name="registration_status_checking_status" msgid="6136793741862200337">"Checking status..."</string>
- <string name="registration_status_registering" msgid="2677183977796278749">"Registering…"</string>
- <string name="registration_status_still_trying" msgid="7648151061205513458">"Still trying…"</string>
- <string name="registration_status_not_receiving" msgid="7620333886153361090">"Not receiving calls."</string>
- <string name="registration_status_no_data" msgid="2541999976218192413">"Account registration stopped because there is no Internet connection."</string>
- <string name="registration_status_no_wifi_data" msgid="9154717387473039546">"Account registration stopped because there is no Wi-Fi connection."</string>
- <string name="registration_status_not_running" msgid="514205414303796800">"Account registration unsuccessful."</string>
- <string name="registration_status_done" msgid="3264961069247314253">"Receiving calls."</string>
- <string name="registration_status_failed_try_later" msgid="2199970021756384317">"Account registration unsuccessful: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); will try later"</string>
- <string name="registration_status_invalid_credentials" msgid="8406872554323334182">"Account registration unsuccessful: Incorrect username or password."</string>
- <string name="registration_status_server_unreachable" msgid="7710275557045148634">"Account registration unsuccessful: Check the server name."</string>
- <string name="third_party_account_summary" msgid="9041060473615403041">"This account is currently in use by the <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> app."</string>
- <string name="sip_edit_title" msgid="1967247832635750410">"SIP account details"</string>
- <string name="sip_edit_new_title" msgid="266414118302574305">"SIP account details"</string>
- <string name="domain_address_title" msgid="1968479941328225423">"Server"</string>
- <string name="username_title" msgid="6770064611005663470">"Username"</string>
- <string name="password_title" msgid="5289013731515564295">"Password"</string>
- <string name="display_name_title" msgid="579241787583079773">"Display name"</string>
- <string name="proxy_address_title" msgid="6890163365640631841">"Outbound proxy address"</string>
- <string name="port_title" msgid="6693965912656593862">"Port number"</string>
- <string name="transport_title" msgid="889155457465372527">"Transport type"</string>
- <string name="send_keepalive_title" msgid="599627072150501159">"Send keep-alive"</string>
- <string name="advanced_settings" msgid="6622996380747040711">"Optional settings"</string>
- <string name="auth_username_title" msgid="8262491689004708265">"Authentication username"</string>
- <string name="auth_username_summary" msgid="941160241371436473">"Username used for authentication"</string>
- <string name="default_preference_summary_username" msgid="8404717434312826082">"<Not set>"</string>
- <string name="default_preference_summary_password" msgid="4464464672997027904">"<Not set>"</string>
- <string name="default_preference_summary_domain_address" msgid="4871971710197441673">"<Not set>"</string>
- <string name="display_name_summary" msgid="7155076491675565407">"<Same as username>"</string>
- <string name="optional_summary" msgid="2363105560396317624">"<Optional>"</string>
- <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Touch to show all"</string>
- <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Touch to hide all"</string>
- <string name="all_empty_alert" msgid="4087734950375192387">"Enter details of new SIP account."</string>
- <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> is required and can\'t be left blank."</string>
- <string name="not_a_valid_port" msgid="7931422555587011830">"Port number should be within 1000 and 65534."</string>
- <string name="no_internet_available" msgid="5523747991760017298">"To place a SIP call, check your Internet connection first."</string>
- <string name="no_wifi_available" msgid="1955023904229673488">"You need to be connected to a Wi-Fi network for SIP calls (use the Wireless & Network settings)."</string>
- <string name="no_voip" msgid="3038021971231952704">"SIP calling not supported"</string>
- <string name="sip_system_decide" msgid="5577696249416700671">"Automatic"</string>
- <string name="sip_always_send_keepalive" msgid="4773022409239823318">"Always send"</string>
- <string name="sip_connection_service_label" msgid="6935325004265884453">"Built-in SIP calling"</string>
+ <string name="sip_settings" msgid="3768482698061677257">"SIP settings"</string>
+ <string name="sip_accounts" msgid="85559497282185405">"SIP accounts"</string>
+ <string name="sip_accounts_title" msgid="2082527045326874519">"Accounts"</string>
+ <string name="sip_receive_calls" msgid="426678617137462173">"Receive incoming calls"</string>
+ <string name="sip_receive_calls_summary" msgid="946161517528227523">"Uses more battery life"</string>
+ <string name="sip_call_options_title" msgid="8421210494703869806">"Use SIP calling"</string>
+ <string name="sip_call_options_wifi_only_title" msgid="5112579243580893890">"Use SIP calling (Wi-Fi only)"</string>
+ <string name="sip_call_options_entry_1" msgid="7217659161237099900">"For all calls when data network is available"</string>
+ <string name="sip_call_options_entry_2" msgid="1815335903940609729">"Only for SIP calls"</string>
+ <string name="sip_call_options_wifi_only_entry_1" msgid="1358513095551847314">"For all calls"</string>
+ <string name="add_sip_account" msgid="800843669753980091">"Add account"</string>
+ <string name="remove_sip_account" msgid="1367664438506503690">"Remove account"</string>
+ <string name="sip_account_list" msgid="5610858485304821480">"SIP accounts"</string>
+ <string name="saving_account" msgid="5336529880235177448">"Saving the account…"</string>
+ <string name="removing_account" msgid="5537351356808985756">"Removing the account…"</string>
+ <string name="sip_menu_save" msgid="7882219814563869225">"Save"</string>
+ <string name="sip_menu_discard" msgid="2350421645423888438">"Discard"</string>
+ <string name="alert_dialog_close" msgid="1326011828713435134">"Close the profile"</string>
+ <string name="alert_dialog_ok" msgid="4752048404605388940">"OK"</string>
+ <string name="close_profile" msgid="3122414058856309881">"Close"</string>
+ <string name="registration_status_checking_status" msgid="6136793741862200337">"Checking status..."</string>
+ <string name="registration_status_registering" msgid="2677183977796278749">"Registering…"</string>
+ <string name="registration_status_still_trying" msgid="7648151061205513458">"Still trying…"</string>
+ <string name="registration_status_not_receiving" msgid="7620333886153361090">"Not receiving calls."</string>
+ <string name="registration_status_no_data" msgid="2541999976218192413">"Account registration stopped because there is no Internet connection."</string>
+ <string name="registration_status_no_wifi_data" msgid="9154717387473039546">"Account registration stopped because there is no Wi-Fi connection."</string>
+ <string name="registration_status_not_running" msgid="514205414303796800">"Account registration unsuccessful."</string>
+ <string name="registration_status_done" msgid="3264961069247314253">"Receiving calls."</string>
+ <string name="registration_status_failed_try_later" msgid="2199970021756384317">"Account registration unsuccessful: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); will try later"</string>
+ <string name="registration_status_invalid_credentials" msgid="8406872554323334182">"Account registration unsuccessful: Incorrect username or password."</string>
+ <string name="registration_status_server_unreachable" msgid="7710275557045148634">"Account registration unsuccessful: Check the server name."</string>
+ <string name="third_party_account_summary" msgid="9041060473615403041">"This account is currently in use by the <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> app."</string>
+ <string name="sip_edit_title" msgid="1967247832635750410">"SIP account details"</string>
+ <string name="sip_edit_new_title" msgid="266414118302574305">"SIP account details"</string>
+ <string name="domain_address_title" msgid="1968479941328225423">"Server"</string>
+ <string name="username_title" msgid="6770064611005663470">"Username"</string>
+ <string name="password_title" msgid="5289013731515564295">"Password"</string>
+ <string name="display_name_title" msgid="579241787583079773">"Display name"</string>
+ <string name="proxy_address_title" msgid="6890163365640631841">"Outbound proxy address"</string>
+ <string name="port_title" msgid="6693965912656593862">"Port number"</string>
+ <string name="transport_title" msgid="889155457465372527">"Transport type"</string>
+ <string name="send_keepalive_title" msgid="599627072150501159">"Send keep-alive"</string>
+ <string name="advanced_settings" msgid="6622996380747040711">"Optional settings"</string>
+ <string name="auth_username_title" msgid="8262491689004708265">"Authentication username"</string>
+ <string name="auth_username_summary" msgid="941160241371436473">"Username used for authentication"</string>
+ <string name="default_preference_summary_username" msgid="8404717434312826082">"<Not set>"</string>
+ <string name="default_preference_summary_password" msgid="4464464672997027904">"<Not set>"</string>
+ <string name="default_preference_summary_domain_address" msgid="4871971710197441673">"<Not set>"</string>
+ <string name="display_name_summary" msgid="7155076491675565407">"<Same as username>"</string>
+ <string name="optional_summary" msgid="2363105560396317624">"<Optional>"</string>
+ <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Touch to show all"</string>
+ <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Touch to hide all"</string>
+ <string name="all_empty_alert" msgid="4087734950375192387">"Enter details of new SIP account."</string>
+ <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> is required and can\'t be left blank."</string>
+ <string name="not_a_valid_port" msgid="7931422555587011830">"Port number should be within 1000 and 65534."</string>
+ <string name="no_internet_available" msgid="5523747991760017298">"To place a SIP call, check your Internet connection first."</string>
+ <string name="no_wifi_available" msgid="1955023904229673488">"You need to be connected to a Wi-Fi network for SIP calls (use the Wireless & Network settings)."</string>
+ <string name="no_voip" msgid="3038021971231952704">"SIP calling not supported"</string>
+ <string name="sip_system_decide" msgid="5577696249416700671">"Automatic"</string>
+ <string name="sip_always_send_keepalive" msgid="4773022409239823318">"Always send"</string>
+ <string name="sip_connection_service_label" msgid="6935325004265884453">"Built-in SIP calling"</string>
</resources>
diff --git a/sip/res/values-nb/strings.xml b/sip/res/values-nb/strings.xml
index 0ce35ed..28ade85 100644
--- a/sip/res/values-nb/strings.xml
+++ b/sip/res/values-nb/strings.xml
@@ -40,7 +40,7 @@
<string name="registration_status_registering" msgid="2677183977796278749">"Registrerer …"</string>
<string name="registration_status_still_trying" msgid="7648151061205513458">"Prøver fortsatt …"</string>
<string name="registration_status_not_receiving" msgid="7620333886153361090">"Mottar ikke anrop."</string>
- <string name="registration_status_no_data" msgid="2541999976218192413">"Kontoregistreringen stoppet på grunn av manglende Internett-tilkobling."</string>
+ <string name="registration_status_no_data" msgid="2541999976218192413">"Kontoregistreringen stoppet på grunn av manglende internettilkobling."</string>
<string name="registration_status_no_wifi_data" msgid="9154717387473039546">"Kontoregistreringen stoppet på grunn av manglende Wi-Fi-tilkobling."</string>
<string name="registration_status_not_running" msgid="514205414303796800">"Kontoregistreringen mislyktes."</string>
<string name="registration_status_done" msgid="3264961069247314253">"Mottar anrop."</string>
diff --git a/sip/res/values-ne/strings.xml b/sip/res/values-ne/strings.xml
index 9d6c680..179c3a8 100644
--- a/sip/res/values-ne/strings.xml
+++ b/sip/res/values-ne/strings.xml
@@ -68,7 +68,7 @@
<string name="optional_summary" msgid="2363105560396317624">"<वैकल्पिकgt;"</string>
<string name="advanced_settings_show" msgid="7838761602853998622">"▷ छोएर सबै देखाउनुहोस्"</string>
<string name="advanced_settings_hide" msgid="3480554978705290228">"▽ छोएर सबै लुकाउनुहोस्"</string>
- <string name="all_empty_alert" msgid="4087734950375192387">"नयाँ SIP खाताको विवरणहरू प्रविष्ट गर्नुहोस्।"</string>
+ <string name="all_empty_alert" msgid="4087734950375192387">"नयाँ SIP खाताको विवरणहरू प्रविष्टि गर्नुहोस्।"</string>
<string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> चाहिन्छ र खाली छोड्न सकिँदैन।"</string>
<string name="not_a_valid_port" msgid="7931422555587011830">"पोर्ट संख्या १००० र ६५५३४ को बीचमा हुनु पर्छ।"</string>
<string name="no_internet_available" msgid="5523747991760017298">"एक SIP कल गर्नका लागि पहिले तपाईंको इन्टरनेट जडान जाँच गर्नुहोस्।"</string>
diff --git a/sip/res/values-or/strings.xml b/sip/res/values-or/strings.xml
new file mode 100644
index 0000000..ac824a8
--- /dev/null
+++ b/sip/res/values-or/strings.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="sip_settings" msgid="3768482698061677257">"SIP ସେଟିଙ୍ଗ"</string>
+ <string name="sip_accounts" msgid="85559497282185405">"SIP ଆକାଉଣ୍ଟ"</string>
+ <string name="sip_accounts_title" msgid="2082527045326874519">"ଆକାଉଣ୍ଟ"</string>
+ <string name="sip_receive_calls" msgid="426678617137462173">"ଇନ୍କମିଙ୍ଗ କଲ୍ ଗ୍ରହଣ କରନ୍ତୁ"</string>
+ <string name="sip_receive_calls_summary" msgid="946161517528227523">"ଅଧିକ ବ୍ୟାଟେରୀ ଖର୍ଚ୍ଚ କରେ"</string>
+ <string name="sip_call_options_title" msgid="8421210494703869806">"SIP କଲିଙ୍ଗ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+ <string name="sip_call_options_wifi_only_title" msgid="5112579243580893890">"SIP କଲିଙ୍ଗ ବ୍ୟବହାର କରନ୍ତୁ (କେବଳ ୱାଇ-ଫାଇ)"</string>
+ <string name="sip_call_options_entry_1" msgid="7217659161237099900">"ଡାଟା ନେଟ୍ୱର୍କ ଉପଲବ୍ଧ ଥିବା ବେଳେ ସମସ୍ତ କଲ୍ ପାଇଁ"</string>
+ <string name="sip_call_options_entry_2" msgid="1815335903940609729">"କେବଳ SIP କଲ୍ ପାଇଁ"</string>
+ <string name="sip_call_options_wifi_only_entry_1" msgid="1358513095551847314">"ସମସ୍ତ କଲ୍ ପାଇଁ"</string>
+ <string name="add_sip_account" msgid="800843669753980091">"ଆକାଉଣ୍ଟ ଯୋଡ଼ନ୍ତୁ"</string>
+ <string name="remove_sip_account" msgid="1367664438506503690">"ଆକାଉଣ୍ଟ କାଢ଼ିଦିଅନ୍ତୁ"</string>
+ <string name="sip_account_list" msgid="5610858485304821480">"SIP ଆକାଉଣ୍ଟ"</string>
+ <string name="saving_account" msgid="5336529880235177448">"ଆକାଉଣ୍ଟକୁ ସେଭ୍ କରାଯାଉଛି…"</string>
+ <string name="removing_account" msgid="5537351356808985756">"ଆକାଉଣ୍ଟ କଢ଼ାଯାଉଛି…"</string>
+ <string name="sip_menu_save" msgid="7882219814563869225">"ସେଭ୍ କରନ୍ତୁ"</string>
+ <string name="sip_menu_discard" msgid="2350421645423888438">"ଖାରଜ କରନ୍ତୁ"</string>
+ <string name="alert_dialog_close" msgid="1326011828713435134">"ପ୍ରୋଫାଇଲ୍କୁ ବନ୍ଦ କରନ୍ତୁ"</string>
+ <string name="alert_dialog_ok" msgid="4752048404605388940">"ଠିକ୍ ଅଛି"</string>
+ <string name="close_profile" msgid="3122414058856309881">"ବନ୍ଦ କରନ୍ତୁ"</string>
+ <string name="registration_status_checking_status" msgid="6136793741862200337">"ଷ୍ଟାଟସ୍ ଯାଞ୍ଚ କରାଯାଉଛି…"</string>
+ <string name="registration_status_registering" msgid="2677183977796278749">"ପଞ୍ଜୀକରଣ ହେଉଛି…"</string>
+ <string name="registration_status_still_trying" msgid="7648151061205513458">"ତଥାପି ଚେଷ୍ଟାକରୁଛି…"</string>
+ <string name="registration_status_not_receiving" msgid="7620333886153361090">"କଲ୍ ଗ୍ରହଣ କରାଯାଉ ନାହିଁ।"</string>
+ <string name="registration_status_no_data" msgid="2541999976218192413">"ଆକାଉଣ୍ଟର ପଞ୍ଜୀକରଣ ବନ୍ଦ ହୋଇଗଲା କାରଣ ଇଣ୍ଟରନେଟ୍ କନେକ୍ସନ୍ ନାହିଁ।"</string>
+ <string name="registration_status_no_wifi_data" msgid="9154717387473039546">"ଆକାଉଣ୍ଟର ପଞ୍ଜୀକରଣ ବନ୍ଦ ହୋଇଗଲା କାରଣ ୱାଇ-ଫାଇ କନେକ୍ସନ୍ ନାହିଁ।"</string>
+ <string name="registration_status_not_running" msgid="514205414303796800">"ଆକାଉଣ୍ଟର ପଞ୍ଜୀକରଣ ବିଫଳ ହେଲା।"</string>
+ <string name="registration_status_done" msgid="3264961069247314253">"ଗ୍ରହଣ କରାଯାଉଥିବା କଲ୍।"</string>
+ <string name="registration_status_failed_try_later" msgid="2199970021756384317">"ଆକାଉଣ୍ଟର ପଞ୍ଜୀକରଣ ବିଫଳ ହେଲା:(<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); ପରେ ଚେଷ୍ଟା କରନ୍ତୁ"</string>
+ <string name="registration_status_invalid_credentials" msgid="8406872554323334182">"ଆକାଉଣ୍ଟର ପଞ୍ଜୀକରଣ ବିଫଳ ହେଲା: ଭୁଲ୍ ୟୁଜରନେମ୍ କିମ୍ବା ପାସ୍ୱର୍ଡ।"</string>
+ <string name="registration_status_server_unreachable" msgid="7710275557045148634">"ଆକାଉଣ୍ଟର ପଞ୍ଜୀକରଣ ବିଫଳ ହେଲା: ସର୍ଭର୍ର ନାମକୁ ଯାଞ୍ଚ କରନ୍ତୁ।"</string>
+ <string name="third_party_account_summary" msgid="9041060473615403041">"ଏହି ଆକାଉଣ୍ଟ ବର୍ତ୍ତମାନ <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> ଆପ୍ ଦ୍ଵାରା ବ୍ୟବହାର ହେଉଛି।"</string>
+ <string name="sip_edit_title" msgid="1967247832635750410">"SIP ଆକାଉଣ୍ଟ ବିବରଣି"</string>
+ <string name="sip_edit_new_title" msgid="266414118302574305">"SIP ଆକାଉଣ୍ଟ ବିବରଣି"</string>
+ <string name="domain_address_title" msgid="1968479941328225423">"ସର୍ଭର୍"</string>
+ <string name="username_title" msgid="6770064611005663470">"ୟୁଜରନେମ୍"</string>
+ <string name="password_title" msgid="5289013731515564295">"ପାସ୍ୱର୍ଡ"</string>
+ <string name="display_name_title" msgid="579241787583079773">"ନାମ ଦେଖାନ୍ତୁ"</string>
+ <string name="proxy_address_title" msgid="6890163365640631841">"ଆଉଟ୍ବାଉଣ୍ଡ ପ୍ରୋକ୍ସୀ ଠିକଣା"</string>
+ <string name="port_title" msgid="6693965912656593862">"ପୋର୍ଟ ସଂଖ୍ୟା"</string>
+ <string name="transport_title" msgid="889155457465372527">"ପରିବହନର ପ୍ରକାର"</string>
+ <string name="send_keepalive_title" msgid="599627072150501159">"କୀପ୍-ଏଲାଇଭ୍ ପଠାନ୍ତୁ"</string>
+ <string name="advanced_settings" msgid="6622996380747040711">"ବାଧ୍ୟତାମୂଳକ ନଥିବା ସେଟିଙ୍ଗ"</string>
+ <string name="auth_username_title" msgid="8262491689004708265">"ପ୍ରମାଣିକରଣ ୟୁଜରନେମ୍"</string>
+ <string name="auth_username_summary" msgid="941160241371436473">"ପ୍ରମାଣିକରଣ ପାଇଁ ବ୍ୟବହାର ହେଉଥିବା ୟୁଜରନେମ୍"</string>
+ <string name="default_preference_summary_username" msgid="8404717434312826082">"<ସେଟ୍ କରାଯାଇନାହିଁ>"</string>
+ <string name="default_preference_summary_password" msgid="4464464672997027904">"<ସେଟ୍ କରାଯାଇନାହିଁ>"</string>
+ <string name="default_preference_summary_domain_address" msgid="4871971710197441673">"<ସେଟ୍ କରାଯାଇନାହିଁ>"</string>
+ <string name="display_name_summary" msgid="7155076491675565407">"<ୟୁଜରନେମ୍ ଭଳି ସମାନ>"</string>
+ <string name="optional_summary" msgid="2363105560396317624">"<ବାଧ୍ୟ ନୁହେଁ>"</string>
+ <string name="advanced_settings_show" msgid="7838761602853998622">"▷ ସମସ୍ତକୁ ଦେଖାଇବା ପାଇଁ ଛୁଅନ୍ତୁ"</string>
+ <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ ସମସ୍ତକୁ ଲୁଚାଇବା ପାଇଁ ଛୁଅନ୍ତୁ"</string>
+ <string name="all_empty_alert" msgid="4087734950375192387">"ନୂଆ SIP ଆକାଉଣ୍ଟର ବିବରଣୀକୁ ପ୍ରବେଶ କରନ୍ତୁ"</string>
+ <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ଆବଶ୍ୟକ ଏବଂ ଏହାକୁ ଖାଲି ଛଡ଼ାଯାଇପାରିବ ନାହିଁ।"</string>
+ <string name="not_a_valid_port" msgid="7931422555587011830">"ପୋର୍ଟ ସଂଖ୍ୟା ନିଶ୍ଚିତରୂପେ 1000 ଓ 65534 ମଧ୍ୟରେ ରହିବା ଆବଶ୍ୟକ।"</string>
+ <string name="no_internet_available" msgid="5523747991760017298">"ଗୋଟିଏ SIP କଲ୍ କରିବା ପାଇଁ ପ୍ରଥମେ ନିଜର ଇଣ୍ଟରନେଟ୍ କନେକ୍ସନ୍କୁ ଯାଞ୍ଚ କରନ୍ତୁ।"</string>
+ <string name="no_wifi_available" msgid="1955023904229673488">"SIP କଲ୍ କରିବା ପାଇଁ ଆପଣଙ୍କୁ ଗୋଟିଏ ୱାଇ-ଫାଇ ନେଟ୍ୱର୍କ ସହିତ କନେକ୍ଟ ହେବାକୁ ପଡ଼ିବ(ତାରବିହୀନ ଓ ନେଟ୍ୱର୍କ ସେଟିଙ୍ଗକୁ ବ୍ୟବହାର କରନ୍ତୁ)।"</string>
+ <string name="no_voip" msgid="3038021971231952704">"SIP କଲିଙ୍ଗ ସପୋର୍ଟ କରୁନାହିଁ"</string>
+ <string name="sip_system_decide" msgid="5577696249416700671">"ସ୍ଵଚାଳିତ"</string>
+ <string name="sip_always_send_keepalive" msgid="4773022409239823318">"ସର୍ବଦା ପଠାନ୍ତୁ"</string>
+ <string name="sip_connection_service_label" msgid="6935325004265884453">"ବିଲ୍ଟ-ଇନ୍ SIP କଲିଙ୍ଗ"</string>
+</resources>
diff --git a/sip/src/com/android/services/telephony/sip/SipIncomingCallReceiver.java b/sip/src/com/android/services/telephony/sip/SipIncomingCallReceiver.java
index c754ae4..19f5882 100644
--- a/sip/src/com/android/services/telephony/sip/SipIncomingCallReceiver.java
+++ b/sip/src/com/android/services/telephony/sip/SipIncomingCallReceiver.java
@@ -25,6 +25,7 @@
import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
+import android.text.TextUtils;
import android.util.Log;
/**
@@ -38,6 +39,11 @@
public void onReceive(Context context, final Intent intent) {
String action = intent.getAction();
+ if (TextUtils.isEmpty(action)) {
+ log("SipIncomingCallReceiver called with no action");
+ return;
+ }
+
if (!isRunningInSystemUser()) {
if (VERBOSE) log("SipIncomingCallReceiver only run in system user, ignore " + action);
return;
diff --git a/sip/src/com/android/services/telephony/sip/SipSettings.java b/sip/src/com/android/services/telephony/sip/SipSettings.java
index 0d87798..ded16df 100644
--- a/sip/src/com/android/services/telephony/sip/SipSettings.java
+++ b/sip/src/com/android/services/telephony/sip/SipSettings.java
@@ -39,6 +39,8 @@
import android.view.Menu;
import android.view.MenuItem;
+import com.android.phone.R;
+
import java.io.IOException;
import java.util.Collections;
import java.util.Comparator;
@@ -46,8 +48,6 @@
import java.util.List;
import java.util.Map;
-import com.android.phone.R;
-
/**
* The PreferenceActivity class for managing sip profile preferences.
*/
@@ -410,7 +410,7 @@
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuItem addAccountMenuItem = menu.add(0, MENU_ADD_ACCOUNT, 0, R.string.add_sip_account);
- addAccountMenuItem.setIcon(R.drawable.ic_add_24dp);
+ addAccountMenuItem.setIcon(R.drawable.ic_add_gnu_grey);
addAccountMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
return true;
}
diff --git a/src/com/android/phone/AdvancedOptionsPreference.java b/src/com/android/phone/AdvancedOptionsPreference.java
deleted file mode 100644
index 1987395..0000000
--- a/src/com/android/phone/AdvancedOptionsPreference.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.phone;
-
-import android.content.Context;
-import android.preference.Preference;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.TextView;
-
-/**
- * Customized preference class representing the "Advanced" button that expands to fields that
- * are hidden by default.
- */
-public class AdvancedOptionsPreference extends Preference {
- public AdvancedOptionsPreference(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- @Override
- protected void onBindView(View view) {
- super.onBindView(view);
-
- setIcon(R.drawable.ic_expand_more);
- setTitle(R.string.advanced_options_title);
- TextView summary = view.findViewById(android.R.id.summary);
- summary.setMaxLines(1);
- }
-}
diff --git a/src/com/android/phone/CallBarringDeselectAllPreference.java b/src/com/android/phone/CallBarringDeselectAllPreference.java
index 153bc0c..e9310f8 100644
--- a/src/com/android/phone/CallBarringDeselectAllPreference.java
+++ b/src/com/android/phone/CallBarringDeselectAllPreference.java
@@ -18,7 +18,6 @@
import android.content.Context;
import android.os.Bundle;
-import android.telephony.ServiceState;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
@@ -52,9 +51,7 @@
protected void showDialog(Bundle state) {
// Finds out if the password field should be shown or not.
ImsPhone imsPhone = mPhone != null ? (ImsPhone) mPhone.getImsPhone() : null;
- mShowPassword = !(imsPhone != null
- && ((imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE)
- || imsPhone.isUtEnabled()));
+ mShowPassword = !(imsPhone != null && imsPhone.isUtEnabled());
// Selects dialog message depending on if the password field is shown or not.
setDialogMessage(getContext().getString(mShowPassword
diff --git a/src/com/android/phone/CallBarringEditPreference.java b/src/com/android/phone/CallBarringEditPreference.java
index 72b3ea5..edff1e3 100644
--- a/src/com/android/phone/CallBarringEditPreference.java
+++ b/src/com/android/phone/CallBarringEditPreference.java
@@ -26,7 +26,6 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
-import android.telephony.ServiceState;
import android.text.method.DigitsKeyListener;
import android.text.method.PasswordTransformationMethod;
import android.util.AttributeSet;
@@ -257,9 +256,7 @@
private void setShowPassword() {
ImsPhone imsPhone = mPhone != null ? (ImsPhone) mPhone.getImsPhone() : null;
- mShowPassword = !(imsPhone != null
- && ((imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE)
- || imsPhone.isUtEnabled()));
+ mShowPassword = !(imsPhone != null && imsPhone.isUtEnabled());
}
@Override
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index 0cb93aa..320fc24 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -19,6 +19,7 @@
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
+import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@@ -51,6 +52,7 @@
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
import com.android.phone.settings.PhoneAccountSettingsFragment;
+import com.android.phone.settings.SuppServicesUiUtil;
import com.android.phone.settings.VoicemailSettingsActivity;
import com.android.phone.settings.fdn.FdnSetting;
@@ -69,9 +71,7 @@
* is from the package com.android.contacts.
*
* For the "Mobile network settings" screen under the main Settings app,
- * See {@link MobileNetworkSettings}.
- *
- * @see com.android.phone.MobileNetworkSettings
+ * See {@link com.android.settings.network.telephony.MobileNetworkActivity}.
*/
public class CallFeaturesSetting extends PreferenceActivity
implements Preference.OnPreferenceChangeListener {
@@ -117,6 +117,37 @@
android.provider.Settings.Global.CALL_AUTO_RETRY,
mButtonAutoRetry.isChecked() ? 1 : 0);
return true;
+ } else if (preference == preferenceScreen.findPreference(
+ GsmUmtsCallOptions.CALL_FORWARDING_KEY)) {
+ return doSsOverUtPrecautions(preference);
+ } else if (preference == preferenceScreen.findPreference(
+ GsmUmtsCallOptions.CALL_BARRING_KEY)) {
+ return doSsOverUtPrecautions(preference);
+ }
+ return false;
+ }
+
+ private boolean doSsOverUtPrecautions(Preference preference) {
+ PersistableBundle b = null;
+ if (mSubscriptionInfoHelper.hasSubId()) {
+ b = PhoneGlobals.getInstance().getCarrierConfigForSubId(
+ mSubscriptionInfoHelper.getSubId());
+ } else {
+ b = PhoneGlobals.getInstance().getCarrierConfig();
+ }
+
+ String configKey;
+ if (preference.getKey().equals(GsmUmtsCallOptions.CALL_FORWARDING_KEY)) {
+ configKey = CarrierConfigManager.KEY_CALL_FORWARDING_OVER_UT_WARNING_BOOL;
+ } else {
+ configKey = CarrierConfigManager.KEY_CALL_BARRING_OVER_UT_WARNING_BOOL;
+ }
+ if (b != null && b.getBoolean(configKey)
+ && mPhone != null
+ && SuppServicesUiUtil.isSsOverUtPrecautions(this, mPhone)) {
+ SuppServicesUiUtil.showBlockingSuppServicesDialog(this, mPhone,
+ preference.getKey()).show();
+ return true;
}
return false;
}
@@ -142,8 +173,12 @@
new Dialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- startActivity(new Intent(mPhone.getContext(),
- com.android.phone.MobileNetworkSettings.class));
+ Intent intent = new Intent(Intent.ACTION_MAIN);
+ ComponentName mobileNetworkSettingsComponent = new ComponentName(
+ getString(R.string.mobile_network_settings_package),
+ getString(R.string.mobile_network_settings_class));
+ intent.setComponent(mobileNetworkSettingsComponent);
+ startActivity(intent);
}
};
builder.setMessage(getResources().getString(
@@ -352,6 +387,9 @@
.createForSubscriptionId(mPhone.getSubId());
PersistableBundle carrierConfig =
PhoneGlobals.getInstance().getCarrierConfigForSubId(mPhone.getSubId());
+ boolean useWfcHomeModeForRoaming = carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL,
+ false);
if (mImsMgr.isVtEnabledByPlatform() && mImsMgr.isVtProvisionedOnDevice()
&& (carrierConfig.getBoolean(
CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS)
@@ -366,7 +404,8 @@
prefSet.removePreference(mEnableVideoCalling);
}
- final PhoneAccountHandle simCallManager = mTelecomManager.getSimCallManager();
+ final PhoneAccountHandle simCallManager = mTelecomManager.getSimCallManagerForSubscription(
+ mPhone.getSubId());
if (simCallManager != null) {
Intent intent = PhoneAccountSettingsFragment.buildPhoneAccountConfigureIntent(
this, simCallManager);
@@ -394,7 +433,8 @@
int resId = com.android.internal.R.string.wifi_calling_off_summary;
if (mImsMgr.isWfcEnabledByUser()) {
boolean isRoaming = telephonyManager.isNetworkRoaming();
- int wfcMode = mImsMgr.getWfcMode(isRoaming);
+ // Also check carrier config for roaming mode
+ int wfcMode = mImsMgr.getWfcMode(isRoaming && !useWfcHomeModeForRoaming);
switch (wfcMode) {
case ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY:
resId = com.android.internal.R.string.wfc_mode_wifi_only_summary;
@@ -410,6 +450,10 @@
}
}
mButtonWifiCalling.setSummary(resId);
+ Intent intent = mButtonWifiCalling.getIntent();
+ if (intent != null) {
+ intent.putExtra(Settings.EXTRA_SUB_ID, mPhone.getSubId());
+ }
prefSet.addPreference(mButtonWifiCalling);
}
diff --git a/src/com/android/phone/CallForwardEditPreference.java b/src/com/android/phone/CallForwardEditPreference.java
index bdffb26..76f17b1 100644
--- a/src/com/android/phone/CallForwardEditPreference.java
+++ b/src/com/android/phone/CallForwardEditPreference.java
@@ -27,6 +27,8 @@
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.Phone;
+import java.util.HashMap;
+
public class CallForwardEditPreference extends EditPhoneNumberPreference {
private static final String LOG_TAG = "CallForwardEditPreference";
@@ -48,6 +50,14 @@
private TimeConsumingPreferenceListener mTcpListener;
// Should we replace CF queries containing an invalid number with "Voicemail"
private boolean mReplaceInvalidCFNumber = false;
+ private boolean mCallForwardByUssd = false;
+ private CarrierXmlParser mCarrierXmlParser;
+ private int mPreviousCommand = MyHandler.MESSAGE_GET_CF;
+ private Object mCommandException;
+ private CarrierXmlParser.SsEntry.SSAction mSsAction =
+ CarrierXmlParser.SsEntry.SSAction.UNKNOWN;
+ private int mAction;
+ private HashMap<String, String> mCfInfo;
public CallForwardEditPreference(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -70,10 +80,21 @@
}
void init(TimeConsumingPreferenceListener listener, Phone phone,
- boolean replaceInvalidCFNumber) {
+ boolean replaceInvalidCFNumber, boolean callForwardByUssd) {
mPhone = phone;
mTcpListener = listener;
mReplaceInvalidCFNumber = replaceInvalidCFNumber;
+ mCallForwardByUssd = callForwardByUssd;
+ Log.d(LOG_TAG,
+ "init :mReplaceInvalidCFNumber " + mReplaceInvalidCFNumber + ", mCallForwardByUssd "
+ + mCallForwardByUssd);
+ if (mCallForwardByUssd) {
+ mCfInfo = new HashMap<String, String>();
+ TelephonyManager telephonyManager = new TelephonyManager(getContext(),
+ phone.getSubId());
+ mCarrierXmlParser = new CarrierXmlParser(getContext(),
+ telephonyManager.getSimCarrierId());
+ }
}
void restoreCallForwardInfo(CallForwardInfo cf) {
@@ -132,17 +153,26 @@
// Display no forwarding number while we're waiting for
// confirmation
setSummaryOn("");
-
- // the interface of Phone.setCallForwardingOption has error:
- // should be action, reason...
- mPhone.setCallForwardingOption(action,
- reason,
- number,
- time,
- mHandler.obtainMessage(MyHandler.MESSAGE_SET_CF,
- action,
- MyHandler.MESSAGE_SET_CF));
-
+ if (!mCallForwardByUssd) {
+ // the interface of Phone.setCallForwardingOption has error:
+ // should be action, reason...
+ mPhone.setCallForwardingOption(action,
+ reason,
+ number,
+ time,
+ mHandler.obtainMessage(MyHandler.MESSAGE_SET_CF,
+ action,
+ MyHandler.MESSAGE_SET_CF));
+ } else {
+ if (action == CommandsInterface.CF_ACTION_REGISTRATION) {
+ mCfInfo.put(CarrierXmlParser.TAG_ENTRY_NUMBER, number);
+ mCfInfo.put(CarrierXmlParser.TAG_ENTRY_TIME, Integer.toString(time));
+ } else {
+ mCfInfo.clear();
+ }
+ mHandler.sendMessage(mHandler.obtainMessage(mHandler.MESSAGE_SET_CF_USSD,
+ action, MyHandler.MESSAGE_SET_CF));
+ }
if (mTcpListener != null) {
mTcpListener.onStarted(this, false);
}
@@ -185,11 +215,17 @@
* {@link TimeConsumingPreferenceListener#onError} if an error has occurred.
*/
void startCallForwardOptionsQuery() {
- mPhone.getCallForwardingOption(reason,
- mHandler.obtainMessage(MyHandler.MESSAGE_GET_CF,
- // unused in this case
- CommandsInterface.CF_ACTION_DISABLE,
- MyHandler.MESSAGE_GET_CF, null));
+ if (!mCallForwardByUssd) {
+ mPhone.getCallForwardingOption(reason,
+ mHandler.obtainMessage(MyHandler.MESSAGE_GET_CF,
+ // unused in this case
+ CommandsInterface.CF_ACTION_DISABLE,
+ MyHandler.MESSAGE_GET_CF, null));
+ } else {
+ mHandler.sendMessage(mHandler.obtainMessage(mHandler.MESSAGE_GET_CF_USSD,
+ // unused in this case
+ CommandsInterface.CF_ACTION_DISABLE, MyHandler.MESSAGE_GET_CF, null));
+ }
if (mTcpListener != null) {
mTcpListener.onStarted(this, true);
}
@@ -238,6 +274,47 @@
private class MyHandler extends Handler {
static final int MESSAGE_GET_CF = 0;
static final int MESSAGE_SET_CF = 1;
+ static final int MESSAGE_GET_CF_USSD = 2;
+ static final int MESSAGE_SET_CF_USSD = 3;
+
+ TelephonyManager.UssdResponseCallback mUssdCallback =
+ new TelephonyManager.UssdResponseCallback() {
+ @Override
+ public void onReceiveUssdResponse(final TelephonyManager telephonyManager,
+ String request, CharSequence response) {
+ if (mSsAction == CarrierXmlParser.SsEntry.SSAction.UNKNOWN) {
+ return;
+ }
+
+ HashMap<String, String> analysisResult = mCarrierXmlParser.getFeature(
+ CarrierXmlParser.FEATURE_CALL_FORWARDING)
+ .getResponseSet(mSsAction,
+ response.toString());
+
+ Throwable throwableException = null;
+ if (analysisResult.get(CarrierXmlParser.TAG_RESPONSE_STATUS_ERROR)
+ != null) {
+ throwableException = new CommandException(
+ CommandException.Error.GENERIC_FAILURE);
+ }
+
+ Object obj = null;
+ if (mSsAction == CarrierXmlParser.SsEntry.SSAction.QUERY) {
+ obj = makeCallForwardInfo(analysisResult);
+ }
+
+ sendCfMessage(obj, throwableException);
+ }
+
+ @Override
+ public void onReceiveUssdResponseFailed(final TelephonyManager telephonyManager,
+ String request, int failureCode) {
+ Log.d(LOG_TAG, "receive the ussd result failed");
+ Throwable throwableException = new CommandException(
+ CommandException.Error.GENERIC_FAILURE);
+ sendCfMessage(null, throwableException);
+ }
+ };
@Override
public void handleMessage(Message msg) {
@@ -248,6 +325,12 @@
case MESSAGE_SET_CF:
handleSetCFResponse(msg);
break;
+ case MESSAGE_GET_CF_USSD:
+ prepareUssdCommand(msg, CarrierXmlParser.SsEntry.SSAction.QUERY);
+ break;
+ case MESSAGE_SET_CF_USSD:
+ prepareUssdCommand(msg, CarrierXmlParser.SsEntry.SSAction.UNKNOWN);
+ break;
}
}
@@ -334,14 +417,116 @@
private void handleSetCFResponse(Message msg) {
AsyncResult ar = (AsyncResult) msg.obj;
-
if (ar.exception != null) {
Log.d(LOG_TAG, "handleSetCFResponse: ar.exception=" + ar.exception);
// setEnabled(false);
}
Log.d(LOG_TAG, "handleSetCFResponse: re get");
- mPhone.getCallForwardingOption(reason,
- obtainMessage(MESSAGE_GET_CF, msg.arg1, MESSAGE_SET_CF, ar.exception));
+ if (!mCallForwardByUssd) {
+ mPhone.getCallForwardingOption(reason,
+ obtainMessage(MESSAGE_GET_CF, msg.arg1, MESSAGE_SET_CF, ar.exception));
+ } else {
+ mHandler.sendMessage(mHandler.obtainMessage(mHandler.MESSAGE_GET_CF_USSD,
+ msg.arg1, MyHandler.MESSAGE_SET_CF, ar.exception));
+ }
+ }
+
+ private void prepareUssdCommand(Message msg,
+ CarrierXmlParser.SsEntry.SSAction inputSsAction) {
+ mAction = msg.arg1;
+ mPreviousCommand = msg.arg2;
+ mCommandException = msg.obj;
+ mSsAction = inputSsAction;
+
+ if (mSsAction != CarrierXmlParser.SsEntry.SSAction.QUERY) {
+ if (mAction == CommandsInterface.CF_ACTION_REGISTRATION) {
+ mSsAction = CarrierXmlParser.SsEntry.SSAction.UPDATE_ACTIVATE;
+ } else {
+ mSsAction = CarrierXmlParser.SsEntry.SSAction.UPDATE_DEACTIVATE;
+ }
+ }
+
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ sendUssdCommand(mUssdCallback, mSsAction, mCfInfo.isEmpty() ? null : mCfInfo);
+ }
+ }).start();
+ }
+
+ private void sendUssdCommand(TelephonyManager.UssdResponseCallback inputCallback,
+ CarrierXmlParser.SsEntry.SSAction inputAction,
+ HashMap<String, String> inputCfInfo) {
+ String newUssdCommand = mCarrierXmlParser.getFeature(
+ CarrierXmlParser.FEATURE_CALL_FORWARDING)
+ .makeCommand(inputAction, inputCfInfo);
+ TelephonyManager telephonyManager =
+ (TelephonyManager) getContext().getSystemService(Context.TELEPHONY_SERVICE);
+ telephonyManager.sendUssdRequest(newUssdCommand, inputCallback, mHandler);
+ }
+
+ private Message makeGetCfMessage(int inputMsgWhat, int inputMsgArg2, Object inputMsgObj) {
+ return mHandler.obtainMessage(inputMsgWhat,
+ mAction,
+ inputMsgArg2,
+ inputMsgObj);
+ }
+
+ private Message makeSetCfMessage(int inputMsgWhat, int inputMsgArg2) {
+ return mHandler.obtainMessage(inputMsgWhat,
+ mAction,
+ inputMsgArg2);
+ }
+
+ private void sendCfMessage(Object inputArObj, Throwable inputThrowableException) {
+ Message message;
+ if (mSsAction == CarrierXmlParser.SsEntry.SSAction.UNKNOWN) {
+ return;
+ }
+ if (mSsAction == CarrierXmlParser.SsEntry.SSAction.QUERY) {
+ message = makeGetCfMessage(MyHandler.MESSAGE_GET_CF, mPreviousCommand,
+ mCommandException);
+ } else {
+ message = makeSetCfMessage(MyHandler.MESSAGE_SET_CF, MyHandler.MESSAGE_SET_CF);
+ }
+ AsyncResult.forMessage(message, inputArObj, inputThrowableException);
+ message.sendToTarget();
+ }
+
+ private CallForwardInfo[] makeCallForwardInfo(HashMap<String, String> inputInfo) {
+ int tmpStatus = 0;
+ String tmpNumberStr = "";
+ int tmpTime = 0;
+ if (inputInfo != null && inputInfo.size() != 0) {
+ String tmpStatusStr = inputInfo.get(CarrierXmlParser.TAG_RESPONSE_STATUS);
+
+ String tmpTimeStr = inputInfo.get(CarrierXmlParser.TAG_RESPONSE_TIME);
+ if (!TextUtils.isEmpty(tmpStatusStr)) {
+ if (tmpStatusStr.equals(
+ CarrierXmlParser.TAG_COMMAND_RESULT_DEFINITION_ACTIVATE)) {
+ tmpStatus = 1;
+ } else if (tmpStatusStr.equals(
+ CarrierXmlParser.TAG_COMMAND_RESULT_DEFINITION_DEACTIVATE)
+ || tmpStatusStr.equals(
+ CarrierXmlParser.TAG_COMMAND_RESULT_DEFINITION_UNREGISTER)) {
+ tmpStatus = 0;
+ }
+ }
+
+ tmpNumberStr = inputInfo.get(CarrierXmlParser.TAG_RESPONSE_NUMBER);
+ if (!TextUtils.isEmpty(tmpTimeStr)) {
+ tmpTime = Integer.valueOf(inputInfo.get(CarrierXmlParser.TAG_RESPONSE_TIME));
+ }
+ }
+
+ CallForwardInfo[] newCallForwardInfo = new CallForwardInfo[1];
+ newCallForwardInfo[0] = new CallForwardInfo();
+ newCallForwardInfo[0].status = tmpStatus;
+ newCallForwardInfo[0].reason = reason;
+ newCallForwardInfo[0].serviceClass = mServiceClass;
+ newCallForwardInfo[0].number = tmpNumberStr;
+ newCallForwardInfo[0].timeSeconds = tmpTime;
+ return newCallForwardInfo;
}
}
diff --git a/src/com/android/phone/CallNotifier.java b/src/com/android/phone/CallNotifier.java
index 3796e64..dab04f0 100644
--- a/src/com/android/phone/CallNotifier.java
+++ b/src/com/android/phone/CallNotifier.java
@@ -392,7 +392,7 @@
try {
int stream;
if (mBluetoothHeadset != null) {
- stream = mBluetoothHeadset.isAudioOn() ? AudioManager.STREAM_BLUETOOTH_SCO:
+ stream = isBluetoothAudioOn() ? AudioManager.STREAM_BLUETOOTH_SCO :
AudioManager.STREAM_VOICE_CALL;
} else {
stream = AudioManager.STREAM_VOICE_CALL;
@@ -479,6 +479,11 @@
}
}
+ // Returns whether there are any connected Bluetooth audio devices
+ private boolean isBluetoothAudioOn() {
+ return mBluetoothHeadset.getConnectedDevices().size() > 0;
+ }
+
/**
* Displays a notification when the phone receives a DisplayInfo record.
*/
@@ -610,8 +615,8 @@
for (int i = 0; i < subInfos.size(); i++) {
int subId = subInfos.get(i).getSubscriptionId();
if (!mPhoneStateListeners.containsKey(subId)) {
- CallNotifierPhoneStateListener listener = new CallNotifierPhoneStateListener(subId);
- mTelephonyManager.listen(listener,
+ CallNotifierPhoneStateListener listener = new CallNotifierPhoneStateListener();
+ mTelephonyManager.createForSubscriptionId(subId).listen(listener,
PhoneStateListener.LISTEN_MESSAGE_WAITING_INDICATOR
| PhoneStateListener.LISTEN_CALL_FORWARDING_INDICATOR);
mPhoneStateListeners.put(subId, listener);
@@ -762,8 +767,8 @@
};
private class CallNotifierPhoneStateListener extends PhoneStateListener {
- public CallNotifierPhoneStateListener(int subId) {
- super(subId);
+ public CallNotifierPhoneStateListener() {
+ super();
}
@Override
diff --git a/src/com/android/phone/CarrierConfigLoader.java b/src/com/android/phone/CarrierConfigLoader.java
index 137d3d1..d1eb3dc 100644
--- a/src/com/android/phone/CarrierConfigLoader.java
+++ b/src/com/android/phone/CarrierConfigLoader.java
@@ -20,7 +20,6 @@
import static android.service.carrier.CarrierService.ICarrierServiceWrapper.RESULT_ERROR;
import android.annotation.NonNull;
-import android.app.ActivityManager;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
@@ -40,7 +39,6 @@
import android.os.RemoteException;
import android.os.ResultReceiver;
import android.os.ServiceManager;
-import android.os.UserHandle;
import android.preference.PreferenceManager;
import android.service.carrier.CarrierIdentifier;
import android.service.carrier.CarrierService;
@@ -48,13 +46,16 @@
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
+import android.util.LocalLog;
import android.util.Log;
import com.android.internal.telephony.ICarrierConfigLoader;
import com.android.internal.telephony.IccCardConstants;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
+import com.android.internal.telephony.SubscriptionInfoUpdater;
import com.android.internal.telephony.TelephonyPermissions;
+import com.android.internal.util.ArrayUtils;
import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.IndentingPrintWriter;
@@ -99,11 +100,15 @@
private CarrierServiceConnection[] mServiceConnection;
// Whether we have sent config change bcast for each phone id.
private boolean[] mHasSentConfigChange;
+ // SubscriptionInfoUpdater
+ private final SubscriptionInfoUpdater mSubscriptionInfoUpdater;
// Broadcast receiver for Boot intents, register intent filter in construtor.
private final BroadcastReceiver mBootReceiver = new ConfigLoaderBroadcastReceiver();
// Broadcast receiver for SIM and pkg intents, register intent filter in constructor.
private final BroadcastReceiver mPackageReceiver = new ConfigLoaderBroadcastReceiver();
+ private final LocalLog mCarrierConfigLoadingLog = new LocalLog(50);
+
// Message codes; see mHandler below.
// Request from SubscriptionInfoUpdater when SIM becomes absent or error.
@@ -134,6 +139,8 @@
private static final int EVENT_FETCH_DEFAULT_TIMEOUT = 14;
// Fetching config timed out from a carrier app.
private static final int EVENT_FETCH_CARRIER_TIMEOUT = 15;
+ // SubscriptionInfoUpdater has finished updating the sub for the carrier config.
+ private static final int EVENT_SUBSCRIPTION_INFO_UPDATED = 16;
private static final int BIND_TIMEOUT_MILLIS = 30000;
@@ -166,7 +173,7 @@
@Override
public void handleMessage(Message msg) {
final int phoneId = msg.arg1;
- log("mHandler: " + msg.what + " phoneId: " + phoneId);
+ logWithLocalLog("mHandler: " + msg.what + " phoneId: " + phoneId);
switch (msg.what) {
case EVENT_CLEAR_CONFIG:
{
@@ -178,9 +185,6 @@
}
}
- if (mConfigFromDefaultApp[phoneId] == null
- && mConfigFromCarrierApp[phoneId] == null) break;
-
mConfigFromDefaultApp[phoneId] = null;
mConfigFromCarrierApp[phoneId] = null;
mServiceConnection[phoneId] = null;
@@ -190,7 +194,7 @@
case EVENT_SYSTEM_UNLOCKED:
{
- for (int i = 0; i < TelephonyManager.from(mContext).getPhoneCount(); ++i) {
+ for (int i = 0; i < TelephonyManager.from(mContext).getMaxPhoneCount(); ++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.
@@ -207,7 +211,7 @@
// Only update if there are cached config removed to avoid updating config for
// unrelated packages.
if (clearCachedConfigForPackage(carrierPackageName)) {
- int numPhones = TelephonyManager.from(mContext).getPhoneCount();
+ int numPhones = TelephonyManager.from(mContext).getMaxPhoneCount();
for (int i = 0; i < numPhones; ++i) {
updateConfigForPhoneId(i);
}
@@ -240,9 +244,11 @@
BIND_TIMEOUT_MILLIS);
} else {
// Send broadcast if bind fails.
- broadcastConfigChangedIntent(phoneId);
+ notifySubscriptionInfoUpdater(phoneId);
// TODO: We *must* call unbindService even if bindService returns false.
// (And possibly if SecurityException was thrown.)
+ loge("binding to default app: "
+ + mPlatformCarrierConfigPackage + " fails");
}
}
break;
@@ -273,7 +279,7 @@
if (resultCode == RESULT_ERROR || resultData == null) {
// On error, abort config fetching.
loge("Failed to get carrier config");
- broadcastConfigChangedIntent(phoneId);
+ notifySubscriptionInfoUpdater(phoneId);
return;
}
PersistableBundle config =
@@ -291,8 +297,12 @@
ICarrierService carrierService =
ICarrierService.Stub.asInterface(conn.service);
carrierService.getCarrierConfig(carrierId, resultReceiver);
+ logWithLocalLog("fetch config for default app: "
+ + mPlatformCarrierConfigPackage
+ + " carrierid: " + carrierId.toString());
} catch (RemoteException e) {
- loge("Failed to get carrier config: " + e.toString());
+ loge("Failed to get carrier config from default app: " +
+ mPlatformCarrierConfigPackage + " err: " + e.toString());
mContext.unbindService(conn);
break; // So we don't set a timeout.
}
@@ -305,11 +315,18 @@
case EVENT_BIND_DEFAULT_TIMEOUT:
case EVENT_FETCH_DEFAULT_TIMEOUT:
{
- // If a ResponseReceiver callback is in the queue when this happens, we will
- // unbind twice and throw an exception.
- mContext.unbindService(mServiceConnection[phoneId]);
+ loge("bind/fetch time out from " + mPlatformCarrierConfigPackage);
removeMessages(EVENT_FETCH_DEFAULT_TIMEOUT);
- broadcastConfigChangedIntent(phoneId);
+ // If we attempted to bind to the app, but the service connection is null due to
+ // the race condition that clear config event happens before bind/fetch complete
+ // then config was cleared while we were waiting and we should not continue.
+ if (mServiceConnection[phoneId] != null) {
+ // If a ResponseReceiver callback is in the queue when this happens, we will
+ // unbind twice and throw an exception.
+ mContext.unbindService(mServiceConnection[phoneId]);
+ broadcastConfigChangedIntent(phoneId);
+ }
+ notifySubscriptionInfoUpdater(phoneId);
break;
}
@@ -324,9 +341,9 @@
final String carrierPackageName = getCarrierPackageForPhoneId(phoneId);
if (carrierPackageName != null) {
log("Found carrier config app: " + carrierPackageName);
- sendMessage(obtainMessage(EVENT_DO_FETCH_CARRIER, phoneId));
+ sendMessage(obtainMessage(EVENT_DO_FETCH_CARRIER, phoneId, -1));
} else {
- broadcastConfigChangedIntent(phoneId);
+ notifySubscriptionInfoUpdater(phoneId);
}
break;
}
@@ -359,6 +376,8 @@
} else {
// Send broadcast if bind fails.
broadcastConfigChangedIntent(phoneId);
+ loge("bind to carrier app: " + carrierPackageName + " fails");
+ notifySubscriptionInfoUpdater(phoneId);
}
}
break;
@@ -388,8 +407,10 @@
removeMessages(EVENT_FETCH_CARRIER_TIMEOUT);
if (resultCode == RESULT_ERROR || resultData == null) {
// On error, abort config fetching.
- loge("Failed to get carrier config");
+ loge("Failed to get carrier config from carrier app: "
+ + getCarrierPackageForPhoneId(phoneId));
broadcastConfigChangedIntent(phoneId);
+ notifySubscriptionInfoUpdater(phoneId);
return;
}
PersistableBundle config =
@@ -407,6 +428,9 @@
ICarrierService carrierService =
ICarrierService.Stub.asInterface(conn.service);
carrierService.getCarrierConfig(carrierId, resultReceiver);
+ logWithLocalLog("fetch config for carrier app: "
+ + getCarrierPackageForPhoneId(phoneId)
+ + " carrierid: " + carrierId.toString());
} catch (RemoteException e) {
loge("Failed to get carrier config: " + e.toString());
mContext.unbindService(conn);
@@ -421,14 +445,20 @@
case EVENT_BIND_CARRIER_TIMEOUT:
case EVENT_FETCH_CARRIER_TIMEOUT:
{
- // If a ResponseReceiver callback is in the queue when this happens, we will
- // unbind twice and throw an exception.
- mContext.unbindService(mServiceConnection[phoneId]);
+ loge("bind/fetch from carrier app timeout");
removeMessages(EVENT_FETCH_CARRIER_TIMEOUT);
- broadcastConfigChangedIntent(phoneId);
+ // If we attempted to bind to the app, but the service connection is null due to
+ // the race condition that clear config event happens before bind/fetch complete
+ // then config was cleared while we were waiting and we should not continue.
+ if (mServiceConnection[phoneId] != null) {
+ // If a ResponseReceiver callback is in the queue when this happens, we will
+ // unbind twice and throw an exception.
+ mContext.unbindService(mServiceConnection[phoneId]);
+ broadcastConfigChangedIntent(phoneId);
+ }
+ notifySubscriptionInfoUpdater(phoneId);
break;
}
-
case EVENT_FETCH_CARRIER_DONE:
{
// If we attempted to bind to the app, but the service connection is null, then
@@ -437,7 +467,7 @@
&& mServiceConnection[phoneId] == null) {
break;
}
- broadcastConfigChangedIntent(phoneId);
+ notifySubscriptionInfoUpdater(phoneId);
break;
}
@@ -460,6 +490,10 @@
}
break;
}
+
+ case EVENT_SUBSCRIPTION_INFO_UPDATED:
+ broadcastConfigChangedIntent(phoneId);
+ break;
}
}
}
@@ -487,9 +521,9 @@
pkgFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
pkgFilter.addAction(Intent.ACTION_PACKAGE_REPLACED);
pkgFilter.addDataScheme("package");
- context.registerReceiverAsUser(mPackageReceiver, UserHandle.ALL, pkgFilter, null, null);
+ context.registerReceiver(mPackageReceiver, pkgFilter);
- int numPhones = TelephonyManager.from(context).getPhoneCount();
+ int numPhones = TelephonyManager.from(context).getMaxPhoneCount();
mConfigFromDefaultApp = new PersistableBundle[numPhones];
mConfigFromCarrierApp = new PersistableBundle[numPhones];
mOverrideConfigs = new PersistableBundle[numPhones];
@@ -498,6 +532,7 @@
// Make this service available through ServiceManager.
ServiceManager.addService(Context.CARRIER_CONFIG_SERVICE, this);
log("CarrierConfigLoader has started");
+ mSubscriptionInfoUpdater = PhoneFactory.getSubscriptionInfoUpdater();
mHandler.sendEmptyMessage(EVENT_CHECK_SYSTEM_UPDATE);
}
@@ -518,6 +553,24 @@
}
}
+ private void notifySubscriptionInfoUpdater(int phoneId) {
+ String configPackagename;
+ PersistableBundle configToSend;
+ int carrierId = getSpecificCarrierIdForPhoneId(phoneId);
+ // Prefer the carrier privileged carrier app, but if there is not one, use the platform
+ // default carrier app.
+ if (mConfigFromCarrierApp[phoneId] != null) {
+ configPackagename = getCarrierPackageForPhoneId(phoneId);
+ configToSend = mConfigFromCarrierApp[phoneId];
+ } else {
+ configPackagename = mPlatformCarrierConfigPackage;
+ configToSend = mConfigFromDefaultApp[phoneId];
+ }
+ mSubscriptionInfoUpdater.updateSubscriptionByCarrierConfigAndNotifyComplete(
+ phoneId, configPackagename, configToSend,
+ mHandler.obtainMessage(EVENT_SUBSCRIPTION_INFO_UPDATED, phoneId, -1));
+ }
+
private void broadcastConfigChangedIntent(int phoneId) {
broadcastConfigChangedIntent(phoneId, true);
}
@@ -525,25 +578,34 @@
private void broadcastConfigChangedIntent(int phoneId, boolean addSubIdExtra) {
Intent intent = new Intent(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT |
- Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
- // Include subId/carrier id extra only if SIM records are loaded
- TelephonyManager telephonyManager = TelephonyManager.from(mContext);
- int simApplicationState = telephonyManager.getSimApplicationState();
- if (addSubIdExtra && (simApplicationState != TelephonyManager.SIM_STATE_UNKNOWN
- && simApplicationState != TelephonyManager.SIM_STATE_NOT_READY)) {
- SubscriptionManager.putPhoneIdAndSubIdExtra(intent, phoneId);
- intent.putExtra(TelephonyManager.EXTRA_SPECIFIC_CARRIER_ID,
- getSpecificCarrierIdForPhoneId(phoneId));
- intent.putExtra(TelephonyManager.EXTRA_CARRIER_ID, getCarrierIdForPhoneId(phoneId));
+ Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND |
+ Intent.FLAG_RECEIVER_FOREGROUND);
+ if (addSubIdExtra) {
+ int simApplicationState = TelephonyManager.SIM_STATE_UNKNOWN;
+ int[] subIds = SubscriptionManager.getSubId(phoneId);
+ if (!ArrayUtils.isEmpty(subIds)) {
+ TelephonyManager telMgr = TelephonyManager.from(mContext)
+ .createForSubscriptionId(subIds[0]);
+ simApplicationState = telMgr.getSimApplicationState();
+ }
+ // Include subId/carrier id extra only if SIM records are loaded
+ if (simApplicationState != TelephonyManager.SIM_STATE_UNKNOWN
+ && simApplicationState != TelephonyManager.SIM_STATE_NOT_READY) {
+ SubscriptionManager.putPhoneIdAndSubIdExtra(intent, phoneId);
+ intent.putExtra(TelephonyManager.EXTRA_SPECIFIC_CARRIER_ID,
+ getSpecificCarrierIdForPhoneId(phoneId));
+ intent.putExtra(TelephonyManager.EXTRA_CARRIER_ID, getCarrierIdForPhoneId(phoneId));
+ }
}
intent.putExtra(CarrierConfigManager.EXTRA_SLOT_INDEX, phoneId);
- ActivityManager.broadcastStickyIntent(intent, UserHandle.USER_ALL);
+ log("Broadcast CARRIER_CONFIG_CHANGED for phone " + phoneId);
+ mContext.sendBroadcast(intent);
mHasSentConfigChange[phoneId] = true;
}
/** Binds to the default or carrier config app. */
private boolean bindToConfigPackage(String pkgName, int phoneId, int eventId) {
- log("Binding to " + pkgName + " for phone " + phoneId);
+ logWithLocalLog("Binding to " + pkgName + " for phone " + phoneId);
Intent carrierService = new Intent(CarrierService.CARRIER_SERVICE_INTERFACE);
carrierService.setPackage(pkgName);
mServiceConnection[phoneId] = new CarrierServiceConnection(phoneId, eventId);
@@ -654,7 +716,7 @@
private void saveConfigToXml(String packageName, int phoneId, PersistableBundle config) {
if (SubscriptionManager.getSimStateForSlotIndex(phoneId)
!= TelephonyManager.SIM_STATE_LOADED) {
- log("Skip save config because SIM records are not loaded.");
+ loge("Skip save config because SIM records are not loaded.");
return;
}
@@ -679,6 +741,8 @@
return;
}
+ logWithLocalLog("save config to xml, packagename: " + packageName + " phoneId: " + phoneId);
+
FileOutputStream outFile = null;
try {
outFile = new FileOutputStream(
@@ -729,7 +793,7 @@
}
if (SubscriptionManager.getSimStateForSlotIndex(phoneId)
!= TelephonyManager.SIM_STATE_LOADED) {
- log("Skip restoring config because SIM records are not yet loaded.");
+ loge("Skip restoring config because SIM records are not yet loaded.");
return null;
}
@@ -755,7 +819,7 @@
if (event == XmlPullParser.START_TAG && TAG_VERSION.equals(parser.getName())) {
String savedVersion = parser.nextText();
if (!version.equals(savedVersion)) {
- log("Saved version mismatch: " + version + " vs " + savedVersion);
+ loge("Saved version mismatch: " + version + " vs " + savedVersion);
break;
}
}
@@ -877,6 +941,7 @@
public void overrideConfig(int subscriptionId, PersistableBundle overrides) {
mContext.enforceCallingOrSelfPermission(
android.Manifest.permission.MODIFY_PHONE_STATE, null);
+ //TODO: Also check for SHELL UID to restrict this method to testing only (b/131326259)
int phoneId = SubscriptionManager.getPhoneId(subscriptionId);
if (!SubscriptionManager.isValidPhoneId(phoneId)) {
log("Ignore invalid phoneId: " + phoneId + " for subId: " + subscriptionId);
@@ -885,15 +950,13 @@
if (overrides == null) {
mOverrideConfigs[phoneId] = new PersistableBundle();
- return;
- }
-
- if (mOverrideConfigs[phoneId] == null) {
+ } else if (mOverrideConfigs[phoneId] == null) {
mOverrideConfigs[phoneId] = overrides;
} else {
mOverrideConfigs[phoneId].putAll(overrides);
}
- broadcastConfigChangedIntent(phoneId);
+
+ notifySubscriptionInfoUpdater(phoneId);
}
@Override
@@ -903,21 +966,17 @@
log("Ignore invalid phoneId: " + phoneId + " for subId: " + subId);
return;
}
- String callingPackageName = mContext.getPackageManager().getNameForUid(
- Binder.getCallingUid());
- // TODO: Check that the calling packages is privileged for subId specifically.
- int privilegeStatus = TelephonyManager.from(mContext).checkCarrierPrivilegesForPackage(
- callingPackageName);
- // Requires the calling app to be either a carrier privileged app or
+
+ // Requires the calling app to be either a carrier privileged app for this subId or
// system privileged app with MODIFY_PHONE_STATE permission.
- if (privilegeStatus != TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.MODIFY_PHONE_STATE,
- "Require carrier privileges or MODIFY_PHONE_STATE permission.");
- }
+ TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(mContext, subId,
+ "Require carrier privileges or MODIFY_PHONE_STATE permission.");
// This method should block until deleting has completed, so that an error which prevents us
// from clearing the cache is passed back to the carrier app. With the files successfully
// deleted, this can return and we will eventually bind to the carrier app.
+ String callingPackageName = mContext.getPackageManager().getNameForUid(
+ Binder.getCallingUid());
clearCachedConfigForPackage(callingPackageName);
updateConfigForPhoneId(phoneId);
}
@@ -926,7 +985,7 @@
public void updateConfigForPhoneId(int phoneId, String simState) {
mContext.enforceCallingOrSelfPermission(
android.Manifest.permission.MODIFY_PHONE_STATE, null);
- log("update config for phoneId: " + phoneId + " simState: " + simState);
+ logWithLocalLog("update config for phoneId: " + phoneId + " simState: " + simState);
if (!SubscriptionManager.isValidPhoneId(phoneId)) {
return;
}
@@ -973,6 +1032,9 @@
pw.println("");
printConfig(mOverrideConfigs[i], pw, "mOverrideConfigs");
}
+
+ pw.println("CarrierConfigLoadingLog=");
+ mCarrierConfigLoadingLog.dump(fd, pw, args);
}
private void printConfig(PersistableBundle configApp, PrintWriter pw, String name) {
@@ -1052,11 +1114,17 @@
}
}
- private static void log(String msg) {
+ private void log(String msg) {
Log.d(LOG_TAG, msg);
}
- private static void loge(String msg) {
+ private void logWithLocalLog(String msg) {
+ Log.d(LOG_TAG, msg);
+ mCarrierConfigLoadingLog.log(msg);
+ }
+
+ private void loge(String msg) {
Log.e(LOG_TAG, msg);
+ mCarrierConfigLoadingLog.log(msg);
}
}
diff --git a/src/com/android/phone/CarrierXmlParser.java b/src/com/android/phone/CarrierXmlParser.java
new file mode 100644
index 0000000..18602c9
--- /dev/null
+++ b/src/com/android/phone/CarrierXmlParser.java
@@ -0,0 +1,681 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone;
+
+import android.content.Context;
+import android.content.res.XmlResourceParser;
+import android.support.annotation.VisibleForTesting;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import android.util.Log;
+
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Vector;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * CarrierXmlParser is a xml parser. It parses the carrier's ussd format from carrier_ss_string.xml.
+ * The carrier_ss_string.xml defines carrier's ussd structure and meaning in res/xml folder.
+ * Some carrier has specific ussd structure ,developer can add new xml and xml is named
+ * carrier_ss_string_carrierId.xml. The carrierId is a number and is defined in
+ * <a href="https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/master/assets/carrier_list.textpb">here</a>
+ * For example: carrier_ss_string_850.xml
+ * <p>
+ * How do use CarrierXmlParser?
+ * For example:
+ * @see CallForwardEditPreference
+ * TelephonyManager telephonyManager = new TelephonyManager(getContext(),phone.getSubId());
+ * CarrierXmlParser = new CarrierXmlParser(getContext(), telephonyManager.getSimCarrierId());
+ *
+ * //make a ussd command
+ * String newUssdCommand = mCarrierXmlParser.getFeature(
+ * CarrierXmlParser.FEATURE_CALL_FORWARDING).makeCommand(inputAction, inputCfInfo);
+ * //analyze ussd result
+ * HashMap<String, String> analysisResult = mCarrierXmlParser.getFeature(
+ * CarrierXmlParser.FEATURE_CALL_FORWARDING)
+ * .getResponseSet(mSsAction, response.toString());
+ */
+public class CarrierXmlParser {
+ public static final String LOG_TAG = "CarrierXmlParser";
+ private static final boolean DEBUG = true;
+
+ private static final String STAR_SIGN = "*";
+ private static final String POUND_SIGN = "#";
+
+ private static final String TAG_SIGN = "tag_";
+
+ // To define feature's item name in xml
+ public static final String FEATURE_CALL_FORWARDING = "callforwarding";
+ public static final String FEATURE_CALLER_ID = "callerid";
+
+ // COMMAND_NAME is xml's command name.
+ public static final String TAG_COMMAND_NAME_QUERY = "query";
+ public static final String TAG_COMMAND_NAME_ACTIVATE = "activate";
+ public static final String TAG_COMMAND_NAME_DEACTIVATE = "deactivate";
+
+ // To define string level in xml.
+ // level 1
+ private static final String TAG_FEATURE = "feature";
+ private static final String TAG_REGULAR_PARSER = "regular_parser";
+ // level 2
+ private static final String TAG_COMMAND = "command";
+ // level 3
+ private static final String TAG_SERVICE_CODE = "service_code";
+ private static final String TAG_ACTION_CODE = "action_code";
+ private static final String TAG_PARAMETER = "parameter";
+ private static final String TAG_RESPONSE_FORMAT = "response_format";
+ private static final String TAG_COMMAND_RESULT = "command_result";
+ // level 4
+ private static final String TAG_ENTRY = "entry";
+
+ private static final String ATTR_NAME = "name";
+ private static final String ATTR_PARAMETER_NUM = "number";
+ private static final String ATTR_POSITION = "position";
+ private static final String ATTR_RESULT_KEY = "key";
+ private static final String ATTR_DEFINITION_KEY = "definition";
+
+ HashMap<String, SsFeature> mFeatureMaps;
+
+ @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+ static String sParserFormat = "";
+
+ // TAG_ENTRY_NUMBER and TAG_ENTRY_TIME is xml's entry value.
+ // This is mapping user's input value. For example: number,time ...
+ // When UI makes command ,it will map the value and insert this value at position location.
+ // How to use it?
+ // The UI calls CarrierXmlParser's makeCommand function and inputs the hashmap which
+ // includes tag_name and user's input value.
+ // For example: User calls CarrierXmlParser's makeCommand in call forwarding , and inputs
+ // the hashmap {<TAG_ENTRY_NUMBER,0123456789>,<TAG_ENTRY_TIME,20>}
+ // If developer wants to add new one, xml string should the same as hashmap's name.
+ public static final String TAG_ENTRY_NUMBER = "tag_number";
+ public static final String TAG_ENTRY_TIME = "tag_time";
+
+ // "response_format" key
+ // The key of "response_format" should define as below in xml.
+ // The UI will use it to define value from the response command
+ // and use the data show the screen.
+ public static final String TAG_RESPONSE_STATUS = "status_code";
+ public static final String TAG_RESPONSE_STATUS_ERROR = "RESPONSE_ERROR";
+ public static final String TAG_RESPONSE_NUMBER = "number";
+ public static final String TAG_RESPONSE_TIME = "time";
+
+ // This is the definition for the entry's key in response_format.
+ // Xml's COMMAND_RESULT_DEFINITION should same as below.
+ public static final String TAG_COMMAND_RESULT_DEFINITION_ACTIVATE = "activate";
+ public static final String TAG_COMMAND_RESULT_DEFINITION_DEACTIVATE = "deactivate";
+ public static final String TAG_COMMAND_RESULT_DEFINITION_UNREGISTER = "unregister";
+ public static final String TAG_COMMAND_RESULT_DEFINITION_OK = "ok";
+ public static final String TAG_COMMAND_RESULT_DEFINITION_FAIL = "fail";
+
+ /**
+ * UssdParser is a string parser. It parses the USSD response message.
+ */
+ public static class UssdParser {
+ private Vector<String> mParserStr = new Vector<String>();
+ private Pattern mPatternSuppServiceResponse;
+
+ public UssdParser(String inputParserFormat) {
+ mPatternSuppServiceResponse = Pattern.compile(inputParserFormat);
+ }
+
+ /**
+ * This function is a parser and analyzes the USSD responses message.
+ *
+ * @param responseString The USSD responses message.
+ */
+ public void newFromResponseString(String responseString) {
+ Matcher m;
+ m = mPatternSuppServiceResponse.matcher(responseString);
+ if (m.matches()) {
+ mParserStr.clear();
+ int groupSize = m.groupCount();
+ for (int i = 0; i <= groupSize; i++) {
+ if (!TextUtils.isEmpty(m.group(i))) {
+ mParserStr.add(m.group(i));
+ } else {
+ mParserStr.add("");
+ }
+ }
+ } else {
+ Log.d(LOG_TAG, "no match");
+ }
+ }
+
+ /**
+ * To get the UssdParser result.
+ */
+ public Vector<String> getResult() {
+ return mParserStr;
+ }
+ }
+
+ /**
+ * CarrierXmlParser parses command from xml and saves in SsEntry class.
+ */
+ public static class SsEntry {
+ public enum SSAction {
+ UNKNOWN,
+ QUERY,
+ UPDATE_ACTIVATE,
+ UPDATE_DEACTIVATE
+ }
+
+ public String serviceCode;
+ public SSAction ssAction = SSAction.UNKNOWN;
+ public String actionCode;
+ public HashMap<Integer, String> commandParameter = new HashMap<Integer, String>();
+ public HashMap<Integer, String> responseFormat = new HashMap<Integer, String>();
+
+ public SsEntry(String action) {
+ if (action.equals(TAG_COMMAND_NAME_QUERY)) {
+ ssAction = SSAction.QUERY;
+ } else if (action.equals(TAG_COMMAND_NAME_ACTIVATE)) {
+ ssAction = SSAction.UPDATE_ACTIVATE;
+ } else if (action.equals(TAG_COMMAND_NAME_DEACTIVATE)) {
+ ssAction = SSAction.UPDATE_DEACTIVATE;
+ }
+ }
+
+ @Override
+ public String toString() {
+ return "SsEntry serviceCode:" + serviceCode
+ + ", ssAction:" + ssAction
+ + ", actionCode:" + actionCode
+ + ", commandParameter:" + commandParameter.toString()
+ + ", responseFormat:" + responseFormat.toString();
+ }
+
+ /**
+ * To get the caller id command by xml's structure.
+ */
+ public String getCommandStructure() {
+ String result = actionCode + serviceCode;
+ int mapSize = commandParameter.size();
+ int parameterIndex = 0;
+ while (parameterIndex < mapSize) {
+ parameterIndex++;
+ if (commandParameter.containsKey(parameterIndex)) {
+ if (commandParameter.get(parameterIndex) != null) {
+ result = result + STAR_SIGN + commandParameter.get(parameterIndex);
+ }
+ }
+ }
+ result = result + POUND_SIGN;
+ Log.d(LOG_TAG, "getCommandStructure result:" + result);
+ return result;
+ }
+
+ /**
+ * To make ussd command by xml's structure.
+ *
+ * @param inputInformationSet This is a map which includes parameters from UI.
+ * The name of map is mapping parameter's key of entry in xml.
+ */
+ public String makeCommand(Map<String, String> inputInformationSet) {
+ String result = actionCode + serviceCode;
+ int mapSize = commandParameter.size();
+ int parameterIndex = 0;
+ int counter = 1;
+ Map<String, String> informationSet = inputInformationSet;
+ while (parameterIndex < mapSize) {
+ if (commandParameter.containsKey(counter)) {
+ String getInputValue = "";
+ // need to handle tag_XXXX
+ if (informationSet != null && informationSet.size() > 0
+ && informationSet.containsKey(commandParameter.get(counter))) {
+ getInputValue = informationSet.get(commandParameter.get(counter));
+ }
+ if (TextUtils.isEmpty(getInputValue)) {
+ result = result + STAR_SIGN + commandParameter.get(counter);
+ } else {
+ result = result + STAR_SIGN + informationSet.get(
+ commandParameter.get(counter));
+ }
+ parameterIndex++;
+ } else {
+ result = result + STAR_SIGN;
+ }
+ counter++;
+ }
+ result = result + POUND_SIGN;
+ return result;
+ }
+
+ /**
+ * To parse the specific key and value from response message.
+ *
+ * @param inputResponse This is a ussd response message from network.
+ * @param responseDefine This is the definition for "command_result" in xml.
+ */
+ public HashMap<String, String> getResponseSet(String inputResponse,
+ HashMap<String, ArrayList<SsResultEntry>> responseDefine) {
+ HashMap<String, String> responseSet = new HashMap<String, String>();
+ if (TextUtils.isEmpty(sParserFormat)) {
+ return responseSet;
+ }
+ UssdParser parserResult = new UssdParser(sParserFormat);
+ parserResult.newFromResponseString(inputResponse);
+ if (parserResult == null) {
+ return responseSet;
+ }
+
+ Vector<String> result = parserResult.getResult();
+
+ if (result == null) {
+ return responseSet;
+ }
+ for (int i = 0; i < result.size(); i++) {
+ if (responseFormat.containsKey(i)) {
+ String defineString = "";
+ if (responseDefine.containsKey(responseFormat.get(i))) {
+ for (int x = 0; x < responseDefine.get(responseFormat.get(i)).size(); x++) {
+ defineString = ((SsResultEntry) responseDefine.get(
+ responseFormat.get(i)).get(x)).getDefinitionByCompareValue(
+ result.get(i));
+ if (!TextUtils.isEmpty(defineString)) {
+ break;
+ }
+ }
+ // if status_code do not match definition value, we will set command error.
+ if (TAG_RESPONSE_STATUS.equals(responseFormat.get(i))) {
+ if (TextUtils.isEmpty(defineString)) {
+ responseSet.put(TAG_RESPONSE_STATUS_ERROR,
+ TAG_RESPONSE_STATUS_ERROR);
+ }
+ }
+ }
+ if (TextUtils.isEmpty(defineString)) {
+ responseSet.put(responseFormat.get(i), result.get(i));
+ } else {
+ responseSet.put(responseFormat.get(i), defineString);
+ }
+ }
+ }
+ return responseSet;
+ }
+ }
+
+ /**
+ * CarrierXmlParser parses command_result from xml and saves in SsResultEntry class.
+ */
+ public static class SsResultEntry {
+ String mDefinition;
+ String mCompareValue;
+
+ public SsResultEntry() {
+ }
+
+ @Override
+ public String toString() {
+ return "SsResultEntry mDefinition:" + mDefinition
+ + ", mCompareValue:" + mCompareValue;
+ }
+
+ /**
+ * If mCompareValue item is the same as compare value,it will return the mDefinition.
+ *
+ * @param inputValue This is the entry of response command's value.
+ * @return mDefinition or null.
+ */
+ public String getDefinitionByCompareValue(String inputValue) {
+ if (mCompareValue.equals(inputValue)) {
+ return mDefinition;
+ }
+ return null;
+ }
+ }
+
+ /**
+ * CarrierXmlParser parses feature from xml and saves in SsFeature class.
+ */
+ public class SsFeature {
+ public HashMap<SsEntry.SSAction, SsEntry> ssEntryHashMap =
+ new HashMap<SsEntry.SSAction, SsEntry>();
+ public HashMap<String, ArrayList<SsResultEntry>> responseCode =
+ new HashMap<String, ArrayList<SsResultEntry>>();
+
+ public SsFeature() {
+ }
+
+ private String getResponseCodeString() {
+ String result = "";
+ for (Map.Entry<String, ArrayList<SsResultEntry>> entry : responseCode.entrySet()) {
+ ArrayList<SsResultEntry> values = entry.getValue();
+ for (int i = 0; i < values.size(); i++) {
+ result += "value of i is " + ((SsResultEntry) values.get(i)).toString();
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return getResponseCodeString();
+ }
+
+ /**
+ * To get the caller id command by xml's structure.
+ *
+ * @param inputAction This is action_code of command item from xml.
+ */
+ public String getCommandStructure(SsEntry.SSAction inputAction) {
+ SsEntry entry = ssEntryHashMap.get(inputAction);
+ return entry.getCommandStructure();
+ }
+
+ /**
+ * To make the ussd command by xml structure
+ *
+ * @param inputAction This is action_code of command item from xml.
+ * @param inputInformationSet This is for parameter of command.
+ * @return The ussd command string.
+ */
+ public String makeCommand(SsEntry.SSAction inputAction,
+ Map<String, String> inputInformationSet) {
+ SsEntry entry = ssEntryHashMap.get(inputAction);
+ return entry.makeCommand(inputInformationSet);
+ }
+
+ /**
+ * To parse the special key and value from response message.
+ *
+ * @param inputAction This is action_code of command item from xml.
+ * @param inputResponse This is response message from network.
+ * @return The set includes specific key and value.
+ */
+ public HashMap<String, String> getResponseSet(SsEntry.SSAction inputAction,
+ String inputResponse) {
+ SsEntry entry = ssEntryHashMap.get(inputAction);
+ return entry.getResponseSet(inputResponse, responseCode);
+ }
+ }
+
+ /**
+ * @param context context to get res's xml
+ * @param carrierId carrier id of the current subscription. The carrier ID is an Android
+ * platform-wide identifier for a carrier. AOSP maintains carrier ID assignments in
+ * <a href="https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/master/assets/carrier_list.textpb">here</a>
+ */
+ public CarrierXmlParser(Context context, int carrierId) {
+ try {
+ int xmlResId = 0;
+ if (carrierId != TelephonyManager.UNKNOWN_CARRIER_ID) {
+ String xmlResIdName = "carrier_ss_string" + "_" + carrierId;
+ xmlResId = context.getResources().getIdentifier(xmlResIdName, "xml",
+ context.getPackageName());
+ }
+ if (xmlResId == 0) {
+ xmlResId = R.xml.carrier_ss_string;
+ }
+ Log.d(LOG_TAG, "carrierId: " + carrierId);
+
+ XmlResourceParser parser = context.getResources().getXml(xmlResId);
+ mFeatureMaps = parseXml(parser);
+ } catch (Exception e) {
+ Log.d(LOG_TAG, "Error parsing XML " + e.toString());
+ }
+ }
+
+ private HashMap<String, SsFeature> parseXml(XmlResourceParser parser) throws IOException {
+ HashMap<String, SsFeature> features = new HashMap<String, SsFeature>();
+ try {
+ int eventType = parser.getEventType();
+ while (eventType != XmlPullParser.END_DOCUMENT) {
+ if (eventType == XmlPullParser.START_TAG) {
+ if (TAG_REGULAR_PARSER.equals(parser.getName())) {
+ sParserFormat = readText(parser);
+ Log.d(LOG_TAG, "sParserFormat " + sParserFormat);
+ } else if (TAG_FEATURE.equals(parser.getName())) {
+ String featureName = getSpecificAttributeValue(parser, ATTR_NAME);
+ if (!TextUtils.isEmpty(featureName)) {
+ SsFeature feature = generateFeatureList(parser);
+ features.put(featureName, feature);
+ Log.d(LOG_TAG, "add " + featureName + " to map:" + feature.toString());
+ }
+ }
+ }
+ parser.next();
+ eventType = parser.getEventType();
+ }
+ } catch (XmlPullParserException e) {
+ e.printStackTrace();
+ }
+ return features;
+ }
+
+ private SsFeature generateFeatureList(XmlResourceParser parser)
+ throws XmlPullParserException, IOException {
+ SsFeature ssfeature = new SsFeature();
+ int outerDepth = parser.getDepth();
+
+ Log.d(LOG_TAG, "generateFeatureList outerDepth" + outerDepth);
+
+ while (parser.next() != XmlPullParser.END_DOCUMENT) {
+ Log.d(LOG_TAG, "generateFeatureList parser.getDepth()" + parser.getDepth());
+
+ int eventType = parser.getEventType();
+ if (eventType == XmlPullParser.END_TAG
+ && outerDepth == parser.getDepth()) {
+ break;
+ }
+
+ if (eventType != XmlPullParser.START_TAG) {
+ continue;
+ }
+ String name = parser.getName();
+ // Starts by looking for the command tag.
+ if (TAG_COMMAND.equals(name)) {
+ SsEntry entry = readCommandEntry(parser);
+ ssfeature.ssEntryHashMap.put(entry.ssAction, entry);
+ } else if (TAG_COMMAND_RESULT.equals(name)) {
+ readCommandResultEntry(parser, ssfeature);
+ }
+ }
+ return ssfeature;
+ }
+
+ private void readCommandResultEntry(XmlResourceParser parser, SsFeature ssFeature)
+ throws XmlPullParserException, IOException {
+ while (parser.next() != XmlPullParser.END_DOCUMENT) {
+ int eventType = parser.getEventType();
+ if (eventType == XmlPullParser.END_TAG
+ && TAG_COMMAND_RESULT.equals(parser.getName())) {
+ break;
+ }
+ if (eventType == XmlPullParser.START_TAG
+ && TAG_ENTRY.equals(parser.getName())) {
+ String key = getSpecificAttributeValue(parser, ATTR_RESULT_KEY);
+ if (!TextUtils.isEmpty(key)) {
+ SsResultEntry entry = new SsResultEntry();
+ entry.mDefinition = getSpecificAttributeValue(parser, ATTR_DEFINITION_KEY);
+ entry.mCompareValue = readText(parser);
+ if (ssFeature.responseCode.containsKey(key)) {
+ ssFeature.responseCode.get(key).add(entry);
+ } else {
+ ArrayList<SsResultEntry> arrayList = new ArrayList<>();
+ arrayList.add(entry);
+ ssFeature.responseCode.put(key, arrayList);
+ }
+ }
+ }
+ }
+ }
+
+ private SsEntry readCommandEntry(XmlResourceParser parser)
+ throws XmlPullParserException, IOException {
+ int outerDepth = parser.getDepth();
+ String command_action = getSpecificAttributeValue(parser, ATTR_NAME);
+ SsEntry entry = new SsEntry(command_action);
+
+ while (parser.next() != XmlPullParser.END_DOCUMENT) {
+ int eventType = parser.getEventType();
+ if (eventType == XmlPullParser.END_TAG
+ && outerDepth == parser.getDepth()) {
+ break;
+ }
+
+ if (eventType != XmlPullParser.START_TAG) {
+ continue;
+ }
+
+ String name = parser.getName();
+ if (TAG_SERVICE_CODE.equals(name)) {
+ entry.serviceCode = readText(parser);
+ } else if (TAG_ACTION_CODE.equals(name)) {
+ entry.actionCode = readText(parser);
+ } else if (TAG_PARAMETER.equals(name)) {
+ String number = getSpecificAttributeValue(parser, ATTR_PARAMETER_NUM);
+ if (!TextUtils.isEmpty(number)) {
+ readParameters(parser, entry, Integer.valueOf(number), TAG_PARAMETER);
+ }
+ } else if (TAG_RESPONSE_FORMAT.equals(name)) {
+ String number = getSpecificAttributeValue(parser, ATTR_PARAMETER_NUM);
+ if (!TextUtils.isEmpty(number)) {
+ readParameters(parser, entry, Integer.valueOf(number), TAG_RESPONSE_FORMAT);
+ }
+ }
+ }
+ Log.d(LOG_TAG, "ssEntry:" + entry.toString());
+ return entry;
+ }
+
+ private void readParameters(XmlResourceParser parser, SsEntry entry, int num, String parentTag)
+ throws IOException, XmlPullParserException {
+ Log.d(LOG_TAG, "readParameters() nume:" + num);
+ int i = 0;
+ while (i < num) {
+ if (parser.next() == XmlPullParser.START_TAG) {
+ String name = parser.getName();
+ if (TAG_ENTRY.equals(name)) {
+ String position = getSpecificAttributeValue(parser, ATTR_POSITION);
+ if (!TextUtils.isEmpty(position)) {
+ if (TAG_PARAMETER.equals(parentTag)) {
+ String value = readText(parser);
+ if (!TextUtils.isEmpty(value)) {
+ entry.commandParameter.put(Integer.valueOf(position), value);
+ }
+ } else if (TAG_RESPONSE_FORMAT.equals(parentTag)) {
+ String key = getSpecificAttributeValue(parser, ATTR_RESULT_KEY);
+ if (!TextUtils.isEmpty(key)) {
+ entry.responseFormat.put(Integer.valueOf(position), key);
+ }
+ }
+ i++;
+ }
+ }
+ }
+ }
+ }
+
+ private String getSpecificAttributeValue(XmlResourceParser parser, String attrTag) {
+ String value = "";
+ for (int i = 0; i < parser.getAttributeCount(); i++) {
+ if (attrTag.equals(parser.getAttributeName(i))) {
+ value = parser.getAttributeValue(i);
+ }
+ }
+ return value;
+ }
+
+ private String readText(XmlResourceParser parser) throws IOException, XmlPullParserException {
+ String result = "";
+ if (parser.next() == XmlPullParser.TEXT) {
+ result = parser.getText();
+ parser.nextTag();
+ }
+ return result;
+ }
+
+ /**
+ * CarrierXmlParser parses the xml and saves in mFeatureMap.
+ * To use this function get feature from the mFeatureMaps.
+ *
+ * @param inputFeatureName This is feature's name from xml.
+ */
+ public SsFeature getFeature(String inputFeatureName) {
+ return mFeatureMaps.get(inputFeatureName);
+ }
+
+ /**
+ * To check the command which is dialed by user is caller id command.
+ * <p>
+ * If it is a caller id command which sets to activate, return the {@code
+ * SsEntry.SSAction.UPDATE_ACTIVATE}.
+ * If it is a caller id command which sets to deactivate, return the {@code
+ * SsEntry.SSAction.UPDATE_DEACTIVATE}.
+ * If it is not a caller id command, return the {@code SsEntry.SSAction.UNKNOWN}.
+ *
+ * @param inputCommand This is caller id's ussd command which is dialed by user.
+ * @return {@link SsEntry.SSAction}
+ */
+ public SsEntry.SSAction getCallerIdUssdCommandAction(String inputCommand) {
+ if (isCallerIdActivate(inputCommand)) {
+ return SsEntry.SSAction.UPDATE_ACTIVATE;
+ }
+ if (isCallerIdDeactivate(inputCommand)) {
+ return SsEntry.SSAction.UPDATE_DEACTIVATE;
+ }
+ return SsEntry.SSAction.UNKNOWN;
+ }
+
+ private String getCallerIdActivateCommandFromXml() {
+ return getFeature(FEATURE_CALLER_ID).getCommandStructure(SsEntry.SSAction.UPDATE_ACTIVATE);
+ }
+
+ private String getCallerIdDeactivateCommandFromXml() {
+ return getFeature(FEATURE_CALLER_ID).getCommandStructure(
+ SsEntry.SSAction.UPDATE_DEACTIVATE);
+ }
+
+ private boolean isCallerIdActivate(String inputStr) {
+ String activateStr = getCallerIdActivateCommandFromXml();
+ return compareCommand(activateStr, inputStr);
+ }
+
+ private boolean isCallerIdDeactivate(String inputStr) {
+ String activateStr = getCallerIdDeactivateCommandFromXml();
+ return compareCommand(activateStr, inputStr);
+ }
+
+ private boolean compareCommand(String activateStr, String inputStr) {
+ String[] activateArray = activateStr.split("\\" + STAR_SIGN);
+ String[] inputArray = inputStr.split("\\" + STAR_SIGN);
+
+ if (activateArray.length == 0 || inputArray.length == 0) {
+ return false;
+ }
+ for (int i = 0; i < activateArray.length; i++) {
+ if (activateArray[i].startsWith(TAG_SIGN)) {
+ continue;
+ }
+ if (!activateArray[i].equals(inputArray[i])) {
+ Log.d(LOG_TAG, "compare fails:" + activateStr + "," + inputStr);
+ return false;
+ }
+ }
+ Log.d(LOG_TAG, "compare success");
+ return true;
+ }
+}
diff --git a/src/com/android/phone/CdmaOptions.java b/src/com/android/phone/CdmaOptions.java
deleted file mode 100644
index 9c713ef..0000000
--- a/src/com/android/phone/CdmaOptions.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.content.Intent;
-import android.os.PersistableBundle;
-import android.os.SystemProperties;
-import android.preference.Preference;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceScreen;
-import android.provider.Settings;
-import android.telephony.CarrierConfigManager;
-import android.telephony.TelephonyManager;
-import android.text.TextUtils;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.PhoneConstants;
-import com.android.settingslib.RestrictedLockUtils;
-
-/**
- * List of Phone-specific settings screens.
- */
-public class CdmaOptions {
- private static final String LOG_TAG = "CdmaOptions";
-
- private CarrierConfigManager mCarrierConfigManager;
- private CdmaSystemSelectListPreference mButtonCdmaSystemSelect;
- private CdmaSubscriptionListPreference mButtonCdmaSubscription;
- private RestrictedPreference mButtonAPNExpand;
- private Preference mCategoryAPNExpand;
- private Preference mButtonCarrierSettings;
-
- private static final String BUTTON_CDMA_SYSTEM_SELECT_KEY = "cdma_system_select_key";
- private static final String BUTTON_CDMA_SUBSCRIPTION_KEY = "cdma_subscription_key";
- private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
- private static final String BUTTON_APN_EXPAND_KEY = "button_cdma_apn_key";
- private static final String CATEGORY_APN_EXPAND_KEY = "category_cdma_apn_key";
-
- private PreferenceFragment mPrefFragment;
- private PreferenceScreen mPrefScreen;
- private int mSubId;
-
- public CdmaOptions(PreferenceFragment prefFragment, PreferenceScreen prefScreen, int subId) {
- mPrefFragment = prefFragment;
- mPrefScreen = prefScreen;
- mPrefFragment.addPreferencesFromResource(R.xml.cdma_options);
- mCarrierConfigManager = new CarrierConfigManager(prefFragment.getContext());
-
- // Initialize preferences.
- mButtonCdmaSystemSelect = (CdmaSystemSelectListPreference) mPrefScreen
- .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY);
- mButtonCdmaSubscription = (CdmaSubscriptionListPreference) mPrefScreen
- .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY);
- mButtonCarrierSettings = mPrefScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
- mButtonAPNExpand = (RestrictedPreference) mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY);
- mCategoryAPNExpand = mPrefScreen.findPreference(CATEGORY_APN_EXPAND_KEY);
-
- updateSubscriptionId(subId);
- }
-
- protected void updateSubscriptionId(int subId) {
- mSubId = subId;
- int phoneType = TelephonyManager.from(mPrefFragment.getContext())
- .createForSubscriptionId(mSubId).getPhoneType();
-
- PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
- // Some CDMA carriers want the APN settings.
- boolean addAPNExpand = shouldAddApnExpandPreference(phoneType, carrierConfig);
- boolean addCdmaSubscription =
- deviceSupportsNvAndRuim();
- // Read platform settings for carrier settings
- boolean addCarrierSettings =
- carrierConfig.getBoolean(CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL);
-
- mPrefScreen.addPreference(mButtonCdmaSystemSelect);
- mButtonCdmaSystemSelect.setEnabled(true);
-
- // Making no assumptions of whether they are added or removed at this point.
- // Calling add or remove explicitly to make sure they are updated.
-
- if (addAPNExpand) {
- log("update: addAPNExpand");
- mButtonAPNExpand.setDisabledByAdmin(
- MobileNetworkSettings.isDpcApnEnforced(mButtonAPNExpand.getContext())
- ? RestrictedLockUtils.getDeviceOwner(mButtonAPNExpand.getContext())
- : null);
- mButtonAPNExpand.setOnPreferenceClickListener(
- new Preference.OnPreferenceClickListener() {
- @Override
- public boolean onPreferenceClick(Preference preference) {
- MetricsLogger.action(mButtonAPNExpand.getContext(),
- MetricsEvent.ACTION_MOBILE_NETWORK_APN_SETTINGS);
- // We need to build the Intent by hand as the Preference Framework
- // does not allow to add an Intent with some extras into a Preference
- // XML file
- final Intent intent = new Intent(Settings.ACTION_APN_SETTINGS);
- // This will setup the Home and Search affordance
- intent.putExtra(":settings:show_fragment_as_subsetting", true);
- intent.putExtra("sub_id", mSubId);
- mPrefFragment.startActivity(intent);
- return true;
- }
- });
- mPrefScreen.addPreference(mCategoryAPNExpand);
- } else {
- mPrefScreen.removePreference(mCategoryAPNExpand);
- }
-
- if (addCdmaSubscription) {
- log("Both NV and Ruim supported, ENABLE subscription type selection");
- mPrefScreen.addPreference(mButtonCdmaSubscription);
- mButtonCdmaSubscription.setEnabled(true);
- } else {
- log("Both NV and Ruim NOT supported, REMOVE subscription type selection");
- mPrefScreen.removePreference(mButtonCdmaSubscription);
- }
-
- if (addCarrierSettings) {
- mPrefScreen.addPreference(mButtonCarrierSettings);
- } else {
- mPrefScreen.removePreference(mButtonCarrierSettings);
- }
- }
-
- /**
- * Return whether we should add the APN expandable preference based on the phone type and
- * carrier config
- */
- @VisibleForTesting
- public static boolean shouldAddApnExpandPreference(int phoneType, PersistableBundle config) {
- return phoneType == PhoneConstants.PHONE_TYPE_CDMA
- && config.getBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL);
- }
-
- private boolean deviceSupportsNvAndRuim() {
- // retrieve the list of subscription types supported by device.
- String subscriptionsSupported = SystemProperties.get("ril.subscription.types");
- boolean nvSupported = false;
- boolean ruimSupported = false;
-
- log("deviceSupportsnvAnRum: prop=" + subscriptionsSupported);
- if (!TextUtils.isEmpty(subscriptionsSupported)) {
- // Searches through the comma-separated list for a match for "NV"
- // and "RUIM" to update nvSupported and ruimSupported.
- for (String subscriptionType : subscriptionsSupported.split(",")) {
- subscriptionType = subscriptionType.trim();
- if (subscriptionType.equalsIgnoreCase("NV")) {
- nvSupported = true;
- }
- if (subscriptionType.equalsIgnoreCase("RUIM")) {
- ruimSupported = true;
- }
- }
- }
-
- log("deviceSupportsnvAnRum: nvSupported=" + nvSupported +
- " ruimSupported=" + ruimSupported);
- return (nvSupported && ruimSupported);
- }
-
- public boolean preferenceTreeClick(Preference preference) {
- if (preference.getKey().equals(BUTTON_CDMA_SYSTEM_SELECT_KEY)) {
- log("preferenceTreeClick: return BUTTON_CDMA_ROAMING_KEY true");
- return true;
- }
- if (preference.getKey().equals(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
- log("preferenceTreeClick: return CDMA_SUBSCRIPTION_KEY true");
- return true;
- }
- return false;
- }
-
- public void showDialog(Preference preference) {
- if (preference.getKey().equals(BUTTON_CDMA_SYSTEM_SELECT_KEY)) {
- mButtonCdmaSystemSelect.showDialog(null);
- } else if (preference.getKey().equals(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
- mButtonCdmaSubscription.showDialog(null);
- }
- }
-
- protected void log(String s) {
- android.util.Log.d(LOG_TAG, s);
- }
-}
diff --git a/src/com/android/phone/CdmaSubscriptionListPreference.java b/src/com/android/phone/CdmaSubscriptionListPreference.java
deleted file mode 100644
index cd0c681..0000000
--- a/src/com/android/phone/CdmaSubscriptionListPreference.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.phone;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.preference.ListPreference;
-import android.provider.Settings;
-import android.telephony.TelephonyManager;
-import android.util.AttributeSet;
-import android.util.Log;
-
-import com.android.internal.telephony.Phone;
-import com.android.settingslib.utils.ThreadUtils;
-
-public class CdmaSubscriptionListPreference extends ListPreference {
-
- private static final String LOG_TAG = "CdmaSubscriptionListPreference";
-
- // Used for CDMA subscription mode
- private static final int CDMA_SUBSCRIPTION_RUIM_SIM = 0;
- private static final int CDMA_SUBSCRIPTION_NV = 1;
-
- //preferredSubscriptionMode 0 - RUIM/SIM, preferred
- // 1 - NV
- static final int preferredSubscriptionMode = Phone.PREFERRED_CDMA_SUBSCRIPTION;
-
- private TelephonyManager mTelephonyManager;
-
- public CdmaSubscriptionListPreference(Context context, AttributeSet attrs) {
- super(context, attrs);
-
- mTelephonyManager = TelephonyManager.from(context);
- setCurrentCdmaSubscriptionModeValue();
- }
-
- private void setCurrentCdmaSubscriptionModeValue() {
- int cdmaSubscriptionMode = Settings.Global.getInt(getContext().getContentResolver(),
- Settings.Global.CDMA_SUBSCRIPTION_MODE, preferredSubscriptionMode);
- setValue(Integer.toString(cdmaSubscriptionMode));
- }
-
- public CdmaSubscriptionListPreference(Context context) {
- this(context, null);
- }
-
- /**
- * Sets the subscription id associated with this preference.
- *
- * @param subId the subscription id.
- */
- public void setSubscriptionId(int subId) {
- mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(subId);
- }
-
- @Override
- protected void showDialog(Bundle state) {
- setCurrentCdmaSubscriptionModeValue();
-
- super.showDialog(state);
- }
-
- @Override
- protected void onDialogClosed(boolean positiveResult) {
- super.onDialogClosed(positiveResult);
-
- if (!positiveResult) {
- //The button was dismissed - no need to set new value
- return;
- }
-
- int buttonCdmaSubscriptionMode = Integer.parseInt(getValue());
- Log.d(LOG_TAG, "Setting new value " + buttonCdmaSubscriptionMode);
- int statusCdmaSubscriptionMode;
- switch(buttonCdmaSubscriptionMode) {
- case CDMA_SUBSCRIPTION_NV:
- statusCdmaSubscriptionMode = Phone.CDMA_SUBSCRIPTION_NV;
- break;
- case CDMA_SUBSCRIPTION_RUIM_SIM:
- statusCdmaSubscriptionMode = Phone.CDMA_SUBSCRIPTION_RUIM_SIM;
- break;
- default:
- statusCdmaSubscriptionMode = Phone.PREFERRED_CDMA_SUBSCRIPTION;
- }
-
- // Set the CDMA subscription mode, when mode has been successfully changed, update the
- // mode to the global setting.
- ThreadUtils.postOnBackgroundThread(() -> {
- // The subscription mode selected by user.
- int cdmaSubscriptionMode = Integer.parseInt(getValue());
-
- boolean isSuccessed = mTelephonyManager.setCdmaSubscriptionMode(
- statusCdmaSubscriptionMode);
-
- // Update the global settings if successed.
- if (isSuccessed) {
- Settings.Global.putInt(getContext().getContentResolver(),
- Settings.Global.CDMA_SUBSCRIPTION_MODE,
- cdmaSubscriptionMode);
- } else {
- Log.e(LOG_TAG, "Setting Cdma subscription source failed");
- }
- });
- }
-}
diff --git a/src/com/android/phone/CdmaSystemSelectListPreference.java b/src/com/android/phone/CdmaSystemSelectListPreference.java
deleted file mode 100644
index 0044a8b..0000000
--- a/src/com/android/phone/CdmaSystemSelectListPreference.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.phone;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.preference.ListPreference;
-import android.provider.Settings;
-import android.telephony.TelephonyManager;
-import android.util.AttributeSet;
-import android.util.Log;
-
-import com.android.settingslib.utils.ThreadUtils;
-
-public class CdmaSystemSelectListPreference extends ListPreference {
-
- private static final String LOG_TAG = "CdmaRoamingListPreference";
- private static final boolean DBG = false;
-
- private TelephonyManager mTelephonyManager;
- private MyHandler mHandler = new MyHandler();
-
- public CdmaSystemSelectListPreference(Context context, AttributeSet attrs) {
- super(context, attrs);
-
- mHandler = new MyHandler();
- mTelephonyManager = TelephonyManager.from(context);
- }
-
- public CdmaSystemSelectListPreference(Context context) {
- this(context, null);
- }
-
- /**
- * Sets the subscription id associated with this preference.
- *
- * @param subId the subscription id.
- */
- public void setSubscriptionId(int subId) {
- mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(subId);
- queryCdmaRoamingMode();
- }
-
- @Override
- protected void showDialog(Bundle state) {
- if (!mTelephonyManager.getEmergencyCallbackMode()) {
- super.showDialog(state);
- }
- }
-
- @Override
- protected void onDialogClosed(boolean positiveResult) {
- super.onDialogClosed(positiveResult);
-
- if (positiveResult && (getValue() != null)) {
- int buttonCdmaRoamingMode = Integer.parseInt(getValue());
- int settingsCdmaRoamingMode = Settings.Global.getInt(
- getContext().getContentResolver(),
- Settings.Global.CDMA_ROAMING_MODE,
- TelephonyManager.CDMA_ROAMING_MODE_HOME);
- if (buttonCdmaRoamingMode != settingsCdmaRoamingMode) {
- int cdmaRoamingMode = TelephonyManager.CDMA_ROAMING_MODE_ANY;
- if (buttonCdmaRoamingMode != TelephonyManager.CDMA_ROAMING_MODE_ANY) {
- cdmaRoamingMode = TelephonyManager.CDMA_ROAMING_MODE_HOME;
- }
- //Set the Settings.Secure network mode
- Settings.Global.putInt(
- getContext().getContentResolver(),
- Settings.Global.CDMA_ROAMING_MODE,
- buttonCdmaRoamingMode);
- //Set the roaming preference mode
- setCdmaRoamingMode(cdmaRoamingMode);
- }
- } else {
- Log.d(LOG_TAG, String.format("onDialogClosed: positiveResult=%b value=%s -- do nothing",
- positiveResult, getValue()));
- }
- }
-
- private class MyHandler extends Handler {
-
- static final int MESSAGE_GET_ROAMING_PREFERENCE = 0;
- static final int MESSAGE_SET_ROAMING_PREFERENCE = 1;
-
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case MESSAGE_GET_ROAMING_PREFERENCE:
- handleQueryCdmaRoamingPreference(msg);
- break;
-
- case MESSAGE_SET_ROAMING_PREFERENCE:
- handleSetCdmaRoamingPreference(msg);
- break;
- }
- }
-
- private void handleQueryCdmaRoamingPreference(Message msg) {
- int cdmaRoamingMode = msg.arg1;
-
- if (cdmaRoamingMode != TelephonyManager.CDMA_ROAMING_MODE_RADIO_DEFAULT) {
- int settingsRoamingMode = Settings.Global.getInt(
- getContext().getContentResolver(),
- Settings.Global.CDMA_ROAMING_MODE,
- TelephonyManager.CDMA_ROAMING_MODE_HOME);
-
- //check that statusCdmaRoamingMode is from an accepted value
- if (cdmaRoamingMode == TelephonyManager.CDMA_ROAMING_MODE_HOME
- || cdmaRoamingMode == TelephonyManager.CDMA_ROAMING_MODE_ANY) {
- //check changes in statusCdmaRoamingMode and updates settingsRoamingMode
- if (cdmaRoamingMode != settingsRoamingMode) {
- settingsRoamingMode = cdmaRoamingMode;
- //changes the Settings.Secure accordingly to statusCdmaRoamingMode
- Settings.Global.putInt(
- getContext().getContentResolver(),
- Settings.Global.CDMA_ROAMING_MODE,
- settingsRoamingMode);
- }
- //changes the mButtonPreferredNetworkMode accordingly to modemNetworkMode
- setValue(Integer.toString(cdmaRoamingMode));
- }
- else {
- if(DBG) Log.i(LOG_TAG, "reset cdma roaming mode to default" );
- resetCdmaRoamingModeToDefault();
- }
- }
- }
-
- private void handleSetCdmaRoamingPreference(Message msg) {
- boolean isSuccessed = (boolean) msg.obj;
-
- if (isSuccessed && (getValue() != null)) {
- int cdmaRoamingMode = Integer.parseInt(getValue());
- Settings.Global.putInt(
- getContext().getContentResolver(),
- Settings.Global.CDMA_ROAMING_MODE,
- cdmaRoamingMode );
- } else {
- queryCdmaRoamingMode();
- }
- }
-
- private void resetCdmaRoamingModeToDefault() {
- //set the mButtonCdmaRoam
- setValue(Integer.toString(TelephonyManager.CDMA_ROAMING_MODE_ANY));
- //set the Settings.System
- Settings.Global.putInt(
- getContext().getContentResolver(),
- Settings.Global.CDMA_ROAMING_MODE,
- TelephonyManager.CDMA_ROAMING_MODE_ANY);
- //Set the Status
- setCdmaRoamingMode(TelephonyManager.CDMA_ROAMING_MODE_ANY);
- }
- }
-
- private void queryCdmaRoamingMode() {
- ThreadUtils.postOnBackgroundThread(() -> {
- Message msg = mHandler.obtainMessage(MyHandler.MESSAGE_GET_ROAMING_PREFERENCE);
- msg.arg1 = mTelephonyManager.getCdmaRoamingMode();
- msg.sendToTarget();
- });
- }
-
- private void setCdmaRoamingMode(int mode) {
- ThreadUtils.postOnBackgroundThread(() -> {
- Message msg = mHandler.obtainMessage(MyHandler.MESSAGE_SET_ROAMING_PREFERENCE);
- msg.obj = mTelephonyManager.setCdmaRoamingMode(mode);
- msg.sendToTarget();
- });
- }
-}
diff --git a/src/com/android/phone/DataUsagePreference.java b/src/com/android/phone/DataUsagePreference.java
deleted file mode 100644
index 85e7700..0000000
--- a/src/com/android/phone/DataUsagePreference.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.net.NetworkTemplate;
-import android.preference.Preference;
-import android.provider.Settings;
-import android.telephony.TelephonyManager;
-import android.text.format.Formatter;
-import android.util.AttributeSet;
-
-import com.android.settingslib.drawer.SettingsDrawerActivity;
-import com.android.settingslib.net.DataUsageController;
-
-/**
- * The preference that shows mobile data usage summary and
- * leads to mobile data usage list page.
- */
-public class DataUsagePreference extends Preference {
-
- private NetworkTemplate mTemplate;
- private int mSubId;
-
- public DataUsagePreference(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- /**
- * After creating this preference, this functions needs to be called to
- * initialize which subID it connects to.
- */
- public void initialize(int subId) {
- Activity activity = (Activity) getContext();
-
- mSubId = subId;
- mTemplate = getNetworkTemplate(activity, subId);
-
- DataUsageController controller = new DataUsageController(activity);
-
- DataUsageController.DataUsageInfo usageInfo = controller.getDataUsageInfo(mTemplate);
- setSummary(activity.getString(R.string.data_usage_template,
- Formatter.formatFileSize(activity, usageInfo.usageLevel), usageInfo.period));
- setIntent(getIntent());
- }
-
- @Override
- public Intent getIntent() {
- Intent intent = new Intent(Settings.ACTION_MOBILE_DATA_USAGE);
- intent.putExtra(SettingsDrawerActivity.EXTRA_SHOW_MENU, true);
-
- intent.putExtra(Settings.EXTRA_NETWORK_TEMPLATE, mTemplate);
- intent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
-
- return intent;
- }
-
- private NetworkTemplate getNetworkTemplate(Activity activity, int subId) {
- TelephonyManager tm = (TelephonyManager) activity
- .getSystemService(Context.TELEPHONY_SERVICE);
- NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll(
- tm.getSubscriberId(subId));
- return NetworkTemplate.normalize(mobileAll,
- tm.getMergedSubscriberIds());
- }
-}
diff --git a/src/com/android/phone/EccShortcutAdapter.java b/src/com/android/phone/EccShortcutAdapter.java
index a5d955b..53fa702 100644
--- a/src/com/android/phone/EccShortcutAdapter.java
+++ b/src/com/android/phone/EccShortcutAdapter.java
@@ -38,9 +38,6 @@
* view container calls {@link #getView}.
*/
public abstract class EccShortcutAdapter extends BaseAdapter {
- // GSM default emergency number, used when country's fallback ECC(112 or 911) not available.
- private static final String FALLBACK_EMERGENCY_NUMBER = "112";
-
private List<EccDisplayMaterial> mEccDisplayMaterialList;
private CharSequence mPoliceDescription;
@@ -141,6 +138,19 @@
}
}
+ boolean hasShortcut(String number) {
+ if (mEccDisplayMaterialList == null) {
+ return false;
+ }
+
+ for (EccDisplayMaterial displayMaterial : mEccDisplayMaterialList) {
+ if (displayMaterial.number.equals(number)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
@Nullable
private String pickEmergencyNumberForCategory(int category,
@NonNull List<EmergencyNumber> emergencyNumbers) {
diff --git a/src/com/android/phone/EmergencyActionGroup.java b/src/com/android/phone/EmergencyActionGroup.java
index 4f9121a..b8bf7a8 100644
--- a/src/com/android/phone/EmergencyActionGroup.java
+++ b/src/com/android/phone/EmergencyActionGroup.java
@@ -143,7 +143,7 @@
ComponentName name = EmergencyAssistanceHelper.getComponentName(info);
button.setTag(R.id.tag_intent,
- new Intent(EmergencyAssistanceHelper.getIntentAction(getContext()))
+ new Intent(EmergencyAssistanceHelper.getIntentAction())
.setComponent(name));
button.setText(info.loadLabel(getContext().getPackageManager()));
visible = true;
diff --git a/src/com/android/phone/EmergencyAssistanceHelper.java b/src/com/android/phone/EmergencyAssistanceHelper.java
index 9e1ac21..33788d3 100644
--- a/src/com/android/phone/EmergencyAssistanceHelper.java
+++ b/src/com/android/phone/EmergencyAssistanceHelper.java
@@ -16,6 +16,7 @@
package com.android.phone;
+import android.app.role.RoleManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -23,10 +24,14 @@
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
-import android.provider.Settings;
+import android.os.AsyncTask;
+import android.os.Binder;
+import android.os.Process;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
+import android.util.Log;
+
+import com.android.internal.util.CollectionUtils;
import java.util.List;
@@ -34,22 +39,13 @@
* A helper to query activities of emergency assistance.
*/
public class EmergencyAssistanceHelper {
-
+ private static final String TAG = EmergencyAssistanceHelper.class.getSimpleName();
/**
* Get intent action of target emergency app.
*
- * @param context The context of the application.
- * @return A string of intent action to launch target emergency app by feature flag, it will be
- * used for team food.
+ * @return A string of intent action to launch target emergency app.
*/
- public static String getIntentAction(Context context) {
- if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SAFETY_HUB)) {
- String action = context.getResources().getString(R.string.config_emergency_app_intent);
- if (!action.isEmpty()) {
- return action;
- }
- }
-
+ public static String getIntentAction() {
return TelephonyManager.ACTION_EMERGENCY_ASSISTANCE;
}
@@ -61,11 +57,11 @@
* or null if there is no installed system application of emergency assistance.
*/
public static List<ResolveInfo> resolveAssistPackageAndQueryActivities(Context context) {
- List<ResolveInfo> infos = queryAssistActivities(context);
-
+ final String assistPackage = getDefaultEmergencyPackage(context);
+ List<ResolveInfo> infos = queryAssistActivities(context, assistPackage);
if (infos == null || infos.isEmpty()) {
PackageManager packageManager = context.getPackageManager();
- Intent queryIntent = new Intent(getIntentAction(context));
+ Intent queryIntent = new Intent(getIntentAction());
infos = packageManager.queryIntentActivities(queryIntent, 0);
PackageInfo bestMatch = null;
@@ -86,9 +82,8 @@
}
if (bestMatch != null) {
- Settings.Secure.putString(context.getContentResolver(),
- Settings.Secure.EMERGENCY_ASSISTANCE_APPLICATION, bestMatch.packageName);
- return queryAssistActivities(context);
+ setDefaultEmergencyPackageAsync(context, bestMatch.packageName);
+ return queryAssistActivities(context, bestMatch.packageName);
} else {
return null;
}
@@ -106,13 +101,11 @@
resolveInfo.activityInfo.name);
}
- private static List<ResolveInfo> queryAssistActivities(Context context) {
- final String assistPackage = Settings.Secure.getString(context.getContentResolver(),
- Settings.Secure.EMERGENCY_ASSISTANCE_APPLICATION);
+ private static List<ResolveInfo> queryAssistActivities(Context context, String assistPackage) {
List<ResolveInfo> infos = null;
if (!TextUtils.isEmpty(assistPackage)) {
- Intent queryIntent = new Intent(getIntentAction(context))
+ Intent queryIntent = new Intent(getIntentAction())
.setPackage(assistPackage);
infos = context.getPackageManager().queryIntentActivities(queryIntent, 0);
}
@@ -123,4 +116,30 @@
return info.applicationInfo != null
&& (info.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
}
+
+ private static String getDefaultEmergencyPackage(Context context) {
+ long identity = Binder.clearCallingIdentity();
+ try {
+ return CollectionUtils.firstOrNull(context.getSystemService(RoleManager.class)
+ .getRoleHolders(RoleManager.ROLE_EMERGENCY));
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ private static boolean setDefaultEmergencyPackageAsync(Context context, String pkgName) {
+ long identity = Binder.clearCallingIdentity();
+ try {
+ context.getSystemService(RoleManager.class).addRoleHolderAsUser(
+ RoleManager.ROLE_EMERGENCY, pkgName, 0, Process.myUserHandle(),
+ AsyncTask.THREAD_POOL_EXECUTOR, successful -> {
+ if (!successful) {
+ Log.e(TAG, "Failed to set emergency default app.");
+ }
+ });
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ return true;
+ }
}
diff --git a/src/com/android/phone/EmergencyCallbackModeExitDialog.java b/src/com/android/phone/EmergencyCallbackModeExitDialog.java
index fd6510b..dcfa024 100644
--- a/src/com/android/phone/EmergencyCallbackModeExitDialog.java
+++ b/src/com/android/phone/EmergencyCallbackModeExitDialog.java
@@ -52,8 +52,6 @@
/** Intent to trigger the Emergency Callback Mode exit dialog */
static final String ACTION_SHOW_ECM_EXIT_DIALOG =
"com.android.phone.action.ACTION_SHOW_ECM_EXIT_DIALOG";
- /** Used to get the users choice from the return Intent's extra */
- public static final String EXTRA_EXIT_ECM_RESULT = "exit_ecm_result";
public static final int EXIT_ECM_BLOCK_OTHERS = 1;
public static final int EXIT_ECM_DIALOG = 2;
@@ -70,6 +68,7 @@
private boolean mInEmergencyCall = false;
private static final int ECM_TIMER_RESET = 1;
private Phone mPhone = null;
+ private boolean mIsResumed = false;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -102,6 +101,18 @@
}
@Override
+ public void onResume() {
+ super.onResume();
+ mIsResumed = true;
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ mIsResumed = false;
+ }
+
+ @Override
public void onDestroy() {
super.onDestroy();
try {
@@ -178,7 +189,7 @@
* Shows Emergency Callback Mode dialog and starts countdown timer
*/
private void showEmergencyCallbackModeExitDialog() {
- if (!this.isResumed()) {
+ if (!mIsResumed) {
Log.w(TAG, "Tried to show dialog, but activity was already finished");
return;
}
@@ -239,8 +250,7 @@
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// User clicked No
- setResult(RESULT_OK, (new Intent()).putExtra(
- EXTRA_EXIT_ECM_RESULT, false));
+ setResult(RESULT_CANCELED);
finish();
}
}).create();
@@ -257,8 +267,7 @@
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// User clicked Dismiss
- setResult(RESULT_OK, (new Intent()).putExtra(
- EXTRA_EXIT_ECM_RESULT, false));
+ setResult(RESULT_CANCELED);
finish();
}
}).create();
@@ -302,8 +311,7 @@
*/
@Override
public void onCancel(DialogInterface dialog) {
- EmergencyCallbackModeExitDialog.this.setResult(RESULT_OK, (new Intent())
- .putExtra(EXTRA_EXIT_ECM_RESULT, false));
+ EmergencyCallbackModeExitDialog.this.setResult(RESULT_CANCELED);
finish();
}
@@ -321,8 +329,7 @@
mAlertDialog.dismiss();
if (mProgressDialog != null)
mProgressDialog.dismiss();
- EmergencyCallbackModeExitDialog.this.setResult(RESULT_OK, (new Intent())
- .putExtra(EXTRA_EXIT_ECM_RESULT, true));
+ EmergencyCallbackModeExitDialog.this.setResult(RESULT_OK);
finish();
}
}
@@ -354,8 +361,7 @@
switch (msg.what) {
case ECM_TIMER_RESET:
if(!((Boolean)((AsyncResult) msg.obj).result).booleanValue()) {
- EmergencyCallbackModeExitDialog.this.setResult(RESULT_OK, (new Intent())
- .putExtra(EXTRA_EXIT_ECM_RESULT, false));
+ EmergencyCallbackModeExitDialog.this.setResult(RESULT_CANCELED);
finish();
}
break;
diff --git a/src/com/android/phone/EmergencyDialer.java b/src/com/android/phone/EmergencyDialer.java
index cff27b1..3cf74c8 100644
--- a/src/com/android/phone/EmergencyDialer.java
+++ b/src/com/android/phone/EmergencyDialer.java
@@ -23,7 +23,6 @@
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.app.KeyguardManager;
import android.app.WallpaperManager;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -32,18 +31,12 @@
import android.database.DataSetObserver;
import android.graphics.Color;
import android.graphics.Point;
-import android.hardware.Sensor;
-import android.hardware.SensorEvent;
-import android.hardware.SensorEventListener;
-import android.hardware.SensorManager;
import android.media.AudioManager;
import android.media.ToneGenerator;
-import android.metrics.LogMaker;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.PersistableBundle;
-import android.os.SystemClock;
import android.provider.Settings;
import android.telecom.ParcelableCallAnalytics;
import android.telecom.PhoneAccount;
@@ -77,9 +70,10 @@
import com.android.internal.colorextraction.ColorExtractor;
import com.android.internal.colorextraction.ColorExtractor.GradientColors;
-import com.android.internal.colorextraction.drawable.GradientDrawable;
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.internal.colorextraction.drawable.ScrimDrawable;
+import com.android.phone.EmergencyDialerMetricsLogger.DialedFrom;
+import com.android.phone.EmergencyDialerMetricsLogger.PhoneNumberType;
+import com.android.phone.EmergencyDialerMetricsLogger.UiModeErrorCode;
import com.android.phone.common.dialpad.DialpadKeyButton;
import com.android.phone.common.util.ViewUtil;
import com.android.phone.common.widget.ResizingTextEditText;
@@ -107,72 +101,9 @@
public class EmergencyDialer extends Activity implements View.OnClickListener,
View.OnLongClickListener, View.OnKeyListener, TextWatcher,
DialpadKeyButton.OnPressedListener, ColorExtractor.OnColorsChangedListener,
- EmergencyShortcutButton.OnConfirmClickListener, SensorEventListener,
+ EmergencyShortcutButton.OnConfirmClickListener,
EmergencyInfoGroup.OnConfirmClickListener {
- private class MetricsWriter {
- // Metrics constants indicating the UI that user made phone call.
- public static final int CALL_SOURCE_DIALPAD = 0;
- public static final int CALL_SOURCE_SHORTCUT = 1;
-
- // Metrics constants indicating the phone number type of a call user made.
- public static final int PHONE_NUMBER_TYPE_GENERAL = 0;
- public static final int PHONE_NUMBER_TYPE_EMERGENCY = 1;
-
- // Metrics constants indicating the actions performed by user.
- public static final int USER_ACTION_NONE = 0x0;
- public static final int USER_ACTION_OPEN_DIALPAD = 0x1;
- public static final int USER_ACTION_OPEN_EMERGENCY_INFO = 0x2;
- public static final int USER_ACTION_MAKE_CALL_VIA_DIALPAD = 0x4;
- public static final int USER_ACTION_MAKE_CALL_VIA_SHORTCUT = 0x8;
-
- private MetricsLogger mMetricsLogger = new MetricsLogger();
-
- public void writeMetricsForEnter() {
- if (!mShortcutViewConfig.isEnabled()) {
- return;
- }
-
- KeyguardManager keyguard = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
- mMetricsLogger.write(new LogMaker(MetricsEvent.EMERGENCY_DIALER)
- .setType(MetricsEvent.TYPE_OPEN)
- .setSubtype(mEntryType)
- .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_IS_SCREEN_LOCKED,
- keyguard.isKeyguardLocked() ? 1 : 0));
- }
-
- public void writeMetricsForExit() {
- if (!mShortcutViewConfig.isEnabled()) {
- return;
- }
-
- long userStayDuration = SystemClock.elapsedRealtime() - mUserEnterTimeMillis;
- mMetricsLogger.write(new LogMaker(MetricsEvent.EMERGENCY_DIALER)
- .setType(MetricsEvent.TYPE_CLOSE)
- .setSubtype(mEntryType)
- .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_USER_ACTIONS, mUserActions)
- .addTaggedData(
- MetricsEvent.FIELD_EMERGENCY_DIALER_DURATION_MS, userStayDuration));
- }
-
- public void writeMetricsForMakingCall(int callSource, int phoneNumberType,
- boolean hasShortcut) {
- if (!mShortcutViewConfig.isEnabled()) {
- return;
- }
-
- mMetricsLogger.write(new LogMaker(MetricsEvent.EMERGENCY_DIALER_MAKE_CALL)
- .setType(MetricsEvent.TYPE_ACTION)
- .setSubtype(callSource)
- .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_PHONE_NUMBER_TYPE,
- phoneNumberType)
- .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_PHONE_NUMBER_HAS_SHORTCUT,
- hasShortcut ? 1 : 0)
- .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_IN_POCKET,
- mIsProximityNear ? 1 : 0));
- }
- }
-
// Keys used with onSaveInstanceState().
private static final String LAST_NUMBER = "lastNumber";
@@ -282,7 +213,7 @@
// Background gradient
private ColorExtractor mColorExtractor;
- private GradientDrawable mBackgroundGradient;
+ private ScrimDrawable mBackgroundDrawable;
private boolean mSupportsDarkText;
private boolean mIsWfcEmergencyCallingWarningEnabled;
@@ -291,21 +222,7 @@
private int mEntryType;
private ShortcutViewUtils.Config mShortcutViewConfig;
- private MetricsWriter mMetricsWriter;
- private SensorManager mSensorManager;
- private Sensor mProximitySensor;
- private boolean mIsProximityNear = false;
-
- /**
- * The time, in millis, since boot when user opened emergency dialer.
- * This is used when calculating the user stay duration for metrics data.
- */
- private long mUserEnterTimeMillis = 0;
-
- /**
- * Bit flag indicating the actions performed by user. This is used for metrics data.
- */
- private int mUserActions = MetricsWriter.USER_ACTION_NONE;
+ private EmergencyDialerMetricsLogger mMetricsLogger;
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@@ -341,15 +258,11 @@
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
+ mMetricsLogger = new EmergencyDialerMetricsLogger(this);
+
mEntryType = getIntent().getIntExtra(EXTRA_ENTRY_TYPE, ENTRY_TYPE_UNKNOWN);
Log.d(LOG_TAG, "Launched from " + entryTypeToString(mEntryType));
- mMetricsWriter = new MetricsWriter();
- mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
- if (mSensorManager != null) {
- mProximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
- }
-
// Allow this activity to be displayed in front of the keyguard / lockscreen.
setShowWhenLocked(true);
// Allow turning screen on
@@ -385,14 +298,13 @@
mDefaultDigitsTextSize = mDigits.getScaledTextSize();
maybeAddNumberFormatting();
- mBackgroundGradient = new GradientDrawable(this);
+ mBackgroundDrawable = new ScrimDrawable();
Point displaySize = new Point();
((WindowManager) getSystemService(Context.WINDOW_SERVICE))
.getDefaultDisplay().getSize(displaySize);
- mBackgroundGradient.setScreenSize(displaySize.x, displaySize.y);
- mBackgroundGradient.setAlpha(mShortcutViewConfig.isEnabled()
+ mBackgroundDrawable.setAlpha(mShortcutViewConfig.isEnabled()
? BLACK_BACKGROUND_GRADIENT_ALPHA : BACKGROUND_GRADIENT_ALPHA);
- getWindow().setBackgroundDrawable(mBackgroundGradient);
+ getWindow().setBackgroundDrawable(mBackgroundDrawable);
// Check for the presence of the keypad
View view = findViewById(R.id.one);
@@ -584,18 +496,15 @@
@Override
public void onConfirmClick(EmergencyShortcutButton button) {
if (button == null) return;
-
- mUserActions |= MetricsWriter.USER_ACTION_MAKE_CALL_VIA_SHORTCUT;
-
- // We interest on the context when user has intention to make phone call,
- // so write metrics here for shortcut number even the call may not be created.
- mMetricsWriter.writeMetricsForMakingCall(MetricsWriter.CALL_SOURCE_SHORTCUT,
- MetricsWriter.PHONE_NUMBER_TYPE_EMERGENCY, true);
-
String phoneNumber = button.getPhoneNumber();
if (!TextUtils.isEmpty(phoneNumber)) {
if (DBG) Log.d(LOG_TAG, "dial emergency number: " + Rlog.pii(LOG_TAG, phoneNumber));
+
+ // Write metrics when user has intention to make a call from a shortcut button.
+ mMetricsLogger.logPlaceCall(DialedFrom.SHORTCUT, PhoneNumberType.HAS_SHORTCUT,
+ mShortcutViewConfig.getPhoneInfo());
+
placeCall(phoneNumber, ParcelableCallAnalytics.CALL_SOURCE_EMERGENCY_SHORTCUT,
mShortcutViewConfig.getPhoneInfo());
} else {
@@ -607,7 +516,6 @@
public void onConfirmClick(EmergencyInfoGroup button) {
if (button == null) return;
- mUserActions |= MetricsWriter.USER_ACTION_OPEN_EMERGENCY_INFO;
Intent intent = (Intent) button.getTag(R.id.tag_intent);
if (intent != null) {
startActivity(intent);
@@ -633,7 +541,6 @@
return;
}
case R.id.floating_action_button_dialpad: {
- mUserActions |= MetricsWriter.USER_ACTION_OPEN_DIALPAD;
mDigits.getText().clear();
switchView(mDialpadView, mEmergencyShortcutView, true);
return;
@@ -734,20 +641,20 @@
protected void onStart() {
super.onStart();
- mUserEnterTimeMillis = SystemClock.elapsedRealtime();
- mUserActions = MetricsWriter.USER_ACTION_NONE;
- mMetricsWriter.writeMetricsForEnter();
+ mMetricsLogger.logLaunchEmergencyDialer(mEntryType,
+ mShortcutViewConfig.isEnabled() ? UiModeErrorCode.SUCCESS
+ : UiModeErrorCode.UNSPECIFIED_ERROR);
if (mShortcutViewConfig.isEnabled()) {
// Shortcut view doesn't support dark text theme.
- mBackgroundGradient.setColors(Color.BLACK, Color.BLACK, false);
+ mBackgroundDrawable.setColor(Color.BLACK, false);
updateTheme(false);
} else {
mColorExtractor.addOnColorsChangedListener(this);
GradientColors lockScreenColors = mColorExtractor.getColors(WallpaperManager.FLAG_LOCK,
ColorExtractor.TYPE_EXTRA_DARK);
// Do not animate when view isn't visible yet, just set an initial state.
- mBackgroundGradient.setColors(lockScreenColors, false);
+ mBackgroundDrawable.setColor(lockScreenColors.getMainColor(), false);
updateTheme(lockScreenColors.supportsDarkText());
}
@@ -760,11 +667,6 @@
protected void onResume() {
super.onResume();
- if (mProximitySensor != null) {
- mSensorManager.registerListener(
- this, mProximitySensor, SensorManager.SENSOR_DELAY_NORMAL);
- }
-
// retrieve the DTMF tone play back setting.
mDTMFToneEnabled = Settings.System.getInt(getContentResolver(),
Settings.System.DTMF_TONE_WHEN_DIALING, 1) == 1;
@@ -789,15 +691,11 @@
@Override
public void onPause() {
super.onPause();
- if (mProximitySensor != null) {
- mSensorManager.unregisterListener(this, mProximitySensor);
- }
}
@Override
protected void onStop() {
super.onStop();
- mMetricsWriter.writeMetricsForExit();
mColorExtractor.removeOnColorsChangedListener(this);
}
@@ -814,7 +712,7 @@
// We can't change themes after inflation, in this case we'll have to recreate
// the whole activity.
- if (mBackgroundGradient != null) {
+ if (mBackgroundDrawable != null) {
recreate();
return;
}
@@ -836,7 +734,6 @@
* place the call, but check to make sure it is a viable number.
*/
private void placeCall() {
- mUserActions |= MetricsWriter.USER_ACTION_MAKE_CALL_VIA_DIALPAD;
mLastNumber = mDigits.getText().toString();
// Convert into emergency number according to emergency conversion map.
@@ -844,14 +741,28 @@
// nothing and just returns input number.
mLastNumber = PhoneNumberUtils.convertToEmergencyNumber(this, mLastNumber);
+ @DialedFrom final int dialedFrom =
+ mShortcutViewConfig.isEnabled() ? DialedFrom.FASTER_LAUNCHER_DIALPAD
+ : DialedFrom.TRADITIONAL_DIALPAD;
+ @PhoneNumberType final int phoneNumberType;
+
boolean isEmergencyNumber;
ShortcutViewUtils.PhoneInfo phoneToMakeCall = null;
- if (mShortcutViewConfig.hasPromotedEmergencyNumber(mLastNumber)) {
+ if (mShortcutAdapter != null && mShortcutAdapter.hasShortcut(mLastNumber)) {
isEmergencyNumber = true;
phoneToMakeCall = mShortcutViewConfig.getPhoneInfo();
+ phoneNumberType = PhoneNumberType.HAS_SHORTCUT;
+ } else if (mShortcutViewConfig.hasPromotedEmergencyNumber(mLastNumber)) {
+ // If a number from SIM/network/... is categoried as police/ambulance/fire,
+ // hasPromotedEmergencyNumber() will return true, but it maybe not promoted as a
+ // shortcut button because a number provided by database has higher priority.
+ isEmergencyNumber = true;
+ phoneToMakeCall = mShortcutViewConfig.getPhoneInfo();
+ phoneNumberType = PhoneNumberType.NO_SHORTCUT;
} else {
- TelephonyManager tm = getSystemService(TelephonyManager.class);
- isEmergencyNumber = tm.isCurrentEmergencyNumber(mLastNumber);
+ isEmergencyNumber = getSystemService(TelephonyManager.class)
+ .isEmergencyNumber(mLastNumber);
+ phoneNumberType = PhoneNumberType.NO_SHORTCUT;
}
if (isEmergencyNumber) {
@@ -864,18 +775,18 @@
return;
}
- mMetricsWriter.writeMetricsForMakingCall(MetricsWriter.CALL_SOURCE_DIALPAD,
- MetricsWriter.PHONE_NUMBER_TYPE_EMERGENCY, isShortcutNumber(mLastNumber));
+ // Write metrics when user has intention to make a call from dialpad
+ mMetricsLogger.logPlaceCall(dialedFrom, phoneNumberType, phoneToMakeCall);
placeCall(mLastNumber, ParcelableCallAnalytics.CALL_SOURCE_EMERGENCY_DIALPAD,
phoneToMakeCall);
} else {
if (DBG) Log.d(LOG_TAG, "rejecting bad requested number " + mLastNumber);
- // We interest on the context when user has intention to make phone call,
- // so write metrics here for non-emergency numbers even these numbers are rejected.
- mMetricsWriter.writeMetricsForMakingCall(MetricsWriter.CALL_SOURCE_DIALPAD,
- MetricsWriter.PHONE_NUMBER_TYPE_GENERAL, false);
+ // Write metrics when user has intention to make a call of a non-emergency number, even
+ // this number is rejected.
+ mMetricsLogger.logPlaceCall(dialedFrom, PhoneNumberType.NOT_EMERGENCY_NUMBER,
+ phoneToMakeCall);
showDialog(BAD_EMERGENCY_NUMBER_DIALOG);
}
@@ -1030,7 +941,7 @@
if ((which & WallpaperManager.FLAG_LOCK) != 0) {
GradientColors colors = extractor.getColors(WallpaperManager.FLAG_LOCK,
ColorExtractor.TYPE_EXTRA_DARK);
- mBackgroundGradient.setColors(colors);
+ mBackgroundDrawable.setColor(colors.getMainColor(), true /* animated */);
updateTheme(colors.supportsDarkText());
}
}
@@ -1111,13 +1022,6 @@
mEmergencyInfoGroup.setOnConfirmClickListener(this);
- // EmergencyActionGroup is replaced by EmergencyInfoGroup.
- mEmergencyActionGroup.setVisibility(View.GONE);
-
- // Setup dialpad title.
- final View emergencyDialpadTitle = findViewById(R.id.emergency_dialpad_title_container);
- emergencyDialpadTitle.setVisibility(View.VISIBLE);
-
mEmergencyShortcutButtonList = new ArrayList<>();
setupEmergencyCallShortcutButton();
@@ -1296,17 +1200,6 @@
});
}
- @Override
- public void onSensorChanged(SensorEvent event) {
- float distance = event.values[0];
- mIsProximityNear = (distance < mProximitySensor.getMaximumRange());
- }
-
- @Override
- public void onAccuracyChanged(Sensor sensor, int accuracy) {
- // Not used.
- }
-
private boolean isShortcutNumber(String number) {
if (TextUtils.isEmpty(number) || mEmergencyShortcutButtonList == null) {
return false;
diff --git a/src/com/android/phone/EmergencyDialerMetricsLogger.java b/src/com/android/phone/EmergencyDialerMetricsLogger.java
new file mode 100644
index 0000000..b9ba352
--- /dev/null
+++ b/src/com/android/phone/EmergencyDialerMetricsLogger.java
@@ -0,0 +1,289 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone;
+
+import android.annotation.IntDef;
+import android.app.KeyguardManager;
+import android.content.Context;
+import android.metrics.LogMaker;
+import android.os.Build;
+import android.telephony.TelephonyManager;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * EmergencyCallMetricsLogger is a utility to collect metrics of emergency calls
+ */
+class EmergencyDialerMetricsLogger {
+ private static final String LOG_TAG = "EmergencyDialerLogger";
+
+ @IntDef({
+ DialedFrom.TRADITIONAL_DIALPAD,
+ DialedFrom.SHORTCUT,
+ DialedFrom.FASTER_LAUNCHER_DIALPAD,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ @interface DialedFrom {
+ int TRADITIONAL_DIALPAD = 0;
+ int SHORTCUT = 1;
+ int FASTER_LAUNCHER_DIALPAD = 2;
+ }
+
+ @IntDef({
+ LaunchedFrom.UNDEFINED,
+ LaunchedFrom.LOCK_SCREEN,
+ LaunchedFrom.POWER_KEY_MENU,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ @interface LaunchedFrom {
+ int UNDEFINED = 0;
+ int LOCK_SCREEN = 1;
+ int POWER_KEY_MENU = 2;
+ }
+
+ @IntDef({
+ PhoneNumberType.HAS_SHORTCUT,
+ PhoneNumberType.NO_SHORTCUT,
+ PhoneNumberType.NOT_EMERGENCY_NUMBER,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ @interface PhoneNumberType {
+ int HAS_SHORTCUT = 0;
+ int NO_SHORTCUT = 1;
+ int NOT_EMERGENCY_NUMBER = 2;
+ }
+
+ @IntDef({
+ UiModeErrorCode.UNSPECIFIED_ERROR,
+ UiModeErrorCode.SUCCESS,
+ UiModeErrorCode.CONFIG_ENTRY_POINT,
+ UiModeErrorCode.CONFIG_SIM_OPERATOR,
+ UiModeErrorCode.UNSUPPORTED_COUNTRY,
+ UiModeErrorCode.AIRPLANE_MODE,
+ UiModeErrorCode.NO_PROMOTED_NUMBER,
+ UiModeErrorCode.NO_CAPABLE_PHONE,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ @interface UiModeErrorCode {
+ int UNSPECIFIED_ERROR = -1;
+ int SUCCESS = 0;
+ int CONFIG_ENTRY_POINT = 1;
+ int CONFIG_SIM_OPERATOR = 2;
+ int UNSUPPORTED_COUNTRY = 3;
+ int AIRPLANE_MODE = 4;
+ int NO_PROMOTED_NUMBER = 5;
+ int NO_CAPABLE_PHONE = 6;
+ }
+
+ private class TelephonyInfo {
+ private final String mNetworkCountryIso;
+ private final String mNetworkOperator;
+
+ TelephonyInfo(String networkCountryIso, String networkOperator) {
+ mNetworkCountryIso = networkCountryIso;
+ mNetworkOperator = networkOperator;
+ }
+ }
+
+ private final MetricsLogger mMetricsLogger = new MetricsLogger();
+
+ private final Context mAppContext;
+
+ @LaunchedFrom
+ private int mLaunchedFrom;
+ @UiModeErrorCode
+ private int mUiModeErrorCode;
+
+ EmergencyDialerMetricsLogger(Context context) {
+ mAppContext = context.getApplicationContext();
+ }
+
+ /**
+ * Log when Emergency Dialer is launched.
+ * - Where the user launch Emergency Dialer from.
+ * - Whether shortcut view is enabled, and the reason why it's not enabled.
+ *
+ * @param entryType
+ * @param uiModeErrorCode
+ */
+ public void logLaunchEmergencyDialer(int entryType,
+ @UiModeErrorCode int uiModeErrorCode) {
+ final @EmergencyDialerMetricsLogger.LaunchedFrom int launchedFrom;
+ if (entryType == EmergencyDialer.ENTRY_TYPE_LOCKSCREEN_BUTTON) {
+ launchedFrom = EmergencyDialerMetricsLogger.LaunchedFrom.LOCK_SCREEN;
+ } else if (entryType == EmergencyDialer.ENTRY_TYPE_POWER_MENU) {
+ launchedFrom = EmergencyDialerMetricsLogger.LaunchedFrom.POWER_KEY_MENU;
+ } else {
+ launchedFrom = EmergencyDialerMetricsLogger.LaunchedFrom.UNDEFINED;
+ }
+
+ mLaunchedFrom = launchedFrom;
+ mUiModeErrorCode = uiModeErrorCode;
+ }
+
+ /**
+ * Log when user tring to place an emergency call.
+ * - Which UI (traditional dialpad, shortcut button, dialpad in shortcut view) the user place
+ * the call from.
+ * - The number is promoted in shortcut view or not, or not even an emergency number?
+ * - Whether the device is locked.
+ * - Network country ISO and network operator.
+ *
+ * @param dialedFrom
+ * @param phoneNumberType
+ * @param phoneInfo
+ */
+ public void logPlaceCall(@DialedFrom int dialedFrom,
+ @PhoneNumberType int phoneNumberType,
+ @Nullable ShortcutViewUtils.PhoneInfo phoneInfo) {
+ TelephonyInfo telephonyInfo = getTelephonyInfo(phoneNumberType, phoneInfo);
+ final KeyguardManager keyguard = mAppContext.getSystemService(KeyguardManager.class);
+
+ logBeforeMakeCall(dialedFrom, phoneNumberType, keyguard.isKeyguardLocked(),
+ telephonyInfo.mNetworkCountryIso, telephonyInfo.mNetworkOperator);
+ }
+
+ private TelephonyInfo getTelephonyInfo(@PhoneNumberType int phoneNumberType,
+ @Nullable ShortcutViewUtils.PhoneInfo phoneInfo) {
+ final TelephonyManager telephonyManager = mAppContext.getSystemService(
+ TelephonyManager.class);
+ final TelephonyManager subTelephonyManager;
+ final String networkCountryIso;
+ final String networkOperator;
+ if (phoneNumberType == PhoneNumberType.HAS_SHORTCUT && phoneInfo != null) {
+ subTelephonyManager = telephonyManager.createForSubscriptionId(phoneInfo.getSubId());
+ networkCountryIso = phoneInfo.getCountryIso();
+ } else {
+ // No specific phone to make this call. Take information of default network.
+ subTelephonyManager = null;
+ networkCountryIso = telephonyManager.getNetworkCountryIso();
+ }
+ if (subTelephonyManager != null) {
+ networkOperator = subTelephonyManager.getNetworkOperator();
+ } else {
+ // This could be:
+ // - No specific phone to make this call.
+ // - Subscription changed! Maybe the device roamed to another network?
+ // Take information of default network.
+ networkOperator = telephonyManager.getNetworkOperator();
+ }
+
+ return new TelephonyInfo(networkCountryIso, networkOperator);
+ }
+
+ private void logBeforeMakeCall(@DialedFrom int dialedFrom,
+ @PhoneNumberType int phoneNumberType,
+ boolean isDeviceLocked,
+ String networkCountryIso,
+ String networkOperator) {
+ if (Log.isLoggable(LOG_TAG, Log.DEBUG)) {
+ Log.d(LOG_TAG, "EmergencyDialer session: dialedFrom=" + dialFromToString(dialedFrom)
+ + ", launchedFrom=" + launchedFromToString(mLaunchedFrom)
+ + ", uimode=" + uiModeErrorCodeToString(mUiModeErrorCode)
+ + ", type=" + phoneNumberTypeToString(phoneNumberType)
+ + ", locked=" + isDeviceLocked
+ + ", country=" + networkCountryIso
+ + ", operator=" + networkOperator);
+ }
+ mMetricsLogger.write(new LogMaker(MetricsEvent.EMERGENCY_DIALER_MAKE_CALL_V2)
+ .setType(MetricsEvent.TYPE_ACTION)
+ .setSubtype(dialedFrom)
+ .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_LAUNCH_FROM, mLaunchedFrom)
+ .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_UI_MODE_ERROR_CODE,
+ mUiModeErrorCode)
+ .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_PHONE_NUMBER_TYPE,
+ phoneNumberType)
+ .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_IS_DEVICE_LOCKED,
+ isDeviceLocked ? 1 : 0)
+ .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_NETWORK_COUNTRY_ISO,
+ networkCountryIso)
+ .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_NETWORK_OPERATOR,
+ networkOperator)
+ .addTaggedData(MetricsEvent.FIELD_EMERGENCY_DIALER_RADIO_VERSION,
+ Build.getRadioVersion())
+ );
+ }
+
+ private String dialFromToString(@DialedFrom int dialedFrom) {
+ switch (dialedFrom) {
+ case DialedFrom.TRADITIONAL_DIALPAD:
+ return "traditional";
+ case DialedFrom.SHORTCUT:
+ return "shortcut";
+ case DialedFrom.FASTER_LAUNCHER_DIALPAD:
+ return "dialpad";
+ default:
+ return "unknown_error";
+ }
+ }
+
+ private String launchedFromToString(@LaunchedFrom int launchedFrom) {
+ switch (launchedFrom) {
+ case LaunchedFrom.UNDEFINED:
+ return "undefined";
+ case LaunchedFrom.LOCK_SCREEN:
+ return "lockscreen";
+ case LaunchedFrom.POWER_KEY_MENU:
+ return "powermenu";
+ default:
+ return "unknown_error";
+ }
+ }
+
+ private String phoneNumberTypeToString(@PhoneNumberType int phoneNumberType) {
+ switch (phoneNumberType) {
+ case PhoneNumberType.HAS_SHORTCUT:
+ return "has_shortcut";
+ case PhoneNumberType.NO_SHORTCUT:
+ return "no_shortcut";
+ case PhoneNumberType.NOT_EMERGENCY_NUMBER:
+ return "not_emergency";
+ default:
+ return "unknown_error";
+ }
+ }
+
+ private String uiModeErrorCodeToString(@UiModeErrorCode int uiModeErrorCode) {
+ switch (uiModeErrorCode) {
+ case UiModeErrorCode.UNSPECIFIED_ERROR:
+ return "unspecified_error";
+ case UiModeErrorCode.SUCCESS:
+ return "success";
+ case UiModeErrorCode.CONFIG_ENTRY_POINT:
+ return "config_entry_point";
+ case UiModeErrorCode.CONFIG_SIM_OPERATOR:
+ return "config_sim_operator";
+ case UiModeErrorCode.UNSUPPORTED_COUNTRY:
+ return "unsupported_country";
+ case UiModeErrorCode.AIRPLANE_MODE:
+ return "airplane_mode";
+ case UiModeErrorCode.NO_PROMOTED_NUMBER:
+ return "no_promoted_number";
+ case UiModeErrorCode.NO_CAPABLE_PHONE:
+ return "no_capable_phone";
+ default:
+ return "unknown_error";
+ }
+ }
+}
diff --git a/src/com/android/phone/EmergencyInfoGroup.java b/src/com/android/phone/EmergencyInfoGroup.java
index 6ce10aa..14c24d8 100644
--- a/src/com/android/phone/EmergencyInfoGroup.java
+++ b/src/com/android/phone/EmergencyInfoGroup.java
@@ -127,7 +127,7 @@
if (infos != null && infos.size() > 0) {
final String packageName = infos.get(0).activityInfo.packageName;
final Intent intent = new Intent(
- EmergencyAssistanceHelper.getIntentAction(getContext()))
+ EmergencyAssistanceHelper.getIntentAction())
.setPackage(packageName);
setTag(R.id.tag_intent, intent);
setUserIcon();
@@ -298,4 +298,4 @@
setLayoutParams(params);
}
-}
\ No newline at end of file
+}
diff --git a/src/com/android/phone/GsmUmtsAdditionalCallOptions.java b/src/com/android/phone/GsmUmtsAdditionalCallOptions.java
index b79cdd8..6e28922 100644
--- a/src/com/android/phone/GsmUmtsAdditionalCallOptions.java
+++ b/src/com/android/phone/GsmUmtsAdditionalCallOptions.java
@@ -1,6 +1,7 @@
package com.android.phone;
import android.app.ActionBar;
+import android.app.Dialog;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.preference.Preference;
@@ -10,6 +11,7 @@
import android.view.MenuItem;
import com.android.internal.telephony.Phone;
+import com.android.phone.settings.SuppServicesUiUtil;
import java.util.ArrayList;
@@ -17,8 +19,11 @@
private static final String LOG_TAG = "GsmUmtsAdditionalCallOptions";
private final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
- private static final String BUTTON_CLIR_KEY = "button_clir_key";
- private static final String BUTTON_CW_KEY = "button_cw_key";
+ public static final String BUTTON_CLIR_KEY = "button_clir_key";
+ public static final String BUTTON_CW_KEY = "button_cw_key";
+
+ private static final int CW_WARNING_DIALOG = 201;
+ private static final int CALLER_ID_WARNING_DIALOG = 202;
private CLIRListPreference mCLIRButton;
private CallWaitingSwitchPreference mCWButton;
@@ -28,8 +33,10 @@
private Phone mPhone;
private SubscriptionInfoHelper mSubscriptionInfoHelper;
- private boolean mShowCLIRButton;
- private boolean mShowCWButton;
+ private boolean mShowCLIRButton = true;
+ private boolean mShowCWButton = true;
+ private boolean mCLIROverUtPrecautions = false;
+ private boolean mCWOverUtPrecautions = false;
@Override
protected void onCreate(Bundle icicle) {
@@ -59,11 +66,25 @@
CarrierConfigManager.KEY_ADDITIONAL_SETTINGS_CALLER_ID_VISIBILITY_BOOL);
mShowCWButton = b.getBoolean(
CarrierConfigManager.KEY_ADDITIONAL_SETTINGS_CALL_WAITING_VISIBILITY_BOOL);
+ mCLIROverUtPrecautions = mShowCLIRButton && b.getBoolean(
+ CarrierConfigManager.KEY_CALLER_ID_OVER_UT_WARNING_BOOL);
+ mCWOverUtPrecautions = mShowCWButton && b.getBoolean(
+ CarrierConfigManager.KEY_CALL_WAITING_OVER_UT_WARNING_BOOL);
+ if (DBG) {
+ Log.d(LOG_TAG, "mCLIROverUtPrecautions:" + mCLIROverUtPrecautions
+ + ",mCWOverUtPrecautions:" + mCWOverUtPrecautions);
+ }
}
+ boolean isSsOverUtPrecautions = SuppServicesUiUtil.isSsOverUtPrecautions(this, mPhone);
+
if (mCLIRButton != null) {
if (mShowCLIRButton) {
- mPreferences.add(mCLIRButton);
+ if (mCLIROverUtPrecautions && isSsOverUtPrecautions) {
+ mCLIRButton.setEnabled(false);
+ } else {
+ mPreferences.add(mCLIRButton);
+ }
} else {
prefSet.removePreference(mCLIRButton);
}
@@ -71,7 +92,11 @@
if (mCWButton != null) {
if (mShowCWButton) {
- mPreferences.add(mCWButton);
+ if (mCWOverUtPrecautions && isSsOverUtPrecautions) {
+ mCWButton.setEnabled(false);
+ } else {
+ mPreferences.add(mCWButton);
+ }
} else {
prefSet.removePreference(mCWButton);
}
@@ -84,10 +109,10 @@
} else {
if (DBG) Log.d(LOG_TAG, "restore stored states");
mInitIndex = mPreferences.size();
- if (mShowCWButton) {
+ if (mShowCWButton && mCWButton != null && mCWButton.isEnabled()) {
mCWButton.init(this, true, mPhone);
}
- if (mShowCLIRButton) {
+ if (mShowCLIRButton && mCLIRButton != null && mCLIRButton.isEnabled()) {
mCLIRButton.init(this, true, mPhone);
int[] clirArray = icicle.getIntArray(mCLIRButton.getKey());
if (clirArray != null) {
@@ -111,6 +136,52 @@
}
@Override
+ public void onResume() {
+ super.onResume();
+ int indexOfStartInit = mPreferences.size();
+ boolean isPrecaution = SuppServicesUiUtil.isSsOverUtPrecautions(this, mPhone);
+ dismissWarningDialog();
+
+ if (mShowCLIRButton && mCLIROverUtPrecautions && mCLIRButton != null) {
+ if (isPrecaution) {
+ showWarningDialog(CW_WARNING_DIALOG);
+ if (mCLIRButton.isEnabled()) {
+ if (mPreferences.contains(mCLIRButton)) {
+ mPreferences.remove(mCLIRButton);
+ }
+ mCLIRButton.setEnabled(false);
+ }
+ } else {
+ if (!mPreferences.contains(mCLIRButton)) {
+ mCLIRButton.setEnabled(true);
+ mPreferences.add(mCLIRButton);
+ }
+ }
+ }
+ if (mShowCWButton && mCWOverUtPrecautions && mCWButton != null) {
+ if (isPrecaution) {
+ showWarningDialog(CALLER_ID_WARNING_DIALOG);
+ if (mCWButton.isEnabled()) {
+ if (mPreferences.contains(mCWButton)) {
+ mPreferences.remove(mCWButton);
+ }
+ mCWButton.setEnabled(false);
+ }
+ } else {
+ if (!mPreferences.contains(mCWButton)) {
+ mCWButton.setEnabled(true);
+ mPreferences.add(mCWButton);
+ }
+ }
+ }
+
+ if (indexOfStartInit < mPreferences.size()) {
+ mInitIndex = indexOfStartInit;
+ doPreferenceInit(indexOfStartInit);
+ }
+ }
+
+ @Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
@@ -139,7 +210,7 @@
}
private void doPreferenceInit(int index) {
- if (mPreferences.size() != 0) {
+ if (mPreferences.size() > index) {
Preference pref = mPreferences.get(index);
if (pref instanceof CallWaitingSwitchPreference) {
((CallWaitingSwitchPreference) pref).init(this, false, mPhone);
@@ -148,4 +219,23 @@
}
}
}
+
+ @Override
+ protected Dialog onCreateDialog(int id) {
+ if (id == CW_WARNING_DIALOG) {
+ return SuppServicesUiUtil.showBlockingSuppServicesDialog(this, mPhone, BUTTON_CW_KEY);
+ } else if (id == CALLER_ID_WARNING_DIALOG) {
+ return SuppServicesUiUtil.showBlockingSuppServicesDialog(this, mPhone, BUTTON_CLIR_KEY);
+ }
+ return super.onCreateDialog(id);
+ }
+
+ private void showWarningDialog(int id) {
+ showDialog(id);
+ }
+
+ private void dismissWarningDialog() {
+ dismissDialogSafely(CW_WARNING_DIALOG);
+ dismissDialogSafely(CALLER_ID_WARNING_DIALOG);
+ }
}
diff --git a/src/com/android/phone/GsmUmtsCallBarringOptions.java b/src/com/android/phone/GsmUmtsCallBarringOptions.java
index a6f9844..3c9cd84 100644
--- a/src/com/android/phone/GsmUmtsCallBarringOptions.java
+++ b/src/com/android/phone/GsmUmtsCallBarringOptions.java
@@ -27,7 +27,6 @@
import android.preference.Preference;
import android.preference.PreferenceScreen;
import android.telephony.CarrierConfigManager;
-import android.telephony.ServiceState;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.util.Log;
@@ -423,9 +422,7 @@
boolean useDisableaAll = true;
ImsPhone imsPhone = mPhone != null ? (ImsPhone) mPhone.getImsPhone() : null;
- if (imsPhone != null
- && ((imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE)
- || imsPhone.isUtEnabled())) {
+ if (imsPhone != null && imsPhone.isUtEnabled()) {
usePassword = false;
useDisableaAll = false;
}
diff --git a/src/com/android/phone/GsmUmtsCallForwardOptions.java b/src/com/android/phone/GsmUmtsCallForwardOptions.java
index 6d80621..10bd8d7 100644
--- a/src/com/android/phone/GsmUmtsCallForwardOptions.java
+++ b/src/com/android/phone/GsmUmtsCallForwardOptions.java
@@ -4,6 +4,7 @@
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
+import android.os.PersistableBundle;
import android.preference.Preference;
import android.preference.PreferenceScreen;
import android.telephony.CarrierConfigManager;
@@ -17,6 +18,7 @@
import java.util.ArrayList;
public class GsmUmtsCallForwardOptions extends TimeConsumingPreferenceActivity {
+ private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
private static final String LOG_TAG = "GsmUmtsCallForwardOptions";
private static final String NUM_PROJECTION[] = {
@@ -47,6 +49,7 @@
private Phone mPhone;
private SubscriptionInfoHelper mSubscriptionInfoHelper;
private boolean mReplaceInvalidCFNumbers;
+ private boolean mCallForwardByUssd;
@Override
protected void onCreate(Bundle icicle) {
@@ -59,11 +62,21 @@
getActionBar(), getResources(), R.string.call_forwarding_settings_with_label);
mPhone = mSubscriptionInfoHelper.getPhone();
- CarrierConfigManager carrierConfig = (CarrierConfigManager)
- getSystemService(CARRIER_CONFIG_SERVICE);
- if (carrierConfig != null) {
- mReplaceInvalidCFNumbers = carrierConfig.getConfig().getBoolean(
+ PersistableBundle b = null;
+ boolean supportCFNRc = true;
+ if (mSubscriptionInfoHelper.hasSubId()) {
+ b = PhoneGlobals.getInstance().getCarrierConfigForSubId(
+ mSubscriptionInfoHelper.getSubId());
+ } else {
+ b = PhoneGlobals.getInstance().getCarrierConfig();
+ }
+ if (b != null) {
+ mReplaceInvalidCFNumbers = b.getBoolean(
CarrierConfigManager.KEY_CALL_FORWARDING_MAP_NON_NUMBER_TO_VOICEMAIL_BOOL);
+ mCallForwardByUssd = b.getBoolean(
+ CarrierConfigManager.KEY_USE_CALL_FORWARDING_USSD_BOOL);
+ supportCFNRc = b.getBoolean(
+ CarrierConfigManager.KEY_CALL_FORWARDING_WHEN_UNREACHABLE_SUPPORTED_BOOL);
}
PreferenceScreen prefSet = getPreferenceScreen();
@@ -80,7 +93,28 @@
mPreferences.add(mButtonCFU);
mPreferences.add(mButtonCFB);
mPreferences.add(mButtonCFNRy);
- mPreferences.add(mButtonCFNRc);
+
+ if (supportCFNRc) {
+ mPreferences.add(mButtonCFNRc);
+ } else {
+ // When CFNRc is not supported, mButtonCFNRc is grayed out from the menu.
+ // Default state for the preferences in this PreferenceScreen is disabled.
+ // Only preferences listed in the ArrayList mPreferences will be enabled.
+ // By not adding mButtonCFNRc to mPreferences it will be kept disabled.
+ if (DBG) Log.d(LOG_TAG, "onCreate: CFNRc is not supported, grey out the item.");
+ }
+
+ if (mCallForwardByUssd) {
+ //the call forwarding ussd command's behavior is similar to the call forwarding when
+ //unanswered,so only display the call forwarding when unanswered item.
+ prefSet.removePreference(mButtonCFU);
+ prefSet.removePreference(mButtonCFB);
+ prefSet.removePreference(mButtonCFNRc);
+ mPreferences.remove(mButtonCFU);
+ mPreferences.remove(mButtonCFB);
+ mPreferences.remove(mButtonCFNRc);
+ mButtonCFNRy.setDependency(null);
+ }
// we wait to do the initialization until onResume so that the
// TimeConsumingPreferenceActivity dialog can display as it
@@ -104,7 +138,7 @@
if (mIcicle == null) {
Log.d(LOG_TAG, "start to init ");
CallForwardEditPreference pref = mPreferences.get(mInitIndex);
- pref.init(this, mPhone, mReplaceInvalidCFNumbers);
+ pref.init(this, mPhone, mReplaceInvalidCFNumbers, mCallForwardByUssd);
pref.startCallForwardOptionsQuery();
} else {
@@ -117,7 +151,7 @@
CallForwardInfo cf = new CallForwardInfo();
cf.number = bundle.getString(KEY_NUMBER);
cf.status = bundle.getInt(KEY_STATUS);
- pref.init(this, mPhone, mReplaceInvalidCFNumbers);
+ pref.init(this, mPhone, mReplaceInvalidCFNumbers, mCallForwardByUssd);
pref.restoreCallForwardInfo(cf);
}
}
@@ -147,7 +181,7 @@
if (mInitIndex < mPreferences.size()-1 && !isFinishing()) {
mInitIndex++;
CallForwardEditPreference pref = mPreferences.get(mInitIndex);
- pref.init(this, mPhone, mReplaceInvalidCFNumbers);
+ pref.init(this, mPhone, mReplaceInvalidCFNumbers, mCallForwardByUssd);
pref.startCallForwardOptionsQuery();
}
diff --git a/src/com/android/phone/GsmUmtsCallOptions.java b/src/com/android/phone/GsmUmtsCallOptions.java
index ab44b54..88cae54 100644
--- a/src/com/android/phone/GsmUmtsCallOptions.java
+++ b/src/com/android/phone/GsmUmtsCallOptions.java
@@ -30,8 +30,8 @@
private static final String LOG_TAG = "GsmUmtsCallOptions";
private final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
- private static final String CALL_FORWARDING_KEY = "call_forwarding_key";
- private static final String CALL_BARRING_KEY = "call_barring_key";
+ public static final String CALL_FORWARDING_KEY = "call_forwarding_key";
+ public static final String CALL_BARRING_KEY = "call_barring_key";
private static final String ADDITIONAL_GSM_SETTINGS_KEY = "additional_gsm_call_settings_key";
@Override
diff --git a/src/com/android/phone/GsmUmtsOptions.java b/src/com/android/phone/GsmUmtsOptions.java
deleted file mode 100644
index 35aab34..0000000
--- a/src/com/android/phone/GsmUmtsOptions.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.PersistableBundle;
-import android.preference.Preference;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceScreen;
-import android.provider.Settings;
-import android.telephony.CarrierConfigManager;
-import android.telephony.TelephonyManager;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.PhoneConstants;
-import com.android.settingslib.RestrictedLockUtils;
-
-/**
- * List of Network-specific settings screens.
- */
-public class GsmUmtsOptions {
- private static final String LOG_TAG = "GsmUmtsOptions";
-
- private CarrierConfigManager mCarrierConfigManager;
- private RestrictedPreference mButtonAPNExpand;
- private Preference mCategoryAPNExpand;
- Preference mCarrierSettingPref;
-
- private NetworkOperators mNetworkOperator;
-
- private static final String BUTTON_APN_EXPAND_KEY = "button_gsm_apn_key";
- private static final String CATEGORY_APN_EXPAND_KEY = "category_gsm_apn_key";
- private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
-
- public static final String EXTRA_SUB_ID = "sub_id";
- private PreferenceFragment mPrefFragment;
- private PreferenceScreen mPrefScreen;
-
- public GsmUmtsOptions(PreferenceFragment prefFragment, PreferenceScreen prefScreen,
- final int subId) {
- final Context context = prefFragment.getContext();
- mPrefFragment = prefFragment;
- mPrefScreen = prefScreen;
- mCarrierConfigManager = new CarrierConfigManager(context);
- mPrefFragment.addPreferencesFromResource(R.xml.gsm_umts_options);
- mButtonAPNExpand = (RestrictedPreference) mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY);
- mCategoryAPNExpand = mPrefScreen.findPreference(CATEGORY_APN_EXPAND_KEY);
- mNetworkOperator = (NetworkOperators) mPrefScreen
- .findPreference(NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
- mCarrierSettingPref = mPrefScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
-
- mNetworkOperator.initialize();
-
- update(subId);
- }
-
- // Unlike mPrefFragment or mPrefScreen, subId may change during lifecycle of GsmUmtsOptions.
- // When that happens, we update GsmUmtsOptions with new parameters.
- protected void update(final int subId) {
- boolean addAPNExpand = true;
- boolean addNetworkOperatorsCategory = true;
- boolean addCarrierSettings = true;
- final TelephonyManager telephonyManager = TelephonyManager.from(mPrefFragment.getContext())
- .createForSubscriptionId(subId);
- if (telephonyManager.getPhoneType() != PhoneConstants.PHONE_TYPE_GSM) {
- log("Not a GSM phone");
- addAPNExpand = false;
- mNetworkOperator.setEnabled(false);
- } else {
- log("Not a CDMA phone");
- PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subId);
-
- // Determine which options to display. For GSM these are defaulted to true in
- // CarrierConfigManager, but they maybe overriden by DefaultCarrierConfigService or a
- // carrier app.
- // Note: these settings used to be controlled with overlays in
- // Telephony/res/values/config.xml
- if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_APN_EXPAND_BOOL)
- && mCategoryAPNExpand != null) {
- addAPNExpand = false;
- }
- if (!carrierConfig.getBoolean(
- CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL)) {
- addNetworkOperatorsCategory = false;
- }
-
- if (carrierConfig.getBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL)) {
- if (telephonyManager.isManualNetworkSelectionAllowed()) {
- log("[CSP] Enabling Operator Selection menu.");
- mNetworkOperator.setEnabled(true);
- } else {
- log("[CSP] Disabling Operator Selection menu.");
- addNetworkOperatorsCategory = false;
- }
- }
-
- // Read platform settings for carrier settings
- addCarrierSettings = carrierConfig.getBoolean(
- CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL);
- }
-
- // Making no assumptions of whether they are added or removed at this point.
- // Calling add or remove explicitly to make sure they are updated.
-
- if (addAPNExpand) {
- log("update: addAPNExpand");
- mButtonAPNExpand.setDisabledByAdmin(
- MobileNetworkSettings.isDpcApnEnforced(mButtonAPNExpand.getContext())
- ? RestrictedLockUtils.getDeviceOwner(mButtonAPNExpand.getContext())
- : null);
- mButtonAPNExpand.setOnPreferenceClickListener(
- new Preference.OnPreferenceClickListener() {
- @Override
- public boolean onPreferenceClick(Preference preference) {
- MetricsLogger.action(mButtonAPNExpand.getContext(),
- MetricsEvent.ACTION_MOBILE_NETWORK_APN_SETTINGS);
- // We need to build the Intent by hand as the Preference Framework
- // does not allow to add an Intent with some extras into a Preference
- // XML file
- final Intent intent = new Intent(Settings.ACTION_APN_SETTINGS);
- // This will setup the Home and Search affordance
- intent.putExtra(":settings:show_fragment_as_subsetting", true);
- intent.putExtra(EXTRA_SUB_ID, subId);
- mPrefFragment.startActivity(intent);
- return true;
- }
- });
- mPrefScreen.addPreference(mCategoryAPNExpand);
- } else {
- mPrefScreen.removePreference(mCategoryAPNExpand);
- }
-
- if (addNetworkOperatorsCategory) {
- mPrefScreen.addPreference(mNetworkOperator);
- mNetworkOperator.update(subId);
- } else {
- mPrefScreen.removePreference(mNetworkOperator);
- }
-
- if (addCarrierSettings) {
- mPrefScreen.addPreference(mCarrierSettingPref);
- } else {
- mPrefScreen.removePreference(mCarrierSettingPref);
- }
-
- }
-
- protected boolean preferenceTreeClick(Preference preference) {
- return mNetworkOperator.preferenceTreeClick(preference);
- }
-
- protected void log(String s) {
- android.util.Log.d(LOG_TAG, s);
- }
-}
diff --git a/src/com/android/phone/INetworkQueryService.aidl b/src/com/android/phone/INetworkQueryService.aidl
deleted file mode 100644
index f65c971..0000000
--- a/src/com/android/phone/INetworkQueryService.aidl
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2008 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 com.android.phone.INetworkQueryServiceCallback;
-
-/**
- * Service interface to handle queries for available networks. The
- * Phone application lets this service interface handle carrier
- * availability queries instead of making direct calls to the Phone layer.
- */
-oneway interface INetworkQueryService {
-
- /**
- * Starts a network query if it has not been started yet, and
- * request a callback through the INetworkQueryServiceCallback
- * object on query completion. If there is an existing request,
- * then just add the callback to the list of notifications
- * that will be sent upon query completion.
- *
- * It will send the network query with the use of
- * <code>TelephonyManager.requestNetworkScan()</code> if the
- * isIncrementalResult is true. And if the isIncrementalResult
- * is set as false, it will try to send network query through
- * <code>Phone.getAvailableNetworks()</code>.
- */
- void startNetworkQuery(in INetworkQueryServiceCallback cb, in int phoneId, boolean isIncrementalResult);
-
- /**
- * Tells the service that the requested query is to be ignored.
- * This may not do anything for the Query request in the
- * underlying RIL, but it ensures that the callback is removed
- * from the list of notifications.
- */
- void stopNetworkQuery();
-
- /**
- * Tells the service to unregister the network query callback.
- * Will not attempt to stop an ongoing network query.
- * Functionally may be the same as stopNetworkQuery since that
- * function also does not stop a query request in the underlying
- * RIL.
- */
- void unregisterCallback(in INetworkQueryServiceCallback cb);
-}
diff --git a/src/com/android/phone/INetworkQueryServiceCallback.aidl b/src/com/android/phone/INetworkQueryServiceCallback.aidl
deleted file mode 100644
index 2299f5e..0000000
--- a/src/com/android/phone/INetworkQueryServiceCallback.aidl
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.telephony.CellInfo;
-import com.android.internal.telephony.OperatorInfo;
-
-/**
- * Service interface to handle callbacks into the activity from the
- * NetworkQueryService. These objects are used to notify that a
- * query is complete and that the results are ready to process.
- */
-oneway interface INetworkQueryServiceCallback {
-
- /**
- * Returns the scan results to the user, this callback will be
- * called at least one time.
- */
- void onResults(in List<CellInfo> results);
-
- /**
- * Informs the user that the scan has stopped.
- *
- * This callback will be called when the scan is finished or cancelled by the user.
- * The related NetworkScanRequest will be deleted after this callback.
- */
- void onComplete();
-
- /**
- * Informs the user that there is some error about the scan.
- *
- * This callback will be called whenever there is any error about the scan,
- * and the scan will be terminated. onComplete() will NOT be called.
- */
- void onError(int error);
-
-}
diff --git a/src/com/android/phone/ImsUtil.java b/src/com/android/phone/ImsUtil.java
index ee23e6f..18fc534 100644
--- a/src/com/android/phone/ImsUtil.java
+++ b/src/com/android/phone/ImsUtil.java
@@ -113,7 +113,7 @@
public static boolean shouldPromoteWfc(Context context, int phoneId) {
CarrierConfigManager cfgManager = (CarrierConfigManager) context
.getSystemService(Context.CARRIER_CONFIG_SERVICE);
- if (cfgManager == null || cfgManager.getConfigForSubId(getSubId(phoneId))
+ if (cfgManager == null || !cfgManager.getConfigForSubId(getSubId(phoneId))
.getBoolean(CarrierConfigManager.KEY_CARRIER_PROMOTE_WFC_ON_CALL_FAIL_BOOL)) {
return false;
}
diff --git a/src/com/android/phone/MobileDataPreference.java b/src/com/android/phone/MobileDataPreference.java
deleted file mode 100644
index e1ceab0..0000000
--- a/src/com/android/phone/MobileDataPreference.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.app.AlertDialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.database.ContentObserver;
-import android.net.Uri;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.preference.DialogPreference;
-import android.preference.PreferenceScreen;
-import android.provider.Settings.Global;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.view.View;
-import android.widget.Checkable;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-
-import java.util.List;
-
-/**
- * Customized Preference to enable / disable mobile data.
- * Basically copy of with com.android.settings.CellDataPreference.
- */
-public class MobileDataPreference extends DialogPreference {
-
- private static final boolean DBG = false;
- private static final String TAG = "MobileDataPreference";
-
- public int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
- public boolean mChecked;
- // Whether to show the dialog to ask switching default data subscription.
- // Should be true only when a multi-sim phone only supports data connection on a single phone,
- // and user is enabling data on the non-default phone.
- public boolean mMultiSimDialog;
- private TelephonyManager mTelephonyManager;
- private SubscriptionManager mSubscriptionManager;
-
- public MobileDataPreference(Context context, AttributeSet attrs) {
- super(context, attrs, com.android.internal.R.attr.switchPreferenceStyle);
- }
-
- // Must be called to avoid binder leakage.
- void dispose() {
- mListener.setListener(false, mSubId, getContext());
- }
-
- @Override
- protected void onRestoreInstanceState(Parcelable s) {
- CellDataState state = (CellDataState) s;
- super.onRestoreInstanceState(state.getSuperState());
- mTelephonyManager = TelephonyManager.from(getContext());
- mChecked = state.mChecked;
- mMultiSimDialog = state.mMultiSimDialog;
- if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
- mSubId = state.mSubId;
- setKey(getKey() + mSubId);
- }
- notifyChanged();
- }
-
- @Override
- protected Parcelable onSaveInstanceState() {
- CellDataState state = new CellDataState(super.onSaveInstanceState());
- state.mChecked = mChecked;
- state.mMultiSimDialog = mMultiSimDialog;
- state.mSubId = mSubId;
- return state;
- }
-
- @Override
- protected void onAttachedToActivity() {
- super.onAttachedToActivity();
- mListener.setListener(true, mSubId, getContext());
- }
-
- @Override
- protected void onPrepareForRemoval() {
- mListener.setListener(false, mSubId, getContext());
- super.onPrepareForRemoval();
- }
-
- /**
- * Initialize this preference with subId.
- */
- public void initialize(int subId) {
- if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
- throw new IllegalArgumentException("MobileDataPreference needs a SubscriptionInfo");
- }
- mSubscriptionManager = SubscriptionManager.from(getContext());
- mTelephonyManager = TelephonyManager.from(getContext());
- if (mSubId != subId) {
- mSubId = subId;
- setKey(getKey() + subId);
- }
- updateChecked();
- }
-
- private void updateChecked() {
- setChecked(mTelephonyManager.getDataEnabled(mSubId));
- }
-
- @Override
- public void performClick(PreferenceScreen preferenceScreen) {
- if (!isEnabled() || !SubscriptionManager.isValidSubscriptionId(mSubId)) {
- return;
- }
- final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo(
- mSubId);
- final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo();
- final boolean isMultiSim = (mTelephonyManager.getSimCount() > 1);
- final boolean isMultipleDataOnCapable =
- (mTelephonyManager.getNumberOfModemsWithSimultaneousDataConnections() > 1);
- final boolean isDefaultDataSubscription = (nextSir != null && currentSir != null
- && currentSir.getSubscriptionId() == nextSir.getSubscriptionId());
- if (mChecked) {
- if (!isMultiSim) {
- // disabling data; show confirmation dialog which eventually
- // calls setMobileDataEnabled() once user confirms.
- mMultiSimDialog = false;
- super.performClick(preferenceScreen);
- } else {
- // Don't show any dialog.
- setMobileDataEnabled(false /* enabled */, false /* disableOtherSubscriptions */);
- }
- } else {
- if (isMultiSim && !isMultipleDataOnCapable && !isDefaultDataSubscription) {
- // enabling data and setting to default; show confirmation dialog which eventually
- // calls setMobileDataEnabled() once user confirms.
- mMultiSimDialog = true;
- super.performClick(preferenceScreen);
- } else {
- // Don't show any dialog.
- setMobileDataEnabled(true /* enabled */, false /* disableOtherSubscriptions */);
- }
- }
- }
-
- private void setMobileDataEnabled(boolean enabled, boolean disableOtherSubscriptions) {
- if (DBG) Log.d(TAG, "setMobileDataEnabled(" + enabled + "," + mSubId + ")");
-
- MetricsLogger.action(getContext(), MetricsEvent.ACTION_MOBILE_NETWORK_MOBILE_DATA_TOGGLE,
- enabled);
-
- mTelephonyManager.setDataEnabled(mSubId, enabled);
-
- if (disableOtherSubscriptions) {
- disableDataForOtherSubscriptions(mSubId);
- }
-
- setChecked(enabled);
- }
-
- private void setChecked(boolean checked) {
- if (mChecked == checked) return;
- mChecked = checked;
- notifyChanged();
- }
-
- @Override
- protected void onBindView(View view) {
- super.onBindView(view);
- View checkableView = view.findViewById(com.android.internal.R.id.switch_widget);
- checkableView.setClickable(false);
- ((Checkable) checkableView).setChecked(mChecked);
- }
-
- @Override
- protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
- if (mMultiSimDialog) {
- showMultiSimDialog(builder);
- } else {
- showDisableDialog(builder);
- }
- }
-
- private void showDisableDialog(AlertDialog.Builder builder) {
- builder.setTitle(null)
- .setMessage(R.string.data_usage_disable_mobile)
- .setPositiveButton(android.R.string.ok, this)
- .setNegativeButton(android.R.string.cancel, null);
- }
-
- private void showMultiSimDialog(AlertDialog.Builder builder) {
- final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo(mSubId);
- final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo();
-
- final String previousName = (nextSir == null)
- ? getContext().getResources().getString(R.string.sim_selection_required_pref)
- : nextSir.getDisplayName().toString();
-
- builder.setTitle(R.string.sim_change_data_title);
- builder.setMessage(getContext().getString(R.string.sim_change_data_message,
- String.valueOf(currentSir != null ? currentSir.getDisplayName() : null),
- previousName));
-
- builder.setPositiveButton(R.string.ok, this);
- builder.setNegativeButton(R.string.cancel, null);
- }
-
- private void disableDataForOtherSubscriptions(int subId) {
- List<SubscriptionInfo> subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
- if (subInfoList != null) {
- for (SubscriptionInfo subInfo : subInfoList) {
- if (subInfo.getSubscriptionId() != subId) {
- mTelephonyManager.setDataEnabled(subInfo.getSubscriptionId(), false);
- }
- }
- }
- }
-
- @Override
- public void onClick(DialogInterface dialog, int which) {
- if (which != DialogInterface.BUTTON_POSITIVE) {
- return;
- }
- if (mMultiSimDialog) {
- mSubscriptionManager.setDefaultDataSubId(mSubId);
- setMobileDataEnabled(true /* enabled */, true /* disableOtherSubscriptions */);
- } else {
- // TODO: extend to modify policy enabled flag.
- setMobileDataEnabled(false /* enabled */, false /* disableOtherSubscriptions */);
- }
- }
-
- private final DataStateListener mListener = new DataStateListener() {
- @Override
- public void onChange(boolean selfChange) {
- updateChecked();
- }
- };
-
- /**
- * Listener that listens mobile data state change.
- */
- public abstract static class DataStateListener extends ContentObserver {
- public DataStateListener() {
- super(new Handler(Looper.getMainLooper()));
- }
-
- /**
- * Set / Unset data state listening, specifying subId.
- */
- public void setListener(boolean listening, int subId, Context context) {
- if (listening) {
- Uri uri = Global.getUriFor(Global.MOBILE_DATA);
- if (TelephonyManager.getDefault().getSimCount() != 1) {
- uri = Global.getUriFor(Global.MOBILE_DATA + subId);
- }
- context.getContentResolver().registerContentObserver(uri, false, this);
- } else {
- context.getContentResolver().unregisterContentObserver(this);
- }
- }
- }
-
- /**
- * Class that represents state of mobile data state.
- * Used by onSaveInstanceState and onRestoreInstanceState.
- */
- public static class CellDataState extends BaseSavedState {
- public int mSubId;
- public boolean mChecked;
- public boolean mMultiSimDialog;
-
- public CellDataState(Parcelable base) {
- super(base);
- }
-
- public CellDataState(Parcel source) {
- super(source);
- mChecked = source.readByte() != 0;
- mMultiSimDialog = source.readByte() != 0;
- mSubId = source.readInt();
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- super.writeToParcel(dest, flags);
- dest.writeByte((byte) (mChecked ? 1 : 0));
- dest.writeByte((byte) (mMultiSimDialog ? 1 : 0));
- dest.writeInt(mSubId);
- }
-
- public static final Creator<CellDataState> CREATOR = new Creator<CellDataState>() {
- @Override
- public CellDataState createFromParcel(Parcel source) {
- return new CellDataState(source);
- }
-
- @Override
- public CellDataState[] newArray(int size) {
- return new CellDataState[size];
- }
- };
- }
-}
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
deleted file mode 100644
index 6375f90..0000000
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ /dev/null
@@ -1,2307 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import static android.provider.Telephony.Carriers.ENFORCE_MANAGED_URI;
-
-import android.app.ActionBar;
-import android.app.Activity;
-import android.app.DialogFragment;
-import android.app.Fragment;
-import android.app.FragmentManager;
-import android.content.BroadcastReceiver;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.database.ContentObserver;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.os.PersistableBundle;
-import android.os.SystemProperties;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.preference.ListPreference;
-import android.preference.Preference;
-import android.preference.PreferenceCategory;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceScreen;
-import android.preference.SwitchPreference;
-import android.provider.Settings;
-import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
-import android.telephony.CarrierConfigManager;
-import android.telephony.PhoneStateListener;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.telephony.euicc.EuiccManager;
-import android.telephony.ims.ProvisioningManager;
-import android.telephony.ims.feature.ImsFeature;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TabHost;
-
-import com.android.ims.ImsConfig;
-import com.android.ims.ImsException;
-import com.android.ims.ImsManager;
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.PhoneConstants;
-import com.android.internal.telephony.TelephonyIntents;
-import com.android.settingslib.RestrictedLockUtils;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * "Mobile network settings" screen. This screen lets you
- * enable/disable mobile data, and control data roaming and other
- * network-specific mobile data features. It's used on non-voice-capable
- * tablets as well as regular phone devices.
- *
- * Note that this Activity is part of the phone app, even though
- * you reach it from the "Wireless & Networks" section of the main
- * Settings app. It's not part of the "Call settings" hierarchy that's
- * available from the Phone app (see CallFeaturesSetting for that.)
- */
-
-public class MobileNetworkSettings extends Activity {
-
- // CID of the device.
- private static final String KEY_CID = "ro.boot.cid";
- // CIDs of devices which should not show anything related to eSIM.
- private static final String KEY_ESIM_CID_IGNORE = "ro.setupwizard.esim_cid_ignore";
- // System Property which is used to decide whether the default eSIM UI will be shown,
- // the default value is false.
- private static final String KEY_ENABLE_ESIM_UI_BY_DEFAULT =
- "esim.enable_esim_system_ui_by_default";
-
- private static final String LEGACY_ACTION_CONFIGURE_PHONE_ACCOUNT =
- "android.telecom.action.CONNECTION_SERVICE_CONFIGURE";
-
- private enum TabState {
- NO_TABS, UPDATE, DO_NOTHING
- }
-
- @Override
- protected void onNewIntent(Intent intent) {
- setIntent(intent);
- MobileNetworkFragment fragment = (MobileNetworkFragment) getFragmentManager()
- .findFragmentById(R.id.network_setting_content);
- if (fragment != null) {
- fragment.onIntentUpdate(intent);
- }
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.network_setting);
-
- FragmentManager fragmentManager = getFragmentManager();
- Fragment fragment = fragmentManager.findFragmentById(R.id.network_setting_content);
- if (fragment == null) {
- fragmentManager.beginTransaction()
- .add(R.id.network_setting_content, new MobileNetworkFragment())
- .commit();
- }
- }
-
- @Override
- public boolean onOptionsItemSelected(final MenuItem item) {
- final int itemId = item.getItemId();
- switch (itemId) {
- // Respond to the action bar's Up/Home button
- case android.R.id.home:
- finish();
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
-
-
- /**
- * Returns true if Wifi calling is enabled for at least one phone.
- */
- public static boolean isWifiCallingEnabled(Context context) {
- int phoneCount = TelephonyManager.from(context).getPhoneCount();
- for (int i = 0; i < phoneCount; i++) {
- if (isWifiCallingEnabled(context, i)) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Returns true if Wifi calling is enabled for the specific phone with id {@code phoneId}.
- */
- public static boolean isWifiCallingEnabled(Context context, int phoneId) {
- final PhoneAccountHandle simCallManager =
- TelecomManager.from(context).getSimCallManager();
-
- boolean isWifiCallingEnabled;
- if (simCallManager != null) {
- Intent intent = MobileNetworkSettings.buildPhoneAccountConfigureIntent(
- context, simCallManager);
- PackageManager pm = context.getPackageManager();
- isWifiCallingEnabled = intent != null
- && !pm.queryIntentActivities(intent, 0 /* flags */).isEmpty();
- } else {
- ImsManager imsMgr = ImsManager.getInstance(context, phoneId);
- isWifiCallingEnabled = imsMgr != null
- && imsMgr.isWfcEnabledByPlatform()
- && imsMgr.isWfcProvisionedOnDevice()
- && isImsServiceStateReady(imsMgr);
- }
-
- return isWifiCallingEnabled;
- }
-
- /**
- * Whether to show the entry point to eUICC settings.
- *
- * <p>We show the entry point on any device which supports eUICC as long as either the eUICC
- * was ever provisioned (that is, at least one profile was ever downloaded onto it), or if
- * the user has enabled development mode.
- */
- public static boolean showEuiccSettings(Context context) {
- EuiccManager euiccManager =
- (EuiccManager) context.getSystemService(Context.EUICC_SERVICE);
- if (!euiccManager.isEnabled()) {
- return false;
- }
-
- ContentResolver cr = context.getContentResolver();
-
- TelephonyManager tm =
- (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
- String currentCountry = tm.getNetworkCountryIso().toLowerCase();
- String supportedCountries =
- Settings.Global.getString(cr, Settings.Global.EUICC_SUPPORTED_COUNTRIES);
- boolean inEsimSupportedCountries = false;
- if (TextUtils.isEmpty(currentCountry)) {
- inEsimSupportedCountries = true;
- } else if (!TextUtils.isEmpty(supportedCountries)) {
- List<String> supportedCountryList =
- Arrays.asList(TextUtils.split(supportedCountries.toLowerCase(), ","));
- if (supportedCountryList.contains(currentCountry)) {
- inEsimSupportedCountries = true;
- }
- }
- final boolean esimIgnoredDevice =
- Arrays.asList(TextUtils.split(SystemProperties.get(KEY_ESIM_CID_IGNORE, ""), ","))
- .contains(SystemProperties.get(KEY_CID, null));
- final boolean enabledEsimUiByDefault =
- SystemProperties.getBoolean(KEY_ENABLE_ESIM_UI_BY_DEFAULT, true);
- final boolean euiccProvisioned =
- Settings.Global.getInt(cr, Settings.Global.EUICC_PROVISIONED, 0) != 0;
- final boolean inDeveloperMode =
- Settings.Global.getInt(cr, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0;
-
- return (inDeveloperMode || euiccProvisioned
- || (!esimIgnoredDevice && enabledEsimUiByDefault && inEsimSupportedCountries));
- }
-
- /**
- * Whether to show the Enhanced 4G LTE settings in search result.
- *
- * <p>We show this settings if the VoLTE can be enabled by this device and the carrier app
- * doesn't set {@link CarrierConfigManager#KEY_HIDE_ENHANCED_4G_LTE_BOOL} to false.
- */
- public static boolean hideEnhanced4gLteSettings(Context context) {
- final CarrierConfigManager carrierConfigManager = new CarrierConfigManager(context);
- final List<SubscriptionInfo> sil =
- SubscriptionManager.from(context).getActiveSubscriptionInfoList();
- // Check all active subscriptions. We only hide the button if it's disabled for all
- // active subscriptions.
- if (sil != null) {
- for (SubscriptionInfo subInfo : sil) {
- int phoneId = SubscriptionManager.getPhoneId(subInfo.getSubscriptionId());
- ImsManager imsManager = ImsManager.getInstance(context, phoneId);
- PersistableBundle carrierConfig = carrierConfigManager.getConfigForSubId(
- subInfo.getSubscriptionId());
- if ((imsManager.isVolteEnabledByPlatform()
- && imsManager.isVolteProvisionedOnDevice())
- || carrierConfig.getBoolean(
- CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL)) {
- return false;
- }
- }
- }
-
- return true;
- }
-
- /**
- * Returns if DPC APNs are enforced.
- */
- public static boolean isDpcApnEnforced(Context context) {
- try (Cursor enforceCursor = context.getContentResolver().query(ENFORCE_MANAGED_URI,
- null, null, null, null)) {
- if (enforceCursor == null || enforceCursor.getCount() != 1) {
- return false;
- }
- enforceCursor.moveToFirst();
- return enforceCursor.getInt(0) > 0;
- }
- }
-
- private static boolean isImsServiceStateReady(ImsManager imsMgr) {
- boolean isImsServiceStateReady = false;
-
- try {
- if (imsMgr != null && imsMgr.getImsServiceState() == ImsFeature.STATE_READY) {
- isImsServiceStateReady = true;
- }
- } catch (ImsException ex) {
- Log.e(MobileNetworkFragment.LOG_TAG,
- "Exception when trying to get ImsServiceStatus: " + ex);
- }
-
- Log.d(MobileNetworkFragment.LOG_TAG, "isImsServiceStateReady=" + isImsServiceStateReady);
- return isImsServiceStateReady;
- }
-
-
- private static Intent buildPhoneAccountConfigureIntent(
- Context context, PhoneAccountHandle accountHandle) {
- Intent intent = buildConfigureIntent(
- context, accountHandle, TelecomManager.ACTION_CONFIGURE_PHONE_ACCOUNT);
-
- if (intent == null) {
- // If the new configuration didn't work, try the old configuration intent.
- intent = buildConfigureIntent(
- context, accountHandle, LEGACY_ACTION_CONFIGURE_PHONE_ACCOUNT);
- if (intent != null) {
- Log.w(MobileNetworkFragment.LOG_TAG,
- "Phone account using old configuration intent: " + accountHandle);
- }
- }
- return intent;
- }
-
- private static Intent buildConfigureIntent(
- Context context, PhoneAccountHandle accountHandle, String actionStr) {
- if (accountHandle == null || accountHandle.getComponentName() == null
- || TextUtils.isEmpty(accountHandle.getComponentName().getPackageName())) {
- return null;
- }
-
- // Build the settings intent.
- Intent intent = new Intent(actionStr);
- intent.setPackage(accountHandle.getComponentName().getPackageName());
- intent.addCategory(Intent.CATEGORY_DEFAULT);
- intent.putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, accountHandle);
-
- // Check to see that the phone account package can handle the setting intent.
- PackageManager pm = context.getPackageManager();
- List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
- if (resolutions.size() == 0) {
- intent = null; // set no intent if the package cannot handle it.
- }
-
- return intent;
- }
-
- public static class MobileNetworkFragment extends PreferenceFragment implements
- Preference.OnPreferenceChangeListener, RoamingDialogFragment.RoamingDialogListener {
-
- // debug data
- private static final String LOG_TAG = "NetworkSettings";
- private static final boolean DBG = true;
- public static final int REQUEST_CODE_EXIT_ECM = 17;
-
- // Number of active Subscriptions to show tabs
- private static final int TAB_THRESHOLD = 2;
-
- // Number of last phone number digits shown in Euicc Setting tab
- private static final int NUM_LAST_PHONE_DIGITS = 4;
-
- // fragment tag for roaming data dialog
- private static final String ROAMING_TAG = "RoamingDialogFragment";
-
- //String keys for preference lookup
- private static final String BUTTON_PREFERED_NETWORK_MODE = "preferred_network_mode_key";
- private static final String BUTTON_ROAMING_KEY = "button_roaming_key";
- private static final String BUTTON_CDMA_LTE_DATA_SERVICE_KEY = "cdma_lte_data_service_key";
- private static final String BUTTON_ENABLED_NETWORKS_KEY = "enabled_networks_key";
- private static final String BUTTON_4G_LTE_KEY = "enhanced_4g_lte";
- private static final String BUTTON_CELL_BROADCAST_SETTINGS = "cell_broadcast_settings";
- private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
- private static final String BUTTON_CDMA_SYSTEM_SELECT_KEY = "cdma_system_select_key";
- private static final String BUTTON_CDMA_SUBSCRIPTION_KEY = "cdma_subscription_key";
- private static final String BUTTON_CARRIER_SETTINGS_EUICC_KEY =
- "carrier_settings_euicc_key";
- private static final String BUTTON_WIFI_CALLING_KEY = "wifi_calling_key";
- private static final String BUTTON_VIDEO_CALLING_KEY = "video_calling_key";
- private static final String BUTTON_MOBILE_DATA_ENABLE_KEY = "mobile_data_enable";
- private static final String BUTTON_DATA_USAGE_KEY = "data_usage_summary";
- private static final String BUTTON_ADVANCED_OPTIONS_KEY = "advanced_options";
- private static final String CATEGORY_CALLING_KEY = "calling";
- private static final String CATEGORY_GSM_APN_EXPAND_KEY = "category_gsm_apn_key";
- private static final String CATEGORY_CDMA_APN_EXPAND_KEY = "category_cdma_apn_key";
- private static final String BUTTON_GSM_APN_EXPAND_KEY = "button_gsm_apn_key";
- private static final String BUTTON_CDMA_APN_EXPAND_KEY = "button_cdma_apn_key";
-
- private final BroadcastReceiver mPhoneChangeReceiver = new PhoneChangeReceiver();
- private final ContentObserver mDpcEnforcedContentObserver = new DpcApnEnforcedObserver();
-
- static final int preferredNetworkMode = Phone.PREFERRED_NT_MODE;
-
- //Information about logical "up" Activity
- private static final String UP_ACTIVITY_PACKAGE = "com.android.settings";
- private static final String UP_ACTIVITY_CLASS =
- "com.android.settings.Settings$WirelessSettingsActivity";
-
- //Information that needs to save into Bundle.
- private static final String EXPAND_ADVANCED_FIELDS = "expand_advanced_fields";
- //Intent extra to indicate expand all fields.
- private static final String EXPAND_EXTRA = "expandable";
-
- private SubscriptionManager mSubscriptionManager;
- private TelephonyManager mTelephonyManager;
- private CarrierConfigManager mCarrierConfigManager;
- private int mSubId;
-
- //UI objects
- private AdvancedOptionsPreference mAdvancedOptions;
- private ListPreference mButtonPreferredNetworkMode;
- private ListPreference mButtonEnabledNetworks;
- private RestrictedSwitchPreference mButtonDataRoam;
- private SwitchPreference mButton4glte;
- private Preference mLteDataServicePref;
- private Preference mEuiccSettingsPref;
- private PreferenceCategory mCallingCategory;
- private Preference mWiFiCallingPref;
- private SwitchPreference mVideoCallingPref;
- private NetworkSelectListPreference mButtonNetworkSelect;
- private MobileDataPreference mMobileDataPref;
- private DataUsagePreference mDataUsagePref;
-
- private static final String iface = "rmnet0"; //TODO: this will go away
- private List<SubscriptionInfo> mActiveSubInfos;
-
- private UserManager mUm;
- private ImsManager mImsMgr;
- private MyHandler mHandler;
- private boolean mOkClicked;
- private boolean mExpandAdvancedFields;
-
- // We assume the the value returned by mTabHost.getCurrentTab() == slotId
- private TabHost mTabHost;
-
- //GsmUmts options and Cdma options
- GsmUmtsOptions mGsmUmtsOptions;
- CdmaOptions mCdmaOptions;
-
- private Preference mClickedPreference;
- private boolean mShow4GForLTE = false;
- private boolean mIsGlobalCdma;
- private boolean mOnlyAutoSelectInHomeNW;
- private boolean mUnavailable;
-
- private class PhoneCallStateListener extends PhoneStateListener {
- /*
- * Enable/disable the 'Enhanced 4G LTE Mode' when in/out of a call
- * and depending on TTY mode and TTY support over VoLTE.
- * @see android.telephony.PhoneStateListener#onCallStateChanged(int,
- * java.lang.String)
- */
- @Override
- public void onCallStateChanged(int state, String incomingNumber) {
- if (DBG) log("PhoneStateListener.onCallStateChanged: state=" + state);
-
- updateEnhanced4gLteState();
- updateWiFiCallState();
- updateVideoCallState();
- updatePreferredNetworkType();
- }
-
- /**
- * Listen to different subId if it's changed.
- */
- protected void updateSubscriptionId(Integer subId) {
- if (subId.equals(PhoneCallStateListener.this.mSubId)) {
- return;
- }
-
- PhoneCallStateListener.this.mSubId = subId;
-
- mTelephonyManager.listen(this, PhoneStateListener.LISTEN_NONE);
-
- // Now, listen to new subId if it's valid.
- if (SubscriptionManager.isValidSubscriptionId(subId)) {
- mTelephonyManager.listen(this, PhoneStateListener.LISTEN_CALL_STATE);
- }
- }
- }
-
- private final PhoneCallStateListener mPhoneStateListener = new PhoneCallStateListener();
-
- @Override
- public void onPositiveButtonClick(DialogFragment dialog) {
- mTelephonyManager.setDataRoamingEnabled(true);
- mButtonDataRoam.setChecked(true);
- MetricsLogger.action(getContext(),
- getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam),
- true);
- }
-
- @Override
- public void onViewCreated(View view, Bundle savedInstanceState) {
- if (getListView() != null) {
- getListView().setDivider(null);
- }
- }
-
- public void onIntentUpdate(Intent intent) {
- if (!mUnavailable) {
- updateCurrentTab(intent.getExtras());
- }
- }
-
- /**
- * Invoked on each preference click in this hierarchy, overrides
- * PreferenceActivity's implementation. Used to make sure we track the
- * preference click events.
- */
- @Override
- public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
- Preference preference) {
- sendMetricsEventPreferenceClicked(preferenceScreen, preference);
-
- /** TODO: Refactor and get rid of the if's using subclasses */
- if (preference.getKey().equals(BUTTON_4G_LTE_KEY)) {
- return true;
- } else if (mGsmUmtsOptions != null &&
- mGsmUmtsOptions.preferenceTreeClick(preference) == true) {
- return true;
- } else if (mCdmaOptions != null &&
- mCdmaOptions.preferenceTreeClick(preference) == true) {
- if (mTelephonyManager.getEmergencyCallbackMode()) {
-
- mClickedPreference = preference;
-
- // In ECM mode launch ECM app dialog
- startActivityForResult(
- new Intent(TelephonyIntents.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS, null),
- REQUEST_CODE_EXIT_ECM);
- }
- return true;
- } else if (preference == mButtonPreferredNetworkMode) {
- //displays the value taken from the Settings.System
- int settingsNetworkMode = android.provider.Settings.Global.getInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
- preferredNetworkMode);
- mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
- return true;
- } else if (preference == mLteDataServicePref) {
- String tmpl = android.provider.Settings.Global.getString(
- getActivity().getContentResolver(),
- android.provider.Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL);
- if (!TextUtils.isEmpty(tmpl)) {
- String imsi = mTelephonyManager.getSubscriberId();
- if (imsi == null) {
- imsi = "";
- }
- final String url = TextUtils.isEmpty(tmpl) ? null
- : TextUtils.expandTemplate(tmpl, imsi).toString();
- Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
- startActivity(intent);
- } else {
- android.util.Log.e(LOG_TAG, "Missing SETUP_PREPAID_DATA_SERVICE_URL");
- }
- return true;
- } else if (preference == mButtonEnabledNetworks) {
- int settingsNetworkMode = android.provider.Settings.Global.getInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
- preferredNetworkMode);
- mButtonEnabledNetworks.setValue(Integer.toString(settingsNetworkMode));
- return true;
- } else if (preference == mButtonDataRoam) {
- // Do not disable the preference screen if the user clicks Data roaming.
- return true;
- } else if (preference == mEuiccSettingsPref) {
- Intent intent = new Intent(EuiccManager.ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS);
- startActivity(intent);
- return true;
- } else if (preference == mWiFiCallingPref || preference == mVideoCallingPref
- || preference == mMobileDataPref || preference == mDataUsagePref) {
- return false;
- } else if (preference == mAdvancedOptions) {
- mExpandAdvancedFields = true;
- updateBody();
- return true;
- } else {
- // if the button is anything but the simple toggle preference,
- // we'll need to disable all preferences to reject all click
- // events until the sub-activity's UI comes up.
- preferenceScreen.setEnabled(false);
- // Let the intents be launched by the Preference manager
- return false;
- }
- }
-
- private final SubscriptionManager.OnSubscriptionsChangedListener
- mOnSubscriptionsChangeListener
- = new SubscriptionManager.OnSubscriptionsChangedListener() {
- @Override
- public void onSubscriptionsChanged() {
- if (DBG) log("onSubscriptionsChanged:");
- initializeSubscriptions();
- }
- };
-
- private int getSlotIdFromBundle(Bundle data) {
- int subId = -1;
- if (data != null) {
- subId = data.getInt(Settings.EXTRA_SUB_ID, -1);
- }
- return SubscriptionManager.getSlotIndex(subId);
- }
-
- private void initializeSubscriptions() {
- final Activity activity = getActivity();
- if (activity == null || activity.isDestroyed()) {
- // Process preferences in activity only if its not destroyed
- return;
- }
- int currentTab = 0;
- if (DBG) log("initializeSubscriptions:+");
-
- // Before updating the the active subscription list check
- // if tab updating is needed as the list is changing.
- List<SubscriptionInfo> sil = mSubscriptionManager.getActiveSubscriptionInfoList();
- MobileNetworkSettings.TabState state = isUpdateTabsNeeded(sil);
-
- // Update to the active subscription list
- mActiveSubInfos.clear();
- if (sil != null) {
- mActiveSubInfos.addAll(sil);
- // If there is only 1 sim then currenTab should represent slot no. of the sim.
- if (sil.size() == 1) {
- currentTab = sil.get(0).getSimSlotIndex();
- }
- }
-
- switch (state) {
- case UPDATE: {
- if (DBG) log("initializeSubscriptions: UPDATE");
- currentTab = mTabHost != null ? mTabHost.getCurrentTab() : 0;
-
- mTabHost = (TabHost) getActivity().findViewById(android.R.id.tabhost);
- mTabHost.setup();
-
- // Update the tabName. Since the mActiveSubInfos are in slot order
- // we can iterate though the tabs and subscription info in one loop. But
- // we need to handle the case where a slot may be empty.
-
- Iterator<SubscriptionInfo> siIterator = mActiveSubInfos.listIterator();
- SubscriptionInfo si = siIterator.hasNext() ? siIterator.next() : null;
- for (int simSlotIndex = 0; simSlotIndex < mActiveSubInfos.size();
- simSlotIndex++) {
- String tabName;
- if (si != null && si.getSimSlotIndex() == simSlotIndex) {
- // Slot is not empty and we match
- tabName = String.valueOf(si.getDisplayName());
- si = siIterator.hasNext() ? siIterator.next() : null;
- } else {
- // Slot is empty, set name to unknown
- tabName = getResources().getString(R.string.unknown);
- }
- if (DBG) {
- log("initializeSubscriptions:tab=" + simSlotIndex + " name=" + tabName);
- }
-
- mTabHost.addTab(buildTabSpec(String.valueOf(simSlotIndex), tabName));
- }
-
- mTabHost.setOnTabChangedListener(mTabListener);
- mTabHost.setCurrentTab(currentTab);
- break;
- }
- case NO_TABS: {
- if (DBG) log("initializeSubscriptions: NO_TABS");
-
- if (mTabHost != null) {
- mTabHost.clearAllTabs();
- mTabHost = null;
- }
- break;
- }
- case DO_NOTHING: {
- if (DBG) log("initializeSubscriptions: DO_NOTHING");
- if (mTabHost != null) {
- currentTab = mTabHost.getCurrentTab();
- }
- break;
- }
- }
- updatePhone(currentTab);
- updateBody();
- if (DBG) log("initializeSubscriptions:-");
- }
-
- private MobileNetworkSettings.TabState isUpdateTabsNeeded(List<SubscriptionInfo> newSil) {
- TabState state = MobileNetworkSettings.TabState.DO_NOTHING;
- if (newSil == null) {
- if (mActiveSubInfos.size() >= TAB_THRESHOLD) {
- if (DBG) log("isUpdateTabsNeeded: NO_TABS, size unknown and was tabbed");
- state = MobileNetworkSettings.TabState.NO_TABS;
- }
- } else if (newSil.size() < TAB_THRESHOLD && mActiveSubInfos.size() >= TAB_THRESHOLD) {
- if (DBG) log("isUpdateTabsNeeded: NO_TABS, size went to small");
- state = MobileNetworkSettings.TabState.NO_TABS;
- } else if (newSil.size() >= TAB_THRESHOLD && mActiveSubInfos.size() < TAB_THRESHOLD) {
- if (DBG) log("isUpdateTabsNeeded: UPDATE, size changed");
- state = MobileNetworkSettings.TabState.UPDATE;
- } else if (newSil.size() >= TAB_THRESHOLD) {
- Iterator<SubscriptionInfo> siIterator = mActiveSubInfos.iterator();
- for(SubscriptionInfo newSi : newSil) {
- SubscriptionInfo curSi = siIterator.next();
- if (!newSi.getDisplayName().equals(curSi.getDisplayName())) {
- if (DBG) log("isUpdateTabsNeeded: UPDATE, new name="
- + newSi.getDisplayName());
- state = MobileNetworkSettings.TabState.UPDATE;
- break;
- }
- }
- }
- if (DBG) {
- Log.i(LOG_TAG, "isUpdateTabsNeeded:- " + state
- + " newSil.size()=" + ((newSil != null) ? newSil.size() : 0)
- + " mActiveSubInfos.size()=" + mActiveSubInfos.size());
- }
- return state;
- }
-
- private TabHost.OnTabChangeListener mTabListener = new TabHost.OnTabChangeListener() {
- @Override
- public void onTabChanged(String tabId) {
- if (DBG) log("onTabChanged:");
- // The User has changed tab; update the body.
- updatePhone(Integer.parseInt(tabId));
- updateBody();
- }
- };
-
- private void updatePhone(int slotId) {
- final SubscriptionInfo sir = mSubscriptionManager
- .getActiveSubscriptionInfoForSimSlotIndex(slotId);
-
- if (sir != null) {
- mSubId = sir.getSubscriptionId();
-
- Log.i(LOG_TAG, "updatePhone:- slotId=" + slotId + " sir=" + sir);
-
- mImsMgr = ImsManager.getInstance(getContext(),
- SubscriptionManager.getPhoneId(mSubId));
- mTelephonyManager = new TelephonyManager(getContext(), mSubId);
- if (mImsMgr == null) {
- log("updatePhone :: Could not get ImsManager instance!");
- } else if (DBG) {
- log("updatePhone :: mImsMgr=" + mImsMgr);
- }
- } else {
- // There is no active subscription in the given slot.
- mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
- }
-
- mPhoneStateListener.updateSubscriptionId(mSubId);
- }
-
- private TabHost.TabContentFactory mEmptyTabContent = new TabHost.TabContentFactory() {
- @Override
- public View createTabContent(String tag) {
- return new View(mTabHost.getContext());
- }
- };
-
- private TabHost.TabSpec buildTabSpec(String tag, String title) {
- return mTabHost.newTabSpec(tag).setIndicator(title).setContent(
- mEmptyTabContent);
- }
-
- private void updateCurrentTab(Bundle data) {
- int slotId = getSlotIdFromBundle(data);
- if (slotId >= 0 && mTabHost != null && mTabHost.getCurrentTab() != slotId) {
- mTabHost.setCurrentTab(slotId);
- }
- }
-
- @Override
- public void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
-
- // If advanced fields are already expanded, we save it and expand it
- // when it's re-created.
- outState.putBoolean(EXPAND_ADVANCED_FIELDS, mExpandAdvancedFields);
-
- // Save subId of currently shown tab.
- outState.putInt(Settings.EXTRA_SUB_ID, mSubId);
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- Log.i(LOG_TAG, "onCreate:+");
- super.onCreate(icicle);
-
- final Activity activity = getActivity();
- if (activity == null || activity.isDestroyed()) {
- Log.e(LOG_TAG, "onCreate:- with no valid activity.");
- return;
- }
-
- mHandler = new MyHandler();
- mUm = (UserManager) activity.getSystemService(Context.USER_SERVICE);
- mSubscriptionManager = SubscriptionManager.from(activity);
- mTelephonyManager = (TelephonyManager) activity.getSystemService(
- Context.TELEPHONY_SERVICE);
- mCarrierConfigManager = new CarrierConfigManager(getContext());
-
- if (icicle != null) {
- mExpandAdvancedFields = icicle.getBoolean(EXPAND_ADVANCED_FIELDS, false);
- } else if (getActivity().getIntent().getBooleanExtra(EXPAND_EXTRA, false)) {
- mExpandAdvancedFields = true;
- }
-
- addPreferencesFromResource(R.xml.network_setting_fragment);
-
- mButton4glte = (SwitchPreference)findPreference(BUTTON_4G_LTE_KEY);
- mButton4glte.setOnPreferenceChangeListener(this);
-
- mCallingCategory = (PreferenceCategory) findPreference(CATEGORY_CALLING_KEY);
- mWiFiCallingPref = findPreference(BUTTON_WIFI_CALLING_KEY);
- mVideoCallingPref = (SwitchPreference) findPreference(BUTTON_VIDEO_CALLING_KEY);
- mMobileDataPref = (MobileDataPreference) findPreference(BUTTON_MOBILE_DATA_ENABLE_KEY);
- mDataUsagePref = (DataUsagePreference) findPreference(BUTTON_DATA_USAGE_KEY);
-
- //get UI object references
- PreferenceScreen prefSet = getPreferenceScreen();
-
- mButtonDataRoam = (RestrictedSwitchPreference) prefSet.findPreference(
- BUTTON_ROAMING_KEY);
- mButtonPreferredNetworkMode = (ListPreference) prefSet.findPreference(
- BUTTON_PREFERED_NETWORK_MODE);
- mButtonEnabledNetworks = (ListPreference) prefSet.findPreference(
- BUTTON_ENABLED_NETWORKS_KEY);
- mAdvancedOptions = (AdvancedOptionsPreference) prefSet.findPreference(
- BUTTON_ADVANCED_OPTIONS_KEY);
- mButtonDataRoam.setOnPreferenceChangeListener(this);
-
- mLteDataServicePref = prefSet.findPreference(BUTTON_CDMA_LTE_DATA_SERVICE_KEY);
-
- mEuiccSettingsPref = prefSet.findPreference(BUTTON_CARRIER_SETTINGS_EUICC_KEY);
- mEuiccSettingsPref.setOnPreferenceChangeListener(this);
-
- // Initialize mActiveSubInfo
- int max = mSubscriptionManager.getActiveSubscriptionInfoCountMax();
- mActiveSubInfos = new ArrayList<SubscriptionInfo>(max);
-
- int currentTab = mTabHost != null ? mTabHost.getCurrentTab() : 0;
- updatePhone(currentTab);
- if (hasActiveSubscriptions()) {
- updateEnabledNetworksEntries();
- }
- Log.i(LOG_TAG, "onCreate:-");
- }
-
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- return inflater.inflate(com.android.internal.R.layout.common_tab_settings,
- container, false);
- }
-
- @Override
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)
- || !mUm.isSystemUser()) {
- mUnavailable = true;
- getActivity().setContentView(R.layout.telephony_disallowed_preference_screen);
- } else {
- initializeSubscriptions();
-
- if (savedInstanceState != null) {
- updateCurrentTab(savedInstanceState);
- } else {
- updateCurrentTab(getActivity().getIntent().getExtras());
- }
- }
- }
-
- private class PhoneChangeReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- Log.i(LOG_TAG, "onReceive:");
- if (getActivity() == null || getContext() == null) {
- // Received broadcast and activity is in the process of being torn down.
- return;
- }
- // When the radio changes (ex: CDMA->GSM), refresh all options.
- updateBody();
- }
- }
-
- private class DpcApnEnforcedObserver extends ContentObserver {
- DpcApnEnforcedObserver() {
- super(null);
- }
-
- @Override
- public void onChange(boolean selfChange) {
- Log.i(LOG_TAG, "DPC enforced onChange:");
- if (getActivity() == null || getContext() == null) {
- // Received content change and activity is in the process of being torn down.
- return;
- }
- updateBody();
- }
- }
-
- private final ProvisioningManager.Callback mProvisioningCallback =
- new ProvisioningManager.Callback() {
- @Override
- public void onProvisioningIntChanged(int item, int value) {
- if (item == ImsConfig.ConfigConstants.VOICE_OVER_WIFI_SETTING_ENABLED
- || item == ImsConfig.ConfigConstants.VLT_SETTING_ENABLED
- || item == ImsConfig.ConfigConstants.LVC_SETTING_ENABLED) {
- updateBody();
- }
- }
- };
-
- @Override
- public void onDestroy() {
- super.onDestroy();
- if (mMobileDataPref != null) {
- mMobileDataPref.dispose();
- }
- }
-
- @Override
- public void onResume() {
- super.onResume();
- Log.i(LOG_TAG, "onResume:+");
-
- if (mUnavailable) {
- Log.i(LOG_TAG, "onResume:- ignore mUnavailable == false");
- return;
- }
-
- // upon resumption from the sub-activity, make sure we re-enable the
- // preferences.
- getPreferenceScreen().setEnabled(true);
-
- // Set UI state in onResume because a user could go home, launch some
- // app to change this setting's backend, and re-launch this settings app
- // and the UI state would be inconsistent with actual state
- mButtonDataRoam.setChecked(mTelephonyManager.isDataRoamingEnabled());
-
- if (getPreferenceScreen().findPreference(BUTTON_PREFERED_NETWORK_MODE) != null
- || getPreferenceScreen().findPreference(BUTTON_ENABLED_NETWORKS_KEY) != null) {
- updatePreferredNetworkUIFromDb();
- }
-
- mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
-
- // NOTE: Buttons will be enabled/disabled in mPhoneStateListener
- updateEnhanced4gLteState();
-
- // Video calling and WiFi calling state might have changed.
- updateCallingCategory();
-
- mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
-
- final Context context = getActivity();
- IntentFilter intentFilter = new IntentFilter(
- TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
- context.registerReceiver(mPhoneChangeReceiver, intentFilter);
- context.getContentResolver().registerContentObserver(ENFORCE_MANAGED_URI, false,
- mDpcEnforcedContentObserver);
-
- // Register callback for provisioning changes.
- try {
- if (mImsMgr != null) {
- mImsMgr.getConfigInterface().addConfigCallback(mProvisioningCallback);
- }
- } catch (ImsException e) {
- Log.w(LOG_TAG, "onResume: Unable to register callback for provisioning changes.");
- }
-
- Log.i(LOG_TAG, "onResume:-");
-
- }
-
- private boolean hasActiveSubscriptions() {
- return mActiveSubInfos.size() > 0;
- }
-
- private void updateBodyBasicFields(Activity activity, PreferenceScreen prefSet,
- int phoneSubId, boolean hasActiveSubscriptions) {
- Context context = activity.getApplicationContext();
-
- ActionBar actionBar = activity.getActionBar();
- if (actionBar != null) {
- // android.R.id.home will be triggered in onOptionsItemSelected()
- actionBar.setDisplayHomeAsUpEnabled(true);
- }
-
- prefSet.addPreference(mMobileDataPref);
- prefSet.addPreference(mButtonDataRoam);
- prefSet.addPreference(mDataUsagePref);
-
- mMobileDataPref.setEnabled(hasActiveSubscriptions);
- mButtonDataRoam.setEnabled(hasActiveSubscriptions);
- mDataUsagePref.setEnabled(hasActiveSubscriptions);
-
- if (hasActiveSubscriptions) {
- // Customized preferences needs to be initialized with subId.
- mMobileDataPref.initialize(phoneSubId);
- mDataUsagePref.initialize(phoneSubId);
-
- // Initialize states of mButtonDataRoam.
- mButtonDataRoam.setChecked(mTelephonyManager.isDataRoamingEnabled());
- mButtonDataRoam.setDisabledByAdmin(false);
- if (mButtonDataRoam.isEnabled()) {
- if (RestrictedLockUtils.hasBaseUserRestriction(context,
- UserManager.DISALLOW_DATA_ROAMING, UserHandle.myUserId())) {
- mButtonDataRoam.setEnabled(false);
- } else {
- mButtonDataRoam.checkRestrictionAndSetDisabled(
- UserManager.DISALLOW_DATA_ROAMING);
- }
- }
- }
- }
-
- private void updateBody() {
- final Activity activity = getActivity();
- final PreferenceScreen prefSet = getPreferenceScreen();
- final boolean hasActiveSubscriptions = hasActiveSubscriptions();
-
- if (activity == null || activity.isDestroyed()) {
- Log.e(LOG_TAG, "updateBody with no valid activity.");
- return;
- }
-
- if (prefSet == null) {
- Log.e(LOG_TAG, "updateBody with no null prefSet.");
- return;
- }
-
- prefSet.removeAll();
-
- updateBodyBasicFields(activity, prefSet, mSubId, hasActiveSubscriptions);
-
- if (hasActiveSubscriptions) {
- if (mExpandAdvancedFields) {
- updateBodyAdvancedFields(activity, prefSet, mSubId, hasActiveSubscriptions);
- } else {
- prefSet.addPreference(mAdvancedOptions);
- }
- } else {
- // Shows the "Carrier" preference that allows user to add a e-sim profile.
- if (showEuiccSettings(getContext())) {
- mEuiccSettingsPref.setSummary(null /* summary */);
- prefSet.addPreference(mEuiccSettingsPref);
- }
- }
- }
-
- private void updateBodyAdvancedFields(Activity activity, PreferenceScreen prefSet,
- int phoneSubId, boolean hasActiveSubscriptions) {
- boolean isLteOnCdma = mTelephonyManager.getLteOnCdmaMode()
- == PhoneConstants.LTE_ON_CDMA_TRUE;
-
- if (DBG) {
- log("updateBody: isLteOnCdma=" + isLteOnCdma + " phoneSubId=" + phoneSubId);
- }
-
- prefSet.addPreference(mButtonPreferredNetworkMode);
- prefSet.addPreference(mButtonEnabledNetworks);
- prefSet.addPreference(mButton4glte);
-
- if (showEuiccSettings(getActivity())) {
- prefSet.addPreference(mEuiccSettingsPref);
- String spn = mTelephonyManager.getSimOperatorName();
- if (TextUtils.isEmpty(spn)) {
- mEuiccSettingsPref.setSummary(null);
- } else {
- mEuiccSettingsPref.setSummary(spn);
- }
- }
-
- int settingsNetworkMode = android.provider.Settings.Global.getInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
- preferredNetworkMode);
-
- PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
- mIsGlobalCdma = isLteOnCdma
- && carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_CDMA_CHOICES_BOOL);
- if (carrierConfig.getBoolean(
- CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL)) {
- prefSet.removePreference(mButtonPreferredNetworkMode);
- prefSet.removePreference(mButtonEnabledNetworks);
- prefSet.removePreference(mLteDataServicePref);
- } else if (carrierConfig.getBoolean(CarrierConfigManager
- .KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL)
- && !mTelephonyManager.getServiceState().getRoaming()
- && mTelephonyManager.getServiceState().getDataRegState()
- == ServiceState.STATE_IN_SERVICE) {
- prefSet.removePreference(mButtonPreferredNetworkMode);
- prefSet.removePreference(mButtonEnabledNetworks);
-
- final int phoneType = mTelephonyManager.getPhoneType();
- if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
- updateCdmaOptions(this, prefSet, mSubId);
- } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
- updateGsmUmtsOptions(this, prefSet, phoneSubId);
- } else {
- throw new IllegalStateException("Unexpected phone type: " + phoneType);
- }
- // Since pref is being hidden from user, set network mode to default
- // in case it is currently something else. That is possible if user
- // changed the setting while roaming and is now back to home network.
- settingsNetworkMode = preferredNetworkMode;
- } else if (carrierConfig.getBoolean(
- CarrierConfigManager.KEY_WORLD_PHONE_BOOL) == true) {
- prefSet.removePreference(mButtonEnabledNetworks);
- // set the listener for the mButtonPreferredNetworkMode list preference so we can issue
- // change Preferred Network Mode.
- mButtonPreferredNetworkMode.setOnPreferenceChangeListener(this);
-
- updateCdmaOptions(this, prefSet, mSubId);
- updateGsmUmtsOptions(this, prefSet, phoneSubId);
- } else {
- prefSet.removePreference(mButtonPreferredNetworkMode);
- updateEnabledNetworksEntries();
- mButtonEnabledNetworks.setOnPreferenceChangeListener(this);
- if (DBG) log("settingsNetworkMode: " + settingsNetworkMode);
- }
-
- final boolean missingDataServiceUrl = TextUtils.isEmpty(
- android.provider.Settings.Global.getString(activity.getContentResolver(),
- android.provider.Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL));
- if (!isLteOnCdma || missingDataServiceUrl) {
- prefSet.removePreference(mLteDataServicePref);
- } else {
- android.util.Log.d(LOG_TAG, "keep ltePref");
- }
-
- updateEnhanced4gLteState();
- updatePreferredNetworkType();
- updateCallingCategory();
-
- // Enable link to CMAS app settings depending on the value in config.xml.
- final boolean isCellBroadcastAppLinkEnabled = activity.getResources().getBoolean(
- com.android.internal.R.bool.config_cellBroadcastAppLinks);
- if (!mUm.isAdminUser() || !isCellBroadcastAppLinkEnabled
- || mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_CELL_BROADCASTS)) {
- PreferenceScreen root = getPreferenceScreen();
- Preference ps = findPreference(BUTTON_CELL_BROADCAST_SETTINGS);
- if (ps != null) {
- root.removePreference(ps);
- }
- }
-
- /**
- * Listen to extra preference changes that need as Metrics events logging.
- */
- if (prefSet.findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY) != null) {
- prefSet.findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
- .setOnPreferenceChangeListener(this);
- }
-
- if (prefSet.findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY) != null) {
- prefSet.findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)
- .setOnPreferenceChangeListener(this);
- }
-
- // Get the networkMode from Settings.System and displays it
- mButtonEnabledNetworks.setValue(Integer.toString(settingsNetworkMode));
- mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
- UpdatePreferredNetworkModeSummary(settingsNetworkMode);
- UpdateEnabledNetworksValueAndSummary(settingsNetworkMode);
- // Display preferred network type based on what modem returns b/18676277
- new SetPreferredNetworkAsyncTask(
- mTelephonyManager,
- mSubId,
- settingsNetworkMode,
- mHandler.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE))
- .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
-
- /**
- * Enable/disable depending upon if there are any active subscriptions.
- *
- * I've decided to put this enable/disable code at the bottom as the
- * code above works even when there are no active subscriptions, thus
- * putting it afterwards is a smaller change. This can be refined later,
- * but you do need to remember that this all needs to work when subscriptions
- * change dynamically such as when hot swapping sims.
- */
- int variant4glteTitleIndex = carrierConfig.getInt(
- CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT);
- CharSequence[] variantTitles = getContext().getResources()
- .getTextArray(R.array.enhanced_4g_lte_mode_title_variant);
- CharSequence[] variantSumaries = getContext().getResources()
- .getTextArray(R.array.enhanced_4g_lte_mode_sumary_variant);
- // Default index 0 indicates the default title/sumary string
- CharSequence enhanced4glteModeTitle = variantTitles[0];
- CharSequence enhanced4glteModeSummary = variantSumaries[0];
- if (variant4glteTitleIndex >= 0 && variant4glteTitleIndex < variantTitles.length) {
- enhanced4glteModeTitle = variantTitles[variant4glteTitleIndex];
- }
- if (variant4glteTitleIndex >= 0 && variant4glteTitleIndex < variantSumaries.length) {
- enhanced4glteModeSummary = variantSumaries[variant4glteTitleIndex];
- }
-
- mOnlyAutoSelectInHomeNW = carrierConfig.getBoolean(
- CarrierConfigManager.KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL);
- mButton4glte.setTitle(enhanced4glteModeTitle);
- mButton4glte.setSummary(enhanced4glteModeSummary);
- mLteDataServicePref.setEnabled(hasActiveSubscriptions);
- Preference ps;
- ps = findPreference(BUTTON_CELL_BROADCAST_SETTINGS);
- if (ps != null) {
- ps.setEnabled(hasActiveSubscriptions);
- }
- ps = findPreference(CATEGORY_GSM_APN_EXPAND_KEY);
- if (ps != null) {
- ps.setEnabled(hasActiveSubscriptions);
- }
- ps = findPreference(CATEGORY_CDMA_APN_EXPAND_KEY);
- if (ps != null) {
- ps.setEnabled(hasActiveSubscriptions);
- }
- ps = findPreference(NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
- if (ps != null) {
- ps.setEnabled(hasActiveSubscriptions);
- }
- ps = findPreference(BUTTON_CARRIER_SETTINGS_KEY);
- if (ps != null) {
- ps.setEnabled(hasActiveSubscriptions);
- }
- ps = findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY);
- if (ps != null) {
- ps.setEnabled(hasActiveSubscriptions);
- }
- ps = findPreference(CATEGORY_CALLING_KEY);
- if (ps != null) {
- ps.setEnabled(hasActiveSubscriptions);
- }
- ps = findPreference(NetworkOperators.BUTTON_AUTO_SELECT_KEY);
- if (ps != null) {
- ps.setSummary(null);
- if (mTelephonyManager.getServiceState().getRoaming()) {
- ps.setEnabled(true);
- } else {
- ps.setEnabled(!mOnlyAutoSelectInHomeNW);
- if (mOnlyAutoSelectInHomeNW) {
- ps.setSummary(getResources().getString(
- R.string.manual_mode_disallowed_summary,
- mTelephonyManager.getSimOperatorName()));
- }
- }
- }
- }
-
- // Requires that mSubId is up to date
- void updateEnabledNetworksEntries() {
- final int phoneType = mTelephonyManager.getPhoneType();
- final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
- mShow4GForLTE = carrierConfig != null ? carrierConfig.getBoolean(
- CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL) : false;
- if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
- final int lteForced = android.provider.Settings.Global.getInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.LTE_SERVICE_FORCED + mSubId,
- 0);
- final boolean isLteOnCdma = mTelephonyManager.getLteOnCdmaMode()
- == PhoneConstants.LTE_ON_CDMA_TRUE;
- final int settingsNetworkMode = android.provider.Settings.Global.getInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
- preferredNetworkMode);
- if (isLteOnCdma) {
- if (lteForced == 0) {
- mButtonEnabledNetworks.setEntries(
- R.array.enabled_networks_cdma_choices);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_cdma_values);
- } else {
- switch (settingsNetworkMode) {
- case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
- case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
- case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
- mButtonEnabledNetworks.setEntries(
- R.array.enabled_networks_cdma_no_lte_choices);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_cdma_no_lte_values);
- break;
- case TelephonyManager.NETWORK_MODE_GLOBAL:
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_ONLY:
- mButtonEnabledNetworks.setEntries(
- R.array.enabled_networks_cdma_only_lte_choices);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_cdma_only_lte_values);
- break;
- default:
- mButtonEnabledNetworks.setEntries(
- R.array.enabled_networks_cdma_choices);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_cdma_values);
- break;
- }
- }
- }
- updateCdmaOptions(this, getPreferenceScreen(), mSubId);
-
- } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
- if (isSupportTdscdma()) {
- mButtonEnabledNetworks.setEntries(
- R.array.enabled_networks_tdscdma_choices);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_tdscdma_values);
- } else if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)
- && !getResources().getBoolean(R.bool.config_enabled_lte)) {
- mButtonEnabledNetworks.setEntries(
- R.array.enabled_networks_except_gsm_lte_choices);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_except_gsm_lte_values);
- } else if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)) {
- int select = mShow4GForLTE
- ? R.array.enabled_networks_except_gsm_4g_choices
- : R.array.enabled_networks_except_gsm_choices;
- mButtonEnabledNetworks.setEntries(select);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_except_gsm_values);
- } else if (!getResources().getBoolean(R.bool.config_enabled_lte)) {
- mButtonEnabledNetworks.setEntries(
- R.array.enabled_networks_except_lte_choices);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_except_lte_values);
- } else if (mIsGlobalCdma) {
- mButtonEnabledNetworks.setEntries(
- R.array.enabled_networks_cdma_choices);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_cdma_values);
- } else {
- int select = mShow4GForLTE ? R.array.enabled_networks_4g_choices
- : R.array.enabled_networks_choices;
- mButtonEnabledNetworks.setEntries(select);
- mButtonEnabledNetworks.setEntryValues(
- R.array.enabled_networks_values);
- }
- updateGsmUmtsOptions(this, getPreferenceScreen(), mSubId);
- } else {
- throw new IllegalStateException("Unexpected phone type: " + phoneType);
- }
- if (isWorldMode()) {
- mButtonEnabledNetworks.setEntries(
- R.array.preferred_network_mode_choices_world_mode);
- mButtonEnabledNetworks.setEntryValues(
- R.array.preferred_network_mode_values_world_mode);
- }
- }
-
- @Override
- public void onPause() {
- super.onPause();
- if (DBG) log("onPause:+");
-
- mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
-
- mSubscriptionManager
- .removeOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
-
- final Context context = getActivity();
- context.unregisterReceiver(mPhoneChangeReceiver);
- context.getContentResolver().unregisterContentObserver(mDpcEnforcedContentObserver);
-
- // Remove callback for provisioning changes.
- try {
- if (mImsMgr != null) {
- mImsMgr.getConfigInterface().removeConfigCallback(
- mProvisioningCallback.getBinder());
- }
- } catch (ImsException e) {
- Log.w(LOG_TAG, "onPause: Unable to remove callback for provisioning changes");
- }
-
- if (DBG) log("onPause:-");
- }
-
- /**
- * Implemented to support onPreferenceChangeListener to look for preference
- * changes specifically on CLIR.
- *
- * @param preference is the preference to be changed, should be mButtonCLIR.
- * @param objValue should be the value of the selection, NOT its localized
- * display value.
- */
- public boolean onPreferenceChange(Preference preference, Object objValue) {
- sendMetricsEventPreferenceChanged(getPreferenceScreen(), preference, objValue);
-
- final int phoneSubId = mSubId;
- if (preference == mButtonPreferredNetworkMode) {
- //NOTE onPreferenceChange seems to be called even if there is no change
- //Check if the button value is changed from the System.Setting
- mButtonPreferredNetworkMode.setValue((String) objValue);
- int buttonNetworkMode;
- buttonNetworkMode = Integer.parseInt((String) objValue);
- int settingsNetworkMode = android.provider.Settings.Global.getInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
- preferredNetworkMode);
- if (buttonNetworkMode != settingsNetworkMode) {
- int modemNetworkMode;
- // if new mode is invalid ignore it
- switch (buttonNetworkMode) {
- case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
- case TelephonyManager.NETWORK_MODE_GSM_ONLY:
- case TelephonyManager.NETWORK_MODE_WCDMA_ONLY:
- case TelephonyManager.NETWORK_MODE_GSM_UMTS:
- case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
- case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
- case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
- case TelephonyManager.NETWORK_MODE_GLOBAL:
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
- case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_ONLY:
- case TelephonyManager.NETWORK_MODE_LTE_WCDMA:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
- // This is one of the modes we recognize
- modemNetworkMode = buttonNetworkMode;
- break;
- default:
- loge("Invalid Network Mode (" +buttonNetworkMode+ ") chosen. Ignore.");
- return true;
- }
-
- android.provider.Settings.Global.putInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
- buttonNetworkMode );
- //Set the modem network mode
- new SetPreferredNetworkAsyncTask(
- mTelephonyManager,
- mSubId,
- modemNetworkMode,
- mHandler.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE))
- .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
- } else if (preference == mButtonEnabledNetworks) {
- mButtonEnabledNetworks.setValue((String) objValue);
- int buttonNetworkMode;
- buttonNetworkMode = Integer.parseInt((String) objValue);
- if (DBG) log("buttonNetworkMode: " + buttonNetworkMode);
- int settingsNetworkMode = android.provider.Settings.Global.getInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
- preferredNetworkMode);
- if (buttonNetworkMode != settingsNetworkMode) {
- int modemNetworkMode;
- // if new mode is invalid ignore it
- switch (buttonNetworkMode) {
- case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
- case TelephonyManager.NETWORK_MODE_GSM_ONLY:
- case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
- case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
- // This is one of the modes we recognize
- modemNetworkMode = buttonNetworkMode;
- break;
- default:
- loge("Invalid Network Mode (" +buttonNetworkMode+ ") chosen. Ignore.");
- return true;
- }
-
- UpdateEnabledNetworksValueAndSummary(buttonNetworkMode);
-
- android.provider.Settings.Global.putInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
- buttonNetworkMode );
- //Set the modem network mode
- new SetPreferredNetworkAsyncTask(
- mTelephonyManager,
- mSubId,
- modemNetworkMode,
- mHandler.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE))
- .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
- } else if (preference == mButton4glte) {
- boolean enhanced4gMode = !mButton4glte.isChecked();
- mButton4glte.setChecked(enhanced4gMode);
- mImsMgr.setEnhanced4gLteModeSetting(mButton4glte.isChecked());
- } else if (preference == mButtonDataRoam) {
- if (DBG) log("onPreferenceTreeClick: preference == mButtonDataRoam.");
-
- //normally called on the toggle click
- if (!mButtonDataRoam.isChecked()) {
- PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(
- mSubId);
- if (carrierConfig != null && carrierConfig.getBoolean(
- CarrierConfigManager.KEY_DISABLE_CHARGE_INDICATION_BOOL)) {
- mTelephonyManager.setDataRoamingEnabled(true);
- MetricsLogger.action(getContext(),
- getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam),
- true);
- } else {
- // MetricsEvent with no value update.
- MetricsLogger.action(getContext(),
- getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam));
- // First confirm with a warning dialog about charges
- mOkClicked = false;
- RoamingDialogFragment fragment = new RoamingDialogFragment();
- Bundle b = new Bundle();
- b.putInt(RoamingDialogFragment.SUB_ID_KEY, mSubId);
- fragment.setArguments(b);
- fragment.show(getFragmentManager(), ROAMING_TAG);
- // Don't update the toggle unless the confirm button is actually pressed.
- return false;
- }
- } else {
- mTelephonyManager.setDataRoamingEnabled(false);
- MetricsLogger.action(getContext(),
- getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam),
- false);
- return true;
- }
- } else if (preference == mVideoCallingPref) {
- // If mButton4glte is not checked, mVideoCallingPref should be disabled.
- // So it only makes sense to call phoneMgr.enableVideoCalling if it's checked.
- if (mButton4glte.isChecked()) {
- mImsMgr.setVtSetting((boolean) objValue);
- return true;
- } else {
- loge("mVideoCallingPref should be disabled if mButton4glte is not checked.");
- mVideoCallingPref.setEnabled(false);
- return false;
- }
- } else if (preference == getPreferenceScreen()
- .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
- || preference == getPreferenceScreen()
- .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
- return true;
- }
-
- updateBody();
- // always let the preference setting proceed.
- return true;
- }
-
- private boolean is4gLtePrefEnabled(PersistableBundle carrierConfig) {
- return (mTelephonyManager.getCallState(mSubId)
- == TelephonyManager.CALL_STATE_IDLE)
- && mImsMgr != null
- && mImsMgr.isNonTtyOrTtyOnVolteEnabled()
- && carrierConfig.getBoolean(
- CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL);
- }
-
- private class MyHandler extends Handler {
-
- static final int MESSAGE_SET_PREFERRED_NETWORK_TYPE = 0;
-
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case MESSAGE_SET_PREFERRED_NETWORK_TYPE:
- handleSetPreferredNetworkTypeResponse(msg);
- break;
- }
- }
-
- private void handleSetPreferredNetworkTypeResponse(Message msg) {
- final Activity activity = getActivity();
- if (activity == null || activity.isDestroyed()) {
- // Access preferences of activity only if it is not destroyed
- // or if fragment is not attached to an activity.
- return;
- }
-
- boolean success = (boolean) msg.obj;
-
- if (success) {
- int networkMode;
- if (getPreferenceScreen().findPreference(
- BUTTON_PREFERED_NETWORK_MODE) != null) {
- networkMode = Integer.parseInt(mButtonPreferredNetworkMode.getValue());
- android.provider.Settings.Global.putInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE
- + mSubId,
- networkMode );
- }
- if (getPreferenceScreen().findPreference(BUTTON_ENABLED_NETWORKS_KEY) != null) {
- networkMode = Integer.parseInt(mButtonEnabledNetworks.getValue());
- android.provider.Settings.Global.putInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE
- + mSubId,
- networkMode );
- }
- } else {
- Log.i(LOG_TAG, "handleSetPreferredNetworkTypeResponse:" +
- "exception in setting network mode.");
- updatePreferredNetworkUIFromDb();
- }
- }
- }
-
- private void updatePreferredNetworkUIFromDb() {
- int settingsNetworkMode = android.provider.Settings.Global.getInt(
- getContext().getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
- preferredNetworkMode);
-
- if (DBG) {
- log("updatePreferredNetworkUIFromDb: settingsNetworkMode = " +
- settingsNetworkMode);
- }
-
- UpdatePreferredNetworkModeSummary(settingsNetworkMode);
- UpdateEnabledNetworksValueAndSummary(settingsNetworkMode);
- // changes the mButtonPreferredNetworkMode accordingly to settingsNetworkMode
- mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
- }
-
- private void UpdatePreferredNetworkModeSummary(int NetworkMode) {
- switch(NetworkMode) {
- case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_tdscdma_gsm_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_tdscdma_gsm_summary);
- break;
- case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_wcdma_perf_summary);
- break;
- case TelephonyManager.NETWORK_MODE_GSM_ONLY:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_gsm_only_summary);
- break;
- case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_tdscdma_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_WCDMA_ONLY:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_wcdma_only_summary);
- break;
- case TelephonyManager.NETWORK_MODE_GSM_UMTS:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_gsm_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
- switch (mTelephonyManager.getLteOnCdmaMode()) {
- case PhoneConstants.LTE_ON_CDMA_TRUE:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_cdma_summary);
- break;
- case PhoneConstants.LTE_ON_CDMA_FALSE:
- default:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_cdma_evdo_summary);
- break;
- }
- break;
- case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_cdma_only_summary);
- break;
- case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_evdo_only_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_tdscdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_ONLY:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_tdscdma_gsm_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_tdscdma_gsm_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_gsm_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_cdma_evdo_summary);
- break;
- case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_tdscdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
- if (mTelephonyManager.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA
- || mIsGlobalCdma
- || isWorldMode()) {
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_global_summary);
- } else {
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_summary);
- }
- break;
- case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_GLOBAL:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_cdma_evdo_gsm_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_tdscdma_wcdma_summary);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_WCDMA:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_lte_wcdma_summary);
- break;
- default:
- mButtonPreferredNetworkMode.setSummary(
- R.string.preferred_network_mode_global_summary);
- }
- }
-
- private void UpdateEnabledNetworksValueAndSummary(int NetworkMode) {
- switch (NetworkMode) {
- case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA));
- mButtonEnabledNetworks.setSummary(R.string.network_3G);
- break;
- case TelephonyManager.NETWORK_MODE_WCDMA_ONLY:
- case TelephonyManager.NETWORK_MODE_GSM_UMTS:
- case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
- if (!mIsGlobalCdma) {
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager.NETWORK_MODE_WCDMA_PREF));
- mButtonEnabledNetworks.setSummary(R.string.network_3G);
- } else {
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager
- .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
- mButtonEnabledNetworks.setSummary(R.string.network_global);
- }
- break;
- case TelephonyManager.NETWORK_MODE_GSM_ONLY:
- if (!mIsGlobalCdma) {
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager.NETWORK_MODE_GSM_ONLY));
- mButtonEnabledNetworks.setSummary(R.string.network_2G);
- } else {
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager
- .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
- mButtonEnabledNetworks.setSummary(R.string.network_global);
- }
- break;
- case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
- if (isWorldMode()) {
- mButtonEnabledNetworks.setSummary(
- R.string.preferred_network_mode_lte_gsm_umts_summary);
- controlCdmaOptions(false);
- controlGsmOptions(true);
- break;
- }
- case TelephonyManager.NETWORK_MODE_LTE_ONLY:
- case TelephonyManager.NETWORK_MODE_LTE_WCDMA:
- if (!mIsGlobalCdma) {
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA));
- mButtonEnabledNetworks.setSummary((mShow4GForLTE == true)
- ? R.string.network_4G : R.string.network_lte);
- } else {
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager
- .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
- mButtonEnabledNetworks.setSummary(R.string.network_global);
- }
- break;
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
- if (isWorldMode()) {
- mButtonEnabledNetworks.setSummary(
- R.string.preferred_network_mode_lte_cdma_summary);
- controlCdmaOptions(true);
- controlGsmOptions(false);
- } else {
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO));
- mButtonEnabledNetworks.setSummary(R.string.network_lte);
- }
- break;
- case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager
- .NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
- mButtonEnabledNetworks.setSummary(R.string.network_3G);
- break;
- case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
- case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
- case TelephonyManager.NETWORK_MODE_GLOBAL:
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager.NETWORK_MODE_CDMA_EVDO));
- mButtonEnabledNetworks.setSummary(R.string.network_3G);
- break;
- case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO));
- mButtonEnabledNetworks.setSummary(R.string.network_1x);
- break;
- case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY));
- mButtonEnabledNetworks.setSummary(R.string.network_3G);
- break;
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
- case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
- if (isSupportTdscdma()) {
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager
- .NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
- mButtonEnabledNetworks.setSummary(R.string.network_lte);
- } else {
- if (isWorldMode()) {
- controlCdmaOptions(true);
- controlGsmOptions(false);
- }
- mButtonEnabledNetworks.setValue(
- Integer.toString(TelephonyManager
- .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
- if (mTelephonyManager.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA
- || mIsGlobalCdma
- || isWorldMode()) {
- mButtonEnabledNetworks.setSummary(R.string.network_global);
- } else {
- mButtonEnabledNetworks.setSummary((mShow4GForLTE == true)
- ? R.string.network_4G : R.string.network_lte);
- }
- }
- break;
- default:
- String errMsg = "Invalid Network Mode (" + NetworkMode + "). Ignore.";
- loge(errMsg);
- mButtonEnabledNetworks.setSummary(errMsg);
- }
- }
-
- @Override
- public void onActivityResult(int requestCode, int resultCode, Intent data) {
- switch(requestCode) {
- case REQUEST_CODE_EXIT_ECM:
- Boolean isChoiceYes = data.getBooleanExtra(
- EmergencyCallbackModeExitDialog.EXTRA_EXIT_ECM_RESULT, false);
- if (isChoiceYes) {
- // If the phone exits from ECM mode, show the CDMA Options
- mCdmaOptions.showDialog(mClickedPreference);
- } else {
- // do nothing
- }
- break;
-
- default:
- break;
- }
- }
-
- private void updateWiFiCallState() {
- if (mWiFiCallingPref == null || mCallingCategory == null) {
- return;
- }
-
- // Removes the preference if the wifi calling is disabled.
- if (!isWifiCallingEnabled(getContext(), SubscriptionManager.getPhoneId(mSubId))) {
- mCallingCategory.removePreference(mWiFiCallingPref);
- return;
- }
-
- // See what Telecom thinks the SIM call manager is.
- final PhoneAccountHandle simCallManager =
- TelecomManager.from(getContext()).getSimCallManager();
-
- // Check which SIM call manager is for the current sub ID.
- PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
- String currentSubSimCallManager = null;
- if (carrierConfig != null) {
- currentSubSimCallManager = carrierConfig.getString(
- CarrierConfigManager.KEY_DEFAULT_SIM_CALL_MANAGER_STRING);
- }
-
- // Only try to configure the phone account if this is the sim call manager for the
- // current sub.
- if (simCallManager != null
- && simCallManager.getComponentName().flattenToString().equals(
- currentSubSimCallManager)) {
- Intent intent = MobileNetworkSettings.buildPhoneAccountConfigureIntent(
- getContext(), simCallManager);
- PackageManager pm = getContext().getPackageManager();
- List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
- mWiFiCallingPref.setTitle(resolutions.get(0).loadLabel(pm));
- mWiFiCallingPref.setSummary(null);
- mWiFiCallingPref.setIntent(intent);
- } else {
- String title = SubscriptionManager.getResourcesForSubId(getContext(), mSubId)
- .getString(R.string.wifi_calling_settings_title);
- mWiFiCallingPref.setTitle(title);
-
- int resId = com.android.internal.R.string.wifi_calling_off_summary;
- if (mImsMgr.isWfcEnabledByUser()) {
- boolean isRoaming = mTelephonyManager.isNetworkRoaming();
- int wfcMode = mImsMgr.getWfcMode(isRoaming);
-
- switch (wfcMode) {
- case ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY:
- resId = com.android.internal.R.string.wfc_mode_wifi_only_summary;
- break;
- case ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED:
- resId = com.android.internal.R.string
- .wfc_mode_cellular_preferred_summary;
- break;
- case ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED:
- resId = com.android.internal.R.string.wfc_mode_wifi_preferred_summary;
- break;
- default:
- if (DBG) log("Unexpected WFC mode value: " + wfcMode);
- }
- }
- mWiFiCallingPref.setSummary(resId);
- }
-
- mCallingCategory.addPreference(mWiFiCallingPref);
- mWiFiCallingPref.setEnabled(mTelephonyManager.getCallState(mSubId)
- == TelephonyManager.CALL_STATE_IDLE && hasActiveSubscriptions());
- }
-
- private void updateEnhanced4gLteState() {
- if (mButton4glte == null) {
- return;
- }
-
- PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-
- if ((mImsMgr == null
- || !mImsMgr.isVolteEnabledByPlatform()
- || !mImsMgr.isVolteProvisionedOnDevice()
- || !isImsServiceStateReady(mImsMgr)
- || carrierConfig.getBoolean(
- CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL))) {
- getPreferenceScreen().removePreference(mButton4glte);
- } else {
- mButton4glte.setEnabled(is4gLtePrefEnabled(carrierConfig)
- && hasActiveSubscriptions());
- boolean enh4glteMode = mImsMgr.isEnhanced4gLteModeSettingEnabledByUser()
- && mImsMgr.isNonTtyOrTtyOnVolteEnabled();
- mButton4glte.setChecked(enh4glteMode);
- }
- }
-
- private void updateVideoCallState() {
- if (mVideoCallingPref == null || mCallingCategory == null) {
- return;
- }
-
- PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-
- if (mImsMgr != null
- && mImsMgr.isVtEnabledByPlatform()
- && mImsMgr.isVtProvisionedOnDevice()
- && isImsServiceStateReady(mImsMgr)
- && (carrierConfig.getBoolean(
- CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS)
- || mTelephonyManager.isDataEnabled())) {
- mCallingCategory.addPreference(mVideoCallingPref);
- if (!mButton4glte.isChecked()) {
- mVideoCallingPref.setEnabled(false);
- mVideoCallingPref.setChecked(false);
- } else {
- mVideoCallingPref.setEnabled(mTelephonyManager.getCallState(mSubId)
- == TelephonyManager.CALL_STATE_IDLE && hasActiveSubscriptions());
- mVideoCallingPref.setChecked(mImsMgr.isVtEnabledByUser());
- mVideoCallingPref.setOnPreferenceChangeListener(this);
- }
- } else {
- mCallingCategory.removePreference(mVideoCallingPref);
- }
- }
-
- private void updatePreferredNetworkType() {
- boolean enabled = mTelephonyManager.getCallState(
- mSubId) == TelephonyManager.CALL_STATE_IDLE
- && hasActiveSubscriptions();
- Log.i(LOG_TAG, "updatePreferredNetworkType: " + enabled);
- // TODO: Disentangle enabled networks vs preferred network mode, it looks like
- // both buttons are shown to the user as "Preferred network type" and the options change
- // based on what looks like World mode.
- if (mButtonEnabledNetworks != null) {
- mButtonEnabledNetworks.setEnabled(enabled);
- }
- if (mButtonPreferredNetworkMode != null) {
- mButtonPreferredNetworkMode.setEnabled(enabled);
- }
- }
-
- private void updateCallingCategory() {
- if (mCallingCategory == null) {
- return;
- }
-
- updateWiFiCallState();
- updateVideoCallState();
-
- // If all items in calling category is removed, we remove it from
- // the screen. Otherwise we'll see title of the category but nothing
- // is in there.
- if (mCallingCategory.getPreferenceCount() == 0) {
- getPreferenceScreen().removePreference(mCallingCategory);
- } else {
- getPreferenceScreen().addPreference(mCallingCategory);
- }
- }
-
- private static void log(String msg) {
- Log.d(LOG_TAG, msg);
- }
-
- private static void loge(String msg) {
- Log.e(LOG_TAG, msg);
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- final int itemId = item.getItemId();
- if (itemId == android.R.id.home) { // See ActionBar#setDisplayHomeAsUpEnabled()
- // Commenting out "logical up" capability. This is a workaround for issue 5278083.
- //
- // Settings app may not launch this activity via UP_ACTIVITY_CLASS but the other
- // Activity that looks exactly same as UP_ACTIVITY_CLASS ("SubSettings" Activity).
- // At that moment, this Activity launches UP_ACTIVITY_CLASS on top of the Activity.
- // which confuses users.
- // TODO: introduce better mechanism for "up" capability here.
- /*Intent intent = new Intent(Intent.ACTION_MAIN);
- intent.setClassName(UP_ACTIVITY_PACKAGE, UP_ACTIVITY_CLASS);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- startActivity(intent);*/
- getActivity().finish();
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
-
- private boolean isWorldMode() {
- boolean worldModeOn = false;
- final String configString = getResources().getString(R.string.config_world_mode);
-
- if (!TextUtils.isEmpty(configString)) {
- String[] configArray = configString.split(";");
- // Check if we have World mode configuration set to True only or config is set to True
- // and SIM GID value is also set and matches to the current SIM GID.
- if (configArray != null &&
- ((configArray.length == 1 && configArray[0].equalsIgnoreCase("true"))
- || (configArray.length == 2 && !TextUtils.isEmpty(configArray[1])
- && mTelephonyManager != null
- && configArray[1].equalsIgnoreCase(
- mTelephonyManager.getGroupIdLevel1())))) {
- worldModeOn = true;
- }
- }
-
- Log.d(LOG_TAG, "isWorldMode=" + worldModeOn);
-
- return worldModeOn;
- }
-
- private void controlGsmOptions(boolean enable) {
- PreferenceScreen prefSet = getPreferenceScreen();
- if (prefSet == null) {
- return;
- }
-
- updateGsmUmtsOptions(this, prefSet, mSubId);
-
- PreferenceCategory networkOperatorCategory =
- (PreferenceCategory) prefSet.findPreference(
- NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
- Preference carrierSettings = prefSet.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
- if (networkOperatorCategory != null) {
- if (enable) {
- networkOperatorCategory.setEnabled(true);
- } else {
- prefSet.removePreference(networkOperatorCategory);
- }
- }
- if (carrierSettings != null) {
- prefSet.removePreference(carrierSettings);
- }
- }
-
- private void controlCdmaOptions(boolean enable) {
- PreferenceScreen prefSet = getPreferenceScreen();
- if (prefSet == null) {
- return;
- }
- updateCdmaOptions(this, prefSet, mSubId);
- CdmaSystemSelectListPreference systemSelect =
- (CdmaSystemSelectListPreference)prefSet.findPreference
- (BUTTON_CDMA_SYSTEM_SELECT_KEY);
- systemSelect.setSubscriptionId(mSubId);
- if (systemSelect != null) {
- systemSelect.setEnabled(enable);
- }
- }
-
- private boolean isSupportTdscdma() {
- if (getResources().getBoolean(R.bool.config_support_tdscdma)) {
- return true;
- }
-
- String operatorNumeric = mTelephonyManager.getServiceState().getOperatorNumeric();
- String[] numericArray = getResources().getStringArray(
- R.array.config_support_tdscdma_roaming_on_networks);
- if (numericArray.length == 0 || operatorNumeric == null) {
- return false;
- }
- for (String numeric : numericArray) {
- if (operatorNumeric.equals(numeric)) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Metrics events related methods. it takes care of all preferences possible in this
- * fragment(except a few that log on their own). It doesn't only include preferences in
- * network_setting_fragment.xml, but also those defined in GsmUmtsOptions and CdmaOptions.
- */
- private void sendMetricsEventPreferenceClicked(
- PreferenceScreen preferenceScreen, Preference preference) {
- final int category = getMetricsEventCategory(preferenceScreen, preference);
- if (category == MetricsEvent.VIEW_UNKNOWN) {
- return;
- }
-
- // Send MetricsEvent on click. It includes preferences other than SwitchPreferences,
- // which send MetricsEvent in onPreferenceChange.
- // For ListPreferences, we log it here without a value, only indicating it's clicked to
- // open the list dialog. When a value is chosen, another MetricsEvent is logged with
- // new value in onPreferenceChange.
- if (preference == mLteDataServicePref || preference == mDataUsagePref
- || preference == mEuiccSettingsPref || preference == mAdvancedOptions
- || preference == mWiFiCallingPref || preference == mButtonPreferredNetworkMode
- || preference == mButtonEnabledNetworks
- || preference == preferenceScreen.findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
- || preference == preferenceScreen.findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)
- || preference == preferenceScreen.findPreference(BUTTON_GSM_APN_EXPAND_KEY)
- || preference == preferenceScreen.findPreference(BUTTON_CDMA_APN_EXPAND_KEY)
- || preference == preferenceScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY)) {
- MetricsLogger.action(getContext(), category);
- }
- }
-
- private void sendMetricsEventPreferenceChanged(
- PreferenceScreen preferenceScreen, Preference preference, Object newValue) {
- final int category = getMetricsEventCategory(preferenceScreen, preference);
- if (category == MetricsEvent.VIEW_UNKNOWN) {
- return;
- }
-
- // MetricsEvent logging with new value, for SwitchPreferences and ListPreferences.
- if (preference == mButton4glte || preference == mVideoCallingPref) {
- MetricsLogger.action(getContext(), category, (Boolean) newValue);
- } else if (preference == mButtonPreferredNetworkMode
- || preference == mButtonEnabledNetworks
- || preference == preferenceScreen
- .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
- || preference == preferenceScreen
- .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
- // Network select preference sends metrics event in its own listener.
- MetricsLogger.action(getContext(), category, Integer.valueOf((String) newValue));
- }
- }
-
- private int getMetricsEventCategory(
- PreferenceScreen preferenceScreen, Preference preference) {
-
- if (preference == null) {
- return MetricsEvent.VIEW_UNKNOWN;
- } else if (preference == mMobileDataPref) {
- return MetricsEvent.ACTION_MOBILE_NETWORK_MOBILE_DATA_TOGGLE;
- } else if (preference == mButtonDataRoam) {
- return MetricsEvent.ACTION_MOBILE_NETWORK_DATA_ROAMING_TOGGLE;
- } else if (preference == mDataUsagePref) {
- return MetricsEvent.ACTION_MOBILE_NETWORK_DATA_USAGE;
- } else if (preference == mLteDataServicePref) {
- return MetricsEvent.ACTION_MOBILE_NETWORK_SET_UP_DATA_SERVICE;
- } else if (preference == mAdvancedOptions) {
- return MetricsEvent.ACTION_MOBILE_NETWORK_EXPAND_ADVANCED_FIELDS;
- } else if (preference == mButton4glte) {
- return MetricsEvent.ACTION_MOBILE_ENHANCED_4G_LTE_MODE_TOGGLE;
- } else if (preference == mButtonPreferredNetworkMode) {
- return MetricsEvent.ACTION_MOBILE_NETWORK_SELECT_PREFERRED_NETWORK;
- } else if (preference == mButtonEnabledNetworks) {
- return MetricsEvent.ACTION_MOBILE_NETWORK_SELECT_ENABLED_NETWORK;
- } else if (preference == mEuiccSettingsPref) {
- return MetricsEvent.ACTION_MOBILE_NETWORK_EUICC_SETTING;
- } else if (preference == mWiFiCallingPref) {
- return MetricsEvent.ACTION_MOBILE_NETWORK_WIFI_CALLING;
- } else if (preference == mVideoCallingPref) {
- return MetricsEvent.ACTION_MOBILE_NETWORK_VIDEO_CALLING_TOGGLE;
- } else if (preference == preferenceScreen
- .findPreference(NetworkOperators.BUTTON_AUTO_SELECT_KEY)) {
- return MetricsEvent.ACTION_MOBILE_NETWORK_AUTO_SELECT_NETWORK_TOGGLE;
- } else if (preference == preferenceScreen
- .findPreference(NetworkOperators.BUTTON_NETWORK_SELECT_KEY)) {
- return MetricsEvent.ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK;
- } else if (preference == preferenceScreen
- .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)) {
- return MetricsEvent.ACTION_MOBILE_NETWORK_CDMA_SYSTEM_SELECT;
- } else if (preference == preferenceScreen
- .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
- return MetricsEvent.ACTION_MOBILE_NETWORK_CDMA_SUBSCRIPTION_SELECT;
- } else if (preference == preferenceScreen.findPreference(BUTTON_GSM_APN_EXPAND_KEY)
- || preference == preferenceScreen.findPreference(BUTTON_CDMA_APN_EXPAND_KEY)) {
- return MetricsEvent.ACTION_MOBILE_NETWORK_APN_SETTINGS;
- } else if (preference == preferenceScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY)) {
- return MetricsEvent.ACTION_MOBILE_NETWORK_CARRIER_SETTINGS;
- } else {
- return MetricsEvent.VIEW_UNKNOWN;
- }
- }
-
- private void updateGsmUmtsOptions(PreferenceFragment prefFragment,
- PreferenceScreen prefScreen, final int subId) {
- // We don't want to re-create GsmUmtsOptions if already exists. Otherwise, the
- // preferences inside it will also be re-created which causes unexpected behavior.
- // For example, the open dialog gets dismissed or detached after pause / resume.
- if (mGsmUmtsOptions == null) {
- mGsmUmtsOptions = new GsmUmtsOptions(prefFragment, prefScreen, subId);
- } else {
- mGsmUmtsOptions.update(subId);
- }
- }
-
- private void updateCdmaOptions(PreferenceFragment prefFragment, PreferenceScreen prefScreen,
- int subId) {
- // We don't want to re-create CdmaOptions if already exists. Otherwise, the preferences
- // inside it will also be re-created which causes unexpected behavior. For example,
- // the open dialog gets dismissed or detached after pause / resume.
- if (mCdmaOptions == null) {
- mCdmaOptions = new CdmaOptions(prefFragment, prefScreen, subId);
- } else {
- mCdmaOptions.updateSubscriptionId(subId);
- }
- }
- }
-
- private static final class SetPreferredNetworkAsyncTask extends AsyncTask<Void, Void, Boolean> {
-
- private final TelephonyManager mTelephonyManager;
- private final int mSubId;
- private final int mNetworkType;
- private final Message mCallback;
-
- SetPreferredNetworkAsyncTask(
- TelephonyManager tm, int subId, int networkType, Message callback) {
- mTelephonyManager = tm;
- mSubId = subId;
- mNetworkType = networkType;
- mCallback = callback;
- }
-
- @Override
- protected Boolean doInBackground(Void... voids) {
- return mTelephonyManager.setPreferredNetworkType(mSubId, mNetworkType);
- }
-
- @Override
- protected void onPostExecute(Boolean isSuccessed) {
- mCallback.obj = isSuccessed;
- mCallback.sendToTarget();
- }
- }
-}
diff --git a/src/com/android/phone/NetworkOperatorPreference.java b/src/com/android/phone/NetworkOperatorPreference.java
deleted file mode 100644
index 09c494c..0000000
--- a/src/com/android/phone/NetworkOperatorPreference.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.graphics.drawable.ColorDrawable;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.LayerDrawable;
-import android.preference.Preference;
-import android.telephony.CellInfo;
-import android.telephony.SignalStrength;
-import android.util.Log;
-import android.view.Gravity;
-
-import com.android.settingslib.graph.SignalDrawable;
-
-import java.util.List;
-
-/**
- * A Preference represents a network operator in the NetworkSelectSetting fragment.
- */
-public class NetworkOperatorPreference extends Preference {
-
- private static final String TAG = "NetworkOperatorPref";
- private static final boolean DBG = false;
- // number of signal strength level
- public static final int NUMBER_OF_LEVELS = SignalStrength.NUM_SIGNAL_STRENGTH_BINS;
- private CellInfo mCellInfo;
- private List<String> mForbiddenPlmns;
- private int mLevel = -1;
- private boolean mShow4GForLTE;
-
- // The following constants are used to draw signal icon.
- private static final Drawable EMPTY_DRAWABLE = new ColorDrawable(Color.TRANSPARENT);
- private static final int NO_CELL_DATA_CONNECTED_ICON = 0;
-
- public NetworkOperatorPreference(
- CellInfo cellinfo, Context context, List<String> forbiddenPlmns, boolean show4GForLTE) {
- super(context);
- mCellInfo = cellinfo;
- mForbiddenPlmns = forbiddenPlmns;
- mShow4GForLTE = show4GForLTE;
- refresh();
- }
-
- public CellInfo getCellInfo() {
- return mCellInfo;
- }
-
- /**
- * Refresh the NetworkOperatorPreference by updating the title and the icon.
- */
- public void refresh() {
- if (DBG) Log.d(TAG, "refresh the network: " + CellInfoUtil.getNetworkTitle(mCellInfo));
- String networkTitle = CellInfoUtil.getNetworkTitle(mCellInfo);
- if (CellInfoUtil.isForbidden(mCellInfo, mForbiddenPlmns)) {
- networkTitle += " " + getContext().getResources().getString(R.string.forbidden_network);
- }
- setTitle(networkTitle);
- int level = mCellInfo.getCellSignalStrength().getLevel();
- if (DBG) Log.d(TAG, "refresh level: " + String.valueOf(level));
- if (mLevel != level) {
- mLevel = level;
- updateIcon(mLevel);
- }
- }
-
- /**
- * Update the icon according to the input signal strength level.
- */
- public void setIcon(int level) {
- updateIcon(level);
- }
-
- private int getIconIdForCell(CellInfo ci) {
- final int type = ci.getCellIdentity().getType();
- switch (type) {
- case CellInfo.TYPE_GSM: return R.drawable.signal_strength_g;
- case CellInfo.TYPE_WCDMA: // fall through
- case CellInfo.TYPE_TDSCDMA: return R.drawable.signal_strength_3g;
- case CellInfo.TYPE_LTE:
- return mShow4GForLTE
- ? R.drawable.signal_strength_4g : R.drawable.signal_strength_lte;
- case CellInfo.TYPE_CDMA: return R.drawable.signal_strength_1x;
- default: return 0;
- }
- }
-
- private void updateIcon(int level) {
- if (level < 0 || level >= NUMBER_OF_LEVELS) return;
- Context context = getContext();
- // Make the signal strength drawable
- int iconId = 0;
- if (DBG) Log.d(TAG, "updateIcon level: " + String.valueOf(level));
- iconId = SignalDrawable.getState(level, NUMBER_OF_LEVELS, false /* cutOut */);
-
- SignalDrawable signalDrawable = new SignalDrawable(getContext());
- signalDrawable.setLevel(iconId);
- signalDrawable.setDarkIntensity(0);
-
- // Make the network type drawable
- int iconType = getIconIdForCell(mCellInfo);
- Drawable networkDrawable =
- iconType == NO_CELL_DATA_CONNECTED_ICON
- ? EMPTY_DRAWABLE
- : getContext()
- .getResources().getDrawable(iconType, getContext().getTheme());
-
- // Overlay the two drawables
- Drawable[] layers = {networkDrawable, signalDrawable};
- final int iconSize =
- context.getResources().getDimensionPixelSize(R.dimen.signal_strength_icon_size);
-
- LayerDrawable icons = new LayerDrawable(layers);
- // Set the network type icon at the top left
- icons.setLayerGravity(0 /* index of networkDrawable */, Gravity.TOP | Gravity.LEFT);
- // Set the signal strength icon at the bottom right
- icons.setLayerGravity(1 /* index of SignalDrawable */, Gravity.BOTTOM | Gravity.RIGHT);
- icons.setLayerSize(1 /* index of SignalDrawable */, iconSize, iconSize);
- setIcon(icons);
- }
-}
diff --git a/src/com/android/phone/NetworkOperators.java b/src/com/android/phone/NetworkOperators.java
deleted file mode 100644
index 938ca34..0000000
--- a/src/com/android/phone/NetworkOperators.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.app.ProgressDialog;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Handler;
-import android.os.Message;
-import android.preference.Preference;
-import android.preference.PreferenceCategory;
-import android.preference.TwoStatePreference;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.widget.Toast;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settingslib.utils.ThreadUtils;
-
-/**
- * "Networks" settings UI for the Phone app.
- */
-public class NetworkOperators extends PreferenceCategory
- implements Preference.OnPreferenceChangeListener {
-
- private static final String LOG_TAG = "NetworkOperators";
- private static final boolean DBG = true;
-
- private static final int EVENT_AUTO_SELECT_DONE = 100;
- private static final int EVENT_GET_NETWORK_SELECTION_MODE_DONE = 200;
-
- //String keys for preference lookup
- public static final String BUTTON_NETWORK_SELECT_KEY = "button_network_select_key";
- public static final String BUTTON_AUTO_SELECT_KEY = "button_auto_select_key";
- public static final String BUTTON_CHOOSE_NETWORK_KEY = "button_choose_network_key";
- public static final String CATEGORY_NETWORK_OPERATORS_KEY = "network_operators_category_key";
-
- //preference objects
- private NetworkSelectListPreference mNetworkSelect;
- private TwoStatePreference mAutoSelect;
- private Preference mChooseNetwork;
- private ProgressDialog mProgressDialog;
-
- private int mSubId;
- private TelephonyManager mTelephonyManager;
-
- // There's two sets of Auto-Select UI in this class.
- // If {@code com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI} set as true
- // {@link mChooseNetwork} will be used, otherwise {@link mNetworkSelect} will be used.
- boolean mEnableNewManualSelectNetworkUI;
-
- public NetworkOperators(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- public NetworkOperators(Context context) {
- super(context);
- }
-
- /**
- * Initialize NetworkOperators instance.
- */
- public void initialize() {
- mEnableNewManualSelectNetworkUI = getContext().getResources().getBoolean(
- com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI);
- mAutoSelect = (TwoStatePreference) findPreference(BUTTON_AUTO_SELECT_KEY);
- mChooseNetwork = findPreference(BUTTON_CHOOSE_NETWORK_KEY);
- mNetworkSelect = (NetworkSelectListPreference) findPreference(BUTTON_NETWORK_SELECT_KEY);
- if (mEnableNewManualSelectNetworkUI) {
- removePreference(mNetworkSelect);
- } else {
- removePreference(mChooseNetwork);
- }
- mProgressDialog = new ProgressDialog(getContext());
- mTelephonyManager = TelephonyManager.from(getContext());
- }
-
- /**
- * Update NetworkOperators instance if like subId is updated.
- *
- * @param subId Corresponding subscription ID of this network.
- */
- protected void update(final int subId) {
- mSubId = subId;
- mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
-
- if (mAutoSelect != null) {
- mAutoSelect.setOnPreferenceChangeListener(this);
- }
-
- if (mEnableNewManualSelectNetworkUI) {
- if (mChooseNetwork != null) {
- ServiceState ss = mTelephonyManager.getServiceState();
- if (ss != null && ss.getState() == ServiceState.STATE_IN_SERVICE) {
- mChooseNetwork.setSummary(mTelephonyManager.getNetworkOperatorName());
- } else {
- mChooseNetwork.setSummary(R.string.network_disconnected);
- }
- }
- } else {
- if (mNetworkSelect != null) {
- mNetworkSelect.initialize(mSubId, this, mProgressDialog);
- }
- }
- getNetworkSelectionMode();
- }
-
- /**
- * Implemented to support onPreferenceChangeListener to look for preference
- * changes specifically on auto select button.
- *
- * @param preference is the preference to be changed, should be auto select button.
- * @param newValue should be the value of whether autoSelect is checked.
- */
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- if (preference == mAutoSelect) {
- boolean autoSelect = (Boolean) newValue;
- if (DBG) logd("onPreferenceChange autoSelect: " + String.valueOf(autoSelect));
- selectNetworkAutomatic(autoSelect);
- MetricsLogger.action(getContext(),
- MetricsEvent.ACTION_MOBILE_NETWORK_AUTO_SELECT_NETWORK_TOGGLE, autoSelect);
- return true;
- }
- return false;
- }
-
- private final Handler mHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case EVENT_AUTO_SELECT_DONE:
- mAutoSelect.setEnabled(true);
- dismissProgressBar();
-
- boolean isSuccessed = (boolean) msg.obj;
-
- if (isSuccessed) {
- if (DBG) logd("automatic network selection: succeeded!");
- displayNetworkSelectionSucceeded();
- } else {
- if (DBG) logd("automatic network selection: failed!");
- displayNetworkSelectionFailed();
- }
-
- break;
- case EVENT_GET_NETWORK_SELECTION_MODE_DONE:
- int networkSelectionMode = msg.arg1;
- if (networkSelectionMode == TelephonyManager.NETWORK_SELECTION_MODE_UNKNOWN) {
- if (DBG) logd("get network selection mode: failed!");
- } else {
- boolean autoSelect = networkSelectionMode
- == TelephonyManager.NETWORK_SELECTION_MODE_AUTO;
- if (DBG) {
- logd("get network selection mode: "
- + (autoSelect ? "auto" : "manual") + " selection");
- }
- if (mAutoSelect != null) {
- mAutoSelect.setChecked(autoSelect);
- }
- if (mEnableNewManualSelectNetworkUI) {
- if (mChooseNetwork != null) {
- mChooseNetwork.setEnabled(!autoSelect);
- }
- } else {
- if (mNetworkSelect != null) {
- mNetworkSelect.setEnabled(!autoSelect);
- }
- }
- }
- }
- return;
- }
- };
-
- // Used by both mAutoSelect and mNetworkSelect buttons.
- protected void displayNetworkSelectionFailed() {
- Toast.makeText(getContext(), R.string.connect_later, Toast.LENGTH_LONG).show();
- }
-
- // Used by both mAutoSelect and mNetworkSelect buttons.
- protected void displayNetworkSelectionSucceeded() {
- Toast.makeText(getContext(), R.string.registration_done, Toast.LENGTH_LONG).show();
- }
-
- private void selectNetworkAutomatic(boolean autoSelect) {
- if (DBG) logd("selectNetworkAutomatic: " + String.valueOf(autoSelect));
-
- if (autoSelect) {
- if (mEnableNewManualSelectNetworkUI) {
- if (mChooseNetwork != null) {
- mChooseNetwork.setEnabled(!autoSelect);
- }
- } else {
- if (mNetworkSelect != null) {
- mNetworkSelect.setEnabled(!autoSelect);
- }
- }
- if (DBG) logd("select network automatically...");
- showAutoSelectProgressBar();
- mAutoSelect.setEnabled(false);
- if (SubscriptionManager.isValidSubscriptionId(mSubId)) {
- ThreadUtils.postOnBackgroundThread(() -> {
- mTelephonyManager.setNetworkSelectionModeAutomatic();
- // Because TelephonyManager#setNetworkSelectionModeAutomatic doesn't have a
- // return value, we query the current network selection mode to tell if the
- // TelephonyManager#setNetworkSelectionModeAutomatic is successed.
- int networkSelectionMode = mTelephonyManager.getNetworkSelectionMode();
- Message msg = mHandler.obtainMessage(EVENT_AUTO_SELECT_DONE);
- msg.obj = networkSelectionMode == TelephonyManager.NETWORK_SELECTION_MODE_AUTO;
- msg.sendToTarget();
- });
- }
- } else {
- if (mEnableNewManualSelectNetworkUI) {
- if (mChooseNetwork != null) {
- // Open the choose Network page automatically when user turn off the auto-select
- openChooseNetworkPage();
- }
- } else {
- if (mNetworkSelect != null) {
- mNetworkSelect.onClick();
- }
- }
- }
- }
-
- protected void getNetworkSelectionMode() {
- if (DBG) logd("getting network selection mode...");
- ThreadUtils.postOnBackgroundThread(() -> {
- int networkSelectionMode = mTelephonyManager.getNetworkSelectionMode();
- Message msg = mHandler.obtainMessage(EVENT_GET_NETWORK_SELECTION_MODE_DONE);
- msg.arg1 = networkSelectionMode;
- msg.sendToTarget();
- });
- }
-
- private void dismissProgressBar() {
- if (mProgressDialog != null && mProgressDialog.isShowing()) {
- mProgressDialog.dismiss();
- }
- }
-
- private void showAutoSelectProgressBar() {
- mProgressDialog.setMessage(
- getContext().getResources().getString(R.string.register_automatically));
- mProgressDialog.setCanceledOnTouchOutside(false);
- mProgressDialog.setCancelable(false);
- mProgressDialog.setIndeterminate(true);
- mProgressDialog.show();
- }
-
- /**
- * Open the Choose network page via {@alink NetworkSelectSettingActivity}
- */
- public void openChooseNetworkPage() {
- Intent intent = NetworkSelectSettingActivity.getIntent(getContext(), mSubId);
- getContext().startActivity(intent);
- }
-
- protected boolean preferenceTreeClick(Preference preference) {
- if (mEnableNewManualSelectNetworkUI) {
- if (DBG) logd("enable New AutoSelectNetwork UI");
- if (preference == mChooseNetwork) {
- openChooseNetworkPage();
- }
- return (preference == mAutoSelect || preference == mChooseNetwork);
- } else {
- return (preference == mAutoSelect || preference == mNetworkSelect);
- }
- }
-
- private void logd(String msg) {
- Log.d(LOG_TAG, "[NetworksList] " + msg);
- }
-
- private void loge(String msg) {
- Log.e(LOG_TAG, "[NetworksList] " + msg);
- }
-}
diff --git a/src/com/android/phone/NetworkQueryService.java b/src/com/android/phone/NetworkQueryService.java
deleted file mode 100644
index e67582f..0000000
--- a/src/com/android/phone/NetworkQueryService.java
+++ /dev/null
@@ -1,409 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.app.Service;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Binder;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Message;
-import android.os.RemoteCallbackList;
-import android.os.RemoteException;
-import android.telephony.AccessNetworkConstants;
-import android.telephony.CellIdentityGsm;
-import android.telephony.CellInfo;
-import android.telephony.CellInfoGsm;
-import android.telephony.NetworkScan;
-import android.telephony.NetworkScanRequest;
-import android.telephony.RadioAccessSpecifier;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.telephony.TelephonyScanManager;
-import android.util.Log;
-
-import com.android.internal.telephony.CellNetworkScanResult;
-import com.android.internal.telephony.OperatorInfo;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Service code used to assist in querying the network for service
- * availability.
- */
-public class NetworkQueryService extends Service {
- // debug data
- private static final String LOG_TAG = "NetworkQuery";
- private static final boolean DBG = true;
-
- // static events
- private static final int EVENT_NETWORK_SCAN_VIA_PHONE_COMPLETED = 100;
- private static final int EVENT_NETWORK_SCAN_RESULTS = 200;
- private static final int EVENT_NETWORK_SCAN_ERROR = 300;
- private static final int EVENT_NETWORK_SCAN_COMPLETED = 400;
-
- // static states indicating the query status of the service
- private static final int QUERY_READY = -1;
- private static final int QUERY_IS_RUNNING = -2;
-
- // error statuses that will be retured in the callback.
- public static final int QUERY_OK = 0;
- public static final int QUERY_EXCEPTION = 1;
-
- static final String ACTION_LOCAL_BINDER = "com.android.phone.intent.action.LOCAL_BINDER";
-
- /** state of the query service */
- private int mState;
-
- private NetworkScan mNetworkScan;
-
- // NetworkScanRequest parameters
- private static final int SCAN_TYPE = NetworkScanRequest.SCAN_TYPE_ONE_SHOT;
- private static final boolean INCREMENTAL_RESULTS = true;
- // The parameters below are in seconds
- private static final int SEARCH_PERIODICITY_SEC = 5;
- private static final int MAX_SEARCH_TIME_SEC = 300;
- private static final int INCREMENTAL_RESULTS_PERIODICITY_SEC = 3;
-
- /**
- * Class for clients to access. Because we know this service always
- * runs in the same process as its clients, we don't need to deal with
- * IPC.
- */
- public class LocalBinder extends Binder {
- INetworkQueryService getService() {
- return mBinder;
- }
- }
- private final IBinder mLocalBinder = new LocalBinder();
-
- /**
- * Local handler to receive the network query compete callback
- * from the RIL.
- */
- Handler mHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- // if the scan is complete, broadcast the results.
- // to all registerd callbacks.
- case EVENT_NETWORK_SCAN_VIA_PHONE_COMPLETED:
- if (DBG) log("scan via Phone completed, broadcasting results");
- broadcastQueryResults(msg);
- break;
-
- case EVENT_NETWORK_SCAN_RESULTS:
- if (DBG) log("get scan results, broadcasting results");
- broadcastQueryResults(msg);
- break;
-
- case EVENT_NETWORK_SCAN_ERROR:
- if (DBG) log("get scan error, broadcasting error code");
- broadcastQueryResults(msg);
- break;
-
- case EVENT_NETWORK_SCAN_COMPLETED:
- if (DBG) log("network scan or stop network query completed");
- broadcastQueryResults(msg);
- break;
- }
- }
- };
-
- /**
- * List of callback objects, also used to synchronize access to
- * itself and to changes in state.
- */
- final RemoteCallbackList<INetworkQueryServiceCallback> mCallbacks =
- new RemoteCallbackList<INetworkQueryServiceCallback>();
-
- /**
- * This implementation of NetworkScanCallbackImpl is used to receive callback notifications from
- * the Telephony Manager.
- */
- public class NetworkScanCallbackImpl extends TelephonyScanManager.NetworkScanCallback {
-
- /** Returns the scan results to the user, this callback will be called at least one time. */
- public void onResults(List<CellInfo> results) {
- if (DBG) log("got network scan results: " + results.size());
- Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_RESULTS, results);
- msg.sendToTarget();
- }
-
- /**
- * Informs the user that the scan has stopped.
- *
- * This callback will be called when the scan is finished or cancelled by the user.
- * The related NetworkScanRequest will be deleted after this callback.
- */
- public void onComplete() {
- if (DBG) log("network scan completed");
- Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED);
- msg.sendToTarget();
- }
-
- /**
- * Informs the user that there is some error about the scan.
- *
- * This callback will be called whenever there is any error about the scan, and the scan
- * will be terminated. onComplete() will NOT be called.
- */
- public void onError(int error) {
- if (DBG) log("network scan got error: " + error);
- Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_ERROR, error, 0 /* arg2 */);
- msg.sendToTarget();
- }
- }
-
- /**
- * Implementation of the INetworkQueryService interface.
- */
- private final INetworkQueryService.Stub mBinder = new INetworkQueryService.Stub() {
-
- /**
- * Starts a query with a INetworkQueryServiceCallback object if
- * one has not been started yet. Ignore the new query request
- * if the query has been started already. Either way, place the
- * callback object in the queue to be notified upon request
- * completion.
- */
- public void startNetworkQuery(
- INetworkQueryServiceCallback cb, int subId, boolean isIncrementalResult) {
- if (cb != null) {
- // register the callback to the list of callbacks.
- synchronized (mCallbacks) {
- mCallbacks.register(cb);
- if (DBG) log("registering callback " + cb.getClass().toString());
-
- switch (mState) {
- case QUERY_READY:
-
- if (isIncrementalResult) {
- if (DBG) log("start network scan via TelephonManager");
- TelephonyManager tm = (TelephonyManager) getSystemService(
- Context.TELEPHONY_SERVICE);
- // The Radio Access Specifiers below are meant to scan
- // all the bands for all the supported technologies.
- RadioAccessSpecifier gsm = new RadioAccessSpecifier(
- AccessNetworkConstants.AccessNetworkType.GERAN,
- null /* bands */,
- null /* channels */);
- RadioAccessSpecifier lte = new RadioAccessSpecifier(
- AccessNetworkConstants.AccessNetworkType.EUTRAN,
- null /* bands */,
- null /* channels */);
- RadioAccessSpecifier wcdma = new RadioAccessSpecifier(
- AccessNetworkConstants.AccessNetworkType.UTRAN,
- null /* bands */,
- null /* channels */);
- RadioAccessSpecifier[] radioAccessSpecifier = {gsm, lte, wcdma};
- NetworkScanRequest networkScanRequest = new NetworkScanRequest(
- SCAN_TYPE,
- radioAccessSpecifier,
- SEARCH_PERIODICITY_SEC,
- MAX_SEARCH_TIME_SEC,
- INCREMENTAL_RESULTS,
- INCREMENTAL_RESULTS_PERIODICITY_SEC,
- null /* List of PLMN ids (MCC-MNC) */);
-
- // Construct a NetworkScanCallback
- NetworkQueryService.NetworkScanCallbackImpl
- networkScanCallback =
- new NetworkQueryService.NetworkScanCallbackImpl();
-
- // Request network scan
- mNetworkScan = tm.requestNetworkScan(networkScanRequest,
- networkScanCallback);
- mState = QUERY_IS_RUNNING;
- } else {
- if (SubscriptionManager.isValidSubscriptionId(subId)) {
- mState = QUERY_IS_RUNNING;
- ThreadUtils.postOnBackgroundThread(() -> {
- if (DBG) log("start network scan via Phone xxx");
- TelephonyManager telephonyManager =
- TelephonyManager.from(getApplicationContext())
- .createForSubscriptionId(subId);
- CellNetworkScanResult result =
- telephonyManager.getAvailableNetworks();
- Message msg = mHandler.obtainMessage(
- EVENT_NETWORK_SCAN_VIA_PHONE_COMPLETED);
- msg.obj = result;
- msg.sendToTarget();
- });
- } else {
- if (DBG) {
- log("SubscriptionId is invalid");
- }
- }
- }
-
- break;
- // do nothing if we're currently busy.
- case QUERY_IS_RUNNING:
- if (DBG) log("query already in progress");
- break;
- default:
- }
- }
- }
- }
-
- /**
- * Stops a query with a INetworkQueryServiceCallback object as
- * a token.
- */
- public void stopNetworkQuery() {
- if (DBG) log("stop network query");
- // Tells the RIL to terminate the query request.
- if (mNetworkScan != null) {
- try {
- mNetworkScan.stop();
- mState = QUERY_READY;
- } catch (RemoteException e) {
- if (DBG) log("stop mNetworkScan failed");
- } catch (IllegalArgumentException e) {
- // Do nothing, scan has already completed.
- }
- }
- }
-
- /**
- * Unregisters the callback without impacting an underlying query.
- */
- public void unregisterCallback(INetworkQueryServiceCallback cb) {
- if (cb != null) {
- synchronized (mCallbacks) {
- if (DBG) log("unregistering callback " + cb.getClass().toString());
- mCallbacks.unregister(cb);
- }
- }
- }
- };
-
- @Override
- public void onCreate() {
- mState = QUERY_READY;
- }
-
- /**
- * Required for service implementation.
- */
- @Override
- public void onStart(Intent intent, int startId) {
- }
-
- /**
- * Handle the bind request.
- */
- @Override
- public IBinder onBind(Intent intent) {
- if (DBG) log("binding service implementation");
- if (ACTION_LOCAL_BINDER.equals(intent.getAction())) {
- return mLocalBinder;
- }
-
- return mBinder;
- }
-
- /**
- * Broadcast the results from the query to all registered callback objects.
- */
- private void broadcastQueryResults(Message msg) {
- // reset the state.
- synchronized (mCallbacks) {
- mState = QUERY_READY;
-
- // Make the calls to all the registered callbacks.
- for (int i = (mCallbacks.beginBroadcast() - 1); i >= 0; i--) {
- INetworkQueryServiceCallback cb = mCallbacks.getBroadcastItem(i);
- if (DBG) log("broadcasting results to " + cb.getClass().toString());
- try {
- switch (msg.what) {
- case EVENT_NETWORK_SCAN_VIA_PHONE_COMPLETED:
- CellNetworkScanResult result = (CellNetworkScanResult) msg.obj;
- if (result.getOperators() != null) {
- cb.onResults(getCellInfoList(result.getOperators()));
- } else {
- if (DBG) log("Operators list is null.");
- }
- // Send the onComplete() callback to indicate the one-time network
- // scan has completed.
- cb.onComplete();
- break;
-
- case EVENT_NETWORK_SCAN_RESULTS:
- cb.onResults((List<CellInfo>) msg.obj);
- break;
-
- case EVENT_NETWORK_SCAN_COMPLETED:
- cb.onComplete();
- break;
-
- case EVENT_NETWORK_SCAN_ERROR:
- cb.onError(msg.arg1);
- break;
- }
- } catch (RemoteException e) {
- }
- }
-
- // finish up.
- mCallbacks.finishBroadcast();
- }
- }
-
- /**
- * Wraps up a list of OperatorInfo object to a list of CellInfo object. GsmCellInfo is used here
- * only because operatorInfo does not contain technology type while CellInfo is an abstract
- * object that requires to specify technology type. It doesn't matter which CellInfo type to
- * use here, since we only want to wrap the operator info and PLMN to a CellInfo object.
- */
- private List<CellInfo> getCellInfoList(List<OperatorInfo> operatorInfoList) {
- List<CellInfo> cellInfoList = new ArrayList<>();
- for (OperatorInfo oi: operatorInfoList) {
- String operatorNumeric = oi.getOperatorNumeric();
- String mcc = null;
- String mnc = null;
- log("operatorNumeric: " + operatorNumeric);
- if (operatorNumeric != null && operatorNumeric.matches("^[0-9]{5,6}$")) {
- mcc = operatorNumeric.substring(0, 3);
- mnc = operatorNumeric.substring(3);
- }
- CellIdentityGsm cig = new CellIdentityGsm(
- Integer.MAX_VALUE /* lac */,
- Integer.MAX_VALUE /* cid */,
- Integer.MAX_VALUE /* arfcn */,
- Integer.MAX_VALUE /* bsic */,
- mcc,
- mnc,
- oi.getOperatorAlphaLong(),
- oi.getOperatorAlphaShort());
-
- CellInfoGsm ci = new CellInfoGsm();
- ci.setCellIdentity(cig);
- cellInfoList.add(ci);
- }
- return cellInfoList;
- }
-
- private static void log(String msg) {
- Log.d(LOG_TAG, msg);
- }
-}
\ No newline at end of file
diff --git a/src/com/android/phone/NetworkScanHelper.java b/src/com/android/phone/NetworkScanHelper.java
deleted file mode 100644
index a21f547..0000000
--- a/src/com/android/phone/NetworkScanHelper.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.annotation.IntDef;
-import android.telephony.AccessNetworkConstants.AccessNetworkType;
-import android.telephony.CellInfo;
-import android.telephony.NetworkScan;
-import android.telephony.NetworkScanRequest;
-import android.telephony.RadioAccessSpecifier;
-import android.telephony.TelephonyManager;
-import android.telephony.TelephonyScanManager;
-import android.util.Log;
-
-import com.android.internal.telephony.CellNetworkScanResult;
-
-import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.SettableFuture;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.List;
-import java.util.concurrent.Executor;
-import java.util.stream.Collectors;
-
-/**
- * A helper class that builds the common interface and performs the network scan for two different
- * network scan APIs.
- */
-public class NetworkScanHelper {
- public static final String TAG = "NetworkScanHelper";
- private static final boolean DBG = true;
-
- /**
- * Callbacks interface to inform the network scan results.
- */
- public interface NetworkScanCallback {
- /**
- * Called when the results is returned from {@link TelephonyManager}. This method will be
- * called at least one time if there is no error occurred during the network scan.
- *
- * <p> This method can be called multiple times in one network scan, until
- * {@link #onComplete()} or {@link #onError(int)} is called.
- *
- * @param results
- */
- void onResults(List<CellInfo> results);
-
- /**
- * Called when the current network scan process is finished. No more
- * {@link #onResults(List)} will be called for the current network scan after this method is
- * called.
- */
- void onComplete();
-
- /**
- * Called when an error occurred during the network scan process.
- *
- * <p> There is no more result returned from {@link TelephonyManager} if an error occurred.
- *
- * <p> {@link #onComplete()} will not be called if an error occurred.
- *
- * @see {@link android.telephony.NetworkScan.ScanErrorCode}
- */
- void onError(int errorCode);
- }
-
- @Retention(RetentionPolicy.SOURCE)
- @IntDef({NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS, NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS})
- public @interface NetworkQueryType {}
-
- /**
- * Performs the network scan using {@link TelephonyManager#getAvailableNetworks()}. The network
- * scan results won't be returned to the caller until the network scan is completed.
- *
- * <p> This is typically used when the modem doesn't support the new network scan api
- * {@link TelephonyManager#requestNetworkScan(
- * NetworkScanRequest, Executor, TelephonyScanManager.NetworkScanCallback)}.
- */
- public static final int NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS = 1;
-
- /**
- * Performs the network scan using {@link TelephonyManager#requestNetworkScan(
- * NetworkScanRequest, Executor, TelephonyScanManager.NetworkScanCallback)} The network scan
- * results will be returned to the caller periodically in a small time window until the network
- * scan is completed. The complete results should be returned in the last called of
- * {@link NetworkScanCallback#onResults(List)}.
- *
- * <p> This is recommended to be used if modem supports the new network scan api
- * {@link TelephonyManager#requestNetworkScan(
- * NetworkScanRequest, Executor, TelephonyScanManager.NetworkScanCallback)}
- */
- public static final int NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS = 2;
-
- /** The constants below are used in the async network scan. */
- private static final boolean INCREMENTAL_RESULTS = true;
- private static final int SEARCH_PERIODICITY_SEC = 5;
- private static final int MAX_SEARCH_TIME_SEC = 300;
- private static final int INCREMENTAL_RESULTS_PERIODICITY_SEC = 3;
-
- private static final NetworkScanRequest NETWORK_SCAN_REQUEST =
- new NetworkScanRequest(
- NetworkScanRequest.SCAN_TYPE_ONE_SHOT,
- new RadioAccessSpecifier[]{
- // GSM
- new RadioAccessSpecifier(
- AccessNetworkType.GERAN,
- null /* bands */,
- null /* channels */),
- // LTE
- new RadioAccessSpecifier(
- AccessNetworkType.EUTRAN,
- null /* bands */,
- null /* channels */),
- // WCDMA
- new RadioAccessSpecifier(
- AccessNetworkType.UTRAN,
- null /* bands */,
- null /* channels */)
- },
- SEARCH_PERIODICITY_SEC,
- MAX_SEARCH_TIME_SEC,
- INCREMENTAL_RESULTS,
- INCREMENTAL_RESULTS_PERIODICITY_SEC,
- null /* List of PLMN ids (MCC-MNC) */);
-
- private final NetworkScanCallback mNetworkScanCallback;
- private final TelephonyManager mTelephonyManager;
- private final TelephonyScanManager.NetworkScanCallback mInternalNetworkScanCallback;
- private final Executor mExecutor;
-
- private NetworkScan mNetworkScanRequester;
-
- /** Callbacks for sync network scan */
- private ListenableFuture<List<CellInfo>> mNetworkScanFuture;
-
- public NetworkScanHelper(TelephonyManager tm, NetworkScanCallback callback, Executor executor) {
- mTelephonyManager = tm;
- mNetworkScanCallback = callback;
- mInternalNetworkScanCallback = new NetworkScanCallbackImpl();
- mExecutor = executor;
- }
-
- /**
- * Performs a network scan for the given type {@code type}.
- * {@link #NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS} is recommended if modem supports
- * {@link TelephonyManager#requestNetworkScan(
- * NetworkScanRequest, Executor, TelephonyScanManager.NetworkScanCallback)}.
- *
- * @param type used to tell which network scan API should be used.
- */
- public void startNetworkScan(@NetworkQueryType int type) {
- if (type == NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS) {
- mNetworkScanFuture = SettableFuture.create();
- Futures.addCallback(mNetworkScanFuture, new FutureCallback<List<CellInfo>>() {
- @Override
- public void onSuccess(List<CellInfo> result) {
- onResults(result);
- onComplete();
- }
-
- @Override
- public void onFailure(Throwable t) {
- int errCode = Integer.parseInt(t.getMessage());
- onError(errCode);
- }
- });
- mExecutor.execute(new NetworkScanSyncTask(
- mTelephonyManager, (SettableFuture) mNetworkScanFuture));
- } else if (type == NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS) {
- if (DBG) Log.d(TAG, "start network scan async");
- mNetworkScanRequester = mTelephonyManager.requestNetworkScan(
- NETWORK_SCAN_REQUEST,
- mExecutor,
- mInternalNetworkScanCallback);
- }
- }
-
- /**
- * The network scan of type {@link #NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS} can't be stopped,
- * however, the result of the current network scan won't be returned to the callback after
- * calling this method.
- */
- public void stopNetworkQuery() {
- if (mNetworkScanRequester != null) {
- mNetworkScanRequester.stopScan();
- mNetworkScanFuture = null;
- }
-
- if (mNetworkScanFuture != null) {
- mNetworkScanFuture.cancel(true /* mayInterruptIfRunning */);
- mNetworkScanFuture = null;
- }
- }
-
- private void onResults(List<CellInfo> cellInfos) {
- mNetworkScanCallback.onResults(cellInfos);
- }
-
- private void onComplete() {
- mNetworkScanCallback.onComplete();
- }
-
- private void onError(int errCode) {
- mNetworkScanCallback.onError(errCode);
- }
-
- /**
- * Converts the status code of {@link CellNetworkScanResult} to one of the
- * {@link android.telephony.NetworkScan.ScanErrorCode}.
- * @param errCode status code from {@link CellNetworkScanResult}.
- *
- * @return one of the scan error code from {@link android.telephony.NetworkScan.ScanErrorCode}.
- */
- private static int convertToScanErrorCode(int errCode) {
- switch (errCode) {
- case CellNetworkScanResult.STATUS_RADIO_NOT_AVAILABLE:
- return NetworkScan.ERROR_RADIO_INTERFACE_ERROR;
- case CellNetworkScanResult.STATUS_RADIO_GENERIC_FAILURE:
- default:
- return NetworkScan.ERROR_MODEM_ERROR;
- }
- }
-
- private final class NetworkScanCallbackImpl extends TelephonyScanManager.NetworkScanCallback {
- public void onResults(List<CellInfo> results) {
- if (DBG) Log.d(TAG, "async scan onResults() results = " + results);
- NetworkScanHelper.this.onResults(results);
- }
-
- public void onComplete() {
- if (DBG) Log.d(TAG, "async scan onComplete()");
- NetworkScanHelper.this.onComplete();
- }
-
- public void onError(@NetworkScan.ScanErrorCode int errCode) {
- if (DBG) Log.d(TAG, "async scan onError() errorCode = " + errCode);
- NetworkScanHelper.this.onError(errCode);
- }
- }
-
- private static final class NetworkScanSyncTask implements Runnable {
- private final SettableFuture<List<CellInfo>> mCallback;
- private final TelephonyManager mTelephonyManager;
-
- NetworkScanSyncTask(
- TelephonyManager telephonyManager, SettableFuture<List<CellInfo>> callback) {
- mTelephonyManager = telephonyManager;
- mCallback = callback;
- }
-
- @Override
- public void run() {
- if (DBG) Log.d(TAG, "sync scan start");
- CellNetworkScanResult result = mTelephonyManager.getAvailableNetworks();
- if (result.getStatus() == CellNetworkScanResult.STATUS_SUCCESS) {
- List<CellInfo> cellInfos = result.getOperators()
- .stream()
- .map(operatorInfo
- -> CellInfoUtil.convertOperatorInfoToCellInfo(operatorInfo))
- .collect(Collectors.toList());
- if (DBG) Log.d(TAG, "sync scan complete");
- mCallback.set(cellInfos);
- } else {
- mCallback.setException(new Throwable(
- Integer.toString(convertToScanErrorCode(result.getStatus()))));
- }
- }
- }
-}
diff --git a/src/com/android/phone/NetworkSelectListPreference.java b/src/com/android/phone/NetworkSelectListPreference.java
deleted file mode 100644
index df3f44a..0000000
--- a/src/com/android/phone/NetworkSelectListPreference.java
+++ /dev/null
@@ -1,505 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.app.ProgressDialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.os.AsyncTask;
-import android.os.Handler;
-import android.os.Message;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.preference.ListPreference;
-import android.preference.Preference;
-import android.telephony.CellInfo;
-import android.telephony.CellInfoCdma;
-import android.telephony.CellInfoGsm;
-import android.telephony.CellInfoLte;
-import android.telephony.CellInfoWcdma;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.text.BidiFormatter;
-import android.text.TextDirectionHeuristics;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.widget.Toast;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.OperatorInfo;
-import com.android.phone.NetworkScanHelper.NetworkScanCallback;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-
-/**
- * "Networks" preference in "Mobile network" settings UI for the Phone app.
- * It's used to manually search and choose mobile network. Enabled only when
- * autoSelect preference is turned off.
- */
-public class NetworkSelectListPreference extends ListPreference
- implements DialogInterface.OnCancelListener,
- Preference.OnPreferenceChangeListener{
-
- private static final String LOG_TAG = "networkSelect";
- private static final boolean DBG = true;
-
- private static final int EVENT_MANUALLY_NETWORK_SELECTION_DONE = 1;
- private static final int EVENT_NETWORK_SCAN_RESULTS = 2;
- private static final int EVENT_NETWORK_SCAN_COMPLETED = 3;
- private static final int EVENT_NETWORK_SCAN_ERROR = 4;
-
- //dialog ids
- private static final int DIALOG_NETWORK_SELECTION = 100;
- private static final int DIALOG_NETWORK_LIST_LOAD = 200;
-
- private final ExecutorService mNetworkScanExecutor = Executors.newFixedThreadPool(1);
-
- private List<CellInfo> mCellInfoList;
- private CellInfo mCellInfo;
-
- private int mSubId;
- private TelephonyManager mTelephonyManager;
- private NetworkScanHelper mNetworkScanHelper;
- private NetworkOperators mNetworkOperators;
- private List<String> mForbiddenPlmns;
-
- private ProgressDialog mProgressDialog;
- public NetworkSelectListPreference(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- public NetworkSelectListPreference(Context context, AttributeSet attrs, int defStyleAttr,
- int defStyleRes) {
- super(context, attrs, defStyleAttr, defStyleRes);
- }
-
- @Override
- protected void onClick() {
- showProgressDialog(DIALOG_NETWORK_LIST_LOAD);
- TelephonyManager telephonyManager = (TelephonyManager)
- getContext().getSystemService(Context.TELEPHONY_SERVICE);
- new AsyncTask<Void, Void, List<String>>() {
- @Override
- protected List<String> doInBackground(Void... voids) {
- String[] forbiddenPlmns = telephonyManager.getForbiddenPlmns();
- return forbiddenPlmns != null ? Arrays.asList(forbiddenPlmns) : null;
- }
-
- @Override
- protected void onPostExecute(List<String> result) {
- mForbiddenPlmns = result;
- loadNetworksList();
- }
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
-
- private final Handler mHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case EVENT_MANUALLY_NETWORK_SELECTION_DONE:
- if (DBG) logd("hideProgressPanel");
- dismissProgressDialog();
-
- boolean isSuccessed = (boolean) msg.obj;
- if (isSuccessed) {
- if (DBG) {
- logd("manual network selection: succeeded! "
- + getNetworkTitle(mCellInfo));
- }
- mNetworkOperators.displayNetworkSelectionSucceeded();
- } else {
- if (DBG) logd("manual network selection: failed!");
- mNetworkOperators.displayNetworkSelectionFailed();
- }
- mNetworkOperators.getNetworkSelectionMode();
- break;
-
- case EVENT_NETWORK_SCAN_RESULTS:
- List<CellInfo> results = (List<CellInfo>) msg.obj;
- results.removeIf(cellInfo -> cellInfo == null);
- mCellInfoList = new ArrayList<>(results);
- if (DBG) logd("CALLBACK_SCAN_RESULTS" + mCellInfoList.toString());
- break;
-
- case EVENT_NETWORK_SCAN_COMPLETED:
- if (DBG) logd("scan complete, load the cellInfosList");
- dismissProgressDialog();
- networksListLoaded();
- break;
- case EVENT_NETWORK_SCAN_ERROR:
- dismissProgressDialog();
- displayNetworkQueryFailed();
- mNetworkOperators.getNetworkSelectionMode();
- break;
- }
- return;
- }
- };
-
- private final NetworkScanHelper.NetworkScanCallback mCallback = new NetworkScanCallback() {
- public void onResults(List<CellInfo> results) {
- if (DBG) logd("get scan results: " + results.toString());
- Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_RESULTS, results);
- msg.sendToTarget();
- }
-
- public void onComplete() {
- if (DBG) logd("network scan completed.");
- Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED);
- msg.sendToTarget();
- }
-
- public void onError(int error) {
- if (DBG) logd("network scan error.");
- Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_ERROR);
- msg.sendToTarget();
- }
- };
-
- @Override
- //implemented for DialogInterface.OnCancelListener
- public void onCancel(DialogInterface dialog) {
- if (DBG) logd("user manually close the dialog");
- mNetworkScanHelper.stopNetworkQuery();
-
- // If cancelled, we query NetworkSelectMode and update states of AutoSelect button.
- mNetworkOperators.getNetworkSelectionMode();
- }
-
- @Override
- protected void onDialogClosed(boolean positiveResult) {
- super.onDialogClosed(positiveResult);
- // If dismissed, we query NetworkSelectMode and update states of AutoSelect button.
- if (!positiveResult) {
- mNetworkOperators.getNetworkSelectionMode();
- }
- }
-
- // This initialize method needs to be called for this preference to work properly.
- protected void initialize(int subId, NetworkOperators networkOperators,
- ProgressDialog progressDialog) {
- mSubId = subId;
- mNetworkOperators = networkOperators;
- // This preference should share the same progressDialog with networkOperators category.
- mProgressDialog = progressDialog;
-
- mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
- mNetworkScanHelper = new NetworkScanHelper(
- mTelephonyManager, mCallback, mNetworkScanExecutor);
-
- setSummary(mTelephonyManager.getNetworkOperatorName());
-
- setOnPreferenceChangeListener(this);
- }
-
- @Override
- protected void onPrepareForRemoval() {
- destroy();
- super.onPrepareForRemoval();
- }
-
- private void destroy() {
- dismissProgressDialog();
-
- if (mNetworkScanHelper != null) {
- mNetworkScanHelper.stopNetworkQuery();
- }
-
- mNetworkScanExecutor.shutdown();
- }
-
- private void displayEmptyNetworkList() {
- Toast.makeText(getContext(), R.string.empty_networks_list, Toast.LENGTH_LONG).show();
- }
-
- private void displayNetworkQueryFailed() {
- Toast.makeText(getContext(), R.string.network_query_error, Toast.LENGTH_LONG).show();
- }
-
- private void loadNetworksList() {
- if (DBG) logd("load networks list...");
- mNetworkScanHelper.startNetworkScan(
- NetworkScanHelper.NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS);
- }
-
- private void networksListLoaded() {
- if (DBG) logd("networks list loaded");
-
- mNetworkOperators.getNetworkSelectionMode();
- if (mCellInfoList != null) {
- // create a preference for each item in the list.
- // just use the operator name instead of the mildly
- // confusing mcc/mnc.
- List<CharSequence> networkEntriesList = new ArrayList<>();
- List<CharSequence> networkEntryValuesList = new ArrayList<>();
- for (CellInfo cellInfo: mCellInfoList) {
- // Display each operator name only once.
- String networkTitle = getNetworkTitle(cellInfo);
- if (CellInfoUtil.isForbidden(cellInfo, mForbiddenPlmns)) {
- networkTitle += " "
- + getContext().getResources().getString(R.string.forbidden_network);
- }
- networkEntriesList.add(networkTitle);
- networkEntryValuesList.add(getOperatorNumeric(cellInfo));
- }
- setEntries(networkEntriesList.toArray(new CharSequence[networkEntriesList.size()]));
- setEntryValues(networkEntryValuesList.toArray(
- new CharSequence[networkEntryValuesList.size()]));
-
- super.onClick();
- } else {
- displayEmptyNetworkList();
- }
- }
-
- private void dismissProgressDialog() {
- if (mProgressDialog != null && mProgressDialog.isShowing()) {
- try {
- mProgressDialog.dismiss();
- } catch (IllegalArgumentException ex) {
- loge("Can't close the progress dialog " + ex);
- }
- }
- }
-
- private void showProgressDialog(int id) {
- if (mProgressDialog == null) {
- mProgressDialog = new ProgressDialog(getContext());
- } else {
- // Dismiss progress bar if it's showing now.
- dismissProgressDialog();
- }
-
- switch (id) {
- case DIALOG_NETWORK_SELECTION:
- final String networkSelectMsg = getContext().getResources()
- .getString(R.string.register_on_network,
- getNetworkTitle(mCellInfo));
- mProgressDialog.setMessage(networkSelectMsg);
- mProgressDialog.setCanceledOnTouchOutside(false);
- mProgressDialog.setCancelable(false);
- mProgressDialog.setIndeterminate(true);
- break;
- case DIALOG_NETWORK_LIST_LOAD:
- mProgressDialog.setMessage(
- getContext().getResources().getString(R.string.load_networks_progress));
- mProgressDialog.setCanceledOnTouchOutside(false);
- mProgressDialog.setCancelable(true);
- mProgressDialog.setIndeterminate(false);
- mProgressDialog.setOnCancelListener(this);
- break;
- default:
- }
- mProgressDialog.show();
- }
-
- /**
- * Implemented to support onPreferenceChangeListener to look for preference
- * changes specifically on this button.
- *
- * @param preference is the preference to be changed, should be network select button.
- * @param newValue should be the value of the selection as index of operators.
- */
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- int operatorIndex = findIndexOfValue((String) newValue);
- mCellInfo = mCellInfoList.get(operatorIndex);
- if (DBG) logd("selected network: " + mCellInfo.toString());
-
- MetricsLogger.action(getContext(),
- MetricsEvent.ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK);
-
- if (SubscriptionManager.isValidSubscriptionId(mSubId)) {
- ThreadUtils.postOnBackgroundThread(() -> {
- final OperatorInfo operatorInfo = getOperatorInfoFromCellInfo(mCellInfo);
- if (DBG) logd("manually selected network: " + operatorInfo.toString());
- boolean isSuccessed = mTelephonyManager.setNetworkSelectionModeManual(
- operatorInfo, true /* persistSelection */);
- Message msg = mHandler.obtainMessage(EVENT_MANUALLY_NETWORK_SELECTION_DONE);
- msg.obj = isSuccessed;
- msg.sendToTarget();
- });
- } else {
- loge("Error selecting network, subscription Id is invalid " + mSubId);
- }
-
- return true;
- }
-
- /**
- * Returns the title of the network obtained in the manual search.
- *
- * @param cellInfo contains the information of the network.
- * @return Long Name if not null/empty, otherwise Short Name if not null/empty,
- * else MCCMNC string.
- */
- private String getNetworkTitle(CellInfo cellInfo) {
- OperatorInfo ni = getOperatorInfoFromCellInfo(cellInfo);
-
- if (!TextUtils.isEmpty(ni.getOperatorAlphaLong())) {
- return ni.getOperatorAlphaLong();
- } else if (!TextUtils.isEmpty(ni.getOperatorAlphaShort())) {
- return ni.getOperatorAlphaShort();
- } else {
- BidiFormatter bidiFormatter = BidiFormatter.getInstance();
- return bidiFormatter.unicodeWrap(ni.getOperatorNumeric(), TextDirectionHeuristics.LTR);
- }
- }
-
- /**
- * Returns the operator numeric (MCCMNC) obtained in the manual search.
- *
- * @param cellInfo contains the information of the network.
- * @return MCCMNC string.
- */
- private String getOperatorNumeric(CellInfo cellInfo) {
- return getOperatorInfoFromCellInfo(cellInfo).getOperatorNumeric();
- }
-
- /**
- * Wrap a cell info into an operator info.
- */
- private OperatorInfo getOperatorInfoFromCellInfo(CellInfo cellInfo) {
- OperatorInfo oi;
- if (cellInfo instanceof CellInfoLte) {
- CellInfoLte lte = (CellInfoLte) cellInfo;
- oi = new OperatorInfo(
- (String) lte.getCellIdentity().getOperatorAlphaLong(),
- (String) lte.getCellIdentity().getOperatorAlphaShort(),
- lte.getCellIdentity().getMobileNetworkOperator());
- } else if (cellInfo instanceof CellInfoWcdma) {
- CellInfoWcdma wcdma = (CellInfoWcdma) cellInfo;
- oi = new OperatorInfo(
- (String) wcdma.getCellIdentity().getOperatorAlphaLong(),
- (String) wcdma.getCellIdentity().getOperatorAlphaShort(),
- wcdma.getCellIdentity().getMobileNetworkOperator());
- } else if (cellInfo instanceof CellInfoGsm) {
- CellInfoGsm gsm = (CellInfoGsm) cellInfo;
- oi = new OperatorInfo(
- (String) gsm.getCellIdentity().getOperatorAlphaLong(),
- (String) gsm.getCellIdentity().getOperatorAlphaShort(),
- gsm.getCellIdentity().getMobileNetworkOperator());
- } else if (cellInfo instanceof CellInfoCdma) {
- CellInfoCdma cdma = (CellInfoCdma) cellInfo;
- oi = new OperatorInfo(
- (String) cdma.getCellIdentity().getOperatorAlphaLong(),
- (String) cdma.getCellIdentity().getOperatorAlphaShort(),
- "" /* operator numeric */);
- } else {
- oi = new OperatorInfo("", "", "");
- }
- return oi;
- }
-
- @Override
- protected Parcelable onSaveInstanceState() {
- final Parcelable superState = super.onSaveInstanceState();
- if (isPersistent()) {
- // No need to save instance state since it's persistent
- return superState;
- }
-
- final SavedState myState = new SavedState(superState);
- myState.mDialogListEntries = getEntries();
- myState.mDialogListEntryValues = getEntryValues();
- myState.mCellInfoList = mCellInfoList;
- return myState;
- }
-
- @Override
- protected void onRestoreInstanceState(Parcelable state) {
- if (state == null || !state.getClass().equals(SavedState.class)) {
- // Didn't save state for us in onSaveInstanceState
- super.onRestoreInstanceState(state);
- return;
- }
-
- SavedState myState = (SavedState) state;
-
- if (getEntries() == null && myState.mDialogListEntries != null) {
- setEntries(myState.mDialogListEntries);
- }
- if (getEntryValues() == null && myState.mDialogListEntryValues != null) {
- setEntryValues(myState.mDialogListEntryValues);
- }
- if (mCellInfoList == null && myState.mCellInfoList != null) {
- mCellInfoList = myState.mCellInfoList;
- }
-
- super.onRestoreInstanceState(myState.getSuperState());
- }
-
- /**
- * We save entries, entryValues and operatorInfoList into bundle.
- * At onCreate of fragment, dialog will be restored if it was open. In this case,
- * we need to restore entries, entryValues and operatorInfoList. Without those information,
- * onPreferenceChange will fail if user select network from the dialog.
- */
- private static class SavedState extends BaseSavedState {
- CharSequence[] mDialogListEntries;
- CharSequence[] mDialogListEntryValues;
- List<CellInfo> mCellInfoList;
-
- SavedState(Parcel source) {
- super(source);
- final ClassLoader boot = Object.class.getClassLoader();
- mDialogListEntries = source.readCharSequenceArray();
- mDialogListEntryValues = source.readCharSequenceArray();
- mCellInfoList = source.readParcelableList(mCellInfoList, boot);
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- super.writeToParcel(dest, flags);
- dest.writeCharSequenceArray(mDialogListEntries);
- dest.writeCharSequenceArray(mDialogListEntryValues);
- dest.writeParcelableList(mCellInfoList, flags);
- }
-
- SavedState(Parcelable superState) {
- super(superState);
- }
-
- public static final Parcelable.Creator<SavedState> CREATOR =
- new Parcelable.Creator<SavedState>() {
- public SavedState createFromParcel(Parcel in) {
- return new SavedState(in);
- }
-
- public SavedState[] newArray(int size) {
- return new SavedState[size];
- }
- };
- }
-
- private void logd(String msg) {
- Log.d(LOG_TAG, "[NetworksList] " + msg);
- }
-
- private void loge(String msg) {
- Log.e(LOG_TAG, "[NetworksList] " + msg);
- }
-}
diff --git a/src/com/android/phone/NetworkSelectSetting.java b/src/com/android/phone/NetworkSelectSetting.java
deleted file mode 100644
index d9731be..0000000
--- a/src/com/android/phone/NetworkSelectSetting.java
+++ /dev/null
@@ -1,568 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.phone;
-
-import android.app.ActionBar;
-import android.app.Activity;
-import android.content.Context;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.os.PersistableBundle;
-import android.preference.Preference;
-import android.preference.PreferenceCategory;
-import android.preference.PreferenceFragment;
-import android.preference.PreferenceScreen;
-import android.telephony.AccessNetworkConstants;
-import android.telephony.CarrierConfigManager;
-import android.telephony.CellIdentity;
-import android.telephony.CellInfo;
-import android.telephony.NetworkRegistrationState;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import com.android.internal.logging.MetricsLogger;
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.telephony.OperatorInfo;
-import com.android.phone.NetworkScanHelper.NetworkScanCallback;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-/**
- * "Choose network" settings UI for the Phone app.
- */
-public class NetworkSelectSetting extends PreferenceFragment {
-
- private static final String TAG = "NetworkSelectSetting";
- private static final boolean DBG = true;
-
- private static final int EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE = 1;
- private static final int EVENT_NETWORK_SCAN_RESULTS = 2;
- private static final int EVENT_NETWORK_SCAN_ERROR = 3;
- private static final int EVENT_NETWORK_SCAN_COMPLETED = 4;
-
- private static final String PREF_KEY_CONNECTED_NETWORK_OPERATOR =
- "connected_network_operator_preference";
- private static final String PREF_KEY_NETWORK_OPERATORS = "network_operators_preference";
-
- // used to add/remove NetworkOperatorsPreference.
- private PreferenceCategory mNetworkOperatorsPreferences;
- // used to add/remove connected NetworkOperatorPreference.
- private PreferenceCategory mConnectedNetworkOperatorsPreference;
- // manage the progress bar on the top of the page.
- private View mProgressHeader;
- private Preference mStatusMessagePreference;
- private List<CellInfo> mCellInfoList;
- private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
- private ViewGroup mFrameLayout;
- private NetworkOperatorPreference mSelectedNetworkOperatorPreference;
- private TelephonyManager mTelephonyManager;
- private List<String> mForbiddenPlmns;
- private boolean mShow4GForLTE = false;
- private NetworkScanHelper mNetworkScanHelper;
- private final ExecutorService mNetworkScanExecutor = Executors.newFixedThreadPool(1);
-
- private final Runnable mUpdateNetworkOperatorsRunnable = () -> {
- updateNetworkOperatorsPreferenceCategory();
- };
-
- /**
- * Create a new instance of this fragment.
- */
- public static NetworkSelectSetting newInstance(int subId) {
- Bundle args = new Bundle();
- args.putInt(NetworkSelectSettingActivity.KEY_SUBSCRIPTION_ID, subId);
- NetworkSelectSetting fragment = new NetworkSelectSetting();
- fragment.setArguments(args);
-
- return fragment;
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- if (DBG) logd("onCreate");
- super.onCreate(icicle);
-
- mSubId = getArguments().getInt(NetworkSelectSettingActivity.KEY_SUBSCRIPTION_ID);
-
- addPreferencesFromResource(R.xml.choose_network);
- mConnectedNetworkOperatorsPreference =
- (PreferenceCategory) findPreference(PREF_KEY_CONNECTED_NETWORK_OPERATOR);
- mNetworkOperatorsPreferences =
- (PreferenceCategory) findPreference(PREF_KEY_NETWORK_OPERATORS);
- mStatusMessagePreference = new Preference(getContext());
- mSelectedNetworkOperatorPreference = null;
- mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
- mNetworkScanHelper = new NetworkScanHelper(
- mTelephonyManager, mCallback, mNetworkScanExecutor);
- PersistableBundle bundle = ((CarrierConfigManager) getContext().getSystemService(
- Context.CARRIER_CONFIG_SERVICE)).getConfigForSubId(mSubId);
- if (bundle != null) {
- mShow4GForLTE = bundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL);
- }
- setRetainInstance(true);
- }
-
- @Override
- public void onViewCreated(View view, Bundle savedInstanceState) {
- if (DBG) logd("onViewCreated");
- super.onViewCreated(view, savedInstanceState);
-
- if (getListView() != null) {
- getListView().setDivider(null);
- }
- // Inflate progress bar
- final Activity activity = getActivity();
- if (activity != null) {
- ActionBar actionBar = activity.getActionBar();
- if (actionBar != null) {
- // android.R.id.home will be triggered in
- // {@link NetworkSelectSettingAcitivity#onOptionsItemSelected()}
- actionBar.setDisplayHomeAsUpEnabled(true);
- }
- mFrameLayout = activity.findViewById(R.id.choose_network_content);
- final LayoutInflater inflater = activity.getLayoutInflater();
- final View pinnedHeader =
- inflater.inflate(R.layout.choose_network_progress_header, mFrameLayout, false);
- mFrameLayout.addView(pinnedHeader);
- mFrameLayout.setVisibility(View.VISIBLE);
- mProgressHeader = pinnedHeader.findViewById(R.id.progress_bar_animation);
- setProgressBarVisible(false);
- }
- forceConfigConnectedNetworkOperatorsPreferenceCategory();
- }
-
- @Override
- public void onStart() {
- if (DBG) logd("onStart");
- super.onStart();
- new AsyncTask<Void, Void, List<String>>() {
- @Override
- protected List<String> doInBackground(Void... voids) {
- String[] forbiddenPlmns = mTelephonyManager.getForbiddenPlmns();
- return forbiddenPlmns != null ? Arrays.asList(forbiddenPlmns) : null;
- }
-
- @Override
- protected void onPostExecute(List<String> result) {
- mForbiddenPlmns = result;
- loadNetworksList();
- }
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }
-
- /**
- * Invoked on each preference click in this hierarchy, overrides
- * PreferenceActivity's implementation. Used to make sure we track the
- * preference click events.
- * Since the connected network operator is either faked (when no data connection) or already
- * connected, we do not allow user to click the connected network operator.
- */
- @Override
- public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
- Preference preference) {
- if (DBG) logd("User clicked the screen");
- stopNetworkQuery();
- setProgressBarVisible(false);
- if (preference instanceof NetworkOperatorPreference) {
- // Refresh the last selected item in case users reselect network.
- if (mSelectedNetworkOperatorPreference != null) {
- mSelectedNetworkOperatorPreference.setSummary("");
- }
-
- mSelectedNetworkOperatorPreference = (NetworkOperatorPreference) preference;
- CellInfo cellInfo = mSelectedNetworkOperatorPreference.getCellInfo();
- if (DBG) logd("User click a NetworkOperatorPreference: " + cellInfo.toString());
-
- // Send metrics event
- MetricsLogger.action(getContext(),
- MetricsEvent.ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK);
-
- // Connect to the network
- if (SubscriptionManager.isValidSubscriptionId(mSubId)) {
- if (DBG) {
- logd("Connect to the network: " + CellInfoUtil.getNetworkTitle(cellInfo));
- }
- // Set summary as "Connecting" to the selected network.
- mSelectedNetworkOperatorPreference.setSummary(R.string.network_connecting);
-
- // Set summary as "Disconnected" to the previously connected network
- if (mConnectedNetworkOperatorsPreference.getPreferenceCount() > 0) {
- NetworkOperatorPreference connectedNetworkOperator = (NetworkOperatorPreference)
- (mConnectedNetworkOperatorsPreference.getPreference(0));
- if (!CellInfoUtil.getNetworkTitle(cellInfo).equals(
- CellInfoUtil.getNetworkTitle(connectedNetworkOperator.getCellInfo()))) {
- connectedNetworkOperator.setSummary(R.string.network_disconnected);
- }
- }
-
- OperatorInfo operatorInfo = CellInfoUtil.getOperatorInfoFromCellInfo(cellInfo);
- if (DBG) logd("manually selected network operator: " + operatorInfo.toString());
-
- ThreadUtils.postOnBackgroundThread(() -> {
- Message msg = mHandler.obtainMessage(EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE);
- msg.obj = mTelephonyManager.setNetworkSelectionModeManual(
- operatorInfo, true /* persistSelection */);
- msg.sendToTarget();
- });
-
- setProgressBarVisible(true);
- return true;
- } else {
- loge("Error selecting network. Subscription Id is invalid.");
- mSelectedNetworkOperatorPreference = null;
- return false;
- }
-
- } else {
- preferenceScreen.setEnabled(false);
- return false;
- }
- }
-
- @Override
- public void onAttach(Activity activity) {
- super.onAttach(activity);
- if (!(getActivity() instanceof NetworkSelectSettingActivity)) {
- throw new IllegalStateException("Parent activity is not NetworkSelectSettingActivity");
- }
- }
-
- @Override
- public void onStop() {
- super.onStop();
- if (DBG) logd("onStop");
- getView().removeCallbacks(mUpdateNetworkOperatorsRunnable);
- stopNetworkQuery();
- }
-
- private final Handler mHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case EVENT_SET_NETWORK_SELECTION_MANUALLY_DONE:
- if (DBG) logd("network selection done: hide the progress header");
- setProgressBarVisible(false);
-
- boolean isSuccessed = (boolean) msg.obj;
- if (isSuccessed) {
- if (DBG) logd("manual network selection: succeeded! ");
- // Set summary as "Connected" to the selected network.
- mSelectedNetworkOperatorPreference.setSummary(R.string.network_connected);
- } else {
- if (DBG) logd("manual network selection: failed! ");
- // Set summary as "Couldn't connect" to the selected network.
- mSelectedNetworkOperatorPreference.setSummary(
- R.string.network_could_not_connect);
- }
- break;
-
- case EVENT_NETWORK_SCAN_RESULTS:
- List<CellInfo> results = aggregateCellInfoList((List<CellInfo>) msg.obj);
- mCellInfoList = new ArrayList<>(results);
- if (DBG) logd("after aggregate: " + mCellInfoList.toString());
- if (mCellInfoList != null && mCellInfoList.size() != 0) {
- updateNetworkOperators();
- } else {
- addMessagePreference(R.string.empty_networks_list);
- }
-
- break;
-
- case EVENT_NETWORK_SCAN_ERROR:
- int error = msg.arg1;
- if (DBG) logd("error while querying available networks " + error);
- stopNetworkQuery();
- addMessagePreference(R.string.network_query_error);
- break;
-
- case EVENT_NETWORK_SCAN_COMPLETED:
- stopNetworkQuery();
- if (DBG) logd("scan complete");
- if (mCellInfoList == null) {
- // In case the scan timeout before getting any results
- addMessagePreference(R.string.empty_networks_list);
- }
- break;
- }
- return;
- }
- };
-
- private void loadNetworksList() {
- if (DBG) logd("load networks list...");
- setProgressBarVisible(true);
- mNetworkScanHelper.startNetworkScan(
- NetworkScanHelper.NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS);
- }
-
- private final NetworkScanHelper.NetworkScanCallback mCallback = new NetworkScanCallback() {
- public void onResults(List<CellInfo> results) {
- if (DBG) logd("get scan results.");
- Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_RESULTS, results);
- msg.sendToTarget();
- }
-
- public void onComplete() {
- if (DBG) logd("network scan completed.");
- Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED);
- msg.sendToTarget();
- }
-
- public void onError(int error) {
- if (DBG) logd("get onError callback with error code: " + error);
- Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_ERROR, error, 0 /* arg2 */);
- msg.sendToTarget();
- }
- };
-
- private void updateNetworkOperators() {
- if (DBG) logd("updateNetworkOperators");
- if (getActivity() != null) {
- final View view = getView();
- final Handler handler = view.getHandler();
- if (handler != null && handler.hasCallbacks(mUpdateNetworkOperatorsRunnable)) {
- return;
- }
- view.post(mUpdateNetworkOperatorsRunnable);
- }
- }
-
- /**
- * Update the currently available network operators list, which only contains the unregistered
- * network operators. So if the device has no data and the network operator in the connected
- * network operator category shows "Disconnected", it will also exist in the available network
- * operator category for user to select. On the other hand, if the device has data and the
- * network operator in the connected network operator category shows "Connected", it will not
- * exist in the available network category.
- */
- private void updateNetworkOperatorsPreferenceCategory() {
- mNetworkOperatorsPreferences.removeAll();
-
- configConnectedNetworkOperatorsPreferenceCategory();
- for (int index = 0; index < mCellInfoList.size(); index++) {
- if (!mCellInfoList.get(index).isRegistered()) {
- NetworkOperatorPreference pref = new NetworkOperatorPreference(
- mCellInfoList.get(index), getContext(), mForbiddenPlmns, mShow4GForLTE);
- pref.setKey(CellInfoUtil.getNetworkTitle(mCellInfoList.get(index)));
- pref.setOrder(index);
- mNetworkOperatorsPreferences.addPreference(pref);
- }
- }
- }
-
- /**
- * Config the connected network operator preference when the page was created. When user get
- * into this page, the device might or might not have data connection.
- * - If the device has data:
- * 1. use {@code ServiceState#getNetworkRegistrationStates()} to get the currently
- * registered cellIdentity, wrap it into a CellInfo;
- * 2. set the signal strength level as strong;
- * 3. use {@link TelephonyManager#getNetworkOperatorName()} to get the title of the
- * previously connected network operator, since the CellIdentity got from step 1 only has
- * PLMN.
- * - If the device has no data, we will remove the connected network operators list from the
- * screen.
- */
- private void forceConfigConnectedNetworkOperatorsPreferenceCategory() {
- if (DBG) logd("Force config ConnectedNetworkOperatorsPreferenceCategory");
- if (mTelephonyManager.getDataState() == mTelephonyManager.DATA_CONNECTED) {
- // Try to get the network registration states
- ServiceState ss = mTelephonyManager.getServiceState();
- List<NetworkRegistrationState> networkList =
- ss.getNetworkRegistrationStates(AccessNetworkConstants.TransportType.WWAN);
- if (networkList == null || networkList.size() == 0) {
- loge("getNetworkRegistrationStates return null");
- // Remove the connected network operators category
- removeConnectedNetworkOperatorPreference();
- return;
- }
- CellIdentity cellIdentity = networkList.get(0).getCellIdentity();
- CellInfo cellInfo = CellInfoUtil.wrapCellInfoWithCellIdentity(cellIdentity);
- if (cellInfo != null) {
- if (DBG) logd("Currently registered cell: " + cellInfo.toString());
- NetworkOperatorPreference pref = new NetworkOperatorPreference(
- cellInfo, getContext(), mForbiddenPlmns, mShow4GForLTE);
- pref.setTitle(mTelephonyManager.getNetworkOperatorName());
- pref.setSummary(R.string.network_connected);
- // Update the signal strength icon, since the default signalStrength value would be
- // zero (it would be quite confusing why the connected network has no signal)
- pref.setIcon(NetworkOperatorPreference.NUMBER_OF_LEVELS - 1);
-
- mConnectedNetworkOperatorsPreference.addPreference(pref);
- } else {
- // Remove the connected network operators category
- removeConnectedNetworkOperatorPreference();
- }
- } else {
- if (DBG) logd("No currently registered cell");
- // Remove the connected network operators category
- removeConnectedNetworkOperatorPreference();
- }
- }
-
- /**
- * Configure the ConnectedNetworkOperatorsPreferenceCategory. The category only need to be
- * configured if the category is currently empty or the operator network title of the previous
- * connected network is different from the new one.
- */
- private void configConnectedNetworkOperatorsPreferenceCategory() {
- if (DBG) logd("config ConnectedNetworkOperatorsPreferenceCategory");
- // Remove the category if the CellInfo list is empty or does not have registered cell.
- if (mCellInfoList.size() == 0) {
- if (DBG) logd("empty cellinfo list");
- removeConnectedNetworkOperatorPreference();
- }
- CellInfo connectedNetworkOperator = null;
- for (CellInfo cellInfo: mCellInfoList) {
- if (cellInfo.isRegistered()) {
- connectedNetworkOperator = cellInfo;
- break;
- }
- }
- if (connectedNetworkOperator == null) {
- if (DBG) logd("no registered network");
- removeConnectedNetworkOperatorPreference();
- return;
- }
-
- // config the category if it is empty.
- if (mConnectedNetworkOperatorsPreference.getPreferenceCount() == 0) {
- if (DBG) logd("ConnectedNetworkSelectList is empty, add one");
- addConnectedNetworkOperatorPreference(connectedNetworkOperator);
- return;
- }
- NetworkOperatorPreference previousConnectedNetworkOperator = (NetworkOperatorPreference)
- (mConnectedNetworkOperatorsPreference.getPreference(0));
-
- // config the category if the network title of the previous connected network is different
- // from the new one.
- String cTitle = CellInfoUtil.getNetworkTitle(connectedNetworkOperator);
- String pTitle = CellInfoUtil.getNetworkTitle(
- previousConnectedNetworkOperator.getCellInfo());
- if (!cTitle.equals(pTitle)) {
- if (DBG) logd("reconfig the category: connected network changed");
- addConnectedNetworkOperatorPreference(connectedNetworkOperator);
- return;
- }
- if (DBG) logd("same network operator is connected, only refresh the connected network");
- // Otherwise same network operator is connected, only refresh the connected network
- // operator preference (first and the only one in this category).
- ((NetworkOperatorPreference) mConnectedNetworkOperatorsPreference.getPreference(0))
- .refresh();
- return;
- }
-
- /**
- * Creates a Preference for the given {@link CellInfo} and adds it to the
- * {@link #mConnectedNetworkOperatorsPreference}.
- */
- private void addConnectedNetworkOperatorPreference(CellInfo cellInfo) {
- if (DBG) logd("addConnectedNetworkOperatorPreference");
- // Remove the current ConnectedNetworkOperatorsPreference
- removeConnectedNetworkOperatorPreference();
- final NetworkOperatorPreference pref = new NetworkOperatorPreference(
- cellInfo, getContext(), mForbiddenPlmns, mShow4GForLTE);
- pref.setSummary(R.string.network_connected);
- mConnectedNetworkOperatorsPreference.addPreference(pref);
- PreferenceScreen preferenceScreen = getPreferenceScreen();
- preferenceScreen.addPreference(mConnectedNetworkOperatorsPreference);
- }
-
- /** Removes all preferences and hide the {@link #mConnectedNetworkOperatorsPreference}. */
- private void removeConnectedNetworkOperatorPreference() {
- mConnectedNetworkOperatorsPreference.removeAll();
- PreferenceScreen preferenceScreen = getPreferenceScreen();
- preferenceScreen.removePreference(mConnectedNetworkOperatorsPreference);
- }
-
- protected void setProgressBarVisible(boolean visible) {
- if (mProgressHeader != null) {
- mProgressHeader.setVisibility(visible ? View.VISIBLE : View.GONE);
- }
- }
-
- private void addMessagePreference(int messageId) {
- if (DBG) logd("remove callback");
- getView().removeCallbacks(mUpdateNetworkOperatorsRunnable);
- setProgressBarVisible(false);
- if (DBG) logd("addMessagePreference");
- mStatusMessagePreference.setTitle(messageId);
- removeConnectedNetworkOperatorPreference();
- mNetworkOperatorsPreferences.removeAll();
- mNetworkOperatorsPreferences.addPreference(mStatusMessagePreference);
- }
-
- /**
- * The Scan results may contains several cell infos with different radio technologies and signal
- * strength for one network operator. Aggregate the CellInfoList by retaining only the cell info
- * with the strongest signal strength.
- */
- private List<CellInfo> aggregateCellInfoList(List<CellInfo> cellInfoList) {
- if (DBG) logd("before aggregate: " + cellInfoList.toString());
- Map<String, CellInfo> map = new HashMap<>();
- for (CellInfo cellInfo: cellInfoList) {
- String plmn = CellInfoUtil.getOperatorInfoFromCellInfo(cellInfo).getOperatorNumeric();
- if (cellInfo.isRegistered() || !map.containsKey(plmn)) {
- map.put(plmn, cellInfo);
- } else {
- if (map.get(plmn).isRegistered()
- || map.get(plmn).getCellSignalStrength().getLevel()
- > cellInfo.getCellSignalStrength().getLevel()) {
- // Skip if the stored cellInfo is registered or has higher signal strength level
- continue;
- }
- // Otherwise replace it with the new CellInfo
- map.put(plmn, cellInfo);
- }
- }
- return new ArrayList<>(map.values());
- }
-
- private void stopNetworkQuery() {
- if (mNetworkScanHelper != null) {
- mNetworkScanHelper.stopNetworkQuery();
- }
- }
-
- @Override
- public void onDestroy() {
- mNetworkScanExecutor.shutdown();
- super.onDestroy();
- }
-
- private void logd(String msg) {
- Log.d(TAG, msg);
- }
-
- private void loge(String msg) {
- Log.e(TAG, msg);
- }
-}
diff --git a/src/com/android/phone/NetworkSelectSettingActivity.java b/src/com/android/phone/NetworkSelectSettingActivity.java
deleted file mode 100644
index 5b29b281..0000000
--- a/src/com/android/phone/NetworkSelectSettingActivity.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.app.Activity;
-import android.app.Fragment;
-import android.app.FragmentManager;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.MenuItem;
-
-
-/**
- * Activity associated with NetworkSelectSetting fragment
- */
-public class NetworkSelectSettingActivity extends Activity {
- private static final String TAG = "NetworkSelectSettingActivity";
- public static final String KEY_SUBSCRIPTION_ID = "subscription_id";
-
- /**
- * Returns the Android Intent that led to this Activity being created.
- */
- public static Intent getIntent(Context context, int subId) {
- Intent intent = new Intent(context, NetworkSelectSettingActivity.class);
- intent.putExtra(KEY_SUBSCRIPTION_ID, subId);
- return intent;
- }
-
- @Override
- public void onCreate(Bundle savedState) {
- Log.d(TAG, "onCreate()");
- super.onCreate(savedState);
- int subId = getIntent().getExtras().getInt(KEY_SUBSCRIPTION_ID);
- setContentView(R.layout.choose_network);
-
- FragmentManager fragmentManager = getFragmentManager();
- Fragment fragment = fragmentManager.findFragmentById(R.id.choose_network_content);
- if (fragment == null) {
- fragmentManager.beginTransaction()
- .add(R.id.choose_network_content,
- NetworkSelectSetting.newInstance(subId), TAG)
- .commit();
- }
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- final int itemId = item.getItemId();
- if (itemId == android.R.id.home) {
- onBackPressed();
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
-}
diff --git a/src/com/android/phone/NotificationMgr.java b/src/com/android/phone/NotificationMgr.java
index de3fffc..43c5b11 100644
--- a/src/com/android/phone/NotificationMgr.java
+++ b/src/com/android/phone/NotificationMgr.java
@@ -26,6 +26,7 @@
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.UserInfo;
import android.content.res.Resources;
@@ -90,7 +91,7 @@
static final int NETWORK_SELECTION_NOTIFICATION = 2;
static final int VOICEMAIL_NOTIFICATION = 3;
static final int CALL_FORWARD_NOTIFICATION = 4;
- static final int DATA_DISCONNECTED_ROAMING_NOTIFICATION = 5;
+ static final int DATA_ROAMING_NOTIFICATION = 5;
static final int SELECTED_OPERATOR_FAIL_NOTIFICATION = 6;
// Event for network selection notification.
@@ -107,7 +108,6 @@
private PhoneGlobals mApp;
private Context mContext;
- private NotificationManager mNotificationManager;
private StatusBarManager mStatusBarManager;
private UserManager mUserManager;
private Toast mToast;
@@ -152,8 +152,6 @@
private NotificationMgr(PhoneGlobals app) {
mApp = app;
mContext = app;
- mNotificationManager =
- (NotificationManager) app.getSystemService(Context.NOTIFICATION_SERVICE);
mStatusBarManager =
(StatusBarManager) app.getSystemService(Context.STATUS_BAR_SERVICE);
mUserManager = (UserManager) app.getSystemService(Context.USER_SERVICE);
@@ -365,7 +363,7 @@
.setColor(res.getColor(R.color.dialer_theme_color))
.setOngoing(carrierConfig.getBoolean(
CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL))
- .setChannel(NotificationChannelController.CHANNEL_ID_VOICE_MAIL)
+ .setChannelId(NotificationChannelController.CHANNEL_ID_VOICE_MAIL)
.setOnlyAlertOnce(isRefresh);
final Notification notification = builder.build();
@@ -378,7 +376,7 @@
&& !user.isManagedProfile()) {
if (!maybeSendVoicemailNotificationUsingDefaultDialer(phone, vmCount, vmNumber,
pendingIntent, isSettingsIntent, userHandle, isRefresh)) {
- mNotificationManager.notifyAsUser(
+ notifyAsUser(
Integer.toString(subId) /* tag */,
VOICEMAIL_NOTIFICATION,
notification,
@@ -396,7 +394,7 @@
&& !user.isManagedProfile()) {
if (!maybeSendVoicemailNotificationUsingDefaultDialer(phone, 0, null, null,
false, userHandle, isRefresh)) {
- mNotificationManager.cancelAsUser(
+ cancelAsUser(
Integer.toString(subId) /* tag */,
VOICEMAIL_NOTIFICATION,
userHandle);
@@ -530,7 +528,7 @@
.setContentText(mContext.getString(R.string.sum_cfu_enabled_indicator))
.setShowWhen(false)
.setOngoing(true)
- .setChannel(NotificationChannelController.CHANNEL_ID_CALL_FORWARD)
+ .setChannelId(NotificationChannelController.CHANNEL_ID_CALL_FORWARD)
.setOnlyAlertOnce(isRefresh);
Intent intent = new Intent(Intent.ACTION_MAIN);
@@ -540,7 +538,7 @@
intent, mSubscriptionManager.getActiveSubscriptionInfo(subId));
builder.setContentIntent(PendingIntent.getActivity(mContext, subId /* requestCode */,
intent, 0));
- mNotificationManager.notifyAsUser(
+ notifyAsUser(
Integer.toString(subId) /* tag */,
CALL_FORWARD_NOTIFICATION,
builder.build(),
@@ -552,7 +550,7 @@
continue;
}
UserHandle userHandle = user.getUserHandle();
- mNotificationManager.cancelAsUser(
+ cancelAsUser(
Integer.toString(subId) /* tag */,
CALL_FORWARD_NOTIFICATION,
userHandle);
@@ -561,40 +559,82 @@
}
/**
- * Shows the "data disconnected due to roaming" notification, which
+ * Shows either:
+ * 1) the "Data roaming is on" notification, which
+ * appears when you're roaming and you have the "data roaming" feature turned on for the
+ * given {@code subId}.
+ * or
+ * 2) the "data disconnected due to roaming" notification, which
* appears when you lose data connectivity because you're roaming and
* you have the "data roaming" feature turned off for the given {@code subId}.
+ * @param subId which subscription it's notifying about.
+ * @param roamingOn whether currently roaming is on or off. If true, we show notification
+ * 1) above; else we show notification 2).
*/
- /* package */ void showDataDisconnectedRoaming(int subId) {
- if (DBG) log("showDataDisconnectedRoaming()...");
+ /* package */ void showDataRoamingNotification(int subId, boolean roamingOn) {
+ if (DBG) {
+ log("showDataRoamingNotification() roaming " + (roamingOn ? "on" : "off")
+ + " on subId " + subId);
+ }
// "Mobile network settings" screen / dialog
- Intent intent = new Intent(mContext, com.android.phone.MobileNetworkSettings.class);
+ Intent intent = new Intent(Settings.ACTION_DATA_ROAMING_SETTINGS);
intent.putExtra(Settings.EXTRA_SUB_ID, subId);
- intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent contentIntent = PendingIntent.getActivity(mContext, subId, intent, 0);
- final CharSequence contentText = mContext.getText(R.string.roaming_reenable_message);
+ CharSequence contentTitle = mContext.getText(roamingOn
+ ? R.string.roaming_on_notification_title
+ : R.string.roaming_notification_title);
+ CharSequence contentText = mContext.getText(roamingOn
+ ? R.string.roaming_enabled_message
+ : R.string.roaming_reenable_message);
final Notification.Builder builder = new Notification.Builder(mContext)
.setSmallIcon(android.R.drawable.stat_sys_warning)
- .setContentTitle(mContext.getText(R.string.roaming_notification_title))
+ .setContentTitle(contentTitle)
.setColor(mContext.getResources().getColor(R.color.dialer_theme_color))
.setContentText(contentText)
- .setChannel(NotificationChannelController.CHANNEL_ID_MOBILE_DATA_STATUS)
+ .setChannelId(NotificationChannelController.CHANNEL_ID_MOBILE_DATA_STATUS)
.setContentIntent(contentIntent);
final Notification notif =
new Notification.BigTextStyle(builder).bigText(contentText).build();
- mNotificationManager.notifyAsUser(
- null /* tag */, DATA_DISCONNECTED_ROAMING_NOTIFICATION, notif, UserHandle.ALL);
+ notifyAsUser(null /* tag */, DATA_ROAMING_NOTIFICATION, notif, UserHandle.ALL);
+ }
+
+ private void notifyAsUser(String tag, int id, Notification notification, UserHandle user) {
+ try {
+ Context contextForUser =
+ mContext.createPackageContextAsUser(mContext.getPackageName(), 0, user);
+ NotificationManager notificationManager =
+ (NotificationManager) contextForUser.getSystemService(
+ Context.NOTIFICATION_SERVICE);
+ notificationManager.notify(tag, id, notification);
+ } catch (PackageManager.NameNotFoundException e) {
+ Log.e(LOG_TAG, "unable to notify for user " + user);
+ e.printStackTrace();
+ }
+ }
+
+ private void cancelAsUser(String tag, int id, UserHandle user) {
+ try {
+ Context contextForUser =
+ mContext.createPackageContextAsUser(mContext.getPackageName(), 0, user);
+ NotificationManager notificationManager =
+ (NotificationManager) contextForUser.getSystemService(
+ Context.NOTIFICATION_SERVICE);
+ notificationManager.cancel(tag, id);
+ } catch (PackageManager.NameNotFoundException e) {
+ Log.e(LOG_TAG, "unable to cancel for user " + user);
+ e.printStackTrace();
+ }
}
/**
- * Turns off the "data disconnected due to roaming" notification.
+ * Turns off the "data disconnected due to roaming" or "Data roaming is on" notification.
*/
- /* package */ void hideDataDisconnectedRoaming() {
- if (DBG) log("hideDataDisconnectedRoaming()...");
- mNotificationManager.cancel(DATA_DISCONNECTED_ROAMING_NOTIFICATION);
+ /* package */ void hideDataRoamingNotification() {
+ if (DBG) log("hideDataRoamingNotification()...");
+ cancelAsUser(null, DATA_ROAMING_NOTIFICATION, UserHandle.ALL);
}
/**
@@ -615,7 +655,7 @@
mContext.getString(R.string.notification_network_selection_text, operator))
.setShowWhen(false)
.setOngoing(true)
- .setChannel(NotificationChannelController.CHANNEL_ID_ALERT);
+ .setChannelId(NotificationChannelController.CHANNEL_ID_ALERT);
// create the target network operators settings intent
Intent intent = new Intent(Intent.ACTION_MAIN);
@@ -625,9 +665,9 @@
intent.setComponent(new ComponentName(
mContext.getString(R.string.mobile_network_settings_package),
mContext.getString(R.string.mobile_network_settings_class)));
- intent.putExtra(GsmUmtsOptions.EXTRA_SUB_ID, subId);
+ intent.putExtra(Settings.EXTRA_SUB_ID, subId);
builder.setContentIntent(PendingIntent.getActivity(mContext, 0, intent, 0));
- mNotificationManager.notifyAsUser(
+ notifyAsUser(
Integer.toString(subId) /* tag */,
SELECTED_OPERATOR_FAIL_NOTIFICATION,
builder.build(),
@@ -640,7 +680,7 @@
*/
private void cancelNetworkSelection(int subId) {
if (DBG) log("cancelNetworkSelection()...");
- mNotificationManager.cancelAsUser(
+ cancelAsUser(
Integer.toString(subId) /* tag */, SELECTED_OPERATOR_FAIL_NOTIFICATION,
UserHandle.ALL);
}
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index 94cd0f6..a3a7945 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -16,6 +16,7 @@
package com.android.phone;
+import android.annotation.IntDef;
import android.app.Activity;
import android.app.KeyguardManager;
import android.app.ProgressDialog;
@@ -73,6 +74,8 @@
import java.io.FileDescriptor;
import java.io.PrintWriter;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
/**
* Global state for the telephony subsystem when running in the primary
@@ -107,11 +110,12 @@
private static final int EVENT_SIM_NETWORK_LOCKED = 3;
private static final int EVENT_SIM_STATE_CHANGED = 8;
private static final int EVENT_DATA_ROAMING_DISCONNECTED = 10;
- private static final int EVENT_DATA_ROAMING_OK = 11;
- private static final int EVENT_UNSOL_CDMA_INFO_RECORD = 12;
- private static final int EVENT_RESTART_SIP = 13;
- private static final int EVENT_DATA_ROAMING_SETTINGS_CHANGED = 14;
- private static final int EVENT_MOBILE_DATA_SETTINGS_CHANGED = 15;
+ private static final int EVENT_DATA_ROAMING_CONNECTED = 11;
+ private static final int EVENT_DATA_ROAMING_OK = 12;
+ private static final int EVENT_UNSOL_CDMA_INFO_RECORD = 13;
+ private static final int EVENT_RESTART_SIP = 14;
+ private static final int EVENT_DATA_ROAMING_SETTINGS_CHANGED = 15;
+ private static final int EVENT_MOBILE_DATA_SETTINGS_CHANGED = 16;
// The MMI codes are also used by the InCallScreen.
public static final int MMI_INITIATE = 51;
@@ -158,7 +162,21 @@
private Activity mPUKEntryActivity;
private ProgressDialog mPUKEntryProgressDialog;
- private boolean mNoDataDueToRoaming = false;
+ /** @hide */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef(prefix = {"ROAMING_NOTIFICATION_"},
+ value = {
+ ROAMING_NOTIFICATION_NO_NOTIFICATION,
+ ROAMING_NOTIFICATION_CONNECTED,
+ ROAMING_NOTIFICATION_DISCONNECTED})
+ public @interface RoamingNotification {}
+
+ private static final int ROAMING_NOTIFICATION_NO_NOTIFICATION = 0;
+ private static final int ROAMING_NOTIFICATION_CONNECTED = 1;
+ private static final int ROAMING_NOTIFICATION_DISCONNECTED = 2;
+
+ @RoamingNotification
+ private int mPrevRoamingNotification = ROAMING_NOTIFICATION_NO_NOTIFICATION;
private WakeState mWakeState = WakeState.SLEEP;
@@ -207,11 +225,15 @@
break;
case EVENT_DATA_ROAMING_DISCONNECTED:
- notificationMgr.showDataDisconnectedRoaming(msg.arg1);
+ notificationMgr.showDataRoamingNotification(msg.arg1, false);
+ break;
+
+ case EVENT_DATA_ROAMING_CONNECTED:
+ notificationMgr.showDataRoamingNotification(msg.arg1, true);
break;
case EVENT_DATA_ROAMING_OK:
- notificationMgr.hideDataDisconnectedRoaming();
+ notificationMgr.hideDataRoamingNotification();
break;
case MMI_COMPLETE:
@@ -226,7 +248,8 @@
// 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)) {
+ if (msg.obj.equals(IccCardConstants.INTENT_VALUE_ICC_READY)
+ || msg.obj.equals(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.
@@ -369,8 +392,6 @@
mCarrierVvmPackageInstalledReceiver.register(this);
//set the default values for the preferences in the phone.
- PreferenceManager.setDefaultValues(this, R.xml.network_setting_fragment, false);
-
PreferenceManager.setDefaultValues(this, R.xml.call_feature_setting, false);
}
@@ -387,9 +408,9 @@
android.provider.Settings.System.HEARING_AID,
0);
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
- audioManager.setParameter(SettingsConstants.HAC_KEY,
- hac == SettingsConstants.HAC_ENABLED
- ? SettingsConstants.HAC_VAL_ON : SettingsConstants.HAC_VAL_OFF);
+ audioManager.setParameters(
+ SettingsConstants.HAC_KEY + "=" + (hac == SettingsConstants.HAC_ENABLED
+ ? SettingsConstants.HAC_VAL_ON : SettingsConstants.HAC_VAL_OFF));
}
}
@@ -526,6 +547,9 @@
maybeTurnCellOn(context, isAirplaneNewlyOn);
break;
}
+ for (Phone phone : PhoneFactory.getPhones()) {
+ phone.getServiceStateTracker().onAirplaneModeChanged(isAirplaneNewlyOn);
+ }
}
/*
@@ -717,6 +741,16 @@
}
/**
+ * @return whether or not we should show a notification when connecting to data roaming if the
+ * user has data roaming enabled
+ */
+ private boolean shouldShowDataConnectedRoaming(int subId) {
+ PersistableBundle config = getCarrierConfigForSubId(subId);
+ return config.getBoolean(CarrierConfigManager
+ .KEY_SHOW_DATA_CONNECTED_ROAMING_NOTIFICATION_BOOL);
+ }
+
+ /**
* When roaming, if mobile data cannot be established due to data roaming not enabled, we need
* to notify the user so they can enable it through settings. Vise versa if the condition
* changes, we need to dismiss the notification.
@@ -733,27 +767,48 @@
boolean dataAllowed = phone.isDataAllowed(ApnSetting.TYPE_DEFAULT, reasons);
mDataRoamingNotifLog.log("dataAllowed=" + dataAllowed + ", reasons=" + reasons);
if (VDBG) Log.v(LOG_TAG, "dataAllowed=" + dataAllowed + ", reasons=" + reasons);
- if (!mNoDataDueToRoaming
- && !dataAllowed
- && reasons.containsOnly(DataDisallowedReasonType.ROAMING_DISABLED)) {
+ if (!dataAllowed && reasons.containsOnly(DataDisallowedReasonType.ROAMING_DISABLED)) {
+ // No need to show it again if we never cancelled it explicitly.
+ if (mPrevRoamingNotification == ROAMING_NOTIFICATION_DISCONNECTED) return;
// If the only reason of no data is data roaming disabled, then we notify the user
// so the user can turn on data roaming.
- mNoDataDueToRoaming = true;
+ mPrevRoamingNotification = ROAMING_NOTIFICATION_DISCONNECTED;
Log.d(LOG_TAG, "Show roaming disconnected notification");
- mDataRoamingNotifLog.log("Show");
+ mDataRoamingNotifLog.log("Show roaming off.");
Message msg = mHandler.obtainMessage(EVENT_DATA_ROAMING_DISCONNECTED);
msg.arg1 = mDefaultDataSubId;
msg.sendToTarget();
- } else if (mNoDataDueToRoaming && (dataAllowed
- || !reasons.containsOnly(DataDisallowedReasonType.ROAMING_DISABLED))) {
- // Otherwise dismiss the notification we showed earlier.
- mNoDataDueToRoaming = false;
- Log.d(LOG_TAG, "Dismiss roaming disconnected notification");
+ } else if (dataAllowed && dataIsNowRoaming(mDefaultDataSubId)
+ && shouldShowDataConnectedRoaming(mDefaultDataSubId)) {
+ // No need to show it again if we never cancelled it explicitly, or carrier config
+ // indicates this is not needed.
+ if (mPrevRoamingNotification == ROAMING_NOTIFICATION_CONNECTED) return;
+ mPrevRoamingNotification = ROAMING_NOTIFICATION_CONNECTED;
+ Log.d(LOG_TAG, "Show roaming connected notification");
+ mDataRoamingNotifLog.log("Show roaming on.");
+ Message msg = mHandler.obtainMessage(EVENT_DATA_ROAMING_CONNECTED);
+ msg.arg1 = mDefaultDataSubId;
+ msg.sendToTarget();
+ } else if (mPrevRoamingNotification != ROAMING_NOTIFICATION_NO_NOTIFICATION) {
+ // Otherwise we either 1) we are not roaming or 2) roaming is off but ROAMING_DISABLED
+ // is not the only data disable reason. In this case we dismiss the notification we
+ // showed earlier.
+ mPrevRoamingNotification = ROAMING_NOTIFICATION_NO_NOTIFICATION;
+ Log.d(LOG_TAG, "Dismiss roaming notification");
mDataRoamingNotifLog.log("Hide. data allowed=" + dataAllowed + ", reasons=" + reasons);
mHandler.sendEmptyMessage(EVENT_DATA_ROAMING_OK);
}
}
+ /**
+ *
+ * @param subId to check roaming on
+ * @return whether we have transitioned to dataRoaming
+ */
+ private boolean dataIsNowRoaming(int subId) {
+ return getPhone(subId).getServiceState().getDataRoaming();
+ }
+
public Phone getPhoneInEcm() {
return phoneInEcm;
}
@@ -792,9 +847,10 @@
IndentingPrintWriter pw = new IndentingPrintWriter(printWriter, " ");
pw.println("------- PhoneGlobals -------");
pw.increaseIndent();
- pw.println("mNoDataDueToRoaming=" + mNoDataDueToRoaming);
+ pw.println("mPrevRoamingNotification=" + mPrevRoamingNotification);
pw.println("mDefaultDataSubId=" + mDefaultDataSubId);
pw.println("mDataRoamingNotifLog:");
+ pw.println("isSmsCapable=" + TelephonyManager.from(this).isSmsCapable());
pw.increaseIndent();
mDataRoamingNotifLog.dump(fd, pw, args);
pw.decreaseIndent();
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 46f99e2..e5e9fe7 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -18,12 +18,15 @@
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
+import static com.android.internal.telephony.PhoneConstants.PHONE_TYPE_IMS;
import static com.android.internal.telephony.PhoneConstants.SUBSCRIPTION_KEY;
import android.Manifest.permission;
+import android.annotation.Nullable;
import android.app.AppOpsManager;
import android.app.PendingIntent;
import android.content.ComponentName;
+import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
@@ -46,6 +49,7 @@
import android.os.RemoteException;
import android.os.ResultReceiver;
import android.os.ServiceManager;
+import android.os.ServiceSpecificException;
import android.os.ShellCallback;
import android.os.SystemProperties;
import android.os.UserHandle;
@@ -53,6 +57,7 @@
import android.os.WorkSource;
import android.preference.PreferenceManager;
import android.provider.Settings;
+import android.provider.Telephony;
import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
@@ -72,22 +77,25 @@
import android.telephony.PhoneCapability;
import android.telephony.PhoneNumberRange;
import android.telephony.RadioAccessFamily;
+import android.telephony.RadioAccessSpecifier;
import android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
-import android.telephony.SmsManager;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyHistogram;
import android.telephony.TelephonyManager;
+import android.telephony.TelephonyScanManager;
import android.telephony.UiccCardInfo;
import android.telephony.UiccSlotInfo;
import android.telephony.UssdResponse;
import android.telephony.VisualVoicemailSmsFilterSettings;
import android.telephony.cdma.CdmaCellLocation;
import android.telephony.data.ApnSetting;
+import android.telephony.data.ApnSetting.ApnType;
import android.telephony.emergency.EmergencyNumber;
import android.telephony.gsm.GsmCellLocation;
+import android.telephony.ims.ImsException;
import android.telephony.ims.ProvisioningManager;
import android.telephony.ims.aidl.IImsCapabilityCallback;
import android.telephony.ims.aidl.IImsConfig;
@@ -105,7 +113,6 @@
import android.util.Pair;
import android.util.Slog;
-import com.android.ims.ImsException;
import com.android.ims.ImsManager;
import com.android.ims.internal.IImsServiceFeatureCallback;
import com.android.internal.telephony.CallManager;
@@ -116,6 +123,7 @@
import com.android.internal.telephony.CommandException;
import com.android.internal.telephony.DefaultPhoneNotifier;
import com.android.internal.telephony.HalVersion;
+import com.android.internal.telephony.IIntegerConsumer;
import com.android.internal.telephony.INumberVerificationCallback;
import com.android.internal.telephony.ITelephony;
import com.android.internal.telephony.IccCard;
@@ -134,11 +142,18 @@
import com.android.internal.telephony.ServiceStateTracker;
import com.android.internal.telephony.SmsApplication;
import com.android.internal.telephony.SmsApplication.SmsApplicationData;
+import com.android.internal.telephony.SmsController;
+import com.android.internal.telephony.SmsPermissions;
import com.android.internal.telephony.SubscriptionController;
import com.android.internal.telephony.TelephonyPermissions;
+import com.android.internal.telephony.dataconnection.ApnSettingUtils;
import com.android.internal.telephony.emergency.EmergencyNumberTracker;
import com.android.internal.telephony.euicc.EuiccConnector;
+import com.android.internal.telephony.ims.ImsResolver;
+import com.android.internal.telephony.imsphone.ImsPhone;
+import com.android.internal.telephony.imsphone.ImsPhoneCallTracker;
import com.android.internal.telephony.metrics.TelephonyMetrics;
+import com.android.internal.telephony.uicc.IccCardApplicationStatus.AppType;
import com.android.internal.telephony.uicc.IccIoResult;
import com.android.internal.telephony.uicc.IccUtils;
import com.android.internal.telephony.uicc.SIMRecords;
@@ -149,6 +164,7 @@
import com.android.internal.telephony.uicc.UiccSlot;
import com.android.internal.telephony.util.VoicemailNotificationSettingsUtil;
import com.android.internal.util.HexDump;
+import com.android.phone.settings.PickSmsSubscriptionActivity;
import com.android.phone.vvm.PhoneAccountHandleConverter;
import com.android.phone.vvm.RemoteVvmTaskManager;
import com.android.phone.vvm.VisualVoicemailSettingsUtil;
@@ -156,7 +172,6 @@
import java.io.FileDescriptor;
import java.io.PrintWriter;
-import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -165,6 +180,7 @@
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.NoSuchElementException;
import java.util.Set;
/**
@@ -241,6 +257,8 @@
private static final int EVENT_REQUEST_CELL_INFO_UPDATE_DONE = 67;
private static final int CMD_REQUEST_ENABLE_MODEM = 68;
private static final int EVENT_ENABLE_MODEM_DONE = 69;
+ private static final int CMD_GET_MODEM_STATUS = 70;
+ private static final int EVENT_GET_MODEM_STATUS_DONE = 71;
// Parameters of select command.
private static final int SELECT_COMMAND = 0xA4;
@@ -829,7 +847,9 @@
case CMD_GET_MODEM_ACTIVITY_INFO:
request = (MainThreadRequest) msg.obj;
onCompleted = obtainMessage(EVENT_GET_MODEM_ACTIVITY_INFO_DONE, request);
- defaultPhone.getModemActivityInfo(onCompleted, request.workSource);
+ if (defaultPhone != null) {
+ defaultPhone.getModemActivityInfo(onCompleted, request.workSource);
+ }
break;
case EVENT_GET_MODEM_ACTIVITY_INFO_DONE:
@@ -1108,10 +1128,42 @@
ar = (AsyncResult) msg.obj;
request = (MainThreadRequest) ar.userObj;
request.result = (ar.exception == null);
+ int phoneId = request.phone.getPhoneId();
//update the cache as modem status has changed
- mPhoneConfigurationManager.addToPhoneStatusCache(
- request.phone.getPhoneId(), msg.arg1 == 1);
- updateModemStateMetrics();
+ if ((boolean) request.result) {
+ mPhoneConfigurationManager.addToPhoneStatusCache(phoneId, msg.arg1 == 1);
+ updateModemStateMetrics();
+ } else {
+ Log.e(LOG_TAG, msg.what + " failure. Not updating modem status."
+ + ar.exception);
+ }
+ notifyRequester(request);
+ break;
+ case CMD_GET_MODEM_STATUS:
+ request = (MainThreadRequest) msg.obj;
+ onCompleted = obtainMessage(EVENT_GET_MODEM_STATUS_DONE, request);
+ PhoneConfigurationManager.getInstance()
+ .getPhoneStatusFromModem(request.phone, onCompleted);
+ break;
+ case EVENT_GET_MODEM_STATUS_DONE:
+ ar = (AsyncResult) msg.obj;
+ request = (MainThreadRequest) ar.userObj;
+ int id = request.phone.getPhoneId();
+ if (ar.exception == null && ar.result != null) {
+ request.result = ar.result;
+ //update the cache as modem status has changed
+ mPhoneConfigurationManager.addToPhoneStatusCache(id,
+ (boolean) request.result);
+ } else {
+ // Return true if modem status cannot be retrieved. For most cases,
+ // modem status is on. And for older version modems, GET_MODEM_STATUS
+ // and disable modem are not supported. Modem is always on.
+ // TODO: this should be fixed in R to support a third
+ // status UNKNOWN b/131631629
+ request.result = true;
+ Log.e(LOG_TAG, msg.what + " failure. Not updating modem status."
+ + ar.exception);
+ }
notifyRequester(request);
break;
default:
@@ -1299,8 +1351,16 @@
}
private Phone getPhoneFromRequest(MainThreadRequest request) {
- return (request.subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID)
- ? getDefaultPhone() : getPhone(request.subId);
+ if (request.phone != null) {
+ return request.phone;
+ } else {
+ return getPhoneFromSubId(request.subId);
+ }
+ }
+
+ private Phone getPhoneFromSubId(int subId) {
+ return (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID)
+ ? getDefaultPhone() : getPhone(subId);
}
private UiccCard getUiccCardFromRequest(MainThreadRequest request) {
@@ -1355,7 +1415,7 @@
// from the context of the phone app.
enforceCallPermission();
- if (mAppOps.noteOp(AppOpsManager.OP_CALL_PHONE, Binder.getCallingUid(), callingPackage)
+ if (mAppOps.noteOp(AppOpsManager.OPSTR_CALL_PHONE, Binder.getCallingUid(), callingPackage)
!= AppOpsManager.MODE_ALLOWED) {
return;
}
@@ -1817,9 +1877,14 @@
@Override
public int getDataState() {
+ return getDataStateForSubId(mSubscriptionController.getDefaultDataSubId());
+ }
+
+ @Override
+ public int getDataStateForSubId(int subId) {
final long identity = Binder.clearCallingIdentity();
try {
- Phone phone = getPhone(mSubscriptionController.getDefaultDataSubId());
+ final Phone phone = getPhone(subId);
if (phone != null) {
return PhoneConstantConversions.convertDataState(phone.getDataConnectionState());
} else {
@@ -1833,9 +1898,14 @@
@Override
public int getDataActivity() {
+ return getDataActivityForSubId(mSubscriptionController.getDefaultDataSubId());
+ }
+
+ @Override
+ public int getDataActivityForSubId(int subId) {
final long identity = Binder.clearCallingIdentity();
try {
- Phone phone = getPhone(mSubscriptionController.getDefaultDataSubId());
+ final Phone phone = getPhone(subId);
if (phone != null) {
return DefaultPhoneNotifier.convertDataActivityState(phone.getDataActivityState());
} else {
@@ -1901,10 +1971,15 @@
Phone phone = PhoneFactory.getPhone(phoneId);
if (phone != null) {
ServiceStateTracker sst = phone.getServiceStateTracker();
+ EmergencyNumberTracker emergencyNumberTracker = phone.getEmergencyNumberTracker();
if (sst != null) {
LocaleTracker lt = sst.getLocaleTracker();
if (lt != null) {
- return lt.getCurrentCountry();
+ if (!TextUtils.isEmpty(lt.getCurrentCountry())) {
+ return lt.getCurrentCountry();
+ } else if (emergencyNumberTracker != null) {
+ return emergencyNumberTracker.getEmergencyCountryIso();
+ }
}
}
}
@@ -1959,14 +2034,18 @@
/**
* Returns the target SDK version number for a given package name.
*
+ * This call MUST be invoked before clearing the calling UID.
+ *
* @return target SDK if the package is found or INT_MAX.
*/
private int getTargetSdk(String packageName) {
try {
- final ApplicationInfo ai = mApp.getPackageManager().getApplicationInfo(
- packageName, 0);
+ final ApplicationInfo ai = mApp.getPackageManager().getApplicationInfoAsUser(
+ packageName, 0, UserHandle.getUserHandleForUid(Binder.getCallingUid()));
if (ai != null) return ai.targetSdkVersion;
} catch (PackageManager.NameNotFoundException unexpected) {
+ loge("Failed to get package info for pkg="
+ + packageName + ", uid=" + Binder.getCallingUid());
}
return Integer.MAX_VALUE;
}
@@ -1980,7 +2059,7 @@
"getNeighboringCellInfo() is unavailable to callers targeting Q+ SDK levels.");
}
- if (mAppOps.noteOp(AppOpsManager.OP_NEIGHBORING_CELLS, Binder.getCallingUid(),
+ if (mAppOps.noteOp(AppOpsManager.OPSTR_NEIGHBORING_CELLS, Binder.getCallingUid(),
callingPackage) != AppOpsManager.MODE_ALLOWED) {
return null;
}
@@ -2084,10 +2163,16 @@
case DENIED_HARD:
throw new SecurityException("Not allowed to access cell info");
case DENIED_SOFT:
+ try {
+ cb.onCellInfo(new ArrayList<CellInfo>());
+ } catch (RemoteException re) {
+ // Drop without consequences
+ }
return;
}
- final Phone phone = getPhone(subId);
+
+ final Phone phone = getPhoneFromSubId(subId);
if (phone == null) throw new IllegalArgumentException("Invalid Subscription Id: " + subId);
sendRequestAsync(CMD_REQUEST_CELL_INFO_UPDATE, cb, phone, workSource);
@@ -2113,8 +2198,8 @@
return null;
}
int subId = phone.getSubId();
- if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
- mApp, subId, callingPackage, "getImeiForSlot")) {
+ if (!TelephonyPermissions.checkCallingOrSelfReadDeviceIdentifiers(mApp, subId,
+ callingPackage, "getImeiForSlot")) {
return null;
}
@@ -2145,8 +2230,8 @@
}
int subId = phone.getSubId();
- if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
- mApp, subId, callingPackage, "getMeidForSlot")) {
+ if (!TelephonyPermissions.checkCallingOrSelfReadDeviceIdentifiers(mApp, subId,
+ callingPackage, "getMeidForSlot")) {
return null;
}
@@ -2596,22 +2681,11 @@
mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
enforceVisualVoicemailPackage(callingPackage, subId);
enforceSendSmsPermission();
- // Make the calls as the phone process.
- final long identity = Binder.clearCallingIdentity();
- try {
- SmsManager smsManager = SmsManager.getSmsManagerForSubscriptionId(subId);
- if (port == 0) {
- smsManager.sendTextMessageWithSelfPermissions(number, null, text,
- sentIntent, null, false);
- } else {
- byte[] data = text.getBytes(StandardCharsets.UTF_8);
- smsManager.sendDataMessageWithSelfPermissions(number, null,
- (short) port, data, sentIntent, null);
- }
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
+ SmsController smsController = PhoneFactory.getSmsController();
+ smsController.sendVisualVoicemailSmsForSubscriber(callingPackage, subId, number, port, text,
+ sentIntent);
}
+
/**
* Sets the voice activation state of a given subId.
*/
@@ -2647,7 +2721,7 @@
if (phone != null) {
phone.setDataActivationState(activationState);
} else {
- loge("setVoiceActivationState fails with invalid subId: " + subId);
+ loge("setDataActivationState fails with invalid subId: " + subId);
}
} finally {
Binder.restoreCallingIdentity(identity);
@@ -2755,27 +2829,6 @@
}
}
- /**
- * Returns the data network type.
- * Legacy call, permission-free.
- *
- * @Deprecated to be removed Q3 2013 use {@link #getDataNetworkType}.
- */
- @Override
- public int getNetworkType() {
- final long identity = Binder.clearCallingIdentity();
- try {
- final Phone phone = getPhone(getDefaultSubscription());
- if (phone != null) {
- return phone.getServiceState().getDataNetworkType();
- } else {
- return TelephonyManager.NETWORK_TYPE_UNKNOWN;
- }
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
@Override
public int getNetworkSelectionMode(int subId) {
if (!isActiveSubscription(subId)) {
@@ -2786,6 +2839,22 @@
}
@Override
+ public boolean isInEmergencySmsMode() {
+ enforceReadPrivilegedPermission("isInEmergencySmsMode");
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ for (Phone phone : PhoneFactory.getPhones()) {
+ if (phone.isInEmergencySmsMode()) {
+ return true;
+ }
+ }
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ return false;
+ }
+
+ @Override
public void registerImsRegistrationCallback(int subId, IImsRegistrationCallback c)
throws RemoteException {
enforceReadPrivilegedPermission("registerImsRegistrationCallback");
@@ -2794,6 +2863,8 @@
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
.addRegistrationCallbackForSubscription(c, subId);
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(token);
}
@@ -2810,7 +2881,7 @@
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone.
ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
.removeRegistrationCallbackForSubscription(c, subId);
- } catch (IllegalArgumentException e) {
+ } catch (ImsException e) {
Log.i(LOG_TAG, "unregisterImsRegistrationCallback: " + subId
+ "is inactive, ignoring unregister.");
// If the subscription is no longer active, just return, since the callback
@@ -2828,6 +2899,8 @@
try {
ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
.addCapabilitiesCallbackForSubscription(c, subId);
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(token);
}
@@ -2845,7 +2918,7 @@
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone.
ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
.removeCapabilitiesCallbackForSubscription(c, subId);
- } catch (IllegalArgumentException e) {
+ } catch (ImsException e) {
Log.i(LOG_TAG, "unregisterMmTelCapabilityCallback: " + subId
+ "is inactive, ignoring unregister.");
// If the subscription is no longer active, just return, since the callback
@@ -2862,10 +2935,10 @@
try {
return ImsManager.getInstance(mApp,
getSlotIndexOrException(subId)).queryMmTelCapability(capability, regTech);
- } catch (ImsException e) {
+ } catch (com.android.ims.ImsException e) {
Log.w(LOG_TAG, "IMS isCapable - service unavailable: " + e.getMessage());
return false;
- } catch (IllegalArgumentException e) {
+ } catch (ImsException e) {
Log.i(LOG_TAG, "isCapable: " + subId + " is inactive, returning false.");
return false;
} finally {
@@ -2894,6 +2967,8 @@
try {
return ImsManager.getInstance(mApp,
getSlotIndexOrException(subId)).isEnhanced4gLteModeSettingEnabledByUser();
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(token);
}
@@ -2908,6 +2983,8 @@
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
ImsManager.getInstance(mApp,
getSlotIndexOrException(subId)).setEnhanced4gLteModeSetting(isEnabled);
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -2919,8 +2996,9 @@
final long identity = Binder.clearCallingIdentity();
try {
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
- return ImsManager.getInstance(mApp,
- getSlotIndexOrException(subId)).isVtEnabledByUser();
+ return ImsManager.getInstance(mApp, getSlotIndexOrException(subId)).isVtEnabledByUser();
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -2934,6 +3012,8 @@
try {
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
ImsManager.getInstance(mApp, getSlotIndexOrException(subId)).setVtSetting(isEnabled);
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -2947,6 +3027,8 @@
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
return ImsManager.getInstance(mApp,
getSlotIndexOrException(subId)).isWfcEnabledByUser();
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -2960,6 +3042,8 @@
try {
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
ImsManager.getInstance(mApp, getSlotIndexOrException(subId)).setWfcSetting(isEnabled);
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -2973,6 +3057,8 @@
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
return ImsManager.getInstance(mApp,
getSlotIndexOrException(subId)).isWfcRoamingEnabledByUser();
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -2987,6 +3073,8 @@
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
ImsManager.getInstance(mApp,
getSlotIndexOrException(subId)).setWfcRoamingSetting(isEnabled);
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -2999,10 +3087,10 @@
final long identity = Binder.clearCallingIdentity();
try {
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
- boolean isRoaming = TelephonyManager.from(
- getPhone(subId).getContext()).isNetworkRoaming(subId);
ImsManager.getInstance(mApp,
- getSlotIndexOrException(subId)).setWfcNonPersistent(isCapable, mode, isRoaming);
+ getSlotIndexOrException(subId)).setWfcNonPersistent(isCapable, mode);
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -3016,6 +3104,8 @@
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
return ImsManager.getInstance(mApp,
getSlotIndexOrException(subId)).getWfcMode(false /*isRoaming*/);
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -3030,6 +3120,8 @@
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
ImsManager.getInstance(mApp,
getSlotIndexOrException(subId)).setWfcMode(mode, false /*isRoaming*/);
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -3043,6 +3135,8 @@
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
return ImsManager.getInstance(mApp,
getSlotIndexOrException(subId)).getWfcMode(true /*isRoaming*/);
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -3057,6 +3151,8 @@
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
ImsManager.getInstance(mApp,
getSlotIndexOrException(subId)).setWfcMode(mode, true /*isRoaming*/);
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -3069,8 +3165,9 @@
final long identity = Binder.clearCallingIdentity();
try {
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
- ImsManager.getInstance(mApp,
- getSlotIndexOrException(subId)).setRttEnabled(isEnabled);
+ ImsManager.getInstance(mApp, getSlotIndexOrException(subId)).setRttEnabled(isEnabled);
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -3084,6 +3181,8 @@
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
return ImsManager.getInstance(mApp,
getSlotIndexOrException(subId)).isTtyOnVoLteCapable();
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -3097,6 +3196,8 @@
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
.addProvisioningCallbackForSubscription(callback, subId);
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -3113,7 +3214,7 @@
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
ImsManager.getInstance(mApp, getSlotIndexOrException(subId))
.removeProvisioningCallbackForSubscription(callback, subId);
- } catch (IllegalArgumentException e) {
+ } catch (ImsException e) {
Log.i(LOG_TAG, "unregisterImsProvisioningChangedCallback: " + subId
+ "is inactive, ignoring unregister.");
// If the subscription is no longer active, just return, since the callback will already
@@ -3172,7 +3273,7 @@
cacheMmTelCapabilityProvisioning(subId, capability, tech, isProvisioned);
try {
ims.changeMmTelCapability(capability, tech, isProvisioned);
- } catch (ImsException e) {
+ } catch (com.android.ims.ImsException e) {
loge("setImsProvisioningStatusForCapability: couldn't change UT capability"
+ ", Exception" + e.getMessage());
}
@@ -3316,10 +3417,7 @@
CarrierConfigManager configManager = new CarrierConfigManager(context);
PersistableBundle c = configManager.getConfigForSubId(subId);
boolean requireUtProvisioning = c.getBoolean(
- // By default, this config is true (even if there is no SIM). We also check to make
- // sure the subscription needs provisioning here, so we do not need to check for
- // the no-SIM case, where we would normally shortcut this to false.
- CarrierConfigManager.KEY_CARRIER_SUPPORTS_SS_OVER_UT_BOOL, true)
+ CarrierConfigManager.KEY_CARRIER_SUPPORTS_SS_OVER_UT_BOOL, false)
&& c.getBoolean(CarrierConfigManager.KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL,
false);
boolean requireVoiceVtProvisioning = c.getBoolean(
@@ -3363,7 +3461,7 @@
return ImsConfigImplBase.CONFIG_RESULT_UNKNOWN;
}
return ImsManager.getInstance(mApp, slotId).getConfigInterface().getConfigInt(key);
- } catch (ImsException e) {
+ } catch (com.android.ims.ImsException e) {
Log.w(LOG_TAG, "getImsProvisioningInt: ImsService is not available for subscription '"
+ subId + "' for key:" + key);
return ImsConfigImplBase.CONFIG_RESULT_UNKNOWN;
@@ -3388,7 +3486,7 @@
return ProvisioningManager.STRING_QUERY_RESULT_ERROR_GENERIC;
}
return ImsManager.getInstance(mApp, slotId).getConfigInterface().getConfigString(key);
- } catch (ImsException e) {
+ } catch (com.android.ims.ImsException e) {
Log.w(LOG_TAG, "getImsProvisioningString: ImsService is not available for sub '"
+ subId + "' for key:" + key);
return ProvisioningManager.STRING_QUERY_RESULT_ERROR_NOT_READY;
@@ -3414,7 +3512,7 @@
return ImsConfigImplBase.CONFIG_RESULT_FAILED;
}
return ImsManager.getInstance(mApp, slotId).getConfigInterface().setConfig(key, value);
- } catch (ImsException e) {
+ } catch (com.android.ims.ImsException e) {
Log.w(LOG_TAG, "setImsProvisioningInt: ImsService unavailable for sub '" + subId
+ "' for key:" + key);
return ImsConfigImplBase.CONFIG_RESULT_FAILED;
@@ -3440,7 +3538,7 @@
return ImsConfigImplBase.CONFIG_RESULT_FAILED;
}
return ImsManager.getInstance(mApp, slotId).getConfigInterface().setConfig(key, value);
- } catch (ImsException e) {
+ } catch (com.android.ims.ImsException e) {
Log.w(LOG_TAG, "setImsProvisioningString: ImsService unavailable for sub '" + subId
+ "' for key:" + key);
return ImsConfigImplBase.CONFIG_RESULT_FAILED;
@@ -3449,10 +3547,11 @@
}
}
- private int getSlotIndexOrException(int subId) throws IllegalArgumentException {
+ private int getSlotIndexOrException(int subId) throws ImsException {
int slotId = SubscriptionManager.getSlotIndex(subId);
if (!SubscriptionManager.isValidSlotIndex(slotId)) {
- throw new IllegalArgumentException("Invalid Subscription Id, subId=" + subId);
+ throw new ImsException("Invalid Subscription Id, subId=" + subId,
+ ImsException.CODE_ERROR_INVALID_SUBSCRIPTION);
}
return slotId;
}
@@ -3466,12 +3565,16 @@
}
/**
- * Returns the network type for a subId
+ * Returns the data network type for a subId; does not throw SecurityException.
*/
@Override
public int getNetworkTypeForSubscriber(int subId, String callingPackage) {
- if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
- mApp, subId, callingPackage, "getNetworkTypeForSubscriber")) {
+ final int targetSdk = getTargetSdk(callingPackage);
+ if (targetSdk > android.os.Build.VERSION_CODES.Q) {
+ return getDataNetworkTypeForSubscriber(subId, callingPackage);
+ } else if (targetSdk == android.os.Build.VERSION_CODES.Q
+ && !TelephonyPermissions.checkCallingOrSelfReadPhoneStateNoThrow(
+ mApp, subId, callingPackage, "getNetworkTypeForSubscriber")) {
return TelephonyManager.NETWORK_TYPE_UNKNOWN;
}
@@ -3656,13 +3759,43 @@
return TelephonyManager.WifiCallingChoices.ALWAYS_USE;
}
+ private Phone getPhoneFromSlotIdOrThrowException(int slotIndex) {
+ int phoneId = UiccController.getInstance().getPhoneIdFromSlotId(slotIndex);
+ if (phoneId == -1) {
+ throw new IllegalArgumentException("Given slot index: " + slotIndex
+ + " does not correspond to an active phone");
+ }
+ return PhoneFactory.getPhone(phoneId);
+ }
+
@Override
public IccOpenLogicalChannelResponse iccOpenLogicalChannel(
int subId, String callingPackage, String aid, int p2) {
TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
mApp, subId, "iccOpenLogicalChannel");
mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
+ if (DBG) {
+ log("iccOpenLogicalChannel: subId=" + subId + " aid=" + aid + " p2=" + p2);
+ }
+ return iccOpenLogicalChannelWithPermission(getPhoneFromSubId(subId), callingPackage, aid,
+ p2);
+ }
+
+ @Override
+ public IccOpenLogicalChannelResponse iccOpenLogicalChannelBySlot(
+ int slotIndex, String callingPackage, String aid, int p2) {
+ enforceModifyPermission();
+ mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
+ if (DBG) {
+ log("iccOpenLogicalChannelBySlot: slot=" + slotIndex + " aid=" + aid + " p2=" + p2);
+ }
+ return iccOpenLogicalChannelWithPermission(getPhoneFromSlotIdOrThrowException(slotIndex),
+ callingPackage, aid, p2);
+ }
+
+ private IccOpenLogicalChannelResponse iccOpenLogicalChannelWithPermission(Phone phone,
+ String callingPackage, String aid, int p2) {
final long identity = Binder.clearCallingIdentity();
try {
if (TextUtils.equals(ISDR_AID, aid)) {
@@ -3677,12 +3810,10 @@
}
}
- if (DBG) {
- log("iccOpenLogicalChannel: subId=" + subId + " aid=" + aid + " p2=" + p2);
- }
IccOpenLogicalChannelResponse response = (IccOpenLogicalChannelResponse) sendRequest(
- CMD_OPEN_CHANNEL, new Pair<String, Integer>(aid, p2), subId);
- if (DBG) log("iccOpenLogicalChannel: " + response);
+ CMD_OPEN_CHANNEL, new Pair<String, Integer>(aid, p2), phone,
+ null /* workSource */);
+ if (DBG) log("iccOpenLogicalChannelWithPermission: " + response);
return response;
} finally {
Binder.restoreCallingIdentity(identity);
@@ -3693,15 +3824,27 @@
public boolean iccCloseLogicalChannel(int subId, int channel) {
TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
mApp, subId, "iccCloseLogicalChannel");
+ if (DBG) log("iccCloseLogicalChannel: subId=" + subId + " chnl=" + channel);
+ return iccCloseLogicalChannelWithPermission(getPhoneFromSubId(subId), channel);
+ }
+ @Override
+ public boolean iccCloseLogicalChannelBySlot(int slotIndex, int channel) {
+ enforceModifyPermission();
+ if (DBG) log("iccCloseLogicalChannelBySlot: slotIndex=" + slotIndex + " chnl=" + channel);
+ return iccCloseLogicalChannelWithPermission(getPhoneFromSlotIdOrThrowException(slotIndex),
+ channel);
+ }
+
+ private boolean iccCloseLogicalChannelWithPermission(Phone phone, int channel) {
final long identity = Binder.clearCallingIdentity();
try {
- if (DBG) log("iccCloseLogicalChannel: subId=" + subId + " chnl=" + channel);
if (channel < 0) {
return false;
}
- Boolean success = (Boolean) sendRequest(CMD_CLOSE_CHANNEL, channel, subId);
- if (DBG) log("iccCloseLogicalChannel: " + success);
+ Boolean success = (Boolean) sendRequest(CMD_CLOSE_CHANNEL, channel, phone,
+ null /* workSource */);
+ if (DBG) log("iccCloseLogicalChannelWithPermission: " + success);
return success;
} finally {
Binder.restoreCallingIdentity(identity);
@@ -3713,22 +3856,41 @@
int command, int p1, int p2, int p3, String data) {
TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
mApp, subId, "iccTransmitApduLogicalChannel");
+ if (DBG) {
+ log("iccTransmitApduLogicalChannel: subId=" + subId + " chnl=" + channel
+ + " cla=" + cla + " cmd=" + command + " p1=" + p1 + " p2=" + p2 + " p3="
+ + p3 + " data=" + data);
+ }
+ return iccTransmitApduLogicalChannelWithPermission(getPhoneFromSubId(subId), channel, cla,
+ command, p1, p2, p3, data);
+ }
+ @Override
+ public String iccTransmitApduLogicalChannelBySlot(int slotIndex, int channel, int cla,
+ int command, int p1, int p2, int p3, String data) {
+ enforceModifyPermission();
+ if (DBG) {
+ log("iccTransmitApduLogicalChannelBySlot: slotIndex=" + slotIndex + " chnl=" + channel
+ + " cla=" + cla + " cmd=" + command + " p1=" + p1 + " p2=" + p2 + " p3="
+ + p3 + " data=" + data);
+ }
+ return iccTransmitApduLogicalChannelWithPermission(
+ getPhoneFromSlotIdOrThrowException(slotIndex), channel, cla, command, p1, p2, p3,
+ data);
+ }
+
+ private String iccTransmitApduLogicalChannelWithPermission(Phone phone, int channel, int cla,
+ int command, int p1, int p2, int p3, String data) {
final long identity = Binder.clearCallingIdentity();
try {
- if (DBG) {
- log("iccTransmitApduLogicalChannel: subId=" + subId + " chnl=" + channel
- + " cla=" + cla + " cmd=" + command + " p1=" + p1 + " p2=" + p2 + " p3="
- + p3 + " data=" + data);
- }
-
- if (channel < 0) {
+ if (channel <= 0) {
return "";
}
IccIoResult response = (IccIoResult) sendRequest(CMD_TRANSMIT_APDU_LOGICAL_CHANNEL,
- new IccAPDUArgument(channel, cla, command, p1, p2, p3, data), subId);
- if (DBG) log("iccTransmitApduLogicalChannel: " + response);
+ new IccAPDUArgument(channel, cla, command, p1, p2, p3, data), phone,
+ null /* workSource */);
+ if (DBG) log("iccTransmitApduLogicalChannelWithPermission: " + response);
// Append the returned status code to the end of the response payload.
String s = Integer.toHexString(
@@ -3748,7 +3910,33 @@
TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
mApp, subId, "iccTransmitApduBasicChannel");
mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
+ if (DBG) {
+ log("iccTransmitApduBasicChannel: subId=" + subId + " cla=" + cla + " cmd="
+ + command + " p1=" + p1 + " p2=" + p2 + " p3=" + p3 + " data=" + data);
+ }
+ return iccTransmitApduBasicChannelWithPermission(getPhoneFromSubId(subId), callingPackage,
+ cla, command, p1, p2, p3, data);
+ }
+ @Override
+ public String iccTransmitApduBasicChannelBySlot(int slotIndex, String callingPackage, int cla,
+ int command, int p1, int p2, int p3, String data) {
+ enforceModifyPermission();
+ mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
+ if (DBG) {
+ log("iccTransmitApduBasicChannelBySlot: slotIndex=" + slotIndex + " cla=" + cla
+ + " cmd=" + command + " p1=" + p1 + " p2=" + p2 + " p3=" + p3
+ + " data=" + data);
+ }
+
+ return iccTransmitApduBasicChannelWithPermission(
+ getPhoneFromSlotIdOrThrowException(slotIndex), callingPackage, cla, command, p1,
+ p2, p3, data);
+ }
+
+ // open APDU basic channel assuming the caller has sufficient permissions
+ private String iccTransmitApduBasicChannelWithPermission(Phone phone, String callingPackage,
+ int cla, int command, int p1, int p2, int p3, String data) {
final long identity = Binder.clearCallingIdentity();
try {
if (command == SELECT_COMMAND && p1 == SELECT_P1 && p2 == SELECT_P2 && p3 == SELECT_P3
@@ -3764,14 +3952,10 @@
}
}
- if (DBG) {
- log("iccTransmitApduBasicChannel: subId=" + subId + " cla=" + cla + " cmd="
- + command + " p1=" + p1 + " p2=" + p2 + " p3=" + p3 + " data=" + data);
- }
-
IccIoResult response = (IccIoResult) sendRequest(CMD_TRANSMIT_APDU_BASIC_CHANNEL,
- new IccAPDUArgument(0, cla, command, p1, p2, p3, data), subId);
- if (DBG) log("iccTransmitApduBasicChannel: " + response);
+ new IccAPDUArgument(0, cla, command, p1, p2, p3, data), phone,
+ null /* workSource */);
+ if (DBG) log("iccTransmitApduBasicChannelWithPermission: " + response);
// Append the returned status code to the end of the response payload.
String s = Integer.toHexString(
@@ -4027,7 +4211,12 @@
final long identity = Binder.clearCallingIdentity();
try {
- PhoneFactory.getImsResolver().enableIms(slotId);
+ ImsResolver resolver = PhoneFactory.getImsResolver();
+ if (resolver == null) {
+ // may happen if the device does not support IMS.
+ return;
+ }
+ resolver.enableIms(slotId);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -4042,7 +4231,12 @@
final long identity = Binder.clearCallingIdentity();
try {
- PhoneFactory.getImsResolver().disableIms(slotId);
+ ImsResolver resolver = PhoneFactory.getImsResolver();
+ if (resolver == null) {
+ // may happen if the device does not support IMS.
+ return;
+ }
+ resolver.disableIms(slotId);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -4059,7 +4253,12 @@
final long identity = Binder.clearCallingIdentity();
try {
- return PhoneFactory.getImsResolver().getMmTelFeatureAndListen(slotId, callback);
+ ImsResolver resolver = PhoneFactory.getImsResolver();
+ if (resolver == null) {
+ // may happen if the device does not support IMS.
+ return null;
+ }
+ return resolver.getMmTelFeatureAndListen(slotId, callback);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -4076,7 +4275,12 @@
final long identity = Binder.clearCallingIdentity();
try {
- return PhoneFactory.getImsResolver().getRcsFeatureAndListen(slotId, callback);
+ ImsResolver resolver = PhoneFactory.getImsResolver();
+ if (resolver == null) {
+ // may happen if the device does not support IMS.
+ return null;
+ }
+ return resolver.getRcsFeatureAndListen(slotId, callback);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -4084,14 +4288,19 @@
/**
* Returns the {@link IImsRegistration} structure associated with the slotId and feature
- * specified.
+ * specified or null if IMS is not supported on the slot specified.
*/
public IImsRegistration getImsRegistration(int slotId, int feature) throws RemoteException {
enforceModifyPermission();
final long identity = Binder.clearCallingIdentity();
try {
- return PhoneFactory.getImsResolver().getImsRegistration(slotId, feature);
+ ImsResolver resolver = PhoneFactory.getImsResolver();
+ if (resolver == null) {
+ // may happen if the device does not support IMS.
+ return null;
+ }
+ return resolver.getImsRegistration(slotId, feature);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -4099,14 +4308,19 @@
/**
* Returns the {@link IImsConfig} structure associated with the slotId and feature
- * specified.
+ * specified or null if IMS is not supported on the slot specified.
*/
public IImsConfig getImsConfig(int slotId, int feature) throws RemoteException {
enforceModifyPermission();
final long identity = Binder.clearCallingIdentity();
try {
- return PhoneFactory.getImsResolver().getImsConfig(slotId, feature);
+ ImsResolver resolver = PhoneFactory.getImsResolver();
+ if (resolver == null) {
+ // may happen if the device does not support IMS.
+ return null;
+ }
+ return resolver.getImsConfig(slotId, feature);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -4131,8 +4345,13 @@
final long identity = Binder.clearCallingIdentity();
try {
- return PhoneFactory.getImsResolver().overrideImsServiceConfiguration(slotId,
- isCarrierImsService, packageName);
+ ImsResolver resolver = PhoneFactory.getImsResolver();
+ if (resolver == null) {
+ // may happen if the device does not support IMS.
+ return false;
+ }
+ return resolver.overrideImsServiceConfiguration(slotId, isCarrierImsService,
+ packageName);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -4154,8 +4373,12 @@
final long identity = Binder.clearCallingIdentity();
try {
- return PhoneFactory.getImsResolver().getImsServiceConfiguration(slotId,
- isCarrierImsService);
+ ImsResolver resolver = PhoneFactory.getImsResolver();
+ if (resolver == null) {
+ // may happen if the device does not support IMS.
+ return "";
+ }
+ return resolver.getImsServiceConfiguration(slotId, isCarrierImsService);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -4276,7 +4499,6 @@
IBinder binder, String callingPackage) {
TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
mApp, subId, "requestNetworkScan");
-
LocationAccessPolicy.LocationPermissionResult locationResult =
LocationAccessPolicy.checkLocationPermission(mApp,
new LocationAccessPolicy.LocationPermissionQuery.Builder()
@@ -4286,16 +4508,52 @@
.setMethod("requestNetworkScan")
.setMinSdkVersionForFine(Build.VERSION_CODES.Q)
.build());
- switch (locationResult) {
- case DENIED_HARD:
- throw new SecurityException("Not allowed to request network scan -- location");
- case DENIED_SOFT:
- return -1;
+ if (locationResult != LocationAccessPolicy.LocationPermissionResult.ALLOWED) {
+ SecurityException e = checkNetworkRequestForSanitizedLocationAccess(request, subId);
+ if (e != null) {
+ if (locationResult == LocationAccessPolicy.LocationPermissionResult.DENIED_HARD) {
+ throw e;
+ } else {
+ loge(e.getMessage());
+ return TelephonyScanManager.INVALID_SCAN_ID;
+ }
+ }
+ }
+ int callingUid = Binder.getCallingUid();
+ int callingPid = Binder.getCallingPid();
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ return mNetworkScanRequestTracker.startNetworkScan(
+ request, messenger, binder, getPhone(subId),
+ callingUid, callingPid, callingPackage);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ private SecurityException checkNetworkRequestForSanitizedLocationAccess(
+ NetworkScanRequest request, int subId) {
+ boolean hasCarrierPriv = getCarrierPrivilegeStatusForUid(subId, Binder.getCallingUid())
+ == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
+ boolean hasNetworkScanPermission =
+ mApp.checkCallingOrSelfPermission(android.Manifest.permission.NETWORK_SCAN)
+ == PERMISSION_GRANTED;
+
+ if (!hasCarrierPriv && !hasNetworkScanPermission) {
+ return new SecurityException("permission.NETWORK_SCAN or carrier privileges is needed"
+ + " for network scans without location access.");
}
- return mNetworkScanRequestTracker.startNetworkScan(
- request, messenger, binder, getPhone(subId),
- callingPackage);
+ if (request.getSpecifiers() != null && request.getSpecifiers().length > 0) {
+ for (RadioAccessSpecifier ras : request.getSpecifiers()) {
+ if (ras.getChannels() != null && ras.getChannels().length > 0) {
+ return new SecurityException("Specific channels must not be"
+ + " scanned without location access.");
+ }
+ }
+ }
+
+ return null;
}
/**
@@ -4309,9 +4567,10 @@
TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
mApp, subId, "stopNetworkScan");
+ int callingUid = Binder.getCallingUid();
final long identity = Binder.clearCallingIdentity();
try {
- mNetworkScanRequestTracker.stopNetworkScan(scanId);
+ mNetworkScanRequestTracker.stopNetworkScan(scanId, callingUid);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -4393,18 +4652,23 @@
}
/**
- * Check whether DUN APN is required for tethering.
+ * Check whether DUN APN is required for tethering with subId.
*
+ * @param subId the id of the subscription to require tethering.
* @return {@code true} if DUN APN is required for tethering.
* @hide
*/
@Override
- public boolean getTetherApnRequired() {
+ public boolean getTetherApnRequiredForSubscriber(int subId) {
enforceModifyPermission();
final long identity = Binder.clearCallingIdentity();
- final Phone defaultPhone = getDefaultPhone();
+ final Phone phone = getPhone(subId);
try {
- return defaultPhone.hasMatchedTetherApnSetting();
+ if (phone != null) {
+ return phone.hasMatchedTetherApnSetting();
+ } else {
+ return false;
+ }
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -4548,30 +4812,32 @@
public int getCarrierPrivilegeStatusForUid(int subId, int uid) {
final Phone phone = getPhone(subId);
if (phone == null) {
- loge("getCarrierPrivilegeStatus: Invalid subId");
+ loge("getCarrierPrivilegeStatusForUid: Invalid subId");
return TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
}
UiccProfile profile =
UiccController.getInstance().getUiccProfileForPhone(phone.getPhoneId());
if (profile == null) {
- loge("getCarrierPrivilegeStatus: No UICC");
+ loge("getCarrierPrivilegeStatusForUid: No UICC");
return TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
}
return profile.getCarrierPrivilegeStatusForUid(phone.getContext().getPackageManager(), uid);
}
@Override
- public int checkCarrierPrivilegesForPackage(String pkgName) {
- final Phone defaultPhone = getDefaultPhone();
- if (TextUtils.isEmpty(pkgName))
+ public int checkCarrierPrivilegesForPackage(int subId, String pkgName) {
+ if (TextUtils.isEmpty(pkgName)) {
return TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
- UiccCard card = UiccController.getInstance().getUiccCard(defaultPhone.getPhoneId());
+ }
+
+ int phoneId = SubscriptionManager.getPhoneId(subId);
+ UiccCard card = UiccController.getInstance().getUiccCard(phoneId);
if (card == null) {
- loge("checkCarrierPrivilegesForPackage: No UICC");
+ loge("checkCarrierPrivilegesForPackage: No UICC on subId " + subId);
return TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
}
- return card.getCarrierPrivilegeStatus(defaultPhone.getContext().getPackageManager(),
- pkgName);
+
+ return card.getCarrierPrivilegeStatus(mApp.getPackageManager(), pkgName);
}
@Override
@@ -4603,36 +4869,33 @@
}
UiccCard card = UiccController.getInstance().getUiccCard(phoneId);
if (card == null) {
- loge("getCarrierPackageNamesForIntent: No UICC");
+ loge("getCarrierPackageNamesForIntentAndPhone: No UICC");
return null ;
}
return card.getCarrierPackageNamesForIntent(mApp.getPackageManager(), intent);
}
@Override
- public List<String> getPackagesWithCarrierPrivileges() {
+ public List<String> getPackagesWithCarrierPrivileges(int phoneId) {
PackageManager pm = mApp.getPackageManager();
List<String> privilegedPackages = new ArrayList<>();
List<PackageInfo> packages = null;
- for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
- UiccCard card = UiccController.getInstance().getUiccCard(i);
- if (card == null) {
- // No UICC in that slot.
- continue;
- }
+ UiccCard card = UiccController.getInstance().getUiccCard(phoneId);
+ // has UICC in that slot.
+ if (card != null) {
if (card.hasCarrierPrivilegeRules()) {
if (packages == null) {
// Only check packages in user 0 for now
packages = pm.getInstalledPackagesAsUser(
PackageManager.MATCH_DISABLED_COMPONENTS
- | PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.GET_SIGNATURES, UserHandle.USER_SYSTEM);
+ | PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
+ | PackageManager.GET_SIGNATURES, UserHandle.USER_SYSTEM);
}
for (int p = packages.size() - 1; p >= 0; p--) {
PackageInfo pkgInfo = packages.get(p);
if (pkgInfo != null && pkgInfo.packageName != null
&& card.getCarrierPrivilegeStatus(pkgInfo)
- == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
+ == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
privilegedPackages.add(pkgInfo.packageName);
}
}
@@ -4641,6 +4904,15 @@
return privilegedPackages;
}
+ @Override
+ public List<String> getPackagesWithCarrierPrivilegesForAllPhones() {
+ List<String> privilegedPackages = new ArrayList<>();
+ for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
+ privilegedPackages.addAll(getPackagesWithCarrierPrivileges(i));
+ }
+ return privilegedPackages;
+ }
+
private String getIccId(int subId) {
final Phone phone = getPhone(subId);
UiccCard card = phone == null ? null : phone.getUiccCard();
@@ -4756,7 +5028,7 @@
}
@Override
- public String[] getMergedSubscriberIds(String callingPackage) {
+ public String[] getMergedSubscriberIds(int subId, String callingPackage) {
// This API isn't public, so no need to provide a valid subscription ID - we're not worried
// about carrier-privileged callers not having access.
if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
@@ -4765,6 +5037,9 @@
return null;
}
+ // Clear calling identity, when calling TelephonyManager, because callerUid must be
+ // the process, where TelephonyManager was instantiated.
+ // Otherwise AppOps check will fail.
final long identity = Binder.clearCallingIdentity();
try {
final Context context = mApp;
@@ -4773,12 +5048,10 @@
// Figure out what subscribers are currently active
final ArraySet<String> activeSubscriberIds = new ArraySet<>();
- // Clear calling identity, when calling TelephonyManager, because callerUid must be
- // the process, where TelephonyManager was instantiated.
- // Otherwise AppOps check will fail.
- final int[] subIds = sub.getActiveSubscriptionIdList();
- for (int subId : subIds) {
+ // Only consider subs which match the current subId
+ // This logic can be simplified. See b/131189269 for progress.
+ if (isActiveSubscription(subId)) {
activeSubscriberIds.add(tele.getSubscriberId(subId));
}
@@ -5047,14 +5320,19 @@
}
/**
- * Determines whether the user has turned on RTT. Only returns true if the device and carrier
- * both also support RTT.
+ * Determines whether the user has turned on RTT. If the carrier wants to ignore the user-set
+ * RTT setting, will return true if the device and carrier both support RTT.
+ * Otherwise. only returns true if the device and carrier both also support RTT.
*/
public boolean isRttEnabled(int subscriptionId) {
final long identity = Binder.clearCallingIdentity();
try {
- return isRttSupported(subscriptionId) && Settings.Secure.getInt(
+ boolean isRttSupported = isRttSupported(subscriptionId);
+ boolean isUserRttSettingOn = Settings.Secure.getInt(
mApp.getContentResolver(), Settings.Secure.RTT_CALLING_MODE, 0) != 0;
+ boolean shouldIgnoreUserRttSetting = mApp.getCarrierConfigForSubId(subscriptionId)
+ .getBoolean(CarrierConfigManager.KEY_IGNORE_RTT_MODE_SETTING_BOOL);
+ return isRttSupported && (isUserRttSettingOn || shouldIgnoreUserRttSetting);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -5074,8 +5352,8 @@
return null;
}
int subId = phone.getSubId();
- if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
- mApp, subId, callingPackage, "getDeviceId")) {
+ if (!TelephonyPermissions.checkCallingOrSelfReadDeviceIdentifiers(mApp, subId,
+ callingPackage, "getDeviceId")) {
return null;
}
@@ -5112,6 +5390,20 @@
}
}
+ @Override
+ public @Nullable PhoneAccountHandle getPhoneAccountHandleForSubscriptionId(int subscriptionId) {
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ Phone phone = getPhone(subscriptionId);
+ if (phone == null) {
+ return null;
+ }
+ return PhoneUtils.makePstnPhoneAccountHandle(phone);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
/**
* @return the VoWiFi calling availability.
*/
@@ -5182,11 +5474,22 @@
setDataRoamingEnabled(subId, getDefaultDataRoamingEnabled(subId));
CarrierInfoManager.deleteAllCarrierKeysForImsiEncryption(mApp);
}
+ // There has been issues when Sms raw table somehow stores orphan
+ // fragments. They lead to garbled message when new fragments come
+ // in and combined with those stale ones. In case this happens again,
+ // user can reset all network settings which will clean up this table.
+ cleanUpSmsRawTable(getDefaultPhone().getContext());
} finally {
Binder.restoreCallingIdentity(identity);
}
}
+ private void cleanUpSmsRawTable(Context context) {
+ ContentResolver resolver = context.getContentResolver();
+ Uri uri = Uri.withAppendedPath(Telephony.Sms.CONTENT_URI, "raw/permanentDelete");
+ resolver.delete(uri, null, null);
+ }
+
@Override
public String getSimLocaleForSubscriber(int subId) {
enforceReadPrivilegedPermission("getSimLocaleForSubscriber, subId: " + subId);
@@ -5199,6 +5502,10 @@
try {
final SubscriptionInfo info = mSubscriptionController.getActiveSubscriptionInfo(subId,
phone.getContext().getOpPackageName());
+ if (info == null) {
+ log("getSimLocaleForSubscriber, inactive subId: " + subId);
+ return null;
+ }
// Try and fetch the locale from the carrier properties or from the SIM language
// preferences (EF-PL and EF-LI)...
final int mcc = info.getMcc();
@@ -5268,12 +5575,12 @@
if (isModemActivityInfoValid(info)) {
int[] mergedTxTimeMs = new int[ModemActivityInfo.TX_POWER_LEVELS];
for (int i = 0; i < mergedTxTimeMs.length; i++) {
- mergedTxTimeMs[i] =
- info.getTxTimeMillis()[i] + mLastModemActivityInfo.getTxTimeMillis()[i];
+ mergedTxTimeMs[i] = info.getTxTimeMillis()[i]
+ + mLastModemActivityInfo.getTxTimeMillis()[i];
}
mLastModemActivityInfo.setTimestamp(info.getTimestamp());
- mLastModemActivityInfo.setSleepTimeMillis(
- info.getSleepTimeMillis() + mLastModemActivityInfo.getSleepTimeMillis());
+ mLastModemActivityInfo.setSleepTimeMillis(info.getSleepTimeMillis()
+ + mLastModemActivityInfo.getSleepTimeMillis());
mLastModemActivityInfo.setIdleTimeMillis(
info.getIdleTimeMillis() + mLastModemActivityInfo.getIdleTimeMillis());
mLastModemActivityInfo.setTxTimeMillis(mergedTxTimeMs);
@@ -5334,6 +5641,7 @@
.setCallingPid(Binder.getCallingPid())
.setCallingUid(Binder.getCallingUid())
.setMethod("getServiceStateForSubscriber")
+ .setLogAsInfo(true)
.setMinSdkVersionForFine(Build.VERSION_CODES.Q)
.build());
@@ -5344,6 +5652,7 @@
.setCallingPid(Binder.getCallingPid())
.setCallingUid(Binder.getCallingUid())
.setMethod("getServiceStateForSubscriber")
+ .setLogAsInfo(true)
.setMinSdkVersionForCoarse(Build.VERSION_CODES.Q)
.build());
// We don't care about hard or soft here -- all we need to know is how much info to scrub.
@@ -5770,6 +6079,26 @@
}
/**
+ * Action set from carrier signalling broadcast receivers to reset all carrier actions
+ * @param subId the subscription ID that this action applies to.
+ * {@hide}
+ */
+ @Override
+ public void carrierActionResetAll(int subId) {
+ enforceModifyPermission();
+ final Phone phone = getPhone(subId);
+ if (phone == null) {
+ loge("carrierAction: ResetAll fails with invalid sibId: " + subId);
+ return;
+ }
+ try {
+ phone.carrierActionResetAll();
+ } catch (Exception e) {
+ Log.e(LOG_TAG, "carrierAction: ResetAll fails. Exception ex=" + e);
+ }
+ }
+
+ /**
* Called when "adb shell dumpsys phone" is invoked. Dump is also automatically invoked when a
* bug report is being generated.
*/
@@ -5996,11 +6325,12 @@
*/
@Override
public boolean isDataRoamingEnabled(int subId) {
+ mApp.enforceCallingOrSelfPermission(android.Manifest.permission.ACCESS_NETWORK_STATE,
+ null /* message */);
+
boolean isEnabled = false;
final long identity = Binder.clearCallingIdentity();
try {
- mApp.enforceCallingOrSelfPermission(android.Manifest.permission.ACCESS_NETWORK_STATE,
- null /* message */);
Phone phone = getPhone(subId);
isEnabled = phone != null ? phone.getDataRoamingEnabled() : false;
} catch (Exception e) {
@@ -6025,11 +6355,11 @@
*/
@Override
public void setDataRoamingEnabled(int subId, boolean isEnabled) {
+ TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
+ mApp, subId, "setDataRoamingEnabled");
+
final long identity = Binder.clearCallingIdentity();
try {
- TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
- mApp, subId, "setDataRoamingEnabled");
-
Phone phone = getPhone(subId);
if (phone != null) {
phone.setDataRoamingEnabled(isEnabled);
@@ -6041,11 +6371,12 @@
@Override
public boolean isManualNetworkSelectionAllowed(int subId) {
+ TelephonyPermissions.enforeceCallingOrSelfReadPhoneStatePermissionOrCarrierPrivilege(
+ mApp, subId, "isManualNetworkSelectionAllowed");
+
boolean isAllowed = true;
final long identity = Binder.clearCallingIdentity();
try {
- TelephonyPermissions.enforeceCallingOrSelfReadPhoneStatePermissionOrCarrierPrivilege(
- mApp, subId, "isManualNetworkSelectionAllowed");
Phone phone = getPhone(subId);
if (phone != null) {
isAllowed = phone.isCspPlmnEnabled();
@@ -6058,14 +6389,16 @@
@Override
public List<UiccCardInfo> getUiccCardsInfo(String callingPackage) {
+ boolean hasReadPermission = false;
try {
enforceReadPrivilegedPermission("getUiccCardsInfo");
+ hasReadPermission = true;
} catch (SecurityException e) {
// even without READ_PRIVILEGED_PHONE_STATE, we allow the call to continue if the caller
// has carrier privileges on an active UICC
if (checkCarrierPrivilegesForPackageAnyPhone(callingPackage)
!= TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
- throw new SecurityException("Caller does not have carrier privileges on any UICC");
+ throw new SecurityException("Caller does not have permission.");
}
}
@@ -6073,27 +6406,30 @@
try {
UiccController uiccController = UiccController.getInstance();
ArrayList<UiccCardInfo> cardInfos = uiccController.getAllUiccCardInfos();
-
- ApplicationInfo ai = mApp.getPackageManager().getApplicationInfo(callingPackage, 0);
- if ((ai.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
- // Remove private info if the caller doesn't have access
- ArrayList<UiccCardInfo> filteredInfos = new ArrayList<>();
- for (UiccCardInfo cardInfo : cardInfos) {
- UiccCard card = uiccController.getUiccCard(cardInfo.getSlotIndex());
- UiccProfile profile = card.getUiccProfile();
- if (profile.getCarrierPrivilegeStatus(mApp.getPackageManager(), callingPackage)
- != TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
- filteredInfos.add(cardInfo.getUnprivileged());
- } else {
- filteredInfos.add(cardInfo);
- }
- }
- return filteredInfos;
+ if (hasReadPermission) {
+ return cardInfos;
}
- return cardInfos;
- } catch (PackageManager.NameNotFoundException e) {
- // This should not happen since we pass the package info in from TelephonyManager
- throw new SecurityException("Invalid calling package.");
+
+ // Remove private info if the caller doesn't have access
+ ArrayList<UiccCardInfo> filteredInfos = new ArrayList<>();
+ for (UiccCardInfo cardInfo : cardInfos) {
+ // For an inactive eUICC, the UiccCard will be null even though the UiccCardInfo
+ // is available
+ UiccCard card = uiccController.getUiccCardForSlot(cardInfo.getSlotIndex());
+ if (card == null || card.getUiccProfile() == null) {
+ // assume no access if the card or profile is unavailable
+ filteredInfos.add(cardInfo.getUnprivileged());
+ continue;
+ }
+ UiccProfile profile = card.getUiccProfile();
+ if (profile.getCarrierPrivilegeStatus(mApp.getPackageManager(), callingPackage)
+ == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
+ filteredInfos.add(cardInfo);
+ } else {
+ filteredInfos.add(cardInfo.getUnprivileged());
+ }
+ }
+ return filteredInfos;
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -6123,7 +6459,16 @@
if (card != null) {
cardId = card.getCardId();
} else {
- cardId = slot.getIccId();
+ cardId = slot.getEid();
+ if (TextUtils.isEmpty(cardId)) {
+ cardId = slot.getIccId();
+ }
+ }
+
+ if (cardId != null) {
+ // if cardId is an ICCID, strip off trailing Fs before exposing to user
+ // if cardId is an EID, it's all digits so this is fine
+ cardId = IccUtils.stripTrailingFs(cardId);
}
int cardState = 0;
@@ -6267,7 +6612,7 @@
@Override
public void setCarrierTestOverride(int subId, String mccmnc, String imsi, String iccid, String
- gid1, String gid2, String plmn, String spn) {
+ gid1, String gid2, String plmn, String spn, String carrierPrivilegeRules, String apn) {
enforceModifyPermission();
final long identity = Binder.clearCallingIdentity();
@@ -6277,7 +6622,8 @@
loge("setCarrierTestOverride fails with invalid subId: " + subId);
return;
}
- phone.setCarrierTestOverride(mccmnc, imsi, iccid, gid1, gid2, plmn, spn);
+ phone.setCarrierTestOverride(mccmnc, imsi, iccid, gid1, gid2, plmn, spn,
+ carrierPrivilegeRules, apn);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -6424,10 +6770,10 @@
}
@Override
- public Map<Integer, List<EmergencyNumber>> getCurrentEmergencyNumberList(
+ public Map<Integer, List<EmergencyNumber>> getEmergencyNumberList(
String callingPackage) {
if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
- mApp, getDefaultSubscription(), callingPackage, "getCurrentEmergencyNumberList")) {
+ mApp, getDefaultSubscription(), callingPackage, "getEmergencyNumberList")) {
throw new SecurityException("Requires READ_PHONE_STATE permission.");
}
final long identity = Binder.clearCallingIdentity();
@@ -6448,12 +6794,12 @@
}
@Override
- public boolean isCurrentEmergencyNumber(String number, boolean exactMatch) {
+ public boolean isEmergencyNumber(String number, boolean exactMatch) {
final Phone defaultPhone = getDefaultPhone();
if (!exactMatch) {
TelephonyPermissions
.enforeceCallingOrSelfReadPrivilegedPhoneStatePermissionOrCarrierPrivilege(
- mApp, defaultPhone.getSubId(), "isCurrentEmergencyNumber(Potential)");
+ mApp, defaultPhone.getSubId(), "isEmergencyNumber(Potential)");
}
final long identity = Binder.clearCallingIdentity();
try {
@@ -6558,14 +6904,39 @@
}
}
+ /**
+ * Whether a modem stack is enabled or not.
+ */
@Override
- public void setMultisimCarrierRestriction(boolean isMultisimCarrierRestricted) {
+ public boolean isModemEnabledForSlot(int slotIndex, String callingPackage) {
+ Phone phone = PhoneFactory.getPhone(slotIndex);
+ if (phone == null) return false;
+
+ if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
+ mApp, phone.getSubId(), callingPackage, "isModemEnabledForSlot")) {
+ throw new SecurityException("Requires READ_PHONE_STATE permission.");
+ }
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ try {
+ return mPhoneConfigurationManager.getPhoneStatusFromCache(phone.getPhoneId());
+ } catch (NoSuchElementException ex) {
+ return (Boolean) sendRequest(CMD_GET_MODEM_STATUS, null, phone, null);
+ }
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void setMultiSimCarrierRestriction(boolean isMultiSimCarrierRestricted) {
enforceModifyPermission();
final long identity = Binder.clearCallingIdentity();
try {
mTelephonySharedPreferences.edit()
- .putBoolean(PREF_MULTI_SIM_RESTRICTED, isMultisimCarrierRestricted)
+ .putBoolean(PREF_MULTI_SIM_RESTRICTED, isMultiSimCarrierRestricted)
.commit();
} finally {
Binder.restoreCallingIdentity(identity);
@@ -6573,45 +6944,47 @@
}
@Override
- public boolean isMultisimSupported(String callingPackage) {
+ @TelephonyManager.IsMultiSimSupportedResult
+ public int isMultiSimSupported(String callingPackage) {
if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp,
- getDefaultPhone().getSubId(), callingPackage, "isMultisimSupported")) {
- return false;
+ getDefaultPhone().getSubId(), callingPackage, "isMultiSimSupported")) {
+ return TelephonyManager.MULTISIM_NOT_SUPPORTED_BY_HARDWARE;
}
final long identity = Binder.clearCallingIdentity();
try {
- return isMultisimSupportedInternal();
+ return isMultiSimSupportedInternal();
} finally {
Binder.restoreCallingIdentity(identity);
}
}
- private boolean isMultisimSupportedInternal() {
+ @TelephonyManager.IsMultiSimSupportedResult
+ private int isMultiSimSupportedInternal() {
// If the device has less than 2 SIM cards, indicate that multisim is restricted.
int numPhysicalSlots = UiccController.getInstance().getUiccSlots().length;
if (numPhysicalSlots < 2) {
- loge("isMultisimSupportedInternal: requires at least 2 cards");
- return false;
+ loge("isMultiSimSupportedInternal: requires at least 2 cards");
+ return TelephonyManager.MULTISIM_NOT_SUPPORTED_BY_HARDWARE;
}
// Check if the hardware supports multisim functionality. If usage of multisim is not
// supported by the modem, indicate that it is restricted.
PhoneCapability staticCapability =
mPhoneConfigurationManager.getStaticPhoneCapability();
if (staticCapability == null) {
- loge("isMultisimSupportedInternal: no static configuration available");
- return false;
+ loge("isMultiSimSupportedInternal: no static configuration available");
+ return TelephonyManager.MULTISIM_NOT_SUPPORTED_BY_HARDWARE;
}
if (staticCapability.logicalModemList.size() < 2) {
- loge("isMultisimSupportedInternal: maximum number of modem is < 2");
- return false;
+ loge("isMultiSimSupportedInternal: maximum number of modem is < 2");
+ return TelephonyManager.MULTISIM_NOT_SUPPORTED_BY_HARDWARE;
}
// Check if support of multiple SIMs is restricted by carrier
if (mTelephonySharedPreferences.getBoolean(PREF_MULTI_SIM_RESTRICTED, false)) {
- return false;
+ return TelephonyManager.MULTISIM_NOT_SUPPORTED_BY_CARRIER;
}
- return true;
+ return TelephonyManager.MULTISIM_ALLOWED;
}
/**
@@ -6633,7 +7006,7 @@
try {
//only proceed if multi-sim is not restricted
- if (!isMultisimSupportedInternal()) {
+ if (isMultiSimSupportedInternal() != TelephonyManager.MULTISIM_ALLOWED) {
loge("switchMultiSimConfig not possible. It is restricted or not supported.");
return;
}
@@ -6643,13 +7016,43 @@
}
}
+ @Override
+ public boolean isApplicationOnUicc(int subId, int appType) {
+ enforceReadPrivilegedPermission("isApplicationOnUicc");
+ Phone phone = getPhone(subId);
+ if (phone == null) {
+ return false;
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ UiccCard uiccCard = phone.getUiccCard();
+ if (uiccCard == null) {
+ return false;
+ }
+ UiccProfile uiccProfile = uiccCard.getUiccProfile();
+ if (uiccProfile == null) {
+ return false;
+ }
+ if (TelephonyManager.APPTYPE_SIM <= appType
+ && appType <= TelephonyManager.APPTYPE_ISIM) {
+ return uiccProfile.isApplicationOnIcc(AppType.values()[appType]);
+ }
+ return false;
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
/**
- * Get whether reboot is required or not after making changes to modem configurations.
- * Return value defaults to true
+ * Get whether making changes to modem configurations will trigger reboot.
+ * Return value defaults to true.
*/
@Override
- public boolean isRebootRequiredForModemConfigChange() {
- enforceReadPrivilegedPermission("isRebootRequiredForModemConfigChange");
+ public boolean doesSwitchMultiSimConfigTriggerReboot(int subId, String callingPackage) {
+ if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
+ mApp, subId, callingPackage, "doesSwitchMultiSimConfigTriggerReboot")) {
+ return false;
+ }
final long identity = Binder.clearCallingIdentity();
try {
return mPhoneConfigurationManager.isRebootRequiredForModemConfigChange();
@@ -6696,4 +7099,155 @@
if (hv.equals(HalVersion.UNKNOWN)) return -1;
return hv.major * 100 + hv.minor;
}
+
+ /**
+ * Return whether data is enabled for certain APN type. This will tell if framework will accept
+ * corresponding network requests on a subId.
+ *
+ * Data is enabled if:
+ * 1) user data is turned on, or
+ * 2) APN is un-metered for this subscription, or
+ * 3) APN type is whitelisted. E.g. MMS is whitelisted if
+ * {@link SubscriptionManager#setAlwaysAllowMmsData} is turned on.
+ *
+ * @return whether data is allowed for a apn type.
+ *
+ * @hide
+ */
+ @Override
+ public boolean isDataEnabledForApn(int apnType, int subId, String callingPackage) {
+ if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
+ mApp, subId, callingPackage, "isDataEnabledForApn")) {
+ throw new SecurityException("Needs READ_PHONE_STATE for isDataEnabledForApn");
+ }
+
+ // Now that all security checks passes, perform the operation as ourselves.
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ Phone phone = getPhone(subId);
+ if (phone == null) return false;
+
+ boolean isMetered = ApnSettingUtils.isMeteredApnType(apnType, phone);
+ return !isMetered || phone.getDataEnabledSettings().isDataEnabled(apnType);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public boolean isApnMetered(@ApnType int apnType, int subId) {
+ enforceReadPrivilegedPermission("isApnMetered");
+
+ // Now that all security checks passes, perform the operation as ourselves.
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ Phone phone = getPhone(subId);
+ if (phone == null) return true; // By default return true.
+
+ return ApnSettingUtils.isMeteredApnType(apnType, phone);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void enqueueSmsPickResult(String callingPackage, IIntegerConsumer pendingSubIdResult) {
+ SmsPermissions permissions = new SmsPermissions(getDefaultPhone(), mApp,
+ (AppOpsManager) mApp.getSystemService(Context.APP_OPS_SERVICE));
+ if (!permissions.checkCallingCanSendSms(callingPackage, "Sending message")) {
+ throw new SecurityException("Requires SEND_SMS permission to perform this operation");
+ }
+ PickSmsSubscriptionActivity.addPendingResult(pendingSubIdResult);
+ Intent intent = new Intent();
+ intent.setClass(mApp, PickSmsSubscriptionActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ // Bring up choose default SMS subscription dialog right now
+ intent.putExtra(PickSmsSubscriptionActivity.DIALOG_TYPE_KEY,
+ PickSmsSubscriptionActivity.SMS_PICK_FOR_MESSAGE);
+ mApp.startActivity(intent);
+ }
+
+ @Override
+ public String getMmsUAProfUrl(int subId) {
+ //TODO investigate if this API should require proper permission check in R b/133791609
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ return SubscriptionManager.getResourcesForSubId(getDefaultPhone().getContext(), subId)
+ .getString(com.android.internal.R.string.config_mms_user_agent_profile_url);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public String getMmsUserAgent(int subId) {
+ //TODO investigate if this API should require proper permission check in R b/133791609
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ return SubscriptionManager.getResourcesForSubId(getDefaultPhone().getContext(), subId)
+ .getString(com.android.internal.R.string.config_mms_user_agent);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public boolean setDataAllowedDuringVoiceCall(int subId, boolean allow) {
+ enforceModifyPermission();
+
+ // Now that all security checks passes, perform the operation as ourselves.
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ Phone phone = getPhone(subId);
+ if (phone == null) return false;
+
+ return phone.getDataEnabledSettings().setAllowDataDuringVoiceCall(allow);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public boolean isDataAllowedInVoiceCall(int subId) {
+ enforceReadPrivilegedPermission("isDataAllowedInVoiceCall");
+
+ // Now that all security checks passes, perform the operation as ourselves.
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ Phone phone = getPhone(subId);
+ if (phone == null) return false;
+
+ return phone.getDataEnabledSettings().isDataAllowedInVoiceCall();
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ /**
+ * Updates whether conference event pacakge handling is enabled.
+ * @param isCepEnabled {@code true} if CEP handling is enabled (default), or {@code false}
+ * otherwise.
+ */
+ @Override
+ public void setCepEnabled(boolean isCepEnabled) {
+ TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "setCepEnabled");
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ Rlog.i(LOG_TAG, "setCepEnabled isCepEnabled=" + isCepEnabled);
+ for (Phone phone : PhoneFactory.getPhones()) {
+ Phone defaultPhone = phone.getImsPhone();
+ if (defaultPhone != null && defaultPhone.getPhoneType() == PHONE_TYPE_IMS) {
+ ImsPhone imsPhone = (ImsPhone) defaultPhone;
+ ImsPhoneCallTracker imsPhoneCallTracker =
+ (ImsPhoneCallTracker) imsPhone.getCallTracker();
+ imsPhoneCallTracker.setConferenceEventPackageEnabled(isCepEnabled);
+ Rlog.i(LOG_TAG, "setCepEnabled isCepEnabled=" + isCepEnabled + ", for imsPhone "
+ + imsPhone.getMsisdn());
+ }
+ }
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
}
diff --git a/src/com/android/phone/PhoneSearchIndexablesProvider.java b/src/com/android/phone/PhoneSearchIndexablesProvider.java
deleted file mode 100644
index 339602d..0000000
--- a/src/com/android/phone/PhoneSearchIndexablesProvider.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import static android.provider.SearchIndexablesContract.COLUMN_INDEX_NON_INDEXABLE_KEYS_KEY_VALUE;
-import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_CLASS_NAME;
-import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_ICON_RESID;
-import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_ACTION;
-import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_TARGET_CLASS;
-import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_INTENT_TARGET_PACKAGE;
-import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_RANK;
-import static android.provider.SearchIndexablesContract.COLUMN_INDEX_XML_RES_RESID;
-import static android.provider.SearchIndexablesContract.INDEXABLES_RAW_COLUMNS;
-import static android.provider.SearchIndexablesContract.INDEXABLES_XML_RES_COLUMNS;
-import static android.provider.SearchIndexablesContract.NON_INDEXABLES_KEYS_COLUMNS;
-
-import android.content.Context;
-import android.database.Cursor;
-import android.database.MatrixCursor;
-import android.os.Binder;
-import android.os.UserManager;
-import android.provider.SearchIndexableResource;
-import android.provider.SearchIndexablesContract.RawData;
-import android.provider.SearchIndexablesProvider;
-import android.telephony.euicc.EuiccManager;
-
-import androidx.annotation.VisibleForTesting;
-
-public class PhoneSearchIndexablesProvider extends SearchIndexablesProvider {
- private static final String TAG = "PhoneSearchIndexablesProvider";
-
- private static final String ESIM_LIST_PROFILE_KEY = "esim_list_profile";
- private static final String ENHANCED_4G_LTE_KEY = "enhanced_4g_lte";
- private static final String WIFI_CALLING_KEY = "wifi_calling_key";
-
- private UserManager mUserManager;
-
- private static SearchIndexableResource[] INDEXABLE_RES = new SearchIndexableResource[] {
- new SearchIndexableResource(1, R.xml.network_setting_fragment,
- MobileNetworkSettings.class.getName(),
- R.mipmap.ic_launcher_phone),
- };
-
- @Override
- public boolean onCreate() {
- mUserManager = (UserManager) getContext().getSystemService(Context.USER_SERVICE);
- return true;
- }
-
- @Override
- public Cursor queryXmlResources(String[] projection) {
- MatrixCursor cursor = new MatrixCursor(INDEXABLES_XML_RES_COLUMNS);
- final int count = INDEXABLE_RES.length;
- for (int n = 0; n < count; n++) {
- Object[] ref = new Object[7];
- ref[COLUMN_INDEX_XML_RES_RANK] = INDEXABLE_RES[n].rank;
- ref[COLUMN_INDEX_XML_RES_RESID] = INDEXABLE_RES[n].xmlResId;
- ref[COLUMN_INDEX_XML_RES_CLASS_NAME] = null;
- ref[COLUMN_INDEX_XML_RES_ICON_RESID] = INDEXABLE_RES[n].iconResId;
- ref[COLUMN_INDEX_XML_RES_INTENT_ACTION] = "android.intent.action.MAIN";
- ref[COLUMN_INDEX_XML_RES_INTENT_TARGET_PACKAGE] = "com.android.phone";
- ref[COLUMN_INDEX_XML_RES_INTENT_TARGET_CLASS] = INDEXABLE_RES[n].className;
- cursor.addRow(ref);
- }
- return cursor;
- }
-
- @Override
- public Cursor queryRawData(String[] projection) {
- MatrixCursor cursor = new MatrixCursor(INDEXABLES_RAW_COLUMNS);
- Context context = getContext();
- String title = context.getString(R.string.carrier_settings_euicc);
- cursor.newRow()
- .add(RawData.COLUMN_RANK, 0)
- .add(RawData.COLUMN_TITLE, title)
- .add(
- RawData.COLUMN_KEYWORDS,
- context.getString(R.string.keywords_carrier_settings_euicc))
- .add(RawData.COLUMN_SCREEN_TITLE, title)
- .add(RawData.COLUMN_KEY, "esim_list_profile")
- .add(
- RawData.COLUMN_INTENT_ACTION,
- EuiccManager.ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS)
- .add(
- RawData.COLUMN_INTENT_TARGET_PACKAGE,
- context.getPackageName());
- return cursor;
- }
-
- @Override
- public Cursor queryNonIndexableKeys(String[] projection) {
- final long uidToken = Binder.clearCallingIdentity();
- try {
- MatrixCursor cursor = new MatrixCursor(NON_INDEXABLES_KEYS_COLUMNS);
-
- if (!mUserManager.isAdminUser()) {
- final String[] values = new String[]{"preferred_network_mode_key",
- "button_roaming_key", "cdma_lte_data_service_key", "enhanced_4g_lte",
- "button_apn_key", "button_carrier_sel_key", "carrier_settings_key",
- "cdma_system_select_key", "esim_list_profile", "mobile_data_enable",
- "data_usage_summary", "wifi_calling_key", "video_calling_key"};
- for (String nik : values) {
- cursor.addRow(createNonIndexableRow(nik));
- }
- } else {
- if (isEuiccSettingsHidden()) {
- cursor.addRow(createNonIndexableRow(ESIM_LIST_PROFILE_KEY));
- }
-
- if (isEnhanced4gLteHidden()) {
- cursor.addRow(createNonIndexableRow(ENHANCED_4G_LTE_KEY));
- }
-
- if (isWifiCallingHidden()) {
- cursor.addRow(createNonIndexableRow(WIFI_CALLING_KEY));
- }
- }
-
- // enabled_networks button and preferred_network_mode button share the same title
- // "Preferred network type"and are mutual exclusive. Thus we remove one from search
- // result to avoid duplicate search result.
- // TODO: b/63381516 all hidden buttons should dynamically be removed from search result.
- cursor.addRow(createNonIndexableRow("enabled_networks_key" /* key */));
- cursor.addRow(createNonIndexableRow("carrier_settings_euicc_key" /* key */));
- cursor.addRow(createNonIndexableRow("advanced_options" /* key */));
- return cursor;
- } finally {
- Binder.restoreCallingIdentity(uidToken);
- }
- }
-
- @VisibleForTesting boolean isEuiccSettingsHidden() {
- return !MobileNetworkSettings.showEuiccSettings(getContext());
- }
-
- @VisibleForTesting boolean isEnhanced4gLteHidden() {
- return MobileNetworkSettings.hideEnhanced4gLteSettings(getContext());
- }
-
- boolean isWifiCallingHidden() {
- return !MobileNetworkSettings.isWifiCallingEnabled(getContext());
- }
-
- private Object[] createNonIndexableRow(String key) {
- final Object[] ref = new Object[NON_INDEXABLES_KEYS_COLUMNS.length];
- ref[COLUMN_INDEX_NON_INDEXABLE_KEYS_KEY_VALUE] = key;
- return ref;
- }
-}
diff --git a/src/com/android/phone/PhoneUtils.java b/src/com/android/phone/PhoneUtils.java
index d3f780f..e46cfc0 100644
--- a/src/com/android/phone/PhoneUtils.java
+++ b/src/com/android/phone/PhoneUtils.java
@@ -25,9 +25,11 @@
import android.net.Uri;
import android.os.Handler;
import android.os.Message;
+import android.os.PersistableBundle;
import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.telecom.VideoProfile;
+import android.telephony.CarrierConfigManager;
import android.telephony.PhoneNumberUtils;
import android.telephony.SubscriptionManager;
import android.text.TextUtils;
@@ -53,6 +55,7 @@
import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.TelephonyCapabilities;
import com.android.phone.CallGatewayManager.RawGatewayInfo;
+import com.android.phone.settings.SuppServicesUiUtil;
import java.util.Arrays;
import java.util.List;
@@ -383,6 +386,22 @@
text = null;
break;
case COMPLETE:
+ PersistableBundle b = null;
+ if (SubscriptionManager.isValidSubscriptionId(phone.getSubId())) {
+ b = app.getCarrierConfigForSubId(
+ phone.getSubId());
+ } else {
+ b = app.getCarrierConfig();
+ }
+
+ if (b.getBoolean(CarrierConfigManager.KEY_USE_CALLER_ID_USSD_BOOL)) {
+ text = SuppServicesUiUtil.handleCallerIdUssdResponse(app, context, phone,
+ mmiCode);
+ if (mmiCode.getMessage() != null && !text.equals(mmiCode.getMessage())) {
+ break;
+ }
+ }
+
if (app.getPUKEntryActivity() != null) {
// if an attempt to unPUK the device was made, we specify
// the title and the message here.
@@ -429,7 +448,7 @@
app.setPukEntryProgressDialog(pd);
} else if ((app.getPUKEntryActivity() != null) && (state == MmiCode.State.FAILED)) {
- createUssdDialog(app, context, text,
+ createUssdDialog(app, context, text, phone,
WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
// In case of failure to unlock, we'll need to reset the
// PUK unlock activity, so that the user may try again.
@@ -444,7 +463,7 @@
// A USSD in a pending state means that it is still
// interacting with the user.
if (state != MmiCode.State.PENDING) {
- createUssdDialog(app, context, text,
+ createUssdDialog(app, context, text, phone,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
} else {
log("displayMMIComplete: USSD code has requested user input. Constructing input "
@@ -559,8 +578,17 @@
}
}
- private static void createUssdDialog(PhoneGlobals app, Context context, CharSequence text,
- int windowType) {
+ /**
+ * It displays the message dialog for user about the mmi code result message.
+ *
+ * @param app This is {@link PhoneGlobals}
+ * @param context Context to get strings.
+ * @param text This is message's result.
+ * @param phone This is phone to create sssd dialog.
+ * @param windowType The new window type. {@link WindowManager.LayoutParams}.
+ */
+ public static void createUssdDialog(PhoneGlobals app, Context context, CharSequence text,
+ Phone phone, int windowType) {
log("displayMMIComplete: MMI code has finished running.");
log("displayMMIComplete: Extended NW displayMMIInitiate (" + text + ")");
@@ -594,6 +622,13 @@
.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,
+ phone.getCarrierName()));
+ } else {
+ sUssdDialog
+ .setTitle(app.getResources().getString(R.string.default_carrier_mmi_msg_title));
+ }
sUssdMsg.insert(0, text);
sUssdDialog.setMessage(sUssdMsg.toString());
sUssdDialog.show();
diff --git a/src/com/android/phone/RestrictedPreference.java b/src/com/android/phone/RestrictedPreference.java
deleted file mode 100644
index b8b6fe7..0000000
--- a/src/com/android/phone/RestrictedPreference.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (C) 2018 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 com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
-import android.content.Context;
-import android.preference.Preference;
-import android.preference.PreferenceScreen;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.TextView;
-
-import com.android.settingslib.RestrictedLockUtils;
-
-/**
- * Preference class that supports being disabled by a device admin.
- *
- * <p>This class is a mimic of ../../../frameworks/base/packages/SettingsLib/src/com/android
- * /settingslib/RestrictedPreference.java,
- * but support framework {@link Preference}.
- */
-public class RestrictedPreference extends Preference {
- private final Context mContext;
-
- private boolean mDisabledByAdmin;
- private EnforcedAdmin mEnforcedAdmin;
-
- public RestrictedPreference(Context context, AttributeSet attrs,
- int defStyleAttr, int defStyleRes) {
- super(context, attrs, defStyleAttr, defStyleRes);
- mContext = context;
-
- setLayoutResource(com.android.settingslib.R.layout.preference_two_target);
- setWidgetLayoutResource(R.layout.restricted_icon);
- }
-
- public RestrictedPreference(Context context, AttributeSet attrs, int defStyleAttr) {
- this(context, attrs, defStyleAttr, 0);
- }
-
- public RestrictedPreference(Context context, AttributeSet attrs) {
- this(context, attrs, android.R.attr.preferenceStyle);
- }
-
- public RestrictedPreference(Context context) {
- this(context, null);
- }
-
- @Override
- public void performClick(PreferenceScreen preferenceScreen) {
- if (mDisabledByAdmin) {
- RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext, mEnforcedAdmin);
- } else {
- super.performClick(preferenceScreen);
- }
- }
-
- @Override
- protected void onBindView(View view) {
- super.onBindView(view);
-
- final View divider = view.findViewById(com.android.settingslib.R.id.two_target_divider);
- final View widgetFrame = view.findViewById(android.R.id.widget_frame);
- final View restrictedIcon = view.findViewById(R.id.restricted_icon);
- final TextView summaryView = view.findViewById(android.R.id.summary);
- if (divider != null) {
- divider.setVisibility(mDisabledByAdmin ? View.VISIBLE : View.GONE);
- }
- if (widgetFrame != null) {
- widgetFrame.setVisibility(mDisabledByAdmin ? View.VISIBLE : View.GONE);
- }
- if (restrictedIcon != null) {
- restrictedIcon.setVisibility(mDisabledByAdmin ? View.VISIBLE : View.GONE);
- }
- if (summaryView != null && mDisabledByAdmin) {
- summaryView.setText(com.android.settingslib.R.string.disabled_by_admin_summary_text);
- summaryView.setVisibility(View.VISIBLE);
- }
-
- if (mDisabledByAdmin) {
- view.setEnabled(true);
- }
- }
-
- @Override
- public void setEnabled(boolean enabled) {
- if (enabled && mDisabledByAdmin) {
- setDisabledByAdmin(null);
- return;
- }
- super.setEnabled(enabled);
- }
-
- /**
- * Disable this preference based on the enforce admin.
- *
- * @param admin Details of the admin who enforced the restriction. If it is {@code null}, then
- * this preference will be enabled. Otherwise, it will be disabled.
- */
- public void setDisabledByAdmin(EnforcedAdmin admin) {
- final boolean disabled = admin != null;
- mEnforcedAdmin = admin;
- boolean changed = false;
- if (mDisabledByAdmin != disabled) {
- mDisabledByAdmin = disabled;
- changed = true;
- }
- setEnabled(!disabled);
- if (changed) {
- notifyChanged();
- }
- }
-}
diff --git a/src/com/android/phone/RestrictedSwitchPreference.java b/src/com/android/phone/RestrictedSwitchPreference.java
deleted file mode 100644
index ba6b65e..0000000
--- a/src/com/android/phone/RestrictedSwitchPreference.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.content.Context;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.preference.PreferenceScreen;
-import android.preference.SwitchPreference;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.TextView;
-
-import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
-public class RestrictedSwitchPreference extends SwitchPreference {
- private final Context mContext;
- private boolean mDisabledByAdmin;
- private final int mSwitchWidgetResId;
-
- public RestrictedSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr,
- int defStyleRes) {
- super(context, attrs, defStyleAttr, defStyleRes);
- mSwitchWidgetResId = getWidgetLayoutResource();
- mContext = context;
- }
-
- public RestrictedSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) {
- this(context, attrs, defStyleAttr, 0);
- }
-
- public RestrictedSwitchPreference(Context context, AttributeSet attrs) {
- this(context, attrs, com.android.internal.R.attr.switchPreferenceStyle);
- }
-
- public RestrictedSwitchPreference(Context context) {
- this(context, null);
- }
-
- @Override
- public void onBindView(View view) {
- super.onBindView(view);
- if (mDisabledByAdmin) {
- view.setEnabled(true);
- }
- final TextView summaryView = (TextView) view.findViewById(android.R.id.summary);
- if (summaryView != null && mDisabledByAdmin) {
- summaryView.setText(
- isChecked() ? R.string.enabled_by_admin : R.string.disabled_by_admin);
- summaryView.setVisibility(View.VISIBLE);
- }
- }
-
- public void checkRestrictionAndSetDisabled(String userRestriction) {
- UserManager um = UserManager.get(mContext);
- UserHandle user = UserHandle.of(um.getUserHandle());
- boolean disabledByAdmin = um.hasUserRestriction(userRestriction, user)
- && !um.hasBaseUserRestriction(userRestriction, user);
- setDisabledByAdmin(disabledByAdmin);
- }
-
- @Override
- public void setEnabled(boolean enabled) {
- if (enabled && mDisabledByAdmin) {
- setDisabledByAdmin(false);
- } else {
- super.setEnabled(enabled);
- }
- }
-
- public void setDisabledByAdmin(boolean disabled) {
- if (mDisabledByAdmin != disabled) {
- mDisabledByAdmin = disabled;
- setWidgetLayoutResource(disabled ? R.layout.restricted_icon : mSwitchWidgetResId);
- setEnabled(!disabled);
- }
- }
-
- @Override
- public void performClick(PreferenceScreen preferenceScreen) {
- if (mDisabledByAdmin) {
- RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext,
- new EnforcedAdmin());
- } else {
- super.performClick(preferenceScreen);
- }
- }
-}
diff --git a/src/com/android/phone/RoamingDialogFragment.java b/src/com/android/phone/RoamingDialogFragment.java
deleted file mode 100644
index 384a120..0000000
--- a/src/com/android/phone/RoamingDialogFragment.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.phone;
-
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.DialogFragment;
-import android.app.Fragment;
-import android.app.FragmentManager;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnClickListener;
-import android.os.Bundle;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-
-/**
- * A dialog fragment that asks the user if they are sure they want to turn on data roaming
- * to avoid accidental charges.
- */
-public class RoamingDialogFragment extends DialogFragment implements OnClickListener {
-
- public static final String SUB_ID_KEY = "sub_id_key";
-
- private CarrierConfigManager mCarrierConfigManager;
- private int mSubId;
-
- /**
- * The interface we expect a host activity to implement.
- */
- public interface RoamingDialogListener {
- void onPositiveButtonClick(DialogFragment dialog);
- }
-
- // the host activity which implements the listening interface
- private RoamingDialogListener mListener;
-
- @Override
- public void onAttach(Context context) {
- super.onAttach(context);
- Bundle args = getArguments();
- mSubId = args.getInt(SUB_ID_KEY);
- mCarrierConfigManager = new CarrierConfigManager(context);
-
- // Verify host activity implemented callback interface
- FragmentManager fragmentManager = getFragmentManager();
- Fragment fragment = fragmentManager.findFragmentById(R.id.network_setting_content);
- try {
- mListener = (RoamingDialogListener) fragment;
- } catch (ClassCastException e) {
- throw new ClassCastException(fragment.toString() +
- "must implement RoamingDialogListener");
- }
- }
-
- @Override
- public Dialog onCreateDialog(Bundle savedInstanceState) {
- AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
- int title = R.string.roaming_alert_title;
- PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
- if (carrierConfig != null && carrierConfig.getBoolean(
- CarrierConfigManager.KEY_CHECK_PRICING_WITH_CARRIER_FOR_DATA_ROAMING_BOOL)) {
- title = R.string.roaming_check_price_warning;
- }
- builder.setMessage(getResources().getString(R.string.roaming_warning))
- .setTitle(title)
- .setIconAttribute(android.R.attr.alertDialogIcon)
- .setPositiveButton(android.R.string.yes, this)
- .setNegativeButton(android.R.string.no, this);
- return builder.create();
- }
-
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // let the host know that the positive button has been clicked
- if (which == dialog.BUTTON_POSITIVE) {
- mListener.onPositiveButtonClick(this);
- }
- }
-}
diff --git a/src/com/android/phone/ShortcutViewUtils.java b/src/com/android/phone/ShortcutViewUtils.java
index 7e24c7a..8e5ab42 100644
--- a/src/com/android/phone/ShortcutViewUtils.java
+++ b/src/com/android/phone/ShortcutViewUtils.java
@@ -303,7 +303,7 @@
private static Map<Integer, List<EmergencyNumber>> getPromotedEmergencyNumberLists(
@NonNull TelephonyManager telephonyManager) {
Map<Integer, List<EmergencyNumber>> allLists =
- telephonyManager.getCurrentEmergencyNumberList();
+ telephonyManager.getEmergencyNumberList();
if (allLists == null || allLists.isEmpty()) {
Log.w(LOG_TAG, "Unable to retrieve emergency number lists!");
return new ArrayMap<>();
diff --git a/src/com/android/phone/SpecialCharSequenceMgr.java b/src/com/android/phone/SpecialCharSequenceMgr.java
index 5a5d488..514b2c9 100644
--- a/src/com/android/phone/SpecialCharSequenceMgr.java
+++ b/src/com/android/phone/SpecialCharSequenceMgr.java
@@ -23,12 +23,19 @@
import android.content.Intent;
import android.provider.Settings;
import android.telephony.PhoneNumberUtils;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.WindowManager;
+import com.android.internal.telephony.IccCardConstants;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.TelephonyCapabilities;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* Helper class to listen for some magic dialpad character sequences
* that are handled specially by the Phone app.
@@ -185,6 +192,40 @@
return false;
}
+ private static IccCardConstants.State getSimState(int slotId, Context context) {
+ final TelephonyManager tele = TelephonyManager.from(context);
+ int simState = tele.getSimState(slotId);
+ IccCardConstants.State state;
+ try {
+ state = IccCardConstants.State.intToState(simState);
+ } catch (IllegalArgumentException ex) {
+ Log.w(TAG, "Unknown sim state: " + simState);
+ state = IccCardConstants.State.UNKNOWN;
+ }
+ return state;
+ }
+
+ private static int getNextSubIdForState(IccCardConstants.State state, Context context) {
+ SubscriptionManager subscriptionManager = SubscriptionManager.from(context);
+ List<SubscriptionInfo> list = subscriptionManager.getActiveSubscriptionInfoList();
+ if (list == null) {
+ // getActiveSubscriptionInfoList was null callers expect an empty list.
+ list = new ArrayList<>();
+ }
+ int resultId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ int bestSlotId = Integer.MAX_VALUE; // Favor lowest slot first
+ for (int i = 0; i < list.size(); i++) {
+ final SubscriptionInfo info = list.get(i);
+ final int id = info.getSubscriptionId();
+ if (state == getSimState(info.getSimSlotIndex(), context)
+ && bestSlotId > info.getSimSlotIndex()) {
+ resultId = id;
+ bestSlotId = info.getSimSlotIndex();
+ }
+ }
+ return resultId;
+ }
+
static private boolean handlePinEntry(Context context, String input,
Activity pukInputActivity) {
// TODO: The string constants here should be removed in favor
@@ -193,7 +234,20 @@
if ((input.startsWith("**04") || input.startsWith("**05"))
&& input.endsWith("#")) {
PhoneGlobals app = PhoneGlobals.getInstance();
- Phone phone = PhoneGlobals.getPhone();
+ Phone phone;
+ int subId;
+ if (input.startsWith("**04")) {
+ subId = getNextSubIdForState(IccCardConstants.State.PIN_REQUIRED, context);
+ } else {
+ subId = getNextSubIdForState(IccCardConstants.State.PUK_REQUIRED, context);
+ }
+ if (SubscriptionManager.isValidSubscriptionId(subId)) {
+ log("get phone with subId: " + subId);
+ phone = PhoneGlobals.getPhone(subId);
+ } else {
+ log("get default phone");
+ phone = PhoneGlobals.getPhone();
+ }
boolean isMMIHandled = phone.handlePinMmi(input);
// if the PUK code is recognized then indicate to the
diff --git a/src/com/android/phone/TelephonyShellCommand.java b/src/com/android/phone/TelephonyShellCommand.java
index 956e0e2..a34abc0 100644
--- a/src/com/android/phone/TelephonyShellCommand.java
+++ b/src/com/android/phone/TelephonyShellCommand.java
@@ -53,6 +53,10 @@
private static final String IMS_GET_CARRIER_SERVICE = "get-ims-service";
private static final String IMS_ENABLE = "enable";
private static final String IMS_DISABLE = "disable";
+ // Used to disable or enable processing of conference event package data from the network.
+ // This is handy for testing scenarios where CEP data does not exist on a network which does
+ // support CEP data.
+ private static final String IMS_CEP = "conference-event-package";
private static final String SMS_GET_APPS = "get-apps";
private static final String SMS_GET_DEFAULT_APP = "get-default-app";
@@ -131,6 +135,8 @@
pw.println(" ims disable [-s SLOT_ID]");
pw.println(" disables IMS for the SIM slot specified, or for the default voice SIM");
pw.println(" slot if none is specified.");
+ pw.println(" ims conference-event-package [enable/disable]");
+ pw.println(" enables or disables handling or network conference event package data.");
}
private void onHelpSms() {
@@ -163,10 +169,10 @@
pw.println(" Add(-a), Clear(-c), Print (-p) or Remove(-r) the emergency number list in"
+ " the test mode");
pw.println(" -a <emergency number address>: add an emergency number address for the"
- + " test mode, only allows '0'-'9', '*', or '#'.");
+ + " test mode, only allows '0'-'9', '*', '#' or '+'.");
pw.println(" -c: clear the emergency number list in the test mode.");
pw.println(" -r <emergency number address>: remove an existing emergency number"
- + " address added by the test mode, only allows '0'-'9', '*', or '#'.");
+ + " address added by the test mode, only allows '0'-'9', '*', '#' or '+'.");
pw.println(" -p: get the full emergency number list in the test mode.");
}
@@ -190,6 +196,9 @@
case IMS_DISABLE: {
return handleDisableIms();
}
+ case IMS_CEP: {
+ return handleCepChange();
+ }
}
return -1;
@@ -208,7 +217,7 @@
String emergencyNumberCmd = getNextArgRequired();
if (emergencyNumberCmd == null
|| !EmergencyNumber.validateEmergencyNumberAddress(emergencyNumberCmd)) {
- errPw.println("An emergency number (only allow '0'-'9', '*', or '#') needs"
+ errPw.println("An emergency number (only allow '0'-'9', '*', '#' or '+') needs"
+ " to be specified after -a in the command ");
return -1;
}
@@ -243,7 +252,7 @@
String emergencyNumberCmd = getNextArgRequired();
if (emergencyNumberCmd == null
|| !EmergencyNumber.validateEmergencyNumberAddress(emergencyNumberCmd)) {
- errPw.println("An emergency number (only allow '0'-'9', '*', or '#') needs"
+ errPw.println("An emergency number (only allow '0'-'9', '*', '#' or '+') needs"
+ " to be specified after -r in the command ");
return -1;
}
@@ -466,6 +475,22 @@
return 0;
}
+ private int handleCepChange() {
+ Log.i(LOG_TAG, "handleCepChange");
+ String opt = getNextArg();
+ if (opt == null) {
+ return -1;
+ }
+ boolean isCepEnabled = opt.equals("enable");
+
+ try {
+ mInterface.setCepEnabled(isCepEnabled);
+ } catch (RemoteException e) {
+ return -1;
+ }
+ return 0;
+ }
+
private int getDefaultSlot() {
int slotId = SubscriptionManager.getDefaultVoicePhoneId();
if (slotId <= SubscriptionManager.INVALID_SIM_SLOT_INDEX
diff --git a/src/com/android/phone/TimeConsumingPreferenceActivity.java b/src/com/android/phone/TimeConsumingPreferenceActivity.java
index 354c4bb..8c5ae6d 100644
--- a/src/com/android/phone/TimeConsumingPreferenceActivity.java
+++ b/src/com/android/phone/TimeConsumingPreferenceActivity.java
@@ -222,7 +222,7 @@
finish();
}
- private void dismissDialogSafely(int id) {
+ protected void dismissDialogSafely(int id) {
try {
dismissDialog(id);
} catch (IllegalArgumentException e) {
diff --git a/src/com/android/phone/ecc/CountryEccInfo.java b/src/com/android/phone/ecc/CountryEccInfo.java
deleted file mode 100644
index bc7ec84..0000000
--- a/src/com/android/phone/ecc/CountryEccInfo.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2018 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.ecc;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-
-import java.util.Collection;
-
-/**
- * ECC info of a country.
- */
-public class CountryEccInfo {
- private final String mFallbackEcc;
- private final EccInfo[] mEccInfoList;
-
- public CountryEccInfo(String eccFallback, @NonNull Collection<EccInfo> eccInfoList) {
- mFallbackEcc = eccFallback;
- mEccInfoList = eccInfoList.toArray(new EccInfo[eccInfoList.size()]);
- }
-
- /**
- * @return fallback ECC, null if not available.
- */
- public @Nullable String getFallbackEcc() {
- return mFallbackEcc;
- }
-
- public @NonNull EccInfo[] getEccInfoList() {
- return mEccInfoList.clone();
- }
-}
diff --git a/src/com/android/phone/ecc/EccInfo.java b/src/com/android/phone/ecc/EccInfo.java
deleted file mode 100644
index a219bae..0000000
--- a/src/com/android/phone/ecc/EccInfo.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (C) 2018 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.ecc;
-
-import android.annotation.NonNull;
-
-import java.util.Collection;
-
-/**
- * Emergency call code info.
- */
-public class EccInfo {
- /**
- * ECC Types.
- */
- public enum Type {
- POLICE,
- AMBULANCE,
- FIRE,
- }
-
- private final String mNumber;
- private final Type[] mTypes;
-
- public EccInfo(@NonNull String number, @NonNull Type type) {
- mNumber = number;
- mTypes = new Type[]{ type };
- }
-
- public EccInfo(@NonNull String number, @NonNull Collection<Type> types) {
- mNumber = number;
- mTypes = types.toArray(new Type[types.size()]);
- }
-
- /**
- * @return ECC number.
- */
- public @NonNull String getNumber() {
- return mNumber;
- }
-
- /**
- * Check whether the ECC number has any matches to the target type.
- *
- * @param target The target type to check.
- * @return true if the target matches.
- */
- public boolean containsType(@NonNull Type target) {
- for (Type type : mTypes) {
- if (target.equals(type)) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Get the types of the ECC number.
- *
- * @return Copied types array.
- */
- public Type[] getTypes() {
- return mTypes.clone();
- }
-
- /**
- * Get how many types the ECC number is.
- *
- * @return Count of types.
- */
- public int getTypesCount() {
- return mTypes.length;
- }
-}
diff --git a/src/com/android/phone/ecc/EccInfoHelper.java b/src/com/android/phone/ecc/EccInfoHelper.java
deleted file mode 100644
index 875442a..0000000
--- a/src/com/android/phone/ecc/EccInfoHelper.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * Copyright (C) 2018 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.ecc;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.content.Context;
-import android.os.AsyncTask;
-import android.provider.Settings;
-import android.telephony.CellIdentityGsm;
-import android.telephony.CellIdentityLte;
-import android.telephony.CellIdentityWcdma;
-import android.telephony.CellInfo;
-import android.telephony.CellInfoGsm;
-import android.telephony.CellInfoLte;
-import android.telephony.CellInfoWcdma;
-import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
-import android.telephony.TelephonyManager;
-import android.text.TextUtils;
-import android.util.Log;
-import android.util.Pair;
-
-import com.android.internal.telephony.MccTable;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Helper for retrieve ECC info for current country.
- */
-public class EccInfoHelper {
- // Debug constants.
- private static final boolean DBG = false;
- private static final String LOG_TAG = "EccInfoHelper";
-
- // country ISO to ECC list data source
- private IsoToEccRepository mEccRepo;
-
- /**
- * Callback for {@link #getCountryEccInfoAsync}.
- */
- public interface CountryEccInfoResultCallback {
- /**
- * Called if successfully get country ECC info.
- *
- * @param iso Detected current country ISO.
- * @param countryEccInfo The EccInfo of current country.
- */
- void onSuccess(@NonNull String iso, @NonNull CountryEccInfo countryEccInfo);
-
- /**
- * Called if failed to get country ISO.
- */
- void onDetectCountryFailed();
-
- /**
- * Called if failed to get ECC info for given country ISO.
- *
- * @param iso Detected current country ISO.
- */
- void onRetrieveCountryEccInfoFailed(@NonNull String iso);
- }
-
- /**
- * Constructor of EccInfoHelper
- *
- * @param eccRepository A repository for ECC info, indexed by country ISO.
- */
- public EccInfoHelper(@NonNull IsoToEccRepository eccRepository) {
- mEccRepo = eccRepository;
- }
-
- /**
- * Get ECC info for current location, base on detected country ISO.
- * It's possible we cannot detect current country, ex. device is in airplane mode,
- * or there's no available base station near by.
- *
- * @param context The context used to access resources.
- * @param callback Callback for result.
- */
- public void getCountryEccInfoAsync(final @NonNull Context context,
- final CountryEccInfoResultCallback callback) {
- new AsyncTask<Void, Void, Pair<String, CountryEccInfo>>() {
- @Override
- protected Pair<String, CountryEccInfo> doInBackground(Void... voids) {
- String iso = getCurrentCountryIso(context);
- if (TextUtils.isEmpty(iso)) {
- return null;
- }
-
- CountryEccInfo dialableCountryEccInfo;
- try {
- // access data source in background thread to avoid possible file IO caused ANR.
- CountryEccInfo rawEccInfo = mEccRepo.getCountryEccInfo(context, iso);
- dialableCountryEccInfo = getDialableCountryEccInfo(rawEccInfo);
- } catch (IOException e) {
- Log.e(LOG_TAG, "Failed to retrieve ECC: " + e.getMessage());
- dialableCountryEccInfo = null;
- }
- return new Pair<>(iso, dialableCountryEccInfo);
- }
-
- @Override
- protected void onPostExecute(Pair<String, CountryEccInfo> result) {
- if (callback != null) {
- if (result == null) {
- callback.onDetectCountryFailed();
- } else {
- String iso = result.first;
- CountryEccInfo countryEccInfo = result.second;
- if (countryEccInfo == null) {
- callback.onRetrieveCountryEccInfoFailed(iso);
- } else {
- callback.onSuccess(iso, countryEccInfo);
- }
- }
- }
- }
- }.execute();
- }
-
- private @NonNull CountryEccInfo getDialableCountryEccInfo(CountryEccInfo countryEccInfo) {
- ArrayList<EccInfo> dialableECCList = new ArrayList<>();
- String dialableFallback = null;
-
- // filter out non-dialable ECC
- if (countryEccInfo != null) {
- for (EccInfo entry : countryEccInfo.getEccInfoList()) {
- if (PhoneNumberUtils.isEmergencyNumber(entry.getNumber())) {
- dialableECCList.add(entry);
- }
- }
- String defaultFallback = countryEccInfo.getFallbackEcc();
- if (PhoneNumberUtils.isEmergencyNumber(defaultFallback)) {
- dialableFallback = defaultFallback;
- }
- }
- return new CountryEccInfo(dialableFallback, dialableECCList);
- }
-
- private @Nullable String getCurrentCountryIso(@NonNull Context context) {
- // Do not detect country ISO if airplane mode is on
- int airplaneMode = Settings.System.getInt(context.getContentResolver(),
- Settings.Global.AIRPLANE_MODE_ON, 0);
- if (airplaneMode != 0) {
- Log.d(LOG_TAG, "Airplane mode is on, do not get country ISO.");
- return null;
- }
-
- TelephonyManager tm = (TelephonyManager) context.getSystemService(
- Context.TELEPHONY_SERVICE);
- String iso = tm.getNetworkCountryIso();
- if (DBG) Log.d(LOG_TAG, "Current country ISO is " + Rlog.pii(LOG_TAG, iso));
-
- if (TextUtils.isEmpty(iso)) {
- // XXX: according to ServiceStateTracker's implementation, retrieve cell info in a
- // thread other than TelephonyManager's main thread.
- String mcc = getCurrentMccFromCellInfo(context);
- iso = countryCodeForMcc(mcc);
- if (DBG) {
- Log.d(LOG_TAG, "Current mcc is " + Rlog.pii(LOG_TAG, mcc) + ", mapping to ISO: "
- + Rlog.pii(LOG_TAG, iso));
- }
- }
- return iso;
- }
-
- private String countryCodeForMcc(String mcc) {
- try {
- return MccTable.countryCodeForMcc(Integer.parseInt(mcc));
- } catch (NumberFormatException ex) {
- return "";
- }
- }
-
- // XXX: According to ServiceStateTracker implementation, to actually get current cell info,
- // this method must be called in a separate thread from ServiceStateTracker, which is the
- // main thread of Telephony service.
- private @Nullable String getCurrentMccFromCellInfo(@NonNull Context context) {
- // retrieve mcc info from base station even no SIM present.
- TelephonyManager tm = (TelephonyManager) context.getSystemService(
- Context.TELEPHONY_SERVICE);
- List<CellInfo> cellInfos = tm.getAllCellInfo();
- String mcc = null;
- if (cellInfos != null) {
- for (CellInfo ci : cellInfos) {
- if (ci instanceof CellInfoGsm) {
- CellInfoGsm cellInfoGsm = (CellInfoGsm) ci;
- CellIdentityGsm cellIdentityGsm = cellInfoGsm.getCellIdentity();
- mcc = cellIdentityGsm.getMccString();
- break;
- } else if (ci instanceof CellInfoWcdma) {
- CellInfoWcdma cellInfoWcdma = (CellInfoWcdma) ci;
- CellIdentityWcdma cellIdentityWcdma = cellInfoWcdma.getCellIdentity();
- mcc = cellIdentityWcdma.getMccString();
- break;
- } else if (ci instanceof CellInfoLte) {
- CellInfoLte cellInfoLte = (CellInfoLte) ci;
- CellIdentityLte cellIdentityLte = cellInfoLte.getCellIdentity();
- mcc = cellIdentityLte.getMccString();
- break;
- }
- }
- if (DBG) Log.d(LOG_TAG, "Retrieve MCC from cell info list: " + Rlog.pii(LOG_TAG, mcc));
- } else {
- Log.w(LOG_TAG, "Cannot get cell info list.");
- }
- return mcc;
- }
-}
diff --git a/src/com/android/phone/ecc/IsoToEccProtobufRepository.java b/src/com/android/phone/ecc/IsoToEccProtobufRepository.java
deleted file mode 100644
index d44de9a..0000000
--- a/src/com/android/phone/ecc/IsoToEccProtobufRepository.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (C) 2018 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.ecc;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.content.Context;
-import android.os.SystemClock;
-import android.util.ArrayMap;
-import android.util.ArraySet;
-import android.util.Log;
-
-import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.zip.GZIPInputStream;
-
-/**
- * Provide the mapping of country ISO to ECC. The data is stored in Protocol Buffers format,
- * compressed with GZIP and encoded to base64 string.
- */
-public class IsoToEccProtobufRepository implements IsoToEccRepository {
- private static final String LOG_TAG = "EccRepository";
-
- private Map<String, CountryEccInfo> mEccTable = null;
-
- @Override
- @Nullable
- public CountryEccInfo getCountryEccInfo(@NonNull Context context, @Nullable String iso)
- throws IOException {
- if (iso != null) {
- iso = iso.toUpperCase();
- } else {
- return null;
- }
-
- if (mEccTable == null) {
- mEccTable = initMappingTable(context);
- }
- return mEccTable.get(iso);
- }
-
- private Map<String, CountryEccInfo> initMappingTable(@NonNull Context context)
- throws IOException {
- ProtobufEccData.AllInfo allEccData = null;
-
- long startTime = SystemClock.uptimeMillis();
- allEccData = parseEccData(new BufferedInputStream(
- context.getAssets().open("eccdata")));
- long endTime = SystemClock.uptimeMillis();
-
- if (allEccData == null) {
- // Return an empty table.
- return new HashMap<>();
- }
-
- if (Log.isLoggable(LOG_TAG, Log.DEBUG)) {
- Log.d(LOG_TAG, "Loading time = " + (endTime - startTime) + "ms"
- + ", Country Count = " + allEccData.getCountriesCount()
- + ", initialized = " + allEccData.isInitialized());
- }
-
- // Convert to run-time data from Protobuf data.
- Map<String, CountryEccInfo> table = new HashMap<>();
- for (ProtobufEccData.CountryInfo countryData : allEccData.getCountriesList()) {
- if (countryData.hasIsoCode()) {
- CountryEccInfo countryInfo = loadCountryEccInfo(countryData);
- if (countryInfo != null) {
- table.put(countryData.getIsoCode().toUpperCase(), countryInfo);
- }
- }
- }
- return table;
- }
-
- private ProtobufEccData.AllInfo parseEccData(InputStream input) throws IOException {
- return ProtobufEccData.AllInfo.parseFrom(new GZIPInputStream(input));
- }
-
- private EccInfo loadEccInfo(String isoCode, ProtobufEccData.EccInfo eccData) {
- String phoneNumber = eccData.getPhoneNumber().trim();
- if (phoneNumber.isEmpty()) {
- Log.i(LOG_TAG, "Discard ecc " + phoneNumber
- + " for " + isoCode + " due to empty phone number");
- return null;
- }
-
- ArraySet<EccInfo.Type> eccTypes = new ArraySet<>(eccData.getTypesCount());
- for (ProtobufEccData.EccInfo.Type typeData : eccData.getTypesList()) {
- switch (typeData) {
- case POLICE:
- eccTypes.add(EccInfo.Type.POLICE);
- break;
- case AMBULANCE:
- eccTypes.add(EccInfo.Type.AMBULANCE);
- break;
- case FIRE:
- eccTypes.add(EccInfo.Type.FIRE);
- break;
- default:
- // Ignore unknown types.
- }
- }
-
- if (eccTypes.isEmpty()) {
- Log.i(LOG_TAG, "Discard ecc " + phoneNumber
- + " for " + isoCode + " due to no valid type");
- return null;
- }
- return new EccInfo(phoneNumber, eccTypes);
- }
-
- private CountryEccInfo loadCountryEccInfo(ProtobufEccData.CountryInfo countryData) {
- ArrayMap<String, EccInfo> eccInfoMap = new ArrayMap<>(countryData.getEccsCount());
- for (ProtobufEccData.EccInfo eccData : countryData.getEccsList()) {
- EccInfo eccInfo = loadEccInfo(countryData.getIsoCode(), eccData);
- String key = eccInfo.getNumber().trim();
- EccInfo existentEccInfo = eccInfoMap.get(key);
- if (existentEccInfo == null) {
- eccInfoMap.put(key, eccInfo);
- } else {
- // Merge types of duplicated ecc info objects.
- ArraySet<EccInfo.Type> eccTypes = new ArraySet<>(
- eccInfo.getTypesCount() + existentEccInfo.getTypesCount());
- for (EccInfo.Type type : eccInfo.getTypes()) {
- eccTypes.add(type);
- }
- for (EccInfo.Type type : existentEccInfo.getTypes()) {
- eccTypes.add(type);
- }
- eccInfoMap.put(key, new EccInfo(eccInfo.getNumber(), eccTypes));
- }
- }
-
- if (eccInfoMap.isEmpty() && !countryData.hasEccFallback()) {
- Log.i(LOG_TAG, "Discard empty data for " + countryData.getIsoCode());
- return null;
- }
- return new CountryEccInfo(countryData.getEccFallback(), eccInfoMap.values());
- }
-}
diff --git a/src/com/android/phone/ecc/IsoToEccRepository.java b/src/com/android/phone/ecc/IsoToEccRepository.java
deleted file mode 100644
index fd5ac83..0000000
--- a/src/com/android/phone/ecc/IsoToEccRepository.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2018 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.ecc;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.content.Context;
-
-import java.io.IOException;
-
-/**
- * Data source for country ISO to ECC info list mapping.
- */
-public interface IsoToEccRepository {
- /**
- * Get available emergency numbers for given country ISO. Because the possible of IO wait
- * (depends on the implementation), this method should not be called in the main thread.
- *
- * @param context The context used to access resources.
- * @param iso For which ECC info list is returned.
- * @return The ECC info of given ISO. Null if no match.
- * @throws IOException if an error occurs while initialize the repository or retrieving
- * the {@link CountryEccInfo}.
- */
- @Nullable CountryEccInfo getCountryEccInfo(@NonNull Context context, @Nullable String iso)
- throws IOException;
-}
diff --git a/src/com/android/phone/settings/AccessibilitySettingsFragment.java b/src/com/android/phone/settings/AccessibilitySettingsFragment.java
index d540fba..5a70fe2 100644
--- a/src/com/android/phone/settings/AccessibilitySettingsFragment.java
+++ b/src/com/android/phone/settings/AccessibilitySettingsFragment.java
@@ -28,11 +28,13 @@
import android.telephony.PhoneStateListener;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
+import android.text.TextUtils;
import android.util.Log;
import com.android.ims.ImsManager;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
+import com.android.internal.telephony.SubscriptionController;
import com.android.phone.PhoneGlobals;
import com.android.phone.R;
@@ -109,10 +111,14 @@
mButtonHac = null;
}
- if (PhoneGlobals.getInstance().phoneMgr
- .isRttSupported(SubscriptionManager.getDefaultVoiceSubscriptionId())) {
+ if (shouldShowRttSetting()) {
// TODO: this is going to be a on/off switch for now. Ask UX about how to integrate
// this settings with TTY
+ if (TelephonyManager.getDefault().isNetworkRoaming(
+ SubscriptionManager.getDefaultVoiceSubscriptionId())) {
+ mButtonRtt.setSummary(TextUtils.concat(getText(R.string.rtt_mode_summary), "\n",
+ getText(R.string.no_rtt_when_roaming)));
+ }
boolean rttOn = Settings.Secure.getInt(
mContext.getContentResolver(), Settings.Secure.RTT_CALLING_MODE, 0) != 0;
mButtonRtt.setChecked(rttOn);
@@ -151,19 +157,26 @@
Settings.System.putInt(mContext.getContentResolver(), Settings.System.HEARING_AID, hac);
// Update HAC Value in AudioManager.
- mAudioManager.setParameter(SettingsConstants.HAC_KEY,
- hac == SettingsConstants.HAC_ENABLED
- ? SettingsConstants.HAC_VAL_ON : SettingsConstants.HAC_VAL_OFF);
+ mAudioManager.setParameters(
+ SettingsConstants.HAC_KEY + "=" + (hac == SettingsConstants.HAC_ENABLED
+ ? SettingsConstants.HAC_VAL_ON : SettingsConstants.HAC_VAL_OFF));
return true;
} else if (preference == mButtonRtt) {
Log.i(LOG_TAG, "RTT setting changed -- now " + mButtonRtt.isChecked());
int rttMode = mButtonRtt.isChecked() ? 1 : 0;
Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.RTT_CALLING_MODE,
rttMode);
- // Update RTT config with IMS Manager
- ImsManager imsManager = ImsManager.getInstance(getContext(),
- SubscriptionManager.getDefaultVoicePhoneId());
- imsManager.setRttEnabled(mButtonRtt.isChecked());
+ // Update RTT config with IMS Manager if the always-on carrier config isn't set to true.
+ CarrierConfigManager configManager = (CarrierConfigManager) mContext.getSystemService(
+ Context.CARRIER_CONFIG_SERVICE);
+ for (int subId : SubscriptionController.getInstance().getActiveSubIdList(true)) {
+ if (!configManager.getConfigForSubId(subId).getBoolean(
+ CarrierConfigManager.KEY_IGNORE_RTT_MODE_SETTING_BOOL, false)) {
+ int phoneId = SubscriptionController.getInstance().getPhoneId(subId);
+ ImsManager imsManager = ImsManager.getInstance(getContext(), phoneId);
+ imsManager.setRttEnabled(mButtonRtt.isChecked());
+ }
+ }
return true;
}
@@ -192,6 +205,26 @@
return false;
}
+ private boolean shouldShowRttSetting() {
+ CarrierConfigManager configManager =
+ (CarrierConfigManager) mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE);
+ // Go through all the subs -- if we want to display the RTT setting for any of them, do
+ // display it.
+ for (int subId : SubscriptionController.getInstance().getActiveSubIdList(true)) {
+ // In order to display the setting, we want:
+ // 1. The subscription supports RTT
+ // 2. The subscription isn't configured by the carrier to have the setting always-on
+ // (see the documentation for the carrier config key)
+ if (PhoneGlobals.getInstance().phoneMgr.isRttSupported(subId)) {
+ if (!configManager.getConfigForSubId(subId).getBoolean(
+ CarrierConfigManager.KEY_IGNORE_RTT_MODE_SETTING_BOOL, false)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
/**
* Determines if the device supports TTY per carrier config.
* @return {@code true} if the carrier supports TTY, {@code false} otherwise.
diff --git a/src/com/android/phone/settings/PhoneAccountSettingsFragment.java b/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
index ca45b31..0846be1 100644
--- a/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
+++ b/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
@@ -1,5 +1,6 @@
package com.android.phone.settings;
+import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
@@ -7,6 +8,7 @@
import android.graphics.drawable.Icon;
import android.net.sip.SipManager;
import android.os.Bundle;
+import android.os.PersistableBundle;
import android.os.UserManager;
import android.preference.ListPreference;
import android.preference.Preference;
@@ -16,6 +18,7 @@
import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
+import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -35,6 +38,7 @@
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
+import java.util.stream.Collectors;
public class PhoneAccountSettingsFragment extends PreferenceFragment
implements Preference.OnPreferenceChangeListener,
@@ -43,7 +47,6 @@
private static final String ACCOUNTS_LIST_CATEGORY_KEY =
"phone_accounts_accounts_list_category_key";
- private static final String DEFAULT_OUTGOING_ACCOUNT_KEY = "default_outgoing_account";
private static final String ALL_CALLING_ACCOUNTS_KEY = "phone_accounts_all_calling_accounts";
private static final String SIP_SETTINGS_CATEGORY_PREF_KEY =
@@ -51,6 +54,12 @@
private static final String USE_SIP_PREF_KEY = "use_sip_calling_options_key";
private static final String SIP_RECEIVE_CALLS_PREF_KEY = "sip_receive_calls_key";
+ private static final String MAKE_AND_RECEIVE_CALLS_CATEGORY_KEY =
+ "make_and_receive_calls_settings_category_key";
+ private static final String DEFAULT_OUTGOING_ACCOUNT_KEY = "default_outgoing_account";
+ private static final String SMART_FORWARDING_CONFIGURATION_PREF_KEY =
+ "smart_forwarding_configuration_key";
+
private static final String LEGACY_ACTION_CONFIGURE_PHONE_ACCOUNT =
"android.telecom.action.CONNECTION_SERVICE_CONFIGURE";
@@ -73,6 +82,9 @@
private AccountSelectionPreference mDefaultOutgoingAccount;
private Preference mAllCallingAccounts;
+ private PreferenceCategory mMakeAndReceiveCallsCategory;
+ private boolean mMakeAndReceiveCallsCategoryPresent;
+
private ListPreference mUseSipCalling;
private SwitchPreference mSipReceiveCallsPreference;
private SipPreferences mSipPreferences;
@@ -136,7 +148,12 @@
getPreferenceScreen().findPreference(DEFAULT_OUTGOING_ACCOUNT_KEY);
mAllCallingAccounts = getPreferenceScreen().findPreference(ALL_CALLING_ACCOUNTS_KEY);
+ mMakeAndReceiveCallsCategory = (PreferenceCategory) getPreferenceScreen().findPreference(
+ MAKE_AND_RECEIVE_CALLS_CATEGORY_KEY);
+ mMakeAndReceiveCallsCategoryPresent = false;
+
updateAccounts();
+ updateMakeCallsOptions();
if (isPrimaryUser() && SipUtil.isVoipSupported(getActivity())) {
mSipPreferences = new SipPreferences(getActivity());
@@ -400,13 +417,14 @@
// Initialize the account list with the set of enabled & SIM accounts.
initAccountList(enabledAccounts);
- mDefaultOutgoingAccount.setListener(this);
// Only show the 'Make Calls With..." option if there are multiple accounts.
if (enabledAccounts.size() > 1) {
- mAccountList.addPreference(mDefaultOutgoingAccount);
+ mMakeAndReceiveCallsCategory.addPreference(mDefaultOutgoingAccount);
+ mMakeAndReceiveCallsCategoryPresent = true;
+ mDefaultOutgoingAccount.setListener(this);
updateDefaultOutgoingAccountsModel();
} else {
- mAccountList.removePreference(mDefaultOutgoingAccount);
+ mMakeAndReceiveCallsCategory.removePreference(mDefaultOutgoingAccount);
}
// If there are no third party (nonSim) accounts,
@@ -503,4 +521,79 @@
.getSystemService(Context.USER_SERVICE);
return userManager.isPrimaryUser();
}
+
+ private void updateMakeCallsOptions() {
+ if (mMakeAndReceiveCallsCategory == null) {
+ return;
+ }
+
+ Intent smartForwardingUiIntent = getLaunchSmartForwardingMenuIntent();
+ if (smartForwardingUiIntent != null) {
+ mMakeAndReceiveCallsCategory.findPreference(SMART_FORWARDING_CONFIGURATION_PREF_KEY)
+ .setIntent(smartForwardingUiIntent);
+ mMakeAndReceiveCallsCategoryPresent = true;
+ } else {
+ mMakeAndReceiveCallsCategory.removePreference(
+ getPreferenceScreen().findPreference(SMART_FORWARDING_CONFIGURATION_PREF_KEY));
+ }
+
+ if (!mMakeAndReceiveCallsCategoryPresent) {
+ getPreferenceScreen().removePreference(mMakeAndReceiveCallsCategory);
+ }
+ }
+
+ /**
+ * @return Smart forwarding configuration UI Intent when supported
+ */
+ private Intent getLaunchSmartForwardingMenuIntent() {
+ if (mTelephonyManager.getPhoneCount() <= 1) {
+ return null;
+ }
+
+ final CarrierConfigManager configManager = (CarrierConfigManager)
+ getActivity().getSystemService(Context.CARRIER_CONFIG_SERVICE);
+ if (configManager == null) {
+ return null;
+ }
+
+ List<SubscriptionInfo> subscriptions =
+ mSubscriptionManager.getActiveSubscriptionInfoList();
+ if ((subscriptions == null) || (subscriptions.size() <= 1)) {
+ return null;
+ }
+
+ List<String> componentNames = subscriptions
+ .stream()
+ .map(subInfo -> configManager.getConfigForSubId(subInfo.getSubscriptionId()))
+ .filter(bundle -> (bundle != null))
+ .map(bundle -> bundle.getString(
+ CarrierConfigManager.KEY_SMART_FORWARDING_CONFIG_COMPONENT_NAME_STRING))
+ .filter(componentName -> !TextUtils.isEmpty(componentName))
+ .collect(Collectors.toList());
+
+ String componentNameOfMenu = null;
+ for (String componentName : componentNames) {
+ if (componentNameOfMenu == null) {
+ componentNameOfMenu = componentName;
+ }
+ else if (!componentNameOfMenu.equals(componentName)) {
+ Log.w(LOG_TAG, "ignore smart forward component: " + componentName);
+ }
+ }
+
+ if (TextUtils.isEmpty(componentNameOfMenu)) {
+ return null;
+ }
+
+ Intent intent = new Intent(Intent.ACTION_MAIN);
+ intent.setComponent(ComponentName.unflattenFromString(componentNameOfMenu));
+
+ PackageManager pm = getActivity().getPackageManager();
+ List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
+ if (resolutions.size() == 0) {
+ intent = null; // set no intent if no package can handle it.
+ }
+
+ return intent;
+ }
}
diff --git a/src/com/android/phone/settings/PickSmsSubscriptionActivity.java b/src/com/android/phone/settings/PickSmsSubscriptionActivity.java
new file mode 100644
index 0000000..cfbce28
--- /dev/null
+++ b/src/com/android/phone/settings/PickSmsSubscriptionActivity.java
@@ -0,0 +1,149 @@
+/*
+ * Copyright (C) 2019 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.settings;
+
+import android.app.Activity;
+import android.content.ComponentName;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.RemoteException;
+import android.telephony.SubscriptionManager;
+import android.util.Log;
+
+import com.android.internal.telephony.IIntegerConsumer;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Trampolines a request to Settings to get the SMS subscription associated with an SmsManager
+ * operation.
+ *
+ * Since a Service can not start an Activity with
+ * {@link Activity#startActivityForResult(Intent, int)} and get a response (only Activities can
+ * handle the results), we have to "Trampoline" this operation by creating an empty Activity whose
+ * only job is to call startActivityForResult with the correct Intent and handle the result.
+ */
+// TODO: SmsManager should be constructed with an activity context so it can start as part of its
+// task and fall back to PickSmsSubscriptionActivity being called in PhoneInterfaceManager if not
+// called from an activity context.
+public class PickSmsSubscriptionActivity extends Activity {
+
+ private static final String LOG_TAG = "PickSmsSubActivity";
+
+ // Defined in Settings SimDialogActivity
+ private static final String RESULT_SUB_ID = "result_sub_id";
+ public static final String DIALOG_TYPE_KEY = "dialog_type";
+ public static final int SMS_PICK_FOR_MESSAGE = 4;
+
+ private static final ComponentName SETTINGS_SUB_PICK_ACTIVITY = new ComponentName(
+ "com.android.settings", "com.android.settings.sim.SimDialogActivity");
+
+ private static final List<IIntegerConsumer> sSmsPickPendingList = new ArrayList<>();
+
+ private static final int REQUEST_GET_SMS_SUB_ID = 1;
+
+ /**
+ * Adds a consumer to the list of pending results that will be accepted once the activity
+ * completes.
+ */
+ public static void addPendingResult(IIntegerConsumer consumer) {
+ synchronized (sSmsPickPendingList) {
+ sSmsPickPendingList.add(consumer);
+ }
+ Log.i(LOG_TAG, "queue pending result, token: " + consumer);
+ }
+
+ private static void sendResultAndClear(int resultId) {
+ // If the calling process died, just ignore callback.
+ synchronized (sSmsPickPendingList) {
+ for (IIntegerConsumer c : sSmsPickPendingList) {
+ try {
+ c.accept(resultId);
+ Log.i(LOG_TAG, "Result received, token: " + c + ", result: " + resultId);
+ } catch (RemoteException e) {
+ // The calling process died, skip this one.
+ }
+ }
+ sSmsPickPendingList.clear();
+ }
+ }
+
+ // Keep track if this activity has been stopped (i.e. user navigated away, power screen off,...)
+ // if so, treat it as the user navigating away and end the task if it is restarted without an
+ // onCreate/onNewIntent.
+ private boolean mPreviouslyStopped = false;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ mPreviouslyStopped = false;
+ }
+
+ @Override
+ protected void onNewIntent(Intent intent) {
+ mPreviouslyStopped = false;
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ // This is cause a little jank with the recents display, but there is no other way to handle
+ // the case where activity has stopped and we want to dismiss the dialog. We use the
+ // tag "excludeFromRecents", but in the cases where it is still shown, kill it in onResume.
+ if (mPreviouslyStopped) {
+ finishAndRemoveTask();
+ } else {
+ launchSmsPicker(new Intent(getIntent()));
+ }
+ }
+
+ @Override
+ protected void onStop() {
+ super.onStop();
+ // User navigated away from dialog, send invalid sub id result.
+ mPreviouslyStopped = true;
+ sendResultAndClear(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ // triggers cancelled result for onActivityResult
+ finishActivity(REQUEST_GET_SMS_SUB_ID);
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ if (requestCode == REQUEST_GET_SMS_SUB_ID) {
+ int result = data == null ? SubscriptionManager.INVALID_SUBSCRIPTION_ID :
+ data.getIntExtra(RESULT_SUB_ID, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ if (resultCode == Activity.RESULT_OK) {
+ sendResultAndClear(result);
+ } else {
+ sendResultAndClear(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ }
+ }
+ // This will be handled in onResume - we do not want to call this all the time here because
+ // we need to be able to restart if stopped and a new intent comes in via onNewIntent.
+ if (!mPreviouslyStopped) {
+ finishAndRemoveTask();
+ }
+ }
+
+ private void launchSmsPicker(Intent trampolineIntent) {
+ trampolineIntent.setComponent(SETTINGS_SUB_PICK_ACTIVITY);
+ // Remove this flag if it exists, we want the settings activity to be part of this task.
+ trampolineIntent.removeFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivityForResult(trampolineIntent, REQUEST_GET_SMS_SUB_ID);
+ }
+}
diff --git a/src/com/android/phone/settings/SuppServicesUiUtil.java b/src/com/android/phone/settings/SuppServicesUiUtil.java
new file mode 100644
index 0000000..4e9841f
--- /dev/null
+++ b/src/com/android/phone/settings/SuppServicesUiUtil.java
@@ -0,0 +1,244 @@
+/*
+ * Copyright (C) 2018 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.settings;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.WindowManager;
+
+import com.android.internal.telephony.MmiCode;
+import com.android.internal.telephony.Phone;
+import com.android.phone.CarrierXmlParser;
+import com.android.phone.GsmUmtsAdditionalCallOptions;
+import com.android.phone.GsmUmtsCallOptions;
+import com.android.phone.PhoneGlobals;
+import com.android.phone.PhoneUtils;
+import com.android.phone.R;
+
+import java.util.HashMap;
+
+/**
+ * Utility class to help supplementary service functions and UI.
+ */
+public class SuppServicesUiUtil {
+ static final String LOG_TAG = "SuppServicesUiUtil";
+
+ private static final String CLIR_ACTIVATE = "#31#";
+ private static final String CLIR_DEACTIVATE = "*31#";
+
+ /**
+ * show dialog for supplementary services over ut precaution.
+ *
+ * @param context The context.
+ * @param phone The Phone object.
+ * @param preferenceKey The preference's key.
+ */
+ public static Dialog showBlockingSuppServicesDialog(Context context, Phone phone,
+ String preferenceKey) {
+ if (context == null || phone == null) {
+ return null;
+ }
+
+ String message = makeMessage(context, preferenceKey, phone);
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(context);
+ DialogInterface.OnClickListener networkSettingsClickListener =
+ new Dialog.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ Intent intent = new Intent(Intent.ACTION_MAIN);
+ ComponentName mobileNetworkSettingsComponent = new ComponentName(
+ context.getString(R.string.mobile_network_settings_package),
+ context.getString(R.string.mobile_network_settings_class));
+ intent.setComponent(mobileNetworkSettingsComponent);
+ context.startActivity(intent);
+ }
+ };
+ return builder.setMessage(message)
+ .setNeutralButton(context.getResources().getString(
+ R.string.settings_label),
+ networkSettingsClickListener)
+ .setPositiveButton(context.getResources().getString(
+ R.string.supp_service_over_ut_precautions_dialog_dismiss), null)
+ .create();
+ }
+
+ private static String makeMessage(Context context, String preferenceKey, Phone phone) {
+ String message = "";
+ int simSlot = (phone.getPhoneId() == 0) ? 1 : 2;
+ String suppServiceName = getSuppServiceName(context, preferenceKey);
+
+ TelephonyManager telephonyManager =
+ (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+ boolean isRoaming = telephonyManager.isNetworkRoaming(phone.getSubId());
+ boolean isMultiSim = (telephonyManager.getSimCount() > 1);
+
+ if (!isMultiSim) {
+ if (isRoaming) {
+ message = context.getResources().getString(
+ R.string.supp_service_over_ut_precautions_roaming, suppServiceName);
+ } else {
+ message = context.getResources().getString(
+ R.string.supp_service_over_ut_precautions, suppServiceName);
+ }
+ } else {
+ if (isRoaming) {
+ message = context.getResources().getString(
+ R.string.supp_service_over_ut_precautions_roaming_dual_sim, suppServiceName,
+ simSlot);
+ } else {
+ message = context.getResources().getString(
+ R.string.supp_service_over_ut_precautions_dual_sim, suppServiceName,
+ simSlot);
+ }
+ }
+ return message;
+ }
+
+ private static String getSuppServiceName(Context context, String preferenceKey) {
+ String suppServiceName = "";
+ if (preferenceKey.equals(GsmUmtsCallOptions.CALL_FORWARDING_KEY)) {
+ suppServiceName = context.getResources().getString(R.string.labelCF);
+ } else if (preferenceKey.equals(GsmUmtsCallOptions.CALL_BARRING_KEY)) {
+ suppServiceName = context.getResources().getString(R.string.labelCallBarring);
+ } else if (preferenceKey.equals(GsmUmtsAdditionalCallOptions.BUTTON_CLIR_KEY)) {
+ suppServiceName = context.getResources().getString(R.string.labelCallerId);
+ } else if (preferenceKey.equals(GsmUmtsAdditionalCallOptions.BUTTON_CW_KEY)) {
+ suppServiceName = context.getResources().getString(R.string.labelCW);
+ }
+ return suppServiceName;
+ }
+
+ /**
+ * Check SS over Ut precautions in condition which is
+ * "mobile data button is off" or "Roaming button is off during roaming".
+ *
+ * @param context The context.
+ * @param phone The Phone object.
+ * @return "mobile data button is off" or "Roaming button is off during roaming", return true.
+ */
+ public static boolean isSsOverUtPrecautions(Context context, Phone phone) {
+ if (phone == null || context == null) {
+ return false;
+ }
+ return isMobileDataOff(context, phone) || isDataRoamingOffUnderRoaming(context, phone);
+ }
+
+ private static boolean isMobileDataOff(Context context, Phone phone) {
+ TelephonyManager telephonyManager =
+ (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+ return !telephonyManager.getDataEnabled(phone.getSubId());
+ }
+
+ private static boolean isDataRoamingOffUnderRoaming(Context context, Phone phone) {
+ TelephonyManager telephonyManager =
+ (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+ return telephonyManager.isNetworkRoaming(phone.getSubId())
+ && !phone.getDataRoamingEnabled();
+ }
+
+ /**
+ * To handle caller id's ussd response message which sets caller id activate or deactivate,
+ * and then sync caller id's ussd value to ss value if this command successful.
+ *
+ * @param context context to get strings.
+ * @param mmiCode MMI result.
+ * @return Text from response message is displayed on dialog .
+ * @hide
+ */
+ public static CharSequence handleCallerIdUssdResponse(PhoneGlobals app, Context context,
+ Phone phone, MmiCode mmiCode) {
+ if (TextUtils.isEmpty(mmiCode.getDialString())) {
+ return mmiCode.getMessage();
+ }
+
+ TelephonyManager telephonyManager = new TelephonyManager(context, phone.getSubId());
+ int carrierId = telephonyManager.getSimCarrierId();
+ if (carrierId == TelephonyManager.UNKNOWN_CARRIER_ID) {
+ return mmiCode.getMessage();
+ }
+
+ CarrierXmlParser carrierXmlParser = new CarrierXmlParser(context, carrierId);
+ CarrierXmlParser.SsEntry.SSAction ssAction = carrierXmlParser.getCallerIdUssdCommandAction(
+ mmiCode.getDialString());
+ Log.d(LOG_TAG, "handleCallerIdUssdResponse: ssAction =" + ssAction);
+
+ if (ssAction == CarrierXmlParser.SsEntry.SSAction.UNKNOWN) {
+ return mmiCode.getMessage();
+ }
+
+ HashMap<String, String> analysisResult = carrierXmlParser.getFeature(
+ CarrierXmlParser.FEATURE_CALLER_ID)
+ .getResponseSet(ssAction,
+ mmiCode.getMessage().toString());
+ Log.d(LOG_TAG, "handleCallerIdUssdResponse: analysisResult =" + analysisResult);
+ if (analysisResult.get(CarrierXmlParser.TAG_RESPONSE_STATUS).equals(
+ CarrierXmlParser.TAG_COMMAND_RESULT_DEFINITION_OK)) {
+
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ TelephonyManager.UssdResponseCallback ussdCallback =
+ new TelephonyManager.UssdResponseCallback() {
+ @Override
+ public void onReceiveUssdResponse(
+ final TelephonyManager telephonyManager,
+ String request, CharSequence response) {
+ Log.d(LOG_TAG, "handleCallerIdUssdResponse: response ="
+ + response.toString());
+ PhoneUtils.createUssdDialog(app, context, response.toString(),
+ phone, WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
+ }
+
+ @Override
+ public void onReceiveUssdResponseFailed(
+ final TelephonyManager telephonyManager,
+ String request, int failureCode) {
+ Log.d(LOG_TAG, "handleCallerIdUssdResponse: failureCode ="
+ + failureCode);
+ PhoneUtils.createUssdDialog(app, context,
+ context.getText(R.string.response_error),
+ phone, WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
+ }
+ };
+
+ String clir = "";
+ if (ssAction == CarrierXmlParser.SsEntry.SSAction.UPDATE_ACTIVATE) {
+ clir = CLIR_ACTIVATE;
+ } else {
+ clir = CLIR_DEACTIVATE;
+ }
+ TelephonyManager telephonyManager =
+ (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+ telephonyManager.sendUssdRequest(clir, ussdCallback, null);
+ }
+ }).start();
+
+ return "";
+ } else {
+ return context.getText(
+ com.android.internal.R.string.mmiError);
+ }
+ }
+}
diff --git a/src/com/android/services/telephony/ConferenceParticipantConnection.java b/src/com/android/services/telephony/ConferenceParticipantConnection.java
index 1f330f9..b1f1b23 100644
--- a/src/com/android/services/telephony/ConferenceParticipantConnection.java
+++ b/src/com/android/services/telephony/ConferenceParticipantConnection.java
@@ -53,10 +53,13 @@
* Creates a new instance.
*
* @param participant The conference participant to create the instance for.
+ * @param isRemotelyHosted {@code true} if this participant is part of a conference remotely
+ * hosted on another device, {@code false} otherwise.
*/
public ConferenceParticipantConnection(
com.android.internal.telephony.Connection parentConnection,
- ConferenceParticipant participant) {
+ ConferenceParticipant participant,
+ boolean isRemotelyHosted) {
mParentConnection = parentConnection;
@@ -66,7 +69,8 @@
address = null;
} else {
String countryIso = getCountryIso(parentConnection.getCall().getPhone());
- address = getParticipantAddress(participant.getHandle(), countryIso);
+ address = ConferenceParticipant.getParticipantAddress(participant.getHandle(),
+ countryIso);
}
setAddress(address, presentation);
setVideoState(parentConnection.getVideoState());
@@ -75,7 +79,7 @@
mUserEntity = participant.getHandle();
mEndpoint = participant.getEndpoint();
- setCapabilities();
+ setCapabilitiesAndProperties(isRemotelyHosted);
}
/**
@@ -147,71 +151,19 @@
}
/**
- * Configures the capabilities applicable to this connection. A
+ * Configures the capabilities and properties applicable to this connection. A
* conference participant can only be disconnected from a conference since there is not
* actual connection to the participant which could be split from the conference.
+ * @param isRemotelyHosted {@code true} if this participant is part of a conference hosted
+ * hosted on a remote device, {@code false} otherwise.
*/
- private void setCapabilities() {
+ private void setCapabilitiesAndProperties(boolean isRemotelyHosted) {
int capabilities = CAPABILITY_DISCONNECT_FROM_CONFERENCE;
setConnectionCapabilities(capabilities);
- }
-
-
- /**
- * Attempts to build a tel: style URI from a conference participant.
- * Conference event package data contains SIP URIs, so we try to extract the phone number and
- * format into a typical tel: style URI.
- *
- * @param address The conference participant's address.
- * @param countryIso The country ISO of the current subscription; used when formatting the
- * participant phone number to E.164 format.
- * @return The participant's address URI.
- */
- @VisibleForTesting
- public static Uri getParticipantAddress(Uri address, String countryIso) {
- if (address == null) {
- return address;
+ if (isRemotelyHosted) {
+ setConnectionProperties(PROPERTY_REMOTELY_HOSTED);
}
- // Even if address is already in tel: format, still parse it and rebuild.
- // This is to recognize tel URIs such as:
- // tel:6505551212;phone-context=ims.mnc012.mcc034.3gppnetwork.org
-
- // Conference event package participants are identified using SIP URIs (see RFC3261).
- // A valid SIP uri has the format: sip:user:password@host:port;uri-parameters?headers
- // Per RFC3261, the "user" can be a telephone number.
- // For example: sip:1650555121;phone-context=blah.com@host.com
- // In this case, the phone number is in the user field of the URI, and the parameters can be
- // ignored.
- //
- // A SIP URI can also specify a phone number in a format similar to:
- // sip:+1-212-555-1212@something.com;user=phone
- // In this case, the phone number is again in user field and the parameters can be ignored.
- // We can get the user field in these instances by splitting the string on the @, ;, or :
- // and looking at the first found item.
- String number = address.getSchemeSpecificPart();
- if (TextUtils.isEmpty(number)) {
- return address;
- }
-
- String numberParts[] = number.split("[@;:]");
- if (numberParts.length == 0) {
- return address;
- }
- number = numberParts[0];
-
- // Attempt to format the number in E.164 format and use that as part of the TEL URI.
- // RFC2806 recommends to format telephone numbers using E.164 since it is independent of
- // how the dialing of said numbers takes place.
- // If conversion to E.164 fails, the returned value is null. In that case, fallback to the
- // number which was in the CEP data.
- String formattedNumber = null;
- if (!TextUtils.isEmpty(countryIso)) {
- formattedNumber = PhoneNumberUtils.formatNumberToE164(number, countryIso);
- }
-
- return Uri.fromParts(PhoneAccount.SCHEME_TEL,
- formattedNumber != null ? formattedNumber : number, null);
}
/**
@@ -231,7 +183,7 @@
SubscriptionInfo subInfo = TelecomAccountRegistry.getInstance(null).
getSubscriptionManager().getActiveSubscriptionInfo(subId);
- if (subInfo == null) {
+ if (subInfo == null || TextUtils.isEmpty(subInfo.getCountryIso())) {
return null;
}
// The SubscriptionInfo reports ISO country codes in lower case. Convert to upper case,
diff --git a/src/com/android/services/telephony/DisconnectCauseUtil.java b/src/com/android/services/telephony/DisconnectCauseUtil.java
index 8ef9565..4a5fb4a 100644
--- a/src/com/android/services/telephony/DisconnectCauseUtil.java
+++ b/src/com/android/services/telephony/DisconnectCauseUtil.java
@@ -18,10 +18,14 @@
import android.content.Context;
import android.media.ToneGenerator;
+import android.os.PersistableBundle;
import android.telecom.DisconnectCause;
+import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
import com.android.internal.telephony.CallFailCause;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneFactory;
import com.android.phone.ImsUtil;
import com.android.phone.PhoneGlobals;
import com.android.phone.common.R;
@@ -102,7 +106,7 @@
telephonyPerciseDisconnectCause),
toTelecomDisconnectCauseDescription(context, telephonyDisconnectCause, phoneId),
toTelecomDisconnectReason(context,telephonyDisconnectCause, reason, phoneId),
- toTelecomDisconnectCauseTone(telephonyDisconnectCause));
+ toTelecomDisconnectCauseTone(telephonyDisconnectCause, phoneId));
}
/**
@@ -166,6 +170,8 @@
case android.telephony.DisconnectCause.POWER_OFF:
case android.telephony.DisconnectCause.LOW_BATTERY:
case android.telephony.DisconnectCause.DIAL_LOW_BATTERY:
+ case android.telephony.DisconnectCause.EMERGENCY_CALL_OVER_WFC_NOT_AVAILABLE:
+ case android.telephony.DisconnectCause.WFC_SERVICE_NOT_AVAILABLE_IN_THIS_LOCATION:
case android.telephony.DisconnectCause.SERVER_ERROR:
case android.telephony.DisconnectCause.SERVER_UNREACHABLE:
case android.telephony.DisconnectCause.TIMED_OUT:
@@ -193,6 +199,7 @@
case android.telephony.DisconnectCause.WIFI_LOST:
case android.telephony.DisconnectCause.IMS_ACCESS_BLOCKED:
case android.telephony.DisconnectCause.IMS_SIP_ALTERNATE_EMERGENCY_CALL:
+ case android.telephony.DisconnectCause.MEDIA_TIMEOUT:
return DisconnectCause.ERROR;
case android.telephony.DisconnectCause.DIALED_MMI:
@@ -253,6 +260,10 @@
resourceId = R.string.callFailed_NetworkBusy;
break;
+ case android.telephony.DisconnectCause.IMS_ACCESS_BLOCKED:
+ resourceId = R.string.callFailed_NetworkCongested;
+ break;
+
case android.telephony.DisconnectCause.CONGESTION:
resourceId = R.string.callFailed_congestion;
break;
@@ -352,6 +363,12 @@
case android.telephony.DisconnectCause.OTASP_PROVISIONING_IN_PROCESS:
resourceId = R.string.callFailed_otasp_provisioning_in_process;
break;
+ case android.telephony.DisconnectCause.EMERGENCY_CALL_OVER_WFC_NOT_AVAILABLE:
+ resourceId = R.string.callFailed_emergency_call_over_wfc_not_available;
+ break;
+ case android.telephony.DisconnectCause.WFC_SERVICE_NOT_AVAILABLE_IN_THIS_LOCATION:
+ resourceId = R.string.callFailed_wfc_service_not_available_in_this_location;
+ break;
default:
break;
}
@@ -565,6 +582,10 @@
resourceId = R.string.callFailed_NetworkBusy;
break;
+ case android.telephony.DisconnectCause.IMS_ACCESS_BLOCKED:
+ resourceId = R.string.callFailed_NetworkCongested;
+ break;
+
case android.telephony.DisconnectCause.FDN_BLOCKED:
resourceId = R.string.callFailed_fdn_only;
break;
@@ -735,6 +756,12 @@
case android.telephony.DisconnectCause.OTASP_PROVISIONING_IN_PROCESS:
resourceId = R.string.callFailed_otasp_provisioning_in_process;
break;
+ case android.telephony.DisconnectCause.EMERGENCY_CALL_OVER_WFC_NOT_AVAILABLE:
+ resourceId = R.string.callFailed_emergency_call_over_wfc_not_available;
+ break;
+ case android.telephony.DisconnectCause.WFC_SERVICE_NOT_AVAILABLE_IN_THIS_LOCATION:
+ resourceId = R.string.callFailed_wfc_service_not_available_in_this_location;
+ break;
default:
break;
}
@@ -784,11 +811,22 @@
/**
* Returns the tone to play for the disconnect cause, or UNKNOWN if none should be played.
*/
- private static int toTelecomDisconnectCauseTone(int telephonyDisconnectCause) {
- switch (telephonyDisconnectCause) {
- case android.telephony.DisconnectCause.BUSY:
+ private static int toTelecomDisconnectCauseTone(int telephonyDisconnectCause, int phoneId) {
+ Phone phone = PhoneFactory.getPhone(phoneId);
+ PersistableBundle config;
+ if (phone != null) {
+ config = PhoneGlobals.getInstance().getCarrierConfigForSubId(phone.getSubId());
+ } else {
+ config = PhoneGlobals.getInstance().getCarrierConfig();
+ }
+ int[] busyToneArray = config.getIntArray(
+ CarrierConfigManager.KEY_DISCONNECT_CAUSE_PLAY_BUSYTONE_INT_ARRAY);
+ for (int busyTone : busyToneArray) {
+ if (busyTone == telephonyDisconnectCause) {
return ToneGenerator.TONE_SUP_BUSY;
-
+ }
+ }
+ switch (telephonyDisconnectCause) {
case android.telephony.DisconnectCause.CONGESTION:
return ToneGenerator.TONE_SUP_CONGESTION;
diff --git a/src/com/android/services/telephony/GsmConnection.java b/src/com/android/services/telephony/GsmConnection.java
index 999c6f5..47434c0 100644
--- a/src/com/android/services/telephony/GsmConnection.java
+++ b/src/com/android/services/telephony/GsmConnection.java
@@ -72,9 +72,8 @@
int capabilities = super.buildConnectionCapabilities();
capabilities |= CAPABILITY_MUTE;
// Overwrites TelephonyConnection.buildConnectionCapabilities() and resets the hold options
- // because all GSM calls should hold, even if the carrier config option is set to not show
- // hold for IMS calls.
- if (!shouldTreatAsEmergencyCall()) {
+ // because all GSM calls should hold.
+ if (!shouldTreatAsEmergencyCall() && !isImsConnection()) {
capabilities |= CAPABILITY_SUPPORT_HOLD;
if (isHoldable() && (getState() == STATE_ACTIVE || getState() == STATE_HOLDING)) {
capabilities |= CAPABILITY_HOLD;
diff --git a/src/com/android/services/telephony/ImsConference.java b/src/com/android/services/telephony/ImsConference.java
index cada504..5617334 100644
--- a/src/com/android/services/telephony/ImsConference.java
+++ b/src/com/android/services/telephony/ImsConference.java
@@ -110,6 +110,25 @@
handleOriginalConnectionChange();
}
}
+
+ /**
+ * Handles changes to conference participant data as reported by the conference host
+ * connection.
+ *
+ * @param c The connection.
+ * @param participants The participant information.
+ */
+ @Override
+ public void onConferenceParticipantsChanged(android.telecom.Connection c,
+ List<ConferenceParticipant> participants) {
+
+ if (c == null || participants == null) {
+ return;
+ }
+ Log.v(this, "onConferenceParticipantsChanged: %d participants", participants.size());
+ TelephonyConnection telephonyConnection = (TelephonyConnection) c;
+ handleConferenceParticipantsUpdate(telephonyConnection, participants);
+ }
};
/**
@@ -140,25 +159,6 @@
setDisconnected(disconnectCause);
}
- /**
- * Handles changes to conference participant data as reported by the conference host
- * connection.
- *
- * @param c The connection.
- * @param participants The participant information.
- */
- @Override
- public void onConferenceParticipantsChanged(android.telecom.Connection c,
- List<ConferenceParticipant> participants) {
-
- if (c == null || participants == null) {
- return;
- }
- Log.v(this, "onConferenceParticipantsChanged: %d participants", participants.size());
- TelephonyConnection telephonyConnection = (TelephonyConnection) c;
- handleConferenceParticipantsUpdate(telephonyConnection, participants);
- }
-
@Override
public void onVideoStateChanged(android.telecom.Connection c, int videoState) {
Log.d(this, "onVideoStateChanged video state %d", videoState);
@@ -209,6 +209,11 @@
Log.v(this, "onExtrasRemoved: c=" + c + " key=" + keys);
removeExtras(keys);
}
+
+ @Override
+ public void onConnectionEvent(Connection c, String event, Bundle extras) {
+ sendConnectionEvent(event, extras);
+ }
};
/**
@@ -254,6 +259,8 @@
private boolean mCouldManageConference;
private FeatureFlagProxy mFeatureFlagProxy;
private boolean mIsEmulatingSinglePartyCall = false;
+ private boolean mIsUsingSimCallManager = false;
+
/**
* Where {@link #mIsEmulatingSinglePartyCall} is {@code true}, contains the
* {@link ConferenceParticipantConnection#getUserEntity()} and
@@ -388,6 +395,9 @@
Connection.PROPERTY_IS_EXTERNAL_CALL,
can(properties, Connection.PROPERTY_IS_EXTERNAL_CALL));
+ conferenceProperties = changeBitmask(conferenceProperties,
+ Connection.PROPERTY_REMOTELY_HOSTED, !isConferenceHost());
+
return conferenceProperties;
}
@@ -611,6 +621,7 @@
private void updateManageConference() {
boolean couldManageConference = can(Connection.CAPABILITY_MANAGE_CONFERENCE);
boolean canManageConference = mFeatureFlagProxy.isUsingSinglePartyCallEmulation()
+ && mIsEmulatingSinglePartyCall
? mConferenceParticipantConnections.size() > 1
: mConferenceParticipantConnections.size() != 0;
Log.v(this, "updateManageConference was :%s is:%s", couldManageConference ? "Y" : "N",
@@ -670,6 +681,19 @@
mConferenceHostAddress = new Uri[hostAddresses.size()];
mConferenceHostAddress = hostAddresses.toArray(mConferenceHostAddress);
+
+ mIsUsingSimCallManager = mTelecomAccountRegistry.isUsingSimCallManager(
+ mConferenceHostPhoneAccountHandle);
+ }
+
+ // If the conference is not hosted on this device copy over the address and presentation and
+ // connect times so that we can log this appropriately in the call log.
+ if (!isConferenceHost()) {
+ setAddress(mConferenceHost.getAddress(), mConferenceHost.getAddressPresentation());
+ setCallerDisplayName(mConferenceHost.getCallerDisplayName(),
+ mConferenceHost.getCallerDisplayNamePresentation());
+ setConnectionStartElapsedRealTime(mConferenceHost.getConnectElapsedTimeMillis());
+ setConnectionTime(mConferenceHost.getConnectTimeMillis());
}
mConferenceHost.addConnectionListener(mConferenceHostListener);
@@ -720,12 +744,16 @@
// Determine if the conference event package represents a single party conference.
// A single party conference is one where there is no other participant other than the
// conference host and one other participant.
+ // Note: We consider 0 to still be a single party conference since some carriers will
+ // send a conference event package with JUST the host in it when the conference is
+ // disconnected. We don't want to change back to conference mode prior to disconnection
+ // or we will not log the call.
boolean isSinglePartyConference = participants.stream()
.filter(p -> {
Pair<Uri, Uri> pIdent = new Pair<>(p.getHandle(), p.getEndpoint());
return !Objects.equals(mHostParticipantIdentity, pIdent);
})
- .count() == 1;
+ .count() <= 1;
// We will only process the CEP data if:
// 1. We're not emulating a single party call.
@@ -801,7 +829,7 @@
// If the single party call emulation fature flag is enabled, we can potentially treat
// the conference as a single party call when there is just one participant.
if (mFeatureFlagProxy.isUsingSinglePartyCallEmulation()) {
- if (oldParticipantCount > 1 && newParticipantCount == 1) {
+ if (oldParticipantCount != 1 && newParticipantCount == 1) {
// If number of participants goes to 1, emulate a single party call.
startEmulatingSinglePartyCall();
} else if (mIsEmulatingSinglePartyCall && !isSinglePartyConference) {
@@ -824,8 +852,18 @@
* 1. Tell telecom we're a conference again.
* 2. Restore {@link Connection#CAPABILITY_MANAGE_CONFERENCE} capability.
* 3. Null out the name/address.
+ *
+ * Note: Single party call emulation is disabled if the conference is taking place via a
+ * sim call manager. Emulating a single party call requires properties of the conference to be
+ * changed (connect time, address, conference state) which cannot be guaranteed to be relayed
+ * correctly by the sim call manager to Telecom.
*/
private void stopEmulatingSinglePartyCall() {
+ if (mIsUsingSimCallManager) {
+ Log.i(this, "stopEmulatingSinglePartyCall: using sim call manager; skip.");
+ return;
+ }
+
Log.i(this, "stopEmulatingSinglePartyCall: conference now has more than one"
+ " participant; make it look conference-like again.");
mIsEmulatingSinglePartyCall = false;
@@ -862,8 +900,18 @@
* 2. Tell telecom we're not a conference.
* 3. Remove {@link Connection#CAPABILITY_MANAGE_CONFERENCE} capability.
* 4. Set the name/address to that of the single participant.
+ *
+ * Note: Single party call emulation is disabled if the conference is taking place via a
+ * sim call manager. Emulating a single party call requires properties of the conference to be
+ * changed (connect time, address, conference state) which cannot be guaranteed to be relayed
+ * correctly by the sim call manager to Telecom.
*/
private void startEmulatingSinglePartyCall() {
+ if (mIsUsingSimCallManager) {
+ Log.i(this, "startEmulatingSinglePartyCall: using sim call manager; skip.");
+ return;
+ }
+
Log.i(this, "startEmulatingSinglePartyCall: conference has a single "
+ "participant; downgrade to single party call.");
@@ -917,7 +965,8 @@
// Create and add the new connection in holding state so that it does not become the
// active call.
ConferenceParticipantConnection connection = new ConferenceParticipantConnection(
- parent.getOriginalConnection(), participant);
+ parent.getOriginalConnection(), participant,
+ !isConferenceHost() /* isRemotelyHosted */);
connection.addConnectionListener(mParticipantListener);
if (participant.getConnectTime() == 0) {
connection.setConnectTimeMillis(parent.getConnectTimeMillis());
@@ -926,6 +975,10 @@
connection.setConnectTimeMillis(participant.getConnectTime());
connection.setConnectionStartElapsedRealTime(participant.getConnectElapsedTime());
}
+ // Indicate whether this is an MT or MO call to Telecom; the participant has the cached
+ // data from the time of merge.
+ connection.setCallDirection(participant.getCallDirection());
+
Log.i(this, "createConferenceParticipantConnection: participant=%s, connection=%s",
participant, connection);
@@ -1259,4 +1312,12 @@
return isMaximumConferenceSizeEnforced()
&& getNumberOfParticipants() >= getMaximumConferenceSize();
}
+
+ /**
+ * @return {@code True} if the ImsConference is emulating single party call.
+ */
+ @VisibleForTesting
+ public boolean isEmulatingSinglePartyCall() {
+ return mIsEmulatingSinglePartyCall;
+ }
}
diff --git a/src/com/android/services/telephony/ImsConferenceController.java b/src/com/android/services/telephony/ImsConferenceController.java
index 9902700..b193c7f 100644
--- a/src/com/android/services/telephony/ImsConferenceController.java
+++ b/src/com/android/services/telephony/ImsConferenceController.java
@@ -53,6 +53,21 @@
}
};
+ private final TelephonyConnection.TelephonyConnectionListener mTelephonyConnectionListener =
+ new TelephonyConnection.TelephonyConnectionListener() {
+ @Override
+ public void onConferenceStarted() {
+ Log.v(this, "onConferenceStarted");
+ recalculate();
+ }
+
+ @Override
+ public void onConferenceSupportedChanged(Connection c, boolean isConferenceSupported) {
+ Log.v(this, "onConferenceSupportedChanged");
+ recalculate();
+ }
+ };
+
/**
* Ims conference controller connection listener. Used to respond to changes in state of the
* Telephony connections the controller is aware of.
@@ -74,18 +89,6 @@
public void onDestroyed(Connection connection) {
remove(connection);
}
-
- @Override
- public void onConferenceStarted() {
- Log.v(this, "onConferenceStarted");
- recalculate();
- }
-
- @Override
- public void onConferenceSupportedChanged(Connection c, boolean isConferenceSupported) {
- Log.v(this, "onConferenceSupportedChanged");
- recalculate();
- }
};
/**
@@ -149,6 +152,7 @@
mTelephonyConnections.add(connection);
connection.addConnectionListener(mConnectionListener);
+ connection.addTelephonyConnectionListener(mTelephonyConnectionListener);
recalculateConference();
}
@@ -176,6 +180,10 @@
}
connection.removeConnectionListener(mConnectionListener);
+ if (connection instanceof TelephonyConnection) {
+ TelephonyConnection telephonyConnection = (TelephonyConnection) connection;
+ telephonyConnection.removeTelephonyConnectionListener(mTelephonyConnectionListener);
+ }
mTelephonyConnections.remove(connection);
recalculateConferenceable();
}
@@ -388,6 +396,7 @@
// Use the "Other" disconnect cause to ensure the call is logged to the call log but the
// disconnect tone is not played.
connection.removeConnectionListener(mConnectionListener);
+ connection.removeTelephonyConnectionListener(mTelephonyConnectionListener);
connection.clearOriginalConnection();
connection.setDisconnected(new DisconnectCause(DisconnectCause.OTHER,
android.telephony.DisconnectCause.toString(
diff --git a/src/com/android/services/telephony/RadioOnHelper.java b/src/com/android/services/telephony/RadioOnHelper.java
index 288c72c..85f94ab 100644
--- a/src/com/android/services/telephony/RadioOnHelper.java
+++ b/src/com/android/services/telephony/RadioOnHelper.java
@@ -53,7 +53,7 @@
return;
}
mListeners = new ArrayList<>(2);
- for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
+ for (int i = 0; i < TelephonyManager.getDefault().getMaxPhoneCount(); i++) {
mListeners.add(new RadioOnStateListener());
}
}
@@ -76,7 +76,7 @@
mCallback = callback;
mInProgressListeners.clear();
mIsRadioOnCallingEnabled = false;
- for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
+ for (int i = 0; i < TelephonyManager.getDefault().getMaxPhoneCount(); i++) {
Phone phone = PhoneFactory.getPhone(i);
if (phone == null) {
continue;
diff --git a/src/com/android/services/telephony/TelecomAccountRegistry.java b/src/com/android/services/telephony/TelecomAccountRegistry.java
index 2324a16..1e681e8 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -21,6 +21,7 @@
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.database.ContentObserver;
import android.graphics.Bitmap;
@@ -55,6 +56,7 @@
import com.android.ims.ImsManager;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
+import com.android.internal.telephony.SubscriptionController;
import com.android.phone.PhoneGlobals;
import com.android.phone.PhoneUtils;
import com.android.phone.R;
@@ -83,6 +85,7 @@
private final PstnPhoneCapabilitiesNotifier mPhoneCapabilitiesNotifier;
private boolean mIsEmergency;
private boolean mIsRttCapable;
+ private boolean mIsEmergencyPreferred;
private MmTelFeature.MmTelCapabilities mMmTelCapabilities;
private ImsMmTelManager.CapabilityCallback mMmtelCapabilityCallback;
private ImsMmTelManager mMmTelManager;
@@ -95,6 +98,7 @@
private boolean mIsVideoConferencingSupported;
private boolean mIsMergeOfWifiCallsAllowedWhenVoWifiOff;
private boolean mIsManageImsConferenceCallSupported;
+ private boolean mIsUsingSimCallManager;
private boolean mIsShowPreciseFailedCause;
AccountEntry(Phone phone, boolean isEmergency, boolean isDummy) {
@@ -115,7 +119,10 @@
}
try {
- mMmTelManager = ImsMmTelManager.createForSubscriptionId(getSubId());
+ if (mPhone.getContext().getPackageManager().hasSystemFeature(
+ PackageManager.FEATURE_TELEPHONY_IMS)) {
+ mMmTelManager = ImsMmTelManager.createForSubscriptionId(getSubId());
+ }
} catch (IllegalArgumentException e) {
Log.i(this, "Not registering MmTel capabilities listener because the subid '"
+ getSubId() + "' is invalid: " + e.getMessage());
@@ -267,6 +274,11 @@
capabilities |= PhoneAccount.CAPABILITY_PLACE_EMERGENCY_CALLS;
}
+ mIsEmergencyPreferred = isEmergencyPreferredAccount(subId, mActiveDataSubscriptionId);
+ if (mIsEmergencyPreferred) {
+ capabilities |= PhoneAccount.CAPABILITY_EMERGENCY_PREFERRED;
+ }
+
if (isRttCurrentlySupported()) {
capabilities |= PhoneAccount.CAPABILITY_RTT;
mIsRttCapable = true;
@@ -339,6 +351,7 @@
mIsMergeOfWifiCallsAllowedWhenVoWifiOff =
isCarrierMergeOfWifiCallsAllowedWhenVoWifiOff();
mIsManageImsConferenceCallSupported = isCarrierManageImsConferenceCallSupported();
+ mIsUsingSimCallManager = isCarrierUsingSimCallManager();
mIsShowPreciseFailedCause = isCarrierShowPreciseFailedCause();
if (isEmergency && mContext.getResources().getBoolean(
@@ -406,6 +419,59 @@
}
/**
+ * In some cases, we need to try sending the emergency call over this PhoneAccount due to
+ * restrictions and limitations in MSIM configured devices. This includes the following:
+ * 1) The device does not support GNSS SUPL requests on the non-DDS subscription due to
+ * modem limitations. If the device does not support SUPL on non-DDS, we need to try the
+ * emergency call on the DDS subscription first to allow for SUPL to be completed.
+ *
+ * @return true if Telecom should prefer this PhoneAccount, false if there is no preference
+ * needed.
+ */
+ private boolean isEmergencyPreferredAccount(int subId, int activeDataSubId) {
+ Log.d(this, "isEmergencyPreferredAccount: subId=" + subId + ", activeData="
+ + activeDataSubId);
+ final boolean gnssSuplRequiresDefaultData = mContext.getResources().getBoolean(
+ R.bool.config_gnss_supl_requires_default_data_for_emergency);
+ if (!gnssSuplRequiresDefaultData) {
+ Log.d(this, "isEmergencyPreferredAccount: Device does not require preference.");
+ // No preference is necessary.
+ return false;
+ }
+
+ SubscriptionController controller = SubscriptionController.getInstance();
+ if (controller == null) {
+ Log.d(this, "isEmergencyPreferredAccount: SubscriptionController not available.");
+ return false;
+ }
+ // Only set an emergency preference on devices with multiple active subscriptions
+ // (include opportunistic subscriptions) in this check.
+ // API says never null, but this can return null in testing.
+ int[] activeSubIds = controller.getActiveSubIdList(false);
+ if (activeSubIds == null || activeSubIds.length <= 1) {
+ Log.d(this, "isEmergencyPreferredAccount: one or less active subscriptions.");
+ return false;
+ }
+ // Check to see if this PhoneAccount is associated with the default Data subscription.
+ if (!SubscriptionManager.isValidSubscriptionId(subId)) {
+ Log.d(this, "isEmergencyPreferredAccount: provided subId " + subId + "is not "
+ + "valid.");
+ return false;
+ }
+ int userDefaultData = controller.getDefaultDataSubId();
+ boolean isActiveDataValid = SubscriptionManager.isValidSubscriptionId(activeDataSubId);
+ boolean isActiveDataOpportunistic = isActiveDataValid
+ && controller.isOpportunistic(activeDataSubId);
+ // compare the activeDataSubId to the subId specified only if it is valid and not an
+ // opportunistic subscription (only supports data). If not, use the current default
+ // defined by the user.
+ Log.d(this, "isEmergencyPreferredAccount: userDefaultData=" + userDefaultData
+ + ", isActiveDataOppurtunistic=" + isActiveDataOpportunistic);
+ return subId == ((isActiveDataValid && !isActiveDataOpportunistic) ? activeDataSubId :
+ userDefaultData);
+ }
+
+ /**
* Determines from carrier configuration whether pausing of IMS video calls is supported.
*
* @return {@code true} if pausing IMS video calls is supported.
@@ -517,6 +583,19 @@
}
/**
+ * Determines from carrier config whether the carrier uses a sim call manager.
+ *
+ * @return {@code true} if the carrier uses a sim call manager,
+ * {@code false} otherwise.
+ */
+ private boolean isCarrierUsingSimCallManager() {
+ PersistableBundle b =
+ PhoneGlobals.getInstance().getCarrierConfigForSubId(mPhone.getSubId());
+ return !TextUtils.isEmpty(
+ b.getString(CarrierConfigManager.KEY_DEFAULT_SIM_CALL_MANAGER_STRING));
+ }
+
+ /**
* Determines from carrier config whether showing percise call diconnect cause to user
* is supported.
*
@@ -592,6 +671,15 @@
}
}
+ public void updateDefaultDataSubId(int activeDataSubId) {
+ boolean isEmergencyPreferred = isEmergencyPreferredAccount(mPhone.getSubId(),
+ activeDataSubId);
+ if (isEmergencyPreferred != mIsEmergencyPreferred) {
+ Log.i(this, "updateDefaultDataSubId - changed, new value: " + isEmergencyPreferred);
+ mAccount = registerPstnPhoneAccount(mIsEmergency, mIsDummy);
+ }
+ }
+
/**
* Determines whether RTT is supported given the current state of the
* device.
@@ -658,6 +746,15 @@
}
/**
+ * Indicates whether this account uses a sim call manger.
+ * @return {@code true} if the account uses a sim call manager,
+ * {@code false} otherwise.
+ */
+ public boolean isUsingSimCallManager() {
+ return mIsUsingSimCallManager;
+ }
+
+ /**
* Indicates whether this account supports showing the precise call disconnect cause
* to user (i.e. conferencing).
* @return {@code true} if the account supports showing the precise call disconnect cause,
@@ -693,6 +790,7 @@
@Override
public void onSubscriptionsChanged() {
// Any time the SubscriptionInfo changes...rerun the setup
+ Log.i(this, "onSubscriptionsChanged - update accounts");
tearDownAccounts();
setupAccounts();
}
@@ -747,6 +845,16 @@
}
mServiceState = newState;
}
+
+ @Override
+ public void onActiveDataSubscriptionIdChanged(int subId) {
+ mActiveDataSubscriptionId = subId;
+ synchronized (mAccountsLock) {
+ for (AccountEntry account : mAccounts) {
+ account.updateDefaultDataSubId(mActiveDataSubscriptionId);
+ }
+ }
+ }
};
private static TelecomAccountRegistry sInstance;
@@ -757,6 +865,7 @@
private List<AccountEntry> mAccounts = new LinkedList<AccountEntry>();
private final Object mAccountsLock = new Object();
private int mServiceState = ServiceState.STATE_POWER_OFF;
+ private int mActiveDataSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
private boolean mIsPrimaryUser = true;
// TODO: Remove back-pointer from app singleton to Service, since this is not a preferred
@@ -928,7 +1037,7 @@
* @param handle The phone account handle to find the subscription address for.
* @return The address.
*/
- Uri getAddress(PhoneAccountHandle handle) {
+ public Uri getAddress(PhoneAccountHandle handle) {
synchronized (mAccountsLock) {
for (AccountEntry entry : mAccounts) {
if (entry.getPhoneAccountHandle().equals(handle)) {
@@ -940,6 +1049,24 @@
}
/**
+ * Returns whethere a the subscription associated with a {@link PhoneAccountHandle} is using a
+ * sim call manager.
+ *
+ * @param handle The phone account handle to find the subscription address for.
+ * @return {@code true} if a sim call manager is in use, {@code false} otherwise.
+ */
+ public boolean isUsingSimCallManager(PhoneAccountHandle handle) {
+ synchronized (mAccountsLock) {
+ for (AccountEntry entry : mAccounts) {
+ if (entry.getPhoneAccountHandle().equals(handle)) {
+ return entry.isUsingSimCallManager();
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
* Sets up all the phone accounts for SIMs on first boot.
*/
public void setupOnBoot() {
@@ -955,7 +1082,8 @@
// We also need to listen for changes to the service state (e.g. emergency -> in service)
// because this could signal a removal or addition of a SIM in a single SIM phone.
- mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_SERVICE_STATE);
+ mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_SERVICE_STATE
+ | PhoneStateListener.LISTEN_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGE);
// Listen for user switches. When the user switches, we need to ensure that if the current
// use is not the primary user we disable video calling.
@@ -1033,37 +1161,48 @@
// Go through SIM-based phones and register ourselves -- registering an existing account
// will cause the existing entry to be replaced.
Phone[] phones = PhoneFactory.getPhones();
- Log.d(this, "Found %d phones. Attempting to register.", phones.length);
+ Log.i(this, "setupAccounts: Found %d phones. Attempting to register.", phones.length);
final boolean phoneAccountsEnabled = mContext.getResources().getBoolean(
R.bool.config_pstn_phone_accounts_enabled);
synchronized (mAccountsLock) {
- if (phoneAccountsEnabled) {
- for (Phone phone : phones) {
- int subscriptionId = phone.getSubId();
- Log.d(this, "Phone with subscription id %d", subscriptionId);
- // setupAccounts can be called multiple times during service changes. Don't add an
- // account if the Icc has not been set yet.
- if (!SubscriptionManager.isValidSubscriptionId(subscriptionId)
- || phone.getFullIccSerialNumber() == null) return;
- // Don't add account if it's opportunistic subscription, which is considered
- // data only for now.
- SubscriptionInfo info = SubscriptionManager.from(mContext)
- .getActiveSubscriptionInfo(subscriptionId);
- if (info == null || info.isOpportunistic()) return;
+ try {
+ if (phoneAccountsEnabled) {
+ for (Phone phone : phones) {
+ int subscriptionId = phone.getSubId();
+ Log.i(this, "setupAccounts: Phone with subscription id %d", subscriptionId);
+ // setupAccounts can be called multiple times during service changes.
+ // Don't add an account if the Icc has not been set yet.
+ if (!SubscriptionManager.isValidSubscriptionId(subscriptionId)
+ || phone.getFullIccSerialNumber() == null) {
+ Log.d(this, "setupAccounts: skipping invalid subid %d", subscriptionId);
+ continue;
+ }
+ // Don't add account if it's opportunistic subscription, which is considered
+ // data only for now.
+ SubscriptionInfo info = SubscriptionManager.from(mContext)
+ .getActiveSubscriptionInfo(subscriptionId);
+ if (info == null || info.isOpportunistic()) {
+ Log.d(this, "setupAccounts: skipping unknown or opportunistic subid %d",
+ subscriptionId);
+ continue;
+ }
- mAccounts.add(new AccountEntry(phone, false /* emergency */,
- false /* isDummy */));
+ mAccounts.add(new AccountEntry(phone, false /* emergency */,
+ false /* isDummy */));
+ }
}
- }
-
- // If we did not list ANY accounts, we need to provide a "default" SIM account
- // for emergency numbers since no actual SIM is needed for dialing emergency
- // numbers but a phone account is.
- if (mAccounts.isEmpty()) {
- mAccounts.add(new AccountEntry(PhoneFactory.getDefaultPhone(), true /* emergency */,
- false /* isDummy */));
+ } finally {
+ // If we did not list ANY accounts, we need to provide a "default" SIM account
+ // for emergency numbers since no actual SIM is needed for dialing emergency
+ // numbers but a phone account is.
+ if (mAccounts.isEmpty()) {
+ Log.i(this, "setupAccounts: adding default");
+ mAccounts.add(
+ new AccountEntry(PhoneFactory.getDefaultPhone(), true /* emergency */,
+ false /* isDummy */));
+ }
}
// Add a fake account entry.
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index 7c09320..1601f00 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -26,8 +26,10 @@
import android.os.Message;
import android.os.PersistableBundle;
import android.telecom.CallAudioState;
+import android.telecom.Conference;
import android.telecom.ConferenceParticipant;
import android.telecom.Connection;
+import android.telecom.ConnectionService;
import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.telecom.StatusHints;
@@ -43,6 +45,7 @@
import android.util.Pair;
import com.android.ims.ImsCall;
+import com.android.internal.os.SomeArgs;
import com.android.internal.telephony.Call;
import com.android.internal.telephony.CallFailCause;
import com.android.internal.telephony.CallStateException;
@@ -98,6 +101,7 @@
private static final int MSG_CDMA_VOICE_PRIVACY_OFF = 16;
private static final int MSG_HANGUP = 17;
private static final int MSG_SET_CALL_RADIO_TECH = 18;
+ private static final int MSG_ON_CONNECTION_EVENT = 19;
private final Handler mHandler = new Handler(Looper.getMainLooper()) {
@Override
@@ -267,6 +271,15 @@
refreshDisableAddCall();
}
break;
+ case MSG_ON_CONNECTION_EVENT:
+ SomeArgs args = (SomeArgs) msg.obj;
+ try {
+ sendConnectionEvent((String) args.arg1, (Bundle) args.arg2);
+
+ } finally {
+ args.recycle();
+ }
+ break;
}
}
};
@@ -395,6 +408,10 @@
public abstract static class TelephonyConnectionListener {
public void onOriginalConnectionConfigured(TelephonyConnection c) {}
public void onOriginalConnectionRetry(TelephonyConnection c, boolean isPermanentFailure) {}
+ public void onConferenceParticipantsChanged(Connection c,
+ List<ConferenceParticipant> participants) {}
+ public void onConferenceStarted() {}
+ public void onConferenceSupportedChanged(Connection c, boolean isConferenceSupported) {}
}
private final PostDialListener mPostDialListener = new PostDialListener() {
@@ -554,7 +571,10 @@
*/
@Override
public void onConnectionEvent(String event, Bundle extras) {
- sendConnectionEvent(event, extras);
+ SomeArgs args = SomeArgs.obtain();
+ args.arg1 = event;
+ args.arg2 = extras;
+ mHandler.obtainMessage(MSG_ON_CONNECTION_EVENT, args).sendToTarget();
}
@Override
@@ -609,6 +629,7 @@
}
};
+ private TelephonyConnectionService mTelephonyConnectionService;
protected com.android.internal.telephony.Connection mOriginalConnection;
private Call.State mConnectionState = Call.State.IDLE;
private Bundle mOriginalConnectionExtras = new Bundle();
@@ -932,12 +953,6 @@
try {
Phone phone = mOriginalConnection.getCall().getPhone();
- // New behavior for IMS -- don't use the clunky switchHoldingAndActive logic.
- if (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_IMS) {
- ImsPhone imsPhone = (ImsPhone) phone;
- imsPhone.holdActiveCall();
- return;
- }
Call ringingCall = phone.getRingingCall();
// Although the method says switchHoldingAndActive, it eventually calls a RIL method
@@ -951,6 +966,12 @@
// could "fake" hold by silencing the audio and microphone streams for this call
// instead of actually putting it on hold.
if (ringingCall.getState() != Call.State.WAITING) {
+ // New behavior for IMS -- don't use the clunky switchHoldingAndActive logic.
+ if (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_IMS) {
+ ImsPhone imsPhone = (ImsPhone) phone;
+ imsPhone.holdActiveCall();
+ return;
+ }
phone.switchHoldingAndActive();
}
@@ -1145,7 +1166,8 @@
&& isShowingOriginalDialString()) {
Log.i(this, "new original dial string is null, convert to: "
+ mOriginalConnection.getOrigDialString());
- originalConnection.setConverted(mOriginalConnection.getOrigDialString());
+ originalConnection.restoreDialedNumberAfterConversion(
+ mOriginalConnection.getOrigDialString());
}
clearOriginalConnection();
@@ -1250,13 +1272,23 @@
*/
private void setTechnologyTypeExtra() {
if (getPhone() != null) {
- putExtra(TelecomManager.EXTRA_CALL_TECHNOLOGY_TYPE, getPhone().getPhoneType());
+ Bundle newExtras = getExtras();
+ if (newExtras == null) {
+ newExtras = new Bundle();
+ }
+ newExtras.putInt(TelecomManager.EXTRA_CALL_TECHNOLOGY_TYPE, getPhone().getPhoneType());
+ putExtras(newExtras);
}
}
private void refreshDisableAddCall() {
if (shouldSetDisableAddCallExtra()) {
- putExtra(Connection.EXTRA_DISABLE_ADD_CALL, true);
+ Bundle newExtras = getExtras();
+ if (newExtras == null) {
+ newExtras = new Bundle();
+ }
+ newExtras.putBoolean(Connection.EXTRA_DISABLE_ADD_CALL, true);
+ putExtras(newExtras);
} else {
removeExtras(Connection.EXTRA_DISABLE_ADD_CALL);
}
@@ -1744,8 +1776,8 @@
// To "optimize", we check here to see if there already exists any active calls. If so,
// we issue an update for those calls first to make sure we only have one top-level
// active call.
- if (getConnectionService() != null) {
- for (Connection current : getConnectionService().getAllConnections()) {
+ if (getTelephonyConnectionService() != null) {
+ for (Connection current : getTelephonyConnectionService().getAllConnections()) {
if (current != this && current instanceof TelephonyConnection) {
TelephonyConnection other = (TelephonyConnection) current;
if (other.getState() == STATE_ACTIVE) {
@@ -1772,9 +1804,10 @@
* @return {@code true} if the connection is video capable, {@code false} otherwise.
*/
private boolean isVideoCapable() {
- return can(mOriginalConnectionCapabilities, Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL)
- && can(mOriginalConnectionCapabilities,
- Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL);
+ return (mOriginalConnectionCapabilities & Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL)
+ == Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL
+ && (mOriginalConnectionCapabilities & Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL)
+ == Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL;
}
/**
@@ -1786,7 +1819,8 @@
* @return {@code true} if the connection is external, {@code false} otherwise.
*/
private boolean isExternalConnection() {
- return can(mOriginalConnectionCapabilities, Capability.IS_EXTERNAL_CONNECTION);
+ return (mOriginalConnectionCapabilities
+ & Capability.IS_EXTERNAL_CONNECTION) == Capability.IS_EXTERNAL_CONNECTION;
}
/**
@@ -1808,8 +1842,10 @@
* @return {@code true} if the connection is pullable, {@code false} otherwise.
*/
private boolean isPullable() {
- return can(mOriginalConnectionCapabilities, Capability.IS_EXTERNAL_CONNECTION)
- && can(mOriginalConnectionCapabilities, Capability.IS_PULLABLE);
+ return (mOriginalConnectionCapabilities & Capability.IS_EXTERNAL_CONNECTION)
+ == Capability.IS_EXTERNAL_CONNECTION
+ && (mOriginalConnectionCapabilities & Capability.IS_PULLABLE)
+ == Capability.IS_PULLABLE;
}
/**
@@ -1867,17 +1903,20 @@
public int applyOriginalConnectionCapabilities(int capabilities) {
// We only support downgrading to audio if both the remote and local side support
// downgrading to audio.
- boolean supportsDowngradeToAudio = can(mOriginalConnectionCapabilities,
- Capability.SUPPORTS_DOWNGRADE_TO_VOICE_LOCAL |
- Capability.SUPPORTS_DOWNGRADE_TO_VOICE_REMOTE);
+ int supportsDowngrade = Capability.SUPPORTS_DOWNGRADE_TO_VOICE_LOCAL
+ | Capability.SUPPORTS_DOWNGRADE_TO_VOICE_REMOTE;
+ boolean supportsDowngradeToAudio =
+ (mOriginalConnectionCapabilities & supportsDowngrade) == supportsDowngrade;
capabilities = changeBitmask(capabilities,
CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO, !supportsDowngradeToAudio);
capabilities = changeBitmask(capabilities, CAPABILITY_SUPPORTS_VT_REMOTE_BIDIRECTIONAL,
- can(mOriginalConnectionCapabilities, Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL));
+ (mOriginalConnectionCapabilities & Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL)
+ == Capability.SUPPORTS_VT_REMOTE_BIDIRECTIONAL);
- boolean isLocalVideoSupported = can(mOriginalConnectionCapabilities,
- Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL) && !mIsTtyEnabled;
+ boolean isLocalVideoSupported = (mOriginalConnectionCapabilities
+ & Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL)
+ == Capability.SUPPORTS_VT_LOCAL_BIDIRECTIONAL && !mIsTtyEnabled;
capabilities = changeBitmask(capabilities, CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL,
isLocalVideoSupported);
@@ -2203,9 +2242,10 @@
boolean isIms = phone.getPhoneType() == PhoneConstants.PHONE_TYPE_IMS;
boolean isVoWifiEnabled = false;
if (isIms) {
- ImsPhone imsPhone = (ImsPhone) phone;
isVoWifiEnabled = ImsUtil.isWfcEnabled(phone.getContext(), phone.getPhoneId());
}
+ boolean isRttMergeSupported = getCarrierConfig()
+ .getBoolean(CarrierConfigManager.KEY_ALLOW_MERGING_RTT_CALLS_BOOL);
PhoneAccountHandle phoneAccountHandle = isIms ? PhoneUtils
.makePstnPhoneAccountHandle(phone.getDefaultPhone())
: PhoneUtils.makePstnPhoneAccountHandle(phone);
@@ -2230,7 +2270,7 @@
if (mTreatAsEmergencyCall) {
isConferenceSupported = false;
Log.d(this, "refreshConferenceSupported = false; emergency call");
- } else if (isRtt()) {
+ } else if (isRtt() && !isRttMergeSupported) {
isConferenceSupported = false;
Log.d(this, "refreshConferenceSupported = false; rtt call");
} else if (!isConferencingSupported || isIms && !isImsConferencingSupported) {
@@ -2327,4 +2367,47 @@
sb.append("]");
return sb.toString();
}
+
+ public final void setTelephonyConnectionService(TelephonyConnectionService connectionService) {
+ mTelephonyConnectionService = connectionService;
+ }
+
+ public final TelephonyConnectionService getTelephonyConnectionService() {
+ return mTelephonyConnectionService;
+ }
+
+ /**
+ * Notifies listeners of a change to conference participant(s).
+ *
+ * @param conferenceParticipants The participants.
+ */
+ protected final void updateConferenceParticipants(
+ List<ConferenceParticipant> conferenceParticipants) {
+ for (TelephonyConnectionListener l : mTelephonyListeners) {
+ l.onConferenceParticipantsChanged(this, conferenceParticipants);
+ }
+ }
+
+ /**
+ * Called by a {@link ConnectionService} to notify Telecom that a {@link Conference#onMerge()}
+ * operation has started.
+ * <p>
+ */
+ protected void notifyConferenceStarted() {
+ for (TelephonyConnectionListener l : mTelephonyListeners) {
+ l.onConferenceStarted();
+ }
+ }
+
+ /**
+ * Notifies listeners when a change has occurred to the Connection which impacts its ability to
+ * be a part of a conference call.
+ * @param isConferenceSupported {@code true} if the connection supports being part of a
+ * conference call, {@code false} otherwise.
+ */
+ protected void notifyConferenceSupportedChanged(boolean isConferenceSupported) {
+ for (TelephonyConnectionListener l : mTelephonyListeners) {
+ l.onConferenceSupportedChanged(this, isConferenceSupported);
+ }
+ }
}
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index 6d7c1f0..5e3a899 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -16,6 +16,7 @@
package com.android.services.telephony;
+import android.annotation.NonNull;
import android.content.ActivityNotFoundException;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
@@ -24,6 +25,9 @@
import android.content.IntentFilter;
import android.net.Uri;
import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Looper;
import android.provider.Settings;
import android.telecom.Conference;
import android.telecom.Connection;
@@ -53,7 +57,9 @@
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
import com.android.internal.telephony.PhoneFactory;
+import com.android.internal.telephony.PhoneSwitcher;
import com.android.internal.telephony.RIL;
+import com.android.internal.telephony.SubscriptionController;
import com.android.internal.telephony.imsphone.ImsExternalCallTracker;
import com.android.internal.telephony.imsphone.ImsPhone;
import com.android.internal.telephony.imsphone.ImsPhoneConnection;
@@ -70,6 +76,8 @@
import java.util.List;
import java.util.Map;
import java.util.Queue;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.TimeUnit;
import java.util.regex.Pattern;
import javax.annotation.Nullable;
@@ -79,6 +87,10 @@
*/
public class TelephonyConnectionService extends ConnectionService {
+ // Timeout before we continue with the emergency call without waiting for DDS switch response
+ // from the modem.
+ private static final int DEFAULT_DATA_SWITCH_TIMEOUT_MS = 1000;
+
// If configured, reject attempts to dial numbers matching this pattern.
private static final Pattern CDMA_ACTIVATION_CODE_REGEX_PATTERN =
Pattern.compile("\\*228[0-9]{0,2}");
@@ -167,6 +179,8 @@
// destroyed.
@VisibleForTesting
public Pair<WeakReference<TelephonyConnection>, Queue<Phone>> mEmergencyRetryCache;
+ private Handler mDdsSwitchHandler;
+ private HandlerThread mHandlerThread;
/**
* Keeps track of the status of a SIM slot.
@@ -177,6 +191,8 @@
public int capabilities;
// By default, we will assume that the slots are not locked.
public boolean isLocked = false;
+ // Is the emergency number associated with the slot
+ public boolean hasDialedEmergencyNumber = false;
public SlotStatus(int slotId, int capabilities) {
this.slotId = slotId;
@@ -239,12 +255,12 @@
@Override
public boolean isCurrentEmergencyNumber(String number) {
- return mTelephonyManager.isCurrentEmergencyNumber(number);
+ return mTelephonyManager.isEmergencyNumber(number);
}
@Override
public Map<Integer, List<EmergencyNumber>> getCurrentEmergencyNumberList() {
- return mTelephonyManager.getCurrentEmergencyNumberList();
+ return mTelephonyManager.getEmergencyNumberList();
}
}
@@ -318,11 +334,17 @@
IntentFilter intentFilter = new IntentFilter(
TelecomManager.ACTION_TTY_PREFERRED_MODE_CHANGED);
registerReceiver(mTtyBroadcastReceiver, intentFilter);
+
+ mHandlerThread = new HandlerThread("DdsSwitchHandlerThread");
+ mHandlerThread.start();
+ Looper looper = mHandlerThread.getLooper();
+ mDdsSwitchHandler = new Handler(looper);
}
@Override
public boolean onUnbind(Intent intent) {
unregisterReceiver(mTtyBroadcastReceiver);
+ mHandlerThread.quitSafely();
return super.onUnbind(intent);
}
@@ -479,7 +501,10 @@
// it is a test emergency number and we have to wait for the device to move
// IN_SERVICE before the call can take place over normal routing.
return (phone.getState() == PhoneConstants.State.OFFHOOK)
- || serviceState == ServiceState.STATE_IN_SERVICE;
+ // Do not wait for voice in service on opportunistic SIMs.
+ || SubscriptionController.getInstance().isOpportunistic(
+ phone.getSubId())
+ || serviceState == ServiceState.STATE_IN_SERVICE;
}
}
});
@@ -502,22 +527,43 @@
final Phone phone = getPhoneForAccount(request.getAccountHandle(), isEmergencyNumber,
/* Note: when not an emergency, handle can be null for unknown callers */
handle == null ? null : handle.getSchemeSpecificPart());
- Connection resultConnection = getTelephonyConnection(request, numberToDial,
- isEmergencyNumber, handle, phone);
- // If there was a failure, the resulting connection will not be a TelephonyConnection,
- // so don't place the call!
- if (resultConnection instanceof TelephonyConnection) {
- if (request.getExtras() != null && request.getExtras().getBoolean(
- TelecomManager.EXTRA_USE_ASSISTED_DIALING, false)) {
- ((TelephonyConnection) resultConnection).setIsUsingAssistedDialing(true);
- }
- placeOutgoingConnection((TelephonyConnection) resultConnection, phone, request);
+ if (!isEmergencyNumber) {
+ final Connection resultConnection = getTelephonyConnection(request, numberToDial,
+ false, handle, phone);
+ return placeOutgoingConnection(request, resultConnection, phone);
+ } else {
+ final Connection resultConnection = getTelephonyConnection(request, numberToDial,
+ true, handle, phone);
+ mDdsSwitchHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ boolean result = delayDialForDdsSwitch(phone);
+ Log.i(this,
+ "onCreateOutgoingConn - delayDialForDdsSwitch result = " + result);
+ placeOutgoingConnection(request, resultConnection, phone);
+ }
+ });
+ return resultConnection;
}
- return resultConnection;
}
}
+ private Connection placeOutgoingConnection(ConnectionRequest request,
+ Connection resultConnection, Phone phone) {
+ // If there was a failure, the resulting connection will not be a TelephonyConnection,
+ // so don't place the call!
+ if (resultConnection instanceof TelephonyConnection) {
+ if (request.getExtras() != null && request.getExtras().getBoolean(
+ TelecomManager.EXTRA_USE_ASSISTED_DIALING, false)) {
+ ((TelephonyConnection) resultConnection).setIsUsingAssistedDialing(true);
+ }
+ placeOutgoingConnection((TelephonyConnection) resultConnection, phone, request);
+ }
+ return resultConnection;
+ }
+
private boolean isEmergencyNumberTestNumber(String number) {
+ number = PhoneNumberUtils.stripSeparators(number);
Map<Integer, List<EmergencyNumber>> list =
mTelephonyManagerProxy.getCurrentEmergencyNumberList();
// Do not worry about which subscription the test emergency call is on yet, only detect that
@@ -560,37 +606,26 @@
+ "placement.");
return;
}
+ // Get the right phone object since the radio has been turned on successfully.
if (isRadioReady) {
- // Get the right phone object since the radio has been turned on
- // successfully.
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 the PhoneType of the Phone being used is different than the Default Phone, then we
- // need create a new Connection using that PhoneType and replace it in Telecom.
- if (phone.getPhoneType() != originalPhoneType) {
- Connection repConnection = getTelephonyConnection(request, numberToDial,
- isEmergencyNumber, handle, phone);
- // If there was a failure, the resulting connection will not be a
- // TelephonyConnection, so don't place the call, just return!
- if (repConnection instanceof TelephonyConnection) {
- placeOutgoingConnection((TelephonyConnection) repConnection, phone, request);
- }
- // Notify Telecom of the new Connection type.
- // TODO: Switch out the underlying connection instead of creating a new
- // one and causing UI Jank.
- addExistingConnection(PhoneUtils.makePstnPhoneAccountHandleWithPrefix(
- phone, "", isEmergencyNumber), repConnection);
- // Remove the old connection from Telecom after.
- originalConnection.setDisconnected(
- DisconnectCauseUtil.toTelecomDisconnectCause(
- android.telephony.DisconnectCause.OUTGOING_CANCELED,
- "Reconnecting outgoing Emergency Call.",
- phone.getPhoneId()));
- originalConnection.destroy();
+ if (!isEmergencyNumber) {
+ adjustAndPlaceOutgoingConnection(phone, originalConnection, request, numberToDial,
+ handle, originalPhoneType, false);
} else {
- placeOutgoingConnection((TelephonyConnection) originalConnection, phone, request);
+ mDdsSwitchHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ boolean result = delayDialForDdsSwitch(phone);
+ Log.i(this, "handleOnComplete - delayDialForDdsSwitch result = " + result);
+ adjustAndPlaceOutgoingConnection(phone, originalConnection, request,
+ numberToDial, handle, originalPhoneType, true);
+ }
+ });
}
+
} else {
Log.w(this, "onCreateOutgoingConnection, failed to turn on radio");
originalConnection.setDisconnected(
@@ -601,6 +636,39 @@
}
}
+ private void adjustAndPlaceOutgoingConnection(Phone phone, Connection connectionToEvaluate,
+ ConnectionRequest request, String numberToDial, Uri handle, int originalPhoneType,
+ boolean isEmergencyNumber) {
+ // If the PhoneType of the Phone being used is different than the Default Phone, then we
+ // need to create a new Connection using that PhoneType and replace it in Telecom.
+ if (phone.getPhoneType() != originalPhoneType) {
+ Connection repConnection = getTelephonyConnection(request, numberToDial,
+ isEmergencyNumber, handle, phone);
+ // If there was a failure, the resulting connection will not be a TelephonyConnection,
+ // so don't place the call, just return!
+ if (repConnection instanceof TelephonyConnection) {
+ placeOutgoingConnection((TelephonyConnection) repConnection, phone, request);
+ }
+ // Notify Telecom of the new Connection type.
+ // TODO: Switch out the underlying connection instead of creating a new
+ // one and causing UI Jank.
+ boolean noActiveSimCard = SubscriptionController.getInstance()
+ .getActiveSubInfoCount(phone.getContext().getOpPackageName()) == 0;
+ // If there's no active sim card and the device is in emergency mode, use E account.
+ addExistingConnection(PhoneUtils.makePstnPhoneAccountHandleWithPrefix(
+ phone, "", isEmergencyNumber && noActiveSimCard), repConnection);
+ // Remove the old connection from Telecom after.
+ connectionToEvaluate.setDisconnected(
+ DisconnectCauseUtil.toTelecomDisconnectCause(
+ android.telephony.DisconnectCause.OUTGOING_CANCELED,
+ "Reconnecting outgoing Emergency Call.",
+ phone.getPhoneId()));
+ connectionToEvaluate.destroy();
+ } else {
+ placeOutgoingConnection((TelephonyConnection) connectionToEvaluate, phone, request);
+ }
+ }
+
/**
* @return {@code true} if any other call is disabling the ability to add calls, {@code false}
* otherwise.
@@ -1177,6 +1245,11 @@
com.android.internal.telephony.Connection originalConnection = null;
try {
if (phone != null) {
+ EmergencyNumber emergencyNumber =
+ phone.getEmergencyNumberTracker().getEmergencyNumber(number);
+ if (emergencyNumber != null) {
+ phone.notifyOutgoingEmergencyCall(emergencyNumber);
+ }
originalConnection = phone.dial(number, new ImsPhone.ImsDialArgs.Builder()
.setVideoState(videoState)
.setIntentExtras(extras)
@@ -1271,6 +1344,7 @@
returnConnection.setShowPreciseFailedCause(
TelecomAccountRegistry.getInstance(this).isShowPreciseFailedCause(
phoneAccountHandle));
+ returnConnection.setTelephonyConnectionService(this);
}
return returnConnection;
}
@@ -1308,8 +1382,7 @@
// If this is an emergency call and the phone we originally planned to make this call
// with is not in service or was invalid, try to find one that is in service, using the
// default as a last chance backup.
- if (isEmergency && (chosenPhone == null || ServiceState.STATE_IN_SERVICE != chosenPhone
- .getServiceState().getState())) {
+ if (isEmergency && (chosenPhone == null || !isAvailableForEmergencyCalls(chosenPhone))) {
Log.d(this, "getPhoneForAccount: phone for phone acct handle %s is out of service "
+ "or invalid for emergency call.", accountHandle);
chosenPhone = getPhoneForEmergencyCall(emergencyNumberAddress);
@@ -1320,6 +1393,107 @@
}
/**
+ * If needed, block until the the default data is is switched for outgoing emergency call, or
+ * timeout expires.
+ */
+ private boolean delayDialForDdsSwitch(Phone phone) {
+ if (phone == null) {
+ return true;
+ }
+ try {
+ return possiblyOverrideDefaultDataForEmergencyCall(phone).get(
+ DEFAULT_DATA_SWITCH_TIMEOUT_MS, TimeUnit.MILLISECONDS);
+ } catch (Exception e) {
+ Log.w(this, "onCreateOutgoingConn - delayDialForDdsSwitch exception= "
+ + e.getMessage());
+ return false;
+ }
+ }
+
+ /**
+ * If needed, block until Default Data subscription is switched for outgoing emergency call.
+ *
+ * In some cases, we need to try to switch the Default Data subscription before placing the
+ * emergency call on DSDS devices. This includes the following situation:
+ * - The modem does not support processing GNSS SUPL requests on the non-default data
+ * subscription. For some carriers that do not provide a control plane fallback mechanism, the
+ * SUPL request will be dropped and we will not be able to get the user's location for the
+ * emergency call. In this case, we need to swap default data temporarily.
+ * @param phone Evaluates whether or not the default data should be moved to the phone
+ * specified. Should not be null.
+ */
+ private CompletableFuture<Boolean> possiblyOverrideDefaultDataForEmergencyCall(
+ @NonNull Phone phone) {
+ TelephonyManager telephony = TelephonyManager.from(phone.getContext());
+ int phoneCount = telephony.getPhoneCount();
+ // Do not override DDS if this is a single SIM device.
+ if (phoneCount <= PhoneConstants.MAX_PHONE_COUNT_SINGLE_SIM) {
+ return CompletableFuture.completedFuture(Boolean.TRUE);
+ }
+
+ CarrierConfigManager cfgManager = (CarrierConfigManager)
+ phone.getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE);
+ if (cfgManager == null) {
+ // For some reason CarrierConfigManager is unavailable. Do not block emergency call.
+ Log.w(this, "possiblyOverrideDefaultDataForEmergencyCall: couldn't get"
+ + "CarrierConfigManager");
+ return CompletableFuture.completedFuture(Boolean.TRUE);
+ }
+ // Only override default data if we are IN_SERVICE and on a home network. We don't want to
+ // perform a DDS switch of we are on a roaming network, where SUPL may not be available.
+ boolean isPhoneAvailableForEmergency = isAvailableForEmergencyCalls(phone);
+ boolean isRoaming = phone.getServiceState().getVoiceRoaming();
+ if (!isPhoneAvailableForEmergency || isRoaming) {
+ Log.d(this, "possiblyOverrideDefaultDataForEmergencyCall: not switching DDS, avail = "
+ + isPhoneAvailableForEmergency + ", roaming = " + isRoaming);
+ return CompletableFuture.completedFuture(Boolean.TRUE);
+ }
+
+ // Do not switch Default data if this device supports emergency SUPL on non-DDS.
+ final boolean gnssSuplRequiresDefaultData = phone.getContext().getResources().getBoolean(
+ R.bool.config_gnss_supl_requires_default_data_for_emergency);
+ if (!gnssSuplRequiresDefaultData) {
+ Log.d(this, "possiblyOverrideDefaultDataForEmergencyCall: not switching DDS, does not "
+ + "require DDS switch.");
+ return CompletableFuture.completedFuture(Boolean.TRUE);
+ }
+
+ final boolean supportsCpFallback = cfgManager.getConfigForSubId(phone.getSubId())
+ .getInt(CarrierConfigManager.Gps.KEY_ES_SUPL_CONTROL_PLANE_SUPPORT_INT,
+ CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_CP_ONLY)
+ != CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_DP_ONLY;
+ if (supportsCpFallback) {
+ Log.d(this, "possiblyOverrideDefaultDataForEmergencyCall: not switching DDS, carrier "
+ + "supports CP fallback.");
+ // Do not try to swap default data if we support CS fallback, do not want to introduce
+ // a lag in emergency call setup time if possible.
+ return CompletableFuture.completedFuture(Boolean.TRUE);
+ }
+
+ // Get extension time, may be 0 for some carriers that support ECBM as well. Use
+ // CarrierConfig default if format fails.
+ int extensionTime = 0;
+ try {
+ extensionTime = Integer.valueOf(cfgManager.getConfigForSubId(phone.getSubId())
+ .getString(CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "0"));
+ } catch (NumberFormatException e) {
+ // Just use default.
+ }
+ CompletableFuture<Boolean> modemResultFuture = new CompletableFuture<>();
+ try {
+ Log.d(this, "possiblyOverrideDefaultDataForEmergencyCall: overriding DDS for "
+ + extensionTime + "seconds");
+ PhoneSwitcher.getInstance().overrideDefaultDataForEmergency(phone.getPhoneId(),
+ extensionTime, modemResultFuture);
+ // Catch all exceptions, we want to continue with emergency call if possible.
+ } catch (Exception e) {
+ Log.w(this, "possiblyOverrideDefaultDataForEmergencyCall: exception = "
+ + e.getMessage());
+ }
+ return modemResultFuture;
+ }
+
+ /**
* Get the Phone to use for an emergency call of the given emergency number address:
* a) If there are multiple Phones with the Subscriptions that support the emergency number
* address, and one of them is the default voice Phone, consider the default voice phone
@@ -1355,31 +1529,41 @@
if (potentialEmergencyPhones.size() > 0) {
Log.i(this, "getPhoneForEmergencyCall, Phone Id that supports emergency number:"
+ potentialEmergencyPhones.get(0).getPhoneId());
- return potentialEmergencyPhones.get(0);
+ return getFirstPhoneForEmergencyCall(potentialEmergencyPhones);
}
// c)
return getFirstPhoneForEmergencyCall();
}
+ @VisibleForTesting
+ public Phone getFirstPhoneForEmergencyCall() {
+ return getFirstPhoneForEmergencyCall(null);
+ }
+
/**
* Retrieves the most sensible Phone to use for an emergency call using the following Priority
* list (for multi-SIM devices):
* 1) The User's SIM preference for Voice calling
* 2) The First Phone that is currently IN_SERVICE or is available for emergency calling
- * 3) If there is a PUK locked SIM, compare the SIMs that are not PUK locked. If all the SIMs
- * are locked, skip to condition 4).
- * 4) The Phone with more Capabilities.
- * 5) The First Phone that has a SIM card in it (Starting from Slot 0...N)
- * 6) The Default Phone (Currently set as Slot 0)
+ * 3) Prioritize phones that have the dialed emergency number as part of their emergency
+ * number list
+ * 4) If there is a PUK locked SIM, compare the SIMs that are not PUK locked. If all the SIMs
+ * are locked, skip to condition 5).
+ * 5) The Phone with more Capabilities.
+ * 6) The First Phone that has a SIM card in it (Starting from Slot 0...N)
+ * 7) The Default Phone (Currently set as Slot 0)
*/
@VisibleForTesting
- public Phone getFirstPhoneForEmergencyCall() {
+ public Phone getFirstPhoneForEmergencyCall(List<Phone> phonesWithEmergencyNumber) {
// 1)
int phoneId = mSubscriptionManagerProxy.getDefaultVoicePhoneId();
if (phoneId != SubscriptionManager.INVALID_PHONE_INDEX) {
Phone defaultPhone = mPhoneFactoryProxy.getPhone(phoneId);
if (defaultPhone != null && isAvailableForEmergencyCalls(defaultPhone)) {
- return defaultPhone;
+ if (phonesWithEmergencyNumber == null
+ || phonesWithEmergencyNumber.contains(defaultPhone)) {
+ return defaultPhone;
+ }
}
}
@@ -1393,25 +1577,38 @@
}
// 2)
if (isAvailableForEmergencyCalls(phone)) {
- // the slot has the radio on & state is in service.
- Log.i(this, "getFirstPhoneForEmergencyCall, radio on & in service, Phone Id:" + i);
- return phone;
+ if (phonesWithEmergencyNumber == null
+ || phonesWithEmergencyNumber.contains(phone)) {
+ // the slot has the radio on & state is in service.
+ Log.i(this,
+ "getFirstPhoneForEmergencyCall, radio on & in service, Phone Id:" + i);
+ return phone;
+ }
}
- // 4)
+ // 5)
// Store the RAF Capabilities for sorting later.
int radioAccessFamily = phone.getRadioAccessFamily();
SlotStatus status = new SlotStatus(i, radioAccessFamily);
phoneSlotStatus.add(status);
Log.i(this, "getFirstPhoneForEmergencyCall, RAF:" +
Integer.toHexString(radioAccessFamily) + " saved for Phone Id:" + i);
- // 3)
+ // 4)
// Report Slot's PIN/PUK lock status for sorting later.
int simState = mSubscriptionManagerProxy.getSimStateForSlotIdx(i);
if (simState == TelephonyManager.SIM_STATE_PIN_REQUIRED ||
simState == TelephonyManager.SIM_STATE_PUK_REQUIRED) {
status.isLocked = true;
}
- // 5)
+ // 3) Store if the Phone has the corresponding emergency number
+ if (phonesWithEmergencyNumber != null) {
+ for (Phone phoneWithEmergencyNumber : phonesWithEmergencyNumber) {
+ if (phoneWithEmergencyNumber != null
+ && phoneWithEmergencyNumber.getPhoneId() == i) {
+ status.hasDialedEmergencyNumber = true;
+ }
+ }
+ }
+ // 6)
if (firstPhoneWithSim == null && mTelephonyManagerProxy.hasIccCard(i)) {
// The slot has a SIM card inserted, but is not in service, so keep track of this
// Phone. Do not return because we want to make sure that none of the other Phones
@@ -1421,19 +1618,28 @@
firstPhoneWithSim.getPhoneId());
}
}
- // 6)
+ // 7)
if (firstPhoneWithSim == null && phoneSlotStatus.isEmpty()) {
- // No Phones available, get the default.
- Log.i(this, "getFirstPhoneForEmergencyCall, return default phone");
- return mPhoneFactoryProxy.getDefaultPhone();
+ if (phonesWithEmergencyNumber == null || phonesWithEmergencyNumber.isEmpty()) {
+ // No Phones available, get the default
+ Log.i(this, "getFirstPhoneForEmergencyCall, return default phone");
+ return mPhoneFactoryProxy.getDefaultPhone();
+ }
+ return phonesWithEmergencyNumber.get(0);
} else {
- // 4)
+ // 5)
final int defaultPhoneId = mPhoneFactoryProxy.getDefaultPhone().getPhoneId();
final Phone firstOccupiedSlot = firstPhoneWithSim;
if (!phoneSlotStatus.isEmpty()) {
// Only sort if there are enough elements to do so.
if (phoneSlotStatus.size() > 1) {
Collections.sort(phoneSlotStatus, (o1, o2) -> {
+ if (!o1.hasDialedEmergencyNumber && o2.hasDialedEmergencyNumber) {
+ return -1;
+ }
+ if (o1.hasDialedEmergencyNumber && !o2.hasDialedEmergencyNumber) {
+ return 1;
+ }
// First start by seeing if either of the phone slots are locked. If they
// are, then sort by non-locked SIM first. If they are both locked, sort
// by capability instead.
@@ -1479,7 +1685,7 @@
"with highest capability");
return mPhoneFactoryProxy.getPhone(mostCapablePhoneId);
} else {
- // 5)
+ // 6)
return firstPhoneWithSim;
}
}
diff --git a/testapps/EmbmsTestDownloadApp/Android.mk b/testapps/EmbmsTestDownloadApp/Android.mk
index 445357c..bd53d79 100644
--- a/testapps/EmbmsTestDownloadApp/Android.mk
+++ b/testapps/EmbmsTestDownloadApp/Android.mk
@@ -2,10 +2,10 @@
# Build the Sample Embms Download frontend
include $(CLEAR_VARS)
-
-LOCAL_STATIC_JAVA_LIBRARIES := \
- android-support-v7-recyclerview \
- android-support-v4
+LOCAL_USE_AAPT2 := true
+LOCAL_STATIC_ANDROID_LIBRARIES := \
+ androidx.recyclerview_recyclerview \
+ androidx.legacy_legacy-support-v4
src_dirs := src
res_dirs := res
diff --git a/testapps/EmbmsTestDownloadApp/res/layout/activity_main.xml b/testapps/EmbmsTestDownloadApp/res/layout/activity_main.xml
index 8bbc806..8008414 100644
--- a/testapps/EmbmsTestDownloadApp/res/layout/activity_main.xml
+++ b/testapps/EmbmsTestDownloadApp/res/layout/activity_main.xml
@@ -30,7 +30,7 @@
android:id="@+id/progress_window"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
- <android.support.v7.widget.RecyclerView
+ <androidx.recyclerview.widget.RecyclerView
android:id="@+id/downloaded_images"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/testapps/EmbmsTestDownloadApp/src/com/android/phone/testapps/embmsdownload/EmbmsTestDownloadApp.java b/testapps/EmbmsTestDownloadApp/src/com/android/phone/testapps/embmsdownload/EmbmsTestDownloadApp.java
index 78fa34f..f4a0d3c 100644
--- a/testapps/EmbmsTestDownloadApp/src/com/android/phone/testapps/embmsdownload/EmbmsTestDownloadApp.java
+++ b/testapps/EmbmsTestDownloadApp/src/com/android/phone/testapps/embmsdownload/EmbmsTestDownloadApp.java
@@ -23,8 +23,6 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
import android.telephony.MbmsDownloadSession;
import android.telephony.SubscriptionManager;
import android.telephony.mbms.DownloadProgressListener;
@@ -44,6 +42,9 @@
import android.widget.TextView;
import android.widget.Toast;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
diff --git a/testapps/ImsTestService/Android.mk b/testapps/ImsTestService/Android.mk
index 29df224..2869c86 100644
--- a/testapps/ImsTestService/Android.mk
+++ b/testapps/ImsTestService/Android.mk
@@ -5,10 +5,10 @@
LOCAL_MODULE_TAGS := optional
LOCAL_STATIC_ANDROID_LIBRARIES := \
- android-support-v4 \
- android-support-v7-appcompat \
- android-support-v7-recyclerview \
- android-support-v7-cardview
+ androidx.legacy_legacy-support-v4 \
+ androidx.appcompat_appcompat \
+ androidx.recyclerview_recyclerview \
+ androidx.cardview_cardview
LOCAL_USE_AAPT2 := true
diff --git a/testapps/ImsTestService/res/layout/ims_connection.xml b/testapps/ImsTestService/res/layout/ims_connection.xml
index 4c08082..b6aa706 100644
--- a/testapps/ImsTestService/res/layout/ims_connection.xml
+++ b/testapps/ImsTestService/res/layout/ims_connection.xml
@@ -14,7 +14,7 @@
~ See the License for the specific language governing permissions and
~ limitations under the License
-->
-<android.support.v7.widget.CardView
+<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_gravity="center"
@@ -41,4 +41,4 @@
android:layout_width="match_parent"
android:layout_height="wrap_content" android:text="@string/features_check_rcs"/>
</LinearLayout>
-</android.support.v7.widget.CardView>
\ No newline at end of file
+</androidx.cardview.widget.CardView>
\ No newline at end of file
diff --git a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsRegistrationActivity.java b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsRegistrationActivity.java
index 50be698..4ee9355 100644
--- a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsRegistrationActivity.java
+++ b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/ImsRegistrationActivity.java
@@ -151,8 +151,8 @@
private static final Map<Integer, String> REG_TECH_STRING = new ArrayMap<>(2);
static {
REG_TECH_STRING.put(ImsRegistrationImplBase.REGISTRATION_TECH_NONE, "NONE");
- REG_TECH_STRING.put(AccessNetworkConstants.TransportType.WWAN, "WWAN");
- REG_TECH_STRING.put(AccessNetworkConstants.TransportType.WLAN, "WLAN");
+ REG_TECH_STRING.put(AccessNetworkConstants.TRANSPORT_TYPE_WWAN, "WWAN");
+ REG_TECH_STRING.put(AccessNetworkConstants.TRANSPORT_TYPE_WLAN, "WLAN");
}
diff --git a/testapps/SmsManagerTestApp/Android.mk b/testapps/SmsManagerTestApp/Android.mk
new file mode 100644
index 0000000..307366b
--- /dev/null
+++ b/testapps/SmsManagerTestApp/Android.mk
@@ -0,0 +1,17 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := optional
+
+src_dirs := src
+res_dirs := res
+
+LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
+LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs))
+
+LOCAL_PACKAGE_NAME := SmsManagerTestApp
+
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_PACKAGE)
diff --git a/testapps/SmsManagerTestApp/AndroidManifest.xml b/testapps/SmsManagerTestApp/AndroidManifest.xml
new file mode 100644
index 0000000..c5f4621
--- /dev/null
+++ b/testapps/SmsManagerTestApp/AndroidManifest.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.phone.testapps.smsmanagertestapp">
+ <uses-sdk android:minSdkVersion="24" android:targetSdkVersion="29" />
+ <uses-permission android:name="android.permission.SEND_SMS"/>
+ <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
+ <application android:label="SmsManagerTestApp">
+ <activity
+ android:name=".SmsManagerTestApp"
+ android:label="SmsManagerTestApp">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ <service android:name=".SmsManagerTestService" android:exported="false" />
+ <receiver android:name=".SendStatusReceiver"
+ android:exported="false">
+ <intent-filter>
+ <action android:name="com.android.phone.testapps.smsmanagertestapp.message_sent_action" />
+ <data android:scheme="content" />
+ </intent-filter>
+ </receiver>
+
+ </application>
+</manifest>
+
diff --git a/testapps/SmsManagerTestApp/res/layout/activity_main.xml b/testapps/SmsManagerTestApp/res/layout/activity_main.xml
new file mode 100644
index 0000000..39fb6c6
--- /dev/null
+++ b/testapps/SmsManagerTestApp/res/layout/activity_main.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:paddingLeft="4dp">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical" >
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" android:layout_weight="0"
+ android:text="Outgoing SMS Phone Number"/>
+
+ <EditText
+ android:id="@+id/phone_number_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:inputType="phone" android:text="5555551212"/>
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height= "1dp"
+ android:paddingRight="4dp"
+ android:background="?android:attr/listDivider" />
+
+ <Button
+ android:id="@+id/send_text_button"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingRight="4dp"
+ android:text="@string/send_text_button"/>
+ <Button
+ android:id="@+id/send_text_button_service"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingRight="4dp"
+ android:text="@string/send_text_service_button"/>
+ <Button
+ android:id="@+id/get_sub_for_result_button"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingRight="4dp"
+ android:text="@string/get_sub_for_result_button"/>
+ </LinearLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/testapps/SmsManagerTestApp/res/values/donottranslate_strings.xml b/testapps/SmsManagerTestApp/res/values/donottranslate_strings.xml
new file mode 100644
index 0000000..d6497a3
--- /dev/null
+++ b/testapps/SmsManagerTestApp/res/values/donottranslate_strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources>
+ <string name="send_text_button">Send Outgoing Text Now.</string>
+ <string name="send_text_service_button">Send Outgoing Text after 5 sec.</string>
+ <string name="get_sub_for_result_button">Ask user for sub id.</string>
+</resources>
\ No newline at end of file
diff --git a/testapps/SmsManagerTestApp/src/com/android/phone/testapps/smsmanagertestapp/SendStatusReceiver.java b/testapps/SmsManagerTestApp/src/com/android/phone/testapps/smsmanagertestapp/SendStatusReceiver.java
new file mode 100644
index 0000000..03709d1
--- /dev/null
+++ b/testapps/SmsManagerTestApp/src/com/android/phone/testapps/smsmanagertestapp/SendStatusReceiver.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone.testapps.smsmanagertestapp;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.widget.Toast;
+
+/**
+ * Handles the PendingIntent result from SMS messages send to Telephony. Reports the results of
+ * those messages using Toasts.
+ */
+public class SendStatusReceiver extends BroadcastReceiver {
+
+ public static final String MESSAGE_SENT_ACTION =
+ "com.android.phone.testapps.smsmanagertestapp.message_sent_action";
+
+ // Defined by platform, but no constant provided. See docs for SmsManager.sendTextMessage.
+ private static final String EXTRA_ERROR_CODE = "errorCode";
+ private static final String EXTRA_NO_DEFAULT = "noDefault";
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ final int resultCode = getResultCode();
+ if (MESSAGE_SENT_ACTION.equals(intent.getAction())) {
+ int errorCode = intent.getIntExtra(EXTRA_ERROR_CODE, -1);
+ boolean userCancel = intent.getBooleanExtra(EXTRA_NO_DEFAULT, false);
+ if (userCancel) {
+ Toast.makeText(context, "SMS not sent, user cancelled.", Toast.LENGTH_LONG).show();
+ } else {
+ Toast.makeText(context, "SMS result=" + resultCode + ", error extra=" + errorCode,
+ Toast.LENGTH_LONG).show();
+ }
+ }
+ }
+}
diff --git a/testapps/SmsManagerTestApp/src/com/android/phone/testapps/smsmanagertestapp/SmsManagerTestApp.java b/testapps/SmsManagerTestApp/src/com/android/phone/testapps/smsmanagertestapp/SmsManagerTestApp.java
new file mode 100644
index 0000000..75536f3
--- /dev/null
+++ b/testapps/SmsManagerTestApp/src/com/android/phone/testapps/smsmanagertestapp/SmsManagerTestApp.java
@@ -0,0 +1,210 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone.testapps.smsmanagertestapp;
+
+import android.Manifest;
+import android.app.Activity;
+import android.app.PendingIntent;
+import android.content.ActivityNotFoundException;
+import android.content.ComponentName;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.os.Bundle;
+import android.telephony.SmsManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.TextView;
+import android.widget.Toast;
+
+/**
+ * Supports sending an SMS immediately and offloading the sending of the SMS to a background task.
+ */
+public class SmsManagerTestApp extends Activity {
+
+ private static final int REQUEST_PERMISSION_READ_STATE = 1;
+ private static final int REQUEST_GET_SMS_SUB_ID = 2;
+
+ private static final ComponentName SETTINGS_SUB_PICK_ACTIVITY = new ComponentName(
+ "com.android.settings", "com.android.settings.sim.SimDialogActivity");
+
+ /*
+ * Forwarded constants from SimDialogActivity.
+ */
+ private static final String DIALOG_TYPE_KEY = "dialog_type";
+ public static final String RESULT_SUB_ID = "result_sub_id";
+ private static final int SMS_PICK = 2;
+
+ private static int sMessageId = 0;
+ private boolean mIsReadPhoneStateGranted = false;
+
+ private EditText mPhoneNumber;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setContentView(R.layout.activity_main);
+
+ findViewById(R.id.send_text_button).setOnClickListener(this::sendOutgoingSms);
+ findViewById(R.id.send_text_button_service)
+ .setOnClickListener(this::sendOutgoingSmsService);
+ findViewById(R.id.get_sub_for_result_button).setOnClickListener(this::getSubIdForResult);
+ mPhoneNumber = (EditText) findViewById(R.id.phone_number_text);
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ if (checkSelfPermission(Manifest.permission.READ_PHONE_STATE)
+ != PackageManager.PERMISSION_GRANTED
+ || checkSelfPermission(Manifest.permission.SEND_SMS)
+ != PackageManager.PERMISSION_GRANTED) {
+ mIsReadPhoneStateGranted = false;
+ requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE,
+ Manifest.permission.SEND_SMS}, REQUEST_PERMISSION_READ_STATE);
+ } else {
+ mIsReadPhoneStateGranted = true;
+ }
+ if (mIsReadPhoneStateGranted) {
+ mPhoneNumber.setText(getPhoneNumber(), TextView.BufferType.NORMAL);
+ }
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ stopService(new Intent(this, SmsManagerTestService.class));
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, String[] permissions,
+ int[] grantResults) {
+ switch (requestCode) {
+ case REQUEST_PERMISSION_READ_STATE: {
+ if (grantResults.length > 0
+ && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ mIsReadPhoneStateGranted = true;
+ } else {
+ // permission denied
+ Toast.makeText(this, "read_phone_state denied.", Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ }
+
+ if (mIsReadPhoneStateGranted) {
+ mPhoneNumber.setText(getPhoneNumber(), TextView.BufferType.NORMAL);
+ }
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ switch (requestCode) {
+ case (REQUEST_GET_SMS_SUB_ID) : {
+ int resultSubId;
+ if (resultCode == RESULT_OK) {
+ resultSubId = data == null ? -1 : data.getIntExtra(RESULT_SUB_ID,
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ Toast.makeText(this, "User picked sub id = " + resultSubId,
+ Toast.LENGTH_LONG).show();
+ } else {
+ Toast.makeText(this, "User cancelled dialog.",
+ Toast.LENGTH_SHORT).show();
+ }
+ break;
+ }
+ }
+ }
+
+
+ private void sendOutgoingSms(View view) {
+ String phoneNumber = mPhoneNumber.getText().toString();
+ if (TextUtils.isEmpty(phoneNumber)) {
+ Toast.makeText(this, "Couldn't get phone number from view! Ignoring request...",
+ Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if (mIsReadPhoneStateGranted) {
+ SmsManager m = SmsManager.getDefault();
+ m.sendTextMessage(phoneNumber, null, "Test",
+ PendingIntent.getBroadcast(this, sMessageId, getSendStatusIntent(), 0),
+ null);
+ sMessageId++;
+ }
+ }
+
+ private void sendOutgoingSmsService(View view) {
+ String phoneNumber = mPhoneNumber.getText().toString();
+ if (TextUtils.isEmpty(phoneNumber)) {
+ Toast.makeText(this, "Couldn't get phone number from view! Ignoring request...",
+ Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if (mIsReadPhoneStateGranted) {
+ Intent sendSmsIntent = new Intent(SmsManagerTestService.SEND_SMS);
+ sendSmsIntent.putExtra(SmsManagerTestService.EXTRA_SEND_TEXT, "Text");
+ sendSmsIntent.putExtra(SmsManagerTestService.EXTRA_SEND_NUMBER, phoneNumber);
+ sendSmsIntent.putExtra(SmsManagerTestService.EXTRA_SEND_INTENT,
+ PendingIntent.getBroadcast(this, sMessageId, getSendStatusIntent(), 0));
+ sendSmsIntent.setComponent(new ComponentName(this, SmsManagerTestService.class));
+ startService(sendSmsIntent);
+ sMessageId++;
+ }
+ }
+ private void getSubIdForResult(View view) {
+ // ask the user for a default SMS SIM.
+ Intent intent = new Intent();
+ intent.setComponent(SETTINGS_SUB_PICK_ACTIVITY);
+ intent.putExtra(DIALOG_TYPE_KEY, SMS_PICK);
+ try {
+ startActivity(intent, null);
+ } catch (ActivityNotFoundException anfe) {
+ // If Settings is not installed, only log the error as we do not want to break
+ // legacy applications.
+ Toast.makeText(this, "Unable to launch Settings application.",
+ Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ private Intent getSendStatusIntent() {
+ // Encode requestId in intent data
+ return new Intent(SendStatusReceiver.MESSAGE_SENT_ACTION, null, this,
+ SendStatusReceiver.class);
+ }
+
+ private String getPhoneNumber() {
+ String result = "6505551212";
+ int defaultSmsSub = SubscriptionManager.getDefaultSmsSubscriptionId();
+ if (mIsReadPhoneStateGranted) {
+ TelephonyManager tm = getSystemService(TelephonyManager.class);
+ if (tm != null) {
+ tm = tm.createForSubscriptionId(defaultSmsSub);
+ String line1Number = tm.getLine1Number();
+ if (!TextUtils.isEmpty(line1Number)) {
+ return line1Number;
+ }
+ }
+ } else {
+ Toast.makeText(this, "Couldn't resolve line 1 due to permissions error.",
+ Toast.LENGTH_LONG).show();
+ }
+ return result;
+ }
+}
diff --git a/testapps/SmsManagerTestApp/src/com/android/phone/testapps/smsmanagertestapp/SmsManagerTestService.java b/testapps/SmsManagerTestApp/src/com/android/phone/testapps/smsmanagertestapp/SmsManagerTestService.java
new file mode 100644
index 0000000..fcf4a67
--- /dev/null
+++ b/testapps/SmsManagerTestApp/src/com/android/phone/testapps/smsmanagertestapp/SmsManagerTestService.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone.testapps.smsmanagertestapp;
+
+import android.app.IntentService;
+import android.app.PendingIntent;
+import android.content.Intent;
+import android.os.AsyncTask;
+import android.telephony.SmsManager;
+import android.util.Log;
+
+/**
+ * IntentService whose purpose is to handle outgoing SMS intents for this application and schedule
+ * them onto a AsyncTask to sleep for 5 seconds. This allows us to simulate SMS messages being sent
+ * from background services.
+ */
+public class SmsManagerTestService extends IntentService {
+
+ private static final String LOG_TAG = "smsmanagertestservice";
+
+ private static class SendSmsJob extends AsyncTask<Intent, Void, Void> {
+
+ @Override
+ protected Void doInBackground(Intent... intents) {
+ Intent intent = intents[0];
+ try {
+ Thread.sleep(5000);
+ } catch (InterruptedException e) {
+ // testing
+ }
+
+ String text = intent.getStringExtra(EXTRA_SEND_TEXT);
+ String phoneNumber = intent.getStringExtra(EXTRA_SEND_NUMBER);
+ PendingIntent sendIntent = intent.getParcelableExtra(EXTRA_SEND_INTENT);
+ sendSms(phoneNumber, text, sendIntent);
+ return null;
+ }
+
+ @Override
+ protected void onPostExecute(Void aVoid) {
+ Log.i(LOG_TAG, "SMS sent");
+ }
+
+ }
+
+ public static final String SEND_SMS = "com.android.phone.testapps.smsmanagertestapp.send_sms";
+ public static final String EXTRA_SEND_TEXT = "text";
+ public static final String EXTRA_SEND_NUMBER = "number";
+ public static final String EXTRA_SEND_INTENT = "sendIntent";
+
+ public SmsManagerTestService() {
+ super("SmsManagerTestService");
+ }
+
+
+ @Override
+ protected void onHandleIntent(Intent intent) {
+ switch (intent.getAction()) {
+ case SEND_SMS : {
+ new SendSmsJob().execute(intent);
+ break;
+ }
+ }
+ }
+
+ private static void sendSms(String phoneNumber, String text, PendingIntent sendIntent) {
+ SmsManager m = SmsManager.getDefault();
+ m.sendTextMessage(phoneNumber, null, text, sendIntent, null);
+ }
+}
diff --git a/tests/Android.mk b/tests/Android.mk
index 2fde21a..44bf176 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -31,9 +31,9 @@
LOCAL_INSTRUMENTATION_FOR := TeleService
LOCAL_STATIC_JAVA_LIBRARIES := \
- android-support-test \
+ androidx.test.rules \
mockito-target-minus-junit4 \
- espresso-core \
+ androidx.test.espresso.core \
truth-prebuilt
LOCAL_COMPATIBILITY_SUITE := device-tests
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index 0aa5be2..d434650 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -53,14 +53,14 @@
<!--
To run all tests:
adb shell am instrument -w
- com.android.phone.tests/android.support.test.runner.AndroidJUnitRunner
+ com.android.phone.tests/androidx.test.runner.AndroidJUnitRunner
To run a single class test:
adb shell am instrument -e class com.android.phone.unit.FooUnitTest
- -w com.android.phone.tests/android.support.test.runner.AndroidJUnitRunner
+ -w com.android.phone.tests/androidx.test.runner.AndroidJUnitRunner
-->
- <instrumentation android:name="android.support.test.runner.AndroidJUnitRunner"
+ <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
android:targetPackage="com.android.phone"
android:label="Phone application tests." />
</manifest>
diff --git a/tests/AndroidTest.xml b/tests/AndroidTest.xml
index cf757b4..4188ee2 100644
--- a/tests/AndroidTest.xml
+++ b/tests/AndroidTest.xml
@@ -24,7 +24,7 @@
<option name="test-tag" value="TeleServiceTests" />
<test class="com.android.tradefed.testtype.AndroidJUnitTest" >
<option name="package" value="com.android.phone.tests" />
- <option name="runner" value="android.support.test.runner.AndroidJUnitRunner" />
+ <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
<option name="hidden-api-checks" value="false"/>
</test>
</configuration>
diff --git a/tests/src/com/android/TelephonyTestBase.java b/tests/src/com/android/TelephonyTestBase.java
index 7b7bef2..d30ae6b 100644
--- a/tests/src/com/android/TelephonyTestBase.java
+++ b/tests/src/com/android/TelephonyTestBase.java
@@ -19,9 +19,10 @@
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
-import android.support.test.InstrumentationRegistry;
import android.util.Log;
+import androidx.test.InstrumentationRegistry;
+
import org.mockito.MockitoAnnotations;
import java.util.concurrent.CountDownLatch;
diff --git a/tests/src/com/android/phone/CallFeaturesSettingTest.java b/tests/src/com/android/phone/CallFeaturesSettingTest.java
index 816642a..15d48ba 100644
--- a/tests/src/com/android/phone/CallFeaturesSettingTest.java
+++ b/tests/src/com/android/phone/CallFeaturesSettingTest.java
@@ -15,16 +15,20 @@
*/
package com.android.phone;
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist;
+import static androidx.test.espresso.assertion.ViewAssertions.matches;
+import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static androidx.test.espresso.matcher.ViewMatchers.withText;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.when;
-import android.support.test.filters.FlakyTest;
-import android.support.test.rule.ActivityTestRule;
+import android.content.Context;
+
+import androidx.test.InstrumentationRegistry;
+import androidx.test.filters.FlakyTest;
+import androidx.test.rule.ActivityTestRule;
import com.android.internal.telephony.IccCard;
import com.android.internal.telephony.Phone;
@@ -52,6 +56,8 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mActivity = mRule.getActivity();
+ Context targetContext = InstrumentationRegistry.getTargetContext();
+ doReturn(targetContext).when(mMockPhone).getContext();
}
@FlakyTest
diff --git a/tests/src/com/android/phone/CarrierXmlParserTest.java b/tests/src/com/android/phone/CarrierXmlParserTest.java
new file mode 100644
index 0000000..92a8ba7
--- /dev/null
+++ b/tests/src/com/android/phone/CarrierXmlParserTest.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone;
+
+import static org.junit.Assert.assertEquals;
+
+import android.content.Context;
+
+import androidx.test.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.Collections;
+import java.util.Vector;
+
+@RunWith(AndroidJUnit4.class)
+public class CarrierXmlParserTest {
+ private CarrierXmlParser mCarrierXmlParser;
+ private Context mContext;
+
+ @Before
+ public void setUp() throws Exception {
+ mContext = InstrumentationRegistry.getTargetContext();
+ }
+
+ @Test
+ public void verifyParserFormat_shouldSameAsXml() {
+ String expected =
+ "((\\d{2,3})(\\*([^*#]*)(\\*([^*#]*)(\\*([^*#]*)(\\*([^*#]*)(\\*([^*#]*)(\\*"
+ + "([^*#]*)(\\*([^*#]*))?)?)?)?)?)?)?#)";
+
+ mCarrierXmlParser = new CarrierXmlParser(mContext, -1);
+
+ assertEquals(expected, mCarrierXmlParser.sParserFormat);
+ }
+
+ @Test
+ public void verifyUssdParser_shouldMatchText() {
+ String parserFormat =
+ "((\\d{2,3})(\\*([^*#]*)(\\*([^*#]*)(\\*([^*#]*)(\\*([^*#]*)(\\*([^*#]*)(\\*"
+ + "([^*#]*)(\\*([^*#]*))?)?)?)?)?)?)?#)";
+ String text = "120*1*7*123456789*20*1*0*0#";
+ String[] expectedContent = {"120*1*7*123456789*20*1*0*0#",
+ "120*1*7*123456789*20*1*0*0#",
+ "120",
+ "*1*7*123456789*20*1*0*0",
+ "1",
+ "*7*123456789*20*1*0*0",
+ "7",
+ "*123456789*20*1*0*0",
+ "123456789",
+ "*20*1*0*0",
+ "20",
+ "*1*0*0",
+ "1",
+ "*0*0",
+ "0",
+ "*0",
+ "0"};
+ Vector<String> expected = new Vector<>();
+ Collections.addAll(expected, expectedContent);
+
+ CarrierXmlParser.UssdParser ussdParser = new CarrierXmlParser.UssdParser(parserFormat);
+ ussdParser.newFromResponseString(text);
+
+ assertEquals(expected, ussdParser.getResult());
+ }
+}
diff --git a/tests/src/com/android/phone/CdmaOptionsTest.java b/tests/src/com/android/phone/CdmaOptionsTest.java
deleted file mode 100644
index c0c6317..0000000
--- a/tests/src/com/android/phone/CdmaOptionsTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2018 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 com.google.common.truth.Truth.assertThat;
-
-import android.os.PersistableBundle;
-import android.support.test.runner.AndroidJUnit4;
-import android.telephony.CarrierConfigManager;
-
-import com.android.internal.telephony.PhoneConstants;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class CdmaOptionsTest {
- @Test
- public void shouldAddApnExpandPreference_doesNotExpandOnGsm() {
- PersistableBundle bundle = new PersistableBundle();
- bundle.putBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL, true);
- assertThat(CdmaOptions.shouldAddApnExpandPreference(PhoneConstants.PHONE_TYPE_GSM, bundle))
- .isFalse();
- }
-
- @Test
- public void shouldAddApnExpandPreference_showExpandOnCdma() {
- PersistableBundle bundle = new PersistableBundle();
- bundle.putBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL, true);
- assertThat(CdmaOptions.shouldAddApnExpandPreference(PhoneConstants.PHONE_TYPE_CDMA, bundle))
- .isTrue();
- }
-
- @Test
- public void shouldAddApnExpandPreference_doesNotExpandOnCdmaIfCarrierConfigDisabled() {
- PersistableBundle bundle = new PersistableBundle();
- bundle.putBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL, false);
- assertThat(CdmaOptions.shouldAddApnExpandPreference(PhoneConstants.PHONE_TYPE_CDMA, bundle))
- .isFalse();
- }
-}
diff --git a/tests/src/com/android/phone/PhoneSearchIndexablesProviderTest.java b/tests/src/com/android/phone/PhoneSearchIndexablesProviderTest.java
deleted file mode 100644
index 34e3937..0000000
--- a/tests/src/com/android/phone/PhoneSearchIndexablesProviderTest.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.phone;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.when;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.ProviderInfo;
-import android.content.res.Resources;
-import android.database.Cursor;
-import android.os.UserManager;
-import android.provider.SearchIndexablesContract;
-import android.provider.Settings;
-import android.support.test.runner.AndroidJUnit4;
-import android.telephony.euicc.EuiccManager;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-/** Unit tests for {@link PhoneSearchIndexablesProvider}. */
-@RunWith(AndroidJUnit4.class)
-public final class PhoneSearchIndexablesProviderTest {
- private PhoneSearchIndexablesTestProvider mProvider;
- @Mock private ApplicationInfo mApplicationInfo;
- @Mock private Context mContext;
- @Mock private Resources mResources;
- @Mock private UserManager mUserManager;
- @Mock private EuiccManager mEuiccManager;
- @Mock private ContentResolver mCr;
-
- private class PhoneSearchIndexablesTestProvider extends PhoneSearchIndexablesProvider {
- private boolean mIsEuiccSettingsHidden = false;
- private boolean mIsEnhanced4gLteHidden = false;
- private boolean mIsWifiCallingHidden = false;
-
- @Override boolean isEuiccSettingsHidden() {
- return mIsEuiccSettingsHidden;
- }
-
- @Override boolean isEnhanced4gLteHidden() {
- return mIsEnhanced4gLteHidden;
- }
-
- @Override boolean isWifiCallingHidden() {
- return mIsWifiCallingHidden;
- }
-
- public void setIsEuiccSettingsHidden(boolean isEuiccSettingsHidden) {
- mIsEuiccSettingsHidden = isEuiccSettingsHidden;
- }
-
- public void setIsEnhanced4gLteHidden(boolean isEnhanced4gLteHidden) {
- mIsEnhanced4gLteHidden = isEnhanced4gLteHidden;
- }
-
- public void setIsWifiCallingHidden(boolean isWifiCallingHidden) {
- mIsWifiCallingHidden = isWifiCallingHidden;
- }
- }
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- when(mResources.getString(com.android.phone.R.string.carrier_settings_euicc))
- .thenReturn("");
- when(mResources.getString(com.android.phone.R.string.keywords_carrier_settings_euicc))
- .thenReturn("");
-
- when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
- when(mContext.getSystemService(Context.EUICC_SERVICE)).thenReturn(mEuiccManager);
- when(mContext.getResources()).thenReturn(mResources);
- when(mContext.getApplicationInfo()).thenReturn(mApplicationInfo);
- when(mContext.getPackageName()).thenReturn("PhoneSearchIndexablesProviderTest");
- when(mContext.getContentResolver()).thenReturn(mCr);
- when(mCr.getPackageName()).thenReturn("com.android.phone");
-
- final ProviderInfo providerInfo = new ProviderInfo();
- providerInfo.authority = Settings.AUTHORITY;
- providerInfo.exported = true;
- providerInfo.grantUriPermissions = true;
- providerInfo.readPermission = android.Manifest.permission.READ_SEARCH_INDEXABLES;
- mProvider = new PhoneSearchIndexablesTestProvider();
- mProvider.attachInfo(mContext, providerInfo);
- }
-
- @Test
- public void testQueryRawData() {
- when(mUserManager.isAdminUser()).thenReturn(true);
- when(mEuiccManager.isEnabled()).thenReturn(true);
- Settings.Global.putInt(mCr, Settings.Global.EUICC_PROVISIONED, 1);
- Settings.Global.getInt(mCr, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 1);
-
- Cursor cursor = mProvider.queryRawData(SearchIndexablesContract.INDEXABLES_RAW_COLUMNS);
- assertThat(cursor.getColumnNames()).isEqualTo(
- SearchIndexablesContract.INDEXABLES_RAW_COLUMNS);
- assertThat(cursor.getCount()).isEqualTo(1);
- cursor.moveToNext();
- assertThat(cursor.getString(SearchIndexablesContract.COLUMN_INDEX_RAW_KEY))
- .isEqualTo("esim_list_profile");
- }
-
- @Test
- public void testQueryNonIndexableKeys() {
- mProvider.setIsEnhanced4gLteHidden(false /* isEnhanced4gLteHidden */);
- mProvider.setIsEuiccSettingsHidden(false /* isEuiccSettingsHiden */);
- when(mUserManager.isAdminUser()).thenReturn(false);
- Cursor cursor;
- cursor = mProvider.queryNonIndexableKeys(
- SearchIndexablesContract.NON_INDEXABLES_KEYS_COLUMNS);
- assertThat(cursor.getColumnNames()).isEqualTo(
- SearchIndexablesContract.NON_INDEXABLES_KEYS_COLUMNS);
- assertThat(cursor.getCount()).isEqualTo(16);
-
- when(mUserManager.isAdminUser()).thenReturn(true);
- cursor = mProvider
- .queryNonIndexableKeys(SearchIndexablesContract.NON_INDEXABLES_KEYS_COLUMNS);
- assertThat(cursor.getCount()).isEqualTo(3);
-
- mProvider.setIsEuiccSettingsHidden(true /* isEuiccSettingsHidden */);
- cursor = mProvider
- .queryNonIndexableKeys(SearchIndexablesContract.NON_INDEXABLES_KEYS_COLUMNS);
- assertThat(cursor.getCount()).isEqualTo(4);
-
- mProvider.setIsEnhanced4gLteHidden(true /* isEnhanced4gLteHidden */);
- cursor = mProvider
- .queryNonIndexableKeys(SearchIndexablesContract.NON_INDEXABLES_KEYS_COLUMNS);
- assertThat(cursor.getCount()).isEqualTo(5);
-
- mProvider.setIsWifiCallingHidden(true /* isWifiCallingHidden */);
- cursor = mProvider
- .queryNonIndexableKeys(SearchIndexablesContract.NON_INDEXABLES_KEYS_COLUMNS);
- assertThat(cursor.getCount()).isEqualTo(6);
- }
-}
diff --git a/tests/src/com/android/phone/RoamingDialogFragmentTest.java b/tests/src/com/android/phone/RoamingDialogFragmentTest.java
deleted file mode 100644
index 62633e0..0000000
--- a/tests/src/com/android/phone/RoamingDialogFragmentTest.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.phone;
-
-import android.app.Activity;
-import android.content.pm.ActivityInfo;
-import android.provider.Settings.Global;
-import android.provider.Settings.SettingNotFoundException;
-import android.support.test.espresso.matcher.PreferenceMatchers;
-import android.support.test.rule.ActivityTestRule;
-import android.support.test.filters.FlakyTest;
-import com.google.common.truth.Truth;
-import junit.framework.AssertionFailedError;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-
-import static android.support.test.espresso.Espresso.onData;
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.matcher.ViewMatchers.hasDescendant;
-import static android.support.test.espresso.matcher.ViewMatchers.isChecked;
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
-import static com.google.common.truth.Truth.assertThat;
-
-/**
- * Espresso tests to check some properties of the dialog that appears when a user
- * tries to turn on data roaming.
- */
-public class RoamingDialogFragmentTest {
-
- @Rule
- public ActivityTestRule<MobileNetworkSettings> mRule =
- new ActivityTestRule<>(MobileNetworkSettings.class);
- private Activity mActivity;
-
- /**
- * Make sure roaming is off before we start a test since this checks the dialog that only
- * shows up when we try to turn it on.
- */
- @Before
- public void disableRoaming() {
- mActivity = mRule.getActivity();
-
- // turn off data roaming if it is on
- try {
- onData(PreferenceMatchers.withTitle(R.string.roaming))
- .check(matches(hasDescendant(isChecked())))
- .perform(click());
- } catch (AssertionFailedError e) {
- // don't click the switch if it is already off.
- }
- }
-
- @FlakyTest
- @Test
- public void dataRoamingDialogPersistsOnRotation() {
- // click on the data roaming preference to trigger warning dialog
- onData(PreferenceMatchers.withTitle(R.string.roaming)).perform(click());
-
- // request both orientations to ensure at least one rotation occurs
- mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
- mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
-
- // verify the title of the dialog is visible
- onView(withText(R.string.roaming_alert_title)).check(matches(isDisplayed()));
-
- }
-
- @FlakyTest
- @Test
- public void dataRoamingEnabledWhenPositiveButtonClicked() throws SettingNotFoundException {
- // click on the data roaming preference to trigger warning dialog
- onData(PreferenceMatchers.withTitle(R.string.roaming)).perform(click());
-
- // click to confirm we want to turn on data roaming
- onView(withId(android.R.id.button1)).perform(click());
-
- // verify that the the setting has actually been changed
- assertThat(Global.getInt(mActivity.getApplicationContext().getContentResolver(),
- Global.DATA_ROAMING)).isEqualTo(1);
- }
-
- @FlakyTest
- @Test
- public void dialogDismissedOnNegativeButtonClicked() {
- // click on the data roaming preference to trigger warning dialog
- onData(PreferenceMatchers.withTitle(R.string.roaming)).perform(click());
-
- // click to cancel turning on data roaming
- onView(withId(android.R.id.button2)).perform(click());
-
- // verify the title of the dialog is gone
- onView(withText(R.string.roaming_alert_title)).check(doesNotExist());
- }
-
- @FlakyTest
- @Test
- public void dataRoamingStaysDisabledWhenDialogCanceled() throws SettingNotFoundException {
- // click on the data roaming preference to trigger warning dialog
- onData(PreferenceMatchers.withTitle(R.string.roaming)).perform(click());
-
- // click to cancel turning on data roaming
- onView(withId(android.R.id.button2)).perform(click());
-
- // verify that the the setting has not been changed
- assertThat(Global.getInt(mActivity.getApplicationContext().getContentResolver(),
- Global.DATA_ROAMING)).isEqualTo(0);
-
- }
-}
diff --git a/tests/src/com/android/phone/ecc/EccDataTest.java b/tests/src/com/android/phone/ecc/EccDataTest.java
index 8f4abc5..911d3c5 100644
--- a/tests/src/com/android/phone/ecc/EccDataTest.java
+++ b/tests/src/com/android/phone/ecc/EccDataTest.java
@@ -18,8 +18,8 @@
import static com.google.common.truth.Truth.assertThat;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
import com.android.TelephonyTestBase;
import com.android.phone.ecc.nano.ProtobufEccData;
diff --git a/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java b/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java
index 57df097..b8f2ec1 100644
--- a/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java
+++ b/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java
@@ -23,10 +23,11 @@
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
import android.telephony.euicc.EuiccManager;
+import androidx.test.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/tests/src/com/android/phone/tests/CallForwardInfoTest.java b/tests/src/com/android/phone/tests/CallForwardInfoTest.java
index acf5955..064a06e 100644
--- a/tests/src/com/android/phone/tests/CallForwardInfoTest.java
+++ b/tests/src/com/android/phone/tests/CallForwardInfoTest.java
@@ -16,17 +16,18 @@
package com.android.phone.tests;
-import android.support.test.runner.AndroidJUnit4;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
import android.telephony.PhoneNumberUtils;
+import androidx.test.runner.AndroidJUnit4;
+
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.Locale;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
/**
* Tests Related to CallForwardInfoTest
*/
diff --git a/tests/src/com/android/services/telephony/ConferenceParticipantConnectionTest.java b/tests/src/com/android/services/telephony/ConferenceParticipantConnectionTest.java
index 73fe0af..4336a20 100644
--- a/tests/src/com/android/services/telephony/ConferenceParticipantConnectionTest.java
+++ b/tests/src/com/android/services/telephony/ConferenceParticipantConnectionTest.java
@@ -16,17 +16,17 @@
package com.android.services.telephony;
+import static android.telecom.ConferenceParticipant.getParticipantAddress;
+
+import static org.junit.Assert.assertEquals;
+
import android.net.Uri;
-import android.support.test.runner.AndroidJUnit4;
-import android.telecom.Conference;
-import android.telecom.ConferenceParticipant;
+
+import androidx.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
-import static com.android.services.telephony.ConferenceParticipantConnection.getParticipantAddress;
-import static org.junit.Assert.assertEquals;
-
/**
* Tests proper parsing of conference event package participant addresses.
*/
diff --git a/tests/src/com/android/services/telephony/HoldTrackerTest.java b/tests/src/com/android/services/telephony/HoldTrackerTest.java
index 0db10e4..772a1a2 100644
--- a/tests/src/com/android/services/telephony/HoldTrackerTest.java
+++ b/tests/src/com/android/services/telephony/HoldTrackerTest.java
@@ -20,9 +20,10 @@
import static junit.framework.Assert.assertTrue;
import android.content.ComponentName;
-import android.support.test.runner.AndroidJUnit4;
import android.telecom.PhoneAccountHandle;
+import androidx.test.runner.AndroidJUnit4;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
diff --git a/tests/src/com/android/services/telephony/ImsConferenceTest.java b/tests/src/com/android/services/telephony/ImsConferenceTest.java
index 56a6240..568549b 100644
--- a/tests/src/com/android/services/telephony/ImsConferenceTest.java
+++ b/tests/src/com/android/services/telephony/ImsConferenceTest.java
@@ -16,33 +16,30 @@
package com.android.services.telephony;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.times;
-
-import static org.junit.Assert.assertTrue;
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;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import android.net.Uri;
import android.os.Looper;
+import android.telecom.Call;
+import android.telecom.Conference;
import android.telecom.ConferenceParticipant;
import android.telecom.Connection;
+import android.telecom.PhoneAccountHandle;
import android.test.suitebuilder.annotation.SmallTest;
-import com.android.internal.telephony.PhoneConstants;
-
import org.junit.Before;
import org.junit.Test;
-
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
import java.util.Arrays;
@@ -53,9 +50,6 @@
@Mock
private TelecomAccountRegistry mMockTelecomAccountRegistry;
- @Mock
- private com.android.internal.telephony.Connection mOriginalConnection;
-
private TestTelephonyConnection mConferenceHost;
@Before
@@ -66,11 +60,16 @@
}
mConferenceHost = new TestTelephonyConnection();
mConferenceHost.setManageImsConferenceCallSupported(true);
+ when(mMockTelecomAccountRegistry.getAddress(any(PhoneAccountHandle.class)))
+ .thenReturn(null);
}
@Test
@SmallTest
public void testSinglePartyEmulation() {
+ when(mMockTelecomAccountRegistry.isUsingSimCallManager(any(PhoneAccountHandle.class)))
+ .thenReturn(false);
+
ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
mMockTelephonyConnectionServiceProxy, mConferenceHost,
null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
@@ -79,20 +78,157 @@
Uri.parse("tel:6505551212"),
"A",
Uri.parse("sip:6505551212@testims.com"),
- Connection.STATE_ACTIVE);
+ 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);
+ Connection.STATE_ACTIVE,
+ Call.Details.DIRECTION_INCOMING);
imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
Arrays.asList(participant1, participant2));
assertEquals(2, imsConference.getNumberOfParticipants());
+ verify(mMockTelephonyConnectionServiceProxy, times(2)).addExistingConnection(
+ any(PhoneAccountHandle.class), any(Connection.class),
+ eq(imsConference));
// Because we're pretending its a single party, there should be no participants any more.
imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
Arrays.asList(participant1));
assertEquals(0, imsConference.getNumberOfParticipants());
+ verify(mMockTelephonyConnectionServiceProxy, times(2)).removeConnection(
+ any(Connection.class));
+ reset(mMockTelephonyConnectionServiceProxy);
+
+ // Back to 2!
+ imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
+ Arrays.asList(participant1, participant2));
+ assertEquals(2, imsConference.getNumberOfParticipants());
+ verify(mMockTelephonyConnectionServiceProxy, times(2)).addExistingConnection(
+ any(PhoneAccountHandle.class), any(Connection.class),
+ eq(imsConference));
+ }
+
+ /**
+ * We have seen a scenario on a carrier where a conference event package comes in just prior to
+ * the call disconnecting with only the conference host in it. This caused a problem because
+ * it triggered exiting single party conference mode (due to a bug) and caused the call to not
+ * be logged.
+ */
+ @Test
+ @SmallTest
+ public void testSinglePartyEmulationWithPreDisconnectParticipantUpdate() {
+ when(mMockTelecomAccountRegistry.isUsingSimCallManager(any(PhoneAccountHandle.class)))
+ .thenReturn(false);
+
+ ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
+ mMockTelephonyConnectionServiceProxy, mConferenceHost,
+ null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+
+ final boolean[] isConferenceState = new boolean[1];
+ Conference.Listener conferenceListener = new Conference.Listener() {
+ @Override
+ public void onConferenceStateChanged(Conference c, boolean isConference) {
+ super.onConferenceStateChanged(c, isConference);
+ isConferenceState[0] = isConference;
+ }
+ };
+ imsConference.addListener(conferenceListener);
+
+ 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());
+ verify(mMockTelephonyConnectionServiceProxy, times(2)).addExistingConnection(
+ any(PhoneAccountHandle.class), any(Connection.class),
+ eq(imsConference));
+
+ // Because we're pretending its a single party, there should be only a single participant.
+ imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
+ Arrays.asList(participant1));
+ assertEquals(0, imsConference.getNumberOfParticipants());
+ verify(mMockTelephonyConnectionServiceProxy, times(2)).removeConnection(
+ any(Connection.class));
+
+ // Emulate a pre-disconnect conference event package; there will be zero participants.
+ imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
+ Arrays.asList());
+
+ // We should still not be considered a conference (hence we should be logging this call).
+ assertFalse(isConferenceState[0]);
+ }
+
+ /**
+ * Verify that the single party emulate correctly when the conference start with only
+ * one participant.
+ */
+ @Test
+ @SmallTest
+ public void testSinglePartyEmulationWithOneParticipantAtBeginning() {
+ when(mMockTelecomAccountRegistry.isUsingSimCallManager(any(PhoneAccountHandle.class)))
+ .thenReturn(false);
+
+ ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
+ mMockTelephonyConnectionServiceProxy, mConferenceHost,
+ null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+
+ ConferenceParticipant participant1 = new ConferenceParticipant(
+ Uri.parse("tel:6505551212"),
+ "A",
+ Uri.parse("sip:6505551212@testims.com"),
+ Connection.STATE_ACTIVE,
+ Call.Details.DIRECTION_INCOMING);
+ imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
+ Arrays.asList(participant1));
+ assertTrue(imsConference.isEmulatingSinglePartyCall());
+ }
+
+ /**
+ * Verify that we do not use single party emulation when a sim call manager is in use.
+ */
+ @Test
+ @SmallTest
+ public void testNoSinglePartyEmulationWithSimCallManager() {
+ // Make it look like there is a sim call manager in use.
+ when(mMockTelecomAccountRegistry.isUsingSimCallManager(
+ any(PhoneAccountHandle.class))).thenReturn(true);
+
+ ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
+ mMockTelephonyConnectionServiceProxy, mConferenceHost,
+ null /* phoneAccountHandle */, () -> true /* featureFlagProxy */);
+
+ 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());
+
+ // Because we're not using single party emulation, should still be one participant.
+ imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
+ Arrays.asList(participant1));
+ assertEquals(1, imsConference.getNumberOfParticipants());
// Back to 2!
imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
@@ -103,6 +239,9 @@
@Test
@SmallTest
public void testNormalConference() {
+ when(mMockTelecomAccountRegistry.isUsingSimCallManager(any(PhoneAccountHandle.class)))
+ .thenReturn(false);
+
ImsConference imsConference = new ImsConference(mMockTelecomAccountRegistry,
mMockTelephonyConnectionServiceProxy, mConferenceHost,
null /* phoneAccountHandle */, () -> false /* featureFlagProxy */);
@@ -111,12 +250,14 @@
Uri.parse("tel:6505551212"),
"A",
Uri.parse("sip:6505551212@testims.com"),
- Connection.STATE_ACTIVE);
+ 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);
+ Connection.STATE_ACTIVE,
+ Call.Details.DIRECTION_INCOMING);
imsConference.handleConferenceParticipantsUpdate(mConferenceHost,
Arrays.asList(participant1, participant2));
assertEquals(2, imsConference.getNumberOfParticipants());
diff --git a/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java b/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java
index d9de2e8..8b46bf0 100644
--- a/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java
+++ b/tests/src/com/android/services/telephony/RadioOnStateListenerTest.java
@@ -28,10 +28,11 @@
import android.os.AsyncResult;
import android.os.Handler;
-import android.support.test.runner.AndroidJUnit4;
import android.telephony.ServiceState;
import android.test.suitebuilder.annotation.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
import com.android.TelephonyTestBase;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
diff --git a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
index a18adb8..ab4c067 100644
--- a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
@@ -32,8 +32,6 @@
import android.os.AsyncResult;
import android.os.Bundle;
import android.os.Handler;
-import android.support.test.filters.FlakyTest;
-import android.support.test.runner.AndroidJUnit4;
import android.telecom.DisconnectCause;
import android.telecom.TelecomManager;
import android.telephony.RadioAccessFamily;
@@ -41,10 +39,14 @@
import android.telephony.TelephonyManager;
import android.test.suitebuilder.annotation.SmallTest;
+import androidx.test.filters.FlakyTest;
+import androidx.test.runner.AndroidJUnit4;
+
import com.android.TelephonyTestBase;
import com.android.internal.telephony.CallStateException;
import com.android.internal.telephony.Connection;
import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.emergency.EmergencyNumberTracker;
import com.android.internal.telephony.gsm.SuppServiceNotification;
import org.junit.After;
@@ -71,6 +73,7 @@
@Mock TelephonyConnectionService.TelephonyManagerProxy mTelephonyManagerProxy;
@Mock TelephonyConnectionService.SubscriptionManagerProxy mSubscriptionManagerProxy;
@Mock TelephonyConnectionService.PhoneFactoryProxy mPhoneFactoryProxy;
+ @Mock EmergencyNumberTracker mEmergencyNumberTracker;
TelephonyConnectionService mTestConnectionService;
@@ -817,6 +820,8 @@
when(phone.getServiceState()).thenReturn(testServiceState);
when(phone.getPhoneId()).thenReturn(phoneId);
when(phone.getDefaultPhone()).thenReturn(phone);
+ when(phone.getEmergencyNumberTracker()).thenReturn(mEmergencyNumberTracker);
+ when(mEmergencyNumberTracker.getEmergencyNumber(anyString())).thenReturn(null);
return phone;
}
diff --git a/tests/src/com/android/services/telephony/TestTelephonyConnection.java b/tests/src/com/android/services/telephony/TestTelephonyConnection.java
index c064ef6..f77fd30 100644
--- a/tests/src/com/android/services/telephony/TestTelephonyConnection.java
+++ b/tests/src/com/android/services/telephony/TestTelephonyConnection.java
@@ -23,6 +23,7 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -31,6 +32,7 @@
import com.android.internal.telephony.Connection;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.emergency.EmergencyNumberTracker;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
@@ -56,6 +58,9 @@
@Mock
Resources mMockResources;
+ @Mock
+ EmergencyNumberTracker mEmergencyNumberTracker;
+
private Phone mMockPhone;
private int mNotifyPhoneAccountChangedCount = 0;
private List<String> mLastConnectionEvents = new ArrayList<>();
@@ -80,11 +85,15 @@
doNothing().when(mMockRadioConnection).addListener(any(Connection.Listener.class));
doNothing().when(mMockRadioConnection).addPostDialListener(
any(Connection.PostDialListener.class));
+ when(mEmergencyNumberTracker.getEmergencyNumber(anyString())).thenReturn(null);
+ when(mMockPhone.getEmergencyNumberTracker()).thenReturn(mEmergencyNumberTracker);
when(mMockPhone.getRingingCall()).thenReturn(mMockCall);
when(mMockPhone.getContext()).thenReturn(mMockContext);
+ when(mMockPhone.getCurrentSubscriberUris()).thenReturn(null);
when(mMockContext.getResources()).thenReturn(mMockResources);
when(mMockResources.getBoolean(anyInt())).thenReturn(false);
when(mMockPhone.getDefaultPhone()).thenReturn(mMockPhone);
+ when(mMockPhone.getPhoneType()).thenReturn(PhoneConstants.PHONE_TYPE_IMS);
when(mMockCall.getState()).thenReturn(Call.State.ACTIVE);
when(mMockCall.getPhone()).thenReturn(mMockPhone);
}