Merge "Update padding for panel" into qt-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 603900c..9dd4732 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -102,13 +102,15 @@
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
+ <protected-broadcast android:name="com.android.settings.DELETE_SIM_PROFILE_RESULT"/>
+
<application android:label="@string/settings_label"
android:icon="@drawable/ic_launcher_settings"
android:theme="@style/Theme.Settings"
android:hardwareAccelerated="true"
android:requiredForAllUsers="true"
android:supportsRtl="true"
- android:allowBackup="false"
+ android:backupAgent="com.android.settings.backup.SettingsBackupHelper"
android:usesCleartextTraffic="true"
android:defaultToDeviceProtectedStorage="true"
android:directBootAware="true"
@@ -136,6 +138,7 @@
<intent-filter android:priority="1">
<action android:name="android.settings.NETWORK_OPERATOR_SETTINGS" />
<action android:name="android.settings.DATA_ROAMING_SETTINGS" />
+ <action android:name="android.settings.MMS_MESSAGE_SETTING" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
@@ -436,6 +439,17 @@
android:value="com.android.settings.biometrics.face.FaceSettings" />
</activity>
+ <activity android:name="Settings$FingerprintSettingsActivity"
+ android:label="@string/security_settings_fingerprint_preference_title"
+ android:icon="@drawable/ic_fingerprint_header">
+ <intent-filter>
+ <action android:name="android.settings.FINGERPRINT_SETTINGS" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+ android:value="com.android.settings.biometrics.fingerprint.FingerprintSettings$FingerprintSettingsFragment" />
+ </activity>
+
<activity android:name=".bluetooth.DevicePickerActivity"
android:label="@string/device_picker"
android:configChanges="orientation|keyboardHidden|screenSize"
@@ -1463,8 +1477,7 @@
<activity
android:name="Settings$TextToSpeechSettingsActivity"
- android:label="@string/tts_settings"
- android:parentActivityName="Settings">
+ android:label="@string/tts_settings">
<intent-filter android:priority="1">
<action android:name="com.android.settings.TTS_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2612,6 +2625,7 @@
<receiver android:name=".sim.SimSelectNotification">
<intent-filter>
<action android:name="android.telephony.action.PRIMARY_SUBSCRIPTION_LIST_CHANGED"/>
+ <action android:name="android.settings.ENABLE_MMS_DATA_REQUEST"/>
</intent-filter>
</receiver>
diff --git a/res/drawable-nodpi/accessibility_timeout b/res/drawable-nodpi/accessibility_timeout
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/res/drawable-nodpi/accessibility_timeout
diff --git a/res/drawable/button_border_selected.xml b/res/drawable/button_border_selected.xml
index 2681bf0..9701b38 100644
--- a/res/drawable/button_border_selected.xml
+++ b/res/drawable/button_border_selected.xml
@@ -18,6 +18,6 @@
android:shape="rectangle">
<stroke
android:width="2dp"
- android:color="?android:attr/colorAccent"/>
+ android:color="?android:attr/textColorSecondary"/>
<corners android:radius="@dimen/rect_button_radius" />
-</shape>
\ No newline at end of file
+</shape>
diff --git a/res/drawable/button_border_unselected.xml b/res/drawable/button_border_unselected.xml
index 72e9076..4153303 100644
--- a/res/drawable/button_border_unselected.xml
+++ b/res/drawable/button_border_unselected.xml
@@ -18,7 +18,7 @@
android:shape="rectangle">
<stroke
android:width="2dp"
- android:color="@color/notification_importance_button_unselected"/>
+ android:color="?android:attr/textColorSecondary"/>
<corners android:radius="@dimen/rect_button_radius" />
-</shape>
\ No newline at end of file
+</shape>
diff --git a/res/drawable/ic_settings_gestures.xml b/res/drawable/ic_settings_gestures.xml
index 4fe0bf3..c75e7c3 100644
--- a/res/drawable/ic_settings_gestures.xml
+++ b/res/drawable/ic_settings_gestures.xml
@@ -20,9 +20,6 @@
android:viewportHeight="32.0"
android:tint="?android:attr/colorControlNormal">
<path
- android:fillColor="#FF000000"
- android:pathData="M20,20.2V24H6V5.3h8.7l2.4,-4H7.6c-2.2,0 -4,1.8 -4,4v21.3c0,2.2 1.8,4 4,4h10.7c2.2,0 4,-1.8 4,-4V14.9L20,20.2zM15.6,28h-5.3v-1.3h5.3V28z"/>
- <path
- android:fillColor="#FF000000"
- android:pathData="M28.5,7l1.1,-2.4L32,3.5l-2.4,-1.1L28.5,0l-1.1,2.4L25,3.5l2.4,1.1L28.5,7zM21,7.4l-2.2,-4.8l-2.2,4.8l-4.8,2.2l4.8,2.2l2.2,4.8l2.2,-4.8l4.8,-2.2L21,7.4zM28.5,12.2l-1.1,2.4L25,15.6l2.4,1.1l1.1,2.4l1.1,-2.4l2.4,-1.1l-2.4,-1.1L28.5,12.2z"/>
+ android:fillColor="@android:color/white"
+ android:pathData="M4.59 6.89c0.7-0.71 1.4-1.35 1.71-1.22 0.5 0.2 0 1.03-0.3 1.52-0.25 0.42 -2.86 3.89-2.86 6.31 0 1.28 0.48 2.34 1.34 2.98 0.75 0.56 1.74 0.73 2.64 0.46 1.07-0.31 1.95-1.4 3.06-2.77 1.21-1.49 2.83-3.44 4.08-3.44 1.63 0 1.65 1.01 1.76 1.79-3.78 0.64 -5.38 3.67-5.38 5.37 0 1.7 1.44 3.09 3.21 3.09 1.63 0 4.29-1.33 4.69-6.1H21v-2.5h-2.47c-0.15-1.65-1.09-4.2-4.03-4.2-2.25 0-4.18 1.91-4.94 2.84-0.58 0.73 -2.06 2.48-2.29 2.72-0.25 0.3 -0.68 0.84 -1.11 0.84 -0.45 0-0.72-0.83-0.36-1.92 0.35 -1.09 1.4-2.86 1.85-3.52 0.78 -1.14 1.3-1.92 1.3-3.28C8.95 3.69 7.31 3 6.44 3 5.12 3 3.97 4 3.72 4.25c-0.36 0.36 -0.66 0.66 -0.88 0.93 l1.75 1.71zm9.29 11.66c-0.31 0-0.74-0.26-0.74-0.72 0-0.6 0.73 -2.2 2.87-2.76-0.3 2.69-1.43 3.48-2.13 3.48z" />
</vector>
\ No newline at end of file
diff --git a/res/layout/notif_importance_preference.xml b/res/layout/notif_importance_preference.xml
index bc0d5aa..3507675 100644
--- a/res/layout/notif_importance_preference.xml
+++ b/res/layout/notif_importance_preference.xml
@@ -21,53 +21,92 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
+ android:padding="@dimen/notification_importance_toggle_marginTop"
android:orientation="vertical">
- <LinearLayout
- android:id="@+id/buttons"
+ <RelativeLayout
+ android:id="@+id/alert"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/notification_importance_toggle_marginTop"
- android:orientation="horizontal"
- android:gravity="center">
+ android:padding="@dimen/notification_importance_button_padding"
+ android:clickable="true"
+ android:focusable="true">
+ <ImageView
+ android:id="@+id/alert_icon"
+ android:src="@drawable/ic_notification_alert"
+ android:background="@android:color/transparent"
+ android:layout_gravity="center"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:clickable="false"
+ android:focusable="false"/>
+ <TextView
+ android:id="@+id/alert_label"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:maxLines="1"
+ android:clickable="false"
+ android:focusable="false"
+ android:layout_toEndOf="@id/alert_icon"
+ android:layout_marginStart="@dimen/notification_importance_drawable_padding"
+ android:textAppearance="@style/TextAppearance.NotificationImportanceButton.Unselected"
+ android:text="@string/notification_alert_title"/>
+ <TextView
+ android:id="@+id/alert_summary"
+ android:paddingTop="@dimen/notification_importance_button_padding"
+ android:text="@string/notification_channel_summary_default"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:clickable="false"
+ android:focusable="false"
+ android:ellipsize="end"
+ android:maxLines="2"
+ android:layout_below="@id/alert_icon"
+ android:textAppearance="@style/TextAppearance.NotificationImportanceDetail"/>
+ </RelativeLayout>
- <Button
- android:id="@+id/alert"
- android:layout_width="wrap_content"
- android:layout_height="@dimen/notification_importance_toggle_size"
- android:minWidth="@dimen/notification_importance_button_width"
- android:paddingStart="@dimen/notification_importance_button_horiz_padding"
- android:paddingEnd="@dimen/notification_importance_button_horiz_padding"
- android:drawablePadding="@dimen/notification_importance_drawable_padding"
- android:foreground="@drawable/button_ripple_radius"
- android:drawableLeft="@drawable/ic_notification_alert"
- android:text="@string/notification_alert_title" />
-
- <Button
- android:id="@+id/silence"
- android:layout_width="wrap_content"
- android:layout_height="@dimen/notification_importance_toggle_size"
- android:minWidth="@dimen/notification_importance_button_width"
- android:paddingStart="@dimen/notification_importance_button_horiz_padding"
- android:paddingEnd="@dimen/notification_importance_button_horiz_padding"
- android:drawablePadding="@dimen/notification_importance_drawable_padding"
- android:foreground="@drawable/button_ripple_radius"
- android:layout_marginStart="@dimen/notification_importance_button_separation"
- android:drawableLeft="@drawable/ic_notification_silence"
- android:text="@string/notification_silence_title" />
-
- </LinearLayout>
-
- <TextView
- android:id="@+id/description"
+ <RelativeLayout
+ android:id="@+id/silence"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="@string/notification_alert_title"
- android:gravity="center"
- android:layout_marginTop="@dimen/notification_importance_text_marginTop"
- android:layout_marginBottom="@dimen/notification_importance_toggle_marginBottom"
- android:paddingStart="@dimen/notification_importance_description_padding"
- android:paddingEnd="@dimen/notification_importance_description_padding"
- android:textAppearance="@style/TextAppearance.NotificationImportanceDetail" />
+ android:padding="@dimen/notification_importance_button_padding"
+ android:layout_marginTop="@dimen/notification_importance_button_separation"
+ android:clickable="true"
+ android:focusable="true">
+ <ImageView
+ android:id="@+id/silence_icon"
+ android:src="@drawable/ic_notification_silence"
+ android:background="@android:color/transparent"
+ android:layout_gravity="center"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:clickable="false"
+ android:focusable="false"/>
+ <TextView
+ android:id="@+id/silence_label"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:maxLines="1"
+ android:clickable="false"
+ android:focusable="false"
+ android:layout_toEndOf="@id/silence_icon"
+ android:layout_marginStart="@dimen/notification_importance_drawable_padding"
+ android:textAppearance="@style/TextAppearance.NotificationImportanceButton.Unselected"
+ android:text="@string/notification_silence_title"/>
+ <TextView
+ android:id="@+id/silence_summary"
+ android:paddingTop="@dimen/notification_importance_button_padding"
+ android:text="@string/notification_channel_summary_default"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:clickable="false"
+ android:focusable="false"
+ android:ellipsize="end"
+ android:maxLines="2"
+ android:layout_below="@id/silence_icon"
+ android:textAppearance="@style/TextAppearance.NotificationImportanceDetail"/>
+ </RelativeLayout>
</LinearLayout>
\ No newline at end of file
diff --git a/res/raw/accessibility_timeout.mp4 b/res/raw/accessibility_timeout.mp4
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/res/raw/accessibility_timeout.mp4
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 3473fe6..808d728 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -1097,20 +1097,12 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Swerfvoorkeur"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobiel"</item>
<item msgid="2838022395783120596">"Net Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobiel"</item>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 9e39e5f..54ba5ab 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -1098,20 +1098,12 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"ውጫዊ አገልግሎት ምርጫ"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"ተንቀሳቃሽ ስልክ"</item>
<item msgid="2838022395783120596">"Wi-Fi ብቻ"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"ተንቀሳቃሽ ስልክ"</item>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 72e17cc..31404f0 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -1169,20 +1169,12 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"تفضيل التجوال"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"الجوّال"</item>
<item msgid="2838022395783120596">"Wi-Fi فقط"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"الجوّال"</item>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index d33232b..2332a4c 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -1096,20 +1096,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"ৰ\'মিঙৰ অগ্ৰাধিকাৰ"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"ৱাই-ফাই"</item>
<item msgid="7715869266611010880">"ম’বাইল"</item>
<item msgid="2838022395783120596">"ৱাই-ফাই মাত্ৰ"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"ৱাই-ফাই"</item>
<item msgid="1118703915148755405">"ম’বাইল"</item>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index e760a83..6967a57 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Roaminq seçimi"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobil"</item>
<item msgid="2838022395783120596">"Yalnız Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobil"</item>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index df2223d..11c49a6 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -1115,20 +1115,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Podešavanja rominga"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobilni podaci"</item>
<item msgid="2838022395783120596">"Samo Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobilni podaci"</item>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 104fe3e..1d5230e 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -1133,20 +1133,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Налады роўмінгу"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Мабільны інтэрнэт"</item>
<item msgid="2838022395783120596">"Толькі Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Мабільны інтэрнэт"</item>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 9f6fb7c..e0af226 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Предпочитание при роуминг"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Мобилни данни"</item>
<item msgid="2838022395783120596">"Само Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Мобилни данни"</item>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index f58fdb2..e76878c 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"পছন্দের রোমিং"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"ওয়াই-ফাই"</item>
<item msgid="7715869266611010880">"মোবাইল"</item>
<item msgid="2838022395783120596">"শুধুমাত্র ওয়াই-ফাই"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"ওয়াই-ফাই"</item>
<item msgid="1118703915148755405">"মোবাইল"</item>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 2f92a60..489c6ef 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -1115,20 +1115,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Postavke rominga"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"WiFi"</item>
<item msgid="7715869266611010880">"Mobilna mreža"</item>
<item msgid="2838022395783120596">"Samo WiFi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"WiFi"</item>
<item msgid="1118703915148755405">"Mobilna mreža"</item>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 003d355..c97e1b3 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Preferència en itinerància"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Dades mòbils"</item>
<item msgid="2838022395783120596">"Només Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Dades mòbils"</item>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 4d6f832..13a08c1 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -1133,20 +1133,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Předvolba pro roaming"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobilní"</item>
<item msgid="2838022395783120596">"Pouze Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobilní"</item>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 5c996a9..927eed2 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Præferencer for roaming"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobil"</item>
<item msgid="2838022395783120596">"Kun Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobil"</item>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index d08ae17..5da47d8 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Roaming-Präferenz"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"WLAN"</item>
<item msgid="7715869266611010880">"Mobil"</item>
<item msgid="2838022395783120596">"Nur WLAN"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"WLAN"</item>
<item msgid="1118703915148755405">"Mobil"</item>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index b86613f..4b02fb0 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Προτίμηση περιαγωγής"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Δίκτυο κινητής τηλεφωνίας"</item>
<item msgid="2838022395783120596">"Μόνο Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Δίκτυο κινητής τηλεφωνίας"</item>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 355700e..e0be4f7 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Roaming preference"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobile"</item>
<item msgid="2838022395783120596">"Wi-Fi only"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobile"</item>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 6cc22af..a61e05a 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Roaming preference"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobile"</item>
<item msgid="2838022395783120596">"Wi-Fi only"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobile"</item>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 355700e..e0be4f7 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Roaming preference"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobile"</item>
<item msgid="2838022395783120596">"Wi-Fi only"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobile"</item>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 355700e..e0be4f7 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Roaming preference"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobile"</item>
<item msgid="2838022395783120596">"Wi-Fi only"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobile"</item>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index d5fe339..653caab 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -1096,20 +1096,11 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Roaming preference"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobile"</item>
<item msgid="2838022395783120596">"Wi-Fi only"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobile"</item>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index bfeef42..5ceae78 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Preferencia de la itinerancia"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Móvil"</item>
<item msgid="2838022395783120596">"Solo Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Móvil"</item>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 4b9a325..5236eb2 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Preferencia de itinerancia"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Móvil"</item>
<item msgid="2838022395783120596">"Solo Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Móvil"</item>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 918a5a1..d9390aa 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Rändluse eelistus"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"WiFi"</item>
<item msgid="7715869266611010880">"Mobiilne andmeside"</item>
<item msgid="2838022395783120596">"Ainult WiFi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"WiFi"</item>
<item msgid="1118703915148755405">"Mobiilne andmeside"</item>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 6c6fa3f..2f5b752 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Ibiltaritzako hobespena"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wifia"</item>
<item msgid="7715869266611010880">"Datu-konexioa"</item>
<item msgid="2838022395783120596">"Wi-Fi sarea soilik"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wifia"</item>
<item msgid="1118703915148755405">"Datu-konexioa"</item>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 61a2e0c..a2f6d6d 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"تنظیم برگزیده فراگردی"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"داده شبکه تلفن همراه"</item>
<item msgid="2838022395783120596">"فقط Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"داده شبکه تلفن همراه"</item>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 0ed052c..a474aa9 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Roaming-asetus"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobiili"</item>
<item msgid="2838022395783120596">"Vain Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobiili"</item>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index f741c07..7f3985e 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Préférences d\'itinérance"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Cellulaire"</item>
<item msgid="2838022395783120596">"Wi-Fi seulement"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Cellulaire"</item>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 56a5a9c..dc5eeaf 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Préférences en matière d\'itinérance"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobile"</item>
<item msgid="2838022395783120596">"Wi-Fi uniquement"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobile"</item>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 9a83006..1757581 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Preferencia de itinerancia"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wifi"</item>
<item msgid="7715869266611010880">"Datos móbiles"</item>
<item msgid="2838022395783120596">"Só por wifi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wifi"</item>
<item msgid="1118703915148755405">"Datos móbiles"</item>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index d981a85..b221acf 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"રોમિંગ પસંદગી"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"વાઇ-ફાઇ"</item>
<item msgid="7715869266611010880">"મોબાઇલ"</item>
<item msgid="2838022395783120596">"ફક્ત વાઇ-ફાઇ"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"વાઇ-ફાઇ"</item>
<item msgid="1118703915148755405">"મોબાઇલ"</item>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 7889ca0..37f54f6 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"रोमिंग की प्राथमिकताएं"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"वाई-फ़ाई"</item>
<item msgid="7715869266611010880">"मोबाइल"</item>
<item msgid="2838022395783120596">"केवल वाई-फ़ाई"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"वाई-फ़ाई"</item>
<item msgid="1118703915148755405">"मोबाइल"</item>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index e485057..fa5ddf0 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -1115,20 +1115,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Željena postavka za roaming"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobilni uređaj"</item>
<item msgid="2838022395783120596">"Samo Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobilni uređaj"</item>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index e8e791f..4adbacb 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Barangolási beállítás"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobil"</item>
<item msgid="2838022395783120596">"Csak Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobil"</item>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 140357b..b67f4ad 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Ռոումինգի կարգավորումներ"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Բջջային"</item>
<item msgid="2838022395783120596">"Միայն Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Բջջային"</item>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index bb3eed7..f44ba29 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Preferensi roaming"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Ponsel"</item>
<item msgid="2838022395783120596">"Khusus Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Ponsel"</item>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index f316da7..93c5951 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Stillingar fyrir reiki"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Farsímakerfi"</item>
<item msgid="2838022395783120596">"Wi-Fi eingöngu"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Farsímakerfi"</item>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index f0cdfea..ec807ac 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Preferenze durante il roaming"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Rete mobile"</item>
<item msgid="2838022395783120596">"Solo Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Rete mobile"</item>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index ccec6dd..9650b60 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -1133,20 +1133,11 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"אפשרות נדידה מועדפת"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"סלולרי"</item>
<item msgid="2838022395783120596">"Wi-Fi בלבד"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"סלולרי"</item>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index aa8ad9e..e639600 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"ローミング設定"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"モバイル"</item>
<item msgid="2838022395783120596">"Wi-Fi のみ"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"モバイル"</item>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 988d950..c91d24e 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"როუმინგის პარამეტრი"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"მობილური"</item>
<item msgid="2838022395783120596">"მხოლოდ Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"მობილური"</item>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index b2d4f29..baf65ff 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Роуминг параметрі"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Мобильдік"</item>
<item msgid="2838022395783120596">"Тек Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Мобильдік"</item>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 9172dbd..da7b0fe 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"ចំណូលចិត្តរ៉ូមីង"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"ទូរសព្ទចល័ត"</item>
<item msgid="2838022395783120596">"Wi-Fi តែប៉ុណ្ណោះ"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"ទូរសព្ទចល័ត"</item>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 74466cf..fce3ed6 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"ರೋಮಿಂಗ್ ಪ್ರಾಶಸ್ತ್ಯ"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"ವೈ-ಫೈ"</item>
<item msgid="7715869266611010880">"ಮೊಬೈಲ್"</item>
<item msgid="2838022395783120596">"ವೈ-ಫೈ ಮಾತ್ರ"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"ವೈ-ಫೈ"</item>
<item msgid="1118703915148755405">"ಮೊಬೈಲ್"</item>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index a990afa..050947f 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"로밍 환경설정"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"모바일"</item>
<item msgid="2838022395783120596">"Wi-Fi에서만"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"모바일"</item>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 6c380b3..e41c7e7 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -1096,20 +1096,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Роуминг жөндөөлөрү"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi‑Fi"</item>
<item msgid="7715869266611010880">"Мобилдик түзмөк"</item>
<item msgid="2838022395783120596">"Wi-Fi гана"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi‑Fi"</item>
<item msgid="1118703915148755405">"Мобилдик түзмөк"</item>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 009e616..679ec8a 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"ການຕັ້ງຄ່າໂຣມມິງ"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"ມືຖື"</item>
<item msgid="2838022395783120596">"Wi-Fi ເທົ່ານັ້ນ"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"ມືຖື"</item>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index b039635..57ebdc4 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -1133,20 +1133,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Tarptinklinio ryšio nuostata"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"„Wi-Fi“ ryšys"</item>
<item msgid="7715869266611010880">"Mobiliojo ryšio tinklas"</item>
<item msgid="2838022395783120596">"Tik „Wi-Fi“ ryšys"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"„Wi-Fi“ ryšys"</item>
<item msgid="1118703915148755405">"Mobiliojo ryšio tinklas"</item>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index becb0d1..f56d2af 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -1115,20 +1115,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Viesabonēšanas preference"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobilie dati"</item>
<item msgid="2838022395783120596">"Tikai Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobilie dati"</item>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 9335197..003fd62 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Поставки за роаминг"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Мобилен интернет"</item>
<item msgid="2838022395783120596">"Само Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Мобилен интернет"</item>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index a2e7b68..7ebbfa8 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"റോമിംഗ് മുൻഗണന"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"വൈ-ഫൈ"</item>
<item msgid="7715869266611010880">"മൊബൈൽ"</item>
<item msgid="2838022395783120596">"വൈ-ഫൈ മാത്രം"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"വൈ-ഫൈ"</item>
<item msgid="1118703915148755405">"മൊബൈൽ"</item>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 519998a..1734543 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Роуминг тохиргоо"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Мобайл"</item>
<item msgid="2838022395783120596">"Зөвхөн Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Мобайл"</item>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 41a0d80..a2ededb 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"रोमिंग प्राधान्य"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"वाय-फाय"</item>
<item msgid="7715869266611010880">"मोबाइल"</item>
<item msgid="2838022395783120596">"केवळ वाय-फाय"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"वाय-फाय"</item>
<item msgid="1118703915148755405">"मोबाइल"</item>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 2f3bbee..acb57c2 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Pilihan perayauan"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mudah alih"</item>
<item msgid="2838022395783120596">"Wi-Fi sahaja"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mudah alih"</item>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 7d663dd..8d3ed52 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"အခြားကွန်ရက်ဝင်သုံးမှုဆိုင်ရာရွေးချယ်မှုများ"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"မိုဘိုင်း"</item>
<item msgid="2838022395783120596">"Wi-Fi သာလျှင်"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"မိုဘိုင်း"</item>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index f8c7d94..d881fe7 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Roaming-innstilling"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobil"</item>
<item msgid="2838022395783120596">"Bare Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobil"</item>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index a23ce06..12088bb 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"रोमिङ सम्बन्धी प्राथमिकता"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"मोबाइल"</item>
<item msgid="2838022395783120596">"Wi-Fi मात्र"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"मोबाइल"</item>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index a85da56..a05f650 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Roamingvoorkeur"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wifi"</item>
<item msgid="7715869266611010880">"Mobiel"</item>
<item msgid="2838022395783120596">"Alleen wifi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wifi"</item>
<item msgid="1118703915148755405">"Mobiel"</item>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 7af1953..41c79ca 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -1096,20 +1096,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"ରୋମିଙ୍ଗ ପସନ୍ଦ"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"ମୋବାଇଲ୍"</item>
<item msgid="2838022395783120596">"କେବଳ ୱାଇ-ଫାଇ"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"ୱାଇ-ଫାଇ"</item>
<item msgid="1118703915148755405">"ମୋବାଇଲ୍"</item>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index e436e65..5979153 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"ਰੋਮਿੰਗ ਤਰਜੀਹ"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"ਵਾਈ-ਫਾਈ"</item>
<item msgid="7715869266611010880">"ਮੋਬਾਈਲ"</item>
<item msgid="2838022395783120596">"ਸਿਰਫ਼ ਵਾਈ-ਫਾਈ"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"ਵਾਈ-ਫਾਈ"</item>
<item msgid="1118703915148755405">"ਮੋਬਾਈਲ"</item>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index d12ad52..a43ba9a 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -1133,20 +1133,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Preferencje dotyczące roamingu"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Komórkowe"</item>
<item msgid="2838022395783120596">"Tylko Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Komórkowe"</item>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 0270907..bd4302e 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Preferências de roaming"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Celular"</item>
<item msgid="2838022395783120596">"Somente Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Celular"</item>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index a31c36e..44d7020 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Preferência de roaming"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Rede móvel"</item>
<item msgid="2838022395783120596">"Apenas Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Rede móvel"</item>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 0270907..bd4302e 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Preferências de roaming"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Celular"</item>
<item msgid="2838022395783120596">"Somente Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Celular"</item>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 5293de2..bc4f3fb 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -1115,20 +1115,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Preferințe privind roamingul"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Date mobile"</item>
<item msgid="2838022395783120596">"Numai Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Date mobile"</item>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 824d5d2..65e22ce 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -1133,20 +1133,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Настройки роуминга"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Мобильный Интернет"</item>
<item msgid="2838022395783120596">"Только Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Мобильный Интернет"</item>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index cf98ac4..ea091eb 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"රෝමිං මනාප"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"ජංගම"</item>
<item msgid="2838022395783120596">"Wi-Fi පමණයි"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"ජංගම"</item>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index d66418e..48812e8 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -1133,20 +1133,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Predvoľby roamingu"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi‑Fi"</item>
<item msgid="7715869266611010880">"Mobilné dáta"</item>
<item msgid="2838022395783120596">"Len Wi‑Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi‑Fi"</item>
<item msgid="1118703915148755405">"Mobilné dáta"</item>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 68b8cad..4dd61a6 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -1133,20 +1133,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Prednostna izbira za gostovanje"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobilno"</item>
<item msgid="2838022395783120596">"Samo Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobilno"</item>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index b71afbf..8b23166 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Preferenca e roaming-ut"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Celular"</item>
<item msgid="2838022395783120596">"Vetëm Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Celular"</item>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 5574fb1..53314ee 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -1115,20 +1115,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Подешавања роминга"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Мобилни подаци"</item>
<item msgid="2838022395783120596">"Само Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Мобилни подаци"</item>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 7af351b..39980de 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Inställning för roaming"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobil enhet"</item>
<item msgid="2838022395783120596">"Endast Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobil enhet"</item>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 8f4c94f..7d176ec 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Mapendeleo ya mitandao ya ng\'ambo"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mtandao wa simu"</item>
<item msgid="2838022395783120596">"Wi-Fi pekee"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mtandao wa simu"</item>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 890fa89..ef6e7a2 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -1098,20 +1098,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"ரோமிங் விருப்பத்தேர்வு"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"வைஃபை"</item>
<item msgid="7715869266611010880">"மொபைல்"</item>
<item msgid="2838022395783120596">"வைஃபை மட்டும்"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"வைஃபை"</item>
<item msgid="1118703915148755405">"மொபைல்"</item>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 41c9b52..29d02da 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"రోమింగ్ ప్రాధాన్యత"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"మొబైల్"</item>
<item msgid="2838022395783120596">"Wi-Fi మాత్రమే"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"మొబైల్"</item>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 2ddef3c..1268cb1 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"ค่ากำหนดโรมมิ่ง"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"อินเทอร์เน็ตมือถือ"</item>
<item msgid="2838022395783120596">"Wi-Fi เท่านั้น"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"อินเทอร์เน็ตมือถือ"</item>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 137e8c9..44252be 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Kagustuhan sa roaming"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobile"</item>
<item msgid="2838022395783120596">"Wi-Fi lang"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobile"</item>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index c3290c5..1050c71 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Dolaşım tercihi"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Kablosuz"</item>
<item msgid="7715869266611010880">"Mobil"</item>
<item msgid="2838022395783120596">"Yalnızca kablosuz"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Kablosuz"</item>
<item msgid="1118703915148755405">"Mobil"</item>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 48d6910..df3f6ac 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -1133,20 +1133,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Параметри роумінгу"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Мобільні"</item>
<item msgid="2838022395783120596">"Лише Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Мобільні"</item>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 242bba3..3549d9c 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -1097,20 +1097,11 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"رومنگ کی ترجیح"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"موبائل"</item>
<item msgid="2838022395783120596">"صرف Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"موبائل"</item>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index f4cdee0..98b8e0a 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Rouming sozlamalari"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Mobil"</item>
<item msgid="2838022395783120596">"Faqat Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobil"</item>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 865d907..f37e115 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Tùy chọn chuyển vùng"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"Di động"</item>
<item msgid="2838022395783120596">"Chỉ Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Di động"</item>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index cf21151..4eabdae 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"漫游偏好设置"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"WLAN"</item>
<item msgid="7715869266611010880">"移动数据"</item>
<item msgid="2838022395783120596">"仅限 WLAN"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"WLAN"</item>
<item msgid="1118703915148755405">"移动数据"</item>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index f31928d..dc79f8a 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"漫遊偏好設定"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"流動網絡"</item>
<item msgid="2838022395783120596">"只限 Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"流動網絡"</item>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 8d60ba7..467a401 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"漫遊偏好設定"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"Wi-Fi"</item>
<item msgid="7715869266611010880">"行動網路"</item>
<item msgid="2838022395783120596">"僅限 Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"行動網路"</item>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 8230c81..dc1bba0 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -1097,20 +1097,13 @@
<!-- no translation found for wifi_calling_roaming_mode_summary (8642014873060687717) -->
<skip />
<string name="wifi_calling_roaming_mode_dialog_title" msgid="7800926602662078576">"Okuncamelayo kokuzulazula"</string>
- <string-array name="wifi_calling_mode_choices">
- <item msgid="772621647207148279">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="2226422868199612072">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- <item msgid="7041954411163832397">"@*android:string/wfc_mode_wifi_only_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2">
<item msgid="742988808283756263">"I-Wi-Fi"</item>
<item msgid="7715869266611010880">"Iselula"</item>
<item msgid="2838022395783120596">"I-Wi-Fi kuphela"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item msgid="4430473354160964286">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
- <item msgid="5965810717958113109">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
- </string-array>
+
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item msgid="6132150507201243768">"I-Wi-Fi"</item>
<item msgid="1118703915148755405">"Iselula"</item>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index c871ac8..a348f8a 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -79,6 +79,7 @@
<dimen name="notification_importance_description_padding">20dp</dimen>
<dimen name="notification_importance_description_text">14sp</dimen>
<dimen name="notification_importance_button_text">16sp</dimen>
+ <dimen name="notification_importance_button_padding">14dp</dimen>
<dimen name="zen_schedule_rule_checkbox_padding">7dp</dimen>
<dimen name="zen_schedule_day_margin">17dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 959a72f..615077c 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -842,8 +842,8 @@
<string name="location_settings_summary_location_off">Off</string>
<!-- Summary for Location settings when location is on, explaining how many apps have location permission [CHAR LIMIT=NONE]-->
<plurals name="location_settings_summary_location_on">
- <item quantity="one">On - <xliff:g id="count">%1$d</xliff:g> app can access location</item>
- <item quantity="other">On - <xliff:g id="count">%1$d</xliff:g> apps can access location</item>
+ <item quantity="one">On - <xliff:g id="count">%1$d</xliff:g> app has access to location</item>
+ <item quantity="other">On - <xliff:g id="count">%1$d</xliff:g> apps have access to location</item>
</plurals>
<!-- Location settings, loading the number of apps which have location permission [CHAR LIMIT=30] -->
<string name="location_settings_loading_app_permission_stats">Loading\u2026</string>
@@ -2558,7 +2558,7 @@
<string name="wifi_calling_roaming_mode_summary"><xliff:g id="wfc_roaming_preference" example="Wi-Fi">%1$s</xliff:g></string>
<!-- WFC mode dialog [CHAR LIMIT=45] -->
<string name="wifi_calling_roaming_mode_dialog_title">Roaming preference</string>
- <string-array name="wifi_calling_mode_choices">
+ <string-array name="wifi_calling_mode_choices" translatable="false">
<item>@*android:string/wfc_mode_wifi_preferred_summary</item>
<item>@*android:string/wfc_mode_cellular_preferred_summary</item>
<item>@*android:string/wfc_mode_wifi_only_summary</item>
@@ -2573,7 +2573,7 @@
<item>"1"</item>
<item>"0"</item>
</string-array>
- <string-array name="wifi_calling_mode_choices_without_wifi_only">
+ <string-array name="wifi_calling_mode_choices_without_wifi_only" translatable="false">
<item>@*android:string/wfc_mode_wifi_preferred_summary</item>
<item>@*android:string/wfc_mode_cellular_preferred_summary</item>
</string-array>
@@ -3838,29 +3838,25 @@
<!-- Summary for app permission on Location settings page when location is off [CHAR LIMIT=NONE] -->
<string name="location_app_permission_summary_location_off">Location is off</string>
<!--
- Summary for Location settings when location is on, explaining how many apps have unlimited
- location permission.
-
- "Unlimited access" means the app can access the device location even when it's not being used
- (on background), while "limited" means the app can only access the device location when the user
- is using it (foreground only).
+ Summary for Location settings when location is on, explaining how many apps have location
+ permission.
Please note that the distinction between singular and plural of this sentence only depends on
- the quantity of "background_location_app_count" ("has" vs "have"). The quantity of
+ the quantity of "permitted_location_app_count" ("has" vs "have"). The quantity of
"total_location_app_count" is almost always greater than 1, so "apps" is always in plural form.
[CHAR LIMIT=NONE]-->
<plurals name="location_app_permission_summary_location_on">
<item quantity="one">
- <xliff:g id="background_location_app_count">%1$d</xliff:g>
+ <xliff:g id="permitted_location_app_count">%1$d</xliff:g>
of
<xliff:g id="total_location_app_count">%2$d</xliff:g>
- apps has unlimited access</item>
+ apps has access to location</item>
<item quantity="other">
- <xliff:g id="background_location_app_count">%1$d</xliff:g>
+ <xliff:g id="permitted_location_app_count">%1$d</xliff:g>
of
<xliff:g id="total_location_app_count">%2$d</xliff:g>
- apps have unlimited access</item>
+ apps have access to location</item>
</plurals>
<!-- [CHAR LIMIT=50] Location settings screen, sub category for recent location access -->
<string name="location_category_recent_location_access">Recent location access</string>
@@ -7334,6 +7330,9 @@
<!-- Battery Saver: Search terms for battery saver schedule preference. Feel free to add additional terms when translating if appropriate [CHAR_LIMIT=NONE] -->
<string name="keywords_battery_saver_schedule">routine, schedule, battery saver, power saver, battery, automatic, percent</string>
+ <!-- List of synonyms for the Add an account setting [CHAR_LIMIT=NONE] -->
+ <string name="keywords_add_an_account">work profile</string>
+
<!-- Option title for the default sound, context based on screen -->
<string name="default_sound">Default sound</string>
@@ -7806,7 +7805,7 @@
<string name="profile_section_header">Work notifications</string>
<!-- Configure Notifications: section header for prioritizer settings [CHAR LIMIT=80] -->
- <string name="smart_notifications_title">Smart notifications</string>
+ <string name="smart_notifications_title">Adaptive notifications</string>
<!-- Configure Notifications: setting title [CHAR LIMIT=80] -->
<string name="asst_capability_prioritizer_title">Automatic Prioritization</string>
@@ -7977,25 +7976,25 @@
<!-- Channel summaries for the app notification page -->
- <!-- [CHAR LIMIT=100] Notification Importance title: min importance level summary -->
+ <!-- [CHAR LIMIT=150] Notification Importance title: min importance level summary -->
<string name="notification_channel_summary_min">In the pull-down shade, collapse notifications to one line</string>
- <!-- [CHAR LIMIT=100] Notification Importance title: low importance level summary -->
- <string name="notification_channel_summary_low">Always silent. Displays in pull-down shade.</string>
+ <!-- [CHAR LIMIT=150] Notification Importance title: low importance level summary -->
+ <string name="notification_channel_summary_low">Helps you focus with notifications only in the pull-down shade. Always silent.</string>
- <!-- [CHAR LIMIT=100] Notification Importance title: low importance level summary -->
- <string name="notification_channel_summary_low_status">Always silent. Displays in pull-down shade & status bar.</string>
+ <!-- [CHAR LIMIT=150] Notification Importance title: low importance level summary -->
+ <string name="notification_channel_summary_low_status">Displays below priority notifications. Always silent.</string>
- <!-- [CHAR LIMIT=100] Notification Importance title: low importance level summary -->
- <string name="notification_channel_summary_low_lock">Always silent. Displays in pull-down shade & on lock screen.</string>
+ <!-- [CHAR LIMIT=150] Notification Importance title: low importance level summary -->
+ <string name="notification_channel_summary_low_lock">Displays below priority notifications. Always silent.</string>
- <!-- [CHAR LIMIT=100] Notification Importance title: low importance level summary -->
- <string name="notification_channel_summary_low_status_lock">Always silent. Displays in pull-down shade, status bar & on lock screen.</string>
+ <!-- [CHAR LIMIT=150] Notification Importance title: low importance level summary -->
+ <string name="notification_channel_summary_low_status_lock">Displays below priority notifications. Always silent.</string>
- <!-- [CHAR LIMIT=100] Notification Importance title: normal importance level summary -->
- <string name="notification_channel_summary_default">Makes sound and displays in pull-down shade, status bar & on lock screen.</string>
+ <!-- [CHAR LIMIT=150] Notification Importance title: normal importance level summary -->
+ <string name="notification_channel_summary_default">Gets your attention with sound & a status bar icon. Shows on lock screen.</string>
- <!-- [CHAR LIMIT=100] Notification Importance title: high importance level summary -->
+ <!-- [CHAR LIMIT=150] Notification Importance title: high importance level summary -->
<string name="notification_channel_summary_high">When device is unlocked, show notifications as a banner across the top of the screen</string>
<!-- [CHAR LIMIT=100] Label for on/off toggle -->
diff --git a/res/xml/accessibility_content_timeout_settings.xml b/res/xml/accessibility_content_timeout_settings.xml
index 2d9072b..ea8d88a 100644
--- a/res/xml/accessibility_content_timeout_settings.xml
+++ b/res/xml/accessibility_content_timeout_settings.xml
@@ -25,8 +25,8 @@
<com.android.settings.widget.VideoPreference
android:key="accessibility_content_timeout_video"
android:title="@string/summary_placeholder"
- settings:animation="@raw/gesture_swipe_up"
- settings:preview="@drawable/gesture_swipe_up"
+ settings:animation="@raw/accessibility_timeout"
+ settings:preview="@drawable/accessibility_timeout"
settings:controller="com.android.settings.widget.VideoPreferenceController"
android:persistent="false" />
diff --git a/res/xml/accessibility_control_timeout_settings.xml b/res/xml/accessibility_control_timeout_settings.xml
index ea8d8c6..e5a6e5b 100644
--- a/res/xml/accessibility_control_timeout_settings.xml
+++ b/res/xml/accessibility_control_timeout_settings.xml
@@ -25,8 +25,8 @@
<com.android.settings.widget.VideoPreference
android:key="accessibility_control_timeout_video"
android:title="@string/summary_placeholder"
- settings:animation="@raw/gesture_swipe_up"
- settings:preview="@drawable/gesture_swipe_up"
+ settings:animation="@raw/accessibility_timeout"
+ settings:preview="@drawable/accessibility_timeout"
settings:controller="com.android.settings.widget.VideoPreferenceController"
android:persistent="false" />
diff --git a/res/xml/add_account_settings.xml b/res/xml/add_account_settings.xml
index 6b36f8d..01e7674 100644
--- a/res/xml/add_account_settings.xml
+++ b/res/xml/add_account_settings.xml
@@ -19,4 +19,5 @@
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:key="add_account_screen"
android:title="@string/header_add_an_account"
- settings:controller="com.android.settings.accounts.ChooseAccountPreferenceController" />
+ settings:controller="com.android.settings.accounts.ChooseAccountPreferenceController"
+ settings:keywords="@string/keywords_add_an_account"/>
diff --git a/res/xml/data_usage_cellular.xml b/res/xml/data_usage_cellular.xml
index b50eaba..fe1a072 100644
--- a/res/xml/data_usage_cellular.xml
+++ b/res/xml/data_usage_cellular.xml
@@ -16,6 +16,7 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:settings="http://schemas.android.com/apk/res-auto"
android:key="data_usage_cellular_screen">
<com.android.settings.datausage.TemplatePreferenceCategory
@@ -24,7 +25,8 @@
<com.android.settings.datausage.CellDataPreference
android:key="data_usage_enable"
- android:title="@string/data_usage_enable_mobile" />
+ android:title="@string/data_usage_enable_mobile"
+ settings:searchable="false" />
<com.android.settings.datausage.DataUsagePreference
android:key="cellular_data_usage"
diff --git a/res/xml/mobile_network_settings_v2.xml b/res/xml/mobile_network_settings_v2.xml
index cc377bd..1ff8860 100644
--- a/res/xml/mobile_network_settings_v2.xml
+++ b/res/xml/mobile_network_settings_v2.xml
@@ -191,4 +191,10 @@
</PreferenceCategory>
+ <Preference
+ android:key="erase_sim"
+ android:persistent="false"
+ android:title="@string/mobile_network_erase_sim"
+ settings:controller="com.android.settings.network.telephony.DeleteSimProfilePreferenceController" />
+
</PreferenceScreen>
diff --git a/src/com/android/settings/RadioInfo.java b/src/com/android/settings/RadioInfo.java
index e0ce1c0..fdc930e 100644
--- a/src/com/android/settings/RadioInfo.java
+++ b/src/com/android/settings/RadioInfo.java
@@ -40,6 +40,7 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
+import android.os.SystemProperties;
import android.provider.Settings;
import android.telephony.CarrierConfigManager;
import android.telephony.CellIdentityCdma;
@@ -130,6 +131,13 @@
private static final int CELL_INFO_LIST_RATE_DISABLED = Integer.MAX_VALUE;
private static final int CELL_INFO_LIST_RATE_MAX = 0;
+ private static final String DSDS_MODE_PROPERTY = "ro.boot.hardware.dsds";
+
+ /**
+ * A value indicates the device is always on dsds mode.
+ * @see {@link #DSDS_MODE_PROPERTY}
+ */
+ private static final int ALWAYS_ON_DSDS_MODE = 1;
private static final int IMS_VOLTE_PROVISIONED_CONFIG_ID =
ImsConfig.ConfigConstants.VLT_SETTING_ENABLED;
@@ -497,7 +505,7 @@
cbrsDataSwitch.setVisibility(isCbrsSupported() ? View.VISIBLE : View.GONE);
dsdsSwitch = findViewById(R.id.dsds_switch);
- if (isDsdsSupported()) {
+ if (isDsdsSupported() && !dsdsModeOnly()) {
dsdsSwitch.setVisibility(View.VISIBLE);
dsdsSwitch.setOnClickListener(v -> {
if (mTelephonyManager.doesSwitchMultiSimConfigTriggerReboot()) {
@@ -1694,6 +1702,14 @@
mTelephonyManager.switchMultiSimConfig(dsdsSwitch.isChecked() ? 2 : 1);
}
+ /**
+ * @return {@code True} if the device is only supported dsds mode.
+ */
+ private boolean dsdsModeOnly() {
+ String dsdsMode = SystemProperties.get(DSDS_MODE_PROPERTY);
+ return !TextUtils.isEmpty(dsdsMode) && Integer.parseInt(dsdsMode) == ALWAYS_ON_DSDS_MODE;
+ }
+
DialogInterface.OnClickListener mOnDsdsDialogConfirmedListener =
new DialogInterface.OnClickListener() {
@Override
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 4cc2f44..f6fe0c2 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -32,6 +32,7 @@
public static class BluetoothSettingsActivity extends SettingsActivity { /* empty */ }
public static class CreateShortcutActivity extends SettingsActivity { /* empty */ }
public static class FaceSettingsActivity extends SettingsActivity { /* empty */ }
+ public static class FingerprintSettingsActivity extends SettingsActivity { /* empty */ }
public static class SimSettingsActivity extends SettingsActivity { /* empty */ }
public static class TetherSettingsActivity extends SettingsActivity { /* empty */ }
public static class WifiTetherSettingsActivity extends SettingsActivity { /* empty */ }
diff --git a/src/com/android/settings/applications/AppStorageSettings.java b/src/com/android/settings/applications/AppStorageSettings.java
index 56fa455..f07c66c 100644
--- a/src/com/android/settings/applications/AppStorageSettings.java
+++ b/src/com/android/settings/applications/AppStorageSettings.java
@@ -421,6 +421,10 @@
for (GrantedUriPermission perm : perms) {
String authority = perm.uri.getAuthority();
ProviderInfo provider = pm.resolveContentProvider(authority, 0);
+ if (provider == null) {
+ continue;
+ }
+
CharSequence app = provider.applicationInfo.loadLabel(pm);
MutableInt count = uriCounters.get(app);
if (count == null) {
diff --git a/src/com/android/settings/backup/SettingsBackupHelper.java b/src/com/android/settings/backup/SettingsBackupHelper.java
new file mode 100644
index 0000000..92612b0
--- /dev/null
+++ b/src/com/android/settings/backup/SettingsBackupHelper.java
@@ -0,0 +1,89 @@
+/**
+ * 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.settings.backup;
+
+import android.app.backup.BackupAgentHelper;
+import android.app.backup.BackupDataInputStream;
+import android.app.backup.BackupDataOutput;
+import android.app.backup.BackupHelper;
+import android.os.ParcelFileDescriptor;
+
+import com.android.settings.shortcut.CreateShortcutPreferenceController;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+/**
+ * Backup agent for Settings APK
+ */
+public class SettingsBackupHelper extends BackupAgentHelper {
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ addHelper("no-op", new NoOpHelper());
+ }
+
+ @Override
+ public void onRestoreFinished() {
+ super.onRestoreFinished();
+ CreateShortcutPreferenceController.updateRestoredShortcuts(this);
+ }
+
+ /**
+ * Backup helper which does not do anything. Having at least one helper ensures that the
+ * transport is not empty and onRestoreFinished is called eventually.
+ */
+ private static class NoOpHelper implements BackupHelper {
+
+ private final int VERSION_CODE = 1;
+
+ @Override
+ public void performBackup(ParcelFileDescriptor oldState, BackupDataOutput data,
+ ParcelFileDescriptor newState) {
+
+ try (FileOutputStream out = new FileOutputStream(newState.getFileDescriptor())) {
+ if (getVersionCode(oldState) != VERSION_CODE) {
+ data.writeEntityHeader("dummy", 1);
+ data.writeEntityData(new byte[1], 1);
+ }
+
+ // Write new version code
+ out.write(VERSION_CODE);
+ out.flush();
+ } catch (IOException e) { }
+ }
+
+ @Override
+ public void restoreEntity(BackupDataInputStream data) { }
+
+ @Override
+ public void writeNewStateDescription(ParcelFileDescriptor newState) { }
+
+ private int getVersionCode(ParcelFileDescriptor state) {
+ if (state == null) {
+ return 0;
+ }
+ try (FileInputStream in = new FileInputStream(state.getFileDescriptor())) {
+ return in.read();
+ } catch (IOException e) {
+ return 0;
+ }
+ }
+ }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java
index b8ec103..02b0723 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java
@@ -30,9 +30,11 @@
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.biometrics.BiometricEnrollBase;
+import com.android.settings.password.ChooseLockSettingsHelper;
import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupcompat.util.WizardManagerHelper;
/**
* Activity which concludes fingerprint enrollment.
@@ -40,6 +42,8 @@
public class FingerprintEnrollFinish extends BiometricEnrollBase {
private static final String TAG = "FingerprintEnrollFinish";
+ private static final String ACTION_FINGERPRINT_SETTINGS =
+ "android.settings.FINGERPRINT_SETTINGS";
@VisibleForTesting
static final int REQUEST_ADD_ANOTHER = 1;
@VisibleForTesting
@@ -104,6 +108,11 @@
protected void onNextButtonClick(View view) {
updateFingerprintSuggestionEnableState();
setResult(RESULT_FINISHED);
+ if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
+ postEnroll();
+ } else {
+ launchFingerprintSettings();
+ }
finish();
}
@@ -127,6 +136,24 @@
}
}
+ private void postEnroll() {
+ final FingerprintManager fpm = Utils.getFingerprintManagerOrNull(this);
+ if (fpm != null) {
+ int result = fpm.postEnroll();
+ if (result < 0) {
+ Log.w(TAG, "postEnroll failed: result = " + result);
+ }
+ }
+ }
+
+ private void launchFingerprintSettings() {
+ final Intent intent = new Intent(ACTION_FINGERPRINT_SETTINGS);
+ intent.setPackage(Utils.SETTINGS_PACKAGE_NAME);
+ intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, mToken);
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ }
+
private void onAddAnotherButtonClick(View view) {
startActivityForResult(getFingerprintEnrollingIntent(), REQUEST_ADD_ANOTHER);
}
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index 9418094..9a07821 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -276,6 +276,9 @@
Activity activity = getActivity();
mFingerprintManager = Utils.getFingerprintManagerOrNull(activity);
+ mToken = getIntent().getByteArrayExtra(
+ ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
+
mAuthenticateSidecar = (FingerprintAuthenticateSidecar)
getFragmentManager().findFragmentByTag(TAG_AUTHENTICATE_SIDECAR);
if (mAuthenticateSidecar == null) {
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceController.java b/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceController.java
index 1c75669..d42a1be 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceController.java
@@ -66,7 +66,7 @@
if (TextUtils.equals(getPreferenceKey(), preference.getKey()) && mFragment != null) {
mMetricsFeatureProvider.action(mContext,
SettingsEnums.ACTION_BLUETOOTH_RENAME);
- LocalDeviceNameDialogFragment.newInstance()
+ new LocalDeviceNameDialogFragment()
.show(mFragment.getFragmentManager(), LocalDeviceNameDialogFragment.TAG);
return true;
}
diff --git a/src/com/android/settings/bluetooth/LocalDeviceNameDialogFragment.java b/src/com/android/settings/bluetooth/LocalDeviceNameDialogFragment.java
index 5cf2ccc..c15dd04 100644
--- a/src/com/android/settings/bluetooth/LocalDeviceNameDialogFragment.java
+++ b/src/com/android/settings/bluetooth/LocalDeviceNameDialogFragment.java
@@ -31,10 +31,6 @@
public static final String TAG = "LocalAdapterName";
private BluetoothAdapter mBluetoothAdapter;
- public static LocalDeviceNameDialogFragment newInstance() {
- return new LocalDeviceNameDialogFragment();
- }
-
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index 24fccef..f50d6ad 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -54,6 +54,7 @@
import com.android.settings.backup.ToggleBackupSettingFragment;
import com.android.settings.backup.UserBackupSettingsActivity;
import com.android.settings.biometrics.face.FaceSettings;
+import com.android.settings.biometrics.fingerprint.FingerprintSettings;
import com.android.settings.bluetooth.BluetoothDeviceDetailsFragment;
import com.android.settings.connecteddevice.AdvancedConnectedDeviceDashboardFragment;
import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
@@ -203,6 +204,7 @@
AccountSyncSettings.class.getName(),
AssistGestureSettings.class.getName(),
FaceSettings.class.getName(),
+ FingerprintSettings.FingerprintSettingsFragment.class.getName(),
SwipeToNotificationSettings.class.getName(),
DoubleTapPowerSettings.class.getName(),
DoubleTapScreenSettings.class.getName(),
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 78391f2..85a0879 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -19,6 +19,7 @@
import static com.android.settings.fuelgauge.BatteryBroadcastReceiver.BatteryUpdateType;
import android.app.settings.SettingsEnums;
+import android.content.ContentResolver;
import android.content.Context;
import android.database.ContentObserver;
import android.net.Uri;
@@ -107,7 +108,8 @@
BatteryTipPreferenceController mBatteryTipPreferenceController;
private int mStatsType = BatteryStats.STATS_SINCE_CHARGED;
- private final ContentObserver mSettingsObserver = new ContentObserver(new Handler()) {
+ @VisibleForTesting
+ final ContentObserver mSettingsObserver = new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange, Uri uri) {
restartBatteryInfoLoader();
@@ -202,21 +204,6 @@
};
@Override
- public void onStop() {
- getContentResolver().unregisterContentObserver(mSettingsObserver);
- super.onStop();
- }
-
- @Override
- public void onResume() {
- super.onResume();
- getContentResolver().registerContentObserver(
- Global.getUriFor(Global.BATTERY_ESTIMATES_LAST_UPDATE_TIME),
- false,
- mSettingsObserver);
- }
-
- @Override
public void onAttach(Context context) {
super.onAttach(context);
final SettingsActivity activity = (SettingsActivity) getActivity();
@@ -252,6 +239,21 @@
}
@Override
+ public void onResume() {
+ super.onResume();
+ getContentResolver().registerContentObserver(
+ Global.getUriFor(Global.BATTERY_ESTIMATES_LAST_UPDATE_TIME),
+ false,
+ mSettingsObserver);
+ }
+
+ @Override
+ public void onPause() {
+ getContentResolver().unregisterContentObserver(mSettingsObserver);
+ super.onPause();
+ }
+
+ @Override
public int getMetricsCategory() {
return SettingsEnums.FUELGAUGE_POWER_USAGE_SUMMARY_V2;
}
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
index 74ff613..a50cf41 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
@@ -50,7 +50,7 @@
public class ContextualCardLoader extends AsyncLoaderCompat<List<ContextualCard>> {
@VisibleForTesting
- static final int DEFAULT_CARD_COUNT = 4;
+ static final int DEFAULT_CARD_COUNT = 2;
static final int CARD_CONTENT_LOADER_ID = 1;
private static final String TAG = "ContextualCardLoader";
@@ -141,42 +141,19 @@
}
}
- try {
- // The maximum cards are four small cards OR
- // one large card with two small cards OR
- // two large cards
- if (visibleCards.size() <= 2 || getNumberOfLargeCard(visibleCards) == 0) {
- // four small cards
- return visibleCards;
- }
+ if (!CardContentProvider.DELETE_CARD_URI.equals(mNotifyUri)) {
+ final MetricsFeatureProvider metricsFeatureProvider =
+ FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
- if (visibleCards.size() == DEFAULT_CARD_COUNT) {
- hiddenCards.add(visibleCards.remove(visibleCards.size() - 1));
- }
+ metricsFeatureProvider.action(mContext,
+ SettingsEnums.ACTION_CONTEXTUAL_CARD_SHOW,
+ ContextualCardLogUtils.buildCardListLog(visibleCards));
- if (getNumberOfLargeCard(visibleCards) == 1) {
- // One large card with two small cards
- return visibleCards;
- }
-
- hiddenCards.add(visibleCards.remove(visibleCards.size() - 1));
-
- // Two large cards
- return visibleCards;
- } finally {
- if (!CardContentProvider.DELETE_CARD_URI.equals(mNotifyUri)) {
- final MetricsFeatureProvider metricsFeatureProvider =
- FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
-
- metricsFeatureProvider.action(mContext,
- SettingsEnums.ACTION_CONTEXTUAL_CARD_SHOW,
- ContextualCardLogUtils.buildCardListLog(visibleCards));
-
- metricsFeatureProvider.action(mContext,
- SettingsEnums.ACTION_CONTEXTUAL_CARD_NOT_SHOW,
- ContextualCardLogUtils.buildCardListLog(hiddenCards));
- }
+ metricsFeatureProvider.action(mContext,
+ SettingsEnums.ACTION_CONTEXTUAL_CARD_NOT_SHOW,
+ ContextualCardLogUtils.buildCardListLog(hiddenCards));
}
+ return visibleCards;
}
@VisibleForTesting
@@ -208,12 +185,6 @@
return cards;
}
- private int getNumberOfLargeCard(List<ContextualCard> cards) {
- return (int) cards.stream()
- .filter(card -> isLargeCard(card))
- .count();
- }
-
private boolean isLargeCard(ContextualCard card) {
return card.getSliceUri().equals(CONTEXTUAL_WIFI_SLICE_URI)
|| card.getSliceUri().equals(BLUETOOTH_DEVICES_SLICE_URI)
diff --git a/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java b/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java
index 761755c..d1051fe 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/BatteryFixSlice.java
@@ -30,6 +30,7 @@
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.util.ArrayMap;
+import android.view.View;
import androidx.annotation.VisibleForTesting;
import androidx.annotation.WorkerThread;
@@ -112,9 +113,12 @@
continue;
}
final Drawable drawable = mContext.getDrawable(batteryTip.getIconId());
- drawable.setColorFilter(new PorterDuffColorFilter(
- mContext.getResources().getColor(batteryTip.getIconTintColorId()),
- PorterDuff.Mode.SRC_IN));
+ final int iconTintColorId = batteryTip.getIconTintColorId();
+ if (iconTintColorId != View.NO_ID) {
+ drawable.setColorFilter(new PorterDuffColorFilter(
+ mContext.getResources().getColor(iconTintColorId),
+ PorterDuff.Mode.SRC_IN));
+ }
final IconCompat icon = Utils.createIconWithDrawable(drawable);
final SliceAction primaryAction = SliceAction.createDeeplink(getPrimaryAction(),
diff --git a/src/com/android/settings/inputmethod/AvailableVirtualKeyboardFragment.java b/src/com/android/settings/inputmethod/AvailableVirtualKeyboardFragment.java
index c8b5b6d..c37d2b5 100644
--- a/src/com/android/settings/inputmethod/AvailableVirtualKeyboardFragment.java
+++ b/src/com/android/settings/inputmethod/AvailableVirtualKeyboardFragment.java
@@ -16,20 +16,11 @@
package com.android.settings.inputmethod;
-import android.annotation.DrawableRes;
-import android.annotation.NonNull;
-import android.annotation.Nullable;
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.app.settings.SettingsEnums;
import android.content.Context;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.ServiceInfo;
import android.content.res.Configuration;
-import android.graphics.Color;
-import android.graphics.drawable.ColorDrawable;
-import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.provider.SearchIndexableResource;
import android.view.inputmethod.InputMethodInfo;
@@ -93,59 +84,12 @@
return SettingsEnums.ENABLE_VIRTUAL_KEYBOARDS;
}
- @Nullable
- private static Drawable loadDrawable(@NonNull final PackageManager packageManager,
- @NonNull final String packageName, @DrawableRes final int resId,
- @NonNull final ApplicationInfo applicationInfo) {
- if (resId == 0) {
- return null;
- }
- try {
- return packageManager.getDrawable(packageName, resId, applicationInfo);
- } catch (Exception e) {
- return null;
- }
- }
-
- @NonNull
- private static Drawable getInputMethodIcon(@NonNull final PackageManager packageManager,
- @NonNull final InputMethodInfo imi) {
- final ServiceInfo si = imi.getServiceInfo();
- final ApplicationInfo ai = si != null ? si.applicationInfo : null;
- final String packageName = imi.getPackageName();
- if (si == null || ai == null || packageName == null) {
- return new ColorDrawable(Color.TRANSPARENT);
- }
- // We do not use ServiceInfo#loadLogo() and ServiceInfo#loadIcon here since those methods
- // internally have some fallback rules, which we want to do manually.
- Drawable drawable = loadDrawable(packageManager, packageName, si.logo, ai);
- if (drawable != null) {
- return drawable;
- }
- drawable = loadDrawable(packageManager, packageName, si.icon, ai);
- if (drawable != null) {
- return drawable;
- }
- // We do not use ApplicationInfo#loadLogo() and ApplicationInfo#loadIcon here since those
- // methods internally have some fallback rules, which we want to do manually.
- drawable = loadDrawable(packageManager, packageName, ai.logo, ai);
- if (drawable != null) {
- return drawable;
- }
- drawable = loadDrawable(packageManager, packageName, ai.icon, ai);
- if (drawable != null) {
- return drawable;
- }
- return new ColorDrawable(Color.TRANSPARENT);
- }
-
private void updateInputMethodPreferenceViews() {
mInputMethodSettingValues.refreshAllInputMethodAndSubtypes();
// Clear existing "InputMethodPreference"s
mInputMethodPreferenceList.clear();
List<String> permittedList = mDpm.getPermittedInputMethodsForCurrentUser();
final Context context = getPrefContext();
- final PackageManager packageManager = getActivity().getPackageManager();
final List<InputMethodInfo> imis = mInputMethodSettingValues.getInputMethodList();
final int numImis = (imis == null ? 0 : imis.size());
for (int i = 0; i < numImis; ++i) {
@@ -154,7 +98,7 @@
|| permittedList.contains(imi.getPackageName());
final InputMethodPreference pref = new InputMethodPreference(
context, imi, true, isAllowedByOrganization, this);
- pref.setIcon(getInputMethodIcon(packageManager, imi));
+ pref.setIcon(imi.loadIcon(context.getPackageManager()));
mInputMethodPreferenceList.add(pref);
}
final Collator collator = Collator.getInstance();
diff --git a/src/com/android/settings/inputmethod/VirtualKeyboardFragment.java b/src/com/android/settings/inputmethod/VirtualKeyboardFragment.java
index cb7831e..ef07d11 100644
--- a/src/com/android/settings/inputmethod/VirtualKeyboardFragment.java
+++ b/src/com/android/settings/inputmethod/VirtualKeyboardFragment.java
@@ -20,8 +20,6 @@
import android.app.admin.DevicePolicyManager;
import android.app.settings.SettingsEnums;
import android.content.Context;
-import android.graphics.Color;
-import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.provider.SearchIndexableResource;
@@ -48,7 +46,6 @@
public final class VirtualKeyboardFragment extends SettingsPreferenceFragment implements Indexable {
private static final String ADD_VIRTUAL_KEYBOARD_SCREEN = "add_virtual_keyboard_screen";
- private static final Drawable NO_ICON = new ColorDrawable(Color.TRANSPARENT);
private final ArrayList<InputMethodPreference> mInputMethodPreferenceList = new ArrayList<>();
private InputMethodManager mImm;
@@ -89,14 +86,7 @@
final InputMethodInfo imi = imis.get(i);
final boolean isAllowedByOrganization = permittedList == null
|| permittedList.contains(imi.getPackageName());
- Drawable icon;
- try {
- // TODO: Consider other ways to retrieve an icon to show here.
- icon = getActivity().getPackageManager().getApplicationIcon(imi.getPackageName());
- } catch (Exception e) {
- // TODO: Consider handling the error differently perhaps by showing default icons.
- icon = NO_ICON;
- }
+ final Drawable icon = imi.loadIcon(context.getPackageManager());
final InputMethodPreference pref = new InputMethodPreference(
context,
imi,
diff --git a/src/com/android/settings/location/AppLocationPermissionPreferenceController.java b/src/com/android/settings/location/AppLocationPermissionPreferenceController.java
index 43a6a9b..65abe99 100644
--- a/src/com/android/settings/location/AppLocationPermissionPreferenceController.java
+++ b/src/com/android/settings/location/AppLocationPermissionPreferenceController.java
@@ -1,11 +1,12 @@
package com.android.settings.location;
-import static android.Manifest.permission.ACCESS_BACKGROUND_LOCATION;
import static android.Manifest.permission.ACCESS_COARSE_LOCATION;
import static android.Manifest.permission.ACCESS_FINE_LOCATION;
import android.content.Context;
import android.location.LocationManager;
+import android.os.UserHandle;
+import android.os.UserManager;
import android.permission.PermissionControllerManager;
import android.provider.Settings;
@@ -13,11 +14,12 @@
import androidx.preference.Preference;
import com.android.settings.R;
+import com.android.settings.Utils;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.lifecycle.Lifecycle;
import java.util.Arrays;
-import java.util.Collections;
+import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
public class AppLocationPermissionPreferenceController extends
@@ -29,7 +31,12 @@
int mNumTotal = -1;
/** Total number of apps that has background location permission. */
@VisibleForTesting
- int mNumBackground = -1;
+ int mNumHasLocation = -1;
+
+ final AtomicInteger loadingInProgress = new AtomicInteger(0);
+ private int mNumTotalLoading = 0;
+ private int mNumHasLocationLoading = 0;
+
private final LocationManager mLocationManager;
private Preference mPreference;
@@ -52,52 +59,76 @@
@Override
public CharSequence getSummary() {
if (mLocationManager.isLocationEnabled()) {
- if (mNumTotal == -1 || mNumBackground == -1) {
+ if (mNumTotal == -1 || mNumHasLocation == -1) {
return mContext.getString(R.string.location_settings_loading_app_permission_stats);
}
return mContext.getResources().getQuantityString(
- R.plurals.location_app_permission_summary_location_on, mNumBackground,
- mNumBackground, mNumTotal);
+ R.plurals.location_app_permission_summary_location_on, mNumHasLocation,
+ mNumHasLocation, mNumTotal);
} else {
return mContext.getString(R.string.location_app_permission_summary_location_off);
}
}
+ private void setAppCounts(int numTotal, int numHasLocation) {
+ mNumTotal = numTotal;
+ mNumHasLocation = numHasLocation;
+ refreshSummary(mPreference);
+ }
+
@Override
public void updateState(Preference preference) {
super.updateState(preference);
mPreference = preference;
- final AtomicInteger loadingInProgress = new AtomicInteger(2);
refreshSummary(preference);
- // Bail out if location has been disabled.
- if (!mLocationManager.isLocationEnabled()) {
+ // Bail out if location has been disabled, or there's another loading request in progress.
+ if (!mLocationManager.isLocationEnabled() ||
+ loadingInProgress.get() != 0) {
return;
}
- PermissionControllerManager permController =
- mContext.getSystemService(PermissionControllerManager.class);
- permController.countPermissionApps(
- Arrays.asList(ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION), 0,
- (numApps) -> {
- mNumTotal = numApps;
+ mNumTotalLoading = 0;
+ mNumHasLocationLoading = 0;
+ // Retrieve a list of users inside the current user profile group.
+ final List<UserHandle> users = mContext.getSystemService(
+ UserManager.class).getUserProfiles();
+ loadingInProgress.set(2 * users.size());
+ for (UserHandle user : users) {
+ final Context userContext = Utils.createPackageContextAsUser(mContext,
+ user.getIdentifier());
+ if (userContext == null) {
+ for (int i = 0; i < 2; ++i) {
if (loadingInProgress.decrementAndGet() == 0) {
- refreshSummary(preference);
+ setAppCounts(mNumTotalLoading, mNumHasLocationLoading);
}
- }, null);
-
- permController.countPermissionApps(
- Collections.singletonList(ACCESS_BACKGROUND_LOCATION),
- PermissionControllerManager.COUNT_ONLY_WHEN_GRANTED,
- (numApps) -> {
- mNumBackground = numApps;
- if (loadingInProgress.decrementAndGet() == 0) {
- refreshSummary(preference);
- }
- }, null);
+ }
+ continue;
+ }
+ final PermissionControllerManager permController =
+ userContext.getSystemService(PermissionControllerManager.class);
+ permController.countPermissionApps(
+ Arrays.asList(ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION), 0,
+ (numApps) -> {
+ mNumTotalLoading += numApps;
+ if (loadingInProgress.decrementAndGet() == 0) {
+ setAppCounts(mNumTotalLoading, mNumHasLocationLoading);
+ }
+ }, null);
+ permController.countPermissionApps(
+ Arrays.asList(ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION),
+ PermissionControllerManager.COUNT_ONLY_WHEN_GRANTED,
+ (numApps) -> {
+ mNumHasLocationLoading += numApps;
+ if (loadingInProgress.decrementAndGet() == 0) {
+ setAppCounts(mNumTotalLoading, mNumHasLocationLoading);
+ }
+ }, null);
+ }
}
@Override
public void onLocationModeChanged(int mode, boolean restricted) {
- // 'null' is checked inside updateState(), so no need to check here.
- updateState(mPreference);
+ if (mPreference != null) {
+ updateState(mPreference);
+ }
}
}
diff --git a/src/com/android/settings/location/TopLevelLocationPreferenceController.java b/src/com/android/settings/location/TopLevelLocationPreferenceController.java
index baad780..ec58a34 100644
--- a/src/com/android/settings/location/TopLevelLocationPreferenceController.java
+++ b/src/com/android/settings/location/TopLevelLocationPreferenceController.java
@@ -8,18 +8,23 @@
import android.content.Intent;
import android.content.IntentFilter;
import android.location.LocationManager;
+import android.os.UserHandle;
+import android.os.UserManager;
import android.permission.PermissionControllerManager;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import com.android.settings.R;
+import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
public class TopLevelLocationPreferenceController extends BasePreferenceController implements
LifecycleObserver, OnStart, OnStop {
@@ -28,8 +33,10 @@
private final LocationManager mLocationManager;
/** Total number of apps that has location permission. */
private int mNumTotal = -1;
+ private int mNumTotalLoading = 0;
private BroadcastReceiver mReceiver;
private Preference mPreference;
+ private AtomicInteger loadingInProgress = new AtomicInteger(0);
public TopLevelLocationPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
@@ -66,16 +73,37 @@
super.updateState(preference);
mPreference = preference;
refreshSummary(preference);
- // Bail out if location has been disabled.
- if (!mLocationManager.isLocationEnabled()) {
+ // Bail out if location has been disabled, or there's another loading request in progress.
+ if (!mLocationManager.isLocationEnabled() ||
+ loadingInProgress.get() != 0) {
return;
}
- mContext.getSystemService(PermissionControllerManager.class).countPermissionApps(
- Arrays.asList(ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION),
- PermissionControllerManager.COUNT_ONLY_WHEN_GRANTED,
- (numApps) -> {
- setLocationAppCount(numApps);
- }, null);
+ mNumTotalLoading = 0;
+ // Retrieve a list of users inside the current user profile group.
+ final List<UserHandle> users = mContext.getSystemService(
+ UserManager.class).getUserProfiles();
+ loadingInProgress.set(users.size());
+ for (UserHandle user : users) {
+ final Context userContext = Utils.createPackageContextAsUser(mContext,
+ user.getIdentifier());
+ if (userContext == null) {
+ if (loadingInProgress.decrementAndGet() == 0) {
+ setLocationAppCount(mNumTotalLoading);
+ }
+ continue;
+ }
+ final PermissionControllerManager permController =
+ userContext.getSystemService(PermissionControllerManager.class);
+ permController.countPermissionApps(
+ Arrays.asList(ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION),
+ PermissionControllerManager.COUNT_ONLY_WHEN_GRANTED,
+ (numApps) -> {
+ mNumTotalLoading += numApps;
+ if (loadingInProgress.decrementAndGet() == 0) {
+ setLocationAppCount(mNumTotalLoading);
+ }
+ }, null);
+ }
}
@Override
@@ -98,7 +126,8 @@
}
private void refreshLocationMode() {
- // 'null' is checked inside updateState(), so no need to check here.
- updateState(mPreference);
+ if (mPreference != null) {
+ updateState(mPreference);
+ }
}
}
diff --git a/src/com/android/settings/media/MediaDeviceUpdateWorker.java b/src/com/android/settings/media/MediaDeviceUpdateWorker.java
index d1e55e4..f67afdc 100644
--- a/src/com/android/settings/media/MediaDeviceUpdateWorker.java
+++ b/src/com/android/settings/media/MediaDeviceUpdateWorker.java
@@ -24,6 +24,7 @@
import com.android.settings.slices.SliceBackgroundWorker;
import com.android.settingslib.media.LocalMediaManager;
import com.android.settingslib.media.MediaDevice;
+import com.android.settingslib.utils.ThreadUtils;
import java.util.ArrayList;
import java.util.List;
@@ -94,7 +95,9 @@
}
public void connectDevice(MediaDevice device) {
- mLocalMediaManager.connectDevice(device);
+ ThreadUtils.postOnBackgroundThread(() -> {
+ mLocalMediaManager.connectDevice(device);
+ });
}
public MediaDevice getMediaDeviceById(String id) {
diff --git a/src/com/android/settings/network/SubscriptionUtil.java b/src/com/android/settings/network/SubscriptionUtil.java
index e700329..ebac51f 100644
--- a/src/com/android/settings/network/SubscriptionUtil.java
+++ b/src/com/android/settings/network/SubscriptionUtil.java
@@ -59,7 +59,11 @@
return subscriptions;
}
- private static boolean isInactiveInsertedPSim(UiccSlotInfo slotInfo) {
+ @VisibleForTesting
+ static boolean isInactiveInsertedPSim(UiccSlotInfo slotInfo) {
+ if (slotInfo == null) {
+ return false;
+ }
return !slotInfo.getIsEuicc() && !slotInfo.getIsActive() &&
slotInfo.getCardStateInfo() == CARD_STATE_INFO_PRESENT;
}
diff --git a/src/com/android/settings/network/telephony/DeleteSimProfileConfirmationDialog.java b/src/com/android/settings/network/telephony/DeleteSimProfileConfirmationDialog.java
new file mode 100644
index 0000000..52c5cc1
--- /dev/null
+++ b/src/com/android/settings/network/telephony/DeleteSimProfileConfirmationDialog.java
@@ -0,0 +1,83 @@
+/*
+ * 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.settings.network.telephony;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.telephony.SubscriptionInfo;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.appcompat.app.AlertDialog;
+
+import com.android.settings.R;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+
+public class DeleteSimProfileConfirmationDialog extends InstrumentedDialogFragment implements
+ DialogInterface.OnClickListener {
+ public static final String TAG = "confirm_delete_sim";
+ public static final String KEY_SUBSCRIPTION_INFO = "subscription_info";
+ private SubscriptionInfo mInfo;
+
+ public static DeleteSimProfileConfirmationDialog newInstance(SubscriptionInfo info) {
+ final DeleteSimProfileConfirmationDialog dialog =
+ new DeleteSimProfileConfirmationDialog();
+ final Bundle args = new Bundle();
+ args.putParcelable(KEY_SUBSCRIPTION_INFO, info);
+ dialog.setArguments(args);
+ return dialog;
+ }
+
+ @NonNull
+ @Override
+ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
+ mInfo = getArguments().getParcelable(KEY_SUBSCRIPTION_INFO);
+ Context context = getContext();
+ final String message = context.getString(R.string.mobile_network_erase_sim_dialog_body,
+ mInfo.getCarrierName(), mInfo.getCarrierName());
+ return new AlertDialog.Builder(context)
+ .setTitle(R.string.mobile_network_erase_sim_dialog_title)
+ .setMessage(message)
+ .setNegativeButton(R.string.cancel, null)
+ .setPositiveButton(R.string.mobile_network_erase_sim_dialog_ok, this)
+ .create();
+ }
+
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ if (which == DialogInterface.BUTTON_POSITIVE) {
+ beginDeletionWithProgress();
+ }
+ }
+
+ @VisibleForTesting
+ void beginDeletionWithProgress() {
+ final DeleteSimProfileProgressDialog progress =
+ DeleteSimProfileProgressDialog.newInstance(mInfo.getSubscriptionId());
+ progress.setTargetFragment(getTargetFragment(), 0);
+ progress.show(getFragmentManager(), DeleteSimProfileProgressDialog.TAG);
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ // TODO(b/131519375) - use a real id here once it's been created in the metrics proto
+ return 0;
+ }
+}
diff --git a/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceController.java b/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceController.java
new file mode 100644
index 0000000..22ff2b6
--- /dev/null
+++ b/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceController.java
@@ -0,0 +1,74 @@
+/*
+ * 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.settings.network.telephony;
+
+import android.content.Context;
+import android.telephony.SubscriptionInfo;
+
+import androidx.fragment.app.Fragment;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.network.SubscriptionUtil;
+
+/** This controls a preference allowing the user to delete the profile for an eSIM. */
+public class DeleteSimProfilePreferenceController extends BasePreferenceController {
+
+ private SubscriptionInfo mSubscriptionInfo;
+ private Fragment mParentFragment;
+
+ public DeleteSimProfilePreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ }
+
+ public void init(int subscriptionId, Fragment parentFragment) {
+ mParentFragment = parentFragment;
+
+ for (SubscriptionInfo info : SubscriptionUtil.getAvailableSubscriptions(
+ mContext)) {
+ if (info.getSubscriptionId() == subscriptionId && info.isEmbedded()) {
+ mSubscriptionInfo = info;
+ break;
+ }
+ }
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ final Preference pref = screen.findPreference(getPreferenceKey());
+ pref.setOnPreferenceClickListener(p -> {
+ final DeleteSimProfileConfirmationDialog dialogFragment =
+ DeleteSimProfileConfirmationDialog.newInstance(mSubscriptionInfo);
+ dialogFragment.setTargetFragment(mParentFragment, 0);
+ dialogFragment.show(mParentFragment.getFragmentManager(),
+ DeleteSimProfileConfirmationDialog.TAG);
+ return true;
+ });
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ if (mSubscriptionInfo != null) {
+ return AVAILABLE;
+ } else {
+ return CONDITIONALLY_UNAVAILABLE;
+ }
+ }
+
+}
diff --git a/src/com/android/settings/network/telephony/DeleteSimProfileProgressDialog.java b/src/com/android/settings/network/telephony/DeleteSimProfileProgressDialog.java
new file mode 100644
index 0000000..15f4b22
--- /dev/null
+++ b/src/com/android/settings/network/telephony/DeleteSimProfileProgressDialog.java
@@ -0,0 +1,120 @@
+/*
+ * 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.settings.network.telephony;
+
+import android.app.Activity;
+import android.app.Dialog;
+import android.app.PendingIntent;
+import android.app.ProgressDialog;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Bundle;
+import android.telephony.euicc.EuiccManager;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+
+import com.android.settings.R;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+
+public class DeleteSimProfileProgressDialog extends InstrumentedDialogFragment {
+ public static final String TAG = "delete_sim_progress";
+
+ // Note that this must be listed in AndroidManfiest.xml in a <protected-broadcast> tag
+ @VisibleForTesting
+ static final String PENDING_INTENT =
+ "com.android.settings.DELETE_SIM_PROFILE_RESULT";
+ private static final int PENDING_INTENT_REQUEST_CODE = 1;
+ private static final String KEY_SUBSCRIPTION_ID = "subscription_id";
+ @VisibleForTesting
+ static final String KEY_DELETE_STARTED = "delete_started";
+
+ private boolean mDeleteStarted;
+ private BroadcastReceiver mReceiver;
+
+ public static DeleteSimProfileProgressDialog newInstance(int subscriptionId) {
+ final DeleteSimProfileProgressDialog dialog = new DeleteSimProfileProgressDialog();
+ final Bundle args = new Bundle();
+ args.putInt(KEY_SUBSCRIPTION_ID, subscriptionId);
+ dialog.setArguments(args);
+ return dialog;
+ }
+
+ @Override
+ public void onSaveInstanceState(@NonNull Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putBoolean(KEY_DELETE_STARTED, mDeleteStarted);
+ }
+
+ @NonNull
+ @Override
+ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
+ if (savedInstanceState != null) {
+ mDeleteStarted = savedInstanceState.getBoolean(KEY_DELETE_STARTED, false);
+ }
+ final Context context = getContext();
+ final ProgressDialog progressDialog = new ProgressDialog(context);
+ progressDialog.setMessage(
+ context.getString(R.string.mobile_network_erase_sim_dialog_progress));
+
+ mReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ dismiss();
+ final Activity activity = getActivity();
+ if (activity != null && !activity.isFinishing()) {
+ activity.finish();
+ }
+ }
+ };
+ context.registerReceiver(mReceiver, new IntentFilter(PENDING_INTENT));
+
+ if (!mDeleteStarted) {
+ final PendingIntent pendingIntent = PendingIntent.getBroadcast(context,
+ PENDING_INTENT_REQUEST_CODE, new Intent(PENDING_INTENT),
+ PendingIntent.FLAG_ONE_SHOT);
+
+ final EuiccManager euiccManager = context.getSystemService(EuiccManager.class);
+ final int subId = getArguments().getInt(KEY_SUBSCRIPTION_ID);
+ euiccManager.deleteSubscription(subId, pendingIntent);
+ mDeleteStarted = true;
+ }
+
+ return progressDialog;
+ }
+
+ @Override
+ public void onDismiss(@NonNull DialogInterface dialog) {
+ if (mReceiver != null) {
+ final Context context = getContext();
+ if (context != null) {
+ context.unregisterReceiver(mReceiver);
+ }
+ mReceiver = null;
+ }
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ // TODO(b/131519375) - use a real id here once it's been created in the metrics proto
+ return 0;
+ }
+}
diff --git a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
index 0a39bfd..2df16f5 100644
--- a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
+++ b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
@@ -64,7 +64,7 @@
public int getAvailabilityStatus(int subId) {
return subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
? AVAILABLE
- : CONDITIONALLY_UNAVAILABLE;
+ : DISABLED_DEPENDENT_SETTING;
}
@Override
diff --git a/src/com/android/settings/network/telephony/MobileDataSlice.java b/src/com/android/settings/network/telephony/MobileDataSlice.java
index bf9fc04..e497a9e 100644
--- a/src/com/android/settings/network/telephony/MobileDataSlice.java
+++ b/src/com/android/settings/network/telephony/MobileDataSlice.java
@@ -73,11 +73,6 @@
@Override
public Slice getSlice() {
- // Mobile data not available, thus return no Slice.
- if (!isMobileDataAvailable()) {
- return null;
- }
-
final IconCompat icon = IconCompat.createWithResource(mContext,
R.drawable.ic_network_cell);
final String title = mContext.getText(R.string.mobile_data_settings_title).toString();
@@ -85,20 +80,14 @@
// Return a Slice without the mobile data toggle when airplane mode is on.
if (isAirplaneModeEnabled()) {
- final CharSequence summary = mContext.getText(R.string.mobile_data_ap_mode_disabled);
- // Intent does nothing, but we have to pass an intent to the Row.
- final PendingIntent intent = PendingIntent.getActivity(mContext, 0 /* requestCode */,
- new Intent(), 0 /* flags */);
- final SliceAction deadAction =
- SliceAction.create(intent, icon, ListBuilder.ICON_IMAGE, title);
- final ListBuilder listBuilder = new ListBuilder(mContext, getUri(),
- ListBuilder.INFINITY)
- .setAccentColor(color)
- .addRow(new ListBuilder.RowBuilder()
- .setTitle(title)
- .setSubtitle(summary)
- .setPrimaryAction(deadAction));
- return listBuilder.build();
+ return buildUnavailableMobileDataSlice(title,
+ mContext.getText(R.string.mobile_data_ap_mode_disabled), icon, color);
+ }
+
+ // Return a Slice without the mobile data toggle when mobile data disabled.
+ if (!isMobileDataAvailable()) {
+ return buildUnavailableMobileDataSlice(title,
+ mContext.getText(R.string.sim_cellular_data_unavailable), icon, color);
}
final CharSequence summary = getSummary();
@@ -128,7 +117,7 @@
@Override
public void onNotifyChange(Intent intent) {
final boolean newState = intent.getBooleanExtra(EXTRA_TOGGLE_STATE,
- isMobileDataEnabled());
+ isMobileDataEnabled());
final int defaultSubId = getDefaultSubscriptionId(mSubscriptionManager);
if (defaultSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
@@ -212,6 +201,22 @@
return mTelephonyManager.isDataEnabled();
}
+ private Slice buildUnavailableMobileDataSlice(String title, CharSequence summary,
+ IconCompat icon, int color) {
+ final PendingIntent intent = PendingIntent.getActivity(mContext, 0 /* requestCode */,
+ new Intent(), 0 /* flags */);
+ final SliceAction deadAction =
+ SliceAction.create(intent, icon, ListBuilder.ICON_IMAGE, title);
+ final ListBuilder listBuilder = new ListBuilder(mContext, getUri(),
+ ListBuilder.INFINITY)
+ .setAccentColor(color)
+ .addRow(new ListBuilder.RowBuilder()
+ .setTitle(title)
+ .setSubtitle(summary)
+ .setPrimaryAction(deadAction));
+ return listBuilder.build();
+ }
+
/**
* Listener for mobile data state changes.
*
diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettings.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
index eb00b9f..e18971d 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkSettings.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
@@ -138,6 +138,7 @@
use(BillingCyclePreferenceController.class).init(mSubId);
use(MmsMessagePreferenceController.class).init(mSubId);
use(DisabledSubscriptionController.class).init(getLifecycle(), mSubId);
+ use(DeleteSimProfilePreferenceController.class).init(mSubId, this);
}
use(MobileDataPreferenceController.class).init(getFragmentManager(), mSubId);
use(RoamingPreferenceController.class).init(getFragmentManager(), mSubId);
diff --git a/src/com/android/settings/notification/AbstractZenModeAutomaticRulePreferenceController.java b/src/com/android/settings/notification/AbstractZenModeAutomaticRulePreferenceController.java
index 58e1916..f7b3222 100644
--- a/src/com/android/settings/notification/AbstractZenModeAutomaticRulePreferenceController.java
+++ b/src/com/android/settings/notification/AbstractZenModeAutomaticRulePreferenceController.java
@@ -123,11 +123,14 @@
return new ComponentName(ci.packageName, ci.name);
}
// old service backed rule
- final String configurationActivity =
- ci.metaData.getString(ConditionProviderService.META_DATA_CONFIGURATION_ACTIVITY);
- if (configurationActivity != null) {
- return ComponentName.unflattenFromString(configurationActivity);
+ if (ci.metaData != null) {
+ final String configurationActivity = ci.metaData.getString(
+ ConditionProviderService.META_DATA_CONFIGURATION_ACTIVITY);
+ if (configurationActivity != null) {
+ return ComponentName.unflattenFromString(configurationActivity);
+ }
}
+
return null;
}
diff --git a/src/com/android/settings/notification/ImportancePreference.java b/src/com/android/settings/notification/ImportancePreference.java
index 687782b..f48882d 100644
--- a/src/com/android/settings/notification/ImportancePreference.java
+++ b/src/com/android/settings/notification/ImportancePreference.java
@@ -20,10 +20,16 @@
import static android.app.NotificationManager.IMPORTANCE_HIGH;
import static android.app.NotificationManager.IMPORTANCE_LOW;
import static android.app.NotificationManager.IMPORTANCE_MIN;
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
import android.content.Context;
import android.graphics.drawable.Drawable;
+import android.transition.AutoTransition;
+import android.transition.TransitionManager;
import android.util.AttributeSet;
+import android.view.View;
+import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
@@ -38,11 +44,12 @@
private int mImportance;
private boolean mDisplayInStatusBar;
private boolean mDisplayOnLockscreen;
- private Button mSilenceButton;
- private Button mAlertButton;
+ private View mSilenceButton;
+ private View mAlertButton;
private Context mContext;
Drawable selectedBackground;
Drawable unselectedBackground;
+ private static final int BUTTON_ANIM_TIME_MS = 100;
public ImportancePreference(Context context, AttributeSet attrs,
int defStyleAttr, int defStyleRes) {
@@ -89,13 +96,12 @@
}
@Override
- public void onBindViewHolder(PreferenceViewHolder holder) {
+ public void onBindViewHolder(final PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
holder.itemView.setClickable(false);
- TextView textView = (TextView) holder.findViewById(R.id.description);
- mSilenceButton = (Button) holder.findViewById(R.id.silence);
- mAlertButton = (Button) holder.findViewById(R.id.alert);
+ mSilenceButton = holder.findViewById(R.id.silence);
+ mAlertButton = holder.findViewById(R.id.alert);
if (!mIsConfigurable) {
mSilenceButton.setEnabled(false);
@@ -114,34 +120,41 @@
mAlertButton.setBackground(selectedBackground);
break;
}
- setImportanceSummary(textView, mImportance);
+ setImportanceSummary((ViewGroup) holder.itemView, mImportance, false);
mSilenceButton.setOnClickListener(v -> {
callChangeListener(IMPORTANCE_LOW);
mAlertButton.setBackground(unselectedBackground);
+ mAlertButton.setSelected(false);
mSilenceButton.setBackground(selectedBackground);
- mSilenceButton.setTextAppearance(
- R.style.TextAppearance_NotificationImportanceButton_Selected);
- mAlertButton.setTextAppearance(
- R.style.TextAppearance_NotificationImportanceButton_Unselected);
- setImportanceSummary(textView, IMPORTANCE_LOW);
+ mSilenceButton.setSelected(true);
+ setImportanceSummary((ViewGroup) holder.itemView, IMPORTANCE_LOW, true);
});
mAlertButton.setOnClickListener(v -> {
callChangeListener(IMPORTANCE_DEFAULT);
mSilenceButton.setBackground(unselectedBackground);
+ mSilenceButton.setSelected(false);
mAlertButton.setBackground(selectedBackground);
- mAlertButton.setTextAppearance(
- R.style.TextAppearance_NotificationImportanceButton_Selected);
- mSilenceButton.setTextAppearance(
- R.style.TextAppearance_NotificationImportanceButton_Unselected);
- setImportanceSummary(textView, IMPORTANCE_DEFAULT);
+ mAlertButton.setSelected(true);
+ setImportanceSummary((ViewGroup) holder.itemView, IMPORTANCE_DEFAULT, true);
});
}
- void setImportanceSummary(TextView view, int importance) {
+ void setImportanceSummary(ViewGroup parent, int importance, boolean fromUser) {
+ if (fromUser) {
+ AutoTransition transition = new AutoTransition();
+ transition.setDuration(BUTTON_ANIM_TIME_MS);
+ TransitionManager.beginDelayedTransition(parent, transition);
+ }
if (importance >= IMPORTANCE_DEFAULT) {
+ parent.findViewById(R.id.silence_summary).setVisibility(GONE);
+ TextView view = parent.findViewById(R.id.alert_summary);
view.setText(R.string.notification_channel_summary_default);
+ view.setVisibility(VISIBLE);
} else {
+ parent.findViewById(R.id.alert_summary).setVisibility(GONE);
+ TextView view = parent.findViewById(R.id.silence_summary);
+ view.setVisibility(VISIBLE);
if (mDisplayInStatusBar) {
if (mDisplayOnLockscreen) {
view.setText(R.string.notification_channel_summary_low_status_lock);
diff --git a/src/com/android/settings/notification/ImportancePreferenceController.java b/src/com/android/settings/notification/ImportancePreferenceController.java
index 46b2ec6..dc59275 100644
--- a/src/com/android/settings/notification/ImportancePreferenceController.java
+++ b/src/com/android/settings/notification/ImportancePreferenceController.java
@@ -22,6 +22,7 @@
import android.app.NotificationChannel;
import android.content.Context;
import android.media.RingtoneManager;
+import android.provider.Settings;
import com.android.settings.core.PreferenceControllerMixin;
@@ -64,7 +65,8 @@
pref.setConfigurable(!mChannel.isImportanceLockedByOEM());
pref.setImportance(mChannel.getImportance());
pref.setDisplayInStatusBar(mBackend.showSilentInStatusBar(mContext.getPackageName()));
- // TODO: b/128445911 pass along lock screen setting
+ pref.setDisplayOnLockscreen(Settings.Secure.getInt(mContext.getContentResolver(),
+ Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 0) == 1);
}
}
diff --git a/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java b/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
index 9b9de5f..6b95b92 100644
--- a/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
+++ b/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
@@ -38,11 +38,6 @@
import android.view.View;
import android.widget.ImageView;
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceCategory;
-import androidx.preference.PreferenceGroup;
-
import com.android.settings.R;
import com.android.settings.Settings.TetherSettingsActivity;
import com.android.settings.core.BasePreferenceController;
@@ -54,6 +49,11 @@
import java.util.Comparator;
import java.util.List;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceGroup;
+
/**
* {@link BasePreferenceController} that populates a list of widgets that Settings app support.
*/
@@ -143,24 +143,7 @@
@VisibleForTesting
Intent createResultIntent(Intent shortcutIntent, ResolveInfo resolveInfo,
CharSequence label) {
- final ActivityInfo activityInfo = resolveInfo.activityInfo;
-
- final Icon maskableIcon;
- if (activityInfo.icon != 0 && activityInfo.applicationInfo != null) {
- maskableIcon = Icon.createWithAdaptiveBitmap(createIcon(
- activityInfo.applicationInfo, activityInfo.icon,
- R.layout.shortcut_badge_maskable,
- mContext.getResources().getDimensionPixelSize(R.dimen.shortcut_size_maskable)));
- } else {
- maskableIcon = Icon.createWithResource(mContext, R.drawable.ic_launcher_settings);
- }
- final String shortcutId = SHORTCUT_ID_PREFIX +
- shortcutIntent.getComponent().flattenToShortString();
- ShortcutInfo info = new ShortcutInfo.Builder(mContext, shortcutId)
- .setShortLabel(label)
- .setIntent(shortcutIntent)
- .setIcon(maskableIcon)
- .build();
+ ShortcutInfo info = createShortcutInfo(mContext, shortcutIntent, resolveInfo, label);
Intent intent = mShortcutManager.createShortcutResultIntent(info);
if (intent == null) {
intent = new Intent();
@@ -170,8 +153,10 @@
.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent)
.putExtra(Intent.EXTRA_SHORTCUT_NAME, label);
+ final ActivityInfo activityInfo = resolveInfo.activityInfo;
if (activityInfo.icon != 0) {
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, createIcon(
+ mContext,
activityInfo.applicationInfo,
activityInfo.icon,
R.layout.shortcut_badge,
@@ -217,15 +202,40 @@
info.activityInfo.name);
}
- private Intent buildShortcutIntent(ResolveInfo info) {
+ private static Intent buildShortcutIntent(ResolveInfo info) {
return new Intent(SHORTCUT_PROBE)
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP)
.setClassName(info.activityInfo.packageName, info.activityInfo.name);
}
- private Bitmap createIcon(ApplicationInfo app, int resource, int layoutRes, int size) {
- final Context context = new ContextThemeWrapper(mContext, android.R.style.Theme_Material);
- final View view = LayoutInflater.from(context).inflate(layoutRes, null);
+ private static ShortcutInfo createShortcutInfo(Context context, Intent shortcutIntent,
+ ResolveInfo resolveInfo, CharSequence label) {
+ final ActivityInfo activityInfo = resolveInfo.activityInfo;
+
+ final Icon maskableIcon;
+ if (activityInfo.icon != 0 && activityInfo.applicationInfo != null) {
+ maskableIcon = Icon.createWithAdaptiveBitmap(createIcon(
+ context,
+ activityInfo.applicationInfo, activityInfo.icon,
+ R.layout.shortcut_badge_maskable,
+ context.getResources().getDimensionPixelSize(R.dimen.shortcut_size_maskable)));
+ } else {
+ maskableIcon = Icon.createWithResource(context, R.drawable.ic_launcher_settings);
+ }
+ final String shortcutId = SHORTCUT_ID_PREFIX +
+ shortcutIntent.getComponent().flattenToShortString();
+ return new ShortcutInfo.Builder(context, shortcutId)
+ .setShortLabel(label)
+ .setIntent(shortcutIntent)
+ .setIcon(maskableIcon)
+ .build();
+ }
+
+ private static Bitmap createIcon(Context context, ApplicationInfo app, int resource,
+ int layoutRes, int size) {
+ final Context themedContext = new ContextThemeWrapper(context,
+ android.R.style.Theme_Material);
+ final View view = LayoutInflater.from(themedContext).inflate(layoutRes, null);
final int spec = View.MeasureSpec.makeMeasureSpec(size, View.MeasureSpec.EXACTLY);
view.measure(spec, spec);
final Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(),
@@ -234,14 +244,15 @@
Drawable iconDrawable;
try {
- iconDrawable = mPackageManager.getResourcesForApplication(app).getDrawable(resource);
+ iconDrawable = context.getPackageManager().getResourcesForApplication(app)
+ .getDrawable(resource);
if (iconDrawable instanceof LayerDrawable) {
iconDrawable = ((LayerDrawable) iconDrawable).getDrawable(1);
}
((ImageView) view.findViewById(android.R.id.icon)).setImageDrawable(iconDrawable);
} catch (PackageManager.NameNotFoundException e) {
Log.w(TAG, "Cannot load icon from app " + app + ", returning a default icon");
- Icon icon = Icon.createWithResource(mContext, R.drawable.ic_launcher_settings);
+ Icon icon = Icon.createWithResource(context, R.drawable.ic_launcher_settings);
((ImageView) view.findViewById(android.R.id.icon)).setImageIcon(icon);
}
@@ -250,12 +261,24 @@
return bitmap;
}
- private static final Comparator<ResolveInfo> SHORTCUT_COMPARATOR =
- new Comparator<ResolveInfo>() {
+ public static void updateRestoredShortcuts(Context context) {
+ ShortcutManager sm = context.getSystemService(ShortcutManager.class);
+ List<ShortcutInfo> updatedShortcuts = new ArrayList<>();
+ for (ShortcutInfo si : sm.getPinnedShortcuts()) {
+ if (si.getId().startsWith(SHORTCUT_ID_PREFIX)) {
+ ResolveInfo ri = context.getPackageManager().resolveActivity(si.getIntent(), 0);
- @Override
- public int compare(ResolveInfo i1, ResolveInfo i2) {
- return i1.priority - i2.priority;
+ if (ri != null) {
+ updatedShortcuts.add(createShortcutInfo(context, buildShortcutIntent(ri), ri,
+ si.getShortLabel()));
}
- };
+ }
+ }
+ if (!updatedShortcuts.isEmpty()) {
+ sm.updateShortcuts(updatedShortcuts);
+ }
+ }
+
+ private static final Comparator<ResolveInfo> SHORTCUT_COMPARATOR =
+ (i1, i2) -> i1.priority - i2.priority;
}
diff --git a/src/com/android/settings/sim/SimSelectNotification.java b/src/com/android/settings/sim/SimSelectNotification.java
index 3179e6a..911d0e8 100644
--- a/src/com/android/settings/sim/SimSelectNotification.java
+++ b/src/com/android/settings/sim/SimSelectNotification.java
@@ -16,12 +16,18 @@
package com.android.settings.sim;
+import static android.provider.Settings.ENABLE_MMS_DATA_REQUEST_REASON_INCOMING_MMS;
+import static android.provider.Settings.ENABLE_MMS_DATA_REQUEST_REASON_OUTGOING_MMS;
+import static android.provider.Settings.EXTRA_ENABLE_MMS_DATA_REQUEST_REASON;
+import static android.provider.Settings.EXTRA_SUB_ID;
import static android.telephony.TelephonyManager.EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE;
import static android.telephony.TelephonyManager.EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_ALL;
import static android.telephony.TelephonyManager.EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DATA;
import static android.telephony.TelephonyManager.EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_NONE;
import static android.telephony.TelephonyManager.EXTRA_SUBSCRIPTION_ID;
+import static android.telephony.data.ApnSetting.TYPE_MMS;
+import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
@@ -32,28 +38,97 @@
import android.provider.Settings;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
+import android.util.Log;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
-import com.android.settings.Settings.SimSettingsActivity;
-
-import androidx.core.app.NotificationCompat;
+import com.android.settings.network.telephony.MobileNetworkActivity;
public class SimSelectNotification extends BroadcastReceiver {
private static final String TAG = "SimSelectNotification";
- private static final int NOTIFICATION_ID = 1;
+ @VisibleForTesting
+ public static final int SIM_SELECT_NOTIFICATION_ID = 1;
+ @VisibleForTesting
+ public static final int ENABLE_MMS_NOTIFICATION_ID = 2;
- private static final String SIM_SELECT_NOTIFICATION_CHANNEL =
+ @VisibleForTesting
+ public static final String SIM_SELECT_NOTIFICATION_CHANNEL =
"sim_select_notification_channel";
+ @VisibleForTesting
+ public static final String ENABLE_MMS_NOTIFICATION_CHANNEL =
+ "enable_mms_notification_channel";
+
@Override
public void onReceive(Context context, Intent intent) {
- if (!TelephonyManager.ACTION_PRIMARY_SUBSCRIPTION_LIST_CHANGED.equals(intent.getAction())) {
+ String action = intent.getAction();
+
+ if (action == null) {
+ Log.w(TAG, "Received unexpected intent with null action.");
return;
}
+
+ switch (action) {
+ case TelephonyManager.ACTION_PRIMARY_SUBSCRIPTION_LIST_CHANGED:
+ onPrimarySubscriptionListChanged(context, intent);
+ break;
+ case Settings.ACTION_ENABLE_MMS_DATA_REQUEST:
+ onEnableMmsDataRequest(context, intent);
+ break;
+ default:
+ Log.w(TAG, "Received unexpected intent " + intent.getAction());
+ }
+ }
+
+ private void onEnableMmsDataRequest(Context context, Intent intent) {
+ // Getting subId from extra.
+ int subId = intent.getIntExtra(EXTRA_SUB_ID, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ if (subId == SubscriptionManager.DEFAULT_SUBSCRIPTION_ID) {
+ subId = SubscriptionManager.getDefaultSmsSubscriptionId();
+ }
+
+ SubscriptionManager subscriptionManager = ((SubscriptionManager) context.getSystemService(
+ Context.TELEPHONY_SUBSCRIPTION_SERVICE));
+ if (!subscriptionManager.isActiveSubId(subId)) {
+ Log.w(TAG, "onEnableMmsDataRequest invalid sub ID " + subId);
+ return;
+ }
+
+ // Getting request reason from extra, which will determine the notification title.
+ CharSequence notificationTitle = null;
+ int requestReason = intent.getIntExtra(EXTRA_ENABLE_MMS_DATA_REQUEST_REASON, -1);
+ if (requestReason == ENABLE_MMS_DATA_REQUEST_REASON_INCOMING_MMS) {
+ notificationTitle = context.getResources().getText(
+ R.string.enable_receiving_mms_notification_title);
+ } else if (requestReason == ENABLE_MMS_DATA_REQUEST_REASON_OUTGOING_MMS) {
+ notificationTitle = context.getResources().getText(
+ R.string.enable_sending_mms_notification_title);
+ } else {
+ Log.w(TAG, "onEnableMmsDataRequest invalid request reason " + requestReason);
+ return;
+ }
+
+ TelephonyManager tm = ((TelephonyManager) context.getSystemService(
+ Context.TELEPHONY_SERVICE)).createForSubscriptionId(subId);
+
+ if (tm.isDataEnabledForApn(TYPE_MMS)) {
+ Log.w(TAG, "onEnableMmsDataRequest MMS data already enabled on sub ID " + subId);
+ return;
+ }
+
+ CharSequence notificationSummary = context.getResources().getString(
+ R.string.enable_mms_notification_summary, tm.getSimOperatorName());
+
+ cancelEnableMmsNotification(context);
+
+ createEnableMmsNotification(context, notificationTitle, notificationSummary, subId);
+ }
+
+ private void onPrimarySubscriptionListChanged(Context context, Intent intent) {
// Cancel any previous notifications
- cancelNotification(context);
+ cancelSimSelectNotification(context);
// Create a notification to tell the user that some defaults are missing
- createNotification(context);
+ createSimSelectNotification(context);
int dialogType = intent.getIntExtra(EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE,
EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_NONE);
@@ -76,20 +151,20 @@
}
}
- private void createNotification(Context context){
+ private void createSimSelectNotification(Context context){
final Resources resources = context.getResources();
NotificationChannel notificationChannel = new NotificationChannel(
SIM_SELECT_NOTIFICATION_CHANNEL,
- resources.getString(R.string.sim_selection_channel_title),
+ resources.getText(R.string.sim_selection_channel_title),
NotificationManager.IMPORTANCE_LOW);
- NotificationCompat.Builder builder =
- new NotificationCompat.Builder(context, SIM_SELECT_NOTIFICATION_CHANNEL)
+ Notification.Builder builder =
+ new Notification.Builder(context, SIM_SELECT_NOTIFICATION_CHANNEL)
.setSmallIcon(R.drawable.ic_sim_card_alert_white_48dp)
.setColor(context.getColor(R.color.sim_noitification))
- .setContentTitle(resources.getString(R.string.sim_notification_title))
- .setContentText(resources.getString(R.string.sim_notification_summary));
+ .setContentTitle(resources.getText(R.string.sim_notification_title))
+ .setContentText(resources.getText(R.string.sim_notification_summary));
Intent resultIntent = new Intent(Settings.ACTION_WIRELESS_SETTINGS);
resultIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent resultPendingIntent = PendingIntent.getActivity(context, 0, resultIntent,
@@ -98,12 +173,51 @@
NotificationManager notificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.createNotificationChannel(notificationChannel);
- notificationManager.notify(NOTIFICATION_ID, builder.build());
+ notificationManager.notify(SIM_SELECT_NOTIFICATION_ID, builder.build());
}
- public static void cancelNotification(Context context) {
+ public static void cancelSimSelectNotification(Context context) {
NotificationManager notificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
- notificationManager.cancel(NOTIFICATION_ID);
+ notificationManager.cancel(SIM_SELECT_NOTIFICATION_ID);
+ }
+
+ private void createEnableMmsNotification(Context context, CharSequence titleString,
+ CharSequence notificationSummary, int subId) {
+ final Resources resources = context.getResources();
+
+ NotificationChannel notificationChannel = new NotificationChannel(
+ ENABLE_MMS_NOTIFICATION_CHANNEL,
+ resources.getText(R.string.enable_mms_notification_channel_title),
+ NotificationManager.IMPORTANCE_HIGH);
+
+ Notification.Builder builder =
+ new Notification.Builder(context, ENABLE_MMS_NOTIFICATION_CHANNEL)
+ .setSmallIcon(R.drawable.ic_settings_24dp)
+ .setColor(context.getColor(R.color.sim_noitification))
+ .setContentTitle(titleString)
+ .setContentText(notificationSummary)
+ .setStyle(new Notification.BigTextStyle().bigText(notificationSummary));
+
+ // Create the pending intent that will lead to the subscription setting page.
+ Intent resultIntent = new Intent(Settings.ACTION_MMS_MESSAGE_SETTING);
+ resultIntent.setClass(context, MobileNetworkActivity.class);
+ resultIntent.putExtra(Settings.EXTRA_SUB_ID, subId);
+ resultIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ PendingIntent resultPendingIntent = PendingIntent.getActivity(context, 0, resultIntent,
+ PendingIntent.FLAG_CANCEL_CURRENT);
+ builder.setContentIntent(resultPendingIntent);
+
+ // Notify the notification.
+ NotificationManager notificationManager =
+ (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
+ notificationManager.createNotificationChannel(notificationChannel);
+ notificationManager.notify(ENABLE_MMS_NOTIFICATION_ID, builder.build());
+ }
+
+ private void cancelEnableMmsNotification(Context context) {
+ NotificationManager notificationManager =
+ (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
+ notificationManager.cancel(ENABLE_MMS_NOTIFICATION_ID);
}
}
diff --git a/src/com/android/settings/sim/SimSettings.java b/src/com/android/settings/sim/SimSettings.java
index e43c6a5..1222913 100644
--- a/src/com/android/settings/sim/SimSettings.java
+++ b/src/com/android/settings/sim/SimSettings.java
@@ -101,7 +101,7 @@
mSimCards = (PreferenceScreen)findPreference(SIM_CARD_CATEGORY);
mAvailableSubInfos = new ArrayList<SubscriptionInfo>(mNumSlots);
mSelectableSubInfos = new ArrayList<SubscriptionInfo>();
- SimSelectNotification.cancelNotification(getActivity());
+ SimSelectNotification.cancelSimSelectNotification(getActivity());
}
private final SubscriptionManager.OnSubscriptionsChangedListener mOnSubscriptionsChangeListener
diff --git a/src/com/android/settings/sound/AudioSwitchPreferenceController.java b/src/com/android/settings/sound/AudioSwitchPreferenceController.java
index 0da0f21..5b70d16 100644
--- a/src/com/android/settings/sound/AudioSwitchPreferenceController.java
+++ b/src/com/android/settings/sound/AudioSwitchPreferenceController.java
@@ -17,7 +17,6 @@
package com.android.settings.sound;
import static android.media.AudioManager.STREAM_DEVICES_CHANGED_ACTION;
-import static android.media.MediaRouter.ROUTE_TYPE_REMOTE_DISPLAY;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
@@ -29,7 +28,6 @@
import android.media.AudioDeviceInfo;
import android.media.AudioManager;
import android.media.MediaRouter;
-import android.media.MediaRouter.Callback;
import android.os.Handler;
import android.os.Looper;
import android.util.FeatureFlagUtils;
@@ -76,7 +74,6 @@
protected AudioSwitchCallback mAudioSwitchPreferenceCallback;
private final AudioManagerAudioDeviceCallback mAudioManagerAudioDeviceCallback;
- private final MediaRouterCallback mMediaRouterCallback;
private final WiredHeadsetBroadcastReceiver mReceiver;
private final Handler mHandler;
private LocalBluetoothManager mLocalBluetoothManager;
@@ -92,7 +89,6 @@
mHandler = new Handler(Looper.getMainLooper());
mAudioManagerAudioDeviceCallback = new AudioManagerAudioDeviceCallback();
mReceiver = new WiredHeadsetBroadcastReceiver();
- mMediaRouterCallback = new MediaRouterCallback();
mConnectedDevices = new ArrayList<>();
final FutureTask<LocalBluetoothManager> localBtManagerFutureTask = new FutureTask<>(
// Avoid StrictMode ThreadPolicy violation
@@ -210,12 +206,12 @@
* get A2dp devices on all states
* (STATE_DISCONNECTED, STATE_CONNECTING, STATE_CONNECTED, STATE_DISCONNECTING)
*/
- protected List<BluetoothDevice> getConnectableA2dpDevices() {
+ protected List<BluetoothDevice> getConnectedA2dpDevices() {
final A2dpProfile a2dpProfile = mProfileManager.getA2dpProfile();
if (a2dpProfile == null) {
return new ArrayList<>();
}
- return a2dpProfile.getConnectableDevices();
+ return a2dpProfile.getConnectedDevices();
}
/**
@@ -242,31 +238,6 @@
}
/**
- * get hearing aid profile devices on all states
- * (STATE_DISCONNECTED, STATE_CONNECTING, STATE_CONNECTED, STATE_DISCONNECTING)
- * exclude other devices with same hiSyncId.
- */
- protected List<BluetoothDevice> getConnectableHearingAidDevices() {
- final List<BluetoothDevice> connectedDevices = new ArrayList<>();
- final HearingAidProfile hapProfile = mProfileManager.getHearingAidProfile();
- if (hapProfile == null) {
- return connectedDevices;
- }
- final List<Long> devicesHiSyncIds = new ArrayList<>();
- final List<BluetoothDevice> devices = hapProfile.getConnectableDevices();
- for (BluetoothDevice device : devices) {
- final long hiSyncId = hapProfile.getHiSyncId(device);
- // device with same hiSyncId should not be shown in the UI.
- // So do not add it into connectedDevices.
- if (!devicesHiSyncIds.contains(hiSyncId)) {
- devicesHiSyncIds.add(hiSyncId);
- connectedDevices.add(device);
- }
- }
- return connectedDevices;
- }
-
- /**
* Find active hearing aid device
*/
protected BluetoothDevice findActiveHearingAidDevice() {
@@ -299,7 +270,6 @@
private void register() {
mLocalBluetoothManager.getEventManager().registerCallback(this);
mAudioManager.registerAudioDeviceCallback(mAudioManagerAudioDeviceCallback, mHandler);
- mMediaRouter.addCallback(ROUTE_TYPE_REMOTE_DISPLAY, mMediaRouterCallback);
// Register for misc other intent broadcasts.
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
@@ -310,7 +280,6 @@
private void unregister() {
mLocalBluetoothManager.getEventManager().unregisterCallback(this);
mAudioManager.unregisterAudioDeviceCallback(mAudioManagerAudioDeviceCallback);
- mMediaRouter.removeCallback(mMediaRouterCallback);
mContext.unregisterReceiver(mReceiver);
}
@@ -338,49 +307,4 @@
}
}
}
-
- /** Callback for cast device events. */
- private class MediaRouterCallback extends Callback {
- @Override
- public void onRouteSelected(MediaRouter router, int type, MediaRouter.RouteInfo info) {
- }
-
- @Override
- public void onRouteUnselected(MediaRouter router, int type, MediaRouter.RouteInfo info) {
- }
-
- @Override
- public void onRouteAdded(MediaRouter router, MediaRouter.RouteInfo info) {
- if (info != null && !info.isDefault()) {
- // cast mode
- updateState(mPreference);
- }
- }
-
- @Override
- public void onRouteRemoved(MediaRouter router, MediaRouter.RouteInfo info) {
- }
-
- @Override
- public void onRouteChanged(MediaRouter router, MediaRouter.RouteInfo info) {
- if (info != null && !info.isDefault()) {
- // cast mode
- updateState(mPreference);
- }
- }
-
- @Override
- public void onRouteGrouped(MediaRouter router, MediaRouter.RouteInfo info,
- MediaRouter.RouteGroup group, int index) {
- }
-
- @Override
- public void onRouteUngrouped(MediaRouter router, MediaRouter.RouteInfo info,
- MediaRouter.RouteGroup group) {
- }
-
- @Override
- public void onRouteVolumeChanged(MediaRouter router, MediaRouter.RouteInfo info) {
- }
- }
}
diff --git a/src/com/android/settings/sound/MediaOutputPreferenceController.java b/src/com/android/settings/sound/MediaOutputPreferenceController.java
index 47810f7..1831ad6 100644
--- a/src/com/android/settings/sound/MediaOutputPreferenceController.java
+++ b/src/com/android/settings/sound/MediaOutputPreferenceController.java
@@ -16,9 +16,6 @@
package com.android.settings.sound;
-import static android.media.AudioManager.STREAM_MUSIC;
-import static android.media.AudioSystem.DEVICE_OUT_REMOTE_SUBMIX;
-
import android.bluetooth.BluetoothDevice;
import android.content.Context;
import android.content.Intent;
@@ -56,13 +53,6 @@
return;
}
- if (isStreamFromOutputDevice(STREAM_MUSIC, DEVICE_OUT_REMOTE_SUBMIX)) {
- // In cast mode, disable switch entry.
- mPreference.setVisible(false);
- preference.setSummary(mContext.getText(R.string.media_output_summary_unavailable));
- return;
- }
-
if (Utils.isAudioModeOngoingCall(mContext)) {
// Ongoing call status, switch entry for media will be disabled.
mPreference.setVisible(false);
@@ -71,19 +61,19 @@
return;
}
- boolean deviceConnectable = false;
+ boolean deviceConnected = false;
BluetoothDevice activeDevice = null;
// Show preference if there is connected or previously connected device
// Find active device and set its name as the preference's summary
- List<BluetoothDevice> connectableA2dpDevices = getConnectableA2dpDevices();
- List<BluetoothDevice> connectableHADevices = getConnectableHearingAidDevices();
+ List<BluetoothDevice> connectedA2dpDevices = getConnectedA2dpDevices();
+ List<BluetoothDevice> connectedHADevices = getConnectedHearingAidDevices();
if (mAudioManager.getMode() == AudioManager.MODE_NORMAL
- && ((connectableA2dpDevices != null && !connectableA2dpDevices.isEmpty())
- || (connectableHADevices != null && !connectableHADevices.isEmpty()))) {
- deviceConnectable = true;
+ && ((connectedA2dpDevices != null && !connectedA2dpDevices.isEmpty())
+ || (connectedHADevices != null && !connectedHADevices.isEmpty()))) {
+ deviceConnected = true;
activeDevice = findActiveDevice();
}
- mPreference.setVisible(deviceConnectable);
+ mPreference.setVisible(deviceConnected);
mPreference.setSummary((activeDevice == null) ?
mContext.getText(R.string.media_output_default_summary) :
activeDevice.getAliasName());
diff --git a/src/com/android/settings/wifi/details/WifiMeteredPreferenceController.java b/src/com/android/settings/wifi/details/WifiMeteredPreferenceController.java
index 341b227..5f4e9d0 100644
--- a/src/com/android/settings/wifi/details/WifiMeteredPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiMeteredPreferenceController.java
@@ -24,19 +24,22 @@
import androidx.annotation.VisibleForTesting;
import androidx.preference.DropDownPreference;
import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
import com.android.settings.core.BasePreferenceController;
+import com.android.settings.wifi.WifiDialog;
import com.android.settingslib.core.AbstractPreferenceController;
/**
* {@link AbstractPreferenceController} that controls whether the wifi network is metered or not
*/
public class WifiMeteredPreferenceController extends BasePreferenceController implements
- Preference.OnPreferenceChangeListener {
+ Preference.OnPreferenceChangeListener, WifiDialog.WifiDialogListener {
private static final String KEY_WIFI_METERED = "metered";
private WifiConfiguration mWifiConfiguration;
private WifiManager mWifiManager;
+ private Preference mPreference;
public WifiMeteredPreferenceController(Context context, WifiConfiguration wifiConfiguration) {
super(context, KEY_WIFI_METERED);
@@ -81,4 +84,25 @@
private void updateSummary(DropDownPreference preference, int meteredOverride) {
preference.setSummary(preference.getEntries()[meteredOverride]);
}
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = screen.findPreference(getPreferenceKey());
+ }
+
+ @Override
+ public void onSubmit(WifiDialog dialog) {
+ if (dialog.getController() != null) {
+ final WifiConfiguration newConfig = dialog.getController().getConfig();
+ if (newConfig == null || mWifiConfiguration == null) {
+ return;
+ }
+
+ if (newConfig.meteredOverride != mWifiConfiguration.meteredOverride) {
+ mWifiConfiguration = newConfig;
+ onPreferenceChange(mPreference, String.valueOf(newConfig.meteredOverride));
+ }
+ }
+ }
}
diff --git a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
index 10d1d48..b645d60 100644
--- a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
+++ b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
@@ -47,12 +47,14 @@
* <p>The AccessPoint should be saved to the intent Extras when launching this class via
* {@link AccessPoint#saveWifiState(Bundle)} in order to properly render this page.
*/
-public class WifiNetworkDetailsFragment extends DashboardFragment {
+public class WifiNetworkDetailsFragment extends DashboardFragment implements
+ WifiDialog.WifiDialogListener {
private static final String TAG = "WifiNetworkDetailsFrg";
private AccessPoint mAccessPoint;
private WifiDetailPreferenceController mWifiDetailPreferenceController;
+ private List<WifiDialog.WifiDialogListener> mWifiDialogListeners = new ArrayList<>();
@Override
public void onAttach(Context context) {
@@ -89,7 +91,7 @@
|| mAccessPoint == null) {
return null;
}
- return WifiDialog.createModal(getActivity(), mWifiDetailPreferenceController, mAccessPoint,
+ return WifiDialog.createModal(getActivity(), this, mAccessPoint,
WifiConfigUiBase.MODE_MODIFY);
}
@@ -135,15 +137,31 @@
controllers.add(mWifiDetailPreferenceController);
controllers.add(new AddDevicePreferenceController(context).init(mAccessPoint));
- controllers.add(new WifiMeteredPreferenceController(context, mAccessPoint.getConfig()));
- WifiPrivacyPreferenceController privacyController = new WifiPrivacyPreferenceController(
- context);
+
+ final WifiMeteredPreferenceController meteredPreferenceController =
+ new WifiMeteredPreferenceController(context, mAccessPoint.getConfig());
+ controllers.add(meteredPreferenceController);
+
+ final WifiPrivacyPreferenceController privacyController =
+ new WifiPrivacyPreferenceController(context);
privacyController.setWifiConfiguration(mAccessPoint.getConfig());
privacyController.setIsEphemeral(mAccessPoint.isEphemeral());
privacyController.setIsPasspoint(
mAccessPoint.isPasspoint() || mAccessPoint.isPasspointConfig());
controllers.add(privacyController);
+ // Sets callback listener for wifi dialog.
+ mWifiDialogListeners.add(mWifiDetailPreferenceController);
+ mWifiDialogListeners.add(privacyController);
+ mWifiDialogListeners.add(meteredPreferenceController);
+
return controllers;
}
+
+ @Override
+ public void onSubmit(WifiDialog dialog) {
+ for (WifiDialog.WifiDialogListener listener : mWifiDialogListeners) {
+ listener.onSubmit(dialog);
+ }
+ }
}
diff --git a/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java b/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java
index 7bec411..950cc13 100644
--- a/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java
@@ -18,16 +18,17 @@
import android.content.Context;
import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
-import android.util.FeatureFlagUtils;
import androidx.annotation.VisibleForTesting;
import androidx.preference.DropDownPreference;
import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.core.FeatureFlags;
+import com.android.settings.wifi.WifiDialog;
import com.android.settingslib.core.AbstractPreferenceController;
/**
@@ -35,13 +36,14 @@
* or not
*/
public class WifiPrivacyPreferenceController extends BasePreferenceController implements
- Preference.OnPreferenceChangeListener {
+ Preference.OnPreferenceChangeListener, WifiDialog.WifiDialogListener {
private static final String KEY_WIFI_PRIVACY = "privacy";
private WifiConfiguration mWifiConfiguration;
private WifiManager mWifiManager;
private boolean mIsEphemeral = false;
private boolean mIsPasspoint = false;
+ private Preference mPreference;
public WifiPrivacyPreferenceController(Context context) {
super(context, KEY_WIFI_PRIVACY);
@@ -69,6 +71,12 @@
}
@Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = screen.findPreference(getPreferenceKey());
+ }
+
+ @Override
public void updateState(Preference preference) {
final DropDownPreference dropDownPreference = (DropDownPreference) preference;
final int randomizationLevel = getRandomizationValue();
@@ -87,9 +95,13 @@
if (mWifiConfiguration != null) {
mWifiConfiguration.macRandomizationSetting = Integer.parseInt((String) newValue);
mWifiManager.updateNetwork(mWifiConfiguration);
- // To activate changing, we need reconnect network. WiFi will auto connect to current
- // network after disconnect().
- mWifiManager.disconnect();
+
+ // To activate changing, we need to reconnect network. WiFi will auto connect to
+ // current network after disconnect(). Only needed when this is connected network.
+ final WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
+ if (wifiInfo != null && wifiInfo.getNetworkId() == mWifiConfiguration.networkId) {
+ mWifiManager.disconnect();
+ }
}
updateSummary((DropDownPreference) preference, Integer.parseInt((String) newValue));
return true;
@@ -133,4 +145,19 @@
final int prefMacRandomized = translateMacRandomizedValueToPrefValue(macRandomized);
preference.setSummary(preference.getEntries()[prefMacRandomized]);
}
+
+ @Override
+ public void onSubmit(WifiDialog dialog) {
+ if (dialog.getController() != null) {
+ final WifiConfiguration newConfig = dialog.getController().getConfig();
+ if (newConfig == null || mWifiConfiguration == null) {
+ return;
+ }
+
+ if (newConfig.macRandomizationSetting != mWifiConfiguration.macRandomizationSetting) {
+ mWifiConfiguration = newConfig;
+ onPreferenceChange(mPreference, String.valueOf(newConfig.macRandomizationSetting));
+ }
+ }
+ }
}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/LocalDeviceNameDialogFragmentTest.java b/tests/robotests/src/com/android/settings/bluetooth/LocalDeviceNameDialogFragmentTest.java
deleted file mode 100644
index 9a6ad91..0000000
--- a/tests/robotests/src/com/android/settings/bluetooth/LocalDeviceNameDialogFragmentTest.java
+++ /dev/null
@@ -1,85 +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.settings.bluetooth;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.view.View;
-import android.view.inputmethod.InputMethodManager;
-
-import androidx.appcompat.app.AlertDialog;
-import androidx.fragment.app.FragmentActivity;
-
-import com.android.settings.R;
-import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
-import com.android.settingslib.bluetooth.LocalBluetoothManager;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadows.androidx.fragment.FragmentController;
-import org.robolectric.util.ReflectionHelpers;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowAlertDialogCompat.class)
-public class LocalDeviceNameDialogFragmentTest {
-
- @Mock
- private InputMethodManager mInputMethodManager;
-
- private Context mContext;
- private LocalDeviceNameDialogFragment mFragment;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- doReturn(mInputMethodManager).when(mContext).getSystemService(Context.INPUT_METHOD_SERVICE);
-
- mFragment = spy(LocalDeviceNameDialogFragment.newInstance());
- when(mFragment.getContext()).thenReturn(mContext);
- }
-
- @After
- public void tearDown() {
- ReflectionHelpers.setStaticField(LocalBluetoothManager.class, "sInstance", null);
- }
-
- @Test
- @Ignore("b/120505691")
- public void dialogTriggersShowSoftInput() {
- FragmentController.setupFragment(mFragment, FragmentActivity.class, 0 /* containerViewId */,
- null /* bundle */);
- AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
- assertThat(dialog).isNotNull();
- View view = dialog.findViewById(R.id.edittext);
- verify(mInputMethodManager).showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
index 2ee6d0c..2dd0d9b 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
@@ -33,16 +33,20 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
+import android.provider.Settings;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
+import androidx.annotation.VisibleForTesting;
import androidx.loader.app.LoaderManager;
+import androidx.preference.PreferenceScreen;
import com.android.internal.os.BatterySipper;
import com.android.internal.os.BatteryStatsHelper;
@@ -51,6 +55,7 @@
import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.XmlTestUtils;
+import com.android.settingslib.core.instrumentation.VisibilityLoggerMixin;
import com.android.settingslib.widget.LayoutPreference;
import org.junit.Before;
@@ -66,6 +71,7 @@
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.util.ReflectionHelpers;
import java.util.ArrayList;
import java.util.List;
@@ -117,6 +123,14 @@
private MenuItem mAdvancedPageMenu;
@Mock
private BatteryInfo mBatteryInfo;
+ @Mock
+ private ContentResolver mContentResolver;
+ @Mock
+ private BatteryBroadcastReceiver mBatteryBroadcastReceiver;
+ @Mock
+ private VisibilityLoggerMixin mVisibilityLoggerMixin;
+ @Mock
+ private PreferenceScreen mPreferenceScreen;
private List<BatterySipper> mUsageList;
private Context mRealContext;
@@ -148,7 +162,7 @@
.thenReturn(sAdditionalBatteryInfoIntent);
when(mBatteryHelper.getTotalPower()).thenReturn(TOTAL_POWER);
when(mBatteryHelper.getStats().computeBatteryRealtime(anyLong(), anyInt()))
- .thenReturn(TIME_SINCE_LAST_FULL_CHARGE_US);
+ .thenReturn(TIME_SINCE_LAST_FULL_CHARGE_US);
when(mNormalBatterySipper.getUid()).thenReturn(UID);
mNormalBatterySipper.totalPowerMah = POWER_MAH;
@@ -176,6 +190,11 @@
mFragment.mScreenUsagePref = mScreenUsagePref;
mFragment.mLastFullChargePref = mLastFullChargePref;
mFragment.mBatteryUtils = spy(new BatteryUtils(mRealContext));
+ ReflectionHelpers.setField(mFragment, "mVisibilityLoggerMixin", mVisibilityLoggerMixin);
+ ReflectionHelpers.setField(mFragment, "mBatteryBroadcastReceiver",
+ mBatteryBroadcastReceiver);
+ doReturn(mPreferenceScreen).when(mFragment).getPreferenceScreen();
+ when(mFragment.getContentResolver()).thenReturn(mContentResolver);
}
@Test
@@ -207,10 +226,10 @@
public void nonIndexableKeys_MatchPreferenceKeys() {
final Context context = RuntimeEnvironment.application;
final List<String> niks =
- PowerUsageSummary.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(context);
+ PowerUsageSummary.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(context);
final List<String> keys =
- XmlTestUtils.getKeysFromPreferenceXml(context, R.xml.power_usage_summary);
+ XmlTestUtils.getKeysFromPreferenceXml(context, R.xml.power_usage_summary);
assertThat(keys).containsAllIn(niks);
}
@@ -223,25 +242,25 @@
mFragment.restartBatteryTipLoader();
verify(mLoaderManager)
- .restartLoader(eq(PowerUsageSummary.BATTERY_TIP_LOADER), eq(Bundle.EMPTY), any());
+ .restartLoader(eq(PowerUsageSummary.BATTERY_TIP_LOADER), eq(Bundle.EMPTY), any());
}
@Test
public void showBothEstimates_summariesAreBothModified() {
when(mFeatureFactory.powerUsageFeatureProvider.isEnhancedBatteryPredictionEnabled(any()))
- .thenReturn(true);
+ .thenReturn(true);
doAnswer(new Answer() {
@Override
public Object answer(InvocationOnMock invocation) {
return mRealContext.getString(
- R.string.power_usage_old_debug, invocation.getArguments()[0]);
+ R.string.power_usage_old_debug, invocation.getArguments()[0]);
}
}).when(mFeatureFactory.powerUsageFeatureProvider).getOldEstimateDebugString(any());
doAnswer(new Answer() {
@Override
public Object answer(InvocationOnMock invocation) {
return mRealContext.getString(
- R.string.power_usage_enhanced_debug, invocation.getArguments()[0]);
+ R.string.power_usage_enhanced_debug, invocation.getArguments()[0]);
}
}).when(mFeatureFactory.powerUsageFeatureProvider).getEnhancedEstimateDebugString(any());
@@ -336,6 +355,24 @@
verify(mFragment).restartBatteryTipLoader();
}
+ @Test
+ public void onResume_registerContentObserver() {
+ mFragment.onResume();
+
+ verify(mContentResolver).registerContentObserver(
+ Settings.Global.getUriFor(Settings.Global.BATTERY_ESTIMATES_LAST_UPDATE_TIME),
+ false,
+ mFragment.mSettingsObserver);
+ }
+
+ @Test
+ public void onPause_unregisterContentObserver() {
+ mFragment.onPause();
+
+ verify(mContentResolver).unregisterContentObserver(
+ mFragment.mSettingsObserver);
+ }
+
public static class TestFragment extends PowerUsageSummary {
private Context mContext;
@@ -349,6 +386,12 @@
}
@Override
+ protected ContentResolver getContentResolver() {
+ // Override it so we can access this method in test
+ return super.getContentResolver();
+ }
+
+ @Override
void showBothEstimates() {
List<BatteryInfo> fakeBatteryInfo = new ArrayList<>(2);
BatteryInfo info1 = new BatteryInfo();
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
index c2a3aa9..b7c21b8 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
@@ -61,6 +61,14 @@
}
@Test
+ public void loadInBackground_legacyMode_shouldReturnNothing() {
+ assertThat(mContext.getResources().getBoolean(R.bool.config_use_legacy_suggestion))
+ .isTrue();
+
+ assertThat(mContextualCardLoader.loadInBackground()).isEmpty();
+ }
+
+ @Test
public void getDisplayableCards_twoEligibleCards_shouldShowAll() {
final List<ContextualCard> cards = getContextualCardList().stream().limit(2)
.collect(Collectors.toList());
@@ -72,54 +80,17 @@
}
@Test
- public void getDisplayableCards_fiveEligibleCardsNoLarge_shouldShowDefaultCardCount() {
- final List<ContextualCard> fiveCards = getContextualCardListWithNoLargeCard();
- doReturn(fiveCards).when(mContextualCardLoader).filterEligibleCards(anyList());
+ public void getDisplayableCards_fourEligibleCards_shouldShowDefaultCardCount() {
+ final List<ContextualCard> fourCards = getContextualCardList();
+ doReturn(fourCards).when(mContextualCardLoader).filterEligibleCards(anyList());
- final List<ContextualCard> result = mContextualCardLoader.getDisplayableCards(
- fiveCards);
+ final List<ContextualCard> result = mContextualCardLoader
+ .getDisplayableCards(fourCards);
assertThat(result).hasSize(DEFAULT_CARD_COUNT);
}
@Test
- public void getDisplayableCards_threeEligibleCardsOneLarge_shouldShowThreeCards() {
- final List<ContextualCard> cards = getContextualCardList().stream().limit(2)
- .collect(Collectors.toList());
- cards.add(new ContextualCard.Builder()
- .setName("test_gesture")
- .setCardType(ContextualCard.CardType.SLICE)
- .setSliceUri(Uri.parse(
- "content://com.android.settings.test.slices/action/gesture_pick_up"))
- .build());
- doReturn(cards).when(mContextualCardLoader).filterEligibleCards(anyList());
-
- final List<ContextualCard> result = mContextualCardLoader.getDisplayableCards(cards);
-
- assertThat(result).hasSize(3);
- }
-
- @Test
- public void getDisplayableCards_threeEligibleCardsTwoLarge_shouldShowTwoCards() {
- final List<ContextualCard> threeCards = getContextualCardList().stream().limit(3)
- .collect(Collectors.toList());
- doReturn(threeCards).when(mContextualCardLoader).filterEligibleCards(anyList());
-
- final List<ContextualCard> result = mContextualCardLoader.getDisplayableCards(
- threeCards);
-
- assertThat(result).hasSize(2);
- }
-
- @Test
- public void loadInBackground_legacyMode_shouldReturnNothing() {
- assertThat(mContext.getResources().getBoolean(R.bool.config_use_legacy_suggestion))
- .isTrue();
-
- assertThat(mContextualCardLoader.loadInBackground()).isEmpty();
- }
-
- @Test
public void getDisplayableCards_refreshCardUri_shouldLogContextualCardDisplay() {
mContextualCardLoader.mNotifyUri = CardContentProvider.REFRESH_CARD_URI;
@@ -167,32 +138,4 @@
.build());
return cards;
}
-
- private List<ContextualCard> getContextualCardListWithNoLargeCard() {
- final List<ContextualCard> cards = new ArrayList<>();
- cards.add(new ContextualCard.Builder()
- .setName("test_rotate")
- .setCardType(ContextualCard.CardType.SLICE)
- .setSliceUri(
- Uri.parse("content://com.android.settings.test.slices/action/auto_rotate"))
- .build());
- cards.add(new ContextualCard.Builder()
- .setName("test_flashlight")
- .setCardType(ContextualCard.CardType.SLICE)
- .setSliceUri(
- Uri.parse("content://com.android.settings.test.slices/action/flashlight"))
- .build());
- cards.add(new ContextualCard.Builder()
- .setName("test_bt")
- .setCardType(ContextualCard.CardType.SLICE)
- .setSliceUri(Uri.parse("content://android.settings.test.slices/action/bluetooth"))
- .build());
- cards.add(new ContextualCard.Builder()
- .setName("test_gesture")
- .setCardType(ContextualCard.CardType.SLICE)
- .setSliceUri(Uri.parse(
- "content://com.android.settings.test.slices/action/gesture_pick_up"))
- .build());
- return cards;
- }
}
diff --git a/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java
index bddd5fe..7392ec7 100644
--- a/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/location/AppLocationPermissionPreferenceControllerTest.java
@@ -76,7 +76,7 @@
@Test
public void getSummary_whenLocationAppCountIsOne_shouldShowSingularString() {
mLocationManager.setLocationEnabledForUser(true, android.os.Process.myUserHandle());
- mController.mNumBackground = 1;
+ mController.mNumHasLocation = 1;
mController.mNumTotal = 1;
assertThat(mController.getSummary()).isEqualTo(mContext.getResources().getQuantityString(
@@ -86,7 +86,7 @@
@Test
public void getSummary_whenLocationAppCountIsGreaterThanOne_shouldShowPluralString() {
mLocationManager.setLocationEnabledForUser(true, android.os.Process.myUserHandle());
- mController.mNumBackground = 5;
+ mController.mNumHasLocation = 5;
mController.mNumTotal = 10;
assertThat(mController.getSummary()).isEqualTo(mContext.getResources().getQuantityString(
diff --git a/tests/robotests/src/com/android/settings/network/SubscriptionUtilTest.java b/tests/robotests/src/com/android/settings/network/SubscriptionUtilTest.java
index c647914..40b955c 100644
--- a/tests/robotests/src/com/android/settings/network/SubscriptionUtilTest.java
+++ b/tests/robotests/src/com/android/settings/network/SubscriptionUtilTest.java
@@ -187,4 +187,9 @@
assertThat(subs).isNotNull();
assertThat(subs).hasSize(2);
}
+
+ @Test
+ public void isInactiveInsertedPSim_nullSubInfo_doesNotCrash() {
+ assertThat(SubscriptionUtil.isInactiveInsertedPSim(null)).isFalse();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/DeleteSimProfileConfirmationDialogTest.java b/tests/robotests/src/com/android/settings/network/telephony/DeleteSimProfileConfirmationDialogTest.java
new file mode 100644
index 0000000..9b6f551
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/DeleteSimProfileConfirmationDialogTest.java
@@ -0,0 +1,79 @@
+/*
+ * 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.settings.network.telephony;
+
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.app.Activity;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.telephony.SubscriptionInfo;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
+
+import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = ShadowAlertDialogCompat.class)
+public class DeleteSimProfileConfirmationDialogTest {
+ @Mock
+ private SubscriptionInfo mSubscriptionInfo;
+
+ private DeleteSimProfileConfirmationDialog mDialogFragment;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mDialogFragment = spy(DeleteSimProfileConfirmationDialog.newInstance(mSubscriptionInfo));
+ doNothing().when(mDialogFragment).beginDeletionWithProgress();
+ }
+
+ @Test
+ public void showDialog_dialogCancelled_deleteNotCalled() {
+ FragmentController.setupFragment(mDialogFragment, FragmentActivity.class,
+ 0 /* containerViewId */,
+ null /* bundle */);
+ final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+ dialog.getButton(DialogInterface.BUTTON_NEGATIVE).performClick();
+ verify(mDialogFragment, never()).beginDeletionWithProgress();
+ }
+
+ @Test
+ public void showDialog_dialogOk_deleteWasCalled() {
+ FragmentController.setupFragment(mDialogFragment, FragmentActivity.class,
+ 0 /* containerViewId */,
+ null /* bundle */);
+ final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+ dialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
+ verify(mDialogFragment).beginDeletionWithProgress();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceControllerTest.java
new file mode 100644
index 0000000..21fd19b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceControllerTest.java
@@ -0,0 +1,111 @@
+/*
+ * 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.settings.network.telephony;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.telephony.SubscriptionInfo;
+import android.telephony.euicc.EuiccManager;
+
+import androidx.fragment.app.Fragment;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.network.SubscriptionUtil;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+@RunWith(RobolectricTestRunner.class)
+public class DeleteSimProfilePreferenceControllerTest {
+ private static final String PREF_KEY = "delete_profile_key";
+ private static final int SUB_ID = 1234;
+ private static final int OTHER_ID = 5678;
+
+ @Mock
+ private Fragment mFragment;
+
+ @Mock
+ private SubscriptionInfo mSubscriptionInfo;
+ @Mock
+ private PreferenceScreen mScreen;
+
+ private Context mContext;
+ private Preference mPreference;
+ private DeleteSimProfilePreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = spy(RuntimeEnvironment.application);
+
+ SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSubscriptionInfo));
+ when(mSubscriptionInfo.getSubscriptionId()).thenReturn(SUB_ID);
+ when(mSubscriptionInfo.isEmbedded()).thenReturn(true);
+
+ mPreference = new Preference(mContext);
+ mPreference.setKey(PREF_KEY);
+ when(mScreen.findPreference(PREF_KEY)).thenReturn(mPreference);
+
+ mController = new DeleteSimProfilePreferenceController(mContext, PREF_KEY);
+ }
+
+ @After
+ public void tearDown() {
+ SubscriptionUtil.setAvailableSubscriptionsForTesting(null);
+ }
+
+ @Test
+ public void getAvailabilityStatus_noSubs_notAvailable() {
+ SubscriptionUtil.setAvailableSubscriptionsForTesting(new ArrayList<>());
+ mController.init(SUB_ID, mFragment);
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void getAvailabilityStatus_physicalSim_notAvailable() {
+ when(mSubscriptionInfo.isEmbedded()).thenReturn(false);
+ mController.init(SUB_ID, mFragment);
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void getAvailabilityStatus_unknownSim_notAvailable() {
+ when(mSubscriptionInfo.getSubscriptionId()).thenReturn(OTHER_ID);
+ mController.init(SUB_ID, mFragment);
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void getAvailabilityStatus_knownEsim_isAvailable() {
+ mController.init(SUB_ID, mFragment);
+ assertThat(mController.isAvailable()).isTrue();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/DeleteSimProfileProgressDialogTest.java b/tests/robotests/src/com/android/settings/network/telephony/DeleteSimProfileProgressDialogTest.java
new file mode 100644
index 0000000..aebcc46
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/telephony/DeleteSimProfileProgressDialogTest.java
@@ -0,0 +1,139 @@
+/*
+ * 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.settings.network.telephony;
+
+import static com.android.settings.network.telephony.DeleteSimProfileProgressDialog.KEY_DELETE_STARTED;
+import static com.android.settings.network.telephony.DeleteSimProfileProgressDialog.PENDING_INTENT;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.notNull;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.Dialog;
+import android.app.PendingIntent;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Bundle;
+import android.telephony.euicc.EuiccManager;
+
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
+
+import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = ShadowAlertDialogCompat.class)
+public class DeleteSimProfileProgressDialogTest {
+ private static final int SUB_ID = 111;
+
+ @Mock
+ private FragmentActivity mActivity;
+ @Mock
+ private Fragment mTargetFragment;
+ @Mock
+ private EuiccManager mEuiccManager;
+
+ private Context mContext;
+ private DeleteSimProfileProgressDialog mDialogFragment;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = spy(RuntimeEnvironment.application);
+
+ when(mContext.getSystemService(EuiccManager.class)).thenReturn(mEuiccManager);
+ mDialogFragment = spy(DeleteSimProfileProgressDialog.newInstance(SUB_ID));
+ when(mDialogFragment.getContext()).thenReturn(mContext);
+ when(mDialogFragment.getTargetFragment()).thenReturn(mTargetFragment);
+ when(mDialogFragment.getActivity()).thenReturn(mActivity);
+ }
+
+ @Test
+ public void onCreateDialog_firstShowing_deleteStartedAndRecordedInOutState() {
+ mDialogFragment.onCreateDialog(null);
+ verify(mEuiccManager).deleteSubscription(eq(SUB_ID), notNull());
+
+ final Bundle outState = new Bundle();
+ mDialogFragment.onSaveInstanceState(outState);
+ assertThat(outState.containsKey(KEY_DELETE_STARTED)).isTrue();
+ assertThat(outState.getBoolean(KEY_DELETE_STARTED)).isTrue();
+ }
+
+ @Test
+ public void showDialog_secondShowing_deleteNotStarted() {
+ final Bundle inState = new Bundle();
+ inState.putBoolean(KEY_DELETE_STARTED, true);
+ mDialogFragment.onCreateDialog(inState);
+
+ verify(mEuiccManager, never()).deleteSubscription(anyInt(), any());
+
+ final Bundle outState = new Bundle();
+ mDialogFragment.onSaveInstanceState(outState);
+ assertThat(outState.containsKey(KEY_DELETE_STARTED)).isTrue();
+ assertThat(outState.getBoolean(KEY_DELETE_STARTED)).isTrue();
+ }
+
+ @Test
+ public void showDialog_pendingIntentReceiverFired_activityFinished() {
+ mDialogFragment.onCreateDialog(null);
+
+ final ArgumentCaptor<PendingIntent> intentCaptor = ArgumentCaptor.forClass(
+ PendingIntent.class);
+ verify(mEuiccManager).deleteSubscription(eq(SUB_ID), intentCaptor.capture());
+ assertThat(intentCaptor.getValue()).isNotNull();
+
+ final ArgumentCaptor<BroadcastReceiver> receiverCaptor = ArgumentCaptor.forClass(
+ BroadcastReceiver.class);
+ verify(mContext).registerReceiver(receiverCaptor.capture(), any(IntentFilter.class));
+
+ doNothing().when(mDialogFragment).dismiss();
+ receiverCaptor.getValue().onReceive(mContext, new Intent(PENDING_INTENT));
+ verify(mDialogFragment).dismiss();
+ verify(mActivity).finish();
+ }
+
+ @Test
+ public void onDismiss_receiverUnregistered() {
+ Dialog dialog = mDialogFragment.onCreateDialog(null);
+ final ArgumentCaptor<BroadcastReceiver> receiverCaptor = ArgumentCaptor.forClass(
+ BroadcastReceiver.class);
+ verify(mContext).registerReceiver(receiverCaptor.capture(), any(IntentFilter.class));
+
+ mDialogFragment.onDismiss(dialog);
+ verify(mContext).unregisterReceiver(eq(receiverCaptor.getValue()));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java
index e853c47..30b5408 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java
@@ -16,7 +16,7 @@
package com.android.settings.network.telephony;
-import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING;
import static com.google.common.truth.Truth.assertThat;
@@ -86,10 +86,10 @@
}
@Test
- public void getAvailabilityStatus_invalidSubscription_returnUnavailable() {
+ public void getAvailabilityStatus_invalidSubscription_returnDisabledDependentSetting() {
mController.init(mFragmentManager, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java
index e59fbaf..ae6f568 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java
@@ -170,21 +170,47 @@
}
@Test
- public void isMobileDataAvailable_noSubscriptions_returnsNull() {
+ public void isMobileDataAvailable_noSubscriptions_slicePrimaryActionIsEmpty() {
doReturn(new ArrayList<>()).when(mSubscriptionManager).getSelectableSubscriptionInfoList();
+ final Slice mobileData = mMobileDataSlice.getSlice();
- final Slice slice = mMobileDataSlice.getSlice();
+ final SliceMetadata metadata = SliceMetadata.from(mContext, mobileData);
+ assertThat(metadata.getTitle())
+ .isEqualTo(mContext.getString(R.string.mobile_data_settings_title));
- assertThat(slice).isNull();
+ assertThat(metadata.getSubtitle())
+ .isEqualTo(mContext.getString(R.string.sim_cellular_data_unavailable));
+
+ final List<SliceAction> toggles = metadata.getToggles();
+ assertThat(toggles).hasSize(0);
+
+ final SliceAction primaryAction = metadata.getPrimaryAction();
+ final PendingIntent pendingIntent = primaryAction.getAction();
+ final Intent actionIntent = pendingIntent.getIntent();
+
+ assertThat(actionIntent).isNull();
}
@Test
- public void isMobileDataAvailable_nullSubscriptions_returnsNull() {
+ public void isMobileDataAvailable_nullSubscriptions_slicePrimaryActionIsEmpty() {
doReturn(null).when(mSubscriptionManager).getSelectableSubscriptionInfoList();
+ final Slice mobileData = mMobileDataSlice.getSlice();
- final Slice slice = mMobileDataSlice.getSlice();
+ final SliceMetadata metadata = SliceMetadata.from(mContext, mobileData);
+ assertThat(metadata.getTitle())
+ .isEqualTo(mContext.getString(R.string.mobile_data_settings_title));
- assertThat(slice).isNull();
+ assertThat(metadata.getSubtitle())
+ .isEqualTo(mContext.getString(R.string.sim_cellular_data_unavailable));
+
+ final List<SliceAction> toggles = metadata.getToggles();
+ assertThat(toggles).hasSize(0);
+
+ final SliceAction primaryAction = metadata.getPrimaryAction();
+ final PendingIntent pendingIntent = primaryAction.getAction();
+ final Intent actionIntent = pendingIntent.getIntent();
+
+ assertThat(actionIntent).isNull();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/notification/ImportancePreferenceTest.java b/tests/robotests/src/com/android/settings/notification/ImportancePreferenceTest.java
index 63bc828..b4379aa 100644
--- a/tests/robotests/src/com/android/settings/notification/ImportancePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ImportancePreferenceTest.java
@@ -29,7 +29,10 @@
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
import android.widget.Button;
+import android.widget.LinearLayout;
import android.widget.TextView;
import com.android.settings.R;
@@ -110,8 +113,8 @@
assertThat(holder.itemView.findViewById(R.id.alert).getBackground()).isEqualTo(selected);
assertThat(holder.itemView.findViewById(R.id.silence).getBackground())
.isEqualTo(unselected);
- assertThat(((TextView) holder.itemView.findViewById(R.id.description)).getText()).isEqualTo(
- mContext.getString(R.string.notification_channel_summary_default));
+ assertThat(((TextView) holder.itemView.findViewById(R.id.alert_summary)).getText())
+ .isEqualTo(mContext.getString(R.string.notification_channel_summary_default));
}
@Test
@@ -129,28 +132,32 @@
preference.setImportance(IMPORTANCE_DEFAULT);
preference.onBindViewHolder(holder);
- Button silenceButton = holder.itemView.findViewById(R.id.silence);
+ View silenceButton = holder.itemView.findViewById(R.id.silence);
silenceButton.callOnClick();
assertThat(holder.itemView.findViewById(R.id.alert).getBackground()).isEqualTo(unselected);
assertThat(holder.itemView.findViewById(R.id.silence).getBackground()).isEqualTo(selected);
- assertThat(((TextView) holder.itemView.findViewById(R.id.description)).getText()).isEqualTo(
- mContext.getString(R.string.notification_channel_summary_low));
verify(preference, times(1)).callChangeListener(IMPORTANCE_LOW);
}
@Test
public void setImportanceSummary_status() {
+ ViewGroup parent = new LinearLayout(mContext);
TextView tv = new TextView(mContext);
+ tv.setId(R.id.silence_summary);
+ parent.addView(tv);
+ TextView other = new TextView(mContext);
+ other.setId(R.id.alert_summary);
+ parent.addView(other);
final ImportancePreference preference = spy(new ImportancePreference(mContext));
preference.setDisplayInStatusBar(true);
preference.setDisplayOnLockscreen(false);
- preference.setImportanceSummary(tv, IMPORTANCE_LOW);
+ preference.setImportanceSummary(parent, IMPORTANCE_LOW, true);
assertThat(tv.getText()).isEqualTo(
mContext.getString(R.string.notification_channel_summary_low_status));
@@ -158,14 +165,20 @@
@Test
public void setImportanceSummary_lock() {
+ ViewGroup parent = new LinearLayout(mContext);
TextView tv = new TextView(mContext);
+ tv.setId(R.id.silence_summary);
+ parent.addView(tv);
+ TextView other = new TextView(mContext);
+ other.setId(R.id.alert_summary);
+ parent.addView(other);
final ImportancePreference preference = spy(new ImportancePreference(mContext));
preference.setDisplayInStatusBar(false);
preference.setDisplayOnLockscreen(true);
- preference.setImportanceSummary(tv, IMPORTANCE_LOW);
+ preference.setImportanceSummary(parent, IMPORTANCE_LOW, true);
assertThat(tv.getText()).isEqualTo(
mContext.getString(R.string.notification_channel_summary_low_lock));
@@ -173,14 +186,20 @@
@Test
public void setImportanceSummary_statusLock() {
+ ViewGroup parent = new LinearLayout(mContext);
TextView tv = new TextView(mContext);
+ tv.setId(R.id.silence_summary);
+ parent.addView(tv);
+ TextView other = new TextView(mContext);
+ other.setId(R.id.alert_summary);
+ parent.addView(other);
final ImportancePreference preference = spy(new ImportancePreference(mContext));
preference.setDisplayInStatusBar(true);
preference.setDisplayOnLockscreen(true);
- preference.setImportanceSummary(tv, IMPORTANCE_LOW);
+ preference.setImportanceSummary(parent, IMPORTANCE_LOW, true);
assertThat(tv.getText()).isEqualTo(
mContext.getString(R.string.notification_channel_summary_low_status_lock));
@@ -188,14 +207,20 @@
@Test
public void setImportanceSummary_statusLock_default() {
+ ViewGroup parent = new LinearLayout(mContext);
TextView tv = new TextView(mContext);
+ tv.setId(R.id.alert_summary);
+ parent.addView(tv);
+ TextView other = new TextView(mContext);
+ other.setId(R.id.silence_summary);
+ parent.addView(other);
final ImportancePreference preference = spy(new ImportancePreference(mContext));
preference.setDisplayInStatusBar(true);
preference.setDisplayOnLockscreen(true);
- preference.setImportanceSummary(tv, IMPORTANCE_DEFAULT);
+ preference.setImportanceSummary(parent, IMPORTANCE_DEFAULT, true);
assertThat(tv.getText()).isEqualTo(
mContext.getString(R.string.notification_channel_summary_default));
diff --git a/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java b/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java
new file mode 100644
index 0000000..69c0919
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java
@@ -0,0 +1,166 @@
+/*
+ * 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.settings.sim;
+
+
+import static android.app.NotificationManager.IMPORTANCE_HIGH;
+import static android.provider.Settings.ENABLE_MMS_DATA_REQUEST_REASON_INCOMING_MMS;
+import static android.provider.Settings.ENABLE_MMS_DATA_REQUEST_REASON_OUTGOING_MMS;
+import static android.provider.Settings.EXTRA_ENABLE_MMS_DATA_REQUEST_REASON;
+import static android.provider.Settings.EXTRA_SUB_ID;
+import static android.telephony.data.ApnSetting.TYPE_MMS;
+
+import static com.android.settings.sim.SimSelectNotification.ENABLE_MMS_NOTIFICATION_CHANNEL;
+import static com.android.settings.sim.SimSelectNotification.ENABLE_MMS_NOTIFICATION_ID;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.res.Resources;
+import android.provider.Settings;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import com.android.settings.R;
+
+import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = ShadowAlertDialogCompat.class)
+public class SimSelectNotificationTest {
+ @Mock
+ private Context mContext;
+ @Mock
+ private NotificationManager mNotificationManager;
+ @Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
+ private SubscriptionManager mSubscriptionManager;
+ @Mock
+ private PackageManager mPackageManager;
+ @Mock
+ private Resources mResources;
+
+ private String mFakeOperatorName = "fake_operator_name";
+ private CharSequence mFakeNotificationChannelTitle = "fake_notification_channel_title";
+ private CharSequence mFakeNotificationTitle = "fake_notification_title";
+ private String mFakeNotificationSummary = "fake_notification_Summary";
+
+ private int mSubId = 1;
+
+ SimSelectNotification mSimSelectNotification = new SimSelectNotification();
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ when(mContext.getSystemService(Context.NOTIFICATION_SERVICE))
+ .thenReturn(mNotificationManager);
+ when(mContext.getSystemService(Context.TELEPHONY_SERVICE))
+ .thenReturn(mTelephonyManager);
+ when(mContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE))
+ .thenReturn(mSubscriptionManager);
+ when(mContext.getApplicationInfo()).thenReturn(new ApplicationInfo());
+ when(mContext.getPackageManager()).thenReturn(mPackageManager);
+ when(mPackageManager.checkPermission(any(), any()))
+ .thenReturn(PackageManager.PERMISSION_GRANTED);
+
+ when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
+ when(mTelephonyManager.getSimOperatorName()).thenReturn(mFakeOperatorName);
+ when(mTelephonyManager.isDataEnabledForApn(TYPE_MMS)).thenReturn(false);
+ when(mSubscriptionManager.isActiveSubId(mSubId)).thenReturn(true);
+ when(mContext.getResources()).thenReturn(mResources);
+
+ when(mResources.getText(R.string.enable_sending_mms_notification_title))
+ .thenReturn(mFakeNotificationTitle);
+ when(mResources.getText(R.string.enable_mms_notification_channel_title))
+ .thenReturn(mFakeNotificationChannelTitle);
+ when(mResources.getString(R.string.enable_mms_notification_summary,
+ mFakeOperatorName)).thenReturn(mFakeNotificationSummary);
+ }
+
+ @Test
+ public void onReceiveEnableMms_notificationShouldSend() {
+ Intent intent = new Intent(Settings.ACTION_ENABLE_MMS_DATA_REQUEST);
+ intent.putExtra(EXTRA_SUB_ID, mSubId);
+ intent.putExtra(EXTRA_ENABLE_MMS_DATA_REQUEST_REASON,
+ ENABLE_MMS_DATA_REQUEST_REASON_OUTGOING_MMS);
+
+ mSimSelectNotification.onReceive(mContext, intent);
+
+ // Capture the notification channel created and verify its fields.
+ ArgumentCaptor<NotificationChannel> nc = ArgumentCaptor.forClass(NotificationChannel.class);
+ verify(mNotificationManager).createNotificationChannel(nc.capture());
+
+ assertThat(nc.getValue().getId()).isEqualTo(ENABLE_MMS_NOTIFICATION_CHANNEL);
+ assertThat(nc.getValue().getName()).isEqualTo(mFakeNotificationChannelTitle);
+ assertThat(nc.getValue().getImportance()).isEqualTo(IMPORTANCE_HIGH);
+
+ // Capture the notification it notifies and verify its fields.
+ ArgumentCaptor<Notification> notification = ArgumentCaptor.forClass(Notification.class);
+ verify(mNotificationManager).notify(
+ eq(ENABLE_MMS_NOTIFICATION_ID), notification.capture());
+ assertThat(notification.getValue().extras.getCharSequence(Notification.EXTRA_TITLE))
+ .isEqualTo(mFakeNotificationTitle);
+ assertThat(notification.getValue().extras.getCharSequence(Notification.EXTRA_BIG_TEXT))
+ .isEqualTo(mFakeNotificationSummary);
+ assertThat(notification.getValue().contentIntent).isNotNull();
+ }
+
+ @Test
+ public void onReceiveEnableMms_NoExtra_notificationShouldNotSend() {
+ Intent intent = new Intent(Settings.ACTION_ENABLE_MMS_DATA_REQUEST);
+
+ // EXTRA_SUB_ID and EXTRA_ENABLE_MMS_DATA_REQUEST_REASON are required.
+ mSimSelectNotification.onReceive(mContext, intent);
+ verify(mNotificationManager, never()).createNotificationChannel(any());
+ }
+
+ @Test
+ public void onReceiveEnableMms_MmsDataAlreadyEnabled_notificationShouldNotSend() {
+ when(mTelephonyManager.isDataEnabledForApn(TYPE_MMS)).thenReturn(true);
+ Intent intent = new Intent(Settings.ACTION_ENABLE_MMS_DATA_REQUEST);
+ intent.putExtra(EXTRA_SUB_ID, mSubId);
+ intent.putExtra(EXTRA_ENABLE_MMS_DATA_REQUEST_REASON,
+ ENABLE_MMS_DATA_REQUEST_REASON_INCOMING_MMS);
+
+ // If MMS data is already enabled, there's no need to trigger the notification.
+ mSimSelectNotification.onReceive(mContext, intent);
+ verify(mNotificationManager, never()).createNotificationChannel(any());
+ }
+}
+
diff --git a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
index 7fcd3d2..51264c1 100644
--- a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
@@ -109,7 +109,7 @@
private BluetoothDevice mRightBluetoothHapDevice;
private LocalBluetoothManager mLocalBluetoothManager;
private MediaOutputPreferenceController mController;
- private List<BluetoothDevice> mProfileConnectableDevices;
+ private List<BluetoothDevice> mProfileConnectedDevices;
private List<BluetoothDevice> mHearingAidActiveDevices;
@Before
@@ -150,7 +150,7 @@
mController = new MediaOutputPreferenceController(mContext, TEST_KEY);
mScreen = spy(new PreferenceScreen(mContext, null));
mPreference = new Preference(mContext);
- mProfileConnectableDevices = new ArrayList<>();
+ mProfileConnectedDevices = new ArrayList<>();
mHearingAidActiveDevices = new ArrayList<>(2);
when(mScreen.getPreferenceManager()).thenReturn(mock(PreferenceManager.class));
@@ -172,11 +172,11 @@
* Preference should be invisible
*/
@Test
- public void updateState_withoutConnectableBtDevice_preferenceInvisible() {
+ public void updateState_withoutConnectedBtDevice_preferenceInvisible() {
mShadowAudioManager.setOutputDevice(DEVICE_OUT_EARPIECE);
mAudioManager.setMode(AudioManager.MODE_NORMAL);
- mProfileConnectableDevices.clear();
- when(mA2dpProfile.getConnectableDevices()).thenReturn(mProfileConnectableDevices);
+ mProfileConnectedDevices.clear();
+ when(mA2dpProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
mPreference.setVisible(true);
assertThat(mPreference.isVisible()).isTrue();
@@ -185,16 +185,16 @@
}
/**
- * A2DP Bluetooth device(s) are connectable, no matter active or inactive
+ * A2DP Bluetooth device(s) are connected, no matter active or inactive
* Preference should be visible
*/
@Test
- public void updateState_withConnectableBtDevice_preferenceVisible() {
+ public void updateState_withConnectedBtDevice_preferenceVisible() {
mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLUETOOTH_A2DP);
mAudioManager.setMode(AudioManager.MODE_NORMAL);
- mProfileConnectableDevices.clear();
- mProfileConnectableDevices.add(mBluetoothDevice);
- when(mA2dpProfile.getConnectableDevices()).thenReturn(mProfileConnectableDevices);
+ mProfileConnectedDevices.clear();
+ mProfileConnectedDevices.add(mBluetoothDevice);
+ when(mA2dpProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
assertThat(mPreference.isVisible()).isFalse();
// Without Active Bluetooth Device
@@ -208,17 +208,17 @@
}
/**
- * A2DP Bluetooth device(s) are connectable, but no device is set as activated
+ * A2DP Bluetooth device(s) are connected, but no device is set as activated
* Preference summary should be "This device"
*/
@Test
- public void updateState_withConnectableBtDevice_withoutActiveBtDevice_setDefaultSummary() {
+ public void updateState_withConnectedBtDevice_withoutActiveBtDevice_setDefaultSummary() {
mShadowAudioManager.setOutputDevice(DEVICE_OUT_EARPIECE);
mAudioManager.setMode(AudioManager.MODE_NORMAL);
- mProfileConnectableDevices.clear();
- mProfileConnectableDevices.add(mBluetoothDevice);
- mProfileConnectableDevices.add(mSecondBluetoothDevice);
- when(mA2dpProfile.getConnectableDevices()).thenReturn(mProfileConnectableDevices);
+ mProfileConnectedDevices.clear();
+ mProfileConnectedDevices.add(mBluetoothDevice);
+ mProfileConnectedDevices.add(mSecondBluetoothDevice);
+ when(mA2dpProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
when(mA2dpProfile.getActiveDevice()).thenReturn(null);
assertThat(mPreference.getSummary()).isNull();
@@ -235,10 +235,10 @@
public void updateState_withActiveBtDevice_setActivatedDeviceName() {
mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLUETOOTH_A2DP);
mAudioManager.setMode(AudioManager.MODE_NORMAL);
- mProfileConnectableDevices.clear();
- mProfileConnectableDevices.add(mBluetoothDevice);
- mProfileConnectableDevices.add(mSecondBluetoothDevice);
- when(mA2dpProfile.getConnectableDevices()).thenReturn(mProfileConnectableDevices);
+ mProfileConnectedDevices.clear();
+ mProfileConnectedDevices.add(mBluetoothDevice);
+ mProfileConnectedDevices.add(mSecondBluetoothDevice);
+ when(mA2dpProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
when(mA2dpProfile.getActiveDevice()).thenReturn(mBluetoothDevice);
assertThat(mPreference.getSummary()).isNull();
@@ -248,16 +248,16 @@
/**
- * Hearing Aid device(s) are connectable, no matter active or inactive
+ * Hearing Aid device(s) are connected, no matter active or inactive
* Preference should be visible
*/
@Test
- public void updateState_withConnectableHADevice_preferenceVisible() {
+ public void updateState_withConnectedHADevice_preferenceVisible() {
mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
mAudioManager.setMode(AudioManager.MODE_NORMAL);
mHearingAidActiveDevices.clear();
mHearingAidActiveDevices.add(mLeftBluetoothHapDevice);
- when(mHearingAidProfile.getConnectableDevices()).thenReturn(mHearingAidActiveDevices);
+ when(mHearingAidProfile.getConnectedDevices()).thenReturn(mHearingAidActiveDevices);
assertThat(mPreference.isVisible()).isFalse();
// Without Active Hearing Aid Device
@@ -280,7 +280,7 @@
mAudioManager.setMode(AudioManager.MODE_NORMAL);
mHearingAidActiveDevices.clear();
mHearingAidActiveDevices.add(mLeftBluetoothHapDevice);
- when(mHearingAidProfile.getConnectableDevices()).thenReturn(mHearingAidActiveDevices);
+ when(mHearingAidProfile.getConnectedDevices()).thenReturn(mHearingAidActiveDevices);
when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
assertThat(mPreference.getSummary()).isNull();
@@ -332,22 +332,6 @@
mContext.getText(R.string.media_out_summary_ongoing_call_state));
}
- /**
- * Media stream is captured by something else (cast device):
- * Preference should be invisible
- * Preference summary should be "unavailable"
- */
- @Test
- public void updateState_mediaStreamIsCapturedByCast_shouldDisableAndSetDefaultSummary() {
- mShadowAudioManager.setOutputDevice(DEVICE_OUT_REMOTE_SUBMIX);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.isVisible()).isFalse();
- String defaultString = mContext.getString(R.string.media_output_summary_unavailable);
- assertThat(mPreference.getSummary()).isEqualTo(defaultString);
- }
-
@Test
public void findActiveDevice_onlyA2dpDeviceActive_returnA2dpDevice() {
when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(null);