Merge "[Wi-Fi] Do not delete certs when forgetting network"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 29f69b8..4bb1a8c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -100,6 +100,7 @@
<uses-permission android:name="android.permission.USE_RESERVED_DISK" />
<uses-permission android:name="android.permission.MANAGE_SCOPED_ACCESS_DIRECTORY_PERMISSIONS" />
<uses-permission android:name="android.permission.CAMERA" />
+ <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
<application android:label="@string/settings_label"
android:icon="@drawable/ic_launcher_settings"
@@ -1244,6 +1245,10 @@
<action android:name="android.settings.PRIVACY_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
+ <intent-filter android:priority="1">
+ <action android:name="android.settings.REQUEST_ENABLE_CONTENT_CAPTURE" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.privacy.PrivacyDashboardFragment" />
</activity>
@@ -1574,19 +1579,12 @@
<action android:name="android.intent.action.MAIN" />
<category android:name="com.android.settings.suggested.category.FINGERPRINT_ENROLL" />
</intent-filter>
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="com.android.settings.suggested.category.FIRST_IMPRESSION" />
- </intent-filter>
- <meta-data android:name="com.android.settings.dismiss"
- android:value="5,9,30" />
<meta-data android:name="com.android.settings.require_feature"
android:value="android.hardware.fingerprint" />
<meta-data android:name="com.android.settings.title"
android:resource="@string/suggestion_additional_fingerprints" />
<meta-data android:name="com.android.settings.summary"
android:resource="@string/suggestion_additional_fingerprints_summary" />
- <meta-data android:name="com.android.settings.icon_tintable" android:value="true" />
</activity>
<!-- Note this must not be exported since it returns the password in the intent -->
@@ -1650,8 +1648,7 @@
<action android:name="android.intent.action.MAIN" />
<category android:name="com.android.settings.suggested.category.FIRST_IMPRESSION" />
</intent-filter>
- <meta-data android:name="com.android.settings.dismiss"
- android:value="2,6,30" />
+ <meta-data android:name="com.android.settings.dismiss" android:value="2," />
<meta-data android:name="com.android.settings.require_feature"
android:value="android.hardware.fingerprint" />
<meta-data android:name="com.android.settings.title"
@@ -3028,11 +3025,15 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
- <action android:name="android.settings.panel.action.VOLUME" />
+ <action android:name="android.settings.panel.action.NFC" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
- <action android:name="android.settings.panel.action.NFC" />
+ <action android:name="android.settings.panel.action.WIFI" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.settings.panel.action.VOLUME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
@@ -3123,6 +3124,18 @@
<activity android:name=".homepage.contextualcards.ContextualCardFeedbackDialog"
android:theme="@android:style/Theme.DeviceDefault.Light.Dialog.Alert" />
+
+ <activity
+ android:name="Settings$WifiCallingDisclaimerActivity"
+ android:label="@string/wifi_calling_settings_title"
+ android:taskAffinity="com.android.settings">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+ android:value="com.android.settings.wifi.calling.WifiCallingDisclaimerFragment" />
+ </activity>
<!-- This is the longest AndroidManifest.xml ever. -->
</application>
</manifest>
diff --git a/color-check-baseline.xml b/color-check-baseline.xml
index e9f8d58..7074481 100644
--- a/color-check-baseline.xml
+++ b/color-check-baseline.xml
@@ -37,54 +37,6 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:textColor="@color/bluetooth_dialog_text_color" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="res/layout/bluetooth_pin_confirm.xml"
- line="44"
- column="13"/>
- </issue>
-
- <issue
- id="HardCodedColor"
- severity="Error"
- message="Avoid using hardcoded color"
- category="Correctness"
- priority="4"
- summary="Using hardcoded color"
- explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:textColor="@color/bluetooth_dialog_text_color""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="res/layout/bluetooth_pin_confirm.xml"
- line="67"
- column="13"/>
- </issue>
-
- <issue
- id="HardCodedColor"
- severity="Error"
- message="Avoid using hardcoded color"
- category="Correctness"
- priority="4"
- summary="Using hardcoded color"
- explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:textColor="@color/bluetooth_dialog_text_color" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="res/layout/bluetooth_pin_confirm.xml"
- line="77"
- column="13"/>
- </issue>
-
- <issue
- id="HardCodedColor"
- severity="Error"
- message="Avoid using hardcoded color"
- category="Correctness"
- priority="4"
- summary="Using hardcoded color"
- explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
errorLine1=" android:background="@color/lock_pattern_background" />"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
@@ -101,22 +53,6 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" <color name="black">#000</color>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="res/values/colors.xml"
- line="18"
- column="5"/>
- </issue>
-
- <issue
- id="HardCodedColor"
- severity="Error"
- message="Avoid using hardcoded color"
- category="Correctness"
- priority="4"
- summary="Using hardcoded color"
- explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
errorLine1=" <color name="switch_bar_background">#dadce0</color>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
@@ -133,8 +69,8 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" <color name="red">#F00</color>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" <color name="crypt_keeper_clock_background">#ff9a9a9a</color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
line="19"
@@ -165,8 +101,8 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" <color name="blue">#00F</color>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" <color name="crypt_keeper_clock_foreground">#ff666666</color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
line="20"
@@ -181,6 +117,22 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" <color name="crypt_keeper_clock_am_pm">#ff9a9a9a</color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/values/colors.xml"
+ line="21"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
errorLine1=" <color name="homepage_accessibility_background">#783BE5</color>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
@@ -197,8 +149,8 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" <color name="bluetooth_dialog_text_color">#8a000000</color>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" <color name="crypt_keeper_password_background">#70606060</color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
line="22"
@@ -229,8 +181,8 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" <color name="crypt_keeper_clock_background">#ff9a9a9a</color>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" <color name="divider_color">#20ffffff</color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
line="24"
@@ -261,75 +213,11 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" <color name="crypt_keeper_clock_foreground">#ff666666</color>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="res/values/colors.xml"
- line="25"
- column="5"/>
- </issue>
-
- <issue
- id="HardCodedColor"
- severity="Error"
- message="Avoid using hardcoded color"
- category="Correctness"
- priority="4"
- summary="Using hardcoded color"
- explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" <color name="crypt_keeper_clock_am_pm">#ff9a9a9a</color>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="res/values/colors.xml"
- line="26"
- column="5"/>
- </issue>
-
- <issue
- id="HardCodedColor"
- severity="Error"
- message="Avoid using hardcoded color"
- category="Correctness"
- priority="4"
- summary="Using hardcoded color"
- explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" <color name="crypt_keeper_password_background">#70606060</color>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="res/values/colors.xml"
- line="27"
- column="5"/>
- </issue>
-
- <issue
- id="HardCodedColor"
- severity="Error"
- message="Avoid using hardcoded color"
- category="Correctness"
- priority="4"
- summary="Using hardcoded color"
- explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" <color name="divider_color">#20ffffff</color>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="res/values/colors.xml"
- line="29"
- column="5"/>
- </issue>
-
- <issue
- id="HardCodedColor"
- severity="Error"
- message="Avoid using hardcoded color"
- category="Correctness"
- priority="4"
- summary="Using hardcoded color"
- explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
errorLine1=" <color name="setup_lock_pattern_view_success_color_dark">#ff84ffff</color>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="32"
+ line="27"
column="5"/>
</issue>
@@ -345,7 +233,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="34"
+ line="29"
column="5"/>
</issue>
@@ -361,7 +249,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="35"
+ line="30"
column="5"/>
</issue>
@@ -377,7 +265,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="36"
+ line="31"
column="5"/>
</issue>
@@ -393,7 +281,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="38"
+ line="33"
column="5"/>
</issue>
@@ -409,7 +297,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="39"
+ line="34"
column="5"/>
</issue>
@@ -425,7 +313,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="41"
+ line="36"
column="5"/>
</issue>
@@ -441,7 +329,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="46"
+ line="41"
column="5"/>
</issue>
@@ -457,7 +345,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="47"
+ line="42"
column="5"/>
</issue>
@@ -473,7 +361,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="49"
+ line="44"
column="5"/>
</issue>
@@ -489,7 +377,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="50"
+ line="45"
column="5"/>
</issue>
@@ -505,7 +393,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="54"
+ line="49"
column="5"/>
</issue>
@@ -521,7 +409,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="57"
+ line="52"
column="5"/>
</issue>
@@ -537,7 +425,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="60"
+ line="55"
column="5"/>
</issue>
@@ -553,7 +441,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="61"
+ line="56"
column="5"/>
</issue>
@@ -569,7 +457,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="62"
+ line="57"
column="5"/>
</issue>
@@ -585,7 +473,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="63"
+ line="58"
column="5"/>
</issue>
@@ -597,11 +485,11 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" <color name="switch_bar_background">#ff80868B</color>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" <color name="switch_bar_background">#757575</color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="64"
+ line="59"
column="5"/>
</issue>
@@ -617,7 +505,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="66"
+ line="61"
column="5"/>
</issue>
@@ -633,7 +521,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="67"
+ line="62"
column="5"/>
</issue>
@@ -649,7 +537,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="68"
+ line="63"
column="5"/>
</issue>
@@ -665,7 +553,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="69"
+ line="64"
column="5"/>
</issue>
@@ -681,7 +569,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="70"
+ line="65"
column="5"/>
</issue>
@@ -697,7 +585,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="71"
+ line="66"
column="5"/>
</issue>
@@ -713,7 +601,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="72"
+ line="67"
column="5"/>
</issue>
@@ -729,7 +617,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="73"
+ line="68"
column="5"/>
</issue>
@@ -745,7 +633,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="74"
+ line="69"
column="5"/>
</issue>
@@ -761,7 +649,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="75"
+ line="70"
column="5"/>
</issue>
@@ -777,7 +665,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="76"
+ line="71"
column="5"/>
</issue>
@@ -793,7 +681,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="78"
+ line="73"
column="5"/>
</issue>
@@ -809,7 +697,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="81"
+ line="76"
column="5"/>
</issue>
@@ -825,7 +713,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="84"
+ line="79"
column="5"/>
</issue>
@@ -841,7 +729,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="87"
+ line="82"
column="5"/>
</issue>
@@ -857,7 +745,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="90"
+ line="85"
column="5"/>
</issue>
@@ -873,7 +761,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="91"
+ line="86"
column="5"/>
</issue>
@@ -889,7 +777,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="92"
+ line="87"
column="5"/>
</issue>
@@ -905,7 +793,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="93"
+ line="88"
column="5"/>
</issue>
@@ -921,7 +809,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="94"
+ line="89"
column="5"/>
</issue>
@@ -937,7 +825,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="95"
+ line="90"
column="5"/>
</issue>
@@ -953,7 +841,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="96"
+ line="91"
column="5"/>
</issue>
@@ -969,7 +857,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="97"
+ line="92"
column="5"/>
</issue>
@@ -985,7 +873,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="98"
+ line="93"
column="5"/>
</issue>
@@ -1001,7 +889,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="99"
+ line="94"
column="5"/>
</issue>
@@ -1017,7 +905,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="100"
+ line="95"
column="5"/>
</issue>
@@ -1033,7 +921,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="101"
+ line="96"
column="5"/>
</issue>
@@ -1049,7 +937,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="102"
+ line="97"
column="5"/>
</issue>
@@ -1065,7 +953,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="103"
+ line="98"
column="5"/>
</issue>
@@ -1081,7 +969,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="104"
+ line="99"
column="5"/>
</issue>
@@ -1097,7 +985,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="105"
+ line="100"
column="5"/>
</issue>
@@ -1113,7 +1001,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="106"
+ line="102"
column="5"/>
</issue>
@@ -1129,7 +1017,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="110"
+ line="108"
column="5"/>
</issue>
@@ -1145,7 +1033,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="115"
+ line="113"
column="5"/>
</issue>
@@ -1161,7 +1049,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="116"
+ line="114"
column="5"/>
</issue>
@@ -1177,7 +1065,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="117"
+ line="115"
column="5"/>
</issue>
@@ -1193,7 +1081,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="118"
+ line="116"
column="5"/>
</issue>
@@ -1209,7 +1097,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="119"
+ line="117"
column="5"/>
</issue>
@@ -1225,7 +1113,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="120"
+ line="118"
column="5"/>
</issue>
@@ -1241,7 +1129,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="123"
+ line="121"
column="5"/>
</issue>
@@ -1257,7 +1145,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="124"
+ line="122"
column="5"/>
</issue>
@@ -1273,7 +1161,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="125"
+ line="123"
column="5"/>
</issue>
@@ -1289,7 +1177,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="126"
+ line="124"
column="5"/>
</issue>
@@ -1305,7 +1193,55 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="127"
+ line="125"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" <color name="notification_block_color">#ffff0000</color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/values/colors.xml"
+ line="128"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" <color name="notification_silence_color">#fbbc04</color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/values/colors.xml"
+ line="129"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" <color name="notification_alert_color">#30a751</color>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/values/colors.xml"
+ line="130"
column="5"/>
</issue>
@@ -1321,7 +1257,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="133"
+ line="136"
column="5"/>
</issue>
@@ -1337,7 +1273,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="136"
+ line="139"
column="5"/>
</issue>
@@ -1353,7 +1289,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="137"
+ line="140"
column="5"/>
</issue>
@@ -1369,7 +1305,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/colors.xml"
- line="138"
+ line="141"
column="5"/>
</issue>
@@ -1653,12 +1589,12 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_about_background" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" android:color="@color/homepage_about_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/drawable/ic_homepage_about.xml"
- line="23"
- column="17"/>
+ line="24"
+ column="13"/>
</issue>
<issue
@@ -1669,12 +1605,12 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_accessibility_background" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" android:color="@color/homepage_accessibility_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/drawable/ic_homepage_accessibility.xml"
- line="23"
- column="17"/>
+ line="24"
+ column="13"/>
</issue>
<issue
@@ -1685,12 +1621,12 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_accessibility_background" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" android:color="@color/homepage_accessibility_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/drawable/ic_homepage_accessibility.xml"
- line="23"
- column="17"/>
+ line="24"
+ column="13"/>
</issue>
<issue
@@ -1701,12 +1637,12 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_accounts_background" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" android:color="@color/homepage_accounts_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/drawable/ic_homepage_accounts.xml"
- line="23"
- column="17"/>
+ line="24"
+ column="13"/>
</issue>
<issue
@@ -1717,12 +1653,12 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_app_and_notification_background" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" android:color="@color/homepage_app_and_notification_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/drawable/ic_homepage_apps.xml"
- line="23"
- column="17"/>
+ line="24"
+ column="13"/>
</issue>
<issue
@@ -1733,12 +1669,12 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_battery_background" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" android:color="@color/homepage_battery_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/drawable/ic_homepage_battery.xml"
- line="23"
- column="17"/>
+ line="24"
+ column="13"/>
</issue>
<issue
@@ -1749,12 +1685,12 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_connected_device_background" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" android:color="@color/homepage_connected_device_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/drawable/ic_homepage_connected_device.xml"
- line="23"
- column="17"/>
+ line="24"
+ column="13"/>
</issue>
<issue
@@ -1765,12 +1701,12 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_display_background" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" android:color="@color/homepage_display_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/drawable/ic_homepage_display.xml"
- line="23"
- column="17"/>
+ line="24"
+ column="13"/>
</issue>
<issue
@@ -1781,28 +1717,12 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_generic_icon_background" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="res/drawable/ic_homepage_generic_background.xml"
- line="20"
- column="9"/>
- </issue>
-
- <issue
- id="HardCodedColor"
- severity="Error"
- message="Avoid using hardcoded color"
- category="Correctness"
- priority="4"
- summary="Using hardcoded color"
- explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_location_background"/>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" android:color="@color/homepage_location_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/drawable/ic_homepage_location.xml"
- line="23"
- column="17"/>
+ line="24"
+ column="13"/>
</issue>
<issue
@@ -1813,12 +1733,12 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_network_background" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" android:color="@color/homepage_network_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/drawable/ic_homepage_network.xml"
- line="23"
- column="17"/>
+ line="24"
+ column="13"/>
</issue>
<issue
@@ -1829,12 +1749,12 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_privacy_background"/>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" android:color="@color/homepage_privacy_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/drawable/ic_homepage_privacy.xml"
- line="23"
- column="17"/>
+ line="24"
+ column="13"/>
</issue>
<issue
@@ -1845,12 +1765,12 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_security_background" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" android:color="@color/homepage_security_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/drawable/ic_homepage_security.xml"
- line="23"
- column="17"/>
+ line="24"
+ column="13"/>
</issue>
<issue
@@ -1861,12 +1781,12 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_sound_background" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" android:color="@color/homepage_sound_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/drawable/ic_homepage_sound.xml"
- line="23"
- column="17"/>
+ line="24"
+ column="13"/>
</issue>
<issue
@@ -1877,12 +1797,12 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_storage_background" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" android:color="@color/homepage_storage_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/drawable/ic_homepage_storage.xml"
- line="23"
- column="17"/>
+ line="24"
+ column="13"/>
</issue>
<issue
@@ -1893,12 +1813,12 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_support_background" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" android:color="@color/homepage_support_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/drawable/ic_homepage_support.xml"
- line="23"
- column="17"/>
+ line="24"
+ column="13"/>
</issue>
<issue
@@ -1909,12 +1829,12 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_support_background" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" android:color="@color/homepage_support_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/drawable/ic_homepage_support.xml"
- line="23"
- column="17"/>
+ line="24"
+ column="13"/>
</issue>
<issue
@@ -1925,11 +1845,107 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" android:color="@color/homepage_system_background" />"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" android:color="@color/homepage_system_background" />"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="res/drawable/ic_homepage_system_dashboard.xml"
- line="23"
+ line="24"
+ column="13"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" android:color="@color/notification_alert_color"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/drawable/ic_notification_alert.xml"
+ line="27"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" android:fillColor="@color/notification_alert_color""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/drawable/ic_notification_alert.xml"
+ line="39"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" android:color="@color/notification_block_color"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/drawable/ic_notification_block.xml"
+ line="27"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" android:fillColor="@color/notification_block_color""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/drawable/ic_notification_block.xml"
+ line="39"
+ column="17"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" android:color="@color/notification_silence_color"/>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/drawable/ic_notification_silence.xml"
+ line="27"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="HardCodedColor"
+ severity="Error"
+ message="Avoid using hardcoded color"
+ category="Correctness"
+ priority="4"
+ summary="Using hardcoded color"
+ explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+ errorLine1=" android:fillColor="@color/notification_silence_color""
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="res/drawable/ic_notification_silence.xml"
+ line="39"
column="17"/>
</issue>
@@ -2437,12 +2453,12 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" <string name="sync_plug" msgid="3905078969081888738">""<font fgcolor="#ffffffff">"Welcome to Google sync!"</font>" \nA Google approach to syncing data to allow access to your contacts, appointments, and more from wherever you are."</string>"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" <string name="sync_plug" msgid="3905078969081888738">""<font fgcolor="#ffffffff">"Welcome to Google sync!"</font>" \nA Google approach to syncing data to allow access to your contacts, appointments, and more from wherever you are."</string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
<location
file="res/values-en-rXC/strings.xml"
- line="2533"
- column="168"/>
+ line="2580"
+ column="169"/>
</issue>
<issue
@@ -2457,7 +2473,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
<location
file="res/values-en-rAU/strings.xml"
- line="2534"
+ line="2581"
column="64"/>
</issue>
@@ -2473,7 +2489,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
<location
file="res/values-en-rCA/strings.xml"
- line="2534"
+ line="2581"
column="64"/>
</issue>
@@ -2489,7 +2505,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
<location
file="res/values-en-rGB/strings.xml"
- line="2534"
+ line="2581"
column="64"/>
</issue>
@@ -2505,7 +2521,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
<location
file="res/values-en-rIN/strings.xml"
- line="2534"
+ line="2581"
column="64"/>
</issue>
@@ -2521,7 +2537,7 @@
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
<location
file="res/values/strings.xml"
- line="5885"
+ line="6026"
column="36"/>
</issue>
@@ -2537,7 +2553,7 @@
errorLine2=" ^">
<location
file="res/values/styles.xml"
- line="174"
+ line="163"
column="41"/>
</issue>
@@ -2553,7 +2569,7 @@
errorLine2=" ^">
<location
file="res/values/styles.xml"
- line="388"
+ line="380"
column="44"/>
</issue>
@@ -2569,7 +2585,7 @@
errorLine2=" ^">
<location
file="res/values/styles.xml"
- line="394"
+ line="386"
column="44"/>
</issue>
@@ -2585,7 +2601,7 @@
errorLine2=" ^">
<location
file="res/values/styles.xml"
- line="395"
+ line="387"
column="44"/>
</issue>
@@ -2601,7 +2617,7 @@
errorLine2=" ^">
<location
file="res/values/styles.xml"
- line="430"
+ line="423"
column="34"/>
</issue>
@@ -2729,7 +2745,7 @@
errorLine2=" ^">
<location
file="res/values/themes.xml"
- line="166"
+ line="169"
column="45"/>
</issue>
@@ -2745,7 +2761,7 @@
errorLine2=" ^">
<location
file="res/values/themes.xml"
- line="167"
+ line="170"
column="49"/>
</issue>
@@ -2761,7 +2777,7 @@
errorLine2=" ^">
<location
file="res/values/themes.xml"
- line="175"
+ line="178"
column="45"/>
</issue>
@@ -2777,7 +2793,7 @@
errorLine2=" ^">
<location
file="res/values/themes.xml"
- line="176"
+ line="179"
column="49"/>
</issue>
@@ -2793,7 +2809,7 @@
errorLine2=" ^">
<location
file="res/values/themes.xml"
- line="192"
+ line="195"
column="39"/>
</issue>
@@ -2809,7 +2825,7 @@
errorLine2=" ^">
<location
file="res/values/themes.xml"
- line="193"
+ line="196"
column="40"/>
</issue>
@@ -2825,7 +2841,7 @@
errorLine2=" ^">
<location
file="res/values/themes.xml"
- line="194"
+ line="197"
column="38"/>
</issue>
diff --git a/res/drawable/ic_face_header.xml b/res/drawable/ic_face_header.xml
index 4493d66..15ea7ae 100644
--- a/res/drawable/ic_face_header.xml
+++ b/res/drawable/ic_face_header.xml
@@ -1,4 +1,4 @@
-<!--
+<?xml version="1.0" encoding="utf-8"?><!--
~ Copyright (C) 2018 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
@@ -15,9 +15,17 @@
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="#000" android:pathData="M9,11.75A1.25,1.25 0 0,0 7.75,13A1.25,1.25 0 0,0 9,14.25A1.25,1.25 0 0,0 10.25,13A1.25,1.25 0 0,0 9,11.75M15,11.75A1.25,1.25 0 0,0 13.75,13A1.25,1.25 0 0,0 15,14.25A1.25,1.25 0 0,0 16.25,13A1.25,1.25 0 0,0 15,11.75M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20C7.59,20 4,16.41 4,12C4,11.71 4,11.42 4.05,11.14C6.41,10.09 8.28,8.16 9.26,5.77C11.07,8.33 14.05,10 17.42,10C18.2,10 18.95,9.91 19.67,9.74C19.88,10.45 20,11.21 20,12C20,16.41 16.41,20 12,20Z" />
+ android:width="32dp"
+ android:height="32dp"
+ android:tint="?android:attr/colorPrimary"
+ android:viewportHeight="24"
+ android:viewportWidth="24">
+
+ <path
+ android:fillColor="#000000"
+ android:pathData="M 12 13 C 13.1045694997 13 14 13.8954305003 14 15 C 14 16.1045694997 13.1045694997 17 12 17 C 10.8954305003 17 10 16.1045694997 10 15 C 10 13.8954305003 10.8954305003 13 12 13 Z" />
+ <path
+ android:fillColor="#000000"
+ android:pathData="M18.5,1C16.01,1,14,3.01,14,5.5V8H6c-1.1,0-2,0.9-2,2v10c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V10c0-1.1-0.9-2-2-2h-2V5.5 C16,4.12,17.12,3,18.5,3C19.88,3,21,4.12,21,5.5V6h2V5.5C23,3.01,20.99,1,18.5,1z M18,10v10H6V10H18z" />
+ <path android:pathData="M0,0h24v24H0V0z" />
</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_notification_alert.xml b/res/drawable/ic_notification_alert.xml
new file mode 100644
index 0000000..07e7b48
--- /dev/null
+++ b/res/drawable/ic_notification_alert.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:id="@+id/back">
+ <shape android:shape="oval">
+ <solid
+ android:color="@android:color/transparent" />
+ <size
+ android:height="48dp"
+ android:width="48dp"/>
+ <stroke android:width="1dp"
+ android:color="@color/notification_alert_color"/>
+ </shape>
+ </item>
+ <item
+ android:id="@+id/fore"
+ android:gravity="center">
+ <vector
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportHeight="24"
+ android:viewportWidth="24">
+ <path
+ android:fillColor="@color/notification_alert_color"
+ android:pathData="M7.58 4.08L6.15 2.65C3.75 4.48 2.17 7.3 2.03 10.5h2c.15-2.65 1.51-4.97 3.55-6.42zm12.39 6.42h2c-.15-3.2-1.73-6.02-4.12-7.85l-1.42 1.43c2.02 1.45 3.39 3.77 3.54 6.42zM18 11c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2v-5zm-6 11c.14 0 .27-.01.4-.04.65-.14 1.18-.58 1.44-1.18.1-.24.15-.5.15-.78h-4c.01 1.1.9 2 2.01 2z"/>
+ </vector>
+ </item>
+</layer-list>
\ No newline at end of file
diff --git a/res/drawable/ic_notification_block.xml b/res/drawable/ic_notification_block.xml
new file mode 100644
index 0000000..d4f0a2a
--- /dev/null
+++ b/res/drawable/ic_notification_block.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:id="@+id/back">
+ <shape android:shape="oval">
+ <solid
+ android:color="@android:color/transparent" />
+ <size
+ android:height="48dp"
+ android:width="48dp"/>
+ <stroke android:width="1dp"
+ android:color="@color/notification_block_color"/>
+ </shape>
+ </item>
+ <item
+ android:id="@+id/fore"
+ android:gravity="center">
+ <vector
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportHeight="24"
+ android:viewportWidth="24">
+ <path
+ android:fillColor="@color/notification_block_color"
+ android:pathData="M12.0,2.0C6.48,2.0 2.0,6.48 2.0,12.0s4.48,10.0 10.0,10.0 10.0,-4.48 10.0,-10.0S17.52,2.0 12.0,2.0zM4.0,12.0c0.0,-4.42 3.58,-8.0 8.0,-8.0 1.85,0.0 3.5,0.63 4.9,1.69L5.69,16.9C4.63,15.55 4.0,13.85 4.0,12.0zm8.0,8.0c-1.85,0.0 -3.55,-0.63 -4.9,-1.69L18.31,7.1C19.37,8.45 20.0,10.15 20.0,12.0c0.0,4.42 -3.58,8.0 -8.0,8.0z"/>
+ </vector>
+ </item>
+</layer-list>
\ No newline at end of file
diff --git a/res/drawable/ic_notification_silence.xml b/res/drawable/ic_notification_silence.xml
new file mode 100644
index 0000000..673340f
--- /dev/null
+++ b/res/drawable/ic_notification_silence.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:id="@+id/back">
+ <shape android:shape="oval">
+ <solid
+ android:color="@android:color/transparent" />
+ <size
+ android:height="48dp"
+ android:width="48dp"/>
+ <stroke android:width="1dp"
+ android:color="@color/notification_silence_color"/>
+ </shape>
+ </item>
+ <item
+ android:id="@+id/fore"
+ android:gravity="center">
+ <vector
+ android:height="24dp"
+ android:width="24dp"
+ android:viewportHeight="24"
+ android:viewportWidth="24">
+ <path
+ android:fillColor="@color/notification_silence_color"
+ android:pathData="M20 18.69L7.84 6.14 5.27 3.49 4 4.76l2.8 2.8v.01c-.52.99-.8 2.16-.8 3.42v5l-2 2v1h13.73l2 2L21 19.72l-1-1.03zM12 22c1.11 0 2-.89 2-2h-4c0 1.11.89 2 2 2zm6-7.32V11c0-3.08-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68c-.15.03-.29.08-.42.12-.1.03-.2.07-.3.11h-.01c-.01 0-.01 0-.02.01-.23.09-.46.2-.68.31 0 0-.01 0-.01.01L18 14.68z" />
+ </vector>
+ </item>
+</layer-list>
\ No newline at end of file
diff --git a/res/layout/homepage_condition_full_tile.xml b/res/layout/homepage_condition_full_tile.xml
index 3d261ca..e90a0cb 100644
--- a/res/layout/homepage_condition_full_tile.xml
+++ b/res/layout/homepage_condition_full_tile.xml
@@ -30,7 +30,7 @@
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingStart="@dimen/homepage_card_padding_start"
+ android:paddingStart="@dimen/homepage_card_icon_padding_start"
android:paddingEnd="@dimen/homepage_full_card_padding_end"
android:paddingTop="@dimen/homepage_condition_full_card_padding_top"
android:paddingBottom="@dimen/homepage_condition_full_card_padding_bottom"
diff --git a/res/layout/homepage_condition_half_tile.xml b/res/layout/homepage_condition_half_tile.xml
index 308b3a6..1086f2d 100644
--- a/res/layout/homepage_condition_half_tile.xml
+++ b/res/layout/homepage_condition_half_tile.xml
@@ -31,7 +31,6 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingStart="@dimen/homepage_card_padding_start"
android:paddingEnd="@dimen/homepage_card_padding_end"
android:orientation="vertical">
@@ -39,6 +38,7 @@
android:id="@android:id/icon"
android:layout_width="@dimen/homepage_card_icon_size"
android:layout_height="@dimen/homepage_card_icon_size"
+ android:layout_marginStart="@dimen/homepage_card_icon_padding_start"
android:tint="?android:attr/colorAccent"/>
<TextView
@@ -47,6 +47,7 @@
android:layout_height="wrap_content"
android:maxLines="1"
android:ellipsize="end"
+ android:layout_marginStart="@dimen/homepage_card_text_padding_start"
android:layout_marginTop="@dimen/homepage_condition_half_card_title_margin_top"
android:layout_marginBottom="@dimen/homepage_condition_card_title_margin_bottom"
android:textAppearance="@style/TextAppearance.ConditionCardTitle"/>
@@ -57,6 +58,7 @@
android:layout_height="wrap_content"
android:lines="2"
android:ellipsize="end"
+ android:layout_marginStart="@dimen/homepage_card_text_padding_start"
android:layout_marginBottom="@dimen/homepage_condition_half_card_summary_margin_bottom"
android:textAppearance="@style/TextAppearance.ConditionCardSummary"/>
diff --git a/res/layout/homepage_condition_header.xml b/res/layout/homepage_condition_header.xml
index a2796ec..5460be9 100644
--- a/res/layout/homepage_condition_header.xml
+++ b/res/layout/homepage_condition_header.xml
@@ -45,7 +45,8 @@
android:paddingTop="@dimen/homepage_condition_header_indicator_padding_top"
android:paddingStart="@dimen/homepage_condition_header_indicator_padding_start"
android:paddingEnd="@dimen/homepage_condition_header_indicator_padding_end"
- android:src="@*android:drawable/ic_expand_more"/>
+ android:src="@drawable/ic_expand_more_inverse"
+ android:tint="?android:attr/colorControlNormal"/>
</LinearLayout>
diff --git a/res/layout/homepage_slice_deferred_setup_tile.xml b/res/layout/homepage_slice_deferred_setup_tile.xml
index 73199d4..ed096b0 100644
--- a/res/layout/homepage_slice_deferred_setup_tile.xml
+++ b/res/layout/homepage_slice_deferred_setup_tile.xml
@@ -21,59 +21,52 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
- <ViewFlipper
- android:id="@+id/view_flipper"
+ <LinearLayout
+ android:id="@+id/content"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:gravity="left"
+ android:orientation="vertical"
+ android:paddingEnd="@dimen/homepage_card_padding_end"
+ android:paddingTop="@dimen/homepage_deferred_setup_card_padding_top"
+ android:paddingBottom="@dimen/homepage_deferred_setup_card_padding_bottom">
- <LinearLayout
- android:id="@+id/content"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="left"
- android:orientation="vertical"
- android:paddingStart="@dimen/homepage_card_padding_start"
- android:paddingEnd="@dimen/homepage_card_padding_end"
- android:paddingTop="@dimen/homepage_deferred_setup_card_padding_top"
- android:paddingBottom="@dimen/homepage_deferred_setup_card_padding_bottom">
+ <ImageView
+ android:id="@android:id/icon"
+ android:layout_width="@dimen/homepage_card_icon_size"
+ android:layout_height="@dimen/homepage_card_icon_size"
+ android:layout_marginStart="@dimen/homepage_card_icon_padding_start"/>
- <ImageView
- android:id="@android:id/icon"
- android:layout_width="@dimen/homepage_card_icon_size"
- android:layout_height="@dimen/homepage_card_icon_size"/>
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/homepage_card_text_padding_start"
+ android:layout_marginTop="@dimen/homepage_deferred_setup_card_title_margin_top"
+ android:ellipsize="end"
+ android:maxLines="2"
+ android:minLines="1"
+ android:textAppearance="@style/TextAppearance.DeferredSetupCardTitle"/>
- <TextView
- android:id="@android:id/title"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/homepage_deferred_setup_card_title_margin_top"
- android:ellipsize="end"
- android:maxLines="2"
- android:minLines="1"
- android:textAppearance="@style/TextAppearance.DeferredSetupCardTitle"/>
+ <TextView
+ android:id="@android:id/summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/homepage_card_text_padding_start"
+ android:layout_marginTop="@dimen/homepage_deferred_setup_card_summary_margin_top"
+ android:ellipsize="end"
+ android:maxLines="2"
+ android:minLines="1"
+ android:textAppearance="@style/TextAppearance.DeferredSetupCardSummary"/>
- <TextView
- android:id="@android:id/summary"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/homepage_deferred_setup_card_summary_margin_top"
- android:ellipsize="end"
- android:maxLines="2"
- android:minLines="1"
- android:textAppearance="@style/TextAppearance.DeferredSetupCardSummary"/>
+ <Button
+ android:id="@+id/finish_setup"
+ style="@style/DeferredSetupCardButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/homepage_card_text_padding_start"
+ android:layout_marginTop="@dimen/homepage_deferred_setup_card_button_margin_top"
+ android:text="@string/suggestion_button_text"/>
- <Button
- android:id="@+id/finish_setup"
- style="@style/DeferredSetupCardButton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/homepage_deferred_setup_card_button_margin_top"
- android:text="@string/suggestion_button_text"/>
-
- </LinearLayout>
-
- <!--dismissal view-->
- <include layout="@layout/homepage_dismissal_view"/>
-
- </ViewFlipper>
+ </LinearLayout>
</com.google.android.material.card.MaterialCardView>
\ No newline at end of file
diff --git a/res/layout/homepage_slice_half_tile.xml b/res/layout/homepage_slice_half_tile.xml
index fc99561..8b6d415 100644
--- a/res/layout/homepage_slice_half_tile.xml
+++ b/res/layout/homepage_slice_half_tile.xml
@@ -30,7 +30,6 @@
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:paddingStart="@dimen/homepage_card_padding_start"
android:paddingEnd="@dimen/homepage_card_padding_end"
android:paddingTop="@dimen/homepage_half_card_padding_top"
android:paddingBottom="@dimen/homepage_half_card_padding_bottom"
@@ -39,7 +38,8 @@
<ImageView
android:id="@android:id/icon"
android:layout_width="@dimen/homepage_card_icon_size"
- android:layout_height="@dimen/homepage_card_icon_size"/>
+ android:layout_height="@dimen/homepage_card_icon_size"
+ android:layout_marginStart="@dimen/homepage_card_icon_padding_start"/>
<TextView
android:id="@android:id/title"
@@ -48,6 +48,7 @@
android:maxLines="2"
android:minLines="1"
android:ellipsize="end"
+ android:layout_marginStart="@dimen/homepage_card_text_padding_start"
android:layout_marginTop="@dimen/homepage_half_card_title_margin_top"
android:textAppearance="@style/TextAppearance.ConditionCardTitle"/>
diff --git a/res/layout/homepage_slice_tile.xml b/res/layout/homepage_slice_tile.xml
index 807c26b..b2badf5 100644
--- a/res/layout/homepage_slice_tile.xml
+++ b/res/layout/homepage_slice_tile.xml
@@ -31,6 +31,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
+ android:animateLayoutChanges="true"
+ android:importantForAccessibility="no"
style="@style/SliceViewStyle"/>
<!--dismissal view-->
diff --git a/res/layout/master_clear.xml b/res/layout/master_clear.xml
index 9c1dd80..6368588 100644
--- a/res/layout/master_clear.xml
+++ b/res/layout/master_clear.xml
@@ -127,12 +127,9 @@
android:text="@string/erase_external_storage_description"/>
</LinearLayout>
</LinearLayout>
- <include
- layout="@layout/reset_esim_checkbox"
- android:layout_marginTop="40dp"
- android:id="@+id/erase_esim_container"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"/>
+
+ <include layout="@layout/reset_esim_checkbox"/>
+
</LinearLayout>
</ScrollView>
</com.google.android.setupdesign.GlifLayout>
diff --git a/res/layout/notif_importance_preference.xml b/res/layout/notif_importance_preference.xml
new file mode 100644
index 0000000..5d79ff3
--- /dev/null
+++ b/res/layout/notif_importance_preference.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/app_entities_header"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:id="@+id/block"
+ android:layout_width="0dp"
+ android:layout_weight="33.33"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="16dp"
+ android:layout_marginTop="16dp"
+ android:orientation="vertical"
+ android:gravity="center">
+
+ <ImageButton
+ android:id="@+id/block_icon"
+ android:layout_width="@dimen/notification_importance_toggle_size"
+ android:layout_height="@dimen/notification_importance_toggle_size"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:src="@drawable/ic_notification_block"
+ android:contentDescription="@string/notification_block_title" />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/notification_block_title"
+ android:layout_marginTop="@dimen/notification_importance_toggle_marginTop"
+ android:layout_marginBottom="@dimen/notification_importance_toggle_marginBottom"
+ android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Subhead" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/silence"
+ android:layout_width="0dp"
+ android:layout_weight="33.33"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="16dp"
+ android:layout_marginTop="16dp"
+ android:orientation="vertical"
+ android:gravity="center">
+
+ <ImageButton
+ android:id="@+id/silence_icon"
+ android:layout_width="@dimen/notification_importance_toggle_size"
+ android:layout_height="@dimen/notification_importance_toggle_size"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:src="@drawable/ic_notification_silence"
+ android:contentDescription="@string/notification_silence_title" />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/notification_silence_title"
+ android:layout_marginTop="@dimen/notification_importance_toggle_marginTop"
+ android:layout_marginBottom="@dimen/notification_importance_toggle_marginBottom"
+ android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Subhead" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/alert"
+ android:layout_width="0dp"
+ android:layout_weight="33.33"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="16dp"
+ android:layout_marginTop="16dp"
+ android:orientation="vertical"
+ android:gravity="center">
+
+ <ImageButton
+ android:id="@+id/alert_icon"
+ android:layout_width="@dimen/notification_importance_toggle_size"
+ android:layout_height="@dimen/notification_importance_toggle_size"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:src="@drawable/ic_notification_alert"
+ android:contentDescription="@string/notification_alert_title" />
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/notification_alert_title"
+ android:layout_marginTop="@dimen/notification_importance_toggle_marginTop"
+ android:layout_marginBottom="@dimen/notification_importance_toggle_marginBottom"
+ android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Subhead" />
+ </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/preference_single_target.xml b/res/layout/preference_single_target.xml
new file mode 100644
index 0000000..b4a9de0
--- /dev/null
+++ b/res/layout/preference_single_target.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2019 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<!-- Based off preference_two_target.xml with Material ripple moved to parent for full ripple. -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:settings="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall"
+ android:gravity="center_vertical"
+ android:background="?android:attr/selectableItemBackground"
+ android:clipToPadding="false">
+
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:gravity="start|center_vertical"
+ android:clipToPadding="false"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+
+ <LinearLayout
+ android:id="@+id/icon_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="start|center_vertical"
+ android:minWidth="56dp"
+ android:orientation="horizontal"
+ android:clipToPadding="false"
+ android:paddingTop="4dp"
+ android:paddingBottom="4dp">
+ <androidx.preference.internal.PreferenceImageView
+ android:id="@android:id/icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ settings:maxWidth="48dp"
+ settings:maxHeight="48dp" />
+ </LinearLayout>
+
+ <RelativeLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:paddingTop="16dp"
+ android:paddingBottom="16dp">
+
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:singleLine="true"
+ android:textAppearance="?android:attr/textAppearanceListItem"
+ android:ellipsize="marquee" />
+
+ <TextView
+ android:id="@android:id/summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@android:id/title"
+ android:layout_alignStart="@android:id/title"
+ android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+ android:textColor="?android:attr/textColorSecondary"
+ android:maxLines="10" />
+
+ </RelativeLayout>
+
+ </LinearLayout>
+
+ <include layout="@layout/preference_two_target_divider" />
+
+ <!-- Preference should place its actual preference widget here. -->
+ <LinearLayout
+ android:id="@android:id/widget_frame"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:minWidth="64dp"
+ android:gravity="center"
+ android:orientation="vertical" />
+
+</LinearLayout>
diff --git a/res/layout/reset_esim_checkbox.xml b/res/layout/reset_esim_checkbox.xml
index 2195435..77b90a1 100644
--- a/res/layout/reset_esim_checkbox.xml
+++ b/res/layout/reset_esim_checkbox.xml
@@ -15,7 +15,9 @@
-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/erase_esim_container"
style="@style/SudDescription"
+ android:layout_marginTop="40dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
@@ -41,10 +43,10 @@
android:orientation="vertical">
<TextView
- android:id="@+id/erase_esim_title"
style="@style/TextAppearance.SudGlifItemTitle"
android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
+ android:layout_height="wrap_content"
+ android:text="@string/reset_esim_title"/>
<TextView
style="@style/TextAppearance.SudGlifItemSummary"
diff --git a/res/layout/reset_network.xml b/res/layout/reset_network.xml
index 7eb5d2a..2c31d1a 100644
--- a/res/layout/reset_network.xml
+++ b/res/layout/reset_network.xml
@@ -40,10 +40,7 @@
android:textDirection="locale"
android:text="@string/reset_network_desc" />
- <include layout="@layout/reset_esim_checkbox"
- android:id="@+id/erase_esim_container"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
+ <include layout="@layout/reset_esim_checkbox"/>
</LinearLayout>
diff --git a/res/layout/search_bar.xml b/res/layout/search_bar.xml
index 64ddb6d..dbd61df 100644
--- a/res/layout/search_bar.xml
+++ b/res/layout/search_bar.xml
@@ -27,6 +27,7 @@
android:id="@+id/search_action_bar"
android:layout_width="match_parent"
android:layout_height="@dimen/search_bar_height"
+ android:layout_marginStart="-2dp"
android:background="?android:attr/selectableItemBackground"
android:contentInsetStartWithNavigation="@dimen/search_bar_content_inset"
android:navigationIcon="@drawable/ic_homepage_search">
diff --git a/res/layout/settings_homepage_container.xml b/res/layout/settings_homepage_container.xml
index 78a0278..9332463 100644
--- a/res/layout/settings_homepage_container.xml
+++ b/res/layout/settings_homepage_container.xml
@@ -25,6 +25,7 @@
android:id="@+id/main_content_scrollable_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:importantForAccessibility="no"
app:layout_behavior="com.android.settings.widget.FloatingAppBarScrollingViewBehavior">
<LinearLayout
diff --git a/res/layout/vpn_dialog.xml b/res/layout/vpn_dialog.xml
index 71ce0ad..a626205 100644
--- a/res/layout/vpn_dialog.xml
+++ b/res/layout/vpn_dialog.xml
@@ -140,6 +140,46 @@
android:labelFor="@+id/routes"/>
<EditText style="@style/vpn_value" android:id="@+id/routes"
android:hint="@string/vpn_not_used"/>
+
+ <TextView android:id="@+id/vpn_proxy_settings_title"
+ style="@style/vpn_label"
+ android:text="@string/proxy_settings_title"
+ android:labelFor="@+id/vpn_proxy_settings" />
+
+ <Spinner android:id="@+id/vpn_proxy_settings"
+ style="@style/vpn_value"
+ android:prompt="@string/proxy_settings_title"
+ android:entries="@array/vpn_proxy_settings" />
+
+ <LinearLayout
+ android:id="@+id/vpn_proxy_fields"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:visibility="gone" >
+
+ <TextView
+ style="@style/vpn_label"
+ android:text="@string/proxy_hostname_label"
+ android:labelFor="@+id/vpn_proxy_host" />
+
+ <EditText
+ android:id="@+id/vpn_proxy_host"
+ style="@style/vpn_value"
+ android:hint="@string/proxy_hostname_hint"
+ android:inputType="textNoSuggestions" />
+
+ <TextView
+ style="@style/vpn_label"
+ android:text="@string/proxy_port_label"
+ android:labelFor="@+id/vpn_proxy_port" />
+
+ <EditText
+ android:id="@+id/vpn_proxy_port"
+ style="@style/vpn_value"
+ android:hint="@string/proxy_port_hint"
+ android:inputType="number" />
+ </LinearLayout>
</LinearLayout>
<LinearLayout android:id="@+id/login"
diff --git a/res/layout/wfc_disclaimer_fragment.xml b/res/layout/wfc_disclaimer_fragment.xml
new file mode 100644
index 0000000..00baae5
--- /dev/null
+++ b/res/layout/wfc_disclaimer_fragment.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:layout_marginStart="16dp"
+ android:layout_marginBottom="20dp"
+ android:textAppearance="?android:attr/textAppearanceLarge"
+ android:text="@string/wfc_disclaimer_title_text" />
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:background="?android:attr/listDivider" />
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/disclaimer_item_list"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1" />
+
+ <LinearLayout
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" >
+
+ <Button
+ android:id="@+id/disagree_button"
+ style="@style/DisclaimerNegativeButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:text="@string/wfc_disclaimer_disagree_text" />
+
+ <Space
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1" />
+
+ <Button
+ android:id="@+id/agree_button"
+ style="@style/DisclaimerPositiveButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:text="@string/wfc_disclaimer_agree_button_text" />
+ </LinearLayout>
+</LinearLayout>
diff --git a/res/layout/wfc_simple_disclaimer_item.xml b/res/layout/wfc_simple_disclaimer_item.xml
new file mode 100644
index 0000000..ee43182
--- /dev/null
+++ b/res/layout/wfc_simple_disclaimer_item.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingTop="16dp"
+ android:paddingBottom="20dp"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp"
+ android:gravity="center_vertical">
+ <TextView
+ android:id="@+id/disclaimer_title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="@android:style/TextAppearance.Material.Subhead" />
+ <TextView
+ android:id="@+id/disclaimer_desc"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary"
+ android:layout_below="@id/disclaimer_title" />
+</RelativeLayout>
\ No newline at end of file
diff --git a/res/layout/wifi_button_preference_widget.xml b/res/layout/wifi_button_preference_widget.xml
index 1ecb98c..0999d20 100644
--- a/res/layout/wifi_button_preference_widget.xml
+++ b/res/layout/wifi_button_preference_widget.xml
@@ -23,5 +23,4 @@
android:minHeight="@dimen/min_tap_target_size"
android:layout_gravity="center"
android:background="@null"
- android:visibility="gone"
- android:contentDescription="@string/wifi_add_network" />
+ android:visibility="gone"/>
diff --git a/res/layout/wifi_dialog.xml b/res/layout/wifi_dialog.xml
index 1ae3bf5..333296c 100644
--- a/res/layout/wifi_dialog.xml
+++ b/res/layout/wifi_dialog.xml
@@ -71,7 +71,7 @@
android:layout_centerVertical="true"
android:background="@null"
android:src="@drawable/ic_scan_24dp"
- android:contentDescription="@string/wifi_add_network" />
+ android:contentDescription="@string/wifi_dpp_scan_qr_code"/>
</RelativeLayout>
<LinearLayout android:id="@+id/ssid_too_long_warning"
@@ -307,7 +307,7 @@
android:layout_centerVertical="true"
android:background="@null"
android:src="@drawable/ic_scan_24dp"
- android:contentDescription="@string/wifi_add_network" />
+ android:contentDescription="@string/wifi_dpp_scan_qr_code"/>
</RelativeLayout>
</LinearLayout>
diff --git a/res/layout/wifi_dpp_fragment_header.xml b/res/layout/wifi_dpp_fragment_header.xml
index e8e71d1..364f360 100644
--- a/res/layout/wifi_dpp_fragment_header.xml
+++ b/res/layout/wifi_dpp_fragment_header.xml
@@ -40,27 +40,35 @@
android:src="@drawable/ic_devices_check_circle_green"
android:scaleType="fitCenter"/>
- <TextView
- android:id="@android:id/title"
- style="@style/TextAppearance.EntityHeaderTitle"
- android:layout_width="match_parent"
+ <!-- Add title_summary_container to group content for Talkback -->
+ <LinearLayout
+ android:id="@+id/title_summary_container"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:gravity="center_horizontal"
- android:textAlignment="center"
- android:layout_marginTop="8dp"
- android:paddingStart="32dp"
- android:paddingEnd="32dp"/>
+ android:orientation="vertical"
+ android:focusable="true">
- <TextView
- android:id="@android:id/summary"
- style="@style/TextAppearance.EntityHeaderSummary"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:singleLine="false"
- android:gravity="center_horizontal"
- android:textAlignment="center"
- android:layout_marginTop="2dp"
- android:paddingStart="32dp"
- android:paddingEnd="32dp"/>
+ <TextView
+ android:id="@android:id/title"
+ style="@style/TextAppearance.EntityHeaderTitle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
+ android:textAlignment="center"
+ android:layout_marginTop="8dp"
+ android:paddingStart="32dp"
+ android:paddingEnd="32dp"/>
+ <TextView
+ android:id="@android:id/summary"
+ style="@style/TextAppearance.EntityHeaderSummary"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:singleLine="false"
+ android:gravity="center_horizontal"
+ android:textAlignment="center"
+ android:layout_marginTop="2dp"
+ android:paddingStart="32dp"
+ android:paddingEnd="32dp"/>
+ </LinearLayout>
</LinearLayout>
diff --git a/res/values-af/arrays.xml b/res/values-af/arrays.xml
index 4fd4314..af3db8f 100644
--- a/res/values-af/arrays.xml
+++ b/res/values-af/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Globaal"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 220129b..08ebc03 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -1065,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobiel"</item>
<item msgid="2838022395783120596">"Net Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Verkies Wi-Fi"</item>
<item msgid="5074515506087318555">"Verkies mobiel"</item>
@@ -1078,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobiel"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"As Wi-Fi-oproepe aan is, kan jou foon oproepe deur Wi-Fi-netwerke of jou diensverskaffer se netwerk roeteer, afhangend van jou voorkeur en watter sein die sterkste is. Vind by jou diensverskaffer oor tariewe en ander besonderhede uit voordat jy hierdie kenmerk aanskakel.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Noodadres"</string>
@@ -2052,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minute"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tyd om te lees"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tyd om iets te doen"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Kies hoe lank om boodskappe te wys wat jy moet lees, maar wat net tydelik sigbaar is.\n\nNie alle programme ondersteun hierdie instelling nie."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Kies hoe lank om boodskappe te wys wat jou vra om iets te doen, maar wat net tydelik sigbaar is.\n\nNie alle programme ondersteun hierdie instelling nie."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Raak-en-hou-vertraging"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Kleur-omkering"</string>
@@ -3004,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps en kennisgewings"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Toestemmings, verstekprogramme"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Kennisgewingtoegang is nie vir programme in die werkprofiel beskikbaar nie."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Rekeninge"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Geen rekeninge is bygevoeg nie"</string>
@@ -3067,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Stemmingvertoning, sluitskermvertoning"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"sluitskermkennisgewing"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"gesig"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"vingerafdruk"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"verdof skerm, raakskerm, battery, slimhelderheid, dinamiese helderheid"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"verdonker skerm, slaap, battery, uitteltyd, aandag, skerm, onaktiwiteit"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"draai, keer om, rotasie, portret, landskap, oriëntasie, vertikaal, horisontaal"</string>
@@ -3100,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Luitoestel is op stil gestel"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Luivolume op 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Mediavolume"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Oproepvolume"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Wekkervolume"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Luivolume"</string>
@@ -4424,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> kennisgewingkanale. Tik om almal te bestuur."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Wissel uitvoer"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Speel tans op <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Jou intekening by hierdie verskaffer kan geskanselleer word. Herhalende intekeninge sal nie gekanselleer word nie. Kry meer inligting by jou verskaffer."</string>
</resources>
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index 89af133..1abfff1 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"ሁለንተናዊ"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 42c0fad..f586232 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"የተለየ አውታረ መረብ ይምረጡ"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"መሣሪያን ማከል አልተቻለም"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"መሣሪያ ተገኝቷል"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"ከዚህ መሣሪያ ጋር Wi‑Fi በማጋራት ላይ…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"በመገናኘት ላይ…"</string>
<string name="retry" msgid="6472609612090877557">"እንደገና ይሞክሩ"</string>
<string name="wifi_shared" msgid="844142443226926070">"ለሌሎች የመሣሪያ ተጠቃሚዎች አጋራ"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ያልተለወጠ)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"ተንቀሳቃሽ ስልክ"</item>
<item msgid="2838022395783120596">"Wi-Fi ብቻ"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi ተመራጭ"</item>
<item msgid="5074515506087318555">"የተንቀሳቃሽ ስልክ ተመራጭ ነው"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"ተንቀሳቃሽ ስልክ"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"የWi-Fi ጥሪ ሲበራ የእርስዎ ስልክ በምርጫዎ እና በየትኛው ይበልጥ ጠንካራ እንደሆነ የሚወሰን ሆኖ ጥሪዎችን በWi-Fi አውታረ መረቦች ወይም በአገልግሎት አቅራቢዎ አውታረ መረብ በኩል ሊያዞር ይችላል። ይህን ባህሪ ከማብራትዎ በፊት ክፍያዎችን እና ሌሎች ዝርዝሮችን በተመለከተ አገልግሎት አቅራቢዎን ያነጋግሩ።<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"የአስቸኳይ አደጋ አድራሻ"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 ደቂቃዎች"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"ማንበቢያ ጊዜ"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"እርምጃ መውሰጃ ጊዜ"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ማንበብ የሚፈልጉዋቸውን መልዕክቶች ምን ያክል ጊዜ መታየት እንዳለበት ይምረጡ፣ ሆኖም ግን በጊዜያዊነት ብቻ የሚታይ ይሆናል።.\n\nሁሉም መተግበሪያዎች ይህን ቅንብር አይደግፉም።"</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"እርስዎ እርምጃ እንዲወስዱ የሚጠይቁ ሆኖም ግን ለጊዜው ብቻ የሚታዩ መልዕክቶች ምን ያክል ጊዜ መታየት እንዳለባቸው ይምረጡ።\n\nይህን ቅንብር ሁሉም መተግበሪያዎች አይደሉም የሚደግፉት።"</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"የመንካት እና ይዞ ማቆየት"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"ተቃራኒ ቀለም"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ብሉቱዝ፣ NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ብሉቱዝ"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"መተግበሪያዎች እና ማሳወቂያዎች"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"ፈቃዶች፣ ነባሪ መተግበሪያዎች"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"የማሳወቂያ መዳረሻ በስራ መገለጫ ውስጥ ላሉ መተግበሪያዎች አይገኝም።"</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"መለያዎች"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"ምንም መለያዎች አልታከሉም"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ድባባዊ ማሳያ፣ የማያ ገጽ ቁልፍ ማሳያ"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"የማያ ገጽ ቁልፍ ማሳወቂያ"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"መልክ"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"የጣት አሻራ"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"የደበዘዘ ማያ ገጽ፣ ማያንካ፣ ባትሪ፣ ዘመናዊ ብሩህነት፣ ተለዋዋጭ ብሩህነት"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ማያ ገጽን ማደብዘዝ፣ እንቅልፍ፣ ባትሪ፣ እረፍት መውሰጃ ጊዜ፣ ትኩረት፣ ማሳያ፣ ማያ ገጽ፣ የቦዘነ ጊዜ"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"አሽከርክር፣ ገልብጥ፣ ሽክርክሪት፣ የቁም፣ የመሬት ገጽታ፣ አቀማመጥ፣ ቁልቁል፣ አግድም"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"ደዋዩ ወደ ጸጥታ ተቀናብሯል"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"የጥሪ ድምጽ መጠን 80% ላይ"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"የማህደረመረጃ ክፍልፍል"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"የስልክ ጥሪ ድምጽ መጠን"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"የማንቂያ ድምፅ መጠን"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"የጥሪ ድምጽ መጠን"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"አትረብሽን አዘምን"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"ትኩረት እንደሰጡ ለመቆየት ማሳወቂያዎችን ባሉበት አቁም"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"ይህ ባህሪ በዚህ መሣሪያ ላይ አይገኝም"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"ይህ ባህሪ አይገኝም"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ይህን ስልክ ያዘገየዋል"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"ሙሉ የGNSS መለኪያዎች አስገድድ"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ሁሉንም የGNSS ህብረ ፎቶዎችን እና ድግምግሞሾችን ያለምንም የሥራ ብስክሌት ግልቢያ ዱካቸውን ይከታተሉ"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"የበስተጀርባ እንቅስቃሴ ጅምሮችን ፍቀድ"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"የ<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ማሳወቂያ ሰርጦች። ሁሉንም ለማቀናበር መታ ያድርጉ።"</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"ውጽዓትን ቀይር"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"በአሁኑ ጊዜ በ<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ላይ በመጫወት ያለ"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ከዚህ አገልግሎት አቅራቢ የእርስዎ የደንበኝነት ምዝገባ ሊሰረዝ ይችላል። ተደጋጋሚ የደንበኝነት ምዝገባዎች አይሰረዙም። ለተጨማሪ መረጃ፣ ከእርስዎ አገልግሎት አቅራቢ ጋር ይፈትሹ።"</string>
</resources>
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
index af2931d..2341b0e 100644
--- a/res/values-ar/arrays.xml
+++ b/res/values-ar/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"بطاقة RUIM/شريحة SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"عام"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 6d04cd1..784f7a3 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -1004,10 +1004,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"اختيار شبكة مختلفة"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"تعذّرت إضافة جهاز."</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"تم العثور على جهاز."</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"جارٍ مشاركة Wi‑Fi مع هذا الجهاز…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"جارٍ الاتصال…"</string>
<string name="retry" msgid="6472609612090877557">"إعادة المحاولة"</string>
<string name="wifi_shared" msgid="844142443226926070">"المشاركة مع مستخدمي الجهاز الآخرين"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(لم يتم التغيير)"</string>
@@ -1135,11 +1133,6 @@
<item msgid="7715869266611010880">"الجوال"</item>
<item msgid="2838022395783120596">"Wi-Fi فقط"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"٢"</item>
- <item msgid="1171822231056612021">"١"</item>
- <item msgid="3194458950573886239">"٠"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"شبكة Wi-Fi مُفضّلة"</item>
<item msgid="5074515506087318555">"مفضَّل للجوّال"</item>
@@ -1148,10 +1141,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"الجوال"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"٢"</item>
- <item msgid="6200207341126893791">"١"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"عند تشغيل الاتصال عبر Wi-Fi، يمكن للهاتف توجيه المكالمات عبر شبكة Wi-Fi أو عبر مشغّل شبكة الجوّال، حسب تفضيلك وحسب الإشارة الأقوى. وقبل تفعيل هذه الميزة، يُرجى مراجعة الرسوم والتفاصيل الأخرى مع مشغّل شبكة الجوّال.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"عنوان الطوارئ"</string>
@@ -2134,8 +2123,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"دقيقتان"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"وقت القراءة"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"وقت اتخاذ الإجراء"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"اختَر مدة عرض الرسائل التي تحتاج إلى قراءتها، علمًا بأنّ عرضها يقتصر على فترة مؤقتة.\n\nلا تتوافق بعض التطبيقات مع هذا الإعداد."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"اختَر مدة عرض الرسائل التي تطلب منك اتخاذ إجراء، ولكن يقتصر عرضها على فترة مؤقتة.\n\nلا تتوافق بعض التطبيقات مع هذا الإعداد."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"مهلة اللمس مع الاستمرار"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"عكس اللون"</string>
@@ -3166,7 +3154,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"بلوتوث، NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"بلوتوث"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"التطبيقات والإشعارات"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"أذونات، تطبيقات تلقائية"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"لا تتوفر إمكانية الدخول إلى الإشعارات للتطبيقات في الملف الشخصي للعمل."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"الحسابات"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"لم تتم إضافة أي حسابات."</string>
@@ -3229,7 +3218,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"العرض على الشاشة، عرض شاشة التأمين"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"إشعار شاشة التأمين"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"وجه"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"بصمة الإصبع"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"تعتيم الشاشة، شاشة تعمل باللمس، بطارية، سطوع ذكي، سطوع ديناميكي"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"إضاءة خافتة للشاشة، سكون، بطارية، مهلة، تنبيه، عرض، شاشة، عدم نشاط"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"تدوير، قلب، دوران، عمودي، أفقي، اتجاه، رأسي، عرضي"</string>
@@ -3262,6 +3252,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"تم تعيين الرنين على صامت"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"مستوى صوت الرنين على ۸۰٪"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"مستوى صوت الوسائط"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"مستوى صوت المكالمة"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"مستوى صوت المنبّه"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"مستوى صوت الرنين"</string>
@@ -4523,10 +4515,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"تحديث إعداد \"الرجاء عدم الإزعاج\""</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"إيقاف الإشعارات مؤقتًا للحفاظ على التركيز"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"لا تتوفر هذه الميزة على هذا الجهاز"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"هذه الميزة ليست متوفرة."</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ستؤدي إلى إبطاء هذا الهاتف."</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"فرض كامل لقياسات GNSS"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"تتبّع جميع مجموعات وفترات تكرار GNSS التي لا تحتوي على دورات عمل"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"السماح ببدء الأنشطة في الخلفية"</string>
@@ -4748,6 +4738,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> قناة للإشعارات. انقُر لإدارتها."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"تبديل جهاز إخراج الصوت"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"يتمّ تشعيل الوسائط الآن على <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"قدّ يتمّ إلغاء اشتراكك مع مزوّد الخدمة هذا. ولن يتمّ إلغاء الاشتراكات التي يلزم دفع رسومها بصورة متكررة. لمزيد من المعلومات، عليك التحقُّق من ذلك الأمر مع مزوّد الخدمة."</string>
</resources>
diff --git a/res/values-as/arrays.xml b/res/values-as/arrays.xml
index b661f98..6256a49 100644
--- a/res/values-as/arrays.xml
+++ b/res/values-as/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"০"</item>
- <item msgid="8113210705878681550">"১"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"গোলকীয়"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"১০"</item>
- <item msgid="4187053702071521357">"৮"</item>
- <item msgid="5461421967189969022">"৯"</item>
- </string-array>
</resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 3fa98f1..c96171b 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -393,7 +393,7 @@
<string name="security_dashboard_summary_face" msgid="268234254306703218">"স্ক্ৰীণ লক, ফে’চ আনলক"</string>
<string name="security_dashboard_summary" msgid="6757421634477554939">"স্ক্ৰীণ লক, ফিংগাৰপ্ৰিণ্ট"</string>
<string name="security_dashboard_summary_no_fingerprint" msgid="8129641548372335540">"স্ক্ৰীণ লক"</string>
- <string name="security_settings_face_preference_summary" msgid="1290187225482642821">"চেহেৰা যোগ কৰা হ’ল"</string>
+ <string name="security_settings_face_preference_summary" msgid="1290187225482642821">"চেহেৰা যোগ কৰা হ\'ল"</string>
<string name="security_settings_face_preference_summary_none" msgid="5460349732790152186">"চেহেৰা প্ৰমাণীকৰণ ছেট আপ কৰিবলৈ টিপক"</string>
<string name="security_settings_face_preference_title" msgid="7074548721778680481">"চেহেৰা প্ৰমাণীকৰণ"</string>
<string name="security_settings_face_enroll_introduction_accessibility" msgid="7784083491315229721">"সাধ্য সুবিধা ছেট আপ ব্যৱহাৰ কৰক"</string>
@@ -408,7 +408,7 @@
<string name="security_settings_face_enroll_repeat_title" msgid="4019853239039918762">"আপোনাৰ মুখমণ্ডলটো বৃত্তৰ ভিতৰলৈ আনক"</string>
<string name="security_settings_face_enroll_enrolling_skip" msgid="1933553314312349529">"এইটো পিছত কৰিব"</string>
<string name="face_add_max" msgid="4408683751143942949">"আপুনি <xliff:g id="COUNT">%d</xliff:g>লৈকে মুখমণ্ডল যোগ কৰিব পাৰে"</string>
- <string name="face_intro_error_max" msgid="160022811747660581">"আপুনি অনুমোদিত সৰ্বাধিক সংখ্যক ফিংগাৰপ্ৰিণ্টবোৰ যোগ কৰিছে"</string>
+ <string name="face_intro_error_max" msgid="160022811747660581">"আপুনি অনুমোদিত সৰ্বাধিক সংখ্যক চেহেৰা যোগ কৰিছে"</string>
<string name="face_intro_error_unknown" msgid="6367721696446677261">"আৰু বেছি চেহেৰা যোগ কৰিব নোৱাৰি"</string>
<string name="security_settings_face_enroll_error_dialog_title" msgid="2869110702072655323">"অন্তৰ্ভুক্ত কৰা কাৰ্য সম্পূৰ্ণ নহ\'ল"</string>
<string name="security_settings_face_enroll_dialog_ok" msgid="2980238861223265089">"ঠিক আছে"</string>
@@ -570,7 +570,7 @@
<string name="face_unlock_set_unlock_pattern" msgid="8792301636367000123">"চেহেৰা প্ৰমাণীকৰণ + আৰ্হি"</string>
<string name="face_unlock_set_unlock_pin" msgid="1196620299595657479">"চেহেৰা প্ৰমাণীকৰণ + পিন"</string>
<string name="face_unlock_set_unlock_password" msgid="223117276773907474">"চেহেৰা প্ৰমাণীকৰণ + পাছৱৰ্ড"</string>
- <string name="face_unlock_skip_face" msgid="6362883392838482791">"চেহেৰা প্ৰমাণীকৰণ অবিহনেই অব্যাহত ৰাখক"</string>
+ <string name="face_unlock_skip_face" msgid="6362883392838482791">"চেহেৰা প্ৰমাণীকৰণ অবিহনেই অব্য়াহত ৰাখক"</string>
<string name="face_unlock_title" msgid="9042382084472444316">"আপুনি নিজৰ চেহেৰা ব্যৱহাৰ কৰি আপোনাৰ ফ\'নৰ লক খুলিব পাৰে। সুৰক্ষাৰ বাবে, এই বিকল্পটোক বেক আপ স্ক্ৰীণ লকৰ প্ৰয়োজন।"</string>
<string name="unlock_set_unlock_disabled_summary" msgid="2051593894736282302">"প্ৰশাসক, এনক্ৰিপশ্বন নীতি বা ক্ৰেডেনশ্বিয়েল সঞ্চয়াগাৰৰ দ্বাৰা অক্ষম কৰা হৈছে"</string>
<string name="unlock_set_unlock_mode_off" msgid="5881952274566013651">"নাই"</string>
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"বেলেগ এটা নেটৱৰ্ক বাছনি কৰক"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"ডিভাইচটো যোগ কৰিব পৰা নগ’ল"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"ডিভাইচ বিচাৰি পোৱা গৈছে"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"এই ডিভাইচটোৰ সৈতে ৱাই-ফাই শ্বেয়াৰ কৰি থকা হৈছে…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"সংযোগ কৰি থকা হৈছে…"</string>
<string name="retry" msgid="6472609612090877557">"আকৌ চেষ্টা কৰক"</string>
<string name="wifi_shared" msgid="844142443226926070">"ডিভাইচৰ অন্য ব্যৱহাৰকাৰীৰ সৈতে শ্বেয়াৰ কৰক"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(সালসলনি নাই)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"ম’বাইল"</item>
<item msgid="2838022395783120596">"ৱাই-ফাই মাত্ৰ"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"২"</item>
- <item msgid="1171822231056612021">"১"</item>
- <item msgid="3194458950573886239">"০"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"ৱাই-ফাইৰ অগ্ৰাধিকাৰ"</item>
<item msgid="5074515506087318555">"ম\'বাইলক অগ্ৰাধিকাৰ দিয়া হৈছে"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"ৱাই-ফাই"</item>
<item msgid="1118703915148755405">"ম’বাইল"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"২"</item>
- <item msgid="6200207341126893791">"১"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"ৱাই-ফাই কলিং অন হৈ থকাৰ সময়ত, আপোনাৰ অগ্ৰাধিকাৰ অনুসৰি আৰু ছিগনেলৰ ক্ষমতাক ভিত্তি কৰি, আপোনাৰ ফ’নটোৱে ৱাই-ফাই নেটৱৰ্ক বা আপোনাৰ বাহকৰ নেটৱৰ্কৰ যোগেদি কলবোৰ পঠিয়াব পাৰে৷ এই সুবিধাটো অন কৰাৰ পূৰ্বে, মাছুল আৰু অন্যান্য সবিশেষ জানিবলৈ আপোনাৰ বাহকৰ সৈতে সম্পৰ্ক কৰক৷<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"জৰূৰীকালীন ঠিকনা"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"২ মিনিট"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"বার্তা পঢ়িবলৈ প্ৰয়োজনীয় সময়"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"কার্যপন্থা লোৱাৰ সময়"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"আপুনি পঢ়িব খোজা বাৰ্তা যিবোৰ কেৱল সাময়িকভাৱেহে দৃশ্যমান হয়, সেইবোৰ কিমান সময় দেখুৱাব লাগিব বাছনি কৰক।\n\nসকলো এপে এই ছেটিংটো সমৰ্থন নকৰে।"</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"আপোনাক কোনো কার্যপন্থা গ্ৰহণ কৰিবলৈ কোৱা অস্থায়ীভাৱে দৃশ্যমান হোৱা বার্তাসমূহ কিমান সময় প্ৰদর্শন কৰিব খোজে সেয়া বাছনি কৰক।\n\nএই ছেটিংসমূহে প্ৰতিটো এপতে কাম নকৰে।"</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"স্পৰ্শ কৰি হেঁচি ধৰি থকাৰ সময়"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"ৰং বিপৰীতকৰণ"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ব্লুটুথ, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ব্লুটুথ"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"এপ্ আৰু জাননীসমূহ"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"অনুমতি, ডিফ\'ল্ট এপসমূহ"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"কৰ্মস্থলৰ প্ৰ’ফাইলত থকা এপৰ বাবে জাননী সম্পৰ্কীয় এক্সেছ নাথাকে।"</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"একাউণ্টসমূহ"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"কোনো একাউণ্ট যোগ কৰা হোৱা নাই"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"স্তিমিত ডিছপ্লে’, বন্ধ স্ক্ৰীণৰ ডিছপ্লে’"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"লক স্ক্ৰীণৰ জাননী"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"চেহেৰা"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ফিংগাৰপ্ৰিণ্ট"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"অনুজ্জ্বল স্ক্ৰীণ, টাচ্চস্ক্ৰীণ, বেটাৰি, স্মার্ট উজ্জ্বলতা, গতিশীল উজ্জ্বলতা"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"অনুজ্জ্বল স্ক্ৰীণ, নিদ্ৰা, বেটাৰি, টাইমআউট, মনোযোগ, ডিছপ্লে’, স্ক্ৰীণ, নিষ্ক্ৰিয়তা"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"ঘূৰোৱা, লুটিওৱা, ঘূৰ্ণন, প\'ৰ্ট্ৰেইট, লেণ্ডস্কেইপ, দিশ, উলম্ব, অনুভূমিক"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"ৰিংগাৰ নীৰৱ হিচাপে ছেট কৰা হৈছে"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"ৰিঙৰ ভলিউম ৮০%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"মিডিয়াৰ ভলিউম"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"কলৰ ভলিউম"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"এলাৰ্মৰ ভলিউম"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"ৰিঙৰ ভলিউম"</string>
@@ -3521,7 +3513,7 @@
<string name="encryption_interstitial_message_password_for_fingerprint" msgid="5560954719370251702">"আপোনাৰ ডিভাইচটো আনলক কৰিবলৈ ফিংগাৰপ্ৰিণ্ট ব্যৱহাৰ কৰাৰ উপৰি, আপুনি ডিভাইচটো আৰু অধিক সুৰক্ষিত কৰিবলৈ ইয়াক পাছৱৰ্ড দিলেহে ষ্টাৰ্ট আপ হোৱা কৰিব পাৰে। ডিভাইচটো ষ্টাৰ্ট হোৱাৰ আগতে ই এলাৰ্মৰ লগতে কল, বাৰ্তা বা জাননী আদি লাভ কৰিব নোৱাৰিব।\n\nইয়ে ডিভাইচ হেৰালে বা চুৰি হ\'লে ডেটা সুৰক্ষা দিয়াত সহায় কৰে। আপোনাৰ ডিভাইচ ষ্টাৰ্ট হোৱাৰ সময়ত পাছৱৰ্ড দিয়াটো দৰকাৰী কৰেনে?"</string>
<string name="encryption_interstitial_message_pin_for_face" msgid="2017438765366716760">"আপোনাৰ ডিভাইচটো আনলক কৰিবলৈ আপোনাৰ চেহেৰা ব্যৱহাৰ কৰাৰ উপৰি, আপুনি ডিভাইচটো আৰু অধিক সুৰক্ষিত কৰিবলৈ ইয়াক পিন দিলেহে ষ্টাৰ্ট আপ হোৱা কৰিব পাৰে। ডিভাইচটো ষ্টাৰ্ট হোৱাৰ আগতে ই এলাৰ্মৰ লগতে কল, বাৰ্তা বা জাননী আদি লাভ কৰিব নোৱাৰিব।\n\nএই সুবিধায়ে ডিভাইচ হেৰালে বা চুৰি হ\'লে ডেটা সুৰক্ষিত কৰাত সহায় কৰে। আপোনাৰ ডিভাইচ ষ্টাৰ্ট হোৱাৰ সময়ত পিন দিয়াটো দৰকাৰী কৰেনে?"</string>
<string name="encryption_interstitial_message_pattern_for_face" msgid="3551827507967661552">"আপোনাৰ ডিভাইচটো আনলক কৰিবলৈ আপোনাৰ চেহেৰা ব্যৱহাৰ কৰাৰ উপৰি, আপুনি ডিভাইচটো আৰু অধিক সুৰক্ষিত কৰিবলৈ ইয়াক আৰ্হি দিলেহে ষ্টাৰ্ট আপ হোৱা কৰিব পাৰে। ডিভাইচটো ষ্টাৰ্ট হোৱাৰ আগতে ই এলাৰ্মৰ লগতে কল, বাৰ্তা বা জাননী আদি লাভ কৰিব নোৱাৰিব।\n\nএই সুবিধায়ে ডিভাইচ হেৰালে বা চুৰি হ\'লে ডেটা সুৰক্ষিত কৰাত সহায় কৰে। আপোনাৰ ডিভাইচ ষ্টাৰ্ট হোৱাৰ সময়ত আৰ্হি দিয়াটো দৰকাৰী কৰেনে?"</string>
- <string name="encryption_interstitial_message_password_for_face" msgid="3452793542112093614">"আপোনাৰ ডিভাইচটো আনলক কৰিবলৈ আপোনাৰ চেহেৰা ব্যৱহাৰ কৰাৰ উপৰি, আপুনি ডিভাইচটো আৰু অধিক সুৰক্ষিত কৰিবলৈ ইয়াক পাছৱৰ্ড দিলেহে ষ্টাৰ্ট আপ হোৱা কৰিব পাৰে। ডিভাইচটো ষ্টাৰ্ট হোৱাৰ আগতে ই এলাৰ্মৰ লগতে কল, বাৰ্তা বা জাননী আদি লাভ কৰিব নোৱাৰিব।\n\nএই সুবিধায়ে ডিভাইচ হেৰালে বা চুৰি হ\'লে ডেটা সুৰক্ষিত কৰাত সহায় কৰে। আপোনাৰ ডিভাইচ ষ্টাৰ্ট হোৱাৰ সময়ত চেহেৰা দিয়াটো দৰকাৰী কৰেনে?"</string>
+ <string name="encryption_interstitial_message_password_for_face" msgid="3452793542112093614">"আপোনাৰ ডিভাইচটো আনলক কৰিবলৈ আপোনাৰ চেহেৰা ব্যৱহাৰ কৰাৰ উপৰি, আপুনি ডিভাইচটো আৰু অধিক সুৰক্ষিত কৰিবলৈ ইয়াক পাছৱৰ্ড দিলেহে ষ্টাৰ্ট আপ হোৱা কৰিব পাৰে। ডিভাইচটো ষ্টাৰ্ট হোৱাৰ আগতে ই এলাৰ্মৰ লগতে কল, বাৰ্তা বা জাননী আদি লাভ কৰিব নোৱাৰিব।\n\nএই সুবিধায়ে ডিভাইচ হেৰালে বা চুৰি হ\'লে ডেটা সুৰক্ষিত কৰাত সহায় কৰে। আপোনাৰ ডিভাইচ ষ্টাৰ্ট হোৱাৰ সময়ত পাছৱৰ্ড দিয়াটো দৰকাৰী কৰেনে?"</string>
<string name="encryption_interstitial_yes" msgid="4439509435889513411">"হয়"</string>
<string name="encryption_interstitial_no" msgid="8935031349097025137">"নহয়"</string>
<string name="restricted_true_label" msgid="4761453839409220473">"সীমিত"</string>
@@ -4222,10 +4214,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"অসুবিধা নিদিব-ক আপডে’ট কৰক"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"মনোযোগ বৰ্তাই ৰাখিবলৈ জাননী বন্ধ কৰক"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"এই ডিভাইচটোত এই সুবিধাটো উপলব্ধ নহয়"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"এই সুবিধাটো উপলব্ধ নহয়"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ইয়ে এই ফ’নটো মন্থৰ কৰিব"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"সম্পূৰ্ণ জিএনএছএছ পৰিমাপ প্ৰয়োগ কৰক"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"কোনো উপযোগীতা অনুপাতৰ সহায় নোলোৱাকৈ GNSS কনষ্টেলেশ্বন আৰু ফ্ৰিকুৱেন্সী নিৰীক্ষণ কৰক"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"নেপথ্যৰ কাৰ্যকলাপ আৰম্ভ কৰাত অনুমতি দিয়ে"</string>
@@ -4432,6 +4422,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>টা জাননী চ্চেনেল। সকলো পৰিচালনা কৰিবলৈ টিপক।"</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"আউটপুট সলনি কৰক"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"বৰ্তমান <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ত প্লে’ হৈ আছে"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"এই প্ৰদানকাৰীৰ সৈতে থকা আপোনাৰ গ্ৰাহকভুক্তি বাতিল কৰা হ’ব পাৰে। পুনৰাবৃত্তি হোৱা গ্ৰাহকভুক্তি বাতিল কৰা নহ’ব। অধিক তথ্যৰ বাবে আপোনাৰ প্ৰদানকাৰীৰ সৈতে যোগাযোগ কৰক।"</string>
</resources>
diff --git a/res/values-az/arrays.xml b/res/values-az/arrays.xml
index 8355665..c594fc0 100644
--- a/res/values-az/arrays.xml
+++ b/res/values-az/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Qlobal"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index a658ecf..099ea10 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Fərqli şəbəkə seçin"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Cihaz əlavə etmək mümkün olmadı"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Cihaz tapıldı"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi bu cihazla paylaşılır…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Qoşulur..."</string>
<string name="retry" msgid="6472609612090877557">"Yenidən cəhd edin"</string>
<string name="wifi_shared" msgid="844142443226926070">"Digər cihaz istifadəçiləri ilə paylaşın"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(dəyişilməyən)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobil"</item>
<item msgid="2838022395783120596">"Yalnız Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi tərcih edilir"</item>
<item msgid="5074515506087318555">"Mobil cihaz tərcih olunur"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobil"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi zəngi aktiv olan zaman tərcihinizdən və siqnalın gücündən asılı olaraq telefon zəngləri Wi-Fi və ya mobil şəbəkə ilə yönləndirə bilər. Bu funksiyanı aktiv etməzdən əvvəl operator tarifləri və digər məlumatları öyrənin. <xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Fövqəladə Ünvan"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 dəqiqə"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Oxumaq vaxtıdır"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Əməliyyatın icrası vaxtıdır"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Oxunması vacib, lakin müvəqqəti olaraq görünən mesajların görünmə müddətini seçin.\n\nBütün tətbiqlər bu ayarı dəstəkləmir."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Əməliyyatın icrasını tələb edən, lakin müvəqqəti görünən mesajların görünmə müddətini seçin.\n\nBu ayarı bütün tətbiqlər dəstəkləmir."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Toxunma və basılı saxlama müddəti"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Rəng inversiyası"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Tətbiq və bildirişlər"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"İcazələr, defolt tətbiqlər"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Bildiriş girişi iş profilindəki tətbiqlər üçün əlçatan deyil."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Hesablar"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Hesab əlavə edilməyib"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient displey, Kilid ekranı"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"kilid ekranı bildirişi"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"üz"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"barmaq izi"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"qara ekran, sensor ekran, batareya, yeni parlaqlıq, dinamik parlaqlıq"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"qara ekran, yuxu rejimi, batareya, fasilə, diqqət, displey, ekran, fəaliyyətsizlik"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"fırladın, çevirin, fırlatma, portret, mənzərə, orientir, vertikal, horizontal"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Zəng səsi səssiz rejimdədir"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Zəng səsi 80% faizdir"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Media həcmi"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Zəng səsi"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Siqnal səsi həcmi"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Zəng həcmi"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"\"Narahat Etməyin\" rejimini yeniləyin"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Foksulanmağa davam etmək üçün bildirişləri dayandırın"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Bu funksiya artıq bu cihazda əlçatan deyil"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Bu funksiya əlçatan deyil"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Bu telefonun sürətini yavaşladacaq"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Tam GNSS ölçülərini icra edin"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"İş sistemi olmadan bütün GNSS qruplaşmaları və tezliklərini izləyin"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Arxa fon fəaliyyətinin başlamasına icazə verin"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> bildiriş kanalı. Hamısını idarə etmək üçün klikləyin."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Çıxış açarı"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Hazırda <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazında oxudulur"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Bu provayderə abunəliyiniz ləğv edilə bilər. Təkrarlanan abunəliklər ləğv edilməyəcək. Ətraflı məlumat üçün provayder ilə əlaqə saxlayın."</string>
</resources>
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
index 2a092f7..cac5fa5 100644
--- a/res/values-b+sr+Latn/arrays.xml
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Globalna"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 6a253bd..364c6b6 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -956,10 +956,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Odaberi drugu mrežu"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Dodavanje uređaja nije uspelo"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Pronađen je uređaj"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Deli se Wi‑Fi sa ovim uređajem…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Povezuje se…"</string>
<string name="retry" msgid="6472609612090877557">"Probaj ponovo"</string>
<string name="wifi_shared" msgid="844142443226926070">"Deli sa drugim korisnicima uređaja"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nepromenjeno)"</string>
@@ -1084,11 +1082,6 @@
<item msgid="7715869266611010880">"Mobilni podaci"</item>
<item msgid="2838022395783120596">"Samo Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Prednost ima Wi-Fi"</item>
<item msgid="5074515506087318555">"Želim mobilne podatke"</item>
@@ -1097,10 +1090,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobilni podaci"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2."</item>
- <item msgid="6200207341126893791">"1."</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kada je pozivanje preko Wi-Fi-ja uključeno, telefon može da preusmerava pozive preko Wi-Fi mreža ili mreže mobilnog operatera u zavisnosti od toga koje ste podešavanje izabrali i koji signal je jači. Pre nego što uključite ovu funkciju, informišite se kod mobilnog operatera o naknadama i drugim detaljima.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Adresa za hitne slučajeve"</string>
@@ -2074,8 +2063,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuta"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Vreme za čitanje"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Vreme za reagovanje"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Odaberite koliko dugo će se prikazivati poruke koje treba da pročitate, ali su vidljive samo privremeno.\n\nOvo podešavanje ne podržavaju sve aplikacije."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Odaberite koliko dugo će se prikazivati poruke koje traže da reagujete, ali su vidljive samo privremeno.\n\nOvo podešavanje ne podržavaju sve aplikacije."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Odlaganje dodira i zadržavanja"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inverzija boja"</string>
@@ -3046,7 +3034,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikacije i obaveštenja"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Dozvole, podrazumevane aplikacije"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Pristup obaveštenjima nije dostupan za aplikacije na radnom profilu."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Nalozi"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nijedan nalog nije dodat"</string>
@@ -3109,7 +3098,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambijentalni ekran, prikaz na zaključanom ekranu"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"obaveštenje na zaključanom ekranu"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"lice"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"digitalni otisak"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"zatamniti ekran, dodirni ekran, baterija, pametna svetlina, dinamička svetlina"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"zatamnjenje ekrana, spavanje, baterija, vremensko ograničenje, pažnja, prikaz, ekran, neaktivnost"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"rotiraj, obrni, rotacija, uspravno, vodoravno, položaj, vertikalno, horizontalno"</string>
@@ -3142,6 +3132,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Zvono je podešeno na nečujno"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Jačina zvona je 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Jačina zvuka medija"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Jačina zvuka poziva"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Jačina zvuka alarma"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Jačina zvuka zvona"</string>
@@ -4295,10 +4287,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Ažurirajte režim Ne uznemiravaj"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Pauzirajte obaveštenja radi bolje koncentracije"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Ova funkcija nije dostupna na ovom uređaju."</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Ova funkcija nije dostupna"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Usporiće ovaj telefon"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Prinudno pokreni puna GNSS merenja"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Prati sve GNSS konstalacije i frekvencije bez ciklusa rada"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Dozvoli pokretanje aplikacija u pozadini"</string>
@@ -4508,6 +4498,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> kanal za obaveštenja. Dodirnite da biste upravljali svim."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Promenite izlaz"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Trenutno se pušta na uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Pretplata kod ovog dobavljača usluge je možda otkazana. Aktivne pretplate neće biti otkazane. Više informacija potražite od dobavljača usluge."</string>
</resources>
diff --git a/res/values-be/arrays.xml b/res/values-be/arrays.xml
index 8aadcd4..cce47d4 100644
--- a/res/values-be/arrays.xml
+++ b/res/values-be/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"R-UIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Глабальная"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 073d9dd..59ae447 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -972,10 +972,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Выбраць іншую сетку"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Не ўдалося дадаць прыладу"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Прылада знойдзена"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi абагульваецца з гэтай прыладай…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Ідзе падключэнне…"</string>
<string name="retry" msgid="6472609612090877557">"Паўтарыць"</string>
<string name="wifi_shared" msgid="844142443226926070">"Падзяліцца з іншымі карыстальнікамі прылады"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(не зменена)"</string>
@@ -1101,11 +1099,6 @@
<item msgid="7715869266611010880">"Мабільная сетка"</item>
<item msgid="2838022395783120596">"Толькі Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Прыярытэт Wi-Fi"</item>
<item msgid="5074515506087318555">"Прыярытэт мабільнай сеткі"</item>
@@ -1114,10 +1107,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Мабільная сетка"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Калі ўключана Wi-Fi-тэлефанія, ваш тэлефон можа накіроўваць выклікі праз сеткі Wi-Fi або сетку вашага аператара, у залежнасці ад вашых налад і таго, які сігнал мацнейшы. Перад уключэннем гэтай функцыі спытайце ў вашага аператара наконт аплаты і запытайце іншую падрабязную інфармацыю.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Экстранны адрас"</string>
@@ -2095,8 +2084,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 хвіліны"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Час на чытанне"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Час на выкананне дзеяння"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Выберыце, колькі часу паказваць часова бачныя паведамленні, якія трэба прачытаць.\n\nНе ўсе праграмы падтрымліваюць такую наладу."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Выберыце, колькі часу паказваць часова бачныя паведамленні з заклікамі да дзеянняў.\n\nНе ўсе праграмы падтрымліваюць такую наладу."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Затрымка пры націсканні і ўтрыманні"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Інверсія колеру"</string>
@@ -3087,7 +3075,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Праграмы і апавяшчэнні"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Дазволы, стандартныя праграмы"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Праграмы ў працоўным профілі не маюць доступу да апавяшчэнняў."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Уліковыя запісы"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Няма ўліковых запісаў"</string>
@@ -3150,7 +3139,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Аўтаматычнае ўключэнне экрана, экран блакіроўкі"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"апавяшчэнне экрана блакіроўкі"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"твар"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"адбітак пальца"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"зацямненне экрана, сэнсарны экран, акумулятар, разумная яркасць, дынамічная яркасць"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"цёмны экран, рэжым сну, акумулятар, час чакання, увага, дысплэй, экран, бяздзейнасць"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"павярнуць, пераключыцца, паварот, кніжная, альбомная, арыентацыя, вертыкальная, гарызантальная"</string>
@@ -3183,6 +3173,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Для гуку выкліку заданы бязгучны рэжым"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Гучнасць званка – 80 %"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Гучнасць медыя"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Гучнасць выкліку"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Гучнасць будзільніка"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Гучнасць выкліку"</string>
@@ -4373,10 +4365,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Абнавіце рэжым \"Не турбаваць\""</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Прыпыніце апавяшчэнні, каб яны не адцягвалі ўвагу"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Гэта функцыя недаступная на гэтай прыладзе"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Гэта функцыя недаступная"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Праца гэтага тэлефона будзе запаволена"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Прымусова правесці поўныя вымярэнні GNSS"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Адсочваць усе групы і частоты GNSS з выключаным працоўным цыклам"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Дазволіць фонавую актыўнасць"</string>
@@ -4590,6 +4580,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Каналаў апавяшчэння: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Каб кіраваць усімі, націсніце тут."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Пераключыць вывад"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Зараз прайграецца на прыладзе <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Ваша падпіска ў гэтага аператара можа быць скасавана. Перыядычныя падпіскі не будуць скасаваны. Каб атрымаць дадатковую інфармацыю, звярніцеся да свайго аператара."</string>
</resources>
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
index 0bd7d6b..05c88cc 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Глобална мрежа"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 8379211..bad6898 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Избиране на друга мрежа"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Устройството не можа да се добави"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Открито е устройство"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi-Fi мрежата се споделя с това устройство…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Свързва се…"</string>
<string name="retry" msgid="6472609612090877557">"Нов опит"</string>
<string name="wifi_shared" msgid="844142443226926070">"Споделяне с другите потребители на устройството"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(непроменени)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Мобилни данни"</item>
<item msgid="2838022395783120596">"Само Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Предпочита се Wi-Fi"</item>
<item msgid="5074515506087318555">"Предпочитат се мобилни данни"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Мобилни данни"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Когато функцията „Обаждания през Wi-Fi“ е включена, телефонът ви може да маршрутизира обажданията през Wi-Fi или мрежата за мобилни данни на оператора ви в зависимост от предпочитанието ви и това, кой сигнал е по-силен. Преди да я включите, обърнете се към оператора си относно таксите и други подробности. <xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Адрес за спешни случаи"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 минути"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Време за четене"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Време за предприемане на действие"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Изберете колко дълго да се показват съобщенията, които трябва да прочетете, но са видими само временно.\n\nНе всички приложения поддържат тази настройка."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Изберете колко дълго да се показват съобщенията, които изискват да предприемете действие, но са видими само временно.\n\nНе всички приложения поддържат тази настройка."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Забавяне при докосване/задържане"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Инвертиране на цветовете"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, КБП"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Приложения и известия"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Разрешения, приложения по подразбиране"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Достъпът до известията не е налице за приложенията в служебния потребителски профил."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Профили"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Няма добавени профили"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Дисплей, открояващ важни неща, дисплей на заключения екран"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"известие на заключения екран"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"лице"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"отпечатък"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"затъмняване на екрана, сензорен екран, батерия, интелигентна яркост, динамична яркост"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"затъмняване на екрана, спящ режим, батерия, време за изчакване, внимание, дисплей, екран, неактивност"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"завъртане, обръщане, завъртане, вертикален режим, хоризонтален режим, ориентация, вертикално, хоризонтално"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Зададен е тих режим при звънене"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Сила на звука при звънене: 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Сила на звука за мултимедия"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Сила на звука за обаждания"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Сила на звука на будилника"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Сила на звука при звънене"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Актуализиране на режима „Не безпокойте“"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Поставете известията на пауза, за да не ви разсейват"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Тази функция не е налице на устройството"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Тази функция не е налице"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Тя ще забави телефона ви"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Налагане на пълно проследяване на измерванията с GNSS"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Проследяване на всички констелации и честоти на GNSS без използване на коефициент на запълване"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Разрешаване на стартирания на активност на заден план"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> канала за известия. Докоснете, за да управлявате всички."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Превключване на изхода"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Понастоящем се възпроизвежда на <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Абонаментът ви към този доставчик може да е анулиран. Периодичните абонаменти няма да бъдат анулирани. За още информация се обърнете към доставчика си."</string>
</resources>
diff --git a/res/values-bn/arrays.xml b/res/values-bn/arrays.xml
index 8b75a1a..79a542e 100644
--- a/res/values-bn/arrays.xml
+++ b/res/values-bn/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/সিম"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"০"</item>
- <item msgid="8113210705878681550">"১"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"গ্লোবাল"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"১০"</item>
- <item msgid="4187053702071521357">"৮"</item>
- <item msgid="5461421967189969022">"৯"</item>
- </string-array>
</resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 387026a..740c40e 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -944,10 +944,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"অন্য নেটওয়ার্ক বেছে নিন"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"ডিভাইস যোগ করা যায়নি"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"ডিভাইস পাওয়া গেছে"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"এই ডিভাইসটি ওয়াই-ফাই-এর সাথে কানেক্ট করা আছে…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"কানেক্ট হচ্ছে…"</string>
<string name="retry" msgid="6472609612090877557">"আবার করুন"</string>
<string name="wifi_shared" msgid="844142443226926070">"অন্য ডিভাইস ব্যবহারকারীদের সাথে শেয়ার করুন"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(অপরিবর্তিত)"</string>
@@ -1071,11 +1069,6 @@
<item msgid="7715869266611010880">"মোবাইল"</item>
<item msgid="2838022395783120596">"শুধুমাত্র ওয়াই-ফাই"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"২"</item>
- <item msgid="1171822231056612021">"১"</item>
- <item msgid="3194458950573886239">"০"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"ওয়াই-ফাই ব্যবহার করুন"</item>
<item msgid="5074515506087318555">"পছন্দের মোবাইল"</item>
@@ -1084,10 +1077,6 @@
<item msgid="6132150507201243768">"ওয়াই-ফাই"</item>
<item msgid="1118703915148755405">"মোবাইল"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"২"</item>
- <item msgid="6200207341126893791">"১"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi কলিং চালু থাকার সময়ে, আপনার পছন্দ এবং কোন সিগন্যাল বেশি শক্তিশালী তার উপর নির্ভর করে আপনার ফোন ওয়াই-ফাই নেটওয়ার্ক বা আপনার পরিষেবা প্রদানকারীর নেটওয়ার্কের মাধ্যমে আপনার কলের রুট তৈরি করে। এই বৈশিষ্ট্যটি চালু করার আগে, আপনার পরিষেবা প্রদানকারীর থেকে ফি এবং অন্যান্য বিষয় সম্বন্ধে জেনে নিন।<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"জরুরি ঠিকানা"</string>
@@ -2058,8 +2047,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"২ মিনিট"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"পড়ার সময়"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"অ্যাকশন নেওয়ার সময় হয়েছে"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"আপনার পড়ার মেসেজ কতক্ষণ দেখা তা বেছে নিন সেগুলি সাময়িকভাবে দেখা যাবে।\n\nসব অ্যাপ এই সেটিংসে কাজ করে না।"</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"যে মেসেজ আপনাকে অ্যাকশন নিতে বলবে সেই মেসেজ কতক্ষণ দেখা যাবে তা আপনি ঠিক করতে পারেন, তবে তা শুধুমাত্র সাময়িকভাবে সেগুলি দেখা যায়।\n\nসব অ্যাপ এই সেটিংসে কাজ করে না।"</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"স্পর্শ করে ধরে রাখায় বিলম্ব"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"রঙ বিলোমক্রিয়া"</string>
@@ -3014,7 +3002,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ব্লুটুথ, এনএফসি"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ব্লুটুথ"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"অ্যাপ ও বিজ্ঞপ্তি"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"অনুমতিগুলি, ডিফল্ট অ্যাপ্স"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"কাজের প্রোফাইলে অ্যাপের জন্য বিজ্ঞপ্তি অ্যাক্সেস উপলভ্য নয়।"</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"অ্যাকাউন্ট"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"কোনও অ্যাকাউন্ট যোগ করা হয়নি"</string>
@@ -3077,7 +3066,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"অ্যাম্বিয়েন্ট ডিসপ্লে, লক স্ক্রিন ডিসপ্লে"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"লক স্ক্রিন বিজ্ঞপ্তি"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ফেস"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"আঙ্গুলের ছাপ"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"অনুজ্জ্বল স্ক্রিন, টাচস্ক্রিন, ব্যাটারি, স্মার্ট উজ্জ্বলতা, ডায়নামিক উজ্জ্বলতা"</string>
<!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
<skip />
@@ -3111,6 +3101,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"রিঙ্গারকে নীরব অবস্থায় সেট করা হয়েছে"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"রিং ভলিউম ৮০% তে রয়েছে"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"মিডিয়া ভলিউম"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"কলের ভলিউম"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"অ্যালার্মের ভলিউম"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"রিং ভলিউম"</string>
@@ -4231,10 +4223,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"\'বিরক্ত করবেন না\' মোডটি আপডেট করুন"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"যাতে বিরক্ত হতে না হয় তার জন্য বিজ্ঞপ্তি পজ করুন"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"এই বৈশিষ্ট্যটি এই ডিভাইসে উপলব্ধ নেই"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"এই ফিচারটি উপলভ্য নেই"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"এই ফিচারটি ব্যবহার করলে ফোন ঠিকভাবে কাজ নাও করতে পারে"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"GnssMeasurement সম্পূর্ণভাবে ট্র্যাক করুন"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ডিউটি-সাইক্লিং বাদে সমস্ত কন্সটেলেশন এবং ফ্রিকোয়েন্সি ট্র্যাক করুন"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"ব্যাকগ্রাউন্ড অ্যাক্টিভিটি চালু করার অনুমতি দিন"</string>
@@ -4438,6 +4428,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>টি বিজ্ঞপ্তির চ্যানেল। সবগুলি ম্যানেজ করতে ট্যাপ করুন।"</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"আউটপুট পরিবর্তন করুন"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-এ চালানো হচ্ছে"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"এই পরিষেবা প্রদানকারীরতে আপনার সাবস্ক্রিপশন বাতিল হয়ে যেতে পারে। পুনরাবৃত্তি হওয়া সাবস্ক্রিপশন বাতিল করা যাবে না। আরও জানতে এই পরিষেবা প্রদানকারীর সাথে যোগাযোগ করুন।"</string>
</resources>
diff --git a/res/values-bs/arrays.xml b/res/values-bs/arrays.xml
index 8afcb52..e8b24e8 100644
--- a/res/values-bs/arrays.xml
+++ b/res/values-bs/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Globalno"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 30dd0f2..9c449f5 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -956,10 +956,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Odaberi drugu mrežu"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Uređaj se ne može dodati"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Uređaj je pronađen"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Dijeljenje Wi-Fi mreže s ovim uređajem…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Povezivanje…"</string>
<string name="retry" msgid="6472609612090877557">"Pokušaj ponovo"</string>
<string name="wifi_shared" msgid="844142443226926070">"Dijeli s ostalim korisnicima uređaja"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nepromijenjeno)"</string>
@@ -1084,11 +1082,6 @@
<item msgid="7715869266611010880">"Mobilna mreža"</item>
<item msgid="2838022395783120596">"Samo WiFi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Preferira se WiFi"</item>
<item msgid="5074515506087318555">"Preferira se mobilna mreža"</item>
@@ -1097,10 +1090,6 @@
<item msgid="6132150507201243768">"WiFi"</item>
<item msgid="1118703915148755405">"Mobilna mreža"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kada je opcija Pozivanje putem WiFi-ja uključena, telefon može preusmjeravati pozive putem WiFi mreža ili mreže vašeg operatera, u zavisnosti od toga kakve su vaše postavke i koji signal je jači. Prije nego što uključite ovu funkciju, raspitajte se o naknadi i drugim informacijama kod operatera.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Adresa za hitne slučajeve"</string>
@@ -2074,8 +2063,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minute"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Vrijeme za čitanje"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Vrijeme za poduzimanje radnje"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Odaberite koliko dugo želite da se poruke koje trebate pročitati prikazuju. One će biti vidljive samo privremeno.\n\nOvu postavku ne podržavaju sve aplikacije."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Odaberite koliko dugo želite da se poruke koje od vas zahtijevaju da poduzmete radnju prikazuju, a koje će biti vidljive samo privremeno.\n\nOvu postavku ne podržavaju sve aplikacije."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Odgoda za dodirivanje i držanje"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inverzija boja"</string>
@@ -3046,7 +3034,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikacije i obavještenja"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Odobrenja, zadane aplikacije"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Pristup obavještenjima nije dostupan za aplikacije u novom radnom profilu."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Računi"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nije dodan nijedan račun"</string>
@@ -3109,7 +3098,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambijentalni prikaz, Prikaz zaključavanja ekrana"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"obavještenje o zaključavanju ekrana"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"lice"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"otisak prsta"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"zatamnjenje ekrana, ekran osjetljiv na dodir, baterija, pametna osvijetljenost, dinamička osvijetljenost"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"zatamni ekran, stanje mirovanja, baterija, istek vremena, pažnja, prikaz, ekran, neaktivnost"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"rotirati, obrnuti, rotacija, uspravno, vodoravno, orijentacija, vertikalno, horizontalno"</string>
@@ -3142,6 +3132,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Zvono je utišano"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Jačina zvona je na 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Jačina zvuka medija"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Jačina zvuka tokom poziva"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Jačina zvuka alarma"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Jačina zvona"</string>
@@ -4295,10 +4287,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Ažurirajte način rada Ne ometaj"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Pauzirajte obavještenja da ostanete fokusirani"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Ova funkcija nije dostupna na ovom uređaju"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Ova funkcija nije dostupna"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Ona će usporiti ovaj telefon"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Prisilno omogući potpuno GNSS mjerenje"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Prati sve povezane panorame i frekvencije GNSS-a bez ciklusa rada"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Dozvoli pokretanja aktivnosti u pozadini"</string>
@@ -4508,6 +4498,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Broj kanala obavještenja: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Dodirnite da upravljate svim."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Prebacite izlaz"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Trenutno se reproducira na uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Moguće je da je vaša pretplata kod ovog pružaoca otkazana. Ponavljajuće pretplate neće biti otkazane. Za više informacija obratite se svom pružaocu."</string>
</resources>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index 6047729..1a01542 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 3aed7d2..3524db7 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Tria una xarxa diferent"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"No s\'ha pogut afegir el dispositiu"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Dispositiu detectat"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"S\'està compartint la Wi‑Fi amb aquest dispositiu…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"S\'està connectant…"</string>
<string name="retry" msgid="6472609612090877557">"Torna-ho a provar"</string>
<string name="wifi_shared" msgid="844142443226926070">"Comparteix amb altres usuaris del dispositiu"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(sense canvis)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Dades mòbils"</item>
<item msgid="2838022395783120596">"Només Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Preferència per la Wi-Fi"</item>
<item msgid="5074515506087318555">"Preferència per dades mòbils"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Dades mòbils"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Quan la funció Trucades per Wi‑Fi està activada, el telèfon pot encaminar trucades a través de xarxes Wi‑Fi o de la xarxa de l\'operador de telefonia mòbil, segons la teva preferència i la intensitat del senyal. Abans d\'activar aquesta funció, contacta amb l\'operador per saber si hi ha cap càrrec i obtenir més informació.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Adreça d\'emergència"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuts"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Temps de lectura"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Temps per dur a terme l\'acció"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Tria el temps que necessites per llegir els missatges que es mostren temporalment.\n\nNo totes les aplicacions admeten aquesta opció de configuració."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Selecciona el temps que vols tenir per llegir els missatges que es mostren temporalment i et demanen que duguis a terme una acció.\n\nAquesta opció no és compatible amb totes les aplicacions."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Retard en mantenir premut"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversió dels colors"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplicacions i notificacions"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permisos, aplicacions predeterminades"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Les aplicacions del perfil professional no tenen accés a les notificacions."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Comptes"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"No s\'ha afegit cap compte"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Pantalla ambient, pantalla de bloqueig"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificació en pantalla de bloqueig"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"cara"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"empremta digital"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"pantalla atenuada, pantalla tàctil, bateria, brillantor intel·ligent, brillantor dinàmica"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"pantalla atenuada, repòs, bateria, temps d\'espera, atenció, pantalla, inactivitat"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"gir, canvi, rotació, retrat, paisatge, orientació, vertical, horitzontal"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Timbre en silenci"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Volum del to: 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Volum de multimèdia"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Volum de trucada"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Volum de l\'alarma"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volum del to"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Actualitza el mode No molestis"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Posa en pausa les notificacions per centrar l\'atenció"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Aquesta funció no està disponible en aquest dispositiu"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Aquesta funció no està disponible"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Aquesta funció alentirà el telèfon"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Força els mesuraments de GNSS complets"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Fes un seguiment de totes les freqüències i constel·lacions de GNSS sense cicle de treball"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Permet l\'inici d\'activitats en segon pla"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canals de notificacions. Toca per gestionar-los tots."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Canvia la sortida"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"S\'està reproduint al dispositiu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"És possible que es cancel·li la teva subscripció amb el proveïdor. Les subscripcions recurrents no es cancel·laran. Per obtenir més informació, contacta amb el proveïdor."</string>
</resources>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index 6f0e4a3..974cd85 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Globální"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 52009ca..92958d0 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -972,10 +972,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Vybrat jinou síť"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Zařízení se nepodařilo přidat"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Bylo nalezeno zařízení"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Sdílení Wi‑Fi s tímto zařízením…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Připojování…"</string>
<string name="retry" msgid="6472609612090877557">"Zkusit znovu"</string>
<string name="wifi_shared" msgid="844142443226926070">"Sdílet s ostatními uživateli zařízení"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nezměněno)"</string>
@@ -1101,11 +1099,6 @@
<item msgid="7715869266611010880">"Mobilní"</item>
<item msgid="2838022395783120596">"Pouze Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Preferována síť W-Fi"</item>
<item msgid="5074515506087318555">"Preferována mobilní data"</item>
@@ -1114,10 +1107,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobilní"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Je-li zapnuto volání přes Wi-Fi, telefon může hovory v závislosti na zadaných nastaveních a na tom, který signál je silnější, směrovat přes sítě Wi-Fi nebo přes sítě operátora. Než tuto funkci zapnete, zeptejte se operátora na možné poplatky a další podrobnosti.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Nouzová adresa"</string>
@@ -2094,8 +2083,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuty"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Čas na přečtení"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Čas na akci"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Určete, jak dlouho se mají zobrazovat důležité zprávy, které jsou viditelné jen po omezenou dobu.\n\nToto nastavení podporují jen některé aplikace."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Určete, jak dlouho se mají zobrazovat zprávy s výzvami k akci, které jsou viditelné jen po omezenou dobu.\n\nToto nastavení podporují jen některé aplikace."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Prodleva přidržení"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Převrácení barev"</string>
@@ -3086,7 +3074,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikace a oznámení"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Oprávnění, výchozí aplikace"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Aplikace v pracovním profilu nemají přístup k oznámením."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Účty"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nebyly přidány žádné účty"</string>
@@ -3149,7 +3138,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambientní displej, displej zámku obrazovky"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"oznámení na obrazovce uzamčení"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"obličej"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"otisk prstu"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ztlumení obrazovky, dotyková obrazovka, baterie, chytrý jas, dynamický jas"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ztlumení obrazovky, spánek, baterie, časový limit, pozornost, displej, obrazovka, neaktivita"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"otočení, překlopení, rotace, na výšku, na šířku, orientace, vertikální, horizontální"</string>
@@ -3182,6 +3172,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Vyzvánění bylo ztlumeno"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Hlasitost vyzvánění: 80 %"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Hlasitost médií"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Hlasitost hovoru"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Hlasitost budíku"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Hlasitost vyzvánění"</string>
@@ -4371,10 +4363,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Aktualizujte režim Nerušit"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Pokud nechcete být rušeni, oznámení pozastavte"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Funkce v tomto zařízení není k dispozici"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Tato funkce není k dispozici"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Bude zpomalovat telefon"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Vynutit úplné měření GNSS"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Sledovat všechny konstelace a frekvence GNSS bez cyklického vypínání a zapínání"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Povolit zahájení aktivity na pozadí"</string>
@@ -4588,6 +4578,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Kanály oznámení: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Klepnutím můžete spravovat všechny."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Přepnout výstup"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Právě se přehrává na zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Vaše předplatné u tohoto poskytovatele může být zrušeno. Opakovaná předplatná zrušena nebudou. Další informace vám sdělí poskytovatel."</string>
</resources>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index 6ac0c22..d801b7e 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index bce08bc..3f91202 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -1065,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobil"</item>
<item msgid="2838022395783120596">"Kun Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"WiFi-netværk er foretrukket"</item>
<item msgid="5074515506087318555">"Mobilnetværk foretrækkes"</item>
@@ -1078,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobil"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Når Wi-Fi-opkald er slået til, kan enheden dirigere opkald via Wi-Fi-netværk eller dit mobilselskabs netværk, afhængigt af hvad du foretrækker, og hvor signalet er stærkest. Før du slår denne funktion til, skal du kontakte dit mobilselskab angående gebyrer og andre oplysninger.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Adresse til nødstilfælde"</string>
@@ -2052,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutter"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tid til at læse"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tid til at foretage en handling"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Vælg, hvor længe du vil have vist beskeder, du skal læse, men som kun vises midlertidigt.\n\nDenne indstilling understøttes ikke i alle apps."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Vælg, hvor længe du vil have vist beskeder, der beder dig om at foretage en handling, men som kun vises midlertidigt.\n\nDenne indstilling understøttes ikke i alle apps."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Forsinkelse på tryk og hold nede"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Ombytning af farver"</string>
@@ -3004,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps og notifikationer"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Tilladelser, standardapps"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Apps i arbejdsprofilen har ikke adgang til notifikationsindstillingerne."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Konti"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Ingen konti er tilføjet"</string>
@@ -3067,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Aktiv låseskærm, visning af låseskærm"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notifikation på låseskærm"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ansigt"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingeraftryk"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dæmp skærmlys, touchskærm, batteri, intelligent lysstyrke, dynamisk klarhed"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"dæmp skærm, dvale, batteri, timeout, betjening, visning, skærm, inaktivitet"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"rotere, vende, rotation, stående, liggende, retning, lodret, vandret"</string>
@@ -3100,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ringesignalet er indstillet til lydløs"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Lydstyrken for ringetonen er på 80 %"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Lydstyrke for medier"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Lydstyrke for opkald"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Lydstyrke for alarmer"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Lydstyrke for ringetone"</string>
@@ -4424,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> notifikationskanaler. Tryk for at administrere alle."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Skift udgang"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Afspilles i øjeblikket på <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Dit abonnement hos denne udbyder ophæves muligvis. Faste abonnementer ophæves ikke. Du kan få flere oplysninger hos din udbyder."</string>
</resources>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index debf527..bd53afe 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index fa39f61..947ec67 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Anderes Netzwerk auswählen"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Gerät konnte nicht hinzugefügt werden"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Gerät gefunden"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"WLAN wird für dieses Gerät freigegeben…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Verbindung wird hergestellt…"</string>
<string name="retry" msgid="6472609612090877557">"Noch mal versuchen"</string>
<string name="wifi_shared" msgid="844142443226926070">"Für andere Gerätenutzer freigeben"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nicht geändert)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobil"</item>
<item msgid="2838022395783120596">"Nur WLAN"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"WLAN bevorzugt"</item>
<item msgid="5074515506087318555">"Mobilverbindung bevorzugt"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"WLAN"</item>
<item msgid="1118703915148755405">"Mobil"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wenn die Option \"WLAN-Telefonie\" aktiviert ist, kann dein Smartphone abhängig von deiner Einstellung und von der Signalstärke Anrufe über WLANs oder über das Netz deines Mobilfunkanbieters übertragen. Bevor du diese Funktion aktivierst, solltest du dich bei deinem Mobilfunkanbieter nach den hierfür anfallenden Gebühren und anderen Voraussetzungen erkundigen.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Notfalladresse"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 Minuten"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Zeit zum Lesen"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Zeit zum Reagieren"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Hier kannst du auswählen, wie lange Nachrichten sichtbar sind, die du lesen musst, die aber nur vorübergehend angezeigt werden.\n\nDiese Einstellung wird nicht von allen Apps unterstützt."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Hier kannst du auswählen, wie lange Nachrichten sichtbar sind, die eine Reaktion erfordern, aber nur vorübergehend angezeigt werden.\n\nDiese Einstellung wird nicht von allen Apps unterstützt."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Reaktionszeit Berühren/Halten"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Farbumkehr"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps & Benachrichtigungen"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Berechtigungen, Standard-Apps"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Für Apps im Arbeitsprofil ist der Benachrichtigungszugriff nicht verfügbar."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Konten"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Keine Konten hinzugefügt"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Inaktivitätsdisplay, Sperrbildschirm"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"benachrichtigung auf dem sperrbildschirm"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"Gesicht"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"Fingerabdruck"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"display dimmen, touchscreen, akku, intelligente helligkeit, dynamische helligkeit"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"display dimmen, ruhemodus, akku, zeitlimit, aufmerksamkeit, display, bildschirm, inaktivität"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"drehen, spiegeln, drehung, hochformat, querformat, ausrichtung, vertikal, horizontal"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Klingelton auf lautlos gestellt"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Klingeltonlautstärke: 80 %"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Medienlautstärke"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Anruflautstärke"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Weckerlautstärke"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Klingeltonlautstärke"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"\"Bitte nicht stören\" aktualisieren"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Zur besseren Konzentration Benachrichtigungen pausieren"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Diese Funktion ist auf diesem Gerät nicht verfügbar"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Diese Funktion ist nicht verfügbar"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Sie würde dieses Smartphone langsamer machen"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Vollständige GNSS-Messung erzwingen"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Alle GNSS-Konstellationen und -Frequenzen ohne GNSS-Zyklus erfassen"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Start von Hintergrundaktivitäten zulassen"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> Benachrichtigungskanäle. Tippen, um alle zu verwalten."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Ausgabe wechseln"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Die Wiedergabe läuft derzeit auf <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Dein Abo bei diesem Anbieter wird möglicherweise storniert. Wiederkehrende Abos werden dabei allerdings nicht storniert. Weitere Informationen erhältst du von deinem Anbieter."</string>
</resources>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index 6874c20..c9274e4 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Παγκόσμιο"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index e431b70..5ac2c74 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -1065,11 +1065,6 @@
<item msgid="7715869266611010880">"Δίκτυο κινητής τηλεφωνίας"</item>
<item msgid="2838022395783120596">"Μόνο Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Προτίμηση Wi-Fi"</item>
<item msgid="5074515506087318555">"Προτίμηση δικτύου κινητής τηλεφωνίας"</item>
@@ -1078,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Δίκτυο κινητής τηλεφωνίας"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Όταν η Κλήση Wi-Fi είναι ενεργή, το τηλέφωνό σας μπορεί να δρομολογήσει κλήσεις μέσω δικτύων Wi-Fi ή του δικτύου της εταιρείας κινητής τηλεφωνίας σας, ανάλογα με την προτίμησή σας και την ισχύ του κάθε σήματος. Προτού ενεργοποιήσετε αυτήν τη λειτουργία, επικοινωνήστε με την εταιρεία κινητής τηλεφωνίας σας σχετικά με χρεώσεις και άλλες λεπτομέρειες.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Διεύθυνση έκτακτης ανάγκης"</string>
@@ -2052,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 λεπτά"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Ώρα για ανάγνωση"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Ώρα για την εκτέλεση ενεργειών"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Επιλέξτε το χρονικό διάστημα για το οποίο θέλετε να εμφανίζονται τα μηνύματα που θα πρέπει να διαβάζετε, αλλά τα οποία είναι ορατά μόνο προσωρινά.\n\nΑυτή η ρύθμιση δεν υποστηρίζεται από όλες τις εφαρμογές."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Επιλέξτε το χρονικό διάστημα για το οποίο θέλετε να εμφανίζονται τα μηνύματα που σας ζητούν να προβείτε σε κάποια ενέργεια, αλλά τα οποία είναι ορατά μόνο προσωρινά.\n\nΑυτή η ρύθμιση δεν υποστηρίζεται από όλες τις εφαρμογές."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Καθυστέρηση παρατετ. αγγίγματος"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Αντιστροφή χρωμάτων"</string>
@@ -3004,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Εφαρμ. - ειδοπ/σεις"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Άδειες, προεπιλεγμένες εφαρμογές"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Η πρόσβαση ειδοποίησης δεν είναι διαθέσιμη για εφαρμογές στο προφίλ εργασίας."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Λογαριασμοί"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Δεν έχουν προστεθεί λογαριασμοί"</string>
@@ -3067,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Οθόνη περιβάλλοντος, Οθόνη κλειδώματος οθόνης"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ειδοποίηση οθόνης κλειδώματος"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"πρόσωπο"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"δακτυλικό αποτύπωμα"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"μείωση φωτεινότητας οθόνης, οθόνη αφής, μπαταρία, έξυπνη φωτεινότητα, δυναμική φωτεινότητα"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"μείωση φωτεινότητας οθόνης, αδράνεια, μπαταρία, λήξη ορίου χρόνου, προσοχή, προβολή, οθόνη, καμία ενέργεια"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"περιστρέφω, αναστροφή, περιστροφή, πορτραίτο, οριζόντια, προσανατολισμός, κάθετος, οριζόντιος"</string>
@@ -3100,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Η ειδοποίηση ήχου τέθηκε σε σίγαση"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Ένταση ήχου κλήσης στο 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Ένταση ήχου πολυμέσων"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Ένταση ήχου κλήσεων"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Ένταση ήχου ξυπνητηριού"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Ένταση ήχου κλήσης"</string>
@@ -4424,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> κανάλια ειδοποιήσεων. Πατήστε για να τα διαχειριστείτε όλα."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Εναλλαγή εξόδου"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Παίζει τώρα στη συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Η συνδρομή σας με αυτόν τον πάροχο μπορεί να ακυρωθει. Οι επαναλαμβανόμενες συνδρομές δεν θα ακυρωθούν. Για περισσότερες πληροφορίες, απευθυνθείτε στην εταιρεία κινητής τηλεφωνίας σας."</string>
</resources>
diff --git a/res/values-en-rAU/arrays.xml b/res/values-en-rAU/arrays.xml
index 1268bf2..f05f4ae 100644
--- a/res/values-en-rAU/arrays.xml
+++ b/res/values-en-rAU/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 32245fd..870ed66 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -1065,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobile"</item>
<item msgid="2838022395783120596">"Wi-Fi only"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi preferred"</item>
<item msgid="5074515506087318555">"Mobile preferred"</item>
@@ -1078,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobile"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"When Wi-Fi calling is on, your phone can route calls via Wi-Fi networks or your mobile’s network, depending on your preference and which signal is stronger. Before turning on this feature, check with your operator regarding fees and other details.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Emergency Address"</string>
@@ -3003,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps & notifications"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permissions, default apps"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Notification access is not available for apps in the work profile."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Accounts"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"No accounts added"</string>
@@ -3066,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient display, Lock screen display"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lock screen notification"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"face"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingerprint"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dim screen, touchscreen, battery, smart brightness, dynamic brightness"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"dim screen, sleep, battery, timeout, attention, display, screen, inactivity"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"rotate, flip, rotation, portrait, landscape, orientation, vertical, horizontal"</string>
@@ -3099,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ringer set to silent"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Ring volume at 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Media volume"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Call volume"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Alarm volume"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Ring volume"</string>
diff --git a/res/values-en-rCA/arrays.xml b/res/values-en-rCA/arrays.xml
index 1268bf2..f05f4ae 100644
--- a/res/values-en-rCA/arrays.xml
+++ b/res/values-en-rCA/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index c3675d4..f5e44d1 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -1065,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobile"</item>
<item msgid="2838022395783120596">"Wi-Fi only"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi preferred"</item>
<item msgid="5074515506087318555">"Mobile preferred"</item>
@@ -1078,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobile"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"When Wi-Fi calling is on, your phone can route calls via Wi-Fi networks or your mobile’s network, depending on your preference and which signal is stronger. Before turning on this feature, check with your operator regarding fees and other details.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Emergency Address"</string>
@@ -3003,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps & notifications"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permissions, default apps"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Notification access is not available for apps in the work profile."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Accounts"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"No accounts added"</string>
@@ -3066,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient display, Lock screen display"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lock screen notification"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"face"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingerprint"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dim screen, touchscreen, battery, smart brightness, dynamic brightness"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"dim screen, sleep, battery, timeout, attention, display, screen, inactivity"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"rotate, flip, rotation, portrait, landscape, orientation, vertical, horizontal"</string>
@@ -3099,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ringer set to silent"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Ring volume at 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Media volume"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Call volume"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Alarm volume"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Ring volume"</string>
diff --git a/res/values-en-rGB/arrays.xml b/res/values-en-rGB/arrays.xml
index 1268bf2..f05f4ae 100644
--- a/res/values-en-rGB/arrays.xml
+++ b/res/values-en-rGB/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 32245fd..870ed66 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -1065,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobile"</item>
<item msgid="2838022395783120596">"Wi-Fi only"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi preferred"</item>
<item msgid="5074515506087318555">"Mobile preferred"</item>
@@ -1078,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobile"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"When Wi-Fi calling is on, your phone can route calls via Wi-Fi networks or your mobile’s network, depending on your preference and which signal is stronger. Before turning on this feature, check with your operator regarding fees and other details.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Emergency Address"</string>
@@ -3003,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps & notifications"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permissions, default apps"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Notification access is not available for apps in the work profile."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Accounts"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"No accounts added"</string>
@@ -3066,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient display, Lock screen display"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lock screen notification"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"face"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingerprint"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dim screen, touchscreen, battery, smart brightness, dynamic brightness"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"dim screen, sleep, battery, timeout, attention, display, screen, inactivity"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"rotate, flip, rotation, portrait, landscape, orientation, vertical, horizontal"</string>
@@ -3099,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ringer set to silent"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Ring volume at 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Media volume"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Call volume"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Alarm volume"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Ring volume"</string>
diff --git a/res/values-en-rIN/arrays.xml b/res/values-en-rIN/arrays.xml
index 1268bf2..f05f4ae 100644
--- a/res/values-en-rIN/arrays.xml
+++ b/res/values-en-rIN/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 32245fd..870ed66 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -1065,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobile"</item>
<item msgid="2838022395783120596">"Wi-Fi only"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi preferred"</item>
<item msgid="5074515506087318555">"Mobile preferred"</item>
@@ -1078,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobile"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"When Wi-Fi calling is on, your phone can route calls via Wi-Fi networks or your mobile’s network, depending on your preference and which signal is stronger. Before turning on this feature, check with your operator regarding fees and other details.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Emergency Address"</string>
@@ -3003,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps & notifications"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permissions, default apps"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Notification access is not available for apps in the work profile."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Accounts"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"No accounts added"</string>
@@ -3066,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient display, Lock screen display"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lock screen notification"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"face"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingerprint"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dim screen, touchscreen, battery, smart brightness, dynamic brightness"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"dim screen, sleep, battery, timeout, attention, display, screen, inactivity"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"rotate, flip, rotation, portrait, landscape, orientation, vertical, horizontal"</string>
@@ -3099,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ringer set to silent"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Ring volume at 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Media volume"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Call volume"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Alarm volume"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Ring volume"</string>
diff --git a/res/values-en-rXC/arrays.xml b/res/values-en-rXC/arrays.xml
index 7350709..fcfbe28 100644
--- a/res/values-en-rXC/arrays.xml
+++ b/res/values-en-rXC/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 7a18068..f5eabf0 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -1064,11 +1064,6 @@
<item msgid="7715869266611010880">"Mobile"</item>
<item msgid="2838022395783120596">"Wi-Fi only"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi preferred"</item>
<item msgid="5074515506087318555">"Mobile preferred"</item>
@@ -1077,10 +1072,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobile"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"When Wi-Fi calling is on, your phone can route calls via Wi-Fi networks or your carrier’s network, depending on your preference and which signal is stronger. Before turning on this feature, check with your carrier regarding fees and other details.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Emergency Address"</string>
@@ -3002,7 +2993,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps & notifications"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permissions, default apps"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Notification access is not available for apps in the work profile."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Accounts"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"No accounts added"</string>
@@ -3065,7 +3057,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient display, Lock screen display"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lock screen notification"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"face"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingerprint"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dim screen, touchscreen, battery, smart brightness, dynamic brightness"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"dim screen, sleep, battery, timeout, attention, display, screen, inactivity"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"rotate, flip, rotation, portrait, landscape, orientation, vertical, horizontal"</string>
@@ -3098,6 +3091,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ringer set to silent"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Ring volume at 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Media volume"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Call volume"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Alarm volume"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Ring volume"</string>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index de5e5c8..8866435 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 07b5b2e..a9bb2da 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Seleccionar otra red"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"No se pudo agregar el dispositivo"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Se encontró el dispositivo"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Compartiendo Wi-Fi con este dispositivo…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Conectando…"</string>
<string name="retry" msgid="6472609612090877557">"Reintentar"</string>
<string name="wifi_shared" msgid="844142443226926070">"Compartir con otros usuarios del dispositivo"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(sin cambios)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Móvil"</item>
<item msgid="2838022395783120596">"Solo Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Red Wi-Fi preferida"</item>
<item msgid="5074515506087318555">"Red móvil preferida"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Móvil"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Si está activada la función Llamada por Wi-Fi, el teléfono podrá hacer llamadas mediante redes Wi-Fi o la red de tu proveedor, según la preferencia que hayas elegido y la señal que tenga más intensidad. Antes de activar esta función, verifica el costo y otros detalles con el proveedor.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Dirección de emergencia"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutos"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tiempo de lectura"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tiempo de acción"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Selecciona el tiempo de visualización de mensajes que debes leer, pero que solo se muestran temporalmente.\n\nNo todas las apps admiten esta configuración."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Selecciona el tiempo de visualización de mensajes que requieren acciones, pero que solo se muestran temporalmente.\n\nNo todas las apps admiten esta opción."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Tiempo de respuesta táctil"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversión de color"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps y notificaciones"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permisos, apps predeterminadas"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Las apps del perfil de trabajo no tienen acceso a las notificaciones."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Cuentas"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"No se agregó ninguna cuenta"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Pantalla Ambiente, pantalla bloqueada"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificación en pantalla bloqueada"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"rostro"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"huella digital"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"atenuar pantalla, pantalla táctil, batería, brillo inteligente, brillo dinámico"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"atenuar pantalla, suspender, batería, tiempo de espera, atención, pantalla, inactividad"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"rotar, girar, rotación, retrato, paisaje, orientación, vertical, horizontal"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Timbre en silencio"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Volumen de tono: 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Volumen multimedia"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Volumen de llamada"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Volumen de alarma"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volumen de tono"</string>
@@ -4217,10 +4209,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Actualizar el modo No interrumpir"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Pausa las notificaciones para concentrarte"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"La función no está disponible en este dispositivo"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Esta función no está disponible"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Esta función ralentizará el teléfono"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Forzar dimensiones GNSS completas"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Seguir todas las frecuencias y constelaciones de GNSS sin ciclo de funciones"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Permitir inicio de actividades en segundo plano"</string>
@@ -4426,6 +4416,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canales de notificación. Presiona para administrarlos todos."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Cambiar de salida"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Reproduciendo en <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Es posible que se haya cancelado tu suscripción de este proveedor. No se cancelarán las suscripciones recurrentes. Para obtener más información, comunícate con tu proveedor."</string>
</resources>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index 8a4fac5..d88de5f 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE o CDMA"</item>
<item msgid="519208953133334357">"LTE, GSM o UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 9370000..7923b9f 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -1065,11 +1065,6 @@
<item msgid="7715869266611010880">"Móvil"</item>
<item msgid="2838022395783120596">"Solo Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Dar prioridad a Wi-Fi"</item>
<item msgid="5074515506087318555">"Dar prioridad a datos móviles"</item>
@@ -1078,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Móvil"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Si la función de llamada por Wi‑Fi está activada, el teléfono puede hacer llamadas a través de redes Wi‑Fi o de la red de tu operador, según la preferencia que hayas seleccionado y la señal que tenga más intensidad. Antes de activar esta función, consulta a tu operador las tarifas y otros detalles.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Dirección de emergencia"</string>
@@ -2052,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutos"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tiempo para leer"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tiempo para responder"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Elige el tiempo que quieres tener para leer los mensajes que se muestran temporalmente.\n\nEsta opción no funciona con todas las aplicaciones."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Elige el tiempo que quieres tener para leer los mensajes que se muestran temporalmente y te piden que realices una acción.\n\nEsta opción no funciona con todas las aplicaciones."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Retraso al mantener pulsado"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Invertir colores"</string>
@@ -3004,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplicaciones y notificaciones"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permisos, aplicaciones predeterminadas"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Las aplicaciones del perfil de trabajo no tienen acceso a las notificaciones."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Cuentas"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"No se ha añadido ninguna cuenta"</string>
@@ -3067,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Pantalla ambiente, pantalla de bloqueo"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificación en pantalla de bloqueo"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"cara"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"huella digital"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"atenuar pantalla, pantalla táctil, batería, brillo inteligente, brillo dinámico"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"atenuar pantalla, suspensión, batería, tiempo de espera, atención, pantalla, inactividad"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"rotar, girar, rotación, retrato, paisaje, orientación, vertical, horizontal"</string>
@@ -3100,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Timbre en silencio"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Volumen del timbre al 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Volumen de multimedia"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Volumen de llamada"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Volumen de la alarma"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volumen del tono"</string>
@@ -4424,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canales de notificaciones. Toca para gestionarlos todos."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Cambiar salida"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Reproduciendo contenido en <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Es posible que se cancele tu suscripción a este proveedor. Las suscripciones periódicas no se cancelarán. Para obtener más información, consulta a tu proveedor."</string>
</resources>
diff --git a/res/values-et/arrays.xml b/res/values-et/arrays.xml
index 36bd841..4a79d4a 100644
--- a/res/values-et/arrays.xml
+++ b/res/values-et/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Üldine"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 13af58c..2227911 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Valige mõni teine võrk"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Seadet ei õnnestunud lisada"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Leiti seade"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"WiFi-võrgu jagamine selle seadmega …"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Ühendamine …"</string>
<string name="retry" msgid="6472609612090877557">"Proovi uuesti"</string>
<string name="wifi_shared" msgid="844142443226926070">"Jaga seadme teiste kasutajatega"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(muutmata)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobiilne andmeside"</item>
<item msgid="2838022395783120596">"Ainult WiFi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"WiFi eelistusega"</item>
<item msgid="5074515506087318555">"Eelistatud on mobiilne andmeside"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"WiFi"</item>
<item msgid="1118703915148755405">"Mobiilne andmeside"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kui WiFi-kõned on sisse lülitatud, saab telefon olenevalt eelistustest ja signaalitugevusest kõnesid marsruutida WiFi-võrkude või teie operaatori võrgu kaudu. Enne selle funktsiooni sisselülitamist uurige operaatorilt tasude ja muude üksikasjade kohta. <xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Hädaolukorra aadress"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutit"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Aeg lugemiseks"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Aeg toimingu tegemiseks"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Valige, kui kaua soovite kuvada sõnumeid, mida peate lugema, kuid mis on nähtavad ainult ajutiselt.\n\nKõik rakendused seda seadet ei toeta"</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Valige, kui kaua soovite kuvada sõnumeid, milles palutakse teil toiminguid teha, kuid mis on nähtaval ainult ajutiselt.\n\nKõik rakendused seda seadet ei toeta."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Puute ja hoidmise viide"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Värvuste ümberpööramine"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Rakendused ja märguanded"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Load, vaikerakendused"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Tööprofiilil pole märguannete juurdepääs rakenduste puhul saadaval."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Kontod"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Kontosid pole lisatud"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Säästlik ekraan, lukustuskuva ekraan"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lukustuskuva märguanne"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"nägu"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"sõrmejälg"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ekraani hämardamine, puuteekraan, aku, nutikas heledus, dünaamiline heledus"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ekraani hämardamine, unerežiim, aku, ajalõpp, tähelepanu, ekraan, ekraanikuva, tegevusetus"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"pöörama, vahetamine, pööramine, vertikaalpaigutus, horisontaalpaigutus, suund, vertikaalne, horisontaalne"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Telefonihelin on seatud hääletuks"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Helina helitugevus on 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Meedia helitugevus"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Kõne helitugevus"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Äratuse helitugevus"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Helina helitugevus"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Värskendage režiimi Mitte segada"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Keskendumiseks peatage märguanded"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Sellel seadmel pole see funktsioon saadaval"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"See funktsioon pole saadaval"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"See muudab selle telefoni aeglasemaks"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Jõusta GNSS-i täielikud mõõtmistulemused"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Jälgi kõiki GNSS-i radu ja sagedusi ilma töötsüklita"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Luba taustategevuste käivitamine"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> märguandekanalit. Puudutage kõigi haldamiseks."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Väljundi vahetamine"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Praegu seadmes <xliff:g id="DEVICE_NAME">%1$s</xliff:g> esitamisel"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Teie selle teenusepakkuja tellimus võidakse tühistada. Korduvaid tellimusi ei tühistata. Lisateavet küsige teenusepakkujalt."</string>
</resources>
diff --git a/res/values-eu/arrays.xml b/res/values-eu/arrays.xml
index 667e23a..b510b94 100644
--- a/res/values-eu/arrays.xml
+++ b/res/values-eu/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Orokorrak"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 349fe7f..4cf2212 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -1065,11 +1065,6 @@
<item msgid="7715869266611010880">"Datu-konexioa"</item>
<item msgid="2838022395783120596">"Wi-Fi sarea soilik"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi konexioa hobesten da"</item>
<item msgid="5074515506087318555">"Datu-konexioa hobesten da"</item>
@@ -1078,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi konexioa"</item>
<item msgid="1118703915148755405">"Datu-konexioa"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wifi bidezko deiak aktibatuta daudenean, telefonoak wifi-sareen bidez edo operadorearen sarearen bidez bidera ditzake deiak, zure hobespenen eta seinalearen sendotasunaren arabera. Eginbide hau aktibatu aurretik, eskatu tarifak eta bestelako informazioa operadoreari.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Larrialdietarako helbidea"</string>
@@ -2052,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"Bi minutu"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Irakurtzeko denbora"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Zerbait egiteko denbora"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Aukeratu zenbat denboraz erakutsi behar diren mezuak, irakurri egin behar badituzu baina aldi baterako soilik badaude ikusgai.\n\nAplikazio guztiek ez dute onartzen ezarpen hau."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Aukeratu zenbat denboraz erakutsi behar diren mezuak, zerbait egiteko eskatzen badizute baina aldi baterako soilik badaude ikusgai.\n\nAplikazio guztiek ez dute onartzen ezarpen hau."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Sakatuta edukitzearen atzerapena"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Koloreen alderantzikatzea"</string>
@@ -3004,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikazioak eta jakinarazpenak"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Baimenak, aplikazio lehenetsiak"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Laneko profilaren aplikazioek ezin dituzte atzitu jakinarazpenak."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Kontuak"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Ez da gehitu konturik"</string>
@@ -3067,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Pantaila ilundua, pantaila blokeatuaren bistaratzea"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"pantaila blokeatuko jakinarazpena"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"aurpegia"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"hatz-marka"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ilundu pantaila, ukipen-pantaila, bateria, distira adimenduna, distira dinamikoa"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ilundu pantaila, pantaila ilundu, ezarri inaktibo, inaktibo ezarri, bateria, denbora-muga, arreta, pantaila, bistaratzea, jarduera eza, inaktibo"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"biratu, irauli, errotazioa, bertikala, horizontala, orientazioa"</string>
@@ -3100,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Isilik moduan ezarri da gailua"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Tonuaren bolumena: % 80"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Multimedia-edukiaren bolumena"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Deien bolumena"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Alarmaren bolumena"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Tonuaren bolumena"</string>
@@ -4424,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> jakinarazpen-kanal. Sakatu hau guztiak kudeatzeko."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Aldatu irteera"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailuan erreproduzitzen"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Baliteke hornitzaile honekin daukazun harpidetza bertan behera uztea. Harpidetza errepikariak ez dira utziko bertan behera. Informazio gehiago lortzeko, jarri hornitzailearekin harremanetan."</string>
</resources>
diff --git a/res/values-fa/arrays.xml b/res/values-fa/arrays.xml
index f4121d3..9861b5d 100644
--- a/res/values-fa/arrays.xml
+++ b/res/values-fa/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"جهانی"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 706112a..59426ab 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"انتخاب شبکهای دیگر"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"دستگاه اضافه نشد"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"دستگاه پیدا شد"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"درحال همرسانی Wi‑Fi با این دستگاه…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"درحال اتصال…"</string>
<string name="retry" msgid="6472609612090877557">"امتحان مجدد"</string>
<string name="wifi_shared" msgid="844142443226926070">"اشتراکگذاری با دیگر استفادهکنندگان از دستگاه"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(بدون تغییر)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"داده شبکه تلفن همراه"</item>
<item msgid="2838022395783120596">"فقط Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"۲"</item>
- <item msgid="1171822231056612021">"۱"</item>
- <item msgid="3194458950573886239">"۰"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi ترجیحی"</item>
<item msgid="5074515506087318555">"داده شبکه تلفن همراه ارجح است"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"داده شبکه تلفن همراه"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"۲"</item>
- <item msgid="6200207341126893791">"۱"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"اگر تماس ازطریق Wi-Fi روشن باشد، تلفن شما میتواند براساس اولویتتان و اینکه چه سیگنالی قویتر است، تماسها را ازطریق شبکههای Wi-Fi یا شبکه شرکت مخابراتیتان هدایت کند. قبل از روشن کردن این ویژگی، هزینهها و سایر جزئیات را با شرکت مخابراتیتان بررسی کنید.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"نشانی اضطراری"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"۲ دقیقه"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"زمان لازم برای خواندن"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"زمان لازم برای اقدام"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"مدتزمان موردنظرتان را برای نمایش پیامهایی که میخواهید بخوانید، اما بهطور موقت نمایش داده میشوند، انتخاب کنید.\n\nهمه برنامهها از این تنظیم پشتیبانی نمیکنند."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"مدتزمان موردنظرتان را برای نمایش پیامهایی که میخواهند اقدامی بکنید، اما بهطور موقت نمایش داده میشوند، انتخاب کنید.\n\nهمه برنامهها از این تنظیم پشتیبانی نمیکنند."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"تأخیر لمس کردن و نگه داشتن"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"وارونگی رنگ"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"بلوتوث، NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"بلوتوث"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"برنامهها و اعلانها"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"مجوزها، برنامههای پیشفرض"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"برنامهها نمیتوانند در نمایه کاری به اعلانها دسترسی داشته باشند."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"حسابها"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"حسابی اضافه نشد"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"نمایشگر محیطی. نمایشگر صفحه در حالت قفل"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"اعلان صفحه قفل"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"چهره"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"اثر انگشت"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"تار کردن صفحهنمایش، صفحه لمسی، باتری، روشنایی هوشمند، روشنایی پویا"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"کمنور کردن صفحه، خواب، باتری، مهلت زمانی، توجه، نمایشگر، صفحه، بیفعالیتی"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"چرخاندن، چرخش، چرخش، پرتره، منظره، جهت، عمودی، افقی"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"زنگ روی سکوت تنظیم شده است"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"بلندی صدای زنگ ۸۰٪"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"میزان صدای رسانه"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"میزان صدای تماس"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"میزان صدای هشدار"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"میزان صدای زنگ"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"بهروزرسانی «مزاحم نشوید»"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"توقف موقت اعلانها برای متمرکز ماندن"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"این ویدیو در این دستگاه دردسترس نیست."</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"این ویژگی دردسترس نیست"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"این کار عملکرد تلفن را کند میکند"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"اجرای کامل اندازهگیری GNSS"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"بدون دوره کاری همه زنجیره عکسهای پانوراما و فرکانسها را ردیابی کنید."</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"اجازه دادن به شروع فعالیت پسزمینه"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> کانال اعلان. برای مدیریت همه آنها ضربه بزنید."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"تغییر خروجی"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"درحالحاضر در <xliff:g id="DEVICE_NAME">%1$s</xliff:g> درحال پخش است"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ممکن است اشتراکتان با این ارائهدهنده لغو شود. اشتراکهای تکرارشونده لغو نخواهد شد. برای اطلاعات بیشتر با ارائهدهندهتان تماس بگیرید."</string>
</resources>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index 9b47268..ca6ce9e 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Maailmanlaajuinen"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 02e236e..e02a342 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -1065,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobiili"</item>
<item msgid="2838022395783120596">"Vain Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi ensisijainen"</item>
<item msgid="5074515506087318555">"Mobiiliverkko ensisijainen"</item>
@@ -1078,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobiili"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kun Wi-Fi-puhelut on käytössä, puhelimesi voi ohjata puhelut Wi-Fi-verkkojen tai operaattorisi verkon kautta, riippuen asetuksistasi ja siitä, kummassa on voimakkaampi signaali. Ennen kuin otat tämän ominaisuuden käyttöön, tarkista maksut ja muut tiedot operaattoriltasi.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Hätäosoite"</string>
@@ -2052,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuuttia"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Lukuaika"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Reagointiaika"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Valitse, miten pitkään haluat nähdä viestit, jotka sinun on luettava mutta jotka näkyvät vain väliaikaisesti.\n\nKaikki sovellukset eivät tue tätä asetusta."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Valitse, miten pitkään haluat nähdä viestit, jotka pyytävät reagoimaan mutta näkyvät vain väliaikaisesti.\n\nKaikki sovellukset eivät tue tätä asetusta."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Pitkäkestoisen kosketuksen viive"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Käänteiset värit"</string>
@@ -3004,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Sovellukset ja ilmoitukset"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Käyttöoikeudet, oletussovellukset"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Työprofiilin sovelluksilla ei voi olla ilmoitusten käyttöoikeuksia."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Tilit"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Tilejä ei lisätty"</string>
@@ -3067,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Lepotilanäyttö, lukitusnäyttö"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lukitusnäyttöilmoitus"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"kasvot"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"sormenjälki"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"himmeä näyttö, kosketusnäyttö, akku, älykäs kirkkaus, dynaaminen kirkkaus"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"himmennä näyttö, virransäästötila, akku, aikakatkaisu, huomio, näyttö, käyttämättömyys"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"kiertää, kääntää, kääntäminen, pystysuunta, vaakasuunta, suunta, pystysuorassa, vaakasuorassa"</string>
@@ -3100,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Soittoääni on mykistetty."</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Soittoäänen voimakkuus: 80 %"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Median äänenvoimakkuus"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Puhelun äänenvoimakkuus"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Hälytyksen voimakkuus"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Soittoäänen voimakkuus"</string>
@@ -4424,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ilmoituskanavaa. Napauta määrittääksesi kaikki."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Vaihda syötettä"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Toistetaan nyt: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Tämän palvelun tilauksesi saatetaan peruuttaa. Toistuvia tilauksia ei peruuteta. Lisätietoja saat palveluntarjoajalta."</string>
</resources>
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
index b4d2021..dd39cfc 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 7a0194b..3d89fb6 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -1065,11 +1065,6 @@
<item msgid="7715869266611010880">"Cellulaire"</item>
<item msgid="2838022395783120596">"Wi-Fi seulement"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Réseau Wi-Fi de préférence"</item>
<item msgid="5074515506087318555">"Connexion cellulaire de préférence"</item>
@@ -1078,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Cellulaire"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Lorsque les appels Wi-Fi sont activés, votre téléphone peut transférer les appels par réseau Wi-Fi ou le réseau de votre fournisseur de services, en fonction de votre préférence et du signal le plus puissant. Avant d\'activer cette fonctionnalité, renseignez-vous auprès de votre fournisseur pour en savoir plus sur les frais et d\'autres détails pertinents.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Adresse d\'urgence"</string>
@@ -2052,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutes"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Durée de lecture"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Temps d\'interaction"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Choisissez la durée d\'affichage des messages que vous devez lire, mais qui ne sont visibles que temporairement.\n\nCe ne sont pas toutes les applications qui prennent en charge ce paramètre."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Choisissez la durée d\'affichage des messages vous demandant d\'agir mais qui ne sont visibles que temporairement.\n\nCe ne sont pas toutes les applications qui prennent en charge ce paramètre."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Délai de pression"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversion des couleurs"</string>
@@ -3004,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Applis et notifications"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Autorisations, applications par défaut"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Les applications du profil professionnel n\'ont pas accès aux notifications."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Comptes"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Aucun compte ajouté"</string>
@@ -3067,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Affichage en mode Veille, écran de verrouillage"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notification sur l\'écran de verrouillage"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"visage"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"empreintes digitales"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"réduire la luminosité de l\'écran, écran tactile, pile, réglage intelligent de la luminosité, luminosité dynamique"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"assombrir l\'écran, veille, pile, délai d\'inactivité, attention, affichage, écran, inactivité"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"faire pivoter, tourner, retourner, rotation, portrait, paysage, orientation, vertical, horizontal"</string>
@@ -3100,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Sonnerie en mode silencieux"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Le volume de la sonnerie est à 80 %"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Volume du contenu multimédia"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Volume des appels"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume de l\'alarme"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume de la sonnerie"</string>
@@ -4424,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canaux de notification. Touchez ici pour les gérer."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Changer de sortie"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"En cours de lecture sur l\'appareil <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Votre abonnement auprès de ce fournisseur pourrait être annulé. Les abonnements récurrents ne seront pas annulés. Pour obtenir plus d\'information, consultez votre fournisseur."</string>
</resources>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index 2677c12..f28d441 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Général"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index fb25c85..3893174 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Sélectionner un autre réseau"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Impossible d\'ajouter l\'appareil"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Appareil détecté"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Partage Wi‑Fi avec cet appareil…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Connexion…"</string>
<string name="retry" msgid="6472609612090877557">"Réessayer"</string>
<string name="wifi_shared" msgid="844142443226926070">"Partager avec d\'autres utilisateurs de l\'appareil"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(aucune modification)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobile"</item>
<item msgid="2838022395783120596">"Wi-Fi uniquement"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi de préférence"</item>
<item msgid="5074515506087318555">"Données mobiles de préférence"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobile"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Lorsque les appels Wi-Fi sont activés, votre téléphone peut transférer les appels via les réseaux Wi-Fi ou le réseau de votre opérateur, en fonction de votre préférence et du signal le plus puissant. Avant d\'activer cette fonctionnalité, renseignez-vous auprès de votre opérateur pour en savoir plus sur les frais et autres détails.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Adresse d\'urgence"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutes"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Durée d\'affichage"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Durée pour effectuer une action"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Choisissez la durée d\'affichage des messages que vous avez besoin de lire, mais dont la visibilité est temporaire.\n\nCertaines applications ne sont pas compatibles avec ce paramètre."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Choisissez la durée d\'affichage des messages qui vous demandent d\'effectuer une action, mais dont la visibilité est temporaire.\n\nCertaines applications ne sont pas compatibles avec ce paramètre."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Délai de pression"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversion des couleurs"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Applis et notifications"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Autorisations, applications par défaut"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Les applications du profil professionnel n\'ont pas accès aux notifications."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Comptes"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Aucun compte ajouté"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"affichage en mode veille, affichage de l\'écran de verrouillage"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notification sur l\'écran de verrouillage"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"visage"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"empreinte digitale"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"réduire la luminosité de l\'écran, écran tactile, batterie, réglage intelligent de la luminosité, luminosité dynamique"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"assombrir l\'écran, veille, batterie, délai d\'inactivité, attention, affichage, écran, inactivité"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"faire pivoter, inverser, rotation, portrait, paysage, orientation, vertical, horizontal"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Sonnerie en mode silencieux"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Volume de sonnerie à 80 %"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Volume des contenus multimédias"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Volume d\'appel"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume de l\'alarme"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume de la sonnerie"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Mettre à jour le mode Ne pas déranger"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Suspendre les notifications pour rester concentré"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Cette fonctionnalité n\'est pas disponible sur cet appareil"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Cette fonctionnalité n\'est pas disponible"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Elle ralentit le téléphone"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Forcer les mesures GNSS complètes"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Effectuer le suivi de toutes les fréquences et constellations GNSS sans rapport cyclique"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Autoriser le démarrage des activités en arrière-plan"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Canaux de notification <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Appuyez sur cette notification pour tout gérer."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Changer de sortie"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"En cours de lecture sur <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Votre abonnement auprès de ce fournisseur pourra être annulé. Les abonnements en cours ne seront pas annulés. Pour en savoir plus, contactez votre fournisseur."</string>
</resources>
diff --git a/res/values-gl/arrays.xml b/res/values-gl/arrays.xml
index d6b592c..93c3037 100644
--- a/res/values-gl/arrays.xml
+++ b/res/values-gl/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index dc1499c..46cc9c1 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Escoller unha rede diferente"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Non se puido engadir o dispositivo"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Atopouse o dispositivo"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Compartindo a wifi con este dispositivo…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Conectando…"</string>
<string name="retry" msgid="6472609612090877557">"Tentar de novo"</string>
<string name="wifi_shared" msgid="844142443226926070">"Compartir rede con outros usuarios do dispositivo"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(non cambiado)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Datos móbiles"</item>
<item msgid="2838022395783120596">"Só por wifi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wifi preferida"</item>
<item msgid="5074515506087318555">"Datos móbiles preferidos"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wifi"</item>
<item msgid="1118703915148755405">"Datos móbiles"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Cando está activada a función Chamadas por wifi, o teléfono pode enviar as túas chamadas a través de redes wifi ou da rede do teu operador, dependendo das túas preferencias e de cal teña o sinal máis forte. Antes de activar esta función, consulta co teu operador as tarifas e outra información.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Enderezo de emerxencia"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutos"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tempo para ler"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tempo para realizar unha acción"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Escolle o tempo durante o que se mostran as mensaxes que debes ler e que só son visibles temporalmente.\n\nNon todas as aplicacións son compatibles con esta opción de configuración."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Escolle o tempo durante o que se mostran as mensaxes que che piden que realices algunha acción e que só son visibles temporalmente.\n\nNon todas as aplicacións son compatibles con esta opción de configuración."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Retardo de pulsación prolongada"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversión da cor"</string>
@@ -3007,7 +2995,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplicacións e notificacións"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permisos, aplicacións predeterminadas"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Non se permite que as aplicacións do perfil de traballo accedan ás notificacións."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Contas"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Non se engadiron contas"</string>
@@ -3070,7 +3059,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Visualización da pantalla de bloqueo, pantalla ambiente"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificación da pantalla de bloqueo"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"cara"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"impresión dixital"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"atenuar pantalla, pantalla táctil, batería, brillo intelixente, brillo dinámico"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"atenuar pantalla, modo de suspensión, batería, tempo de espera, atención, visualización, pantalla, inactividade"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"xirar, voltear, xiro, retrato, orientación, horizontal, vertical"</string>
@@ -3103,6 +3093,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Timbre en modo silencio"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Volume do ton ao 80 %"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Volume dos elementos multimedia"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Volume de chamada"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume da alarma"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume do ton"</string>
@@ -4220,10 +4212,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Actualizar a modo Non molestar"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Pon en pausa as notificacións para concentrarte"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Esta función non está dispoñible neste dispositivo"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Esta función non está dispoñible"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Esta función reducirá a velocidade do teléfono"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Forzar medicións completas de GNSS"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Realiza un seguimento de todas as frecuencias e constelacións de satélites de GNSS sen ciclos"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Permitir o inicio de actividades en segundo plano"</string>
@@ -4429,6 +4419,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canles de notificacións. Toca para xestionalas todas."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Cambiar saída"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Reproducindo contido actualmente en <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"A túa subscrición con este provedor pódese cancelar. As subscricións periódicas non se cancelarán. Para consultar máis información, ponte en contacto co provedor."</string>
</resources>
diff --git a/res/values-gu/arrays.xml b/res/values-gu/arrays.xml
index 1ed79e4..a47d4a8 100644
--- a/res/values-gu/arrays.xml
+++ b/res/values-gu/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"વૈશ્વિક"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 1e877e2..1b70ed6 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"અલગ નેટવર્ક પસંદ કરો"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"ડિવાઇસ ઉમેરી શક્યાં નથી"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"ડિવાઇસ મળ્યું"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"આ ડિવાઇસ સાથે વાઇ-ફાઇ શેર કરી રહ્યાં છીએ…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"કનેક્ટ થઈ રહ્યું છે…"</string>
<string name="retry" msgid="6472609612090877557">"ફરી પ્રયાસ કરો"</string>
<string name="wifi_shared" msgid="844142443226926070">"અન્ય ઉપકરણ વપરાશકર્તાઓ સાથે શેર કરો"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(અપરિવર્તિત)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"મોબાઇલ"</item>
<item msgid="2838022395783120596">"ફક્ત વાઇ-ફાઇ"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"વાઇ-ફાઇ પસંદ કર્યું"</item>
<item msgid="5074515506087318555">"મોબાઇલને પસંદગી"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"વાઇ-ફાઇ"</item>
<item msgid="1118703915148755405">"મોબાઇલ"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"જ્યારે વાઇ-ફાઇ કૉલિંગ ચાલુ હોય, ત્યારે તમારી પસંદગી અને કયા સિગ્નલ મજબૂત છે તેને આધારે, તમારો ફોન વાઇ-ફાઇ નેટવર્ક અથવા તમારા કૅરિઅરના નેટવર્ક મારફતે કૉલને રૂટ કરી શકે છે. આ સુવિધાને ચાલુ કરતાં પહેલાં, શુલ્ક અને અન્ય વિગતો માટે તમારા કૅરિઅર સાથે વાત કરો.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"કટોકટીનું સરનામું"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 મિનિટ"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"વાંચવા માટેનો સમય"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"પગલાં લેવાનો સમય"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"તમારે વાંચવા જરૂરી હોય, પરંતુ હંગામી રૂપે દેખાતા સંદેશાને કેટલા સમય સુધી બતાવવા તે પસંદ કરો.\n\nઆ સેટિંગની સુવિધા બધી ઍપમાં નથી હોતી."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"તમને ક્રિયા કરવાનું કહેતાં હોય, પરંતુ હંગામી રૂપે દેખાતા સંદેશાને કેટલા સમય સુધી દેખાડવા તે પસંદ કરો.\n\nઆ સેટિંગની સુવિધા બધી ઍપમાં નથી હોતી."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"ટચ કરી અને પકડવા પર વિલંબ"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"રંગ બદલવાની સુવિધા"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"બ્લૂટૂથ, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"બ્લૂટૂથ"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ઍપ્લિકેશનો અને સૂચનાઓ"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"પરવાનગીઓ, ડિફૉલ્ટ ઍપ્લિકેશનો"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"કાર્યાલયની પ્રોફાઇલમાં ઍપ માટે નોટિફિકેશન ઍક્સેસ ઉપલબ્ધ નથી."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"એકાઉન્ટ"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"કોઈ એકાઉન્ટ ઉમેરવામાં આવ્યાં નથી"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"વ્યાપક ડિસ્પ્લે, લૉક સ્ક્રીન ડિસ્પ્લે"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"લૉક સ્ક્રીન નોટિફિકેશન"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ચહેરો"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ફિંગરપ્રિન્ટની સેટિંગ"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ઝાંખી સ્ક્રીન, ટચસ્ક્રીન, બૅટરી, સ્માર્ટ બ્રાઇટનેસ, ડાયનામિક બ્રાઇટનેસ"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ઝાંખી સ્ક્રીન, નિષ્ક્રિય થાઓ, બૅટરી, સમયસમાપ્તિ, ધ્યાન આપો, ડિસ્પ્લે, સ્ક્રીન, નિષ્ક્રિયતા"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"ફેરવો, ફ્લિપ કરો, રોટેશન, પોર્ટ્રેટ, લૅન્ડસ્કેપ, ઓરિએન્ટેશન, ઊભું, આડું કરો"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"રિંગર શાંત પર સેટ કરેલ છે"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"રિંગ વૉલ્યુમ 80% પર છે"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"મીડિયા વૉલ્યૂમ"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"કૉલ વૉલ્યૂમ"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"એલાર્મ વૉલ્યૂમ"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"રિંગ વૉલ્યૂમ"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"ખલેલ પાડશો નહીંને અપડેટ કરો"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"ધ્યાન કેન્દ્રિત કરવા માટે નોટિફિકેશન થોભાવો"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"આ ઉપકરણ પર આ સુવિધા ઉપલબ્ધ નથી"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"આ સુવિધા ઉપલબ્ધ નથી"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"તે તમારા ફોનની કાર્ય કરવાની ગતિ ધીમી કરશે"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"સંપૂર્ણ GNSS માપને લાગુ કરો"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"કોઈપણ ડ્યૂટી-સાઈક્લિંગ વગર બધા GNSS તારામંડળો અને આવર્તનો ટ્રૅક કરો"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"બૅકગ્રાઉન્ડ પ્રવૃત્તિ શરૂ કરવાની પરવાનગી આપો"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> નોટિફિકેશન ચૅનલ. બધા મેનેજ કરવા માટે ટૅપ કરો."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"આઉટપુટ સ્વિચ કરો"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"હાલમાં <xliff:g id="DEVICE_NAME">%1$s</xliff:g> પર ચલાવી રહ્યાં છે"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"તમારું આ પ્રદાતા સાથેનું સબ્સ્ક્રિપ્શન રદ થઈ શકે છે. પુનરાવર્તન પામતાં સબ્સ્ક્રિપ્શન રદ થશે નહીં. વધુ માહિતી માટે તમારા પ્રદાતાનો સંપર્ક કરો"</string>
</resources>
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
index ac3b1c8..47fc6ab 100644
--- a/res/values-hi/arrays.xml
+++ b/res/values-hi/arrays.xml
@@ -463,8 +463,10 @@
</string-array>
<!-- no translation found for swipe_direction_titles:0 (58569659116542716) -->
<!-- no translation found for swipe_direction_titles:1 (1878704357761948043) -->
- <!-- no translation found for swipe_direction_values:0 (8800082277840833437) -->
- <!-- no translation found for swipe_direction_values:1 (7485508823396511299) -->
+ <string-array name="swipe_direction_values">
+ <item msgid="8800082277840833437">"1"</item>
+ <item msgid="7485508823396511299">"0"</item>
+ </string-array>
<string-array name="wifi_metered_entries">
<item msgid="5200910605264415911">"नेटवर्क की अपने आप पहचान हो"</item>
<item msgid="8745603368609022803">"इस कनेक्शन में डेटा से जुड़ी पाबंदी है"</item>
@@ -520,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/सिम"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"हर जगह लागू"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index f079316..f15325a 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -801,10 +801,8 @@
<string name="rx_link_speed" msgid="5729003360923133988">"<xliff:g id="RECEIVE_LINK_SPEED">%1$d</xliff:g> एमबीपीएस"</string>
<string name="wifi_ask_enable" msgid="2795469717302060104">"<xliff:g id="REQUESTER">%s</xliff:g> वाई-फ़ाई को चालू करना चाहता है"</string>
<string name="wifi_ask_disable" msgid="728366570145493573">"<xliff:g id="REQUESTER">%s</xliff:g> वाई-फ़ाई को बंद करना चाहता है"</string>
- <!-- no translation found for art_verifier_for_debuggable_title (6029838014407791341) -->
- <skip />
- <!-- no translation found for art_verifier_for_debuggable_summary (2250352478065428399) -->
- <skip />
+ <string name="art_verifier_for_debuggable_title" msgid="6029838014407791341">"डीबग वाले ऐप के बाइटकोड की पुष्टि करें"</string>
+ <string name="art_verifier_for_debuggable_summary" msgid="2250352478065428399">"डीबग किए जा सकने वाले ऐप्लिकेशन के लिए, ART को बाइटकोड की पुष्टि करने की मंज़ूरी दें"</string>
<string name="nfc_quick_toggle_title" msgid="6769159366307299004">"आस-पास के डिवाइस से संपर्क (एनएफसी)"</string>
<string name="nfc_quick_toggle_summary" product="tablet" msgid="8302974395787498915">"जब टैबलेट अन्य डिवाइस को स्पर्श करे तो डेटा ट्रांसफर करने दें"</string>
<string name="nfc_quick_toggle_summary" product="default" msgid="5237208142892767592">"जब फ़ोन दूसरे डिवाइस को टच करे तो डेटा ट्रांसफर करने दें"</string>
@@ -919,8 +917,7 @@
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"वाई-फ़ाई हॉटस्पॉट से डिवाइस काे जाेड़ने के लिए कम से कम एक बैंड चुनें:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP सेटिंग"</string>
<string name="wifi_privacy_settings" msgid="5500777170960315928">"निजता"</string>
- <!-- no translation found for wifi_privacy_settings_ephemeral_summary (1539659414108891004) -->
- <skip />
+ <string name="wifi_privacy_settings_ephemeral_summary" msgid="1539659414108891004">"अपने आप चुना गया एमएसी"</string>
<string name="wifi_dpp_add_device_to_network" msgid="8674936581557695411">"कोई डिवाइस जोड़ें"</string>
<string name="wifi_dpp_center_qr_code" msgid="6244508369721032655">"डिवाइस को “<xliff:g id="SSID">%1$s</xliff:g>” से जोड़ने के लिए QR कोड को कैमरा विंडो के बीच में लाएं"</string>
<string name="wifi_dpp_scan_qr_code" msgid="4794621158747044107">"QR कोड स्कैन करें"</string>
@@ -928,20 +925,13 @@
<string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="8096370383700478819">"QR कोड स्कैन करके वाई-फ़ाई से जुड़ें"</string>
<string name="wifi_dpp_share_wifi" msgid="9065890131734833809">"वाई-फ़ाई शेयर करें"</string>
<string name="wifi_dpp_scan_qr_code_with_another_device" msgid="8416440732377359392">"इस QR कोड को किसी दूसरे डिवाइस से स्कैन करके “<xliff:g id="SSID">%1$s</xliff:g>” में शामिल हों"</string>
- <!-- no translation found for wifi_dpp_could_not_detect_valid_qr_code (641893675646330576) -->
- <skip />
- <!-- no translation found for wifi_dpp_failure_authentication_or_configuration (3372757783382381044) -->
- <skip />
- <!-- no translation found for wifi_dpp_failure_not_compatible (2829930473520603740) -->
- <skip />
- <!-- no translation found for wifi_dpp_failure_timeout (5228320772245820458) -->
- <skip />
- <!-- no translation found for wifi_dpp_failure_generic (8030831192606098356) -->
- <skip />
- <!-- no translation found for wifi_dpp_failure_not_supported (2643768115109632725) -->
- <skip />
- <!-- no translation found for wifi_dpp_check_connection_try_again (2632966336733361805) -->
- <skip />
+ <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="641893675646330576">"QR कोड नहीं पहचाना जा सका. कोड को बीच में रखें और दोबारा कोशिश करें"</string>
+ <string name="wifi_dpp_failure_authentication_or_configuration" msgid="3372757783382381044">"फिर से कोशिश करें. अगर समस्या ठीक नहीं होती है, तो डिवाइस बनाने वाली कंपनी से संपर्क करें"</string>
+ <string name="wifi_dpp_failure_not_compatible" msgid="2829930473520603740">"काेई गड़बड़ी हुई"</string>
+ <string name="wifi_dpp_failure_timeout" msgid="5228320772245820458">"देख लें कि डिवाइस प्लग इन किया हुआ है, चार्ज हो चुका है, और चालू है"</string>
+ <string name="wifi_dpp_failure_generic" msgid="8030831192606098356">"देख लें कि डिवाइस प्लग इन किया हुआ है, चार्ज हो चुका है, और चालू है. अगर समस्या ठीक नहीं होती है, तो डिवाइस बनाने वाली कंपनी से संपर्क करें"</string>
+ <string name="wifi_dpp_failure_not_supported" msgid="2643768115109632725">"इस डिवाइस पर “<xliff:g id="SSID">%1$s</xliff:g>” जोड़ने की सुविधा काम नहीं करती"</string>
+ <string name="wifi_dpp_check_connection_try_again" msgid="2632966336733361805">"कनेक्शन जाँचें और फिर से कोशिश करें"</string>
<string name="wifi_dpp_choose_network" msgid="7139308800110200281">"नेटवर्क चुनें"</string>
<string name="wifi_dpp_choose_network_to_connect_device" msgid="4025269026652486605">"अपना डिवाइस जोड़ने के लिए कोई नेटवर्क चुनें"</string>
<string name="wifi_dpp_add_device_to_wifi" msgid="5459084866460319042">"इस डिवाइस को “<xliff:g id="SSID">%1$s</xliff:g>” से जोड़ें?"</string>
@@ -1077,11 +1067,6 @@
<item msgid="7715869266611010880">"मोबाइल"</item>
<item msgid="2838022395783120596">"केवल वाई-फ़ाई"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"वाई-फ़ाई को प्राथमिकता"</item>
<item msgid="5074515506087318555">"मोबाइल को प्राथमिकता"</item>
@@ -1090,12 +1075,7 @@
<item msgid="6132150507201243768">"वाई-फ़ाई"</item>
<item msgid="1118703915148755405">"मोबाइल"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
- <!-- no translation found for wifi_calling_off_explanation (564780186974911501) -->
- <skip />
+ <string name="wifi_calling_off_explanation" msgid="564780186974911501">"वाई-फ़ाई कॉलिंग चालू होने पर, आपका फ़ोन वाई-फ़ाई या मोबाइल और इंटरनेट सेवा देने वाली कंपनी के नेटवर्क से कॉल कर सकता है. यह आपकी सेटिंग और इस बात पर निर्भर करेगा कि इनमें से किस सिग्नल का प्रदर्शन बेहतर है. इस सुविधा को चालू करने से पहले, शुल्क और दूसरी जानकारी पाने के लिए मोबाइल और इंटरनेट सेवा देने वाली कंपनी से बात करें. <xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"आपातकालीन पता"</string>
<string name="emergency_address_summary" msgid="7751971156196115129">"जब आप वाई-फ़ाई पर आपातकालीन कॉल करते हैं, तब आपकी मौजूदा जगह को आपके पते के तौर पर इस्तेमाल किया जाता है"</string>
@@ -2065,8 +2045,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"दो मिनट"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"पढ़ने के लिए समय"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"कार्रवाई करने के लिए समय"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"चुनें कि कुछ समय तक दिखाई देने वाले ऐसे मैसेज जो आपको पढ़ने हैं वे कितनी देर तक दिखाई दें.\n\nयह सेटिंग सभी ऐप्लिकेशन में काम नहीं करती."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"चुनें कि आपको कार्रवाई करने के लिए कहने वाले मैसेज कितनी देर तक दिखाने हैं, लेकिन वे सिर्फ़ कुछ समय के लिए ही दिखाई देते हैं.\n\nयह सेटिंग सभी ऐप्लिकेशन पर काम नहीं करती है."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"दबाकर रखने की अवधि"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"रंग को पलटें"</string>
@@ -3017,7 +2996,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ब्लूटूथ, एनएफ़सी"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ब्लूटूथ"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ऐप्लिकेशन और सूचनाएं"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"अनुमतियां, डिफ़ॉल्ट ऐप"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"कार्य प्रोफ़ाइल चालू होने पर ऐप्लिकेशन से जुड़ी सूचना नहीं देखी जा सकती है."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"खाते"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"कोई खाता नहीं जोड़ा गया"</string>
@@ -3080,7 +3060,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"हमेशा चालू स्क्रीन, लॉक स्क्रीन डिसप्ले"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"लॉक स्क्रीन सूचना"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"चेहरा"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"फ़िंगरप्रिंट"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"हल्की रोशनी वाली स्क्रीन, टचस्क्रीन, बैटरी, स्मार्ट ब्राइटनेस, डाइनैमिक ब्राइटनेस"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"हल्की रोशनी वाली स्क्रीन, सुलाएं (कम बैटरी मोड), बैटरी, टाइम आउट, ध्यान दें, डिसप्ले, स्क्रीन, गतिविधि न होना"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"घुमाएं, फ़्लिप करें, घुमाव, पोर्ट्रेट, लैंडस्केप, स्क्रीन की दिशा, वर्टिकल, हॉरिज़ॉन्टल"</string>
@@ -3113,6 +3094,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"रिंगर मौन पर सेट है"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"रिंग की आवाज़ 80% है"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"मीडिया की आवाज़"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"कॉल की आवाज़"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"अलार्म की आवाज़"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"रिंग की आवाज़"</string>
@@ -3278,12 +3261,9 @@
<string name="hide_silent_icons_summary" msgid="7479863645940885952">"स्थिति बार में बिना आवाज़ की सूचनाओं के आइकॉन छिपाएं"</string>
<string name="notification_badging_title" msgid="5938709971403474078">"सूचना बिंदुओं की अनुमति दें"</string>
<string name="notification_bubbles_title" msgid="4750896810493858296">"सूचना बबल दिखाने की मंज़ूरी दें"</string>
- <!-- no translation found for swipe_direction_title (6877543492435053137) -->
- <skip />
- <!-- no translation found for swipe_direction_ltr (3623394320915041215) -->
- <skip />
- <!-- no translation found for swipe_direction_rtl (4972099509548044938) -->
- <skip />
+ <string name="swipe_direction_title" msgid="6877543492435053137">"स्वाइप करने पर होने वाली कार्रवाइयां"</string>
+ <string name="swipe_direction_ltr" msgid="3623394320915041215">"खारिज करने के लिए दाईं ओर स्वाइप करें और मेन्यू दिखाने के लिए बाईं ओर"</string>
+ <string name="swipe_direction_rtl" msgid="4972099509548044938">"खारिज करने के लिए बाईं ओर स्वाइप करें और मेन्यू दिखाने के लिए दाईं ओर"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"ब्लिंक लाइट"</string>
<string name="lock_screen_notifications_title" msgid="2583595963286467672">"लॉक स्क्रीन पर दिखाई दे"</string>
<string name="locked_work_profile_notification_title" msgid="8327882003361551992">"कार्य प्रोफ़ाइल लॉक होने पर"</string>
@@ -3607,8 +3587,7 @@
<string name="advanced_apps" msgid="4812975097124803873">"बेहतर सेटिंग"</string>
<string name="configure_apps" msgid="6685680790825882528">"ऐप्स कॉन्फ़िगर करें"</string>
<string name="unknown_app" msgid="5275921288718717656">"अज्ञात ऐप"</string>
- <!-- no translation found for app_permissions (5584182129908141622) -->
- <skip />
+ <string name="app_permissions" msgid="5584182129908141622">"अनुमतियों का प्रबंधन"</string>
<string name="app_permissions_summary" msgid="5163974162150406324">"<xliff:g id="APPS">%1$s</xliff:g> का उपयोग करने वाले ऐप्लिकेशन"</string>
<string name="tap_to_wake" msgid="7211944147196888807">"वेक करने के लिए टैप करें"</string>
<string name="tap_to_wake_summary" msgid="4341387904987585616">"डिवाइस की स्क्रीन को चालू करने के लिए, स्क्रीन पर कहीं भी दो बार छूएं"</string>
@@ -4400,8 +4379,7 @@
<string name="network_connection_timeout_dialog_ok" msgid="8924405960181020156">"फिर से कोशिश करें"</string>
<string name="network_connection_errorstate_dialog_message" msgid="6953778550775646710">"कुछ गड़बड़ी हुई है ऐप्लिकेशन ने डिवाइस चुनने का अनुरोध रद्द कर दिया है."</string>
<string name="network_connection_connect_successful" msgid="5935510954474494928">"कनेक्शन कामयाब रहा"</string>
- <!-- no translation found for network_connection_request_dialog_showall (6938922880244567521) -->
- <skip />
+ <string name="network_connection_request_dialog_showall" msgid="6938922880244567521">"सभी दिखाएं"</string>
<plurals name="show_bluetooth_devices" formatted="false" msgid="1715020480026568408">
<item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> डिवाइस कनेक्ट हैं</item>
<item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> डिवाइस कनेक्ट हैं</item>
@@ -4429,8 +4407,7 @@
<string name="search_bar_account_avatar_content_description" msgid="4718261366290530792"></string>
<string name="permission_bar_chart_empty_text" msgid="4380731551728553852">"किसी भी ऐप्लिकेशन ने अनुमतियों का इस्तेमाल नहीं किया"</string>
<string name="permission_bar_chart_title" msgid="7748942699610196566">"पिछले 24 घंटों में सबसे ज़्यादा इस्तेमाल की गई अनुमतियां"</string>
- <!-- no translation found for permission_bar_chart_details (5648719432839246667) -->
- <skip />
+ <string name="permission_bar_chart_details" msgid="5648719432839246667">"अनुमतियों का डैशबोर्ड देखें"</string>
<string name="accessibility_usage_title" msgid="5136753034714150614">"सुलभता सुविधाओं का इस्तेमाल"</string>
<plurals name="accessibility_usage_summary" formatted="false" msgid="4364945481915750314">
<item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> सुविधाओं को आपके डिवाइस पर पूरा एक्सेस है</item>
@@ -4438,11 +4415,12 @@
</plurals>
<string name="manage_app_notification" msgid="877012013856561440">"<xliff:g id="APP_NAME">%1$s</xliff:g> की सूचनाएं प्रबंधित करें"</string>
<string name="no_suggested_app" msgid="5722034393216359231">"कोई भी सुझाया गया ऐप्लिकेशन नहीं है"</string>
- <!-- no translation found for notification_few_channel_count_summary (1090888820158822106) -->
- <!-- no translation found for notification_many_channel_count_summary (8647409434789898073) -->
- <skip />
+ <plurals name="notification_few_channel_count_summary" formatted="false" msgid="1090888820158822106">
+ <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> सूचना के चैनल.</item>
+ <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> सूचना के चैनल.</item>
+ </plurals>
+ <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> सूचना के चैनल. सभी को प्रबंधित करने के लिए टैप करें."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"स्विच आउटपुट"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"इस समय <xliff:g id="DEVICE_NAME">%1$s</xliff:g> पर खेल रहा है"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"शायद सेवा देने वाली इस कंपनी की आपकी सदस्यता रद्द हो गई है बार-बार रिन्यू होने वाली सदस्यताएं रद्द नहीं होंगी. ज़्यादा जानकारी के लिए सेवा देने वाली कंपनी से संपर्क करें."</string>
</resources>
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
index 497c2ac..907c879 100644
--- a/res/values-hr/arrays.xml
+++ b/res/values-hr/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Globalno"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 1d1f455..b22e53a 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -956,10 +956,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Odaberite drugu mrežu"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Dodavanje uređaja nije uspjelo"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Uređaj je pronađen"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Dijeljenje Wi-Fija s ovim uređajem…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Povezivanje…"</string>
<string name="retry" msgid="6472609612090877557">"Ponovi"</string>
<string name="wifi_shared" msgid="844142443226926070">"Podijeli s drugim korisnicima uređaja"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nepromijenjeno)"</string>
@@ -1084,11 +1082,6 @@
<item msgid="7715869266611010880">"Mobilni uređaj"</item>
<item msgid="2838022395783120596">"Samo Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Prednost ima Wi-Fi mreža"</item>
<item msgid="5074515506087318555">"Za mobilne uređaje"</item>
@@ -1097,10 +1090,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobilni uređaj"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kada su Wi-Fi pozivi uključeni, telefon može usmjeravati pozive putem Wi-Fi mreža ili mreže vašeg mobilnog operatera, ovisno o vašoj želji i o tome koji je signal jači. Prije nego što uključite tu značajku, raspitajte se o naknadi i ostalim pojedinostima kod mobilnog operatera.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Adresa za hitne pozive"</string>
@@ -2074,8 +2063,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minute"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Vrijeme za čitanje"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Vrijeme za vršenje radnje"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Odaberite koliko će se dugo prikazivati poruke koje trebate pročitati, no vidljive su samo privremeno.\n\nNeke aplikacije ne podržavaju tu postavku."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Odaberite koliko će se dugo prikazivati poruke koje traže da izvršite radnju, no vidljive su samo privremeno.\n\nNeke aplikacije ne podržavaju tu postavku."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Trajanje pritiska"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inverzija boja"</string>
@@ -3046,7 +3034,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikacije i obavijesti"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Dopuštenja, zadane aplikacije"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Pristup obavijestima nije dostupan za aplikacije u radnom profilu."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Računi"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nije dodan nijedan račun"</string>
@@ -3109,7 +3098,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambijentalni zaslon, prikaz zaključanog zaslona"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"obavijest o zaključanom zaslonu"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"lice"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"otisak prsta"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"zatamnjenje zaslona, dodirni zaslon, baterija, pametna svjetlina, dinamična svjetlina"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"zatamnjeni zaslon, mirovanje, baterija, vrijeme čekanja, pozornost, prikaz, zaslon, neaktivnost"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"zakrenuti, okrenuti, rotacija, portret, pejzaž, usmjerenje, okomito, vodoravno"</string>
@@ -3142,6 +3132,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Softver zvona postavljen na nečujno"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Glasnoća zvona na 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Glasnoća medija"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Glasnoća poziva"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Glasnoća alarma"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Glasnoća zvona"</string>
@@ -4295,10 +4287,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Ažuriranje načina Ne uznemiravaj"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Pauzirajte obavijesti da biste ostali usredotočeni"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Ova značajka nije dostupna na ovom uređaju"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Ova značajka nije dostupna"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Ovo će usporiti telefon"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Primijeni potpuna mjerenja GNSS-a"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Prati sve konstelacije i frekvencije GNSS-a bez određivanja radnog omjera"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Dopusti pokretanje pozadinskih aktivnosti"</string>
@@ -4508,6 +4498,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> kanal obavijesti. Dodirnite za upravljanje svim kanalima."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Promjena izlaza"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Trenutačno se reproducira na uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Vaša pretplata kod ovog davatelja usluga možda će se otkazati. Ponavljajuće pretplate neće se otkazati. Više informacija zatražite od davatelja usluga."</string>
</resources>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index feca9e8..7bda838 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Globális"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 2894dab..4e12f8b 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Másik hálózat választása"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Nem sikerült hozzáadni az eszközt"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Eszköz észlelve"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi megosztása ezzel az eszközzel…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Csatlakozás…"</string>
<string name="retry" msgid="6472609612090877557">"Újra"</string>
<string name="wifi_shared" msgid="844142443226926070">"Megosztás az eszköz más felhasználóival"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nem változott)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobil"</item>
<item msgid="2838022395783120596">"Csak Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi előnyben részesítve"</item>
<item msgid="5074515506087318555">"Preferált: mobil"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobil"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Ha be van kapcsolva a Wi-Fi-hívás, akkor a telefon az Ön beállításaitól és a jelerősségtől függően vagy a Wi-Fi-hálózaton, vagy a mobilszolgáltató hálózatán át vezeti a hívásokat. A funkció bekapcsolása előtt tájékozódjon mobilszolgáltatójánál a díjakról és egyéb részletekről. <xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>."</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Vészhelyzeti cím"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 perc"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Olvasásra szánt idő"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Művelet elvégzésére szánt idő"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Válassza ki, hogy mennyi ideig látszódjanak az elolvasandó, de csak ideiglenesen látható üzenetek .\n\nNem minden alkalmazás támogatja ezt a beállítást."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Válassza ki, hogy mennyi ideig legyenek láthatók azok az üzenetek, amelyek művelet elvégzését kérik, de csak ideiglenesen láthatók a képernyőn.\n\nNem minden alkalmazás támogatja ezt a beállítást."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Érintés és tartási késleltetés"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Színek invertálása"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Alkalmazások és értesítések"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Engedélyek, alapértelmezett alkalmazások"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Az értesítésekhez való hozzáférés a munkaprofil alkalmazásai számára nem áll rendelkezésre."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Fiókok"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nincs hozzáadott fiók"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Aktív kijelző, lezárási képernyő"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"lezárási képernyőn megjelenő értesítés"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"arc"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ujjlenyomat"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"képernyő halványítása, érintőképernyő, akkumulátor, okos fényerő, dinamikus fényerő"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"képernyő halványítása, alvó mód, akkumulátor, időtúllépés, figyelem, képernyő, kijelző, inaktivitás"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"elforgatás, elfordítás, forgatás, álló, fekvő, tájolás, függőleges, vízszintes"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Csengetés: néma"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Csörgetés hangereje: 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Média hangereje"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Hívás hangereje"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Ébresztés hangereje"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Csengés hangereje"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"A Ne zavarjanak mód frissítése"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Az összpontosításhoz szüneteltetheti az értesítéseket"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Ez a funkció nem áll rendelkezésre ezen az eszközön"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Ez a funkció nem áll rendelkezésre."</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Használata lelassítaná a telefont."</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Teljes GNSS-mérés indítása"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Az összes GNSS-műhold és -frekvencia nyomon követése aktívciklus-szabályozás nélkül"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Háttér-tevékenységek megkezdésének engedélyezése"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> értesítési csatorna. Koppintson az összes kezeléséhez."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Kimenet átváltása"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Lejátszás folyamatban a(z) <xliff:g id="DEVICE_NAME">%1$s</xliff:g> eszközön"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Előfordulhat, hogy az ennél a szolgáltatónál lévő előfizetését visszavonják. A megújuló előfizetéseket nem vonják vissza. Ha további információra van szüksége, lépjen kapcsolatba szolgáltatójával."</string>
</resources>
diff --git a/res/values-hy/arrays.xml b/res/values-hy/arrays.xml
index 725e660..688b0de 100644
--- a/res/values-hy/arrays.xml
+++ b/res/values-hy/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Համաշխարհային"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 46c7118..0732651 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -944,10 +944,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Ընտրել այլ ցանց"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Չհաջողվեց ավելացնել սարք"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Գտնվել է 1 սարք"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Սարքը միանում է Wi‑Fi-ին…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Միացում…"</string>
<string name="retry" msgid="6472609612090877557">"Կրկնել"</string>
<string name="wifi_shared" msgid="844142443226926070">"Կիսվել այլ սարքերի օգտատերերի հետ"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(անփոփոխ)"</string>
@@ -1071,11 +1069,6 @@
<item msgid="7715869266611010880">"Բջջային"</item>
<item msgid="2838022395783120596">"Միայն Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi, նախընտրելի"</item>
<item msgid="5074515506087318555">"Նախընտրելի է բջջային ցանցը"</item>
@@ -1084,10 +1077,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Բջջային"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Երբ «Զանգեր Wi-Fi-ով» գործառույթը միացված է, հեռախոսը կարող է ուղարկել զանգերը Wi-Fi ցանցերի կամ ձեր օպերատորի ցանցի միջոցով՝ կախված ձեր նախընտրություններից և ազդանշանի ուժգնությունից: Մինչ այս գործառույթը միացնելը՝ տեղեկացեք վճարների և այլ մանրամասների մասին ձեր օպերատորից:<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Արտակարգ իրավիճակների հասցե"</string>
@@ -2058,8 +2047,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 րոպե"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Ժամանակ կարդալու համար"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Ժամանակ գործողության կատարման համար"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Նշեք, թե որքան ժամանակ է ձեզ անհրաժեշտ` ավտոմատ անհետացող հաղորդագրությունները կարդալու համար:\n\nԱյս կարգավորումը ոչ բոլոր հավելվածներում է աջակցվում:"</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Նշեք, թե որքան ժամանակ է ձեզ անհրաժեշտ՝ կատարելու ավտոմատ անհետացող հաղորդագրություններում ներկայացված գործողությունները:\n\nԱյս կարգավորումը ոչ բոլոր հավելվածներում է աջակցվում:"</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Սեղմելու և պահելու հապաղումը"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Գունաշրջում"</string>
@@ -3014,7 +3002,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Հավելվածներ և ծանուցումներ"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Թույլտվություններ, կանխադրված հավելվածներ"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Աշխատանքային պրոֆիլի հավելվածներին ծանուցումների օգտագործումը հասանելի չէ:"</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Հաշիվներ"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Հաշիվներ չեն ավելացվել"</string>
@@ -3077,7 +3066,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ամբիենտ էկրան, կողպէկրան"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ծանուցում կողպէկրանին"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"դեմք"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"մատնահետք"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"խամրեցված էկրան, հպէկրան, մարտկոց, խելացի պայծառություն, դինամիկ պայծառություն"</string>
<!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
<skip />
@@ -3111,6 +3101,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Զանգի ձայնն անջատված է"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Զանգի ուժգնությունը 80%-ի դեպքում"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Մուլտիմեդիա"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Ձայն"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Զարթուցիչ"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Զանգերանգ"</string>
@@ -4231,10 +4223,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Թարմացնե՞լ «Չանհանգստացնել» ռեժիմը"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Չցուցադրել շեղող ծանուցումները"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Տվյալ գործառույթը հասանելի չէ այս սարքի վրա"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Գործառույթը հասանելի չէ"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Հեռախոսի աշխատանքը կդանդաղի"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"GNSS-ի չափումների ամբողջական բեռնում"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Հետագծել GNSS-ի բոլոր սխեմաներն ու հաճախականությունները՝ առանց աշխատաշրջանի"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Թույլատրել աշխատանքը ֆոնային ռեժիմում"</string>
@@ -4438,6 +4428,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Ծանուցումների <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> կապուղի: Հպեք՝ բոլոր կապուղիները կառավարելու համար:"</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Աուդիոելքի սարքի փոխարկում"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Նվագարկվում է <xliff:g id="DEVICE_NAME">%1$s</xliff:g> սարքում"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Այս ծառայության բաժանորդագրությունը կարող է չեղարկվել: Պարբերական բաժանորդագրությունները կպահպանվեն: Լրացուցիչ տեղեկությունների համար դիմեք ծառայության մատակարարին:"</string>
</resources>
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index b60ddf2..0908941 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index b508aa1..db34123 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Pilih jaringan lainnya"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Tidak dapat menambahkan perangkat"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Perangkat ditemukan"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Membagikan Wi‑Fi kepada perangkat ini…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Menyambungkan…"</string>
<string name="retry" msgid="6472609612090877557">"Coba lagi"</string>
<string name="wifi_shared" msgid="844142443226926070">"Berbagi dengan pengguna perangkat lain"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(tidak diubah)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Ponsel"</item>
<item msgid="2838022395783120596">"Khusus Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi dipilih"</item>
<item msgid="5074515506087318555">"Seluler dipilih"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Ponsel"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Jika panggilan Wi-Fi aktif, ponsel dapat merutekan panggilan telepon melalui jaringan Wi-Fi atau jaringan operator, bergantung pada preferensi dan sinyal mana yang lebih kuat. Sebelum mengaktifkan fitur ini, sebaiknya tanyakan info biaya dan detail lainnya ke operator.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Alamat Darurat"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 menit"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Waktunya membaca"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Waktunya mengambil tindakan"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Pilih durasi pesan yang ingin dibaca, namun hanya terlihat sementara, ditampilkan.\n\nTidak semua aplikasi mendukung setelan ini."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Memilih durasi pesan yang meminta untuk mengambil tindakan, namun hanya terlihat sementara, ditampilkan.\n\nTidak semua aplikasi mendukung setelan ini."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Penundaan sentuh & tahan"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversi warna"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikasi & notifikasi"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Izin, aplikasi default"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Akses notifikasi tidak tersedia untuk aplikasi di profil kerja"</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Akun"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Tidak ada akun yang ditambahkan"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Tampilan standby, tampilan Layar kunci"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notifikasi layar kunci"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"wajah"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"sidik jari"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"redupkan layar, layar sentuh, baterai, smart brightness, kecerahan dinamis"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"layar redup, tidur, baterai, waktu tunggu, perhatian, tampilan, layar, tidak aktif"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"putar, balik, rotasi, potret, lanskap, orientasi, vertikal, horizontal"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Pendering disetel senyap"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Volume dering 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Volume media"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Volume panggilan"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume alarm"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume dering"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Perbarui mode Jangan Ganggu"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Jeda notifikasi agar tetap fokus"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Fitur ini tidak tersedia di perangkat"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Fitur ini tidak tersedia"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Fitur ini akan memperlambat ponsel Anda"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Paksa ukuran GNSS penuh"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Lacak semua konstelasi dan frekuensi GNSS tanpa siklus tugas"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Izinkan aktivitas latar belakang dimulai"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> saluran notifikasi. Tap untuk mengelola semua."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Ganti keluaran"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Sedang diputar di <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Langganan Anda dengan penyedia ini mungkin dibatalkan. Langganan berulang tidak akan dibatalkan. Untuk mengetahui informasi selengkapnya, hubungi penyedia Anda."</string>
</resources>
diff --git a/res/values-is/arrays.xml b/res/values-is/arrays.xml
index 038b8c2..1d33bf1 100644
--- a/res/values-is/arrays.xml
+++ b/res/values-is/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Alþjóðlegt"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 88d52de..3d8d0d0 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Velja annað net"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Ekki var hægt að bæta við tæki"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Tæki fannst"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Deilir Wi‑Fi með þessu tæki…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Tengist…"</string>
<string name="retry" msgid="6472609612090877557">"Reyna aftur"</string>
<string name="wifi_shared" msgid="844142443226926070">"Deila með öðrum notendum tækisins"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(óbreytt)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Farsímakerfi"</item>
<item msgid="2838022395783120596">"Wi-Fi eingöngu"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi í forgangi"</item>
<item msgid="5074515506087318555">"Farsímakerfi í forgangi"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Farsímakerfi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Þegar kveikt er á Wi-Fi símtölum getur síminn beint símtölum um Wi-Fi net eða kerfi símafyrirtækisins, eftir því hvað þú velur og hvor tengingin er betri. Kannaðu verðskrá og aðrar upplýsingar hjá símafyrirtækinu þínu áður en þú kveikir á þessu.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Neyðarheimilisfang"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 mínútur"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tími til að lesa"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tími til að grípa til aðgerða"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Veldu hve lengi á að birta skilaboð sem þú þarft að lesa en sem birtast aðeins tímabundið.\n\nEkki er víst að öll forrit styðji þennan eiginleika."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Veldu hversu lengi skilaboð birtast sem biðja þig um að grípa til aðgerða, en eru aðeins sýnileg tímabundið.\n\nEkki er víst að öll forrit styðji þennan eiginleika."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Töf þar til snerting er numin"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Umsnúningur lita"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Forrit og tilkynningar"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Heimildir, sjálfgefin forrit"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Tilkynningaaðgangur er ekki í boði fyrir forrit í vinnusniði."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Reikningar"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Engum reikningum bætt við"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Umhverfisskjár, Lásskjár"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"tilkynningastillingar fyrir lásskjá"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"andlit"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingrafar"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"myrkva skjá, snertiskjár, rafhlaða, birtuaðlögun, kvikt birtustig"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"myrkva skjá, biðstaða, rafhlaða, tímamörk, athuga, skjár, aðgerðarleysi"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"snúa, spegla, snúningur, skammsnið, langsnið, stefna, lárétt, lóðrétt"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Hljóð tekið af hringjara"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Hljóðstyrkur er 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Hljóðstyrkur margmiðlunarefnis"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Hljóðstyrkur símtala"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Hljóðstyrkur vekjara"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Hljóðstyrkur hringingar"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Uppfæra „Ónáðið ekki“"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Gera hlé á tilkynningum svo þær trufli ekki"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Þessi eiginleiki er ekki í boði í þessu tæki"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Þessi eiginleiki er ekki í boði"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Hann hægir á símanum"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Full GNSS-mæling"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Rekja öll GNSS söfn og tíðnir með engum vinnulotum"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Leyfa aðgerðir í bakgrunninum"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> tilkynningarásir. Ýttu til að stjórna öllum."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Skipta um úttak"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Í spilun núna í <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Áskrift þinni hjá þessari þjónustu verður sagt upp. Áskrift sem endurnýjast sjálfkrafa verður ekki sagt upp. Hafðu samband við þjónustuveituna til að fá frekari upplýsingar."</string>
</resources>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index a4dbc76..c95b265 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Globale"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 37be42d..d4f6c81 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Scegli una rete diversa"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Impossibile aggiungere il dispositivo"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Dispositivo trovato"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Condivisione della rete Wi‑Fi con questo dispositivo…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Connessione…"</string>
<string name="retry" msgid="6472609612090877557">"Riprova"</string>
<string name="wifi_shared" msgid="844142443226926070">"Condividi con altri utenti del dispositivo"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(invariato)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Rete mobile"</item>
<item msgid="2838022395783120596">"Solo Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Rete preferita: Wi-Fi"</item>
<item msgid="5074515506087318555">"Modalità preferita: dati mobili"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Rete mobile"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Se le chiamate Wi-Fi sono attive, il tuo telefono può indirizzare le chiamate tramite reti Wi-Fi o la rete del tuo operatore, in base alle tue preferenze e alla potenza del segnale. Prima di attivare questa funzionalità, verifica tariffe e altri dettagli con il tuo operatore.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Indirizzo per le emergenze"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuti"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tempo per la lettura"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tempo per intervenire"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Scegli per quanto tempo lasciare visibili i messaggi che devi leggere e che vengono mostrati solo temporaneamente.\n\nNon tutte le app supportano questa impostazione."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Scegli per quanto tempo lasciare visibili i messaggi che ti chiedono di eseguire delle operazioni e che vengono mostrati solo temporaneamente.\n\nNon tutte le app supportano questa impostazione."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Ritardo tocco e pressione"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversione colori"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"App e notifiche"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Autorizzazioni, app predefinite"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"L\'accesso alle notifiche non è disponibile per le app nel profilo di lavoro."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Account"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nessun account aggiunto"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Display ambient, display della schermata di blocco"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notifica schermata di blocco"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"volto"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"impronta digitale"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"attenuazione schermo, touchscreen, batteria, luminosità intelligente, luminosità dinamica"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"oscurare lo schermo, sospensione, batteria, timeout, attenzione, display, schermo, inattività"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"ruotare, capovolgere, rotazione, verticale, orizzontale, orientamento"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Suoneria impostata su Silenzioso"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Volume suoneria all\'80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Volume contenuti multimediali"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Volume chiamate"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume sveglia"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume suoneria"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Aggiorna modalità Non disturbare"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Metti in pausa le notifiche per mantenere la concentrazione"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Questa funzione non è disponibile su questo dispositivo"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Questa funzionalità non è disponibile"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Rallenta il telefono"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Forza esecuzione completa delle misurazioni GNSS"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Monitora tutte le costellazioni e le frequenze GNSS senza ciclo di lavoro utile"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Consenti l\'avvio dell\'attività in background"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canali di notifica. Tocca per gestirli tutti."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Cambia uscita"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Attualmente in riproduzione sul dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Il tuo abbonamento a questo fornitore potrebbe essere annullato. Gli abbonamenti ricorrenti non verranno annullati. Per ulteriori informazioni, rivolgiti al tuo fornitore."</string>
</resources>
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
index 41d1cf9..0a56aa3 100644
--- a/res/values-iw/arrays.xml
+++ b/res/values-iw/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"כללי"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 688f4c2..0e20d92d 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -972,10 +972,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"בחירה ברשת אחרת"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"לא ניתן היה להוסיף את המכשיר"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"המכשיר נמצא"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"מתבצע שיתוף Wi‑Fi עם מכשיר זה…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"בתהליך התחברות…"</string>
<string name="retry" msgid="6472609612090877557">"ניסיון נוסף"</string>
<string name="wifi_shared" msgid="844142443226926070">"שתף עם משתמשים אחרים במכשיר"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ללא שינוי)"</string>
@@ -1101,11 +1099,6 @@
<item msgid="7715869266611010880">"סלולרי"</item>
<item msgid="2838022395783120596">"Wi-Fi בלבד"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi מועדף"</item>
<item msgid="5074515506087318555">"מצב מועדף: רשת סלולרית"</item>
@@ -1114,10 +1107,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"סלולרי"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"כשתכונת שיחות Wi-Fi פועלת, הטלפון יכול לנתב שיחות ברשתות Wi-Fi או ברשת של הספק, בהתאם להעדפה שלך ולאות שחזק יותר. לפני הפעלת תכונה זו, יש לבדוק עם הספק פרטים הקשורים לעמלות ופרטים אחרים.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"כתובת למקרה חירום"</string>
@@ -2094,8 +2083,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 דקות"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"משך הזמן לקריאה"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"משך הזמן לנקיטת פעולה"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ניתן לבחור את משך הזמן להצגת הודעות שיש לקרוא, אשר גלויות באופן זמני בלבד.\n\nלא כל האפליקציות תומכות בהגדרה זו."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"ניתן לבחור את משך הזמן להצגת הודעות שדורשות נקיטת פעולה כלשהי, אך גלויות באופן זמני בלבד.\n\nלא כל האפליקציות תומכות בהגדרה זו."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"עיכוב של נגיעה והחזקה"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"היפוך צבעים"</string>
@@ -3088,7 +3076,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"אפליקציות והתראות"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"הרשאות ואפליקציות המוגדרות כברירת מחדל"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"הגישה להתראות אינה זמינה לאפליקציות בפרופיל העבודה."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"חשבונות"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"לא נוספו חשבונות"</string>
@@ -3151,7 +3140,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"תצוגה רגישה לסביבה, תצוגה של מסך נעילה"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"התראות במסך הנעילה"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"פנים"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"טביעת אצבע"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"עמעום מסך, מסך מגע, סוללה, בהירות חכמה, בהירות דינמית"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"עמעום מסך, שינה, סוללה, זמן קצוב לתפוגה, תשומת לב, תצוגה, מסך, חוסר פעילות"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"לסובב, להפוך, סיבוב, לאורך, לרוחב, כיוון, אנכי, אופקי"</string>
@@ -3184,6 +3174,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"תוכנת הצלצול במצב שקט"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"עוצמת צלצול ב-80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"עוצמת קול של מדיה"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"עוצמת קול של שיחות"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"עוצמת קול של התראה"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"עוצמת צלצול"</string>
@@ -4373,10 +4365,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"עדכון המצב \'נא לא להפריע\'"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"אפשר להשהות את ההתראות כדי שלא יפריעו לך"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"התכונה לא זמינה במכשיר הזה"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"תכונה זו לא זמינה"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"הטלפון יפעל באיטיות עם תכונה זו"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"אילוץ של הרצה מלאה של מדידות Gnss"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"מעקב אחר כל מערכות הניווט והתדרים של GNSS ללא מחזור פעילות"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"הפעלת התחלות של פעילות ברקע"</string>
@@ -4590,6 +4580,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ערוצי התראות. יש להקיש כדי לנהל הכול."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"החלפת פלט"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"בהפעלה כרגע ב-<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ייתכן שהמינוי שלך לספק זה יבוטל. מינויים חוזרים לא יבוטלו. למידע נוסף, יש לפנות לספק."</string>
</resources>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index 1a5c407..86f0487 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM / SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"グローバル"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 6eba8d6..e9535c3 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"別のネットワークを選択"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"デバイスを追加できませんでした"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"デバイスが見つかりました"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi をこのデバイスと共有しています…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"接続しています…"</string>
<string name="retry" msgid="6472609612090877557">"再試行"</string>
<string name="wifi_shared" msgid="844142443226926070">"他の端末ユーザーと共有する"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(変更なし)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"モバイル"</item>
<item msgid="2838022395783120596">"Wi-Fi のみ"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi 優先"</item>
<item msgid="5074515506087318555">"モバイル優先"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"モバイル"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi 通話を ON にすると、ユーザーの設定と信号の強度に応じて、スマートフォンから Wi-Fi ネットワークか携帯通信会社ネットワークのいずれかを経由して通話をルーティングできるようになります。この機能を ON にする場合は、事前に料金などの条件について携帯通信会社にご確認ください。<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"緊急対応の住所"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2分"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"表示しておく時間"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"操作を行う時間"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"表示可能な時間が限られているメッセージの表示時間を指定してください。\n\nこの設定に対応していないアプリもあります。"</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"操作が求められるが表示可能な時間が限られているメッセージの表示時間を指定してください。\n\nこの設定に対応していないアプリもあります。"</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"長押しする時間"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"色反転"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth、NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"アプリと通知"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"権限、デフォルト アプリ"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"仕事用プロファイルのアプリには通知へのアクセス権限はありません。"</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"アカウント"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"アカウントが追加されていません"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"アンビエント表示, ロック画面表示"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ロック画面の通知"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"顔"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"指紋"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"画面を暗くする, タッチスクリーン, 電池, スマート ブライトネス, ダイナミック ブライトネス"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"画面を暗くする, スリープ, 電池, タイムアウト, 注意, ディスプレイ, 画面, 操作が行われていない"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"回転, 切り替え, ローテーション, 縦向き, 横向き, 画面の向き, 縦, 横"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"マナーモード着信に設定"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"着信音の音量: 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"メディアの音量"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"通話音量"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"アラームの音量"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"着信音の音量"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"サイレント モードの更新"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"集中するために通知を一時停止する"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"この機能は、お使いの端末ではご利用いただけません"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"この機能はご利用いただけません"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"このスマートフォンの動作が遅くなります"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"GNSS 計測の完全な実行"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"デューティ サイクリングを無効にした状態で、すべての GNSS コンステレーションと頻度をトラッキングします"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"バックグラウンド アクティビティの開始を許可する"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> 件の通知チャンネルがあります。すべて管理するにはタップしてください。"</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"出力の切り替え"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"現在 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> で再生しています"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"このプロバイダとの定期購入が解約されることがあります。定期的な定期購入は解約されません。詳しくは、プロバイダにお問い合わせください。"</string>
</resources>
diff --git a/res/values-ka/arrays.xml b/res/values-ka/arrays.xml
index 179462c..33cb6c5 100644
--- a/res/values-ka/arrays.xml
+++ b/res/values-ka/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"გლობალური"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 4a0d7f4..77c4808 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -944,10 +944,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"სხვა ქსელის არჩევა"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"მოწყობილობის დამატება ვერ მოხერხდა"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"მოწყობილობა მოიძებნა"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"ზიარდება Wi‑Fi ამ მოწყობილობასთან…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"მიმდინარეობს დაკავშირება…"</string>
<string name="retry" msgid="6472609612090877557">"ხელახლა ცდა"</string>
<string name="wifi_shared" msgid="844142443226926070">"მოწყობილობის სხვა მომხმარებლებთან გაზიარება"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(უცვლელი)"</string>
@@ -1071,11 +1069,6 @@
<item msgid="7715869266611010880">"მობილური"</item>
<item msgid="2838022395783120596">"მხოლოდ Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"სასურველია Wi-Fi"</item>
<item msgid="5074515506087318555">"უპირატესობა მიენიჭოს მობილურს"</item>
@@ -1084,10 +1077,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"მობილური"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi დარეკვის ჩართვის შემთხვევაში, ტელეფონს ზარების მარშრუტიზაცია შეუძლია როგორც Wi-Fi ქსელების, ისე თქვენი ოპერატორის ქსელის მეშვეობით, რაც დამოკიდებულია თქვენ მიერ მითითებულ პარამეტრებსა და კონკრეტული სიგნალის სიძლიერეზე. ამ ფუნქციის ჩართვამდე მიმართეთ თქვენს ოპერატორს ტარიფებისა და სხვა დეტალების დასაზუსტებლად.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"საგანგებო მისამართი"</string>
@@ -2058,8 +2047,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 წუთი"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"წაკითხვის დრო"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"ქმედების შესრულების დრო"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"აირჩიეთ, რა დროის განმავლობაში გამოჩნდეს შეტყობინებები, რომელთა წაკითხვაც გჭირდებათ, მაგრამ მხოლოდ დროებით ჩანს.\n\nეს პარამეტრი არ არის მხარდაჭერილი ყველა აპის მიერ."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"აირჩიეთ, რა დროის განმავლობაში გამოჩნდეს შეტყობინებები, რომლებიც გთხოვთ ქმედების შესრულებას, თუმცა მხოლოდ დროებით ჩანს.\n\nეს პარამეტრი არ არის მხარდაჭერილი ყველა აპის მიერ."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"შეხება და დაყოვნება"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"ფერის ინვერსია"</string>
@@ -3014,7 +3002,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"აპები და შეტყობინებები"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"ნებართვები, ნაგულისხმევი აპები"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"შეტყობინებებზე წვდომა სამსახურის პროფილში არსებული აპებისთვის მიუწვდომელია."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"ანგარიშები"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"ანგარიშები დამატებული არ არის"</string>
@@ -3077,7 +3066,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ემბიენტური ეკრანი, ჩაკეტილი ეკრანი"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"შეტყობინება ჩაკეტილ ეკრანზე"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"სახე"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"თითის ანაბეჭდი"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ეკრანის გამქრქალება, სენსორული ეკრანი, ბატარეა, გონივრული სიკაშკაშე, დინამიკური სიკაშკაშე"</string>
<!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
<skip />
@@ -3111,6 +3101,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"მრეკავი დაყენებულია უხმოზე"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"ზარის სიმძლავრე: 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"მედიის ხმა"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"ზარის ხმა"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"მაღვიძარას ხმა"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"ზარის სიმძლავრე"</string>
@@ -4231,10 +4223,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"„არ შემაწუხოთ“ რეჟიმის განახლება"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"შეტყობინებების დაპაუზება კონცენტრირების შესანარჩუნებლად"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"ამ მოწყობილობაზე ეს ფუნქცია მიუწვდომელია"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"ეს ფუნქცია მიუწვდომელია"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ის შეანელებს ამ ტელეფონს"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"სრული GNSS გაზომვის განხორციელების იძულება"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ყველა GNSS კონსტელაციისა და სიხშირის აღრიცხვა, დატვირთვის კოეფიციენტის გარეშე"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"აქტივობის ფონურ რეჟიმში დაწყების დაშვება"</string>
@@ -4438,6 +4428,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"შეტყობინებათა <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> არხი. შეეხეთ ყველას სამართავად."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"გამომავალი სიგნალის გადართვა"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"ამჟამად იკვრება <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-ზე"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ამ პროვაიდერის გამოწერა შეიძლება გაგიუქმდეთ. განმეორებადი გამოწერები არ გაუქმდება. დამატებითი ინფორმაციისთვის მიმართეთ თქვენს პროვაიდერს."</string>
</resources>
diff --git a/res/values-kk/arrays.xml b/res/values-kk/arrays.xml
index f6b4b74..03dc184 100644
--- a/res/values-kk/arrays.xml
+++ b/res/values-kk/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM картасы"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Бүкіл әлем"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 13d5add..1bda970 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Басқа желіні таңдау"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Құрылғы қосылмады"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Құрылғы табылды"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Осы құрылғымен Wi‑Fi байланысы бөлісілуде…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Жалғануда…"</string>
<string name="retry" msgid="6472609612090877557">"Қайталау"</string>
<string name="wifi_shared" msgid="844142443226926070">"Басқа құрылғы пайдаланушыларымен бөлісу"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(өзгермеген)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Мобильдік"</item>
<item msgid="2838022395783120596">"Тек Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi ұсынылған"</item>
<item msgid="5074515506087318555">"Таңдаулы мобильдік байланыс"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Мобильдік"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi қоңыраулары қосулы кезде, телефон қоңырауларды параметрге және сигналдың күшіне байланысты Wi-Fi желілері немесе оператор желісі арқылы бағыттай алады. Бұл функцияны қоспас бұрын, алынатын ақы туралы және басқа да мәліметтерді оператордан сұрап алыңыз.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Төтенше жағдайда пайдаланылатын мекенжай"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 минут"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Оқу ұзақтығы"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Шара қолдану ұзақтығы"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Оқылатын уақытша хабарлардың көрсетілу ұзақтығын таңдаңыз.\n\nБұл параметр барлық қолданбаларда бола бермейді."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Шара қолдануды талап ететін хабарлардың уақытша көрсетілу ұзақтығын таңдаңыз.\n\nБұл параметр барлық қолданбаларда бола бермейді."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Түртіп ұстап тұрғандағы кідіріс"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Түстер инверсиясы"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Қолданбалар мен хабарландырулар"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Рұқсаттар, әдепкі қолданбалар"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Жұмыс профиліндегі қолданбалар үшін хабарландырулар қолжетімді емес."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Есептік жазбалар"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Ешқандай есептік жазба қосылмаған"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Қосулы экран, құлып экраны"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"құлып экранындағы хабарландыру"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"бет"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"саусақ ізі"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"күңгірт экран, сенсорлық экран, батарея, ақылды жарықтық, динамикалық жарықтық"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"экранды күңгірттеу, ұйқы режимі, батарея, күту уақыты, назар, дисплей, экран, әрекетсіздік"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"бұру, аудару, айналдыру, портреттік, альбомдық, бағыт, тік, көлденең"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Қоңырау үнсіз режимге қойылған"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Қоңыраудың дыбыс деңгейі: 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Meдианың дыбыс деңгейі"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Қоңыраудың дыбыс деңгейі"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Дабылдың дыбыс деңгейі"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Қоңыраудың дыбыс деңгейі"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"\"Мазаламау\" режимін жаңарту"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Алаңдататын хабарландыруларды кідірту"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Бұл мүмкіндік құрылғыда жоқ"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Бұл функция істемейді."</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Телефонның жұмысы баяулайды."</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"GNSS толық өлшемдерін қосу"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Жұмыс циклінсіз барлық GNSS тізбектері мен жиіліктерін қадағалау"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Фондық әрекеттердің басталуына рұқсат ету"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> хабарландыру арнасы. Барлығын басқару үшін түртіңіз."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Шығатын панельді ауыстыру"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> деген құрылғыда ойнап жатыр."</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Жазылым тоқтатылуы мүмкін. Қайталанатын жазылымдардан бас тартылмайды. Толық ақпаратты провайдерден сұрап алыңыз."</string>
</resources>
diff --git a/res/values-km/arrays.xml b/res/values-km/arrays.xml
index 989db0a..2eb3017 100644
--- a/res/values-km/arrays.xml
+++ b/res/values-km/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/ស៊ីម"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"សកល"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 3834749..2ed604e 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"ជ្រើសរើសបណ្ដាញផ្សេង"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"មិនអាចបញ្ចូលឧបករណ៍បានទេ"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"បានរកឃើញឧបករណ៍"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"កំពុងចែករំលែក Wi‑Fi ជាមួយឧបករណ៍នេះ…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"កំពុងភ្ជាប់…"</string>
<string name="retry" msgid="6472609612090877557">"ព្យាយាមម្ដងទៀត"</string>
<string name="wifi_shared" msgid="844142443226926070">"ចែករំលែកជាមួយអ្នកប្រើឧបករណ៍ផ្សេងទៀត"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(មិនផ្លាស់ប្ដូរ)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"ទូរសព្ទចល័ត"</item>
<item msgid="2838022395783120596">"Wi-Fi តែប៉ុណ្ណោះ"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi ជាអាទិភាព"</item>
<item msgid="5074515506087318555">"បានជ្រើសរើសប្រើទិន្នន័យចល័ត"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"ទូរសព្ទចល័ត"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"នៅពេលការហៅតាម Wi-Fi បានបើក ទូរសព្ទរបស់អ្នកអាចធ្វើការហៅចេញតាមរយៈបណ្ដាញ Wi-Fi ឬបណ្ដាញរបស់ក្រុមហ៊ុនសេវាទូរសព្ទអ្នក ដោយផ្អែកលើចំណូលចិត្តរបស់អ្នក និងរលកសញ្ញានៃបណ្ដាញណាមួយដែលខ្លាំងជាង។ មុនពេលបើកមុខងារនេះ សូមសាកសួរក្រុមហ៊ុនសេវាទូរសព្ទរបស់អ្នកអំពីថ្លៃសេវា និងព័ត៌មានលម្អិតផ្សេងៗ។<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"អាសយដ្ឋានគ្រាអាសន្ន"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 នាទី"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"ដល់ពេលអានហើយ"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"ដល់ពេលធ្វើសកម្មភាពហើយ"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ជ្រើសរើសរយៈពេលសម្រាប់បង្ហាញសារដែលអ្នកត្រូវអាន ប៉ុន្តែអាចមើលឃើញបណ្ដោះអាសន្នតែប៉ុណ្ណោះ។\n\nមិនមែនគ្រប់កម្មវិធីទាំងអស់សុទ្ធតែស្គាល់ការកំណត់នេះទេ។"</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"ជ្រើសរើសរយៈពេលសម្រាប់បង្ហាញសារដែលស្នើឱ្យអ្នកធ្វើសកម្មភាព ប៉ុន្តែអាចមើលឃើញបណ្ដោះអាសន្នតែប៉ុណ្ណោះ។\n\nមិនមែនគ្រប់កម្មវិធីទាំងអស់សុទ្ធតែស្គាល់ការកំណត់នេះទេ។"</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"ប៉ះ និង សង្កត់ឲ្យយូរ"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"បញ្ច្រាសពណ៌"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ប៊្លូធូស, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ប៊្លូធូស"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"កម្មវិធី និងការជូនដំណឹង"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"ការអនុញ្ញាត កម្មវិធីលំនាំដើម"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"មិនអាចចូលប្រើការជូនដំណឹងបានទេសម្រាប់កម្មវិធីនៅក្នុងកម្រងព័ត៌មានការងារ។"</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"គណនី"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"មិនមានការបញ្ចូលគណនីទេ"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"មុខងារអេក្រង់សម្ងំ មុខងារអេក្រង់ចាក់សោ"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ការជូនដំណឹងលើអេក្រង់ចាក់សោ"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"មុខ"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ស្នាមម្រាមដៃ"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"អេក្រង់ខ្សោយពន្លឺ អេក្រង់ចុច ថ្ម ពន្លឺឆ្លាតវៃ ពន្លឺឌីណាមិក"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"បន្ថយពន្លឺអេក្រង់ ដេក ថ្ម អស់ម៉ោង ការផ្ដោតអារម្មណ៍ ផ្ទាំងអេក្រង់ អេក្រង់ អសកម្ម"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"បង្វិល ត្រឡប់ រង្វិល បញ្ឈរ ផ្តេក ទិស បន្ទាត់ឈរ បន្ទាត់ដេក"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"បានកំណត់សំឡេងរោទិ៍ឲ្យស្ងាត់"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"កម្រិតសំឡេងរោទិ៍ត្រឹម 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"កម្រិតសំឡេងមេឌៀ"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"កម្រិតសំឡេងហៅ"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"កម្រិតសំឡេងម៉ោងរោទ៍"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"កម្រិតសំឡេងរោទ៍"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"ធ្វើបច្ចុប្បន្នភាពមុខងារកុំរំខាន"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"ផ្អាកការជូនដំណឹងដើម្បីផ្តោតអារម្មណ៍"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"មុខងារនេះមិនមាននៅលើឧបករណ៍នេះទេ"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"មិនអាចប្រើមុខងារនេះបានទេ"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"មុខងារនេះនឹងធ្វើឱ្យទូរសព្ទនេះដំណើរការយឺត"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"ជំរុញការវាស់ GNSS ពេញលេញ"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"តាមដានក្រុមរូបថត និងហ្រេ្វកង់ GNSS ទាំងអស់ដែលគ្មានការបែងចែករយៈពេលដំណើរការ"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"អនុញ្ញាតឱ្យសកម្មភាពនៅផ្ទៃខាងក្រោយចាប់ផ្តើម"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"បណ្តាញជូនដំណឺង <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>។ ចុចដើម្បីគ្រប់គ្រងទាំងអស់។"</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"លទ្ធផល Switch"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"ឥឡូវនេះកំពុងចាក់នៅលើ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ការជាវរបស់អ្នកតាមរយៈក្រុមហ៊ុនផ្ដល់សេវានេះអាចនឹងត្រូវបានបោះបង់។ ការជាវដែលបន្តឡើងវិញនឹងមិនត្រូវបានបោះបង់ទេ។ ដើម្បីទទួលបានព័ត៌មានបន្ថែម សូមពិនិត្យមើលជាមួយក្រុមហ៊ុនផ្ដល់សេវារបស់អ្នក។"</string>
</resources>
diff --git a/res/values-kn/arrays.xml b/res/values-kn/arrays.xml
index 496a9e7..deba0ce 100644
--- a/res/values-kn/arrays.xml
+++ b/res/values-kn/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/ಸಿಮ್"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"ಜಾಗತಿಕ"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 1913833..bd9b66e 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -944,10 +944,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"ಬೇರೆ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಆರಿಸಿ"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"ಸಾಧನವನ್ನು ಸೇರಿಸಲಾಗಲಿಲ್ಲ"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"ಸಾಧನ ಕಂಡುಬಂದಿದೆ"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"ಈ ಸಾಧನದೊಂದಿಗೆ ವೈ-ಫೈ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಲಾಗುತ್ತಿದೆ…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"ಸಂಪರ್ಕಿಸುತ್ತಿದೆ…"</string>
<string name="retry" msgid="6472609612090877557">"ಮರುಪ್ರಯತ್ನಿಸು"</string>
<string name="wifi_shared" msgid="844142443226926070">"ಇತರ ಸಾಧನ ಬಳಕೆದಾರರ ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳಿ"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ಬದಲಾವಣೆಯಾಗದ)"</string>
@@ -1071,11 +1069,6 @@
<item msgid="7715869266611010880">"ಮೊಬೈಲ್"</item>
<item msgid="2838022395783120596">"ವೈ-ಫೈ ಮಾತ್ರ"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"ವೈ-ಫೈಗೆ ಆದ್ಯತೆ"</item>
<item msgid="5074515506087318555">"ಮೊಬೈಲ್ಗೆ ಆದ್ಯತೆ"</item>
@@ -1084,10 +1077,6 @@
<item msgid="6132150507201243768">"ವೈ-ಫೈ"</item>
<item msgid="1118703915148755405">"ಮೊಬೈಲ್"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"ವೈ-ಫೈ ಕರೆ ಮಾಡುವಿಕೆ ಆನ್ ಆದಾಗ, ನಿಮ್ಮ ಫೋನ್ ನಿಮ್ಮ ಆದ್ಯತೆ ಮತ್ತು ಯಾವ ಸಿಗ್ನಲ್ ಬಲವಾಗಿದೆ ಎಂಬುದರ ಅನುಗುಣವಾಗಿ, ಕರೆಗಳನ್ನು ವೈ-ಫೈ ನೆಟ್ವರ್ಕ್ಗಳು ಅಥವಾ ನಿಮ್ಮ ವಾಹಕದ ನೆಟ್ವರ್ಕ್ ಮೂಲಕ ರವಾನಿಸುತ್ತದೆ. ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಆನ್ ಮಾಡುವ ಮೊದಲು, ಶುಲ್ಕಗಳು ಮತ್ತು ಇತರ ವಿವರಗಳಿಗೆ ಸಂಬಂಧಿಸಿದಂತೆ ನಿಮ್ಮ ವಾಹಕವನ್ನು ಸಂಪರ್ಕಿಸಿ.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"ತುರ್ತು ವಿಳಾಸ"</string>
@@ -2058,8 +2047,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 ನಿಮಿಷಗಳು"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"ಓದುವ ಸಮಯ"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"ಕ್ರಮವನ್ನು ತೆಗೆದುಕೊಳ್ಳುವ ಸಮಯ"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ನೀವು ಓದಬೇಕಾದ ಸಂದೇಶಗಳನ್ನು ಎಷ್ಟು ಸಮಯದ ಕಾಲ ತೋರಿಸಬೇಕು ಎಂಬುದನ್ನು ಆಯ್ಕೆಮಾಡಿ, ಆದರೆ ತಾತ್ಕಾಲಿಕವಾಗಿ ಮಾತ್ರ ಗೋಚರಿಸುತ್ತದೆ.\n\nಎಲ್ಲಾ ಆ್ಯಪ್ಗಳು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"ನೀವು ಕ್ರಮ ತೆಗೆದುಕೊಳ್ಳಲು ಕೇಳುವ ಸಂದೇಶಗಳನ್ನು ಎಷ್ಟು ಸಮಯದ ಕಾಲ ತೋರಿಸಬೇಕು ಎಂಬುದನ್ನು ಆಯ್ಕೆಮಾಡಿ.\n\nಎಲ್ಲಾ ಆ್ಯಪ್ಗಳು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"ಸ್ಪರ್ಶ & ಹೋಲ್ಡ್ ವಿಳಂಬ"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"ಬಣ್ಣ ವಿಲೋಮ"</string>
@@ -3014,7 +3002,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ಬ್ಲೂಟೂತ್, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ಬ್ಲೂಟೂತ್"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ಆ್ಯಪ್ & ಅಧಿಸೂಚನೆ"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"ಅನುಮತಿಗಳು, ಡಿಫಾಲ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ಗಳು"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್ನಲ್ಲಿರುವ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಅಧಿಸೂಚನೆ ಪ್ರವೇಶ ಲಭ್ಯವಿಲ್ಲ."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"ಖಾತೆಗಳು"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"ಯಾವುದೇ ಖಾತೆಗಳನ್ನು ಸೇರಿಸಿಲ್ಲ"</string>
@@ -3077,7 +3066,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ಆಂಬಿಯೆಂಟ್ ಡಿಸ್ಪ್ಲೇ, ಲಾಕ್ ಸ್ಕ್ರೀನ್ ಡಿಸ್ಪ್ಲೇ"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ಲಾಕ್ ಸ್ಕ್ರೀನ್ ಅಧಿಸೂಚನೆ"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ಮುಖ"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ಫಿಂಗರ್ ಪ್ರಿಂಟ್"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ಮಂದ ಪರದೆ, ಟಚ್ಸ್ಕ್ರೀನ್, ಬ್ಯಾಟರಿ, ಸ್ಮಾರ್ಟ್ ಪ್ರಖರತೆ, ಡೈನಾಮಿಕ್ ಪ್ರಖರತೆ"</string>
<!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
<skip />
@@ -3111,6 +3101,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"ರಿಂಗರ್ ಅನ್ನು ನಿಶ್ಯಬ್ಧಕ್ಕೆ ಹೊಂದಿಸಲಾಗಿದೆ"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"80% ರಷ್ಟು ರಿಂಗ್ ವಾಲ್ಯೂಮ್"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"ಮಾಧ್ಯಮ ವಾಲ್ಯೂಮ್"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"ಕರೆಯ ವಾಲ್ಯೂಮ್"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"ಅಲಾರಮ್ ವಾಲ್ಯೂಮ್"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"ರಿಂಗ್ ವಾಲ್ಯೂಮ್"</string>
@@ -4231,10 +4223,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಿ"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"ಫೋಕಸ್ ಆಗಿ ಇರಲು ಅಧಿಸೂಚನೆಗಳನ್ನು ವಿರಾಮಗೊಳಿಸಿ"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"ಈ ಸಾಧನದಲ್ಲಿ ಈ ವೀಡಿಯೊ ಲಭ್ಯವಿಲ್ಲ"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"ಈ ವೈಶಿಷ್ಟ್ಯ ಲಭ್ಯವಿಲ್ಲ"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ಇದರಿಂದ, ಫೋನ್ನ ಕಾರ್ಯಾಚರಣೆ ನಿಧಾನವಾಗುತ್ತದೆ"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"ಫೋರ್ಸ್ ಫುಲ್ GNSS ಅಳತೆಗಳು"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ಯಾವುದೇ ಡ್ಯೂಟಿ ಸೈಕ್ಲಿಂಗ್ ಇಲ್ಲದೆ ಎಲ್ಲಾ GNSS ಕಾನ್ಸ್ಟಲೇಶನ್ಗಳು ಮತ್ತು ಆವರ್ತನೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"ಹಿನ್ನೆಲೆ ಚಟುವಟಿಕೆ ಪ್ರಾರಂಭಗಳನ್ನು ಅನುಮತಿಸಿ"</string>
@@ -4438,6 +4428,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ಅಧಿಸೂಚನೆ ಚಾನಲ್ಗಳು. ಎಲ್ಲವನ್ನೂ ನಿರ್ವಹಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"ಔಟ್ಫುಟ್ ಬದಲಿಸಿ"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"ಪ್ರಸ್ತುತ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ನಲ್ಲಿ ಪ್ಲೇ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ಈ ಸೇವೆಯನ್ನು ಒದಗಿಸುವವರ ಜೊತೆಗಿನ ನಿಮ್ಮ ಸಬ್ಸ್ಕ್ರಿಪ್ಶನ್ ಅನ್ನು ರದ್ದುಗೊಳಿಸಬಹುದು. ಮರುಕಳಿಸುವ ಸಬ್ಸ್ಕ್ರಿಪ್ಶನ್ಗಳನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ನಿಮ್ಮ ಸೇವೆ ಒದಗಿಸುವವರ ಜೊತೆಗೆ ಪರಿಶೀಲಿಸಿ."</string>
</resources>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index f2d7828..29d07b7 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"글로벌"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index feff6ef..57a0f07 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -944,10 +944,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"다른 네트워크 선택"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"기기를 추가할 수 없습니다."</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"검색된 기기"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"이 기기와 Wi‑Fi 공유 중…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"연결 중…"</string>
<string name="retry" msgid="6472609612090877557">"재시도"</string>
<string name="wifi_shared" msgid="844142443226926070">"다른 기기 사용자와 공유"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(변경 안함)"</string>
@@ -1071,11 +1069,6 @@
<item msgid="7715869266611010880">"모바일"</item>
<item msgid="2838022395783120596">"Wi-Fi에서만"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi를 기본으로 설정"</item>
<item msgid="5074515506087318555">"모바일을 기본으로 설정"</item>
@@ -1084,10 +1077,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"모바일"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi 통화가 켜져 있으면 휴대전화에서 환경설정과 신호 강도에 따라 Wi-Fi 네트워크나 이동통신사 네트워크를 통해 통화를 연결할 수 있습니다. 이 기능을 사용하기 전에 이동통신사에 문의하여 요금과 기타 세부정보를 알아보세요.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"긴급 주소"</string>
@@ -2058,8 +2047,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2분"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"읽기 시간"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"조치를 취할 시간"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"읽어야 하지만 일시적으로만 보이는 메시지를 표시할 시간을 선택하세요.\n\n일부 앱에서는 이 설정이 지원되지 않습니다."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"사용자에게 조치를 취하도록 요청하지만 일시적으로만 보이는 메시지를 표시할 시간을 선택하세요.\n\n일부 앱에서는 이 설정이 지원되지 않습니다."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"길게 눌러 입력하기"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"색상 전도"</string>
@@ -3014,7 +3002,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"블루투스, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"블루투스"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"앱 및 알림"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"권한, 기본 앱"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"알림 액세스는 직장 프로필에 있는 앱에서 사용할 수 없습니다."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"계정"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"추가된 계정 없음"</string>
@@ -3077,7 +3066,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"절전 모드 자동 해제, 잠금 화면 표시"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"잠금 화면 알림"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"얼굴"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"지문"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"화면 어둡게 하기, 터치스크린, 배터리, 스마트 밝기, 동적 밝기"</string>
<!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
<skip />
@@ -3111,6 +3101,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"벨소리 장치가 무음으로 설정됨"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"벨소리 볼륨 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"미디어 볼륨"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"통화 볼륨"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"알람 볼륨"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"벨소리 볼륨"</string>
@@ -4231,10 +4223,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"방해 금지 모드 업데이트"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"방해받지 않도록 알림 일시중지"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"이 기기에서 지원하지 않는 기능입니다."</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"이 기능은 사용할 수 없습니다."</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"휴대전화 속도를 저하시키는 기능입니다."</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"전체 GNSS 측정 강제 사용"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"사용률 없이 모든 GNSS 배열 및 빈도를 추적"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"백그라운드 활동 시작 허용"</string>
@@ -4438,6 +4428,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"알림 채널 <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>개. 모두 관리하려면 탭하세요."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"출력 전환"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"현재 <xliff:g id="DEVICE_NAME">%1$s</xliff:g>에서 재생 중"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"이 제공업체를 통한 구독은 취소될 수 있습니다. 반복 구독은 취소되지 않습니다. 자세한 내용은 제공업체에 문의하세요."</string>
</resources>
diff --git a/res/values-ky/arrays.xml b/res/values-ky/arrays.xml
index 436d560..d329e42 100644
--- a/res/values-ky/arrays.xml
+++ b/res/values-ky/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Жалпы"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 5761b02..3e02d27 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -939,10 +939,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Башка тармакты тандоо"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Түзмөк кошулган жок"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Түзмөк табылды"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi бул түзмөк менен бөлүшүлүүдө…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Туташууда…"</string>
<string name="retry" msgid="6472609612090877557">"Кайталоо"</string>
<string name="wifi_shared" msgid="844142443226926070">"Түзмөктүн башка колдонуучулары менен бөлүшүлсүн"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(өзгөрбөгөн)"</string>
@@ -1066,11 +1064,6 @@
<item msgid="7715869266611010880">"Мобилдик түзмөк"</item>
<item msgid="2838022395783120596">"Wi-Fi гана"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi тандалган"</item>
<item msgid="5074515506087318555">"Тандалган мобилдик түзмөк"</item>
@@ -1079,10 +1072,6 @@
<item msgid="6132150507201243768">"Wi‑Fi"</item>
<item msgid="1118703915148755405">"Мобилдик түзмөк"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi аркылуу чалуу күйгүзүлгөндө, телефонуңуз, жеке жөндөөлөрүңүзгө жана сигналдын күчтүүлүгүнө жараша, чалууларды Wi-Fi тармактары же операторуңуздун тармагы аркылуу багыттай алат. Бул функцияны күйгүзүүдөн мурда, төлөмдөрү жана башка маалымат боюнча операторуңузга кайрылыңыз.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Өзгөчө кырдаалда кайрыла турган дарек"</string>
@@ -2053,8 +2042,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 мүнөт"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Окуу убакыты"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Чара көрүү убакыты"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Окуш керек болгон, бирок убактылуу гана көрүнө турган билдирүүлөр канча убакыт көрсөтүлөрүн тандаңыз.\n\nБул жөндөө бардык колдонмолордо иштей бербейт."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Чара көрүүнү өтүнгөн убактылуу көрүнгөн билдирүүлөр канча убакыт көрсөтүлөрүн тандаңыз.\n\nБул жөндөө бардык колдонмолордо иштей бербейт."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Коё бербей басып туруу узактыгы"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Түстү инверсиялоо"</string>
@@ -3005,7 +2993,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Колдонмолор/билдирмелер"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Уруксаттар, демейки колдонмолор"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Жумуш профилиндеги колдонмолордо билдирмелерди иштетүү мүмкүн эмес."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Аккаунттар"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Бир да аккаунт кошулган эмес"</string>
@@ -3068,7 +3057,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Экран автоматтык түрдө күйөт, экран кулпусу"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"кулпуланган экрандагы билдирме"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"жүз"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"манжа изи"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"күңүрт экран, сенсордук экран, батарея, акылдуу жарыктык, динамикалык жарыктык"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"экранды бүдөмүктөтүү, уйку режими, батарея, экрандын өчүү убакыты, көңүл буруу, дисплей, экран, аракетсиздик"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"буруу, көрсөтүү, айлануу, тигинен, туурасынан, багыт, вертикалдык, горизонталдык"</string>
@@ -3101,6 +3091,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Коңгуроонун үнү өчүрүлгөн"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Шыңгырдын катуулугу 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Мультимедианын үнү"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Чалуунун үнү"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Ойготкучтун үнү"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Шыңгырдын үнү"</string>
@@ -4218,10 +4210,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"\"Тынчымды алба\" режимин жаңыртуу"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Алагды кылбоо үчүн билдирмелерди тындыруу"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Бул функция бул түзмөктө иштебейт"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Бул функция жеткиликтүү эмес"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Ал функция телефондун иштешин жайлатат"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"GNSS көрсөткүчтөрүнө толук көз салууну иштетүү"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Иштөө цикли өчүрүлүп, бардык GNSS топторуна жана жыштыктарга көз салынат"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Фондогу аракеттерге уруксат берүү"</string>
@@ -4427,6 +4417,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> билдирме каналы. Баарын башкаруу үчүн таптап коюңуз."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Аудио түзмөктү которуштуруу"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Учурда <xliff:g id="DEVICE_NAME">%1$s</xliff:g> түзмөгүндө ойнотулууда"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Бул камсыздоочуга жазылууңуз жокко чыгарылышы мүмкүн. Кайталануучу жазылуулар жокко чыгарылбайт. Көбүрөөк маалымат үчүн, камсыздоочуңузга байланышыңыз."</string>
</resources>
diff --git a/res/values-lo/arrays.xml b/res/values-lo/arrays.xml
index 13f95c3..22718dc 100644
--- a/res/values-lo/arrays.xml
+++ b/res/values-lo/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"ທົ່ວໂລກ"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index f62b761..aacc9e0 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"ເລືອກເຄືອຂ່າຍອື່ນ"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"ບໍ່ສາມາດເພີ່ມອຸປະກອນໄດ້"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"ພົບອຸປະກອນ"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"ກຳລັງແບ່ງປັນ Wi‑Fi ກັບອຸປະກອນນີ້…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"ກຳລັງເຊື່ອມຕໍ່…"</string>
<string name="retry" msgid="6472609612090877557">"ລອງໃໝ່"</string>
<string name="wifi_shared" msgid="844142443226926070">"ແບ່ງປັນກັບຜູ້ໃຊ້ອຸປະກອນອື່ນ"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ບໍ່ມີການປ່ຽນແປງ)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"ມືຖື"</item>
<item msgid="2838022395783120596">"Wi-Fi ເທົ່ານັ້ນ"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"ເລືອກໃຊ້ Wi-Fi ກ່ອນ"</item>
<item msgid="5074515506087318555">"ຕ້ອງການໃຊ້ມືຖື"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"ມືຖື"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"ເມື່ອເປີດໃຊ້ການໂທ Wi-Fi, ໂທລະສັບຂອງທ່ານຈະສາມາດໂທຜ່ານເຄືອຂ່າຍ Wi-Fi ຫຼື ເຄືອຂ່າຍຜູ້ໃຫ້ບໍລິການຂອງທ່ານກໍໄດ້, ຂຶ້ນກັບການຕັ້ງຄ່າຂອງທ່ານ ແລະ ຂຶ້ນກັບວ່າສັນຍານເຄືອຂ່າຍໃດແຮງກວ່າ. ກ່ອນການເປີດໃຊ້ຄຸນສົມບັດນີ້, ກະລຸນາກວດສອບກັບຜູ້ໃຫ້ບໍລິການຂອງທ່ານກ່ຽວກັບຄ່າທຳນຽມ ແລະ ລາຍລະອຽດອື່ນໆ.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"ທີ່ຢູ່ສຸກເສີນ"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 ນາທີ"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"ເວລາອ່ານ"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"ເວລາໃນການດຳເນີນການ"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ເລືອກໄລຍະເວລາທີ່ຈະສະແດງຂໍ້ຄວາມທີ່ທ່ານຕ້ອງການອ່ານ, ແຕ່ຈະເຫັນໄດ້ຊົ່ວຄາວເທົ່ານັ້ນ.\n\nບາງແອັບບໍ່ຮອງຮັບການຕັ້ງຄ່ານີ້."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"ເລືອກໄລຍະເວລາເພື່ອສະແດງຂໍ້ຄວາມໃຫ້ທ່ານດຳເນີນການ, ແຕ່ຈະເຫັນຊົ່ວຄາວເທົ່ານັ້ນ.\n\nບໍ່ແມ່ນທຸກແອັບທີ່ຮອງຮັບການຕັ້ງຄ່ານີ້."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"ການກົດຄ້າງໄວ້"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"ການປີ້ນສີ"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ແອັບ ແລະ ການແຈ້ງເຕືອນ"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"ສິດອະນຸຍາດ, ແອັບເລີ່ມຕົ້ນ"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"ບໍ່ສາມາດເຂົ້າເຖິງການແຈ້ງເຕືອນສຳລັບແອັບໃນໂປຣໄຟລ໌ບ່ອນເຮັດວຽກໄດ້."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"ບັນຊີ"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"ບໍ່ໄດ້ເພີ່ມບັນຊີ"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ການສະແດງຜົນຕາມແສງສະພາບແວດລ້ອມ, ໜ້າຈໍລັອກ"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ການແຈ້ງເຕືອນໃນໜ້າຈໍລັອກ"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ໃບໜ້າ"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ລາຍນີ້ວມື"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ຫຼຸດແສງໜ້າຈໍ, ໜ້າຈໍສຳຜັດ, ແບັດເຕີຣີ, ຄວາມສະຫວ່າງອັດສະລິຍະ, ຄວາມສະຫວ່າງແບບໄດນາມິກ"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ຫຼຸດແສງໜ້າຈໍ, ປິດໜ້າຈໍ, ແບັດເຕີຣີ, ໝົດເວລາ, ຄວນເອົາໃຈໃສ່, ສະແດງຜົນ, ໜ້າຈໍ, ບໍ່ເຄື່ອນໄຫວ"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"ໝຸນ, ກັບດ້ານ, ຮູບລວງຕັ້ງ, ຮູບລວງນອນ, ທິດທາງ, ລວງຕັ້ງ, ລວງນອນ"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"ປິດສຽງໂທລະສັບແລ້ວ"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"ສຽງໂທລະສັບທີ່ 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"ລະດັບສຽງມີເດຍ"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"ລະດັບສຽງການໂທ"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"ລະດັບສຽງໂມງປຸກ"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"ລະດັບສຽງໂທລະສັບ"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"ອັບເດດໂໝດຫ້າມລົບກວນ"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"ຢຸດການແຈ້ງເຕືອນຊົ່ວຄາວເພື່ອໃຫ້ມີສະມາທິ"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"ຄຸນສົມບັດນີ້ບໍ່ສາມາດໃຊ້ໄດ້ໃນອຸປະກອນນີ້ໄດ້"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"ຄຸນສົມບັດນີ້ບໍ່ສາມາດໃຊ້ໄດ້"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ມັນຈະເຮັດໃຫ້ໂທລະສັບໜ່ວຍນີ້ຊ້າລົງ"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"ບັງຄັບການກວດສອບ GNSS ເຕັມຮູບແບບ"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ຕິດຕາມກຸ່ມ ແລະ ຄວາມຖີ່ GNSS ທັງໝົດໂດຍບໍ່ມີຮອບຕາມພັນທະ"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"ອະນຸຍາດໃຫ້ການເຄື່ອນໄຫວໃນພື້ນຫຼັງເລີ່ມຕົ້ນ"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ຊ່ອງການແຈ້ງເຕືອນ. ແຕະເພື່ອຈັດການທັງໝົດ."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"ສະຫຼັບການສົ່ງຂໍ້ມູນອອກ"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"ຕອນນີ້ກຳລັງຫຼິ້ນຢູ່ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ການສະໝັກໃຊ້ຂອງທ່ານກັບຜູ້ໃຫ້ບໍລິການນີ້ອາດຖືກຍົກເລີກ. ການສະໝັກໃຊ້ແບບຕໍ່ເນື່ອງຈາກບໍ່ຖືກຍົກເລີກ. ກະລຸນາກວດສອບກັບຜູ້ໃຫ້ບໍລິການຂອງທ່ານສຳລັບຂໍ້ມູນເພີ່ມເຕີມ."</string>
</resources>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index 97e5c23..72e7cf0 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM / SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Visuotinis"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 34785a6..c8ab6fe6 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -972,10 +972,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Pasirinkti kitą tinklą"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Nepavyko pridėti įrenginio"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Rastas įrenginys"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Bendrinamas „Wi‑Fi“ su šiuo įrenginiu…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Prisijungiama…"</string>
<string name="retry" msgid="6472609612090877557">"Bandyti dar kartą"</string>
<string name="wifi_shared" msgid="844142443226926070">"Bendrinti su kitais įrenginio naudotojais"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nepakeista)"</string>
@@ -1101,11 +1099,6 @@
<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_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Pageidautinas „Wi-Fi“ ryšys"</item>
<item msgid="5074515506087318555">"Pirmenybė mobiliojo ryšio tinklui"</item>
@@ -1114,10 +1107,6 @@
<item msgid="6132150507201243768">"„Wi-Fi“ ryšys"</item>
<item msgid="1118703915148755405">"Mobiliojo ryšio tinklas"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kai „Wi-Fi“ skambinimas įjungtas, telefonas gali nukreipti skambučius per „Wi-Fi“ tinklus arba operatoriaus tinklą, atsižvelgiant į jūsų nuostatas ir stipresnį signalą. Prieš įjungdami šią funkciją, pasikonsultuokite su operatoriumi dėl mokesčių ir kitos išsamios informacijos.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Adresas prireikus pagalbos"</string>
@@ -2094,8 +2083,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 min."</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Skaitymo laikas"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Laikas, skirtas veiksmams atlikti"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Pasirinkite, kiek laiko norite rodyti pranešimus, kuriuos reikia perskaityti ir kurie matomi tik laikinai.\n\nŠis nustatymas palaikomas ne visose programose."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Pasirinkite, kiek laiko norite rodyti pranešimus, su kuriais reikia atlikti veiksmus ir kurie matomi tik laikinai.\n\nŠis nustatymas palaikomas ne visose programose."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"„Paliesti ir laikyti“ delsa"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Spalvų inversija"</string>
@@ -3086,7 +3074,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"„Bluetooth“, ALR"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Programos ir pranešimai"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Leidimai, numatytosios programos"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Prieiga prie pranešimų negalima darbo profilio programoms."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Paskyros"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nepridėta jokių paskyrų"</string>
@@ -3149,7 +3138,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Aplinkos ekranas, užrakinimo ekranas"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"užrakinimo ekrano pranešimas"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"veidas"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"piršto antspaudas"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"pritemdyti ekraną, jutiklinis ekranas, akumuliatorius, išmanusis šviesumas, dinaminis šviesumas"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"užtemdyti ekraną, miego būsena, akumuliatorius, skirtasis laikas, dėmesys, pateiktis, ekranas, neaktyvumas"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"pasukti, apversti, pasukimas, stačia, gulsčia, orientacija, vertikali, horizontali"</string>
@@ -3182,6 +3172,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Skambutis nustatytas į tylų"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Skambučio garsumas – 80 %"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Medijų garsumas"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Skambučio garsumas"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Signalo garsumas"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Skambučio garsumas"</string>
@@ -4371,10 +4363,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Atnaujinti netrukdymo režimą"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Pristabdyti pranešimus, kad neblaškytų dėmesio"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Ši funkcija nepasiekiama šiame įrenginyje"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Ši funkcija negalima"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Ją įjungus telefonas veiks lėčiau"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Priversti vykdyti visus GNSS matavimus"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Stebėti visas GNSS konferencijas ir visus dažnius netaikant darbo ciklų"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Leisti pradėti veiklą fone"</string>
@@ -4588,6 +4578,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> pranešimų kanalas. Palieskite, jei norite viską tvarkyti."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Išvesties perjungimas"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Šiuo metu leidžiama per <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Šio paslaugų teikėjo prenumerata gali būti atšaukta. Pasikartojančios prenumeratos nebus atšauktos. Jei reikia daugiau informacijos, susisiekite su paslaugų teikėju."</string>
</resources>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index 0ba96a5..dc8f5c1 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Vispārējie"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 8709352..d361e93 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -956,10 +956,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Izvēlēties citu tīklu"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Nevarēja pievienot ierīci."</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Atrasta ierīce"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Notiek Wi‑Fi kopīgošana ar šo ierīci…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Notiek savienojuma izveide…"</string>
<string name="retry" msgid="6472609612090877557">"Mēģināt vēlreiz"</string>
<string name="wifi_shared" msgid="844142443226926070">"Koplietot ar citiem ierīces lietotājiem"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(bez izmaiņām)"</string>
@@ -1084,11 +1082,6 @@
<item msgid="7715869266611010880">"Mobilie dati"</item>
<item msgid="2838022395783120596">"Tikai Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2."</item>
- <item msgid="1171822231056612021">"1."</item>
- <item msgid="3194458950573886239">"0."</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Vēlams Wi-Fi tīkls"</item>
<item msgid="5074515506087318555">"Vēlams mobilo datu savienojums"</item>
@@ -1097,10 +1090,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobilie dati"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kad ir ieslēgti Wi-Fi zvani, tālrunis var novirzīt zvanus, izmantojot Wi-Fi tīklus vai mobilo sakaru operatora tīklu (atkarībā no jūsu iestatījumiem un tā, kurš signāls ir stiprāks). Pirms šīs funkcijas ieslēgšanas noskaidrojiet pie mobilo sakaru operatora par tarifiem un citu informāciju.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Ārkārtas adrese"</string>
@@ -2074,8 +2063,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minūtes"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Laiks lasīt"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Laiks veikt darbību"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Izvēlieties to ziņojumu rādīšanas ilgumu, kuri jums ir jāizlasa, bet kuri tiek rādīti tikai noteiktu laiku.\n\nNe visās lietotnēs šis iestatījums tiek atbalstīts."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Izvēlieties to ziņojumu rādīšanas ilgumu, kuros ir iekļauts aicinājums uz darbību, bet kuri tiek rādīti tikai noteiktu laiku.\n\nNe visās lietotnēs šis iestatījums tiek atbalstīts."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Aizkave, pieskaroties un turot"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Krāsu inversija"</string>
@@ -3046,7 +3034,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Lietotnes un paziņojumi"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Atļaujas, noklusējuma lietotnes"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Piekļuve paziņojumiem nav pieejama darba profila lietotnēm."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Konti"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Neviens konts nav pievienots"</string>
@@ -3109,7 +3098,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Gaidstāves ekrāns, bloķēšanas ekrāna attēlojums"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"bloķēšanas ekrāna paziņojums"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"seja"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"pirksta nospiedums"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"aptumšots ekrāns, skārienekrāns, akumulators, viedais spilgtums, dinamiskais spilgtums"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ekrāna aptumšošana, miega režīms, akumulators, noildze, uzmanība, displejs, ekrāns, bezdarbība"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"pagriezt, apvērst, pagriešana, portrets, ainava, virziens, vertikāls, horizontāls"</string>
@@ -3142,6 +3132,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Zvanītājam iestatīts klusuma režīms."</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Zvana skaļums: 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Multivides skaļums"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Zvana skaļums"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Signāla skaļums"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Zvana skaļums"</string>
@@ -4295,10 +4287,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Atjaunināt iestatījumu “Netraucēt”"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Pārtraukt paziņojumus, lai ilglaicīgi koncentrētos"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Šī funkcija šajā ierīcē nav pieejama."</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Šī funkcija nav pieejama."</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Tiks palēnināts šī tālruņa darbības ātrums."</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Veikt pilnus GNSS mērījumus"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Izsekot visas GNSS konstelācijas un frekvences bez darba cikliem"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Atļaut darbību sākšanu fonā"</string>
@@ -4508,6 +4498,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> paziņojumu kanāli. Pieskarieties, lai pārvaldītu visu."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Slēdža izeja"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Šobrīd saturs tiek atskaņots ierīcē <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Jūsu abonements pie šī pakalpojumu sniedzēja var tikt atcelts. Periodiskie abonementi netiks atcelti. Lai saņemtu plašāku informāciju, sazinieties ar pakalpojumu sniedzēju."</string>
</resources>
diff --git a/res/values-mk/arrays.xml b/res/values-mk/arrays.xml
index 55dddfb..3a87134 100644
--- a/res/values-mk/arrays.xml
+++ b/res/values-mk/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Глобален"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 8a4232c..982c8f1 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -1065,11 +1065,6 @@
<item msgid="7715869266611010880">"Мобилен интернет"</item>
<item msgid="2838022395783120596">"Само Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Се претпочита Wi-Fi"</item>
<item msgid="5074515506087318555">"Претпочитам мобилен интернет"</item>
@@ -1078,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Мобилен интернет"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Кога е вклучена „Повици преку Wi-Fi“, телефонот може да пренасочува повици преку Wi-Fi мрежи или преку мрежата на вашиот оператор, во зависност од вашата поставка и од тоа кој сигнал е посилен. Пред да ја вклучите функцијата, распрашајте се кај операторот за трошоците и другите детали.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Адреса за итни случаи"</string>
@@ -2052,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 минути"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Време за читање"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Време за преземање дејство"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Изберете колку долго да се прикажуваат пораките што треба да ги прочитате, но се видливи само привремено.\n\nНе сите апликации ја поддржуваат оваа поставка."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Изберете колку долго да се прикажуваат пораките што бараат да преземете дејство, но се видливи само привремено.\n\nНе сите апликации ја поддржуваат оваа поставка."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Допри и задржи подолго"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Инверзија на боја"</string>
@@ -3004,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Апликации и известувања"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Дозволи, стандардни апликации"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Пристапот до известувањата не е достапен за апликации во работниот профил."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Сметки"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Нема додадени сметки"</string>
@@ -3067,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Амбиентален екран, Екран за заклучување на екранот"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"известување на заклучен екран"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"лице"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"отпечаток"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"затемнет екран, екран на допир, батерија, паметна осветленост, динамична осветленост"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"затемнет екран, режим во мирување, батерија, истек на време, внимание, приказ, екран, неактивност"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"ротирај, преврти, ротација, портрет, пејзаж, ориентација, вертикална, хоризонтална"</string>
@@ -3100,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ѕвонењето е поставено на безгласен режим"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Јачината на звукот на ѕвонењето е на 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Јачина на аудио/видео звук"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Јачина на звук за повици"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Јачина на звук на аларм"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Јачина на звук на ѕвонење"</string>
@@ -4424,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> канали за известување. Допрете за да управувате со сите."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Сменете го излезот"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Моментално се пушта на <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Вашата претплата кај овој оператор може да се откаже. Повторливите претплати нема да се откажат. За повеќе информации, контактирајте со операторот."</string>
</resources>
diff --git a/res/values-ml/arrays.xml b/res/values-ml/arrays.xml
index 11b37b0..39e4726 100644
--- a/res/values-ml/arrays.xml
+++ b/res/values-ml/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/സിം"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"ആഗോളം"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 77aabdb..6706a03 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"മറ്റൊരു നെറ്റ്വർക്ക് തിരഞ്ഞെടുക്കുക"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"ഉപകരണം ചേർക്കാനായില്ല"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"ഉപകരണം കണ്ടെത്തി"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"ഈ ഉപകരണവുമായി Wi‑Fi പങ്കിടുന്നു…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"കണക്റ്റ് ചെയ്യുന്നു…"</string>
<string name="retry" msgid="6472609612090877557">"വീണ്ടും ശ്രമിക്കുക"</string>
<string name="wifi_shared" msgid="844142443226926070">"മറ്റ് ഉപകരണ ഉപയോക്താക്കളുമായി പങ്കിടുക"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(മാറ്റം വരുത്തിയിട്ടില്ല)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"മൊബൈൽ"</item>
<item msgid="2838022395783120596">"വൈ-ഫൈ മാത്രം"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi തിരഞ്ഞെടുത്തിരിക്കുന്നു"</item>
<item msgid="5074515506087318555">"തിരഞ്ഞെടുത്ത മൊബൈൽ"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"വൈ-ഫൈ"</item>
<item msgid="1118703915148755405">"മൊബൈൽ"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi കോളിംഗ് ഓണായിരിക്കുമ്പോൾ, നിങ്ങളുടെ മുൻഗണനയും ഏത് സിഗ്നലാണ് ശക്തമെന്നതും അടിസ്ഥാനമാക്കി ഫോണിന് Wi-Fi നെറ്റ്വർക്കോ കാരിയർ നെറ്റ്വർക്കോ വഴി കോളുകൾ റൂട്ട് ചെയ്യാനാകും. ഈ ഫീച്ചർ ഓണാക്കുന്നതിനുമുമ്പ്, നിരക്കുകളും മറ്റ് വിശദാംശങ്ങളും അറിയുന്നതിന് നിങ്ങളുടെ കാരിയറെ ബന്ധപ്പെടുക.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"അടിയന്തര വിലാസം"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 മിനിറ്റ്"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"വായിക്കാനുള്ള സമയം"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"നടപടി സ്വീകരിക്കാനുള്ള സമയം"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"നിങ്ങൾക്ക് വായിക്കേണ്ട സന്ദേശങ്ങൾ എത്ര സമയം കാണിക്കണമെന്നത് തിരഞ്ഞെടുക്കുക, എന്നാൽ താൽക്കാലികമായി മാത്രമേ ദൃശ്യമാകൂ.\n\nഎല്ലാ ആപ്പുകളും ഈ ക്രമീകരണം പിന്തുണയ്ക്കുന്നില്ല."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"നടപടി സ്വീകരിക്കാൻ ആവശ്യപ്പെടുന്ന സന്ദേശങ്ങൾ എത്ര സമയം കാണിക്കണമെന്നത് തിരഞ്ഞെടുക്കുക, എന്നാൽ താൽക്കാലികമായി മാത്രമേ ദൃശ്യമാകൂ.\n\nഎല്ലാ ആപ്പുകളും ഈ ക്രമീകരണം പിന്തുണയ്ക്കുന്നില്ല."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"സ്പർശിച്ച്, അമർത്തിപ്പിടിക്കുക"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"വർണ്ണവൈപരീത്യം"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ആപ്സും അറിയിപ്പുകളും"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"അനുമതികൾ, ഡിഫോൾട്ട് ആപ്പുകൾ"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"ഔദ്യോഗിക പ്രൊഫൈലിലെ ആപ്പുകൾക്ക് അറിയിപ്പിലേക്കുള്ള ആക്സസ് ലഭ്യമല്ല."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"അക്കൗണ്ടുകൾ"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"അക്കൗണ്ടുകളൊന്നും ചേർത്തില്ല"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"പാതിമയക്ക ഡിസ്പ്ലേ, ലോക്ക് സ്ക്രീൻ ഡിസ്പ്ലേ"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ലോക്ക് സ്ക്രീൻ അറിയിപ്പ്"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"മുഖം"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ഫിംഗർപ്രിന്റ്"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"സ്ക്രീൻ മങ്ങിക്കൽ, ടച്ച്സ്ക്രീൻ, ബാറ്ററി, സ്മാർട്ട് തെളിച്ചം, ചലനാത്മക തെളിച്ചം"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"മങ്ങിച്ച സ്ക്രീൻ, ഉറക്കം, ബാറ്ററി, സമയപരിധി, ശ്രദ്ധ, ഡിസ്പ്ലേ, സ്ക്രീൻ, നിഷ്ക്രിയത്വം"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"തിരിക്കുക, ഫ്ലിപ്പ്, തിരിക്കൽ, പോർട്രെയ്റ്റ്, ലാൻഡ്സ്കേപ്പ്, ഓറിയന്റേഷൻ, ലംബം, സമാന്തരം"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"നിശബ്ദമാക്കിയിരിക്കുന്ന തരത്തിൽ റിംഗർ സജ്ജമാക്കി"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"റിംഗ് വോളിയം: 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"മീഡിയ വോളിയം"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"കോൾ വോളിയം"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"അലാറം വോളിയം"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"റിംഗ് വോളിയം"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"\'ശല്യപ്പെടുത്തരുത്\' അപ്ഡേറ്റ് ചെയ്യുക"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"ഫോക്കസ് ചെയ്ത നിലയിൽ തുടരാൻ, അറിയിപ്പുകൾ താൽക്കാലികമായി നിർത്തുക"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"ഈ ഫീച്ചർ ഈ ഉപകരണത്തിൽ ലഭ്യമല്ല"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"ഈ ഫീച്ചർ ലഭ്യമല്ല"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ഇത് നിങ്ങളുടെ ഫോണിൻ്റെ വേഗത കുറയ്ക്കും"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"പൂർണ്ണ GNSS അളവുകൾ നടപ്പിലാക്കുക"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"നോ ഡ്യൂട്ടി സൈക്ലിംഗ് ഉപയോഗിച്ച് മുഴുവൻ GNSS കോൺസ്റ്റലേഷനുകളും ആവൃത്തികളും ട്രാക്ക് ചെയ്യൂ"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"പ്രവർത്തനം ആരംഭിക്കുന്നതിനുള്ള പശ്ചാത്തല ആക്റ്റിവിറ്റി"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> അറിയിപ്പ് ചാനലുകൾ. എല്ലാം മാനേജ് ചെയ്യാൻ ടാപ്പ് ചെയ്യുക."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"ഔട്ട്പുട്ട് മാറുക"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"നിലവിൽ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> എന്ന ഉപകരണത്തിൽ പ്ലേ ചെയ്യുന്നു"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ഈ ദാതാവുമായുള്ള നിങ്ങളുടെ സബ്സ്ക്രിപ്ഷൻ റദ്ദാക്കിയേക്കാം. ആവർത്തിക്കുന്ന സബ്സ്ക്രിപ്ഷനുകൾ റദ്ദാക്കില്ല. കൂടുതൽ വിവരങ്ങൾക്ക്, നിങ്ങളുടെ ദാതാവുമായി ബന്ധപ്പെടുക."</string>
</resources>
diff --git a/res/values-mn/arrays.xml b/res/values-mn/arrays.xml
index 816605f..238a429 100644
--- a/res/values-mn/arrays.xml
+++ b/res/values-mn/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Глобал"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index a67a7f3..ad84d0d 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Өөр сүлжээ сонгох"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Төхөөрөмж нэмж чадсангүй"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Төхөөрөмж олдсон"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi-г энэ төхөөрөмжтэй хуваалцаж байна…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Холбогдож байна…"</string>
<string name="retry" msgid="6472609612090877557">"Дахин оролдох"</string>
<string name="wifi_shared" msgid="844142443226926070">"Төхөөрөмжийн бусад хэрэглэгчтэй хуваалцах"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(өөрчлөгдөөгүй)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Мобайл"</item>
<item msgid="2838022395783120596">"Зөвхөн Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi давуу эрхтэй"</item>
<item msgid="5074515506087318555">"Мобайл давуу эрхтэй"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Мобайл"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Таны утас Wi-Fi дуудлагыг асаалттай үед таны сонголт болон аль дохио илүү хүчтэй байгаагаас шалтгаалан Wi-Fi сүлжээ эсвэл таны оператор компанийн сүлжээгээр дуудлага хийх боломжтой. Энэ онцлогийг асаахаасаа өмнө оператор компанийнхаа төлбөр болон бусад дэлгэрэнгүйг шалгаж үзээрэй.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Яаралтай тусламжийн хаяг"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 минут"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Унших хугацаа"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Үйлдэл хийх хугацаа"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Та унших шаардлагатай хэдий ч зөвхөн түр хугацаанд харагддаг мессежийг хэр удаан харуулахыг сонгоно уу.\n\nЗарим апп энэ тохиргоог дэмждэггүй."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Танаас үйлдэл хийхийг шаарддаг хэдий ч зөвхөн түр хугацаанд харагддаг зурвасыг хэр удаан хугацаагаар харуулахыг сонгоно уу.\n\nЗарим апп энэ тохиргоог дэмждэггүй."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Хүрэх & барих хүлээлт"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Өнгө урвуулалт"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Апп; мэдэгдэл"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Зөвшөөрөл, өгөгдмөл апп"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Мэдэгдлийн хандалт ажлын профайлын аппад боломжгүй байна."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Бүртгэл"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Бүртгэл нэмээгүй байна"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Орчинтой тохирсон дэлгэц, Түгжигдсэн дэлгэцийн дэлгэц"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"түгжигдсэн дэлгэцийн мэдэгдэл"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"царай"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"хурууны хээ"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"бүдэг дэлгэц, мэдрэмтгий дэлгэц, батарей, ухаалаг гэрэлтүүлэг, динамик гэрэлтүүлэг"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"бүдэг дэлгэц, идэвхгүй, батарей, завсарлага, анхаарал, нүүр, дэлгэц, идэвхгүй горим"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"эргүүлэх, хөнтрөх, эргэлт, босоо, хөндлөн, чиглэл, босоо, хөндлөн"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Хонхыг чимээгүй болгож тохируулсан"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Хонх дуугаргах түвшин 80%-д"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Медиа дууны түвшин"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Дуудлагын дууны түвшин"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Сэрүүлгийн дууны түвшин"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Хонхны дууны түвшин"</string>
@@ -4217,10 +4209,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Бүү саад бол горимыг шинэчлэх"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Төвлөрсөн хэвэрэ байхын тулд мэдэгдлийг түр зогсоох"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Энэ онцлог энэ төхөөрөмжид боломжгүй"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Энэ онцлог боломжгүй байна"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Энэ нь энэ утсыг удаашруулна"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Бүтэн GNSS хэмжилтийг хүчлэх"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Бүх GNSS орд болон давтамжийг давтамжийн түвшингүйгээр шинжлэх"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Арын үйл ажиллагааг эхлүүлэхийг зөвшөөрөх"</string>
@@ -4426,6 +4416,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Мэдэгдлийн <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> суваг байна. Бүгдийг нь удирдахын тулд товшино уу."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Гаралтыг сэлгэх"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Одоогоор <xliff:g id="DEVICE_NAME">%1$s</xliff:g> дээр тоглуулж байна"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Таны энэ үйлчилгээ үзүүлэгчийн захиалгыг цуцалсан байж болзошгүй. Хэвшмэл захиалгыг цуцлахгүй. Нэмэлт мэдээлэл авахын тулд үйлчилгээ үзүүлэгчтэйгээ холбогдоно уу."</string>
</resources>
diff --git a/res/values-mr/arrays.xml b/res/values-mr/arrays.xml
index f652a08..eed5731 100644
--- a/res/values-mr/arrays.xml
+++ b/res/values-mr/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/सिम"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"जागतिक"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 400105e..ac9bb15 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"वेगळे नेटवर्क निवडा"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"डिव्हाइस जोडता आले नाही"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"डिव्हाइस सापडले"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"या डिव्हाइससह वाय‑फाय शेअर करत आहे…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"कनेक्ट करत आहे…"</string>
<string name="retry" msgid="6472609612090877557">"पुन्हा प्रयत्न करा"</string>
<string name="wifi_shared" msgid="844142443226926070">"इतर डिव्हाइस वापरकर्त्यांसह शेअर करा"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(न बदललेले)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"मोबाइल"</item>
<item msgid="2838022395783120596">"केवळ वाय-फाय"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"वाय-फाय अग्रमानांकित"</item>
<item msgid="5074515506087318555">"प्राधान्य दिलेला मोबाइल"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"वाय-फाय"</item>
<item msgid="1118703915148755405">"मोबाइल"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"वाय-फाय कॉलिंग चालू असताना, तुमचा फोन तुमच्या प्राधान्यावर आणि कोणता सिग्नल मजबूत आहे याच्या आधारावर, वाय-फाय नेटवर्क किंवा तुमच्या वाहकाच्या नेटवर्कद्वारे कॉल राउट करू शकतो. हे वैशिष्ट्य सुरू करण्यापूर्वी, फी आणि इतर तपशीलांच्या संबंधात तुमच्या वाहकास विचारा. <xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"संकटकालीन पत्ता"</string>
@@ -2055,8 +2044,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"दोन मिनिटे"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"वाचण्यासाठी वेळ"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"क्रिया करण्याची वेळ"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"तात्पुरता दृश्यमान असेल असा तुम्हाला वाचायचा असलेला मेसेज किती वेळ दाखवायचा ते निवडा.\n\nसर्व अॅप्स यासेटिंगला सपोर्ट करत नाहीत."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"तुम्हाला क्रिया करण्यास सांगणारे, परंतु केवळ तात्पुरते दृश्यमान असलेले मेसेज किती वेळ दाखवले जावेत ते निवडा.\n\nसर्व अॅप या सेटिंगला सपोर्ट करत नाहीत."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"स्पर्श आणि धरण्याचा विलंब"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"रंग व्युत्क्रम"</string>
@@ -3007,7 +2995,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ब्लूटूथ, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ब्लूटूथ"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"अॅप्स आणि सूचना"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"परवानग्या, डीफॉल्ट अॅप्स"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"कार्य प्रोफाइलमधील अॅप्ससाठी सूचनेचा अॅक्सेस उपलब्ध नाही."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"खाती"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"कोणतीही खाती जोडली नाहीत"</string>
@@ -3070,7 +3059,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"अँबियन्ट डिस्प्ले, लॉक स्क्रीन डिस्प्ले"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"लॉक स्क्रीन सूचना"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"चेहरा"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"फिंगरप्रिंट"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"मंद स्क्रीन, टचस्क्रीन, बॅटरी, स्मार्ट ब्राइटनेस, डायनॅमिक ब्राइटनेस"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"मंद स्क्रीन, स्लीप, बॅटरी, टाइमआउट, अटेंशन, डिस्प्ले, स्क्रीन, निष्क्रियता"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"फिरवा, फ्लिप करा, रोटेशन, पोर्ट्रेट, लँडस्केप, ओरिएंटेशन, उभे, आडवे"</string>
@@ -3103,6 +3093,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"रिंगर शांत वर सेट केले"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"रिंग व्हॉल्यूम 80% वर आहे"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"मीडिया व्हॉल्यूम"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"कॉल व्हॉल्यूम"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"अलार्म व्हॉल्यूम"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"रिंग व्हॉल्यूम"</string>
@@ -4220,10 +4212,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"व्यत्यय आणू नका अपडेट करा"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"लक्ष केंद्रित केलेले राहण्यासाठी सूचना थांंबवा"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"हे वैशिष्ट्य या डिव्हाइसवर उपलब्ध नाही"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"हे वैशिष्ट्य उपलब्ध नाही"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"हे तुमच्या फोनला धिमे करेल"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"पूर्ण GNSS मापांची सक्ती करा"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"कुठल्याही ड्युटी सायकलिंग शिवाय सर्व GNSS तारामंडळे आणि वारंवारता ट्रॅक करा"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"बॅकग्राउंड अॅक्टिव्हिटीला सुरू होण्याची अनुमती द्या"</string>
@@ -4429,6 +4419,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> सूचना चॅनेल. सर्व व्यवस्थापित करण्यासाठी टॅप करा."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"आउटपुट स्विच करा"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"सध्या <xliff:g id="DEVICE_NAME">%1$s</xliff:g> वर प्ले करत आहे"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"तुमचे या पुरवठादारासह असलेले सदस्यत्व कदाचित रद्द झाले आहे. आवर्ती सदस्यत्व रद्द केले जाणार नाही. आणखी माहितीसाठी तुमच्या पुरवठादाराशी संपर्क साधा."</string>
</resources>
diff --git a/res/values-ms/arrays.xml b/res/values-ms/arrays.xml
index b2a7b88..4847927 100644
--- a/res/values-ms/arrays.xml
+++ b/res/values-ms/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 26bd472..8500637 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -944,10 +944,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Pilih rangkaian lain"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Tidak dapat menambah peranti"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Peranti ditemui"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Berkongsi Wi‑Fi dengan peranti ini…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Menyambung…"</string>
<string name="retry" msgid="6472609612090877557">"Cuba semula"</string>
<string name="wifi_shared" msgid="844142443226926070">"Kongsi dengan pengguna peranti yang lain"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(tidak berubah)"</string>
@@ -1071,11 +1069,6 @@
<item msgid="7715869266611010880">"Mudah alih"</item>
<item msgid="2838022395783120596">"Wi-Fi sahaja"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi diutamakan"</item>
<item msgid="5074515506087318555">"Mudah alih diutamakan"</item>
@@ -1084,10 +1077,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mudah alih"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Apabila panggilan Wi-Fi dihidupkan, telefon anda boleh menghalakan panggilan melalui rangkaian Wi-Fi atau rangkaian pembawa anda, bergantung pada pilihan anda dan isyarat yang lebih kuat. Sebelum menghidupkan ciri ini, semak dengan pembawa anda berkenaan bayaran dan butiran lain.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Alamat Kecemasan"</string>
@@ -2058,8 +2047,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minit"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tempoh untuk membaca"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tempoh untuk mengambil tindakan"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Pilih tempoh untuk menunjukkan mesej yang perlu anda baca tetapi kelihatan hanya sementara.\n\nBukan semua apl menyokong tetapan ini."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Pilih tempoh untuk menunjukkan mesej yang meminta anda mengambil tindakan, tetapi mesej itu hanya dapat dilihat buat sementara waktu.\n\nTidak semua apl menyokong tetapan ini."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Lengahan sentuh & tahan"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Penyongsangan warna"</string>
@@ -3014,7 +3002,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apl & pemberitahuan"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Kebenaran, apl lalai"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Akses pemberitahuan tidak tersedia untuk apl dalam profil kerja."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Akaun"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Tiada akaun yang ditambahkan"</string>
@@ -3077,7 +3066,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Paparan ambien, Paparan skrin kunci"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"pemberitahuan skrin kunci"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"wajah"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"cap jari"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"malapkan skrin, skrin sentuh, bateri, kecerahan pintar, kecerahan dinamik"</string>
<!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
<skip />
@@ -3111,6 +3101,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Pendering ditetapkan kepada senyap"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Kelantangan deringan pada 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Kelantangan media"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Kelantangan panggilan"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Kelantangan penggera"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Kelantangan deringan"</string>
@@ -4231,10 +4223,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Kemas Kini Jangan Ganggu"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Jeda pemberitahuan untuk mengekalkan tumpuan"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Video ini tidak tersedia pada peranti ini"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Ciri ini tidak tersedia"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Ciri akan memperlahankan telefon ini"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Paksa ukuran GNSS penuh"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Jejak semua gugusan dan kekerapan GNSS tanpa kitaran tugas"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Benarkan aktiviti latar belakang bermula"</string>
@@ -4438,6 +4428,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> saluran pemberitahuan. Ketik untuk mengurus semua."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Tukar output"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Sedang dimainkan pada <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Langganan anda dengan pembekal ini mungkin dibatalkan. Langganan berulang tidak akan dibatalkan. Untuk mendapatkan maklumat lanjut, semak dengan pembekal anda."</string>
</resources>
diff --git a/res/values-my/arrays.xml b/res/values-my/arrays.xml
index 8f50be6..cce2101 100644
--- a/res/values-my/arrays.xml
+++ b/res/values-my/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"၀"</item>
- <item msgid="8113210705878681550">"၁"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"ကမ္ဘာအနှံ့"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"၁၀"</item>
- <item msgid="4187053702071521357">"၈"</item>
- <item msgid="5461421967189969022">"၉"</item>
- </string-array>
</resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 1a1cdc6..494dbce 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"အခြားကွန်ရက် ရွေးရန်"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"စက်ပစ္စည်းကို ထည့်၍မရပါ"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"စက်ပစ္စည်းကို တွေ့ရှိပါသည်"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi ကို ဤစက်အား မျှဝေနေသည်…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"ချိတ်ဆက်နေသည်…"</string>
<string name="retry" msgid="6472609612090877557">"ထပ်စမ်းကြည့်ရန်"</string>
<string name="wifi_shared" msgid="844142443226926070">"အခြားစက်ပစ္စည်းအသုံးပြုသူများဖြင့် မျှဝေ"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ပြောင်းလဲခြင်းမရှိ)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"မိုဘိုင်း"</item>
<item msgid="2838022395783120596">"Wi-Fi သာလျှင်"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"၂"</item>
- <item msgid="1171822231056612021">"၁"</item>
- <item msgid="3194458950573886239">"၀"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi ကိုပိုနှစ်စက်သည်"</item>
<item msgid="5074515506087318555">"မိုဘိုင်းကို အသုံးပြုလိုပါသည်"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"မိုဘိုင်း"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"၂"</item>
- <item msgid="6200207341126893791">"၁"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi ခေါ်ဆိုမှု ဖွင့်ထားသည့်အခါ သင်၏ရွေးချယ်မှုနှင့် လိုင်းပိုမိမှုအပေါ် မူတည်၍ သင့်ဖုန်းသည် Wi-Fi ကွန်ရက်များ သို့မဟုတ် သင့် ဝန်ဆောင်မှုပေးသူ၏ ကွန်ရက်မှတစ်ဆင့် ခေါ်ဆိုမှုများ ထပ်ဆင့်ပို့နိုင်ပါသည်။ ဤဝန်ဆောင်မှုမဖွင့်မီ ကျသင့်ငွေနှင့် အခြားအသေးစိတ် အချက်များအတွက် သင့်ဝန်ဆောင်မှုပေးသူကို မေးမြန်းကြည့်ပါ။<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"အရေးပေါ်လိပ်စာ"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"၂ မိနစ်"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"ဖတ်ရန် အချိန်"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"တစ်ခုခုလုပ်ဆောင်ရန် အချိန်"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"သင် ဖတ်ရှုရမည့် မက်ဆေ့ဂျ်များအား ပြရမည့် ကြာချိန် ရွေးပါ။ သို့သော်လည်း ယာယီသာ မြင်ရပါမည်။\n\nဤဆက်တင်ကို အက်ပ်အားလုံးတွင် အသုံးမပြုနိုင်ပါ။"</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"တစ်ခုခုလုပ်ဆောင်ရန် မေးသည့် မက်ဆေ့ဂျ်များ ပြရမည့်ကြာချိန် ရွေးပါ၊ သို့သော်လည်း ယာယီသာ မြင်ရပါမည်။\n\nအက်ပ်အားလုံးတွင် ဤဆက်တင် အသုံးမပြုနိုင်ပါ။"</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"ထိထားရန် လိုအပ်ချိန်"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"အရောင်ပြောင်းပြန်"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ဘလူးတုသ်၊ NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ဘလူးတုသ်"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"အက်ပ်နှင့်အကြောင်းကြားချက်"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"ခွင့်ပြုချက်များ၊ မူရင်းအက်ပ်များ"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"အလုပ်ပရိုဖိုင်အတွင်းရှိ အက်ပ်များအတွက် အကြောင်းကြားချက် ဝင်ကြည့်၍ မရနိုင်ပါ။"</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"အကောင့်များ"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"မည်သည့်အကောင့်ကိုမျှ ထည့်သွင်းမထားပါ"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ဝန်းကျင်ကို ပြကွက်၊ လော့ခ်ချထားချိန် မျက်နှာပြင်"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"လော့ခ်ချထားချိန် မျက်နှာပြင် အကြောင်းကြားချက်"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"မျက်နှာ"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"လက်ဗွေ"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"မျက်နှာပြင် အမှိန်၊ တို့ထိမျက်နှာပြင်၊ ဘက်ထရီ၊ အဆင့်မြင့် တောက်ပမှု၊ အားကောင်းသောတောက်ပမှု"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ဖန်သားပြင် အရောင်မှိန်ခြင်း၊ နားခြင်း၊ ဘက်ထရီ၊ ခဏရပ်ချိန်၊ သတိပြုရန်၊ မျက်နှာပြင်ပြသမှု၊ မျက်နှာပြင်၊ အသုံးပြုမှုမရှိခြင်း"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"လှည့်သည်၊ လှန်ခြင်း၊ လှည့်ခြင်း၊ ထောင်လိုက်၊ အလျားလိုက်၊ အနေအထား၊ ထောင်လိုက်၊ ရေပြင်ညီ"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"ဖုန်းမြည်သံကို အသံပိတ်ထားပါသည်"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"ဖုန်းမြည်သံ အတိုးအကျယ် ၈၀% ဖြစ်သည်"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"မီဒီယာ အသံအတိုးအကျယ်"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"ဖုန်းခေါ်မှု အသံအတိုးအကျယ်"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"နှိုးစက်အသံ အတိုးအကျယ်"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"ဖုန်းမြည်သံ အတိုးအကျယ်"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"\'မနှောင့်ယှက်ရ\' ကို အပ်ဒိတ်လုပ်ခြင်း"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"အာရုံစူးစိုက်နိုင်ရန် အကြောင်းကြားချက်များကို ခေတ္တရပ်ထားပါ"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"ဤဝန်ဆောင်မှုကို ဤစက်ပစ္စည်းတွင် မရရှိနိုင်ပါ"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"ဤဝန်ဆောင်မှုကို မရနိုင်ပါ"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"၎င်းကြောင့် ဤဖုန်းနှေးသွားပါမည်"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"GNSS အတိုင်းအတာအပြည့် သက်ရောက်ရန်"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"လည်ပတ်ချိန်မပါဘဲ GNSS စက်ဝိုင်းပုံမြင်ကွင်းကျယ်ပုံများနှင့် ကြိမ်နှုန်းအားလုံးကို ခြေရာခံပါ"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"နောက်ခံ လုပ်ဆောင်ချက် စတင်မှုများ ခွင့်ပြုပါ"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"အကြောင်းကြားချက် ချန်နယ် <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ခု။ အားလုံးကို စီမံရန် တို့ပါ။"</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"မီဒီယာအထွက် ပြောင်းပါ"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ပေါ်တွင် လက်ရှိ ဖွင့်နေသည်"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ဤဝန်ဆောင်မှုပေးသူကို စာရင်းသွင်းမှု ပယ်ဖျက်ပါမည်။ ထပ်တလဲလဲ စာရင်းသွင်းမှုများကို ပယ်ဖျက်မည်မဟုတ်ပါ။ နောက်ထပ်အချက်အလက်များအတွက် ဝန်ဆောင်မှုပေးသူကို မေးမြန်းပါ။"</string>
</resources>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index 2b526ce..8c6d7b8 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Globalt"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index b68939b..f655d08 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Velg et annet nettverk"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Kunne ikke legge til enheten"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Fant en enhet"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Deler Wi-Fi med denne enheten …"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Kobler til …"</string>
<string name="retry" msgid="6472609612090877557">"Prøv på nytt"</string>
<string name="wifi_shared" msgid="844142443226926070">"Del med andre brukere av enheten"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(uendret)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobil"</item>
<item msgid="2838022395783120596">"Bare Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi er foretrukket"</item>
<item msgid="5074515506087318555">"Først-på-mobil"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobil"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Når Wi-Fi-anrop er slått på, kan telefonen din dirigere telefonsamtaler via Wi-Fi-nettverk eller operatørens nettverk, avhengig av hva du har angitt i innstillingene og hvilket signal som er sterkest. Før du slår på denne funksjonen, er det viktig å sjekke gebyrer og andre detaljer med operatøren din.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Adresse for nødssituasjoner"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutter"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tid til å lese"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tid til å gjøre noe"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Velg hvor lenge du vil se meldinger du må lese, men som bare vises midlertidig.\n\nIkke alle apper støtter denne innstillingen."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Velg hvor lenge du vil se meldinger som ber deg gjøre noe, men som bare vises midlertidig.\n\nIkke alle apper støtter denne innstillingen."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Forsinkelse for trykk-og-hold"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Fargeinvertering"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apper og varsler"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Tillatelser, standardapper"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Tilgang til varsler er ikke tilgjengelig for apper i jobbprofilen."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Kontoer"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Ingen kontoer er lagt til"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Passiv skjerm, låseskjerm"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"varsel på låseskjermen"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ansikt"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingeravtrykk"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"dim skjermen, berøringsskjerm, batteri, smart lysstyrke, dynamisk lysstyrke"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ton ned skjermen, hvilemodus, batteri, tidsavbrudd, oppmerksomhet, visning, skjerm, inaktivitet"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"rotér, vend, rotasjon, stående, liggende, retning, vertikal, horisontal"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ringeprogrammet er satt til stille"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Ringevolumet er satt til 80 %"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Medievolum"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Samtalevolum"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Alarmvolum"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Ringevolum"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Oppdater «Ikke forstyrr»"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Sett varsler på pause for å holde deg fokusert"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Denne funksjonen er ikke tilgjengelig på denne enheten"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Denne funksjonen er ikke tilgjengelig"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Den senker hastigheten til telefonen"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Tving fullstendige GNSS-målinger"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Spor alle GNSS-konstellasjoner og -frekvenser uten syklus for oppgaver"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Tillat start av bakgrunnsaktivitet"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> varselkanaler. Trykk for å administrere alle."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Bytt utenhet"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Spiller nå av på <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Abonnementet ditt hos denne leverandøren kan bli kansellert. Gjentakende abonnement blir ikke kansellert. Hvis du vil ha mer informasjon, kan du kontakte leverandøren din."</string>
</resources>
diff --git a/res/values-ne/arrays.xml b/res/values-ne/arrays.xml
index a492cdb..d22250a 100644
--- a/res/values-ne/arrays.xml
+++ b/res/values-ne/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"विश्वव्यापी"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index bcdfb8c..91245f7 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"फरक नेटवर्क छनौट गर्नुहोस्"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"यन्त्र थप्न सकिएन"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"यन्त्र भेटियो"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"यो सेवामार्फत Wi‑Fi आदान प्रदान गर्दै…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"जडान गर्दै…"</string>
<string name="retry" msgid="6472609612090877557">"पुनः प्रयास गर्नु…"</string>
<string name="wifi_shared" msgid="844142443226926070">"अन्य यन्त्र प्रयोगकर्ताहरूसँग साझेदारी गर्नुहोस्"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(अपरिवर्तित)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"मोबाइल"</item>
<item msgid="2838022395783120596">"Wi-Fi मात्र"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi रुचाइएको"</item>
<item msgid="5074515506087318555">"मोबाइल रूचाइएको छ"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"मोबाइल"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"२"</item>
- <item msgid="6200207341126893791">"१"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi कलिङ सक्रिय पारिएका बेला तपाईंको फोनले तपाईंको प्राथमिकता र सङ्केतको बलियोपनाका आधारमा कलहरूलाई Wi-Fi नेटवर्कहरू वा तपाईंको सेवा प्रदायकको नेटवर्कमार्फत पठाउन सक्छ। यो सुविधा सक्रिय गर्नुअघि लाग्ने शुल्क र अन्य विवरणहरूबारे बुझ्न आफ्नो सेवा प्रदायकसँग सम्पर्क गर्नुहोस्।<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"आपतकालीन ठेगाना"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"२ मिनेट"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"पढ्ने समय"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"कारबाही गर्ने समय"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"तपाईंले पढ्नु पर्ने तर अस्थायी रूपमा मात्र देखिने सन्देशहरू देखाइने समय छनौट गर्नुहोस्।\n\nयो सेटिङले सबै अनुप्रयोगहरूमा काम गर्दैन।"</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"तपाईंलाई कारबाही गर्न लगाउने तर अस्थायी रूपमा मात्र देखिने सन्देशहरू देखाइने समय छनौट गर्नुहोस्।\n\nसबै अनुप्रयोगहरूले यो सेटिङ समर्थन गर्दैनन्।"</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"छुनुहोस् र केहीबेर समाउनुहोस्"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"रंग इन्भर्सन"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ब्लुटुथ, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ब्लुटुथ"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"अनुप्रयोग तथा सूचनाहरू"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"अनुमतिहरू, पूर्वनिर्धारित अनुप्रयोगहरू"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"कार्य प्रोफाइलका अनुप्रयोगहरूको सूचनामाथि पहुँच छैन।"</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"खाताहरू"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"कुनै पनि खाता थप गरिएन"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"परिवेशको प्रदर्शन, लक स्क्रिनको प्रदर्शन"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"लक स्क्रिनको सूचना"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"अनुहार"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"फिंगरप्रिन्ट"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"मधुरो स्क्रिन, टचस्क्रिन, ब्याट्री, स्मार्ट चमक, गतिशील उज्यालोपन"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"मधुरो स्क्रिन, शयन अवस्था, ब्याट्री, टाइमआउट, ध्यान, डिस्प्ले, स्क्रिन, निष्क्रियता"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"घुमाउनुहोस्, पल्टाउनुहोस्, परिक्रमा, पोर्ट्रेट, ल्यान्डस्केप, अभिमुखीकरण, ठाडो, तेर्सो"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"घन्टी बजाउनेलाई मौनमा सेट गरिएको छ"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"८०% मा सेट गरिँदा घन्टीको भोल्युम"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"मिडियाको आवाजको मात्रा"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"कलको भोल्युम"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"अलार्मको आवाजको मात्रा"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"घन्टीको आवाजको मात्रा"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"बाधा नपुर्याउनुहोस् नामक सेवालाई अद्यावधिक गर्नुहोस्"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"केन्द्रित रहन सूचनाहरू पज गर्नुहोस्"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"यस यन्त्रमा यो सुविधा उपलब्ध छैन"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"यो सुविधा उपलब्ध छैन"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"यो सुविधा प्रयोग गर्नुले फोनको कार्यक्षमता सुस्त पार्ने छ"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"पूर्ण GNSS मापनहरू बलपूर्वक लागू गर्नुहोस्"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"कुनै उपयोगिता अनुपात बिना नै सबै GNSS कन्स्टेलेसन तथा फ्रिक्वेन्सीहरूलाई ट्र्याक गर्नुहोस्"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"पृष्ठभूमिको क्रियाकलाप सुरु हुने अनुमति दिनुहोस्"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"सूचनाका <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> च्यानलहरू। सबैको व्यवस्थापन गर्न ट्याप गर्नुहोस्।"</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"आउटपुट बदल्नुहोस्"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"हाल <xliff:g id="DEVICE_NAME">%1$s</xliff:g> मा प्ले भइरहेको"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"तपाईंको यो सेवा प्रदायकको सदस्यता रद्द गर्न सकिन्छ। पुनरावर्ती सदस्यताहरू रद्द गरिने छैनन्। थप जानकारीका लागि आफ्नो सेवा प्रदायकलाई सम्पर्क गर्नुहोस्।"</string>
</resources>
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index a07e0cd..256730a 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Algemeen"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index f4eb633..2f5dffa 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Ander netwerk kiezen"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Kan apparaat niet toevoegen"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Apparaat gevonden"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wifi delen met dit apparaat…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Verbinden…"</string>
<string name="retry" msgid="6472609612090877557">"Opnieuw proberen"</string>
<string name="wifi_shared" msgid="844142443226926070">"Delen met andere apparaatgebruikers"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ongewijzigd)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobiel"</item>
<item msgid="2838022395783120596">"Alleen wifi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Voorkeur voor wifi"</item>
<item msgid="5074515506087318555">"Voorkeur voor mobiel"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wifi"</item>
<item msgid="1118703915148755405">"Mobiel"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wanneer bellen via wifi is ingeschakeld, kan je telefoon gesprekken doorschakelen via wifi-netwerken of het netwerk van je provider, afhankelijk van je voorkeur en welk signaal sterker is. Voordat je deze functie inschakelt, neem je contact met je provider op over de kosten en andere details.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Adres bij noodgevallen"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuten"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tijd om te lezen"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tijd om actie te ondernemen"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Kies hoelang je berichten wilt weergeven die je moet lezen, maar die slechts tijdelijk zichtbaar zijn.\n\nDeze instelling wordt niet door alle apps ondersteund."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Kies hoelang je berichten wilt weergeven die je vragen om actie te ondernemen, maar die slechts tijdelijk zichtbaar zijn.\n\nDeze instelling wordt niet door alle apps ondersteund."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Vertraging voor blijven aanraken"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Kleurinversie"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps en meldingen"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Machtigingen, standaard-apps"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Toegang tot meldingen is niet beschikbaar voor apps in het werkprofiel."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Accounts"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Geen accounts toegevoegd"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Inactieve display, vergrendelingsscherm"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"melding op vergrendelingsscherm"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"gezicht"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"vingerafdruk"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"scherm dimmen, touchscreen, batterij, slimme helderheid, dynamische helderheid"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"scherm dimmen, slaap, batterij, time-out, aandacht, display, scherm, inactiviteit"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"roteren, draaien, omdraaien, rotatie, portret, landschap, oriëntatie, verticaal, horizontaal, staand, liggend"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Belsoftware ingesteld op stil"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Belvolume op 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Mediavolume"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Belvolume"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Wekkervolume"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Beltoonvolume"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"\'Niet storen\' updaten"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Meldingen onderbreken om gefocust te blijven"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Deze functie is niet beschikbaar op dit apparaat"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Deze functie is niet beschikbaar"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"De functie vertraagt deze telefoon"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Volledige GNSS-metingen afdwingen"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Alle GNSS-constellaties en -frequenties bijhouden zonder duty cycling"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Starts van activiteit op de achtergrond toestaan"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> meldingskanalen. Tik om alle kanalen te beheren."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Uitvoer wijzigen"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Wordt momenteel afgespeeld op <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Je abonnement bij deze provider kan worden opgezegd. Terugkerende abonnementen worden niet opgezegd. Neem voor meer informatie contact op met je provider."</string>
</resources>
diff --git a/res/values-or/arrays.xml b/res/values-or/arrays.xml
index 2a0da03..e54a6c6 100644
--- a/res/values-or/arrays.xml
+++ b/res/values-or/arrays.xml
@@ -463,8 +463,10 @@
</string-array>
<!-- no translation found for swipe_direction_titles:0 (58569659116542716) -->
<!-- no translation found for swipe_direction_titles:1 (1878704357761948043) -->
- <!-- no translation found for swipe_direction_values:0 (8800082277840833437) -->
- <!-- no translation found for swipe_direction_values:1 (7485508823396511299) -->
+ <string-array name="swipe_direction_values">
+ <item msgid="8800082277840833437">"1"</item>
+ <item msgid="7485508823396511299">"0"</item>
+ </string-array>
<string-array name="wifi_metered_entries">
<item msgid="5200910605264415911">"ସ୍ଵଚାଳିତ ଭାବେ ଚିହ୍ନଟ କରନ୍ତୁ"</item>
<item msgid="8745603368609022803">"ମାପ ହୋଇଥିବା ସଂଯୋଗ ରୂପେ ବିବେଚନା କରନ୍ତୁ"</item>
@@ -520,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"ଗ୍ଲୋବାଲ୍"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 9038a4c..24de2ec 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -801,10 +801,8 @@
<string name="rx_link_speed" msgid="5729003360923133988">"<xliff:g id="RECEIVE_LINK_SPEED">%1$d</xliff:g> Mbps"</string>
<string name="wifi_ask_enable" msgid="2795469717302060104">"<xliff:g id="REQUESTER">%s</xliff:g> ୱାଇ-ଫାଇ ଅନ୍ କରିବାକୁ ଚାହାଁନ୍ତି"</string>
<string name="wifi_ask_disable" msgid="728366570145493573">"<xliff:g id="REQUESTER">%s</xliff:g> ୱାଇ-ଫାଇ ବନ୍ଦ କରିବାକୁ ଚାହୁଁଛି"</string>
- <!-- no translation found for art_verifier_for_debuggable_title (6029838014407791341) -->
- <skip />
- <!-- no translation found for art_verifier_for_debuggable_summary (2250352478065428399) -->
- <skip />
+ <string name="art_verifier_for_debuggable_title" msgid="6029838014407791341">"debuggable ଆପ୍ର bytecode ଯାଞ୍ଚ କରାନ୍ତୁ"</string>
+ <string name="art_verifier_for_debuggable_summary" msgid="2250352478065428399">"debuggable ଆପ୍ସ ପାଇଁ bytecode ଯାଞ୍ଚ କରିବାକୁ ART ଅନୁମତି କରନ୍ତୁ"</string>
<string name="nfc_quick_toggle_title" msgid="6769159366307299004">"NFC"</string>
<string name="nfc_quick_toggle_summary" product="tablet" msgid="8302974395787498915">"ଟାବ୍ଲେଟ୍ ଅନ୍ୟ ଡିଭାଇସ୍କୁ ଛୁଇଁଲେ ଡାଟା ଆଦାନପ୍ରଦାନର ଅନୁମତି ଦିଅନ୍ତୁ"</string>
<string name="nfc_quick_toggle_summary" product="default" msgid="5237208142892767592">"ଫୋନ୍ଟି ଅନ୍ୟ ଡିଭାଇସ୍କୁ ଛୁଇଁଲେ ଡାଟା ପ୍ରତିବଦଳ କରିପାରିବ"</string>
@@ -919,8 +917,7 @@
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"ୱାଇ-ଫାଇ ହଟସ୍ପଟ୍ ପାଇଁ ଅତିକମ୍ରେ ଗୋଟିଏ ବ୍ୟାଣ୍ଡକୁ ଚୟନ କରନ୍ତୁ:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP ସେଟିଙ୍ଗ"</string>
<string name="wifi_privacy_settings" msgid="5500777170960315928">"ଗୋପନୀୟତା"</string>
- <!-- no translation found for wifi_privacy_settings_ephemeral_summary (1539659414108891004) -->
- <skip />
+ <string name="wifi_privacy_settings_ephemeral_summary" msgid="1539659414108891004">"ଅନିୟମିତ MAC"</string>
<string name="wifi_dpp_add_device_to_network" msgid="8674936581557695411">"ଏକ ଡିଭାଇସ୍ ଯୋଗ କରନ୍ତୁ"</string>
<string name="wifi_dpp_center_qr_code" msgid="6244508369721032655">"ଏହି “<xliff:g id="SSID">%1$s</xliff:g>”ରେ ଯୋଗ କରିବା ପାଇଁ ନିମ୍ନରେ ଥିବା QR କୋଡ୍କୁ କେନ୍ଦ୍ରକୁ ଆଣନ୍ତୁ"</string>
<string name="wifi_dpp_scan_qr_code" msgid="4794621158747044107">"QR କୋଡ୍ ସ୍କାନ୍ କରନ୍ତୁ"</string>
@@ -928,20 +925,13 @@
<string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="8096370383700478819">"ଗୋଟିଏ QR କୋଡ୍ ସ୍କାନ୍ କରି ୱାଇ-ଫାଇରେ ଯୋଗ ଦିଅନ୍ତୁ"</string>
<string name="wifi_dpp_share_wifi" msgid="9065890131734833809">"ୱାଇ-ଫାଇ ସେୟାର୍ କରନ୍ତୁ"</string>
<string name="wifi_dpp_scan_qr_code_with_another_device" msgid="8416440732377359392">"“<xliff:g id="SSID">%1$s</xliff:g>”ରେ ଯୋଗଦେବାକୁ, ଏହି QR କୋଡ୍କୁ ଅନ୍ୟଏକ ଡିଭାଇସ୍ରେ ସ୍କାନ୍ କରନ୍ତୁ"</string>
- <!-- no translation found for wifi_dpp_could_not_detect_valid_qr_code (641893675646330576) -->
- <skip />
- <!-- no translation found for wifi_dpp_failure_authentication_or_configuration (3372757783382381044) -->
- <skip />
- <!-- no translation found for wifi_dpp_failure_not_compatible (2829930473520603740) -->
- <skip />
- <!-- no translation found for wifi_dpp_failure_timeout (5228320772245820458) -->
- <skip />
- <!-- no translation found for wifi_dpp_failure_generic (8030831192606098356) -->
- <skip />
- <!-- no translation found for wifi_dpp_failure_not_supported (2643768115109632725) -->
- <skip />
- <!-- no translation found for wifi_dpp_check_connection_try_again (2632966336733361805) -->
- <skip />
+ <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="641893675646330576">"QR କୋଡ୍କୁ ପଢ଼ି ପାରୁ ନାହିଁ। କୋଡ୍ ପୁନଃ-କେନ୍ଦ୍ରିତ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ"</string>
+ <string name="wifi_dpp_failure_authentication_or_configuration" msgid="3372757783382381044">"ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ। ଯଦି ସମସ୍ୟା ଜାରି ରୁହେ, ଡିଭାଇସ୍ର ନିର୍ମାତାଙ୍କୁ ଯୋଗାଯୋଗ କରନ୍ତୁ"</string>
+ <string name="wifi_dpp_failure_not_compatible" msgid="2829930473520603740">"କିଛି ଭୁଲ ହୋଇଗଲା"</string>
+ <string name="wifi_dpp_failure_timeout" msgid="5228320772245820458">"ଡିଭାଇସ୍ ପ୍ଲଗ୍ ଇନ୍, ଚାର୍ଜ, ଏବଂ ଚାଲୁ ରହିଥିବା ସୁନିଶ୍ଚିତ ହୁଅନ୍ତୁ"</string>
+ <string name="wifi_dpp_failure_generic" msgid="8030831192606098356">"ଡିଭାଇସ୍ ପ୍ଲଗ୍ ଇନ୍, ଚାର୍ଜ, ଏବଂ ଚାଲୁ ରହିଥିବା ସୁନିଶ୍ଚିତ ହୁଅନ୍ତୁ। ଯଦି ସମସ୍ୟା ଜାରି ରୁହେ, ଡିଭାଇସ୍ର ନିର୍ମାତାଙ୍କୁ ଯୋଗାଯୋଗ କରନ୍ତୁ"</string>
+ <string name="wifi_dpp_failure_not_supported" msgid="2643768115109632725">"ଏହି ଡିଭାଇସ୍ରେ “<xliff:g id="SSID">%1$s</xliff:g>” ଯୋଗ କରିବା ସମର୍ଥିତ ନୁହେଁ"</string>
+ <string name="wifi_dpp_check_connection_try_again" msgid="2632966336733361805">"ସଂଯୋଗ ଯାଞ୍ଚ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ"</string>
<string name="wifi_dpp_choose_network" msgid="7139308800110200281">"ନେଟ୍ୱର୍କ ବାଛନ୍ତୁ"</string>
<string name="wifi_dpp_choose_network_to_connect_device" msgid="4025269026652486605">"ଆପଣଙ୍କ ଡିଭାଇସ୍ ସହ ସଂଯୋଗ କରିବାକୁ, ଏକ ନେଟ୍ୱର୍କ ବାଛନ୍ତୁ"</string>
<string name="wifi_dpp_add_device_to_wifi" msgid="5459084866460319042">"“<xliff:g id="SSID">%1$s</xliff:g>”କୁ ଏହି ଡିିିିଭାଇସ୍ ଯୋଗ କରିିିବେ?"</string>
@@ -950,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"ଭିନ୍ନ ନେଟ୍ୱର୍କ ବାଛନ୍ତୁ"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"ଡିଭାଇସ୍କୁ ଯୋଗ କରାଯାଇପାରିଲା ନାହିଁ"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"ଡିଭାଇସ୍ ମିଳିଲା"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"ଏହି ଡିଭାଇସ୍ ସହ ୱାଇ-ଫାଇ ସେୟାର୍ କରାଯାଉଛି…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"ସଂଯୋଗ କରୁଛି…"</string>
<string name="retry" msgid="6472609612090877557">"ପୁନଃଚେଷ୍ଟା କରନ୍ତୁ"</string>
<string name="wifi_shared" msgid="844142443226926070">"ଅନ୍ୟାନ୍ୟ ଡିଭାଇସ୍ ଉପଯୋଗକର୍ତ୍ତାଙ୍କ ସହ ଶେୟାର୍ କରନ୍ତୁ"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ଅପରିବର୍ତ୍ତିତ)"</string>
@@ -1077,11 +1065,6 @@
<item msgid="7715869266611010880">"ମୋବାଇଲ୍"</item>
<item msgid="2838022395783120596">"କେବଳ ୱାଇ-ଫାଇ"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"୧"</item>
- <item msgid="3194458950573886239">"୦"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"ମନପସନ୍ଦର ୱାଇ-ଫାଇ"</item>
<item msgid="5074515506087318555">"ପସନ୍ଦର ମୋବାଇଲ୍"</item>
@@ -1090,12 +1073,7 @@
<item msgid="6132150507201243768">"ୱାଇ-ଫାଇ"</item>
<item msgid="1118703915148755405">"ମୋବାଇଲ୍"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"୨"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
- <!-- no translation found for wifi_calling_off_explanation (564780186974911501) -->
- <skip />
+ <string name="wifi_calling_off_explanation" msgid="564780186974911501">"ୱାଇ-ଫାଇ କଲିଂ ଚାଲୁ ଥିବା ବେଳେ, ଆପଣଙ୍କ ଫୋନ୍ ଆପଣଙ୍କ ପସନ୍ଦ ଉପରେ ନିର୍ଭର କରି ତଥା ୱାଇ-ଫାଇ ନେଟ୍ୱର୍କ କିମ୍ବା ଆପଣଙ୍କ ବାହକର ନେଟ୍ୱର୍କ ମଧ୍ୟରେ ଦୃଢ଼ ଥିବା ସିଗ୍ନାଲ୍ ମାଧ୍ୟମରେ କଲ୍ଗୁଡ଼ିକ ରୁଟ୍ କରିପାରେ। ଏହି ବୈଶିଷ୍ଟ୍ୟ ଚାଲୁ କରିବା ପୂର୍ବରୁ, ଶୁଳ୍କ ତଥା ଅନ୍ୟାନ୍ୟ ବିବରଣୀ ପାଇଁ ଆପଣଙ୍କ ବାହକଙ୍କ ସହ ସମ୍ପର୍କ କରନ୍ତୁ।<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"ଜରୁରୀକାଳୀନ ଠିକଣା"</string>
<string name="emergency_address_summary" msgid="7751971156196115129">"ୱାଇ-ଫାଇ ମାଧ୍ୟମରେ ଆପଣ କୌଣସି ଆପାତକାଳୀନ କଲ୍ କରିବା ବେଳେ ଆପଣଙ୍କ ଲୋକେଶନ୍ ରୂପେ ବ୍ୟବହୃତ ହୋଇଥାଏ"</string>
@@ -2065,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 ମିନିଟ୍"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"ପଢ଼ିବାର ସମୟ"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"ପଦକ୍ଷେପ ନେବାର ସମୟ"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ଆପଣ ପଢ଼ିବା ପାଇଁ କେତେ ସମୟ ମେସେଜ୍ ଦେଖାଯିବ ବାଛନ୍ତୁ, କିନ୍ତୁ ଦୃଶ୍ୟଲବ୍ଧ ଅସ୍ଥାୟୀ ଅଟେ।\n\nସମସ୍ତ ଆପ୍ ଏହି ସେଟିଂ ସମର୍ଥନ କରେ ନାହିଁ।"</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"ଯେଉଁ ମେସେଜ୍ ଆପଣଙ୍କୁ ପଦକ୍ଷେପ ନେବା ପାଇଁ କହେ, କିନ୍ତୁ ଅସ୍ଥାୟୀ ରୂପେ ଦେଖାଯାଏ, ତାହା କେତେ ସମୟ ଦେଖାଯିବ, ତାହା ବାଛନ୍ତୁ।\n\nସମସ୍ତ ଆପ୍ ଏହି ସେଟିଂସ୍କୁ ସମର୍ଥନ କରେନାହିଁ।"</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"ସ୍ପର୍ଶକରି ଦବାଇ ରଖିବାରେ ବିଳମ୍ୱ"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"ରଙ୍ଗର ବିପରୀତକରଣ"</string>
@@ -3017,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ବ୍ଲୁ-ଟୂଥ୍, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ବ୍ଲୁ-ଟୂଥ୍"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ଆପ୍ ଓ ବିଜ୍ଞପ୍ତି"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"ଅନୁମତି, ଡିଫଲ୍ଟ ଆପ୍"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"ୱାର୍କ ପ୍ରୋଫାଇଲ୍ରେ ଆପ୍ସ ପାଇଁ ବିଜ୍ଞପ୍ତି ଆକ୍ସେସ ଉପଲବ୍ଧ ନାହିଁ."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"ଆକାଉଣ୍ଟ"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"କୌଣସି ଆକାଉଣ୍ଟ ଯୋଡ଼ାଯାଇନାହିଁ"</string>
@@ -3080,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ଆମ୍ବିଏଣ୍ଟ ଡିସ୍ପ୍ଲେ, ଲକ୍ ସ୍କ୍ରୀନ୍ ଡିସ୍ପ୍ଲେ"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ସ୍କ୍ରିନ୍ ବିଜ୍ଞପ୍ତିକୁ ଲକ୍ କରନ୍ତୁ"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ଫେସ୍"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ଆଙ୍ଗୁଠି ଚିହ୍ନ"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"କମ୍ ଆଲୋକ ଥିବା ସ୍କ୍ରୀନ୍, ଟଚ୍ସ୍କ୍ରୀନ୍, ବ୍ୟାଟେରୀ, ସ୍ମାର୍ଟ ଉଜ୍ଵଳତା, ଡାଇନାମିକ୍ ଉଜ୍ଵଳତା"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"କମ୍ ଆଲୋକ ଥିବା ସ୍କ୍ରିନ୍, ସ୍ଲିପ୍ ମୋଡ୍, ବ୍ୟାଟେରୀ, ସମୟ ସମାପ୍ତି, ଧ୍ୟାନଦିଅନ୍ତୁ, ଡିସ୍ପ୍ଲେ, ସ୍କ୍ରିନ୍, ନିଷ୍କ୍ରିୟତା"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"ରୋଟେଟ୍, ଫ୍ଲିପ୍, ରୋଟେଶନ୍, ପୋର୍ଟେଟ୍, ଲ୍ୟାଣ୍ଡସ୍କେପ୍, ଓରିଏଣ୍ଟେଶନ୍, ଭର୍ଟିକଲ୍, ହୋରିଜୋଣ୍ଟାଲ୍"</string>
@@ -3113,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"ରିଙ୍ଗର୍, ସାଇଲେଣ୍ଟକୁ ସେଟ୍ କରାଯାଇଛି"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"ରିଙ୍ଗ ଭଲ୍ୟୁମ 80% ରେ ଅଛି"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"ମିଡିଆ ଭଲ୍ୟୁମ୍"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"କଲ୍ ଭଲ୍ୟୁମ୍"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"ଆଲାର୍ମର ଭଲ୍ୟୁମ୍"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"ରିଙ୍ଗ ଭଲ୍ୟୁମ୍"</string>
@@ -3278,12 +3259,9 @@
<string name="hide_silent_icons_summary" msgid="7479863645940885952">"ନୀରବ ବାରରେ ନୀରବ ବିଜ୍ଞପ୍ତିର ଆଇକନ୍ ଲୁଚାନ୍ତୁ"</string>
<string name="notification_badging_title" msgid="5938709971403474078">"ବିଜ୍ଞପ୍ତି ଡଟସ୍ ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
<string name="notification_bubbles_title" msgid="4750896810493858296">"ବିଜ୍ଞପ୍ତି ବବଲ୍ ପାଇଁ ଅନୁମତି କରନ୍ତୁ"</string>
- <!-- no translation found for swipe_direction_title (6877543492435053137) -->
- <skip />
- <!-- no translation found for swipe_direction_ltr (3623394320915041215) -->
- <skip />
- <!-- no translation found for swipe_direction_rtl (4972099509548044938) -->
- <skip />
+ <string name="swipe_direction_title" msgid="6877543492435053137">"ସ୍ୱାଇପ୍ କାର୍ଯ୍ୟ"</string>
+ <string name="swipe_direction_ltr" msgid="3623394320915041215">"ଖାରଜ କରିବାକୁ ଡାହାଣକୁ, ମେନୁ ଦେଖାଇବାକୁ ବାମକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ"</string>
+ <string name="swipe_direction_rtl" msgid="4972099509548044938">"ଖାରଜ କରିବାକୁ ବାମକୁ, ମେନୁ ଦେଖାଇବାକୁ ଡାହାଣକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"ଆଲୋକକୁ ଧପଧପ କର"</string>
<string name="lock_screen_notifications_title" msgid="2583595963286467672">"ଲକ୍ ସ୍କ୍ରୀନ୍ ଉପରେ"</string>
<string name="locked_work_profile_notification_title" msgid="8327882003361551992">"କାର୍ଯ୍ୟ ପ୍ରୋଫାଇଲ୍ ଲକ୍ ଥିବା ବେଳେ"</string>
@@ -3608,8 +3586,7 @@
<string name="advanced_apps" msgid="4812975097124803873">"ଉନ୍ନତ"</string>
<string name="configure_apps" msgid="6685680790825882528">"ଆପ୍ଗୁଡ଼ିକୁ କନ୍ଫିଗର୍ କରନ୍ତୁ"</string>
<string name="unknown_app" msgid="5275921288718717656">"ଅଜଣା ଆପ୍"</string>
- <!-- no translation found for app_permissions (5584182129908141622) -->
- <skip />
+ <string name="app_permissions" msgid="5584182129908141622">"ଅନୁମତି ପରିଚାଳକ"</string>
<string name="app_permissions_summary" msgid="5163974162150406324">"<xliff:g id="APPS">%1$s</xliff:g> ବ୍ୟବହାର କରୁଥିବା ଆପ୍"</string>
<string name="tap_to_wake" msgid="7211944147196888807">"ଜାଗ୍ରତ କରିବାକୁ ଟାପ୍ କରନ୍ତୁ"</string>
<string name="tap_to_wake_summary" msgid="4341387904987585616">"ଡିଭାଇସ୍କୁ ଜାଗ୍ରତ କରିବା ପାଇଁ ସ୍କ୍ରୀନ୍ର ଯେକୌଣସି ସ୍ଥାନରେ ଟାପ୍ କରନ୍ତୁ"</string>
@@ -4237,10 +4214,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"’ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ’ ଅପଡେଟ୍ କରନ୍ତୁ"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"ଫୋକସ୍ ରହିବା ପାଇଁ ବିଜ୍ଞପ୍ତି ବିରତି କରନ୍ତୁ"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"ଏହି ଡିଭାଇସ୍ରେ ଏହି ବୈଶିଷ୍ଟ୍ୟ ଉପଲବ୍ଧ ନୁହେଁ"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"ଏହି ବୈଶିଷ୍ଟ୍ୟ ଉପଲବ୍ଧ ନାହିଁ"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ଏହା ଏହି ଫୋନ୍କୁ ମନ୍ଥର କରିଦେବ"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"ପୂର୍ଣ୍ଣ GNSS ପରିମାପ ବାଧ୍ୟ କରନ୍ତୁ"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ଉପଯୋଗିତା ଅନୁପାତ ନଥିବା ସମସ୍ତ GNSS ଉପଗ୍ରହ ସମଷ୍ଟି ଓ ଫ୍ରିକ୍ୱେନ୍ସୀକୁ ଟ୍ରାକ୍ କରନ୍ତୁ"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"ପୃଷ୍ଠଭୂମି ଗତିବିଧି ଆରମ୍ଭ ହେବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
@@ -4404,8 +4379,7 @@
<string name="network_connection_timeout_dialog_ok" msgid="8924405960181020156">"ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ"</string>
<string name="network_connection_errorstate_dialog_message" msgid="6953778550775646710">"କିଛି ଗୋଟିଏ ବାହାରିଛି ଏକ ଡିଭାଇସ୍କୁ ବାଛିବାକୁ, ଆପ୍ଲିକେସନ୍ ଅନୁରୋଧ ବାତିଲ୍ କରିଛି।"</string>
<string name="network_connection_connect_successful" msgid="5935510954474494928">"ସଫଳତାର ସହ ସଂଯୋଗ ହୋଇଛି"</string>
- <!-- no translation found for network_connection_request_dialog_showall (6938922880244567521) -->
- <skip />
+ <string name="network_connection_request_dialog_showall" msgid="6938922880244567521">"ସମସ୍ତ ଦେଖାନ୍ତୁ"</string>
<plurals name="show_bluetooth_devices" formatted="false" msgid="1715020480026568408">
<item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> ଡିଭାଇସ୍ଗୁଡ଼ିକ ସଂଯୋଗ ହୋଇଛି</item>
<item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> ଟି ଡିଭାଇସ୍ ସଂଯୋଗ ହୋଇଛି</item>
@@ -4433,8 +4407,7 @@
<string name="search_bar_account_avatar_content_description" msgid="4718261366290530792"></string>
<string name="permission_bar_chart_empty_text" msgid="4380731551728553852">"0 ଆପ୍ ଅନୁମତିର ଉପଯୋଗ କରିନାହାନ୍ତି"</string>
<string name="permission_bar_chart_title" msgid="7748942699610196566">"ଗତ 24 ଘଣ୍ଟାରେ ଅଧିକ ବ୍ୟବହୃତ ହୋଇଥିବା ଅନୁମତି"</string>
- <!-- no translation found for permission_bar_chart_details (5648719432839246667) -->
- <skip />
+ <string name="permission_bar_chart_details" msgid="5648719432839246667">"ଅନୁମତି ଡ୍ୟାସ୍ବୋର୍ଡ ଦେଖନ୍ତୁ"</string>
<string name="accessibility_usage_title" msgid="5136753034714150614">"ଆକ୍ସେସିବିଲିଟୀ ବ୍ୟବହାର"</string>
<plurals name="accessibility_usage_summary" formatted="false" msgid="4364945481915750314">
<item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g>ଟି ସେବାର ଆପଣଙ୍କର ଡିଭାଇସ୍କୁ ସମ୍ପୂର୍ଣ୍ଣ ଆକ୍ସେସ୍ ଅଛି</item>
@@ -4442,11 +4415,12 @@
</plurals>
<string name="manage_app_notification" msgid="877012013856561440">"<xliff:g id="APP_NAME">%1$s</xliff:g>ବିଜ୍ଞପ୍ତି ପରିଚାଳନା କରନ୍ତୁ"</string>
<string name="no_suggested_app" msgid="5722034393216359231">"କୌଣସି ପ୍ରସ୍ତାବିତ ଆପ୍ଲିକେସନ୍ ନାହିଁ"</string>
- <!-- no translation found for notification_few_channel_count_summary (1090888820158822106) -->
- <!-- no translation found for notification_many_channel_count_summary (8647409434789898073) -->
- <skip />
+ <plurals name="notification_few_channel_count_summary" formatted="false" msgid="1090888820158822106">
+ <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g>ଟି ବିଜ୍ଞପ୍ତି ଚ୍ୟାନେଲ୍।</item>
+ <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g>ଟି ବିଜ୍ଞପ୍ତି ଚ୍ୟାନେଲ୍।</item>
+ </plurals>
+ <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>ଟି ବିଜ୍ଞପ୍ତି ଚ୍ୟାନେଲ୍। ସବୁ ପରିଚାଳନା କରିବାକୁ ଟାପ୍ କରନ୍ତୁ।"</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"ଆଉଟ୍ପୁଟ୍ ସ୍ବିଚ୍ କରନ୍ତୁ"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"ବର୍ତ୍ତମାନ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ରେ ଚାଲୁଛି"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ଏହି ପ୍ରଦାନକାରୀଙ୍କ ସହ ଆପଣଙ୍କର ସଦସ୍ୟତା ବାତିଲ୍ ହୋଇଯାଇପାରେ। ସଦସ୍ୟତା ପୁନରାବୃତ୍ତି ବାତିଲ୍ ହେବ ନାହିଁ। ଅଧିକ ସୂଚନା ପାଇଁ, ଆପଣଙ୍କର ପ୍ରଦାନକାରୀଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।"</string>
</resources>
diff --git a/res/values-pa/arrays.xml b/res/values-pa/arrays.xml
index d8b99ac..e9c53f2 100644
--- a/res/values-pa/arrays.xml
+++ b/res/values-pa/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"ਗਲੋਬਲ"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index b1f48fe..0a93d01 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"ਵੱਖਰਾ ਨੈੱਟਵਰਕ ਚੁਣੋ"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"ਡੀਵਾਈਸ ਨੂੰ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"ਡੀਵਾਈਸ ਮਿਲਿਆ"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"ਇਸ ਡੀਵਾਈਸ ਨਾਲ ਵਾਈ-ਫਾਈ ਸਾਂਝਾ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"ਕਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
<string name="retry" msgid="6472609612090877557">"ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string>
<string name="wifi_shared" msgid="844142443226926070">"ਹੋਰ ਡੀਵਾਈਸ ਵਰਤੋਂਕਾਰਾਂ ਨਾਲ ਸਾਂਝਾ ਕਰੋ"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ਬਿਨਾਂ ਬਦਲਿਆ)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"ਮੋਬਾਈਲ"</item>
<item msgid="2838022395783120596">"ਸਿਰਫ਼ ਵਾਈ-ਫਾਈ"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"ਵਾਈ-ਫਾਈ ਤਰਜੀਹੀ"</item>
<item msgid="5074515506087318555">"ਮੋਬਾਈਲ ਨੂੰ ਤਰਜੀਹ ਹੈ"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"ਵਾਈ-ਫਾਈ"</item>
<item msgid="1118703915148755405">"ਮੋਬਾਈਲ"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"ਜਦੋਂ ਵਾਈ-ਫਾਈ ਕਾਲਿੰਗ ਚਾਲੂ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਤੁਹਾਡਾ ਫ਼ੋਨ ਤੁਹਾਡੀ ਤਰਜੀਹ ਅਤੇ ਕਿਹੜਾ ਸਿਗਨਲ ਵੱਧ ਮਜ਼ਬੂਤ ਹੈ, ਦੇ ਆਧਾਰ \'ਤੇ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕਾਂ ਜਾਂ ਤੁਹਾਡੇ ਕੈਰੀਅਰ ਦੇ ਨੈੱਟਵਰਕ ਰਾਹੀਂ ਕਾਲਾਂ ਰੂਟ ਕਰ ਸਕਦਾ ਹੈ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਚਾਲੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਫੀਸ ਅਤੇ ਹੋਰ ਵੇਰਵਿਆਂ ਲਈ ਆਪਣੇ ਕੈਰੀਅਰ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"ਸੰਕਟਕਾਲੀਨ ਪਤਾ"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 ਮਿੰਟ"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"ਪੜ੍ਹਨ ਦਾ ਸਮਾਂ"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"ਕਾਰਵਾਈ ਕਰਨ ਦਾ ਸਮਾਂ"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ਤੁਹਾਡੇ ਪੜ੍ਹਣ ਲਈ ਲੋੜੀਂਦੇ ਸੁਨੇਹਿਆਂ ਨੂੰ ਦਿਖਾਉਣ ਦਾ ਸਮਾਂ ਚੁਣੋ, ਜੋ ਕਿ ਸਿਰਫ਼ ਅਸਥਾਈ ਤੌਰ \'ਤੇ ਦਿਸਦੇ ਹਨ।\n\nਇਸ ਸੈਟਿੰਗ ਦਾ ਸਾਰੀਆਂ ਐਪਾਂ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀਆਂ ਹਨ।"</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"ਚੁਣੋ ਕਿ ਤੁਹਾਨੂੰ ਕਾਰਵਾਈ ਕਰਨ ਲਈ ਕਹਿਣ ਵਾਲੇ ਸੁਨੇਹਿਆਂ ਨੂੰ ਕਿੰਨੀ ਦੇਰ ਤੱਕ ਦਿਖਾਉਣਾ ਹੈ, ਜੋ ਕਿ ਸਿਰਫ਼ ਅਸਥਾਈ ਤੌਰ \'ਤੇ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ।\n\nਇਸ ਸੈਟਿੰਗ ਦਾ ਸਾਰੀਆਂ ਐਪਾਂ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀਆਂ ਹਨ।"</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"ਸਪੱਰਸ਼ ਕਰਕੇ ਰੱਖਣ ਵਿੱਚ ਦੇਰੀ"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"ਰੰਗ ਦੀ ਉਲਟੀ ਤਰਤੀਬ"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"ਬਲੂਟੁੱਥ, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"ਬਲੂਟੁੱਥ"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ਐਪਾਂ ਅਤੇ ਸੂਚਨਾਵਾਂ"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"ਇਜਾਜ਼ਤਾਂ, ਪੂਰਵ-ਨਿਰਧਾਰਤ ਐਪਾਂ"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਵਿੱਚ ਐਪਾਂ ਲਈ ਸੂਚਨਾ ਪਹੁੰਚ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।"</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"ਖਾਤੇ"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"ਕੋਈ ਖਾਤੇ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤੇ ਗਏ"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ਤੱਕਣੀਯੋਗ ਡਿਸਪਲੇ, ਲਾਕ ਸਕ੍ਰੀਨ ਡਿਸਪਲੇ"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"ਲਾਕ ਸਕ੍ਰੀਨ ਸੂਚਨਾ"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ਚਿਹਰਾ"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ਫਿੰਗਰਪ੍ਰਿੰਟ"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ਡਿਮ ਸਕ੍ਰੀਨ, ਟੱਚਸਕ੍ਰੀਨ, ਬੈਟਰੀ, ਸਮਾਰਟ ਚਮਕ, ਗਤੀਸ਼ੀਲ ਚਮਕ"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ਮੱਧਮ ਸਕ੍ਰੀਨ, ਸਲੀਪ, ਬੈਟਰੀ, ਸਮਾਂ ਸਮਾਪਤ, ਇਕਾਗਰਤਾ, ਡਿਸਪਲੇ, ਸਕ੍ਰੀਨ, ਅਸਰਗਰਮੀ"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"ਘੁੰਮਾਓ, ਫਲਿੱਪ, ਘੁਮਾਅ, ਪੋਰਟਰੇਟ, ਲੈਂਡਸਕੇਪ, ਦਿਸ਼ਾਮਾਨ, ਖੜ੍ਹਵਾਂ, ਲੇਟਵਾਂ"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"ਰਿੰਗਰ ਸ਼ਾਂਤ \'ਤੇ ਸੈੱਟ ਹੈ"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"ਰਿੰਗ ਦੀ ਅਵਾਜ਼ 80% ਹੈ"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"ਮੀਡੀਆ ਦੀ ਅਵਾਜ਼"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"ਕਾਲ ਦੀ ਅਵਾਜ਼"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"ਅਲਾਰਮ ਦੀ ਅਵਾਜ਼"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"ਰਿੰਗ ਦੀ ਅਵਾਜ਼"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"\'ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ\' ਨੂੰ ਅੱਪਡੇਟ ਕਰੋ"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"ਧਿਆਨ ਕੇਂਦਰਿਤ ਰੱਖਣ ਲਈ ਸੂਚਨਾਵਾਂ ਰੋਕੋ"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ਇਸ ਨਾਲ ਇਸ ਫ਼ੋਨ ਦੀ ਗਤੀ ਧੀਮੀ ਹੋਵੇਗੀ"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"ਪੂਰੇ GNSS ਮਾਪ ਜ਼ਬਰਦਰਸਤੀ ਲਾਗੂ ਕਰੋ"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ਡਿਊਟੀ ਸਾਈਕਲਿੰਗ ਤੋਂ ਬਿਨਾਂ ਸਾਰੇ GNSS ਉਪਗ੍ਰਹਿ ਗਰੁੱਪਾਂ ਅਤੇ ਵਾਰਵਾਰਤਾਵਾਂ ਨੂੰ ਟਰੈਕ ਕਰੋ"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"ਬੈਕਗ੍ਰਾਊਂਡ ਸਰਗਰਮੀ ਸ਼ੁਰੂ ਕਰਨ ਦਿਓ"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ਸੂਚਨਾ ਚੈਨਲ। ਸਭ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"ਆਊਟਪੁੱਟ ਬਦਲੋ"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"ਫਿਲਹਾਲ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> \'ਤੇ ਚੱਲ ਰਿਹਾ ਹੈ"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ਸ਼ਾਇਦ ਇਸ ਪ੍ਰਦਾਨਕ ਨਾਲ ਤੁਹਾਡੀ ਗਾਹਕੀ ਰੱਦ ਕੀਤੀ ਜਾਵੇ। ਆਵਰਤੀ ਗਾਹਕੀਆਂ ਨੂੰ ਰੱਦ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ। ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੇ ਪ੍ਰਦਾਨਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।"</string>
</resources>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index 13fec2a..79ab2c1 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Globalny"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 954a6cc..e162b70 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -1099,11 +1099,6 @@
<item msgid="7715869266611010880">"Komórkowe"</item>
<item msgid="2838022395783120596">"Tylko Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Preferuj Wi-Fi"</item>
<item msgid="5074515506087318555">"Preferowane komórkowe"</item>
@@ -1112,10 +1107,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Komórkowe"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Po włączeniu opcji Połączenia przez Wi-Fi telefon może kierować połączenia przez sieci Wi-lub sieć operatora w zależności od ustawień i siły sygnału. Zanim włączysz tę funkcję, sprawdź, jakie opłaty pobiera operator, i zapoznaj się z innymi warunkami usługi.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Adres alarmowy"</string>
@@ -2092,8 +2083,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuty"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Czas na czytanie"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Czas na wykonanie czynności"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Określ, jak długo mają być wyświetlane wiadomości wymagające przeczytania, które są widoczne tylko tymczasowo.\n\nNie wszystkie aplikacje obsługują to ustawienie."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Określ, jak długo mają być wyświetlane wiadomości wymagające wykonania jakiejś czynności, które są widoczne tylko tymczasowo.\n\nNie wszystkie aplikacje obsługują to ustawienie."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Czas dotknięcia i przytrzymania"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Odwrócenie kolorów"</string>
@@ -3084,7 +3074,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikacje i powiadomienia"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Uprawnienia, aplikacje domyślne"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Aplikacje w profilu do pracy nie mają dostępu do powiadomień."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Konta"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nie dodano kont"</string>
@@ -3147,7 +3138,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ekran dostosowany do otoczenia, ekran blokady"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"powiadomienie na ekranie blokady"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"twarz"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"odcisk palca"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"przyciemnianie ekranu, ekran dotykowy, bateria, inteligentne dostosowanie jasności, dynamiczna jasność"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"przyciemniony ekran, uśpienie, bateria, wygaszanie, uwaga, wyświetlacz, ekran, brak aktywności"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"obrót, odwrócenie, rotacja, pionowo, poziomo, orientacja, pionowa, pozioma"</string>
@@ -3180,6 +3172,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Dzwonek wyciszony"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Głośność dzwonka to 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Głośność multimediów"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Głośność połączenia"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Głośność alarmu"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Głośność dzwonka"</string>
@@ -4584,6 +4578,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Liczba kanałów powiadomień: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Kliknij, by zarządzać wszystkimi."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Przełącz urządzenie wyjściowe"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Aktualnie odtwarzane na urządzeniu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Twoja subskrypcja u tego dostawcy może być anulowana. Subskrypcje cykliczne nie zostaną anulowane. Więcej informacji można uzyskać u dostawcy."</string>
</resources>
diff --git a/res/values-pt-rBR/arrays.xml b/res/values-pt-rBR/arrays.xml
index af856ad..e1bec41 100644
--- a/res/values-pt-rBR/arrays.xml
+++ b/res/values-pt-rBR/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"R-UIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 43f3296..7bc336e 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -1065,11 +1065,6 @@
<item msgid="7715869266611010880">"Celular"</item>
<item msgid="2838022395783120596">"Somente Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi preferido"</item>
<item msgid="5074515506087318555">"Preferência pela rede móvel"</item>
@@ -1078,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Celular"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Quando a \"chamada no Wi-Fi\" estiver ativada, seu smartphone poderá encaminhar chamadas por redes Wi-Fi ou pela rede da sua operadora, dependendo da sua preferência e de qual sinal estiver mais forte. Antes de ativar esse recurso, verifique as taxas e outros detalhes com sua operadora.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Endereço de emergência"</string>
@@ -2052,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutos"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tempo para ler"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tempo para agir"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Escolha por quanto tempo serão mostradas mensagens que você precisa ler, mas que ficam visíveis apenas temporariamente.\n\nNem todos os apps são compatíveis com essa configuração."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Escolha por quanto tempo serão mostradas mensagens que exigem uma ação sua, mas que ficam visíveis apenas temporariamente.\n\nNem todos os apps são compatíveis com essa configuração."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Atraso ao tocar e pressionar"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversão de cores"</string>
@@ -3004,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps e notificações"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permissões, apps padrão"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"O acesso às notificações não está disponível para apps no perfil de trabalho."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Contas"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nenhuma conta adicionada"</string>
@@ -3067,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Exibição ambiente, exibição de tela de bloqueio"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificação na tela de bloqueio"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"rosto"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"impressão digital"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"escurecer tela, touchscreen, bateria, brilho inteligente, brilho dinâmico"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"escurecer tela, suspensão bateria, tempo limite, atenção, display, tela, inatividade"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"girar, virar, rotação, retrato, paisagem, orientação, vertical, horizontal"</string>
@@ -3100,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Campainha silenciada"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Volume do toque em 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Volume de mídia"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Volume de chamadas"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume do alarme"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume do toque"</string>
@@ -4424,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canais de notificação. Toque para gerenciar todos."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Alterar saída"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Tocando atualmente no <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Sua assinatura desse provedor pode ser cancelada. Assinaturas recorrentes não serão canceladas. Para mais informações, entre em contato com seu provedor."</string>
</resources>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index fc2b29e..5e9616c 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 6694597..9daecac 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -1065,11 +1065,6 @@
<item msgid="7715869266611010880">"Rede móvel"</item>
<item msgid="2838022395783120596">"Apenas Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Rede Wi-Fi preferida"</item>
<item msgid="5074515506087318555">"Preferência pela rede móvel"</item>
@@ -1078,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Rede móvel"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Se as chamadas Wi-Fi estiverem ativadas, o telemóvel pode encaminhar as chamadas através de redes Wi-Fi ou da rede do seu operador, consoante as suas preferências e do sinal que for mais forte. Antes de ativar esta funcionalidade, verifique junto do seu operador questões como tarifas, entre outras.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Endereço de emergência"</string>
@@ -2052,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutos"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tempo para ler"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tempo para tomar medidas"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Escolha o tempo durante o qual pretende mostrar mensagens que precisa de ler, mas que são visíveis apenas temporariamente.\n\nNem todas as aplicações são compatíveis com esta definição."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Escolha o tempo durante o qual pretende mostrar mensagens que lhe solicitam que tome medidas, mas que são visíveis apenas temporariamente.\n\nNem todas as aplicações são compatíveis com esta definição."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Atraso ao manter premida a tecla"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversão de cores"</string>
@@ -3004,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps e notificações"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Autorizações, aplicações predefinidas"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"O acesso às notificações não está disponível para aplicações no perfil de trabalho."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Contas"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nenhuma conta adicionada."</string>
@@ -3067,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Visualização de ambiente, visualização de ecrã de bloqueio"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificação no ecrã de bloqueio"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"rosto"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"impressão digital"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"escurecer ecrã, ecrã tátil, bateria, brilho inteligente, brilho dinâmico"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"escurecer ecrã, suspensão, bateria, tempo limite, atenção, visualização, ecrã, inatividade"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"rodar, inverter, rotação, retrato, paisagem, orientação, vertical, horizontal"</string>
@@ -3100,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Campainha definida como silenciosa"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Volume do toque a 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Volume de multimédia"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Volume das chamadas"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume do alarme"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume do toque"</string>
@@ -4424,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canais de notificações. Toque para gerir tudo."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Saída do interruptor"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"A reproduzir atualmente no dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>…"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"A sua subscrição deste fornecedor pode ser cancelada. As subscrições recorrentes não serão canceladas. Para obter mais informações, consulte o seu fornecedor."</string>
</resources>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index af856ad..e1bec41 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"R-UIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 43f3296..7bc336e 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -1065,11 +1065,6 @@
<item msgid="7715869266611010880">"Celular"</item>
<item msgid="2838022395783120596">"Somente Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi preferido"</item>
<item msgid="5074515506087318555">"Preferência pela rede móvel"</item>
@@ -1078,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Celular"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Quando a \"chamada no Wi-Fi\" estiver ativada, seu smartphone poderá encaminhar chamadas por redes Wi-Fi ou pela rede da sua operadora, dependendo da sua preferência e de qual sinal estiver mais forte. Antes de ativar esse recurso, verifique as taxas e outros detalhes com sua operadora.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Endereço de emergência"</string>
@@ -2052,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minutos"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tempo para ler"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tempo para agir"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Escolha por quanto tempo serão mostradas mensagens que você precisa ler, mas que ficam visíveis apenas temporariamente.\n\nNem todos os apps são compatíveis com essa configuração."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Escolha por quanto tempo serão mostradas mensagens que exigem uma ação sua, mas que ficam visíveis apenas temporariamente.\n\nNem todos os apps são compatíveis com essa configuração."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Atraso ao tocar e pressionar"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversão de cores"</string>
@@ -3004,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apps e notificações"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permissões, apps padrão"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"O acesso às notificações não está disponível para apps no perfil de trabalho."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Contas"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nenhuma conta adicionada"</string>
@@ -3067,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Exibição ambiente, exibição de tela de bloqueio"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificação na tela de bloqueio"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"rosto"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"impressão digital"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"escurecer tela, touchscreen, bateria, brilho inteligente, brilho dinâmico"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"escurecer tela, suspensão bateria, tempo limite, atenção, display, tela, inatividade"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"girar, virar, rotação, retrato, paisagem, orientação, vertical, horizontal"</string>
@@ -3100,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Campainha silenciada"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Volume do toque em 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Volume de mídia"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Volume de chamadas"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume do alarme"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume do toque"</string>
@@ -4424,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canais de notificação. Toque para gerenciar todos."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Alterar saída"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Tocando atualmente no <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Sua assinatura desse provedor pode ser cancelada. Assinaturas recorrentes não serão canceladas. Para mais informações, entre em contato com seu provedor."</string>
</resources>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index 66bc02d..bcbfdd3 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index d951797..1e97dbe 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -956,10 +956,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Alegeți o altă rețea"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Nu s-a putut adăuga dispozitivul"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"S-a găsit un dispozitiv"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Se permite accesul la Wi-Fi pentru acest dispozitiv…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Se conectează…"</string>
<string name="retry" msgid="6472609612090877557">"Încercați din nou"</string>
<string name="wifi_shared" msgid="844142443226926070">"Permiteți accesul și altor utilizatori ai dispozitivului"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(neschimbate)"</string>
@@ -1084,11 +1082,6 @@
<item msgid="7715869266611010880">"Date mobile"</item>
<item msgid="2838022395783120596">"Numai Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Se preferă conexiunea Wi-Fi"</item>
<item msgid="5074515506087318555">"Se preferă datele mobile"</item>
@@ -1097,10 +1090,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Date mobile"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Când este activată Apelarea prin Wi-Fi, telefonul poate să redirecționeze apelurile prin rețelele Wi-Fi sau prin rețeaua operatorului, în funcție de preferință și de semnalul cu cea mai mare intensitate. Înainte să activați această funcție, consultați-vă operatorul în privința taxelor și altor detalii.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Adresă de urgență"</string>
@@ -2074,8 +2063,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minute"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Timp pentru citit"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Timp pentru a acționa"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Alegeți durata de afișare a mesajelor pe care trebuie să le citiți, dar care sunt vizibile numai temporar.\n\nNu toate aplicațiile permit această setare."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Alegeți durata de afișare a mesajelor care vă cer să acționați, dar care sunt vizibile numai temporar.\n\nNu toate aplicațiile permit această setare."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Întârziere la atingere lungă"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inversarea culorilor"</string>
@@ -3046,7 +3034,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplicații și notificări"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Permisiuni, aplicații prestabilite"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Accesul la notificări nu este disponibil pentru aplicații în profilul de lucru."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Conturi"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nu a fost adăugat niciun cont"</string>
@@ -3109,7 +3098,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Afișare ambient, Afișare ecran de blocare"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notificare ecran de blocare"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"chip"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"amprentă"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"reduceți luminozitatea ecranului, ecran tactil, luminozitate inteligentă, luminozitate dinamică"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"reduceți luminozitatea ecranului, inactivitate, baterie, timp limită, atenție, afișaj, ecran, lipsă de activitate"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"rotiți, comutați, rotire, portret, peisaj, orientare, vertical, orizontal"</string>
@@ -3142,6 +3132,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Soneria este setată pe silențios"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Volumul soneriei este la 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Volum media"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Volumul apelului"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Volum alarmă"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volum sonerie"</string>
@@ -4295,10 +4287,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Actualizați funcția Nu deranja"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Întrerupeți notificările pentru a vă păstra concentrarea"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Această caracteristică nu este disponibilă pe acest dispozitiv"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Această funcție nu este disponibilă"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Va încetini acest dispozitiv"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Forțați măsurători GNSS complete"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Urmăriți toate constelațiile și frecvențele GNSS fără ciclu de funcționare"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Permiteți ca activitățile să pornească în fundal"</string>
@@ -4508,6 +4498,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> canale de notificare. Atingeți ca să le gestionați pe toate."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Schimbați rezultatul"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Se redă acum pe <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Este posibil ca abonamentul dvs. la acest furnizor să fie anulat. Abonamentele recurente nu vor fi anulate. Pentru mai multe informații, consultați furnizorul."</string>
</resources>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index 08acdda..2e5c067 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Весь мир"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 2ab0a04..eb613e7 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -976,10 +976,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Выбрать другую сеть Wi-Fi"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Не удалось добавить устройство."</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Устройство найдено"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Предоставление доступа к сети Wi‑Fi…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Подключение…"</string>
<string name="retry" msgid="6472609612090877557">"Повторить попытку"</string>
<string name="wifi_shared" msgid="844142443226926070">"Поделиться с другими пользователями устройства"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(без изменений)"</string>
@@ -1105,11 +1103,6 @@
<item msgid="7715869266611010880">"Мобильный Интернет"</item>
<item msgid="2838022395783120596">"Только Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Приоритет Wi-Fi"</item>
<item msgid="5074515506087318555">"Приоритет мобильного Интернета"</item>
@@ -1118,11 +1111,7 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Мобильный Интернет"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
- <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Когда функция \"Звонки по Wi-Fi\" включена, для исходящих вызовов может использоваться как Wi-Fi, так и мобильная сеть (в зависимости от ваших предпочтений и уровня сигнала). Прежде чем включать эту функцию, свяжитесь со своим оператором и уточните детали.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
+ <string name="wifi_calling_off_explanation" msgid="564780186974911501">"Когда функция \"Звонки по Wi-Fi\" включена, для исходящих вызовов может использоваться как Wi-Fi, так и мобильная сеть (в зависимости от ваших предпочтений и уровня сигнала). Прежде чем включать эту функцию, свяжитесь со своим оператором и уточните стоимость и другие детали.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Адрес в чрезвычайных ситуациях"</string>
<string name="emergency_address_summary" msgid="7751971156196115129">"Ваше местоположение при экстренном вызове по Wi‑Fi"</string>
@@ -2098,8 +2087,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 минуты"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Время на чтение"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Время на выполнение действия"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Укажите, сколько времени вам нужно на чтение автоматически исчезающих сообщений.\n\nЭта настройка поддерживается не во всех приложениях."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Укажите, сколько времени вам нужно на выполнение действий в автоматически исчезающих сообщениях.\n\nЭта настройка поддерживается не во всех приложениях."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Задержка при нажатии и удержании"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Инверсия цветов"</string>
@@ -3094,7 +3082,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Приложения и уведомления"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Разрешения, приложения по умолчанию"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Приложениям в рабочем профиле нельзя предоставить доступ к уведомлениям."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Аккаунты"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Аккаунтов нет"</string>
@@ -3157,7 +3146,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Автоматическое включение экрана, заблокированный экран"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"уведомление на заблокированном экране"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"лицо"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"отпечаток пальца"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"снижение яркости, сенсорный экран, батарея, умная яркость, динамическая яркость"</string>
<!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
<skip />
@@ -3191,6 +3181,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Включен режим без звука"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Громкость звонка: 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Музыка, видео, игры"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Разговор"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Будильник"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Рингтон"</string>
@@ -4383,10 +4375,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Включите режим \"Не беспокоить\""</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Заблокируйте отвлекающие уведомления"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Функция недоступна на этом устройстве."</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Эта функция недоступна."</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Она замедляет работу телефона."</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Полное отслеживание измерений GNSS"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Отслеживать все выкладки и частоты GNSS без рабочего цикла"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Разрешить запуск компонентов в фоновом режиме"</string>
@@ -4596,6 +4586,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Количество каналов уведомлений: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Нажмите, чтобы перейти к настройкам всех каналов."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Смена устройства аудиовыхода"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Воспроизводится на устройстве \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Подписка на этот сервис может быть отменена. Постоянные платные подписки отменены не будут. Дополнительную информацию можно получить у поставщика услуг."</string>
</resources>
diff --git a/res/values-si/arrays.xml b/res/values-si/arrays.xml
index 993c802..e3b0a4c 100644
--- a/res/values-si/arrays.xml
+++ b/res/values-si/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"ගෝලීය"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index d675a08..a6f3399 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"වෙනත් ජාලයක් තෝරන්න"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"උපාංගය එක් කළ නොහැකි විය"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"උපාංගය හමු විය"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"මෙම උපාංගය සමඟ Wi‑Fi බෙදා ගනිමින්…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"සබැඳෙමින්…"</string>
<string name="retry" msgid="6472609612090877557">"යළි උත්සාහ කරන්න"</string>
<string name="wifi_shared" msgid="844142443226926070">"අනෙකුත් උපාංග පරිශීලකයන් සමග බෙදා ගන්න"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(වෙනස් නොකළ)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"ජංගම"</item>
<item msgid="2838022395783120596">"Wi-Fi පමණයි"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi වඩා කැමතියි"</item>
<item msgid="5074515506087318555">"ජංගම කැමතියි"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"ජංගම"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi ඇමතීම සක්රීය වූ විට, ඔබේ දුරකථනයට ඔබේ මනාපයට සහ සංඥා ප්රබලතාවට අනුව, Wi-Fi ජාල හරහා හෝ ඔබේ වාහකයේ ජාලය හරහා ඇමතුම් ප්රතියොමු කළ හැක. මෙම විශේෂාංගය සක්රීය කිරීමට පෙර, ගාස්තු සහ අනෙකුත් විස්තර පිළිබඳව ඔබේ වාහකය සමඟ පරීක්ෂා කර ගන්න.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"හදිසි අවස්ථා ලිපිනය"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"මිනිත්තු 2"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"කියවීමට කාලය"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"ක්රියා කිරීමට කාලය"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ඔබට කියවීමට අවශ්ය නමුත්, තාවකාලිකව පමණක් දිස් වන, පණිවිඩ කොතරම් කාලයක් දිස් වන්නේද යන්න තෝරා ගන්න.\n\nසියලු යෙදුම් මෙම සැකසීමට සහාය නොදක්වයි."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"ක්රියා කිරීමට ඔබගෙන් ඉල්ලා සිටින, නමුත් තාවකාලිකව පමණක් දිස් වන, පණිවිඩ කොතරම් කාලයක් දිස් වන්නේද යන්න තෝරන්න.\n\nසියලු යෙදුම් මෙම සැකසීමට සහාය නොදක්වයි."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"ස්පර්ශ කර ප්රමාදය රඳවන්න"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"වර්ණ අපවර්තනය"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"බ්ලූටූත්, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"බ්ලූටූත්"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"යෙදුම් සහ දැනුම්දීම්"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"අවසර, පෙරනිමි යෙදුම්"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"කාර්යාල පැතිකඩ තුළ යෙදුම් සඳහා දැනුම්දීම් ප්රවේශය ලබා ගත නොහැකිය"</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"ගිණුම්"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"ගිණුම් එක් නොකරන ලදී"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"පරිසර දර්ශකය, අගුලු තිර දර්ශකය"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"අගුළු තිර දැනුම්දීම"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"මුහුණ"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ඇඟිලි සලකුණ"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"අඳුරු තිරය, ස්පර්ශ තිරය, බැටරිය, ස්මාර්ට් දීප්තිය, ගතික දීප්තිය"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"අඳුරු තිරය, නිද්රාව, බැටරිය, යල් පැනීම, අවධානය, සංදර්ශකය, තිරය, නිෂ්ක්රියාව"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"කරකවන්න, ෆ්ලිප් කරන්න, කරකැවීම, ආලේඛ්ය, භූ දර්ශනය, දිශානතිය, සිරස්, තිරස්"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"හඬ නඟනය නිහඬ වන ලෙස සකසා ඇත"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"80% දී නාදක හඬ පරිමාව"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"මාධ්ය ශබ්දය"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"ඇමතුම් ශබ්දය ත්රීවතාවය"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"සීනුවේ ශබ්දය"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"නාද ශබ්දය"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"බාධා නොකරන්න යාවත්කාලීන කරන්න"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"අවධානය යොමු කිරීම සඳහා දැනුම්දීම් විරාම කරන්න"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"මෙම අංගය මෙම උපාංගයේ ලබා ගත නොහැක"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"මෙම විශේෂාංගය නොමැත"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"එය මෙම දුරකථනය මන්දගාමී කරනු ඇත"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"සම්පූර්ණ GNSS මිනුම් බලාත්මක කරන්න"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"කාර්ය චක්රය රහිත සියලු GNSS සබැඳි තාරකා ගෝල සහ සංඛ්යාත"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"පසුබිම් ක්රියාකාරකම් පටන් ගැනීමට ඉඩ දෙන්න"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"දැනුම්දීම් නාලිකා <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>ක්. සියල්ල කළමනා කිරීමට තට්ටු කරන්න."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"ප්රතිදාන මාරු කරන්න"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"දැනට <xliff:g id="DEVICE_NAME">%1$s</xliff:g> මත වාදන කෙරෙන"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"මෙම සැපයුම්කරු සමඟ ඔබ දායකත්වය අවලංගු විය හැක. ප්රත්යාවර්තී දායකත්වයන් අවලංගු කරනු නොලැබේ. වැඩිදුර තොරතුරු සඳහා, ඔබේ සැපයුම්කරු සමඟ පරීක්ෂා කරන්න."</string>
</resources>
diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml
index 6879216..0993627 100644
--- a/res/values-sk/arrays.xml
+++ b/res/values-sk/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Globálne"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 2517c2c..27e6d74 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -972,10 +972,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Vybrať inú sieť"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Zariadenie sa nepodarilo pridať"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Našlo sa zariadenie"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"S týmto zariadením sa zdieľa pripojenie Wi‑Fi…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Pripája sa…"</string>
<string name="retry" msgid="6472609612090877557">"Skúsiť znova"</string>
<string name="wifi_shared" msgid="844142443226926070">"Zdieľať s ostatnými používateľmi zariadenia"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nezmenené)"</string>
@@ -1101,11 +1099,6 @@
<item msgid="7715869266611010880">"Mobilné dáta"</item>
<item msgid="2838022395783120596">"Len Wi‑Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Preferovať Wi‑Fi"</item>
<item msgid="5074515506087318555">"Preferovať mobilné spojenie"</item>
@@ -1114,10 +1107,6 @@
<item msgid="6132150507201243768">"Wi‑Fi"</item>
<item msgid="1118703915148755405">"Mobilné dáta"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Ak je zapnuté volanie cez Wi‑Fi, váš telefón môže smerovať volania cez siete Wi‑Fi alebo cez sieť vášho operátora. Závisí to od vašich preferencií a od toho, ktorý signál je silnejší. Pred zapnutím tejto funkcie kontaktujte svojho operátora a informujte sa o poplatkoch a ďalších podrobnostiach.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Tiesňová adresa"</string>
@@ -2094,8 +2083,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minúty"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Čas na čítanie"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Čas na vykonanie akcie"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Vyberte, ako dlho sa majú zobrazovať dočasne viditeľné správy.\n\nNiektoré aplikácie toto nastavenie nepodporujú."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Vyberte, koľko sa majú zobrazovať správy s výzvami na akciu, ktoré sa zobrazujú iba dočasne.\n\nNiektoré aplikácie toto nastavenie nepodporujú."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Oneskorenie pridržania"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inverzia farieb"</string>
@@ -3086,7 +3074,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikácie a upozornenia"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Povolenia, predvolené aplikácie"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Prístup k upozorneniam nie je k dispozícii pre aplikácie v pracovnom profile."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Účty"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Neboli pridané žiadne účty"</string>
@@ -3149,7 +3138,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambientné zobrazenie, zobrazenie uzamknutej obrazovky"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"upozornenie na uzamknutej obrazovke"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"tvár"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"odtlačok prsta"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"stmavenie obrazovky, dotyková obrazovka, batéria, inteligentný jas, dynamický jas"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"stlmiť obrazovku, spánok, batéria, časový limit, pozor, zobrazenie, obrazovka, nečinnosť"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"otočiť, prevrátiť, rotovať, na výšku, na šírku, orientácia, zvisle, vodorovne"</string>
@@ -3182,6 +3172,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Zvonenie je stlmené"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Hlasitosť zvonenia: 80 %"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Hlasitosť médií"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Hlasitosť hovoru"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Hlasitosť budíkov"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Hlasitosť zvonenia"</string>
@@ -4371,10 +4363,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Aktualizovať režim bez vyrušení"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Pozastavte upozornenia, aby ste sa mohli sústrediť"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Táto funkcia nie je v zariadení k dispozícii"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Táto funkcia nie je k dispozícii"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Spomalí tento telefón"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Vynútiť úplné meranie GNSS"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Sledovať všetky konštelácie a frekvencie GNSS bez cyklického vypínania a zapínania"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Povoliť spúšťanie aktivity na pozadí"</string>
@@ -4588,6 +4578,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Počet kanálov upozornení: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Klepnutím môžete spravovať všetky."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Prepnutie výstupu"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Momentálne sa prehráva v zariadení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Váš odber od tohto poskytovateľa môže byť zrušený. Opakované odbery nebudú zrušené. Ďalšie informácie vám poskytne poskytovateľ."</string>
</resources>
diff --git a/res/values-sl/arrays.xml b/res/values-sl/arrays.xml
index f6f8f30..420560b 100644
--- a/res/values-sl/arrays.xml
+++ b/res/values-sl/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Globalno"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index b52f479..d816c32 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -972,10 +972,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Izberi drugo omrežje"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Naprave ni bilo mogoče dodati"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Najdena je bila naprava"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Skupna raba povezave Wi‑Fi s to napravo …"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Povezovanje …"</string>
<string name="retry" msgid="6472609612090877557">"Poskusi znova"</string>
<string name="wifi_shared" msgid="844142443226926070">"Skupna raba z drugimi uporabniki naprave"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(nespremenjeno)"</string>
@@ -1101,11 +1099,6 @@
<item msgid="7715869266611010880">"Mobilno"</item>
<item msgid="2838022395783120596">"Samo Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Prednostno Wi-Fi"</item>
<item msgid="5074515506087318555">"Prednostno mobilno"</item>
@@ -1114,10 +1107,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobilno"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Ko je vklopljeno klicanje prek omrežja Wi-Fi, lahko telefon preusmeri klice prek omrežij Wi-Fi ali omrežja operaterja na podlagi vaše nastavitve in moči signala. Pred vklopom te funkcije pri operaterju preverite cene in druge podrobnosti.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Naslov za nujne primere"</string>
@@ -2094,8 +2083,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuti"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Čas za branje"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Čas za ukrepanje"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Izberite, kako dolgo naj bodo prikazana sporočila, ki jih morate prebrati, vendar so prikazana le začasno.\n\nTe nastavitve ne podpirajo vse aplikacije."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Izberite, kako dolgo naj bodo prikazana sporočila, ki vas pozivajo k ukrepanju, vendar so prikazana le začasno.\n\nTe nastavitve ne podpirajo vse aplikacije."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Časovni zam. za dotik in pridržanje"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inverzija barv"</string>
@@ -3086,7 +3074,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aplikacije in obvestila"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Dovoljenja, privzete aplikacije"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Dostop do obvestil ni na voljo za aplikacije v delovnem profilu."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Računi"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Dodan ni bil noben račun"</string>
@@ -3149,7 +3138,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"prikaz na podlagi okolja, prikaz na zaklenjenem zaslonu"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"obvestilo na zaklenjenem zaslonu"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"obraz"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"prstni odtis"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"zatemnitev zaslona, zaslon na dotik, akumulator, pametna svetlost, dinamična svetlost"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"zatemnitev zaslona, stanje pripravljenosti, akumulator, časovna omejitev, pozor, prikaz, zaslon, nedejavnost"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"zavrteti, obrniti, vrtenje, pokončno, ležeče, postavitev, navpično, vodoravno"</string>
@@ -3182,6 +3172,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Zvonjenje je nastavljeno na tiho"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Glasnost zvonjenja: 80 %"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Glasnost predstavnosti"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Glasnost klica"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Glasnost alarma"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Glasnost zvonjenja"</string>
@@ -4371,10 +4363,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Posodobitev načina »ne moti«"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Začasno zaustavite prikazovanje obvestil, da ostanete osredotočeni"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Ta funkcija ni na voljo v tej napravi."</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Ta funkcija ni na voljo"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Upočasnila bo delovanje tega telefona"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Vsili popolne meritve GNSS"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Spremljaj vse razmestitve in frekvence GNSS brez ciklov"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Dovoli začetek dejavnosti v ozadju"</string>
@@ -4588,6 +4578,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Št. kanalov za obveščanje: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Dotaknite se, če želite upravljati vse."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Preklop izhoda"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Trenutno se predvaja v napravi <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Naročnina pri tem ponudniku bo morda preklicana. Ponavljajoče se naročnine ne bodo preklicane. Za več informacij se obrnite na ponudnika."</string>
</resources>
diff --git a/res/values-sq/arrays.xml b/res/values-sq/arrays.xml
index f4354c4..e919915 100644
--- a/res/values-sq/arrays.xml
+++ b/res/values-sq/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Globale"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 711c2ef..c62016e 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Zgjidh një rrjet tjetër"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Pajisja nuk mund të shtohej"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"U gjet pajisje"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Po ndan Wi‑Fi me këtë pajisje…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Po lidhet…"</string>
<string name="retry" msgid="6472609612090877557">"Riprovo"</string>
<string name="wifi_shared" msgid="844142443226926070">"Ndaje me përdoruesit e tjerë të pajisjes"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(i pandryshuar)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Celular"</item>
<item msgid="2838022395783120596">"Vetëm Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Preferohet Wi-Fi"</item>
<item msgid="5074515506087318555">"Preferohet rrjeti celular"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Celular"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kur telefonata me Wi-Fi është e aktivizuar, telefoni mund t\'i kalojë telefonatat nëpërmjet rrjeteve Wi-Fi ose nëpërmjet rrjetit të operatorit celular, në varësi të preferencës dhe se cili sinjal është më i fortë. Para se të aktivizosh këtë funksion, kontakto me operatorin celular në lidhje me tarifat dhe detaje të tjera.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Adresa e urgjencës"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuta"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Koha për të lexuar"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Koha për të kryer veprime"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Zgjidh se për sa kohë të shfaqen mesazhet që duhet të lexosh, por që janë të dukshme vetëm përkohësisht.\n\nKy cilësim nuk mbështetet nga të gjitha aplikacionet."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Zgjidh se për sa kohë të shfaqen mesazhet që të kërkojnë të kryesh një veprim, por që janë të dukshme vetëm përkohësisht.\n\nKy cilësim nuk mbështetet nga të gjitha aplikacionet."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Vonesa e prekjes dhe e mbajtjes shtypur"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Kthimi i ngjyrës"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Apl. dhe njoftimet"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Lejet, apl. e parazgjedhura"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Qasja te njoftimet nuk ofrohet për aplikacionet në profilin e punës."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Llogaritë"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Nuk u shtua asnjë llogari"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Shfaqja e ambientit, shfaqja e ekranit të kyçjes"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"njoftimi i ekranit të kyçjes"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"fytyrë"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"gjurmë gishti"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"errëso ekranin, ekrani me prekje, bateria, ndriçimi inteligjent, ndriçimi dinamik"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"errëso ekranin, në gjumë, bateria, koha e pritjes, vëmendja, ekrani, mungesa e aktivitetit"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"rrotullo, përmbys, rrotullim, portret, peizazh, orientimi, vertikal, horizontal"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Zilja u vendos në heshtje"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Volumi i ziles në 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Volumi i medias"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Volumi i telefonatës"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Volumi i alarmit"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volumi i ziles"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Përditëso modalitetin \"Mos shqetëso\""</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Vendos njoftimet në pauzë për të qëndruar i fokusuar"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Ky funksion nuk ofrohet në këtë pajisje"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Ky funksion nuk ofrohet"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Ai do ta ngadalësojë këtë telefon"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Matjet GNSS me fuqi të plotë"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Gjurmo të gjitha koleksionet dhe frekuencat e GNSS pa ciklim të detyruar"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Lejo nisjet e aktiviteteve në sfond"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> kanale njoftimi. Trokit për t\'i menaxhuar të gjitha."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Ndrysho daljen"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Aktualisht po luhet në <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Abonimi yt me këtë ofrues mund të anulohet. Abonimet e përsëritura nuk do të anulohen. Për më shumë informacion, kontakto me ofruesin tënd."</string>
</resources>
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
index 330133a..01ae693 100644
--- a/res/values-sr/arrays.xml
+++ b/res/values-sr/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Глобална"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 4ae4060..1af5350 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -956,10 +956,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Одабери другу мрежу"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Додавање уређаја није успело"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Пронађен је уређај"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Дели се Wi‑Fi са овим уређајем…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Повезује се…"</string>
<string name="retry" msgid="6472609612090877557">"Пробај поново"</string>
<string name="wifi_shared" msgid="844142443226926070">"Дели са другим корисницима уређаја"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(непромењено)"</string>
@@ -1084,11 +1082,6 @@
<item msgid="7715869266611010880">"Мобилни подаци"</item>
<item msgid="2838022395783120596">"Само Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Предност има Wi-Fi"</item>
<item msgid="5074515506087318555">"Желим мобилне податке"</item>
@@ -1097,10 +1090,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Мобилни подаци"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2."</item>
- <item msgid="6200207341126893791">"1."</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Када је позивање преко Wi-Fi-ја укључено, телефон може да преусмерава позиве преко Wi-Fi мрежа или мреже мобилног оператера у зависности од тога које сте подешавање изабрали и који сигнал је јачи. Пре него што укључите ову функцију, информишите се код мобилног оператера о накнадама и другим детаљима.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Адреса за хитне случајеве"</string>
@@ -2074,8 +2063,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 минута"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Време за читање"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Време за реаговање"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Одаберите колико дуго ће се приказивати поруке које треба да прочитате, али су видљиве само привремено.\n\nОво подешавање не подржавају све апликације."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Одаберите колико дуго ће се приказивати поруке које траже да реагујете, али су видљиве само привремено.\n\nОво подешавање не подржавају све апликације."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Одлагање додира и задржавањa"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Инверзија боја"</string>
@@ -3046,7 +3034,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Aпликације и обавештења"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Дозволе, подразумеване апликације"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Приступ обавештењима није доступан за апликације на радном профилу."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Налози"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Ниједан налог није додат"</string>
@@ -3109,7 +3098,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Амбијентални екран, приказ на закључаном екрану"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"обавештење на закључаном екрану"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"лице"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"дигитални отисак"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"затамнити екран, додирни екран, батерија, паметна светлина, динамичка светлина"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"затамњење екрана, спавање, батерија, временско ограничење, пажња, приказ, екран, неактивност"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"ротирај, обрни, ротација, усправно, водоравно, положај, вертикално, хоризонтално"</string>
@@ -3142,6 +3132,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Звоно је подешено на нечујно"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Јачина звона је 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Јачина звука медија"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Јачина звука позива"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Јачина звука аларма"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Јачина звука звона"</string>
@@ -4295,10 +4287,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Ажурирајте режим Не узнемиравај"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Паузирајте обавештења ради боље концентрације"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Ова функција није доступна на овом уређају."</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Ова функција није доступна"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Успориће овај телефон"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Принудно покрени пуна GNSS мерења"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Прати све GNSS консталације и фреквенције без циклуса рада"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Дозволи покретање апликација у позадини"</string>
@@ -4508,6 +4498,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> канал за обавештења. Додирните да бисте управљали свим."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Промените излаз"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Тренутно се пушта на уређају <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Претплата код овог добављача услуге је можда отказана. Активне претплате неће бити отказане. Више информација потражите од добављача услуге."</string>
</resources>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index 3308045..583c04e 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Globalt"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index cb51296..18935ca 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Välj ett annat nätverk"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Det gick inte att lägga till enheten"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"En enhet hittades"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi delas med den här enheten …"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Ansluter …"</string>
<string name="retry" msgid="6472609612090877557">"Försök igen"</string>
<string name="wifi_shared" msgid="844142443226926070">"Dela med andra som använder enheten"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(oförändrat)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobil enhet"</item>
<item msgid="2838022395783120596">"Endast Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi i första hand"</item>
<item msgid="5074515506087318555">"Mobilnät i första hand"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobil enhet"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"När Wi-Fi-samtal har aktiverats kan mobilen dirigera samtal via Wi-Fi-nätverk eller operatörens nätverk, beroende på dina inställningar och vilken signal som är starkast. Innan du aktiverar funktionen frågar du operatören om eventuella avgifter och annan information.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Adress för nödfall"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuter"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tidsperiod för läsning"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tidsperiod för att vidta åtgärder"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Välj hur lång tid som tillfälliga meddelanden som du behöver läsa ska visas.\n\nFunktionen stöds inte i alla appar."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Ställ in hur lång tid som tillfälliga meddelanden som ber dig att vidta åtgärder ska visas.\n\nDet är inte alla appar som har stöd för inställningen."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Fördröjning för tryck och håll ned"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Inverterade färger"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Appar och aviseringar"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Behörigheter, standardappar"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Appar i jobbprofilen har inte åtkomst till aviseringar"</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Konton"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Inga konton har lagts till"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Aktiv låsskärm, visning av låsskärm"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"avisering på låsskärm"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ansikte"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingeravtryck"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"nedtonad skärm, pekskärm, batteri, intelligent ljusstyrka, dynamisk ljusstyrka"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"tona ned skärmen, viloläge, batteri, tidsgräns, aktivitet, skärm, inaktiv"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"rotera, vänd, rotation, stående, liggande, orientering, lodrätt, vågrätt"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ringsignalen är avstängd"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Ringvolym på 80 %"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Medievolym"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Samtalsvolym"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Alarmvolym"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Ringvolym"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Uppdatera Stör ej"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Pausa aviseringar så du kan behålla ditt fokus"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Den här funktionen är inte tillgänglig på den här enheten."</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Funktionen är inte tillgänglig"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Funktionen gör att den här mobilen fungerar långsammare"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Framtvinga fullständiga GNSS-mätningar"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Spåra alla konstellationer och frekvenser för GNSS utan arbetscykel"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Tillåt att aktiviteter startas i bakgrunden"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> aviseringskanaler. Tryck för att hantera alla."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Utdata som styrs med reglaget"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Spelas upp nu på <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Din prenumeration hos den här leverantören kan ha avslutats. Prenumerationer som förnyas regelbundet avslutas inte. Kontakta leverantören för mer information."</string>
</resources>
diff --git a/res/values-sw/arrays.xml b/res/values-sw/arrays.xml
index df3edfe..96abe98 100644
--- a/res/values-sw/arrays.xml
+++ b/res/values-sw/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Jumla"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 474f8a2..ed1e6b5 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Chagua mtandao tofauti"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Imeshindwa kuongeza kifaa"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Imepata kifaa"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Inashiriki Wi‑Fi na kifaa hiki…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Inaunganisha…"</string>
<string name="retry" msgid="6472609612090877557">"Jaribu tena"</string>
<string name="wifi_shared" msgid="844142443226926070">"Shiriki na watumiaji wengine wa kifaa"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(haijabadilishwa)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Mtandao wa simu"</item>
<item msgid="2838022395783120596">"Wi-Fi pekee"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Inayopendelea Wi-Fi"</item>
<item msgid="5074515506087318555">"Mtandao wa simu unapendelewa"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mtandao wa simu"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wakati kipengele cha kupiga simu kupitia Wi-Fi kimewashwa, simu yako inaweza kuelekeza simu kupitia mitandao ya Wi-Fi au mtandao wa kampuni inayokupa huduma za simu, kutegemea mapendeleo yako na mawimbi yaliyo thabiti zaidi. Kabla ya kuwasha kipengele hiki, angalia ada na maelezo mengine kutoka kwenye kampuni inayokupa huduma za simu.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Anwani ya Dharura"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"Dakika 2"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Wakati wa kusoma"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Wakati wa kuchukua hatua"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Chagua muda ambao ungependa kuonyesha ujumbe unaohitaji kusoma, lakini unaonekana kwa muda mfupi. \n\nBaadhi ya programu hazitumii mipangilio hii."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Chagua muda ambao ungependa kuonyesha ujumbe unaokuomba uchukue hatua, lakini utaonekana kwa muda mfupi.\n\nBaadhi ya programu hazitumii mipangilio hii."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Muda wa kugusa na kushikilia"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Ugeuzaji rangi"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Programu na arifa"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Ruhusa, programu chaguomsingi"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Programu zilizo katika wasifu wa kazini haziwezi kufungua arifa."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Akaunti"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Hakuna akaunti zilizoongezwa"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Onyesho tulivu, Skrini iliyofungwa"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"arifa ya skrini iliyofungwa"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"uso"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"alama ya kidole"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"skrini yenye mwanga hafifu, skrini ya kugusa, betri, mwangaza mahiri, ung\'avu maalum"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"punguza mwangaza wa skrini, hali tuli, betri, muda umekwisha, ilani, onyesho, skrini, kutokuwa na shughuli"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"zungusha, gueza, kuzungusha, wima, mlalo, mkao"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Programu inayotoa milio ya simu imewekwa katika hali ya kimya"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Kiwango cha sauti ya mlio ni 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Sauti ya muziki"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Sauti ya simu"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Sauti ya kengele"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Sauti ya mlio"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Sasisha kipengele cha Usinisumbue"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Sitisha arifa ili uendelee kumakinika"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Kipengele hiki hakipatikani kwenye kifaa hiki"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Kipengele hiki hakipatikani"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Hali hii itapunguza kasi ya kifaa chako"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Lazimisha vipimo vya GNSS kamili"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Fuatilia mikusanyiko na mawimbi yote yasiyo na utendakazi wa GNSS"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Iruhusu kuanza shughuli chinichini"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Arifa <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> za vituo. Gusa ili udhibiti zote."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Badilisha kifaa cha kutoa"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Inacheza sasa kwenye <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Huenda itaghairi usajili wako katika kampuni hii inayokupa huduma. Haitaghairi usajili unaojirudia. Ili upate maelezo zaidi, wasiliana na kampuni inayokupa huduma."</string>
</resources>
diff --git a/res/values-ta/arrays.xml b/res/values-ta/arrays.xml
index c2c9c89..12b219f 100644
--- a/res/values-ta/arrays.xml
+++ b/res/values-ta/arrays.xml
@@ -463,8 +463,10 @@
</string-array>
<!-- no translation found for swipe_direction_titles:0 (58569659116542716) -->
<!-- no translation found for swipe_direction_titles:1 (1878704357761948043) -->
- <!-- no translation found for swipe_direction_values:0 (8800082277840833437) -->
- <!-- no translation found for swipe_direction_values:1 (7485508823396511299) -->
+ <string-array name="swipe_direction_values">
+ <item msgid="8800082277840833437">"1"</item>
+ <item msgid="7485508823396511299">"0"</item>
+ </string-array>
<string-array name="wifi_metered_entries">
<item msgid="5200910605264415911">"தானாகக் கண்டறி"</item>
<item msgid="8745603368609022803">"டேட்டா அளவிடப்பட்டது"</item>
@@ -520,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"குளோபல்"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index f8298ce..2e76fea 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -801,10 +801,8 @@
<string name="rx_link_speed" msgid="5729003360923133988">"<xliff:g id="RECEIVE_LINK_SPEED">%1$d</xliff:g> மெ.பை./வி"</string>
<string name="wifi_ask_enable" msgid="2795469717302060104">"வைஃபையை இயக்க <xliff:g id="REQUESTER">%s</xliff:g> விரும்புகிறது"</string>
<string name="wifi_ask_disable" msgid="728366570145493573">"வைஃபையை முடக்க <xliff:g id="REQUESTER">%s</xliff:g> விரும்புகிறது"</string>
- <!-- no translation found for art_verifier_for_debuggable_title (6029838014407791341) -->
- <skip />
- <!-- no translation found for art_verifier_for_debuggable_summary (2250352478065428399) -->
- <skip />
+ <string name="art_verifier_for_debuggable_title" msgid="6029838014407791341">"பிழைதிருத்த, ஆப்ஸ் பைட்கோடை சரிபார்த்தல்"</string>
+ <string name="art_verifier_for_debuggable_summary" msgid="2250352478065428399">"பிழைதிருத்த, ஆப்ஸிற்கான பைட்கோடைச் சரிபார்க்க ARTயை அனுமதிக்கும்"</string>
<string name="nfc_quick_toggle_title" msgid="6769159366307299004">"NFC"</string>
<string name="nfc_quick_toggle_summary" product="tablet" msgid="8302974395787498915">"டேப்லெட்டானது வேறொரு சாதனத்தைத் தொடும்போது தரவுப் பரிமாற்றத்தை அனுமதி"</string>
<string name="nfc_quick_toggle_summary" product="default" msgid="5237208142892767592">"வேறொரு சாதனத்தைத் தொடும்போது டேட்டா பரிமாற்றத்தை அனுமதி"</string>
@@ -919,8 +917,7 @@
<string name="wifi_ap_band_select_one" msgid="3476254666116431650">"வைஃபை ஹாட்ஸ்பாட்டிற்கு, குறைந்தது ஒரு பேண்ட்டைத் தேர்வுசெய்யவும்:"</string>
<string name="wifi_ip_settings" msgid="3359331401377059481">"IP அமைப்பு"</string>
<string name="wifi_privacy_settings" msgid="5500777170960315928">"தனியுரிமை"</string>
- <!-- no translation found for wifi_privacy_settings_ephemeral_summary (1539659414108891004) -->
- <skip />
+ <string name="wifi_privacy_settings_ephemeral_summary" msgid="1539659414108891004">"ரேண்டம் ஆக்கப்பட்ட MAC"</string>
<string name="wifi_dpp_add_device_to_network" msgid="8674936581557695411">"சாதனத்தைச் சேர்த்தல்"</string>
<string name="wifi_dpp_center_qr_code" msgid="6244508369721032655">"“<xliff:g id="SSID">%1$s</xliff:g>” இல் சாதனத்தைச் சேர்ப்பதற்குக் கீழேயுள்ள QR குறியீட்டை மையப்படுத்திக் காட்டவும்"</string>
<string name="wifi_dpp_scan_qr_code" msgid="4794621158747044107">"QR குறியீட்டை ஸ்கேன் செய்தல்"</string>
@@ -928,20 +925,13 @@
<string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="8096370383700478819">"QR குறியீட்டை ஸ்கேன் செய்வதன் மூலம் வைஃபையுடன் இணையலாம்"</string>
<string name="wifi_dpp_share_wifi" msgid="9065890131734833809">"வைஃபையைப் பகிர்தல்"</string>
<string name="wifi_dpp_scan_qr_code_with_another_device" msgid="8416440732377359392">"மற்றொரு சாதனத்தை “<xliff:g id="SSID">%1$s</xliff:g>” உடன் இணைக்க இந்த QR குறியீட்டை ஸ்கேன் செய்யவும்"</string>
- <!-- no translation found for wifi_dpp_could_not_detect_valid_qr_code (641893675646330576) -->
- <skip />
- <!-- no translation found for wifi_dpp_failure_authentication_or_configuration (3372757783382381044) -->
- <skip />
- <!-- no translation found for wifi_dpp_failure_not_compatible (2829930473520603740) -->
- <skip />
- <!-- no translation found for wifi_dpp_failure_timeout (5228320772245820458) -->
- <skip />
- <!-- no translation found for wifi_dpp_failure_generic (8030831192606098356) -->
- <skip />
- <!-- no translation found for wifi_dpp_failure_not_supported (2643768115109632725) -->
- <skip />
- <!-- no translation found for wifi_dpp_check_connection_try_again (2632966336733361805) -->
- <skip />
+ <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="641893675646330576">"QR குறியீட்டின் விவரங்களைப் பெற இயலவில்லை. சரியாக மையத்தில் காட்டி முயலவும்"</string>
+ <string name="wifi_dpp_failure_authentication_or_configuration" msgid="3372757783382381044">"மீண்டும் முயலவும். சிக்கல் தொடர்ந்தால் சாதன உற்பத்தியாளரைத் தொடர்புகொள்ளவும்"</string>
+ <string name="wifi_dpp_failure_not_compatible" msgid="2829930473520603740">"ஏதோ தவறாகிவிட்டது"</string>
+ <string name="wifi_dpp_failure_timeout" msgid="5228320772245820458">"சாதனம் பிளக்கில் செருகப்பட்டும் சார்ஜ் செய்யப்பட்டும் ஆன் நிலையிலும் இருப்பதை உறுதிசெய்துகொள்ளவும்"</string>
+ <string name="wifi_dpp_failure_generic" msgid="8030831192606098356">"சாதனம் பிளக்கில் செருகப்பட்டும் சார்ஜ் செய்யப்பட்டும் ஆன் நிலையிலும் இருப்பதை உறுதி செய்துகொள்ளவும். சிக்கல் தொடர்ந்தால் சாதன உற்பத்தியாளரைத் தொடர்புகொள்ளவும்"</string>
+ <string name="wifi_dpp_failure_not_supported" msgid="2643768115109632725">"இந்தச் சாதனத்தில் இதைச் சேர்க்க இயலாது: <xliff:g id="SSID">%1$s</xliff:g>"</string>
+ <string name="wifi_dpp_check_connection_try_again" msgid="2632966336733361805">"இணைப்பைச் சரிபார்த்து மீண்டும் முயலவும்"</string>
<string name="wifi_dpp_choose_network" msgid="7139308800110200281">"நெட்வொர்க்கைத் தேர்வுசெய்தல்"</string>
<string name="wifi_dpp_choose_network_to_connect_device" msgid="4025269026652486605">"உங்கள் சாதனத்தை இணைப்பதற்கு நெட்வொர்க் ஒன்றைத் தேர்வுசெய்யவும்"</string>
<string name="wifi_dpp_add_device_to_wifi" msgid="5459084866460319042">"“<xliff:g id="SSID">%1$s</xliff:g>” இல் சாதனத்தைச் சேர்க்கவா?"</string>
@@ -1077,11 +1067,6 @@
<item msgid="7715869266611010880">"மொபைல்"</item>
<item msgid="2838022395783120596">"வைஃபை மட்டும்"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"வைஃபைக்கு முன்னுரிமை"</item>
<item msgid="5074515506087318555">"மொபைல் தரவிற்கு முன்னுரிமை"</item>
@@ -1090,12 +1075,7 @@
<item msgid="6132150507201243768">"வைஃபை"</item>
<item msgid="1118703915148755405">"மொபைல்"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
- <!-- no translation found for wifi_calling_off_explanation (564780186974911501) -->
- <skip />
+ <string name="wifi_calling_off_explanation" msgid="564780186974911501">"’வைஃபை அழைப்பு’ இயக்கத்தில் இருக்கும்போது உங்கள் விருப்பத்தேர்வையும் சிக்னல் வலிமையையும் பொறுத்து வைஃபை நெட்வொர்க்குகளுக்கோ மொபைல் நெட்வொர்க்கிற்கோ உங்கள் மொபைல் அழைப்புகளைத் திசைதிருப்பும். இந்த அம்சத்தை இயக்குவதற்கு முன், கட்டணங்களையும் பிற விவரங்களையும் குறித்து உங்கள் மொபைல் நிறுவனத்திடமிருந்து தெரிந்துகொள்ளவும்.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"அவசர முகவரி"</string>
<string name="emergency_address_summary" msgid="7751971156196115129">"Wi-Fi மூலம் அவசர அழைப்பை மேற்கொள்ளும்போது, உங்களின் அப்போதைய இருப்பிடமே உங்கள் முகவரியாகக் கருதப்படும்"</string>
@@ -2065,8 +2045,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 நிமிடங்கள்"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"மெசேஜ்களைப் படிக்க ஆகும் நேரம்"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"மெசேஜ்களின்படி செயல்பட ஆகும் நேரம்"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"நீங்கள் வாசிக்க விரும்பும், தற்காலிகமாகத் தெரியும் மெசேஜ்கள் எவ்வளவு நேரம் காட்டப்பட வேண்டும் என்பதைத் தேர்வுசெய்யலாம்.\n\nஇந்த அமைப்பு அனைத்து ஆப்ஸிலும் ஆதரிக்கப்படாது."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"உங்களைச் செயல்படும்படி கூறும் மெசேஜ்களை எவ்வளவு நேரம் காட்டலாம் என்பதைத் தேர்வுசெய்யவும். இவை சற்று நேரத்திற்கு மட்டுமே காட்டப்படும்.\n\nஇந்த அமைப்பு அனைத்து ஆப்ஸாலும் ஆதரிக்கப்படாது."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"தொட்டுப் பிடித்தல் தாமதம்"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"வண்ணத்தின் நேர்மாறான முறை"</string>
@@ -3017,7 +2996,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"புளூடூத், NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"புளூடூத்"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ஆப்ஸ் & அறிவிப்புகள்"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"அனுமதிகள், இயல்பு ஆப்ஸ்"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"பணிக் கணக்கில், ஆப்ஸுற்கான அறிவிப்பு அணுகல் இல்லை."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"கணக்குகள்"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"கணக்குகள் எதுவும் சேர்க்கப்படவில்லை"</string>
@@ -3080,7 +3060,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"சூழல்சார் திரை, லாக் ஸ்கிரீன்"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"பூட்டுத் திரை அறிவிப்பு"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"முகம்"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"கைரேகை"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"மங்கல் திரை, டச்ஸ்கிரீன், பேட்டரி, ஸ்மார்ட் பிரைட்னஸ், சிறப்பு ஒளிர்வு"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"மங்கலான திரை, உறக்கம், பேட்டரி, முடிவு நேரம், கவனம், காட்சி, திரை, செயலின்மை"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"சுழற்று, ஃபிலிப், சுழற்சி, போர்ட்ரெய்ட், லேண்ட்ஸ்கேப், திசையமைப்பு, நீளவாக்கு, அகலவாக்கு"</string>
@@ -3113,6 +3094,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"ரிங்கர் \"நிசப்த நிலைக்கு\" அமைக்கப்பட்டது"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"ரிங் ஒலியளவு: 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"மீடியா ஒலியளவு"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"அழைப்பின் ஒலியளவு"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"அலார ஒலியளவு"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"அழைப்பு - ஒலியளவு"</string>
@@ -3278,12 +3261,9 @@
<string name="hide_silent_icons_summary" msgid="7479863645940885952">"நிலைப் பட்டியில் அறிவிப்புகளை ஒலியின்றிக் காட்டும் நிலை ஐகான்களை மறைத்தல்"</string>
<string name="notification_badging_title" msgid="5938709971403474078">"அறிவிப்புப் புள்ளிகளைக் காட்டு"</string>
<string name="notification_bubbles_title" msgid="4750896810493858296">"அறிவிப்புக் குமிழ்களை அனுமதி"</string>
- <!-- no translation found for swipe_direction_title (6877543492435053137) -->
- <skip />
- <!-- no translation found for swipe_direction_ltr (3623394320915041215) -->
- <skip />
- <!-- no translation found for swipe_direction_rtl (4972099509548044938) -->
- <skip />
+ <string name="swipe_direction_title" msgid="6877543492435053137">"ஸ்வைப் செயல்கள்"</string>
+ <string name="swipe_direction_ltr" msgid="3623394320915041215">"நிராகரிக்க வலப்புறமும் மெனுவைக் காண்பிக்க இடப்புறமும் ஸ்வைப் செய்யவும்"</string>
+ <string name="swipe_direction_rtl" msgid="4972099509548044938">"நிராகரிக்க இடப்புறமும் மெனுவைக் காண்பிக்க வலப்புறமும் ஸ்வைப் செய்யவும்"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"ஒளியைச் சிமிட்டு"</string>
<string name="lock_screen_notifications_title" msgid="2583595963286467672">"லாக் ஸ்கிரீன் அறிவிப்புகள்"</string>
<string name="locked_work_profile_notification_title" msgid="8327882003361551992">"பணிக் கணக்கு பூட்டியிருந்தால்"</string>
@@ -3607,8 +3587,7 @@
<string name="advanced_apps" msgid="4812975097124803873">"மேம்பட்டவை"</string>
<string name="configure_apps" msgid="6685680790825882528">"பயன்பாடுகளை உள்ளமை"</string>
<string name="unknown_app" msgid="5275921288718717656">"அறியப்படாத பயன்பாடு"</string>
- <!-- no translation found for app_permissions (5584182129908141622) -->
- <skip />
+ <string name="app_permissions" msgid="5584182129908141622">"அனுமதி நிர்வாகம்"</string>
<string name="app_permissions_summary" msgid="5163974162150406324">"<xliff:g id="APPS">%1$s</xliff:g> ஆகியவற்றைப் பயன்படுத்தும் பயன்பாடுகள்"</string>
<string name="tap_to_wake" msgid="7211944147196888807">"இயக்க, தட்டவும்"</string>
<string name="tap_to_wake_summary" msgid="4341387904987585616">"சாதனத்தை இயக்க, திரையின் எந்த இடத்திலும் இருமுறை தட்டவும்"</string>
@@ -4400,8 +4379,7 @@
<string name="network_connection_timeout_dialog_ok" msgid="8924405960181020156">"மீண்டும் முயல்க"</string>
<string name="network_connection_errorstate_dialog_message" msgid="6953778550775646710">"ஏதோ அறிவிப்பு வந்துள்ளது. ஒரு சாதனத்தைத் தேர்வுசெய்வதற்கான கோரிக்கையை இந்த ஆப்ஸ் ரத்துசெய்துள்ளது."</string>
<string name="network_connection_connect_successful" msgid="5935510954474494928">"இணைப்பு வெற்றியடைந்தது"</string>
- <!-- no translation found for network_connection_request_dialog_showall (6938922880244567521) -->
- <skip />
+ <string name="network_connection_request_dialog_showall" msgid="6938922880244567521">"அனைத்தையும் காட்டு"</string>
<plurals name="show_bluetooth_devices" formatted="false" msgid="1715020480026568408">
<item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> சாதனங்கள் இணைக்கப்பட்டுள்ளன</item>
<item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> சாதனம் இணைக்கப்பட்டுள்ளது</item>
@@ -4429,8 +4407,7 @@
<string name="search_bar_account_avatar_content_description" msgid="4718261366290530792"></string>
<string name="permission_bar_chart_empty_text" msgid="4380731551728553852">"எந்த ஆப்ஸும் அனுமதிகளைப் பயன்படுத்தவில்லை"</string>
<string name="permission_bar_chart_title" msgid="7748942699610196566">"கடந்த 24 மணிநேரத்தில் அதிகம் பயன்படுத்தப்பட்ட அனுமதிகள்"</string>
- <!-- no translation found for permission_bar_chart_details (5648719432839246667) -->
- <skip />
+ <string name="permission_bar_chart_details" msgid="5648719432839246667">"அனுமதிகள் டாஷ்போர்டைக் காட்டு"</string>
<string name="accessibility_usage_title" msgid="5136753034714150614">"அணுகல்தன்மை உபயோகம்"</string>
<plurals name="accessibility_usage_summary" formatted="false" msgid="4364945481915750314">
<item quantity="other">உங்கள் சாதனத்திற்கான முழு அணுகல் <xliff:g id="SERVICE_COUNT">%1$d</xliff:g> சேவைகளுக்கு உள்ளன</item>
@@ -4438,11 +4415,12 @@
</plurals>
<string name="manage_app_notification" msgid="877012013856561440">"<xliff:g id="APP_NAME">%1$s</xliff:g> அறிவிப்புகளை நிர்வகி"</string>
<string name="no_suggested_app" msgid="5722034393216359231">"பரிந்துரை ஆப்ஸ் எதுவுமில்லை"</string>
- <!-- no translation found for notification_few_channel_count_summary (1090888820158822106) -->
- <!-- no translation found for notification_many_channel_count_summary (8647409434789898073) -->
- <skip />
+ <plurals name="notification_few_channel_count_summary" formatted="false" msgid="1090888820158822106">
+ <item quantity="other"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> அறிவிப்புச் சேனல்கள்.</item>
+ <item quantity="one"><xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> அறிவிப்புச் சேனல்.</item>
+ </plurals>
+ <string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> அறிவிப்புச் சேனல்கள். அனைத்தையும் நிர்வகிக்கத் தட்டவும்."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"அவுட்புட்டை மாற்று"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> சாதனத்தில் தற்போது இயங்குகிறது"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"இந்த நெட்வொர்க் வழங்குநருடனான உங்கள் சந்தா ரத்துசெய்யப்படலாம். தொடர்ச்சியான சந்தாக்கள் ரத்துசெய்யப்படாது. கூடுதல் தகவலுக்கு உங்கள் நெட்வொர்க் வழங்குநரைத் தொடர்புகொள்ளவும்."</string>
</resources>
diff --git a/res/values-te/arrays.xml b/res/values-te/arrays.xml
index bf2c753..27846ef 100644
--- a/res/values-te/arrays.xml
+++ b/res/values-te/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"అంతర్జాతీయ"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMT"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index de5e0fe..35794da 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"వేరే నెట్వర్క్ను ఎంచుకోండి"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"పరికరాన్ని జోడించడం సాధ్యపడలేదు"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"పరికరం కనుగొనబడింది"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"ఈ పరికరంతో Wi‑Fiని షేర్ చేస్తోంది…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"కనెక్ట్ అవుతోంది…"</string>
<string name="retry" msgid="6472609612090877557">"మళ్లీ ప్రయత్నించు"</string>
<string name="wifi_shared" msgid="844142443226926070">"ఇతర పరికర వినియోగదారులతో భాగస్వామ్యం చేయి"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(మారలేదు)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"మొబైల్"</item>
<item msgid="2838022395783120596">"Wi-Fi మాత్రమే"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fiకి ప్రాధాన్యత"</item>
<item msgid="5074515506087318555">"మొబైల్కి ప్రాధాన్యత ఇవ్వబడింది"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"మొబైల్"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi కాలింగ్ ఆన్లో ఉన్నప్పుడు, మీ ఫోన్ మీ ప్రాధాన్యత మరియు ఏ సిగ్నల్ సామర్థ్యం ఎక్కువగా ఉంది వంటి అంశాల ఆధారంగా Wi-Fi నెట్వర్క్లు లేదా మీ క్యారియర్ నెట్వర్క్ ద్వారా కాల్లు వెళ్లేలా చేస్తుంది. ఈ ఫీచర్ను ఆన్ చేయడానికి ముందు, రుసుములు మరియు ఇతర వివరాల గురించి తెలుసుకోవడానికి మీ క్యారియర్ను సంప్రదించండి.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"అత్యవసర చిరునామా"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 నిమిషాలు"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"చదవడానికి పట్టే సమయం"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"చర్య తీసుకోవడానికి పట్టే సమయం"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"మీరు చదవాల్సిన సందేశాలను స్క్రీన్పై తాత్కాలికంగా ఎంతసేపు చూపాలనేది ఎంచుకోవచ్చు.\n\nఈ సెట్టింగ్కు అన్ని యాప్లలో మద్దతు ఉండదు."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"మిమ్మల్ని ఏదో ఒక చర్యని తీసుకోమంటూ, తాత్కాలికంగా స్క్రీన్పై కనిపించే సందేశాలు ఎంతసేపు అలాగే ఉండాలనేది ఎంచుకోవచ్చు.\n\nఈ సెట్టింగ్కు అన్ని యాప్లలో మద్దతు ఉండదు."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"తాకి ఉంచాల్సిన సమయం"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"వర్ణ విలోమం"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"బ్లూటూత్, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"బ్లూటూత్"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"యాప్లు & నోటిఫికేషన్లు"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"అనుమతులు, డిఫాల్ట్ యాప్లు"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"కార్యాలయ ప్రొఫైల్లో ఉన్న యాప్లకు సంబంధించి నోటిఫికేషన్ యాక్సెస్ అందుబాటులో లేదు."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"ఖాతాలు"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"ఖాతాలు జోడించబడలేదు"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"విస్తార ప్రదర్శన, లాక్ స్క్రీన్ ప్రదర్శన"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"లాక్ స్క్రీన్ నోటిఫికేషన్"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ముఖం"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"వేలిముద్ర"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"కాంతిహీన స్క్రీన్, టచ్స్క్రీన్, బ్యాటరీ, స్మార్ట్ ప్రకాశం, గతిశీల ప్రకాశం"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"స్క్రీన్ కాంతిహీనం, స్లీప్, బ్యాటరీ, గడువు ముగింపు, దృష్టి, ప్రదర్శన, స్క్రీన్, ఇనాక్టివ్"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"తిప్పండి, తిప్పు, పరిభ్రమణం, పోర్ట్రెయిట్, ల్యాండ్స్కేప్, ఓరియంటేషన్, నిలువు, అడ్డం"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"రింగర్ నిశ్శబ్దానికి సెట్ చేయబడింది"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"రింగ్ వాల్యూమ్ 80% ఉంది"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"మీడియా వాల్యూమ్"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"కాల్ వాల్యూమ్"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"అలారం వాల్యూమ్"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"రింగ్ వాల్యూమ్"</string>
@@ -3352,7 +3344,7 @@
<item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> వర్గం</item>
</plurals>
<string name="no_channels" msgid="3077375508177744586">"ఈ యాప్ ఏ నోటిఫికేషన్లను పోస్ట్ చేయలేదు"</string>
- <string name="app_settings_link" msgid="8894946007543660906">"అనువర్తనంలో అదనపు సెట్టింగ్లు"</string>
+ <string name="app_settings_link" msgid="8894946007543660906">"యాప్లో అదనపు సెట్టింగ్లు"</string>
<string name="app_notification_listing_summary_zero" msgid="8046168435207424440">"అన్ని యాప్లలో ఆన్ చేయబడ్డాయి"</string>
<plurals name="app_notification_listing_summary_others" formatted="false" msgid="6709582776823665660">
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> యాప్లలో ఆఫ్ చేయబడింది</item>
@@ -4221,10 +4213,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"అంతరాయం కలిగించవద్దును అప్డేట్ చేయి"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"ఇతర వ్యాపకాలపై దృష్టి మరలకుండా ఉండడానికి నోటిఫికేషన్లను పాజ్ చేయండి"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"ఈ లక్షణం ఈ పరికరంలో అందుబాటులో లేదు"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"ఈ ఫీచర్ అందుబాటులో లేదు"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"దీని వలన ఈ ఫోన్ పనితీరు నెమ్మదిస్తుంది"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"శక్తివంతమైన GNSS కొలతలు"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"డ్యూటీ సైక్లింగ్ లేకుండా అన్ని GNSS నక్షత్రరాశులను మరియు ఫ్రీక్వెన్సీలను ట్రాక్ చేయండి"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"నేపథ్య కార్యకలాపం మొదలవ్వడానికి అనుమతి ఇవ్వు"</string>
@@ -4430,6 +4420,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> నోటిఫికేషన్ ఛానెల్లు. అన్నింటినీ నిర్వహించుకోవడానికి నొక్కండి."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"అవుట్పుట్ మార్చండి"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>లో ప్లే అవుతోంది"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ఈ ప్రదాత మీ సభ్యత్వాన్ని రద్దు చేసి ఉండవచ్చు. పునరావృతమయ్యే సభ్యత్వాలు రద్దు చేయబడవు. మరింత సమాచారం కోసం, మీ ప్రదాతను సంప్రదించండి."</string>
</resources>
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
index eb94dac..84bf280 100644
--- a/res/values-th/arrays.xml
+++ b/res/values-th/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"ทั่วโลก"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 4ff4705..d78a626 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"เลือกเครือข่ายอื่น"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"เพิ่มอุปกรณ์ไม่ได้"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"พบอุปกรณ์แล้ว"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"กำลังแชร์ Wi‑Fi กับอุปกรณ์เครื่องนี้…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"กำลังเชื่อมต่อ…"</string>
<string name="retry" msgid="6472609612090877557">"ลองอีกครั้ง"</string>
<string name="wifi_shared" msgid="844142443226926070">"แชร์กับผู้ใช้อุปกรณ์คนอื่นๆ"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(ไม่เปลี่ยน)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"อินเทอร์เน็ตมือถือ"</item>
<item msgid="2838022395783120596">"Wi-Fi เท่านั้น"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"ต้องการใช้ Wi-Fi"</item>
<item msgid="5074515506087318555">"ต้องการใช้อินเทอร์เน็ตมือถือ"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"อินเทอร์เน็ตมือถือ"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"เมื่อเปิดการโทรผ่าน Wi-Fi โทรศัพท์จะกำหนดเส้นทางการโทรผ่านเครือข่าย Wi-Fi หรือเครือข่ายของผู้ให้บริการได้ ทั้งนี้ขึ้นอยู่กับค่ากำหนดของคุณและสัญญาณฝั่งที่แรงกว่า โปรดสอบถามค่าธรรมเนียมและรายละเอียดอื่นๆ กับผู้ให้บริการก่อนที่จะเปิดฟีเจอร์นี้<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"ที่อยู่ฉุกเฉิน"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 นาที"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"เวลาในการอ่าน"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"เวลาในการดำเนินการ"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"เลือกระยะเวลาแสดงข้อความที่คุณต้องการอ่านแต่ปรากฏเพียงชั่วคราวเท่านั้น\n\nแอปบางแอปไม่รองรับการตั้งค่านี้"</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"เลือกระยะเวลาแสดงข้อความที่ขอให้คุณดำเนินการแต่ปรากฏเพียงชั่วคราวเท่านั้น\n\nแอปบางแอปไม่รองรับการตั้งค่านี้"</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"การหน่วงเวลาด้วยการแตะค้างไว้"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"การกลับสี"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"บลูทูธ, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"บลูทูธ"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"แอปและการแจ้งเตือน"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"สิทธิ์ แอปเริ่มต้น"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"การเข้าถึงการแจ้งเตือนไม่พร้อมใช้งานสำหรบแอปในโปรไฟล์งาน"</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"บัญชี"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"ไม่ได้เพิ่มบัญชี"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"หน้าจอแอมเบียนท์ หน้าจอล็อก"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"การแจ้งเตือนในหน้าจอล็อก"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ใบหน้า"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"ลายนิ้วมือ"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"หน้าจอสลัว หน้าจอสัมผัส แบตเตอรี่ ความสว่างอัจฉริยะ ความสว่างแบบไดนามิก"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"หรี่แสงหน้าจอ สลีป แบตเตอรี่ ระยะหมดเวลา ความสนใจ จอแสดงผล หน้าจอ ไม่มีการใช้งาน"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"หมุน, พลิก, การหมุน, แนวตั้ง, แนวนอน, การวางแนว, ตั้ง, นอน"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"ตั้งโปรแกรมสร้างเสียงเรียกเข้าเป็นโหมดเงียบแล้ว"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"ระดับเสียงเรียกเข้าที่ 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"ระดับเสียงของสื่อ"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"ระดับเสียงการโทร"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"ระดับเสียงปลุก"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"ระดับเสียงเรียกเข้า"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"อัปเดตโหมดห้ามรบกวน"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"หยุดการแจ้งเตือนชั่วคราวเพื่อไม่ให้มีสิ่งรบกวน"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"ฟีเจอร์นี้ไม่สามารถใช้ได้บนอุปกรณ์นี้"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"ฟีเจอร์นี้ไม่พร้อมใช้งาน"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"ฟีเจอร์ดังกล่าวจะทำให้โทรศัพท์เครื่องนี้ทำงานช้าลง"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"บังคับใช้การวัด GNSS เต็มรูปแบบ"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ติดตามระบบดาวเทียมและความถี่สัญญาณ GNSS ทั้งหมดโดยไม่มีการปิดพักเพื่อประหยัดพลังงาน"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"อนุญาตให้เริ่มกิจกรรมในเบื้องหลัง"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"ช่องทางการแจ้งเตือน <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ช่องทาง แตะเพื่อจัดการทั้งหมด"</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"เปลี่ยนเอาต์พุต"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"กำลังเล่นใน <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"ระบบอาจยกเลิกการสมัครใช้บริการกับผู้ให้บริการรายนี้ แต่จะไม่ยกเลิกการสมัครใช้บริการที่เกิดซ้ำ โปรดตรวจสอบข้อมูลเพิ่มเติมกับผู้ให้บริการของคุณ"</string>
</resources>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index e56afcf..6950a36 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Pangkalahatan"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index e7f8b89..abd5360 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Pumili ng ibang network"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Hindi maidagdag ang device"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Nakita ang device"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Ibinabahagi ang Wi‑Fi sa device na ito…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Kumokonekta…"</string>
<string name="retry" msgid="6472609612090877557">"Subukang Muli"</string>
<string name="wifi_shared" msgid="844142443226926070">"Ibahagi sa iba pang mga user ng device"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(di-nabago)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobile"</item>
<item msgid="2838022395783120596">"Wi-Fi lang"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Mas gusto ang Wi-Fi"</item>
<item msgid="5074515506087318555">"Mas gusto ang mobile"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobile"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kapag naka-on ang pagtawag gamit ang Wi-Fi, maaaring magruta ng mga tawag ang iyong telepono sa pamamagitan ng mga Wi-Fi network o network ng iyong carrier, depende sa iyong kagustuhan at kung aling signal ang mas malakas. Bago i-on ang feature na ito, sumangguni sa iyong carrier hinggil sa mga bayarin at iba pang detalye.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Pang-emergency na Address"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 minuto"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Tagal ng pagbabasa"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Tagal ng pag-aksyon"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Piliin kung gaano katagal ipapakita ang mga mensaheng kailangan mong basahin ngunit pansamantala lang na makikita.\n\nHindi sumusuporta sa setting na ito ang lahat ng app."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Piliin kung gaano katagal ipapakita ang mga mensaheng humihiling sa iyong umaksyon, ngunit pansamantala lang makikita.\n\nHindi lahat ng app ay sumusuporta sa setting na ito."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Pindutin nang matagal ang delay"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Pag-invert ng kulay"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Mga app at notification"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Mga pahintulot, mga default na app"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Hindi available ang access sa notification para sa mga app sa profile sa trabaho."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Mga Account"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Walang naidagdag na account"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ambient na display, Display ng lock screen"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"notification sa lock screen"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"mukha"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"fingerprint"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"madilim na screen, touchscreen, baterya, smart brightness, dynamic na liwanag"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"i-dim ang screen, mag-sleep, baterya, pag-timeout, atensyon, display, screen, kawalan ng aktibidad"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"i-rotate, i-flip, pag-rotate, portrait, landscape, oryentasyon, patayo, pahalang"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Naka-silent ang ringer"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Nasa 80% ang volume ng pag-ring"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Volume ng media"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Volume ng tawag"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Volume ng alarm"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Volume ng pag-ring"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"I-update ang Huwag Istorbohin"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"I-pause ang mga notification para manatiling nakatuon ang pansin"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Hindi available ang feature na ito sa device na ito"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Hindi available ang feature na ito"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Pababagalin nito ang teleponong ito"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Ipatupad ang kumpletong sukat ng GNSS"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Sinusubaybayan ang lahat ng constellation at dalas ng GNSS nang walang duty cycling"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Payagang magsimula ng aktibidad sa background"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> (na) notification channel. I-tap para pamahalaan ang lahat."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Output ng Switch"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Kasalukuyang nagpe-play sa <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Pwedeng makansela ang iyong subscription sa provider na ito. Hindi makakansela ang mga umuulit na subscription. Para sa higit pang impormasyon, makipag-ugnayan sa iyong provider."</string>
</resources>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index 2780ada..ccfb6c5 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Genel"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index a29c7db..2f7fd84 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Farklı ağ seç"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Cihaz eklenemedi"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Cihaz bulundu"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Bu cihazla kablosuz bağlantı paylaşılıyor…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Bağlanıyor…"</string>
<string name="retry" msgid="6472609612090877557">"Tekrar dene"</string>
<string name="wifi_shared" msgid="844142443226926070">"Diğer cihaz kullanıcılarıyla paylaş"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(değişmedi)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobil"</item>
<item msgid="2838022395783120596">"Yalnızca kablosuz"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Kablosuz bağlantı tercihli"</item>
<item msgid="5074515506087318555">"Mobil tercihli"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Kablosuz"</item>
<item msgid="1118703915148755405">"Mobil"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Kablosuz çağrı açık olduğunda, telefonunuz tercihinize ve hangi sinyalin daha güçlü olduğuna bağlı olarak çağrıları kablosuz ağlar veya operatörünüzün ağı üzerinden yönlendirebilir. Bu özelliği açmadan önce, ücretleri ve diğer ayrıntıları öğrenmek için operatörünüze danışın.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Acil Durum Adresi"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 dakika"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Okuma süresi"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Harekete geçme zamanı"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Okumanız gereken ancak sadece geçici olarak görüntülenen mesajların ne kadar süre gösterileceğini seçin.\n\nBu ayar tüm uygulamalar tarafından desteklenmez."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Harekete geçmenizi isteyen, ancak geçici olarak görüntülenen mesajların ne kadar süre gösterileceğini seçin.\n\nBu ayar tüm uygulamalar tarafından desteklenmez."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Dokunma ve basılı tutma süresi"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Rengi ters çevirme"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Uygulama ve bildirimler"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"İzinler, varsayılan uygulamalar"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"İş profilindeki uygulamalar için bildirim erişimi kullanılamaz."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Hesaplar"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Hiçbir hesap eklenmedi"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ekran ambiyansı, Ekran kilidi ekranı"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"kilit ekranı bildirimi"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"yüz"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"dijital parmak izi"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"ekranı karartma, dokunmatik ekran, pil, akıllı parlaklık, dinamik parlakık"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ekranı karartma, uyku, pil, zaman aşımı, ilgi, görüntü, ekran, etkin olmama"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"döndür, çevir, döndürme, portre, manzara, yön, dikey, yatay"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Telefon zili sessize ayarlandı"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Zil sesi seviyesi: %80"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Medya ses düzeyi"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Çağrı ses düzeyi"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Alarm ses düzeyi"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Zil ses düzeyi"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Rahatsız Etmeyin özelliğini güncelleyin"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Konsantrasyonunuzu bozmamak için bildirimleri duraklatın"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Bu özellik bu cihazda kullanılamıyor"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Bu özellik kullanılamıyor"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Söz konusu özellik bu telefonu yavaşlatır"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Tam GNSS ölçümlerini zorla"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Tüm GNSS takımyıldızlarını ve görev döngüsü olmayan frekansları takip et"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Arka planda başlayan işlemlere izin ver"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> bildirim kanalı. Hepsini yönetmek için dokunun."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Çıkışı değiştir"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Şu anda <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazında oynatılıyor"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Bu sağlayıcıyla olan aboneliğiniz iptal edilebilir. Yinelenen abonelikler iptal edilmez. Daha fazla bilgi edinmek için sağlayıcınızla iletişim kurun."</string>
</resources>
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
index 7067510..ccb47b4 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Загальний"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index e56bbc3..bcf0a62 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -976,10 +976,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Вибрати іншу мережу"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Не вдалося додати пристрій"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Знайдено пристрій"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Цьому пристрою надається доступ до Wi‑Fi…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"З’єднання…"</string>
<string name="retry" msgid="6472609612090877557">"Повторити"</string>
<string name="wifi_shared" msgid="844142443226926070">"Надати доступ іншим користувачам пристрою"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(без змін)"</string>
@@ -1105,11 +1103,6 @@
<item msgid="7715869266611010880">"Мобільні"</item>
<item msgid="2838022395783120596">"Лише Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Пріоритет Wi-Fi"</item>
<item msgid="5074515506087318555">"Пріоритет мобільної мережі"</item>
@@ -1118,10 +1111,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Мобільні"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Якщо ввімкнути Дзвінки через Wi-Fi, ваш телефон зможе спрямовувати дзвінки через мережі Wi-Fi або мережу оператора, залежно від налаштувань і потужності сигналу. Перш ніж увімкнути цю функцію, уточніть в оператора вартість послуги й інші деталі.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Екстрена адреса"</string>
@@ -2098,8 +2087,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 хвилини"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Час на читання"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Час на виконання дії"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Виберіть, як довго показувати тимчасово видимі повідомлення, які потрібно прочитати.\n\nНе всі додатки підтримують це налаштування."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Виберіть, як довго показувати тимчасово видимі повідомлення із закликом до дії.\n\nНе всі додатки підтримують це налаштування."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Затримка натискання й утримування"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Інверсія кольорів"</string>
@@ -3094,7 +3082,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Додатки та сповіщення"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Дозволи та додатки за умовчанням"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Додатки в робочому профілі не мають доступу до сповіщень."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Облікові записи"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Облікових записів не додано"</string>
@@ -3157,7 +3146,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Активний екран, заблокований екран"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"сповіщення на заблокованому екрані"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"обличчя"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"відбиток пальця"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"затемнений екран, сенсорний екран, акумулятор, розумна яскравість, динамічна яскравість"</string>
<!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
<skip />
@@ -3191,6 +3181,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Звук дзвінка вимкнено"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Гучність дзвінка: 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Гучність медіа"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Гучність виклику"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Гучність будильника"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Гучність дзвінка"</string>
@@ -4383,10 +4375,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Оновити режим \"Не турбувати\""</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Призупинити сповіщення, щоб не відволікатися"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Ця функція недоступна на цьому пристрої"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Ця функція недоступна"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Це сповільнить роботу телефона"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Увімкнути повне вимірювання GNSS"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Відстежувати всі фотосхеми й частоти GNSS без застосування циклічного режиму"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Починати дії у фоновому режимі"</string>
@@ -4596,6 +4586,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"Кількість каналів сповіщень: <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g>. Торкніться, щоб керувати всіма."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Виберіть вихід"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Зараз відтворюється на пристрої <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Вашу підписку на послуги цього постачальника може бути скасовано. Повторювані підписки не буде скасовано. Щоб дізнатися більше, зв’яжіться зі своїм постачальником."</string>
</resources>
diff --git a/res/values-ur/arrays.xml b/res/values-ur/arrays.xml
index 6cbda57..38c4fce 100644
--- a/res/values-ur/arrays.xml
+++ b/res/values-ur/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"عالمی"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index b01b914..7d06f0d 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"مختلف نیٹ ورک منتخب کریں"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"آلہ شامل نہیں کیا جا سکا"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"آلہ ملا"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"اس آلہ کے ساتھ Wi‑Fi کا اشتراک کیا جا رہا ہے…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"منسلک ہو رہا ہے…"</string>
<string name="retry" msgid="6472609612090877557">"پھر کوشش کریں"</string>
<string name="wifi_shared" msgid="844142443226926070">"دوسرے آلہ صارفین کے ساتھ اشتراک کریں"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(غیر تبدیل شدہ)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"موبائل"</item>
<item msgid="2838022395783120596">"صرف Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi ترجیحی"</item>
<item msgid="5074515506087318555">"موبائل ترجیحی"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"موبائل"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi کالنگ آن ہونے پر، آپ کا فون آپ کی ترجیح اور زیادہ مضبوط سگنل کی بنیاد پر کالز کو Wi-Fi یا آپ کے کیریئر نیٹ ورک کے ذریعہ روٹ کر سکتا ہے۔ اس خصوصیت کو آن کرنے سے پہلے، فیس اور دیگر تفصیلات کے لیے اپنے کیریئر سے رابطہ کریں۔<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"ہنگامی پتہ"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 منٹ"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"پڑھنے کا وقت"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"کارروائی کرنے کا وقت"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"ان پیغامات کو دکھانے کی مدت منتخب کریں جسے آپ پڑھنا چاہتے ہیں، لیکن عارضی طور پر دکھائی دیتے ہیں۔\n\nسبھی ایپس اس ترتیب کا تعاون نہیں کرتی ہیں۔"</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"ان پیغامات کو دکھانے کی مدت منتخب کریں جو آپ سے کارروائی کرنے کا مطالبہ کرتے ہیں، لیکن عارضی طور پر دکھائی دیتے ہیں۔\n\nسبھی ایپس اس ترتیب کا تعاون نہیں کرتی ہیں۔"</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"چھونے اور دبائے رکھنے کا وقفہ"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"رنگ میں تبدیلی"</string>
@@ -3004,7 +2992,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"بلوٹوتھ، NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"بلوٹوتھ"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"ایپس اور اطلاعات"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"اجازتیں، ڈیفالٹ ایپس"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"دفتری پروفائل میں ایپس کو اطلاع تک رسائی حاصل نہیں ہے۔"</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"اکاؤنٹس"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"کوئی اکاؤنٹ شامل نہیں ہے"</string>
@@ -3067,7 +3056,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"ايمبيئنٹ ڈسپلے، لاک اسکرین ڈسپلے"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"مقفل اسکرین کی اطلاع"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"چہرہ"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"فنگر پرنٹ"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"مدھم اسکرین، ٹچ اسکرین، بیٹری، اسمارٹ چمک، ڈائنیمک چمک"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"مدھم اسکرین، سلیپ وضع، بیٹری، ٹائم آؤٹ، توجہ، ڈسپلے، اسکرین، غیر فعالیت"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"گھمانا، پلٹنا، گردش، پورٹریٹ، لینڈ اسکیپ، سمت بندی، عمودی، افقی"</string>
@@ -3100,6 +3090,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"رنگر خاموش پر سیٹ ہو گیا"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"رنگ والیوم 80% پر ہے"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"میڈیا والیوم"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"کال کا والیوم"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"الارم والیوم"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"رنگ والیوم"</string>
@@ -4217,10 +4209,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"\'ڈسٹرب نہ کریں\' کو اپ ڈیٹ کریں"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"متوجہ رہنے کے لیے اطلاعات موقوف کریں"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"یہ خصوصیت اس آلہ میں دستیاب نہیں ہے"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"یہ خصوصیت دستیاب نہیں ہے"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"اس سے فون کی رفتار سست ہوجائے گی"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"مکمل GNSS پیمائشوں کو زبردستی لاگو کریں"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ڈیوٹی سائیکلنگ کے بغیر سبھی GNSS مجموعوں اور کثرتوں کو ٹریک کریں"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"پس منظر کی سرگرمی شروع ہونے دیں"</string>
@@ -4426,6 +4416,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> اطلاع کے چینلز۔ تمام کا نظم کرنے کے لیے تھپتھپائیں۔"</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"آؤٹ پٹ سوئچ کریں"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"فی الوقت <xliff:g id="DEVICE_NAME">%1$s</xliff:g> پر چلایا جا رہا ہے"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"آپ کی سبسکرپشن اس فراہم کنندہ کے ساتھ منسوخ کی جا سکتی ہے۔ اعادی سبسکرپشنز منسوخ نہیں کی جائیں گی۔ مزید معلومات کے لیے، اپنے فراہم کنندہ کے ساتھ چیک کریں۔"</string>
</resources>
diff --git a/res/values-uz/arrays.xml b/res/values-uz/arrays.xml
index 11d465c..9def8b1 100644
--- a/res/values-uz/arrays.xml
+++ b/res/values-uz/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Global"</item>
<item msgid="817971827645657949">"LTE / CDMA"</item>
<item msgid="519208953133334357">"LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 3f32fc9..f471de4 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Boshqa tarmoqni tanlash"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Qurilma kirtilmadi"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Qurilma topildi"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Wi‑Fi bu qurilma bilan ulashilmoqda…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Ulanmoqda…"</string>
<string name="retry" msgid="6472609612090877557">"Qaytadan"</string>
<string name="wifi_shared" msgid="844142443226926070">"Qurilmaning boshqa foydalanuvchilari bilan ulashish"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(o‘zgartirilmagan)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Mobil"</item>
<item msgid="2838022395783120596">"Faqat Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi afzal ko‘rilsin"</item>
<item msgid="5074515506087318555">"Mobil internet afzalligi"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Mobil"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Wi-Fi chaqiruv xizmati yoniqligida telefoningiz signal quvvatiga asoslanib Wi-Fi tarmoqlari yoki mobil internet orqali chaqiruvlarni amalga oshiradi. Ushbu xizmatni yoqib qoʻyishdan oldin oʻz mobil operatoringizdan narxlar va tafsilotlarni surishtirib oling.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Favqulodda holatlardagi manzili"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 daqiqa"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Oʻqish uchun vaqt"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Amal bajarish uchun vaqt"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Oʻqish talab qiladigan vaqtinchalik xabarlar qancha vaqt chiqishi kerakligini tanlang.\n\nAyrim ilovalarda bu parametr ishlamasligi mumkin."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Amal bajarishni talab qiladigan vaqtinchalik xabarlar qancha vaqt chiqishi kerakligini tanlang.\n\nAyrim ilovalarda bu parametr ishlamasligi mumkin."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Bosganda va bosib turganda kechikish"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Ranglarni akslantirish"</string>
@@ -3022,7 +3010,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Ilovalar va bildirishnomalar"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Ruxsatlar, birlamchi ilovalar"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Ishchi profildagi ilovalarga bildirishnomalar ruxsati berilmagan."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Hisoblar"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Hech qanday hisobga kirilmagan"</string>
@@ -3085,7 +3074,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Ekranning avtomatik yonishi, ekran qulfi"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"qulflangan ekrandagi bildirishnoma"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"yuz"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"barmoq izi"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"xira ekran, sensorli ekran, batareya, smart yorqinlik, dinamik yorqinlik"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"ekranni xiralashtirish, uyqu, batareya, tanaffus, qurilmadan foydalanish, monitor, ekran, harakatsizlik"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"burish, aylantirish, burilish, tik, yoqish, holat, portret, peyzaj"</string>
@@ -3118,6 +3108,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Qo‘ng‘iroq ovozi o‘chirilgan"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Qo‘ng‘iroq ovozi balandligi: 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Multimedia tovushi"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Chaqiruv tovushi"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Signal tovushi balandligi"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Rington"</string>
@@ -4235,10 +4227,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Bezovta qilinmasin rejimini yoqing"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Bezovta qiluvchi bildirishnomalarni pauza qiling"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Bu funksiya ushbu qurilmada ishlamaydi"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Bu funksiya ishlamaydi"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Bunda telefon sekinlashi mumkin"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Butun GNSS statistikasini yuklash"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Siklsiz barcha GNSS sxema va davriyliklarini kuzatish"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Orqa fonda ishga tushirishga ruxsat berish"</string>
@@ -4444,6 +4434,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> ta bildirishnomalar kanali. Barchasini boshqarish uchun bosing."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Audiochiqishni almashtirish"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Hozirda <xliff:g id="DEVICE_NAME">%1$s</xliff:g> qurilmasida ijro etilmoqda"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Bu provayder obunasi bekor qilinishi mumkin. Obunalarni takrorlash bekor qilinmaydi. Batafsil axborot olish uchun provayderingizni tekshiring."</string>
</resources>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index 920f121..84ad454 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Toàn cầu"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index e924bb2..b048316 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -944,10 +944,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Chọn mạng khác"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Không thể thêm thiết bị"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Đã tìm thấy thiết bị"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Chia sẻ Wi‑Fi với thiết bị này…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Đang kết nối…"</string>
<string name="retry" msgid="6472609612090877557">"Thử lại"</string>
<string name="wifi_shared" msgid="844142443226926070">"Chia sẻ với những người khác cũng dùng thiết bị này"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(không thay đổi)"</string>
@@ -1071,11 +1069,6 @@
<item msgid="7715869266611010880">"Di động"</item>
<item msgid="2838022395783120596">"Chỉ Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Ưu tiên Wi-Fi"</item>
<item msgid="5074515506087318555">"Được ưu tiên trên thiết bị di động"</item>
@@ -1084,10 +1077,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"Di động"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Khi bạn bật tính năng gọi qua Wi-Fi, điện thoại có thể định tuyến cuộc gọi qua mạng Wi-Fi hoặc mạng của nhà mạng, tùy thuộc vào tùy chọn của bạn và tín hiệu nào mạnh hơn. Trước khi bật tính năng này, hãy hỏi nhà mạng của bạn về cước phí và các chi tiết khác.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Địa chỉ khẩn cấp"</string>
@@ -2058,8 +2047,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 phút"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Thời gian đọc"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Thời gian thực hiện hành động"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Chọn thời lượng hiển thị thông báo mà bạn cần đọc nhưng chỉ hiển thị tạm thời.\n\nKhông phải tất cả ứng dụng đều hỗ trợ tùy chọn cài đặt này."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Chọn thời lượng hiển thị thông báo yêu cầu bạn thực hiện hành động nhưng chỉ hiển thị tạm thời.\n\nKhông phải tất cả ứng dụng đều hỗ trợ tùy chọn cài đặt này."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Thời gian chờ cho chạm và giữ"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Đảo màu"</string>
@@ -3014,7 +3002,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"Bluetooth, NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Ứng dụng và thông báo"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Quyền, ứng dụng mặc định"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Trong hồ sơ công việc, các ứng dụng không có quyền truy cập vào mục thông báo."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Tài khoản"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Chưa thêm tài khoản nào"</string>
@@ -3077,7 +3066,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Màn hình sáng, Màn hình ở chế độ màn hình khóa"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"thông báo trên màn hình khóa"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"khuôn mặt"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"vân tay"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"làm mờ màn hình, màn hình cảm ứng, pin, độ sáng thông minh, độ sáng động"</string>
<!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
<skip />
@@ -3111,6 +3101,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Đã đặt chuông thành im lặng"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Âm lượng chuông ở mức 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Âm lượng phương tiện"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Âm lượng cuộc gọi"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Âm lượng báo thức"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Âm lượng chuông"</string>
@@ -4231,10 +4223,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Cập nhật chế độ Không làm phiền"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Tạm dừng thông báo để tập trung"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Không sử dụng được tính năng này trên thiết bị này"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Tính năng này chưa được cung cấp"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Tính năng này sẽ làm giảm tốc độ điện thoại"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Thực thi số đo GNSS đầy đủ"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Theo dõi tất cả chòm sao và tần suất GNSS mà không có chu kỳ làm việc"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Cho phép các lượt bắt đầu hoạt động trong nền"</string>
@@ -4438,6 +4428,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> kênh thông báo. Nhấn để quản lý tất cả."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Chuyển đổi đầu ra"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Hiện đang phát trên <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Gói đăng ký của bạn với nhà cung cấp này có thể bị hủy. Các gói đăng ký định kỳ sẽ không bị hủy. Để biết thêm thông tin, hãy kiểm tra với nhà cung cấp của bạn."</string>
</resources>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index 9e80ed5..2ab8621 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"通用"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index c3c8912..3be9c58 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"选择其他网络"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"无法添加设备"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"找到设备"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"正在与此设备分享 WLAN…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"正在连接…"</string>
<string name="retry" msgid="6472609612090877557">"重试"</string>
<string name="wifi_shared" msgid="844142443226926070">"与其他设备用户共享"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(未更改)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"移动数据"</item>
<item msgid="2838022395783120596">"仅限 WLAN"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"首选 WLAN"</item>
<item msgid="5074515506087318555">"首选移动数据网络"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"WLAN"</item>
<item msgid="1118703915148755405">"移动数据"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"开启“WLAN 通话”功能后,您的手机可根据偏好设置并视信号强弱来选择通过 WLAN 网络或运营商网络来进行通话。开启此功能之前,请先向您的运营商咨询收费情况及其他详情。<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"紧急联系地址"</string>
@@ -2054,8 +2043,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 分钟"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"阅读时间"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"执行操作时间"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"请选择您需要阅读的消息的显示时间(只会暂时显示)。\n\n只有部分应用支持这项设置。"</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"请选择提示您执行操作的消息的显示时间(只会暂时显示)。\n\n部分应用可能不支持这项设置。"</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"触摸和按住延迟"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"颜色反转"</string>
@@ -3006,7 +2994,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"蓝牙、NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"蓝牙"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"应用和通知"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"权限、默认应用"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"工作资料中的应用无法访问通知。"</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"帐号"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"未添加任何帐号"</string>
@@ -3069,7 +3058,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"主动显示, 锁定屏幕显示"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"锁定屏幕通知"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"面孔"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"指纹"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"降低屏幕亮度, 触摸屏, 电池, 智能亮度, 动态亮度"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"调暗屏幕, 休眠, 电池, 超时, 注意力, 显示, 屏幕, 闲置"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"旋转, 翻转, 纵向, 横向, 屏幕方向, 垂直, 水平"</string>
@@ -3102,6 +3092,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"振铃器已设为静音"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"铃声音量为 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"媒体音量"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"通话音量"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"闹钟音量"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"铃声音量"</string>
@@ -4219,10 +4211,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"更新勿扰模式"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"暂停通知即可保持专注"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"该设备不支持此功能"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"此功能不可用"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"这会降低这部手机的速度"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"强制启用 GNSS 测量结果全面跟踪"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"在停用工作周期的情况下跟踪所有 GNSS 星座和频率"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"允许系统执行后台活动"</string>
@@ -4428,6 +4418,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> 个通知渠道。点按即可管理全部。"</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"切换输出"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"目前正在<xliff:g id="DEVICE_NAME">%1$s</xliff:g>上播放"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"您通过此提供方订阅的内容可能会被取消。周期性订阅内容不会被取消。如需了解详情,请咨询您的提供方。"</string>
</resources>
diff --git a/res/values-zh-rHK/arrays.xml b/res/values-zh-rHK/arrays.xml
index 4a74bcd..1c75201 100644
--- a/res/values-zh-rHK/arrays.xml
+++ b/res/values-zh-rHK/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"全球"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index f8aace4..fba156d 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"選擇其他網絡"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"無法新增裝置"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"找到裝置"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"正在與此裝置分享 Wi-Fi…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"連接中…"</string>
<string name="retry" msgid="6472609612090877557">"重試"</string>
<string name="wifi_shared" msgid="844142443226926070">"與其他裝置使用者分享"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(未變更)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"流動網絡"</item>
<item msgid="2838022395783120596">"只限 Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"首選 Wi-Fi"</item>
<item msgid="5074515506087318555">"流動網絡優先"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"流動網絡"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"當開啟 Wi-Fi 通話時,您的手機可根據偏好設定及訊號強弱,選擇使用 Wi-Fi 網絡或流動網絡供應商的網絡安排來電轉駁。開啟此功能前,請向您的流動網絡供應商查詢收費及其他詳情。<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"緊急地址"</string>
@@ -2055,8 +2044,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 分鐘"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"閱讀時間"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"處理時間"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"對於待讀訊息,選擇顯示時間 (只會暫時顯示)。\n\n只有部分應用程式支援此設定。"</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"對於您要處理的訊息,選擇顯示時間 (只會暫時顯示)。\n\n只有部分應用程式支援此設定。"</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"輕觸並按住延遲"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"色彩反轉"</string>
@@ -3007,7 +2995,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"藍牙、NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"藍牙"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"應用程式和通知"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"權限、預設應用程式"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"工作設定檔中的應用程式無法存取通知設定。"</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"帳戶"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"未新增任何帳戶"</string>
@@ -3070,7 +3059,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"環境顯示,上鎖畫面顯示"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"上鎖畫面通知"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"臉孔"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"指紋"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"螢幕變暗, 觸控螢幕, 電池, 智能亮度, 動態亮度"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"調暗螢幕, 休眠, 電池, 逾時, 注意, 顯示屏, 螢幕, 閒置"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"旋轉, 翻轉, 旋轉, 直向, 橫向, 屏幕定向, 垂直, 水平"</string>
@@ -3103,6 +3093,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"響鈴設定為靜音"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"鈴聲音量為 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"媒體音量"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"通話音量"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"鬧鐘音量"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"鈴聲音量"</string>
@@ -4220,10 +4212,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"更新請勿騷擾模式"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"暫停通知,助您保持專注"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"這部裝置不支援此功能"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"無法使用此功能"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"此功能會減慢這部手機的運作速度"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"強制啟用完整的 GNSS 測量資料"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"在停用工作週期的情況下追蹤所有 GNSS 星座圖和頻率"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"允許啟動背景活動"</string>
@@ -4429,6 +4419,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> 個通知渠道。輕按即可管理所有渠道。"</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"切換輸出"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"目前正在「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」上播放"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"您透過此供應商訂閱的內容或會取消。定期訂閱不會取消。如需瞭解更多資訊,請聯絡您的供應商。"</string>
</resources>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index fa57efd..fa4d11a 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"通用"</item>
<item msgid="817971827645657949">"LTE/CDMA"</item>
<item msgid="519208953133334357">"LTE/GSM/UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 2231dd6..7dc0e82 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -944,10 +944,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"選擇其他網路"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"無法新增裝置"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"找到裝置"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"正在與這個裝置分享 Wi‑Fi…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"連線中…"</string>
<string name="retry" msgid="6472609612090877557">"重試"</string>
<string name="wifi_shared" msgid="844142443226926070">"與裝置的其他使用者共用"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(未變更)"</string>
@@ -1071,11 +1069,6 @@
<item msgid="7715869266611010880">"行動網路"</item>
<item msgid="2838022395783120596">"僅限 Wi-Fi"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Wi-Fi 優先"</item>
<item msgid="5074515506087318555">"行動網路優先"</item>
@@ -1084,10 +1077,6 @@
<item msgid="6132150507201243768">"Wi-Fi"</item>
<item msgid="1118703915148755405">"行動網路"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"開啟 Wi-Fi 通話功能之後,你的手機可依據你的偏好設定,透過 Wi-Fi 網路或你電信業者的網路通話 (選擇訊號較強者)。開啟這項功能前,請先與你的電信業者詢問費用與其他細節。<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"緊急地址"</string>
@@ -2058,8 +2047,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 分鐘"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"可閱讀的時間"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"可進行操作的時間"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"選擇你需要閱讀的訊息會暫時顯示多久。\n\n只有部分應用程式支援這項設定。"</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"選擇要求你進行操作的訊息會暫時顯示多久。\n\n只有部分應用程式支援這項設定。"</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"輕觸並按住的延遲時間"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"色彩反轉"</string>
@@ -3014,7 +3002,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"藍牙、NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"藍牙"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"應用程式和通知"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"權限、預設應用程式"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"這個工作資料夾中的應用程式無法存取通知。"</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"帳戶"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"未新增任何帳戶"</string>
@@ -3077,7 +3066,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"微光螢幕, 螢幕鎖定畫面"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"螢幕鎖定通知"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"臉孔"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"指紋"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"調暗螢幕, 觸控螢幕, 電池, 智慧型亮度, 動態亮度"</string>
<!-- no translation found for keywords_display_adaptive_sleep (6865504720946121402) -->
<skip />
@@ -3111,6 +3101,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"鈴聲已設為靜音"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"鈴聲音量為 80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"媒體音量"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"通話音量"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"鬧鐘音量"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"鈴聲音量"</string>
@@ -4231,10 +4223,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"更新「零打擾」模式"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"暫停通知以保持專注"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"這個裝置不支援此功能"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"無法使用這項功能"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"這會減慢這支手機的速度"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"強制啟用完整的 GNSS 測量資料"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"在停用工作週期的情況下追蹤所有 GNSS 星座圖和頻率"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"允許系統執行背景活動"</string>
@@ -4438,6 +4428,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> 個通知管道。輕觸即可管理所有通知管道。"</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"切換輸出裝置"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"目前正在「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」上播放"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"你透過這個供應商訂閱的項目可能會遭到取消。週期性訂閱項目不會遭到取消。如需更多資訊,請洽詢你的供應商。"</string>
</resources>
diff --git a/res/values-zu/arrays.xml b/res/values-zu/arrays.xml
index ec2f9aa..861691f 100644
--- a/res/values-zu/arrays.xml
+++ b/res/values-zu/arrays.xml
@@ -522,18 +522,9 @@
<item msgid="8753271080005095725">"I-RUIM/SIM"</item>
<item msgid="2214656470548320124">"NV"</item>
</string-array>
- <string-array name="cdma_subscription_values">
- <item msgid="3697517500945829780">"0"</item>
- <item msgid="8113210705878681550">"1"</item>
- </string-array>
<string-array name="preferred_network_mode_choices_world_mode">
<item msgid="1054992858056320116">"Okomhlaba jikelele"</item>
<item msgid="817971827645657949">"I-LTE / CDMA"</item>
<item msgid="519208953133334357">"I-LTE / GSM / UMTS"</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
- <item msgid="3904215366284600030">"10"</item>
- <item msgid="4187053702071521357">"8"</item>
- <item msgid="5461421967189969022">"9"</item>
- </string-array>
</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 5ee711d..c75fbb0 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -940,10 +940,8 @@
<string name="wifi_dpp_choose_different_network" msgid="4081965219206680361">"Khetha inethiwekhi ehlukile"</string>
<string name="wifi_dpp_could_not_add_device" msgid="1598945041477461501">"Ayikwazanga ukungeza idivayisi"</string>
<string name="wifi_dpp_device_found" msgid="8618134150169810107">"Idivayisi itholiwe"</string>
- <!-- no translation found for wifi_dpp_sharing_wifi_with_this_device (5579154298588011712) -->
- <skip />
- <!-- no translation found for wifi_dpp_connecting (7111851118215580428) -->
- <skip />
+ <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="5579154298588011712">"Yabelana nge-Wi‑Fi ngale divayisi…"</string>
+ <string name="wifi_dpp_connecting" msgid="7111851118215580428">"Iyaxhuma…"</string>
<string name="retry" msgid="6472609612090877557">"Zama futhi"</string>
<string name="wifi_shared" msgid="844142443226926070">"Yabelana nabanye abasebenzisi bedivayisi"</string>
<string name="wifi_unchanged" msgid="3410422020930397102">"(akushintshiwe)"</string>
@@ -1067,11 +1065,6 @@
<item msgid="7715869266611010880">"Iselula"</item>
<item msgid="2838022395783120596">"I-Wi-Fi kuphela"</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
- <item msgid="4799585830102342375">"2"</item>
- <item msgid="1171822231056612021">"1"</item>
- <item msgid="3194458950573886239">"0"</item>
- </string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
<item msgid="5782108782860004851">"Kuncanyelwa i-Wi-Fi"</item>
<item msgid="5074515506087318555">"Kuncanyelwa iselula"</item>
@@ -1080,10 +1073,6 @@
<item msgid="6132150507201243768">"I-Wi-Fi"</item>
<item msgid="1118703915148755405">"Iselula"</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
- <item msgid="2339246858001475047">"2"</item>
- <item msgid="6200207341126893791">"1"</item>
- </string-array>
<string name="wifi_calling_off_explanation" msgid="564780186974911501">"Uma kuvulwe ukushaya kwe-Wi-Fi, ifoni yakho ingahambisa amakholi ngamanethiwekhi e-Wi-Fi kunethiwekhi yenkampani yakho yenethiwekhi, ngokuya ngokuncamelayo nokuthi iyiphi isignali eqinile. Ngaphambi kokuthi uvule lesi sici, hlola nenkampani yakho yenethiwekhi ngokuphathelene nezinkokhiso kanye neminye imininingwane. <xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
<string name="wifi_calling_off_explanation_2" msgid="2329334487851497223"></string>
<string name="emergency_address_title" msgid="932729250447887545">"Ikheli eliphuthumayo"</string>
@@ -2055,8 +2044,7 @@
<string name="accessibility_timeout_2mins" msgid="9062685014853095180">"2 amaminithi"</string>
<string name="accessibility_content_timeout_preference_title" msgid="5647118549024271497">"Isikhathi sokufunda"</string>
<string name="accessibility_control_timeout_preference_title" msgid="3076566452307147390">"Isikhathi sokwenza isenzo"</string>
- <!-- no translation found for accessibility_content_timeout_preference_summary (2637322628166175371) -->
- <skip />
+ <string name="accessibility_content_timeout_preference_summary" msgid="2637322628166175371">"Khetha ukuthi ungabonisa kangakanani imilayezo okumele uyifunde, kodwa ebonakala kuphela okwesikhashana.\n\nAkuzona zonke izinhlelo zokusebenza ezisekela lesi silungiselelo."</string>
<string name="accessibility_control_timeout_preference_summary" msgid="6557680564604287459">"Khetha ukuthi imilayezo izoboniswa isikhathi esingakanani ekucela ukuthi wenze isenzo, kodwa ebonakala kuphela okwesikhashana.\n\nAkuzona zonke izinhlelo zokusebenza ezisekela lesi silungiselelo."</string>
<string name="accessibility_long_press_timeout_preference_title" msgid="6708467774619266508">"Thinta futhi ukulibazisa"</string>
<string name="accessibility_display_inversion_preference_title" msgid="2119647786141420802">"Ukuguqulwa kombala"</string>
@@ -3007,7 +2995,8 @@
<string name="connected_devices_dashboard_no_driving_mode_summary" msgid="5018708106066758867">"I-Bluetooth, i-NFC"</string>
<string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="5250078362483148199">"I-Bluetooth"</string>
<string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Izinhlelo zokusebenza nezaziso"</string>
- <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Izimvume, izinhlelo zokusebenza ezienzakalelayo"</string>
+ <!-- no translation found for app_and_notification_dashboard_summary (6513508041918469381) -->
+ <skip />
<string name="notification_settings_work_profile" msgid="3186757479243373003">"Ukufinyelela kwesaziso akutholakaleli izinhelo zokusebenza kuphrofayela yomsebenzi."</string>
<string name="account_dashboard_title" msgid="5895948991491438911">"Ama-akhawunti"</string>
<string name="account_dashboard_default_summary" msgid="3998347400161811075">"Awekho ama-akhawunti angeziwe"</string>
@@ -3070,7 +3059,8 @@
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Isibonisi se-Ambient, isibonisi sesikrini sokukhiya"</string>
<string name="keywords_lock_screen_notif" msgid="6610464036497568711">"isaziso sokukhiya isikrini"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"ubuso"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"izigxivizo zeminwe"</string>
+ <!-- no translation found for keywords_fingerprint_settings (4425098764810291897) -->
+ <skip />
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"fiphalisa isikrini, isikrini esithintwayo, ibhethri, ukukhanya okuhlakaniphile, ukukhanya okuguqukayo"</string>
<string name="keywords_display_adaptive_sleep" msgid="6865504720946121402">"fiphalisa isikrini, lala, ibhethri, isikhathi sokuvala, ukunakwa, isiboniso, ukungasebenzi kwesikrini"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"zungezisa, phenya, ukupendukisa, i-portrait, i-landscape, umumo, okuqondile, okuvundlile"</string>
@@ -3103,6 +3093,8 @@
<string name="sound_settings_summary_silent" msgid="5074529767435584948">"Ukukhala kusethelwe ukuthula"</string>
<string name="sound_settings_example_summary" msgid="2404914514266523165">"Ivolumu yokukhalisa kokungu-80%"</string>
<string name="media_volume_option_title" msgid="2811531786073003825">"Ivolumu yabezindaba"</string>
+ <!-- no translation found for remote_media_volume_option_title (7602586327091007461) -->
+ <skip />
<string name="call_volume_option_title" msgid="1265865226974255384">"Ivolumi yocingo"</string>
<string name="alarm_volume_option_title" msgid="8219324421222242421">"Ivolumu ye-alamu"</string>
<string name="ring_volume_option_title" msgid="6767101703671248309">"Ivolumu yokukhala"</string>
@@ -4220,10 +4212,8 @@
<string name="zen_suggestion_title" msgid="798067603460192693">"Buyekeza okuthi ungaphazamisi"</string>
<string name="zen_suggestion_summary" msgid="5928686804697233014">"Misa isikhashana izikhangiso ukuze uhlale ugxilile"</string>
<string name="disabled_low_ram_device" msgid="3751578499721173344">"Lesi sici asitholakali kule divayisi"</string>
- <!-- no translation found for disabled_feature (2102058661071271076) -->
- <skip />
- <!-- no translation found for disabled_feature_reason_slow_down_phone (6377125503096655882) -->
- <skip />
+ <string name="disabled_feature" msgid="2102058661071271076">"Lesi sici asitholakali"</string>
+ <string name="disabled_feature_reason_slow_down_phone" msgid="6377125503096655882">"Izokwehlisa le foni"</string>
<string name="enable_gnss_raw_meas_full_tracking" msgid="1294470289520660584">"Phoqa izikali ezigcwele ze-GNSS"</string>
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Landelela onke ama-constellation nezimvamisa ngomjikelezo ongenawo umsebenzi"</string>
<string name="allow_background_activity_starts" msgid="4121456477541603005">"Vumela ukuqala komsebenzi ongemuva"</string>
@@ -4429,6 +4419,5 @@
<string name="notification_many_channel_count_summary" msgid="8647409434789898073">"<xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> iziteshi zokwazisa. Thepha ukuze uphathe konke."</string>
<string name="media_output_panel_title" msgid="6197092814295528184">"Shintsha okukhiphayo"</string>
<string name="media_output_panel_summary_of_playing_device" msgid="629529380940058789">"Manje idlala ku-<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
- <!-- no translation found for forget_passpoint_dialog_message (1996970308065448295) -->
- <skip />
+ <string name="forget_passpoint_dialog_message" msgid="1996970308065448295">"Okubhalisile nalo mhlinzeki kungakhanselwa. Okubhaliselwe okwenzeka ngokuvamile ngeke kuze kukhanselwe. Ukuze uthole olunye ulwazi, hlola nomhlizeki wakho."</string>
</resources>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 03e40aa..7e0ba10 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -931,6 +931,14 @@
<item>IPSec VPN with certificates and hybrid authentication</item>
</string-array>
+ <!-- VPN proxy settings. -->
+ <string-array name="vpn_proxy_settings">
+ <!-- No HTTP proxy is used for the current VPN [CHAR LIMIT=25] -->
+ <item>None</item>
+ <!-- Manual HTTP proxy settings are used for the current VPN [CHAR LIMIT=25] -->
+ <item>Manual</item>
+ </string-array>
+
<!-- Match this with the constants in LegacyVpnInfo. --> <skip />
<!-- Status for a VPN network. [CHAR LIMIT=100] -->
<string-array name="vpn_states">
@@ -1268,7 +1276,7 @@
<item>NV</item>
</string-array>
<!-- Values for CDMA subscription-->
- <string-array name="cdma_subscription_values">
+ <string-array name="cdma_subscription_values" translatable="false">
<item>"0"</item>
<item>"1"</item>
</string-array>
@@ -1351,10 +1359,23 @@
<item>LTE / GSM / UMTS</item>
</string-array>
- <string-array name="preferred_network_mode_values_world_mode">
+ <string-array name="preferred_network_mode_values_world_mode" translatable="false">
<item>"10"</item>
<item>"8"</item>
<item>"9"</item>
</string-array>
+ <!-- WiFi calling mode array -->
+ <string-array name="wifi_calling_mode_summaries" translatable="false">
+ <item>@string/wifi_calling_mode_wifi_preferred_summary</item>
+ <item>@string/wifi_calling_mode_cellular_preferred_summary</item>
+ <item>@string/wifi_calling_mode_wifi_only_summary</item>
+ </string-array>
+
+ <!-- WiFi calling mode array without wifi only mode -->
+ <string-array name="wifi_calling_mode_summaries_without_wifi_only" translatable="false">
+ <item>@string/wifi_calling_mode_wifi_preferred_summary</item>
+ <item>@string/wifi_calling_mode_cellular_preferred_summary</item>
+ </string-array>
+
</resources>
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index c7bf1c7..e099cf0 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -132,6 +132,11 @@
<attr name="aspectRatio" format="float" />
</declare-styleable>
+ <declare-styleable name="ListWithEntrySummaryPreference">
+ <!-- Summaries of entry -->
+ <attr name="entrySummaries" format="reference" />
+ </declare-styleable>
+
<!-- For UsageView -->
<declare-styleable name="UsageView">
<attr name="android:colorAccent" />
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 7b55a2b..0afd288 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -56,7 +56,7 @@
<color name="material_blue_700">#3367D6</color>
<color name="material_grey_100">#f5f5f5</color>
<color name="material_grey_200">#ffffff</color>
- <color name="switch_bar_background">#ff80868B</color>
+ <color name="switch_bar_background">#757575</color>
<color name="message_text_incoming">#ffffffff</color>
<color name="message_text_outgoing">#ff323232</color>
@@ -124,6 +124,11 @@
<color name="face_anim_particle_color_4">#fffdd835</color> <!-- Material Yellow 600 -->
<color name="face_anim_particle_error">#ff9e9e9e</color> <!-- Material Gray 500 -->
+ <!-- notification settings -->
+ <color name="notification_block_color">#ffff0000</color>
+ <color name="notification_silence_color">#fbbc04</color>
+ <color name="notification_alert_color">#30a751</color>
+
<!-- launcher icon color -->
<color name="icon_launcher_setting_color">@*android:color/accent_device_default_light</color>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 4ac0db8..f5b6e95 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -68,6 +68,9 @@
<dimen name="notification_app_icon_size">64dp</dimen>
<dimen name="notification_app_icon_badge_size">20dp</dimen>
<dimen name="notification_app_icon_badge_margin">4dp</dimen>
+ <dimen name="notification_importance_toggle_size">48dp</dimen>
+ <dimen name="notification_importance_toggle_marginTop">8dp</dimen>
+ <dimen name="notification_importance_toggle_marginBottom">16dp</dimen>
<dimen name="zen_schedule_rule_checkbox_padding">7dp</dimen>
<dimen name="zen_schedule_day_margin">17dp</dimen>
@@ -279,6 +282,15 @@
<dimen name="password_requirement_textsize">14sp</dimen>
+ <!-- Visible vertical space we want to show below password edittext field when ime is shown.
+ The unit is sp as it is related to the text size of password requirement item. -->
+ <dimen name="visible_vertical_space_below_password">20sp</dimen>
+
+ <!-- Select dialog -->
+ <dimen name="select_dialog_padding_start">20dp</dimen>
+ <dimen name="select_dialog_item_margin_start">12dp</dimen>
+ <dimen name="select_dialog_summary_padding_bottom">8dp</dimen>
+
<!-- Padding between the donut and the storage summary. -->
<dimen name="storage_summary_padding_end">16dp</dimen>
<!-- Text size of the big number in the donut. -->
@@ -331,7 +343,8 @@
<dimen name="homepage_card_icon_size">24dp</dimen>
<dimen name="homepage_card_vertical_margin">8dp</dimen>
<dimen name="homepage_card_side_margin">4dp</dimen>
- <dimen name="homepage_card_padding_start">16dp</dimen>
+ <dimen name="homepage_card_icon_padding_start">14dp</dimen>
+ <dimen name="homepage_card_text_padding_start">16dp</dimen>
<dimen name="homepage_card_padding_end">16dp</dimen>
<dimen name="homepage_full_card_padding_end">12dp</dimen>
<dimen name="homepage_half_card_padding_top">12dp</dimen>
@@ -369,13 +382,13 @@
<dimen name="homepage_condition_half_card_padding_top">12dp</dimen>
<dimen name="homepage_condition_half_card_title_margin_top">12dp</dimen>
<dimen name="homepage_condition_half_card_summary_margin_bottom">12dp</dimen>
- <dimen name="homepage_condition_full_card_padding_start">12dp</dimen>
+ <dimen name="homepage_condition_full_card_padding_start">24dp</dimen>
<dimen name="homepage_condition_full_card_padding_end">16dp</dimen>
<dimen name="homepage_condition_full_card_padding_top">12dp</dimen>
<dimen name="homepage_condition_full_card_padding_bottom">12dp</dimen>
<dimen name="homepage_condition_header_padding_top">10dp</dimen>
<dimen name="homepage_condition_header_padding_bottom">10dp</dimen>
- <dimen name="homepage_condition_header_icons_margin_start">16dp</dimen>
+ <dimen name="homepage_condition_header_icons_margin_start">14dp</dimen>
<dimen name="homepage_condition_header_indicator_padding_top">4dp</dimen>
<dimen name="homepage_condition_header_indicator_padding_start">16dp</dimen>
<dimen name="homepage_condition_header_indicator_padding_end">16dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0d6eaeb..e4d0d11 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2157,6 +2157,10 @@
<string name="wifi_dpp_sharing_wifi_with_this_device">Sharing Wi\u2011Fi with this device\u2026</string>
<!-- Hint for Wi-Fi DPP handshake running [CHAR LIMIT=NONE] -->
<string name="wifi_dpp_connecting">Connecting\u2026</string>
+ <!-- Title for the fragment to show that the QR code is for sharing Wi-Fi hotspot network [CHAR LIMIT=50] -->
+ <string name="wifi_dpp_share_hotspot">Share hotspot</string>
+ <!-- Hint for the user to share Wi-Fi hotspot network [CHAR LIMIT=NONE] -->
+ <string name="wifi_dpp_scan_qr_code_to_share_hotspot">Scan this QR code with another device to join hotspot \u201c<xliff:g id="ssid" example="OfficeWifi">%1$s</xliff:g>\u201d</string>
<!-- Label for the try again button [CHAR LIMIT=20]-->
<string name="retry">Retry</string>
<!-- Label for the check box to share a network with other users on the same device -->
@@ -2221,6 +2225,14 @@
<!-- Button label to connect to a Wi-Fi network -->
<string name="wifi_connect">Connect</string>
+ <!-- Turned on notification for Wi-Fi [CHAR LIMIT=40] -->
+ <string name="wifi_turned_on_message">Wi\u2011Fi turned on</string>
+ <!-- Connected to notification for Wi-Fi [CHAR LIMIT=NONE] -->
+ <string name="wifi_connected_to_message">@string/bluetooth_connected_summary</string>
+ <!-- Button label to connecting progress to a Wi-Fi network [CHAR LIMIT=20] -->
+ <string name="wifi_connecting">Connecting\u2026</string>
+ <!-- Button label to disconnect to a Wi-Fi network [CHAR LIMIT=NONE] -->
+ <string name="wifi_disconnect">@string/bluetooth_device_context_disconnect</string>
<!-- Failured notification for connect -->
<string name="wifi_failed_connect_message">Failed to connect to network</string>
<!-- Button label to delete a Wi-Fi network -->
@@ -2266,6 +2278,10 @@
<!-- Wifi saved access points. Used as a label under the shortcut icon that goes to Wifi saved access points. [CHAR LIMIT=20] -->
<string name="wifi_saved_access_points_label">Saved networks</string>
+ <!-- Tab title for showing subscribed WiFi access points. [CHAR LIMIT=20] -->
+ <string name="wifi_subscribed_access_points_tab">Subscriptions</string>
+ <!-- Tab title for showing saved WiFi access points. -->
+ <string name="wifi_saved_access_points_tab">@string/wifi_access_points</string>
<!-- Wifi Advanced settings. Used as a label under the shortcut icon that goes to Wifi advanced settings. [CHAR LIMIT=20] -->
<string name="wifi_advanced_settings_label">IP settings</string>
<!-- Error message for users that aren't allowed to see or modify WiFi advanced settings [CHAR LIMIT=NONE] -->
@@ -2374,8 +2390,6 @@
<string name="wifi_hotspot_configure_ap_text_summary">AndroidAP WPA2 PSK hotspot</string>
<!-- Default access point SSID used for tethering -->
<string name="wifi_tether_configure_ssid_default">AndroidHotspot</string>
- <!-- Summary text when hotspot is disabled because airplane mode is on [CHAR LIMIT=80]-->
- <string name="wifi_tether_disabled_by_airplane">Unavailable because airplane mode is turned on</string>
<!-- Do not translate. Used for diagnostic screens, precise translation is not necessary
Wi-Fi Testing on the diagnostic screen-->
@@ -2472,7 +2486,7 @@
<!-- Title of WFC preference item [CHAR LIMIT=30] -->
<string name="wifi_calling_mode_title">Calling preference</string>
<!-- Title of WFC preference selection dialog [CHAR LIMIT=30] -->
- <string name="wifi_calling_mode_dialog_title">Wi-Fi calling mode</string>
+ <string name="wifi_calling_mode_dialog_title">Calling preference</string>
<!-- Title of WFC roaming preference item [CHAR LIMIT=45] -->
<string name="wifi_calling_roaming_mode_title">Roaming preference</string>
<!-- Summary of WFC roaming preference item [CHAR LIMIT=NONE]-->
@@ -2480,32 +2494,40 @@
<!-- WFC mode dialog [CHAR LIMIT=45] -->
<string name="wifi_calling_roaming_mode_dialog_title">Roaming preference</string>
<string-array name="wifi_calling_mode_choices">
- <item>Wi-Fi preferred</item>
- <item>Mobile preferred</item>
- <item>Wi-Fi only</item>
+ <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>
</string-array>
<string-array name="wifi_calling_mode_choices_v2">
<item>Wi-Fi</item>
<item>Mobile</item>
<item>Wi-Fi only</item>
</string-array>
- <string-array name="wifi_calling_mode_values">
+ <string-array name="wifi_calling_mode_values" translatable="false">
<item>"2"</item>
<item>"1"</item>
<item>"0"</item>
</string-array>
<string-array name="wifi_calling_mode_choices_without_wifi_only">
- <item>Wi-Fi preferred</item>
- <item>Mobile preferred</item>
+ <item>@*android:string/wfc_mode_wifi_preferred_summary</item>
+ <item>@*android:string/wfc_mode_cellular_preferred_summary</item>
</string-array>
<string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
<item>Wi-Fi</item>
<item>Mobile</item>
</string-array>
- <string-array name="wifi_calling_mode_values_without_wifi_only">
+ <string-array name="wifi_calling_mode_values_without_wifi_only" translatable="false">
<item>"2"</item>
<item>"1"</item>
</string-array>
+
+ <!-- Summary of WFC preference item on the WFC preference selection dialog. [CHAR LIMIT=70]-->
+ <string name="wifi_calling_mode_wifi_preferred_summary">If Wi\u2011Fi is unavailable, use mobile network</string>
+ <!-- Summary of WFC preference item on the WFC preference selection dialog. [CHAR LIMIT=70]-->
+ <string name="wifi_calling_mode_cellular_preferred_summary">If mobile network is unavailable, use Wi\u2011Fi</string>
+ <!-- Summary of WFC preference item on the WFC preference selection dialog. [CHAR LIMIT=70]-->
+ <string name="wifi_calling_mode_wifi_only_summary">Call over Wi\u2011Fi. If Wi\u2011Fi is lost, call will end.</string>
+
<!-- Wi-Fi Calling settings. Text displayed when Wi-Fi Calling is off -->
<string name="wifi_calling_off_explanation">When Wi-Fi calling is on, your phone can route calls via Wi-Fi networks or your carrier\u2019s network, depending on your preference and which signal is stronger. Before turning on this feature, check with your carrier regarding fees and other details.<xliff:g id="additional_text" example="Learn More">%1$s</xliff:g></string>
<!-- Wi-Fi Calling settings. Additional text displayed when Wi-Fi Calling is off. Default empty. [CHAR LIMIT=NONE] -->
@@ -3000,14 +3022,14 @@
<string name="status_prl_version">PRL version</string>
<!-- About phone screen, title for MEID for multi-sim devices -->
<string name="meid_multi_sim">MEID (sim slot %1$d)</string>
- <!-- The status text when both Wi-Fi scanning and Bluetooth scanning are on. [CHAR LIMIT=120] -->
- <string name="scanning_status_text_wifi_on_ble_on">Both Wi\u2011Fi and Bluetooth are allowed to determine location</string>
- <!-- The status text when Wi-Fi scanning is on and Bluetooth scanning are off. [CHAR LIMIT=120] -->
- <string name="scanning_status_text_wifi_on_ble_off">Only Wi\u2011Fi is allowed to determine location</string>
- <!-- The status text when Wi-Fi scanning is off and Bluetooth scanning are on. [CHAR LIMIT=120] -->
- <string name="scanning_status_text_wifi_off_ble_on">Only Bluetooth is allowed to determine location</string>
- <!-- The status text when both Wi-Fi scanning and Bluetooth scanning are off. [CHAR LIMIT=120] -->
- <string name="scanning_status_text_wifi_off_ble_off">Neither Wi\u2011Fi nor Bluetooth is allowed to determine location</string>
+ <!-- The status text when both Wi-Fi scanning and Bluetooth scanning are on. [CHAR LIMIT=100] -->
+ <string name="scanning_status_text_wifi_on_ble_on">Both Wi\u2011Fi and Bluetooth scanning are on</string>
+ <!-- The status text when Wi-Fi scanning is on and Bluetooth scanning are off. [CHAR LIMIT=100] -->
+ <string name="scanning_status_text_wifi_on_ble_off">Wi\u2011Fi scanning is on, Bluetooth scanning is off</string>
+ <!-- The status text when Wi-Fi scanning is off and Bluetooth scanning are on. [CHAR LIMIT=100] -->
+ <string name="scanning_status_text_wifi_off_ble_on">Bluetooth scanning is on, Wi\u2011Fi scanning is off</string>
+ <!-- The status text when both Wi-Fi scanning and Bluetooth scanning are off. [CHAR LIMIT=100] -->
+ <string name="scanning_status_text_wifi_off_ble_off">Both Wi\u2011Fi and Bluetooth scanning are off</string>
<!-- About phone, status item title. The phone MEID number of the current LTE/CDMA device. [CHAR LIMIT=30] -->
<string name="status_meid_number">MEID</string>
<!-- About phone, status item title. The ICCID of the current LTE device. [CHAR LIMIT=30] -->
@@ -3559,10 +3581,10 @@
<string name="reset_network_title">Reset Wi-Fi, mobile & Bluetooth</string>
<!-- SD card & phone storage settings screen, message on screen after user selects Reset network settings [CHAR LIMIT=NONE] -->
<string name="reset_network_desc">This will reset all network settings, including:\n\n<li>Wi\u2011Fi</li>\n<li>Mobile data</li>\n<li>Bluetooth</li>"</string>
- <!-- SD card & phone storage settings screen, title for the checkbox to let user decide whether erase eSIM data together [CHAR LIMIT=NONE] -->
- <string name="reset_esim_title">Also reset eSIM</string>
+ <!-- SD card & phone storage settings screen, title for the checkbox to let user decide whether erase eSIM data together [CHAR LIMIT=30] -->
+ <string name="reset_esim_title">Erase eSIMs</string>
<!-- SD card & phone storage settings screen, message for the checkbox to let user decide whether erase eSIM data together [CHAR LIMIT=NONE] -->
- <string name="reset_esim_desc">Erase all eSIMs on the phone. You\u2019ll have to contact your carrier to redownload your eSIMs. This will not cancel your mobile service plan.</string>
+ <string name="reset_esim_desc">You\u2019ll have to contact your carrier to download replacement eSIMs. This won\u2019t cancel any mobile service plans.</string>
<!-- SD card & phone storage settings screen, button on screen after user selects Reset network settings -->
<string name="reset_network_button_text">Reset settings</string>
<!-- SD card & phone storage settings screen, message on screen after user selects Reset settings button -->
@@ -3611,12 +3633,6 @@
<string name="erase_external_storage_description" product="nosdcard">Erase all the data on the internal USB storage, such as music or photos</string>
<!-- SD card & phone storage settings screen, description for check box to erase USB storage [CHAR LIMIT=NONE] -->
<string name="erase_external_storage_description" product="default">Erase all the data on the SD card, such as music or photos</string>
- <!-- SD card & phone storage settings screen, label for check box to erase all the carriers information on the embedded SIM card [CHAR LIMIT=30] -->
- <string name="erase_esim_storage">Erase eSIM</string>
- <!-- SD card & phone storage settings screen, description for check box to erase eSIMs for default devices [CHAR LIMIT=NONE] -->
- <string name="erase_esim_storage_description" product="default">Erase all eSIMs on the phone. This will not cancel your mobile service plan.</string>
- <!-- SD card & phone storage settings screen, description for check box to erase eSIMs for tablets [CHAR LIMIT=NONE] -->
- <string name="erase_esim_storage_description" product="tablet">Erase all eSIMs on the tablet. This will not cancel your mobile service plan.</string>
<!-- SD card & phone storage settings screen, button on screen after user selects Factory data reset -->
<string name="master_clear_button_text" product="tablet">Erase all data</string>
<!-- SD card & phone storage settings screen, button on screen after user selects Factory data reset -->
@@ -3732,13 +3748,25 @@
<string name="location_app_level_permissions">App permission</string>
<!-- 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 location permission [CHAR LIMIT=NONE]-->
+ <!--
+ 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).
+
+ 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
+ "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>
of
<xliff:g id="total_location_app_count">%2$d</xliff:g>
- app has unlimited access</item>
+ apps has unlimited access</item>
<item quantity="other">
<xliff:g id="background_location_app_count">%1$d</xliff:g>
of
@@ -3749,8 +3777,12 @@
<string name="location_category_recent_location_access">Recent location access</string>
<!-- [CHAR LIMIT=30] Location settings screen, button to bring the user to view the details of recent location access -->
<string name="location_recent_location_access_view_details">View details</string>
- <!-- Location settings screen, displayed when there's no recent app accessing location -->
+ <!-- Location settings screen, displayed when there's no recent app accessing location
+ (for TV) [CHAR LIMIT=100] -->
<string name="location_no_recent_apps">No apps have requested location recently</string>
+ <!-- Location settings screen, displayed when there's no recent app accessing location
+ (for phones and tablets) [CHAR LIMIT=100] -->
+ <string name="location_no_recent_accesses">No apps recently accessed location</string>
<!-- [CHAR LIMIT=30] Location settings screen, recent location requests high battery use-->
<string name="location_high_battery_use">High battery use</string>
<!-- [CHAR LIMIT=30] Location settings screen, recent location requests low battery use-->
@@ -5218,8 +5250,8 @@
<string name="battery_tip_high_usage_title" product="tablet">Tablet used more than usual</string>
<!-- Title for the battery high usage tip [CHAR LIMIT=NONE] -->
<string name="battery_tip_high_usage_title" product="device">Device used more than usual</string>
- <!-- Summary for the battery high usage tip, which presents battery may run out soon [CHAR LIMIT=NONE] -->
- <string name="battery_tip_high_usage_summary">Battery may run out soon</string>
+ <!-- Summary for the battery high usage tip, which presents battery may run out earlier [CHAR LIMIT=NONE] -->
+ <string name="battery_tip_high_usage_summary">Battery may run out earlier than usual</string>
<!-- Message for battery tip dialog to show the status about the battery [CHAR LIMIT=NONE] -->
<string name="battery_tip_dialog_message" product="default">Your phone has been used more than usual. Your battery may run out sooner than expected.\n\nTop <xliff:g id="number">%1$d</xliff:g> apps you used since full charge:</string>
<!-- Message for battery tip dialog to show the status about the battery [CHAR LIMIT=NONE] -->
@@ -5583,6 +5615,12 @@
<!-- Battery saver: Title for battery saver schedule screen [CHAR_LIMIT=40] -->
<string name="battery_saver_schedule_settings_title">Set a schedule</string>
+ <!-- Battery Saver: Title for sticky battery saver preference [CHAR_LIMIT=60] -->
+ <string name="battery_saver_sticky_title">Keep battery saver on</string>
+
+ <!-- Battery Saver: Description for sticky battery saver preference [CHAR_LIMIT=NONE] -->
+ <string name="battery_saver_sticky_description">Battery saver will stay on even after device is fully charged</string>
+
<!-- Battery saver: Label for seekbar to change battery saver threshold [CHAR_LIMIT=40] -->
<string name="battery_saver_seekbar_title"><xliff:g id="percent">%1$s</xliff:g></string>
@@ -5602,9 +5640,9 @@
<string name="battery_saver_turn_on_automatically_pct">at <xliff:g id="percent">%1$s</xliff:g> battery</string>
<!-- [CHAR_LIMIT=40] Battery percentage: Title -->
- <string name="battery_info">Battery Information</string>
+ <string name="battery_percentage">Battery percentage</string>
<!-- [CHAR_LIMIT=NONE] Battery percentage: Description for preference -->
- <string name="battery_info_description">Show percentage and time left before charge is needed</string>
+ <string name="battery_percentage_description">Show battery percentage in status bar</string>
<!-- Process Stats strings -->
<skip />
@@ -7001,7 +7039,7 @@
<!-- Title for setting tile leading to Apps & Notification settings [CHAR LIMIT=40]-->
<string name="app_and_notification_dashboard_title">Apps & notifications</string>
<!-- Summary for Apps & Notification settings, explaining a few important settings under it [CHAR LIMIT=NONE]-->
- <string name="app_and_notification_dashboard_summary">Permissions, default apps</string>
+ <string name="app_and_notification_dashboard_summary">Assistant, recent apps, default apps</string>
<!-- Toast shown when an app in the work profile attempts to open notification settings. The apps in the work profile cannot access notification settings. [CHAR LIMIT=NONE] -->
<string name="notification_settings_work_profile">Notification access is not available for apps in the work profile.</string>
<!-- Title for setting tile leading to account settings [CHAR LIMIT=40]-->
@@ -7147,6 +7185,9 @@
<string name="keywords_ring_vibration">haptics, vibrate, phone, call, sensitivity, ring</string>
<!-- List of synonyms for notification vibration setting (changes whether your phone vibrates when it shows a notification), used to match in settings search [CHAR LIMIT=NONE] -->
<string name="keywords_notification_vibration">haptics, vibrate, sensitivity</string>
+ <!-- Battery Saver: Search terms for sticky battery saver preference [CHAR_LIMIT=NONE] -->
+ <string name="keywords_battery_saver_sticky">battery saver, sticky, persist, power saver, battery</string>
+
<!-- NFC Wi-Fi pairing/setup strings-->
@@ -7193,6 +7234,9 @@
<!-- Sound: Title for the option managing media volume. [CHAR LIMIT=30] -->
<string name="media_volume_option_title">Media volume</string>
+ <!-- Sound: Title for the option managing remote media volume. [CHAR LIMIT=30] -->
+ <string name="remote_media_volume_option_title">Cast volume</string>
+
<!-- Sound: Title for the option managing call volume. [CHAR LIMIT=30] -->
<string name="call_volume_option_title">Call volume</string>
@@ -7737,7 +7781,7 @@
summary on the channel page-->
<!-- [CHAR LIMIT=100] Notification Importance title: min importance level title -->
- <string name="notification_importance_min_title">Low</string>
+ <string name="notification_importance_min_title">Minimize</string>
<!-- [CHAR LIMIT=100] Notification Importance title: low importance level title -->
<string name="notification_importance_low_title">Medium</string>
@@ -7746,7 +7790,16 @@
<string name="notification_importance_default_title">High</string>
<!-- [CHAR LIMIT=100] Notification Importance title: high importance level title -->
- <string name="notification_importance_high_title">Urgent</string>
+ <string name="notification_importance_high_title">Pop on screen</string>
+
+ <!-- [CHAR LIMIT=100] Notification Importance title -->
+ <string name="notification_block_title">Block</string>
+
+ <!-- [CHAR LIMIT=100] Notification Importance title -->
+ <string name="notification_silence_title">Show silently</string>
+
+ <!-- [CHAR LIMIT=100] Notification Importance title -->
+ <string name="notification_alert_title">Alert</string>
<!-- [CHAR LIMIT=40] Notification importance title. This setting controls how notifications in older apps may alert the user (eg, sound, visual, vibrate). -->
<string name="allow_interruption">Allow interruptions</string>
@@ -9204,10 +9257,7 @@
<string name="condition_expand_hide">Hide</string>
<!-- Title of condition that hotspot is on [CHAR LIMIT=30] -->
- <string name="condition_hotspot_title">Hotspot</string>
-
- <!-- Summary of condition that hotspot is on [CHAR LIMIT=NONE] -->
- <string name="condition_hotspot_summary"><xliff:g name="ap_name" example="AndroidAP">%1$s</xliff:g> on</string>
+ <string name="condition_hotspot_title">Hotspot is active</string>
<!-- Title of condition that airplane mode is on [CHAR LIMIT=30] -->
<string name="condition_airplane_title">Airplane mode is on</string>
@@ -9795,8 +9845,11 @@
<!-- Title for settings suggestion for double twist for camera [CHAR LIMIT=60] -->
<string name="double_twist_for_camera_suggestion_title">Take selfies faster</string>
- <!-- Title text for swipe up to switch apps [CHAR LIMIT=60] -->
- <string name="swipe_up_to_switch_apps_title">Swipe up on Home button</string>
+ <!-- Title text for system navigation [CHAR LIMIT=60] [DO NOT TRANSLATE] -->
+ <string name="system_navigation_title" translatable="false">System navigation</string>
+
+ <!-- Title text for swipe up to switch apps [CHAR LIMIT=60] [DO NOT TRANSLATE] -->
+ <string name="swipe_up_to_switch_apps_title" translatable="false">2-button navigation</string>
<!-- Summary text for swipe up to switch apps [CHAR LIMIT=250] -->
<string name="swipe_up_to_switch_apps_summary">To switch apps, swipe up on the Home button. Swipe up again to see all apps. Works from any screen. You’ll no longer have an Overview button on the bottom right of your screen.</string>
<!-- Title for settings suggestion for swipe up to switch apps [CHAR LIMIT=60] -->
@@ -9804,6 +9857,16 @@
<!-- Summary for settings suggestion for swipe up to switch apps [CHAR LIMIT=60] -->
<string name="swipe_up_to_switch_apps_suggestion_summary">Turn on the new gesture to switch apps</string>
+ <!-- Title text for edge to edge navigation [CHAR LIMIT=60] [DO NOT TRANSLATE] -->
+ <string name="edge_to_edge_navigation_title" translatable="false">Fully gestural navigation</string>
+ <!-- Summary text for edge to edge navigation [CHAR LIMIT=None] [DO NOT TRANSLATE] -->
+ <string name="edge_to_edge_navigation_summary" translatable="false">To go Home, swipe up from the bottom of the screen. To go Back, swipe from either the left or right edge of the screen. To switch apps, start swiping up from the bottom of the screen and hold before releasing.</string>
+
+ <!-- Title text for 3-button navigation [CHAR LIMIT=60] [DO NOT TRANSLATE] -->
+ <string name="legacy_navigation_title" translatable="false">3-button navigation</string>
+ <!-- Summary text for 3-button navigation [CHAR LIMIT=250] [DO NOT TRANSLATE] -->
+ <string name="legacy_navigation_summary" translatable="false">Classic Android navigation mode where going Home, switching apps, and going Back are accessible via buttons.</string>
+
<!-- Preference and settings suggestion title text for ambient display double tap (phone) [CHAR LIMIT=60]-->
<string name="ambient_display_title" product="default">Double-tap to check phone</string>
<!-- Preference and settings suggestion title text for ambient display double tap (tablet) [CHAR LIMIT=60]-->
@@ -9823,8 +9886,6 @@
<!-- Preference and settings suggestion title text for display wake-up gesture [CHAR LIMIT=60]-->
<string name="ambient_display_wake_screen_title">Wake up display</string>
- <!-- Summary text for ambient display wake-up gesture [CHAR LIMIT=NONE]-->
- <string name="ambient_display_wake_screen_summary"></string>
<!-- Summary text for ambient display (phone) [CHAR LIMIT=NONE]-->
<string name="ambient_display_pickup_summary" product="default">To check time, notifications, and other info, pick up your phone.</string>
@@ -10640,6 +10701,9 @@
<!-- Title for the Volume dialog (settings panel) with all volume streams[CHAR LIMIT=50] -->
<string name="volume_connectivity_panel_title">Volume</string>
+ <!-- Subtitle explaining that mobile data cannot be used while airplane mode is on [CHAR LIMIT=50] -->
+ <string name="mobile_data_ap_mode_disabled">Unavailable during airplane mode</string>
+
<!-- UI debug setting: force desktop mode [CHAR LIMIT=50] -->
<string name="force_desktop_mode">Force desktop mode</string>
<!-- UI debug setting: force desktop mode summary [CHAR LIMIT=NONE] -->
@@ -10690,8 +10754,8 @@
<!-- Summary for the accessibility usage preference in the Privacy page. [CHAR LIMIT=NONE] -->
<plurals name="accessibility_usage_summary">
- <item quantity="one">1 service has full access to your device</item>
- <item quantity="other"><xliff:g id="service_count">%1$d</xliff:g> services have full access to your device</item>
+ <item quantity="one">1 app has full access to your device</item>
+ <item quantity="other"><xliff:g id="service_count">%1$d</xliff:g> apps have full access to your device</item>
</plurals>
<!-- Title for notification channel slice. [CHAR LIMIT=NONE] -->
@@ -10711,6 +10775,22 @@
<!-- Summary for represent which device is playing media [CHAR LIMIT=NONE] -->
<string name="media_output_panel_summary_of_playing_device">Currently playing on <xliff:g id="device_name" example="Bose headphone">%1$s</xliff:g></string>
+ <!-- Label for the title on wfc disclaimer fragment. [CHAR LIMIT=40] -->
+ <string name="wfc_disclaimer_title_text">Important information</string>
+
+ <!-- Label for the agree button on wfc disclaimer fragment. [CHAR LIMIT=30] -->
+ <string name="wfc_disclaimer_agree_button_text">CONTINUE</string>
+
+ <!-- Label for the disagree button on wfc disclaimer fragment. [CHAR LIMIT=30] -->
+ <string name="wfc_disclaimer_disagree_text">NO THANKS</string>
+
<!-- Message for forget passpoint dialog [CHAR LIMIT=none] -->
- <string name="forget_passpoint_dialog_message">Your subscription with this provider may be cancelled. Recurring subscriptions will not be cancelled. For more information, check with your provider.</string>
+ <string name="forget_passpoint_dialog_message">You may lose access to any remaining time or data. Check with your provider before removing.</string>
+
+ <!-- Keywords for Content Capture feature [CHAR_LIMIT=32] -->
+ <string name="keywords_content_capture">content capture</string>
+ <!-- Title of the 'Content Capture' feature toggle in the Settings -> Privacy screen [CHAR LIMIT=none]-->
+ <string name="content_capture">Content Capture</string>
+ <!-- Description of the 'Content Capture' feature toggle in the Settings -> Privacy screen [CHAR LIMIT=NONE]-->
+ <string name="content_capture_summary">Allow Android to save information seen on your screen or heard in video or audio content. Android makes helpful suggestions based on your device activity.</string>
</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index a778f76..8fde9a0 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -303,6 +303,11 @@
<item name="android:textSize">16sp</item>
</style>
+ <style name="TextAppearance.DialogMessage"
+ parent="@*android:style/TextAppearance.DeviceDefault.Body1">
+ <item name="android:textSize">16sp</item>
+ </style>
+
<style name="SuggestionCardText">
<item name="android:textAlignment">viewStart</item>
</style>
@@ -443,7 +448,7 @@
<style name="ConditionFullCardBorderlessButton"
parent="@style/ConditionCardBorderlessButton">
<item name="android:textAlignment">viewStart</item>
- <item name="android:paddingStart">50dp</item>
+ <item name="android:paddingStart">62dp</item>
<item name="android:paddingEnd">50dp</item>
</style>
@@ -479,8 +484,8 @@
</style>
<style name="SliceViewStyle">
- <!-- 4dp start padding for the start icon -->
- <item name="android:paddingStart">4dp</item>
+ <!-- 2dp start padding for the start icon -->
+ <item name="android:paddingStart">2dp</item>
<!-- End margin of content without end items is 24dp.
android:paddingEnd = 24 - 16(contentEndPadding) -->
@@ -492,8 +497,8 @@
<style name="SliceRowStyle">
<item name="titleItemEndPadding">0dp</item>
- <!-- Padding between content and the start icon is 12dp. -->
- <item name="contentStartPadding">12dp</item>
+ <!-- Padding between content and the start icon is 14dp. -->
+ <item name="contentStartPadding">14dp</item>
<!-- Padding between content and end items is 16dp. -->
<item name="contentEndPadding">16dp</item>
@@ -503,9 +508,9 @@
<item name="endItemEndPadding">8dp</item>
<!-- Both side margins of bottom divider are 12dp.
- bottomDividerStartPadding = 12 - 4(android:paddingStart)
+ bottomDividerStartPadding = 12 - 2(android:paddingStart)
bottomDividerEndPadding = 12 - 8(android:paddingEnd) -->
- <item name="bottomDividerStartPadding">8dp</item>
+ <item name="bottomDividerStartPadding">10dp</item>
<item name="bottomDividerEndPadding">4dp</item>
<item name="actionDividerHeight">32dp</item>
@@ -515,4 +520,17 @@
<!-- Padding between content and the start icon is 8dp. -->
<item name="contentStartPadding">8dp</item>
</style>
+
+ <style name="DisclaimerPositiveButton" parent="@style/SudGlifButton.Primary">
+ <item name="android:layout_margin">16dp</item>
+ <item name="android:paddingStart">8dp</item>
+ <item name="android:paddingEnd">8dp</item>
+ </style>
+
+ <style name="DisclaimerNegativeButton" parent="@style/SudGlifButton.Secondary">
+ <item name="android:layout_margin">16dp</item>
+ <item name="android:paddingStart">8dp</item>
+ <item name="android:paddingEnd">8dp</item>
+ </style>
+
</resources>
diff --git a/res/values/themes.xml b/res/values/themes.xml
index 991e376..a8ae506 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -128,8 +128,11 @@
<!-- Redefine the ActionBar style for contentInsetStart -->
<item name="android:actionBarStyle">@style/Widget.ActionBar</item>
- <!-- copied from Theme.DeviceDefault.Light.Dialog.Alert -->
+ <!-- copied from Theme.DeviceDefault.Dialog.Alert -->
<item name="dialogCornerRadius">@*android:dimen/config_dialogCornerRadius</item>
+ <item name="android:windowTitleStyle">@*android:style/DialogWindowTitle.DeviceDefault</item>
+ <item name="android:textAppearanceMedium">@style/TextAppearance.DialogMessage</item>
+ <item name="buttonBarButtonStyle">@*android:style/Widget.DeviceDefault.Button.ButtonBar.AlertDialog</item>
</style>
<style name="Theme.ConfirmDeviceCredentials" parent="Theme.SubSettings">
diff --git a/res/xml/app_notification_settings.xml b/res/xml/app_notification_settings.xml
index 54d6fe7..faad649 100644
--- a/res/xml/app_notification_settings.xml
+++ b/res/xml/app_notification_settings.xml
@@ -61,7 +61,7 @@
android:order="1001"
settings:restrictedSwitchSummary="@string/enabled_by_admin" />
<com.android.settingslib.RestrictedSwitchPreference
- android:key="bubble"
+ android:key="bubble_pref"
android:title="@string/notification_bubbles_title"
android:order="1002"
settings:restrictedSwitchSummary="@string/enabled_by_admin" />
diff --git a/res/xml/battery_saver_settings.xml b/res/xml/battery_saver_settings.xml
index 89f7eab..ae9d14d 100644
--- a/res/xml/battery_saver_settings.xml
+++ b/res/xml/battery_saver_settings.xml
@@ -26,6 +26,13 @@
android:title="@string/battery_saver_schedule_settings_title"
settings:controller="com.android.settings.fuelgauge.batterysaver.BatterySaverSchedulePreferenceController"/>
+ <SwitchPreference
+ android:key="battery_saver_sticky"
+ android:title="@string/battery_saver_sticky_title"
+ android:summary="@string/battery_saver_sticky_description"
+ settings:keywords="@string/keywords_battery_saver_sticky"
+ settings:controller="com.android.settings.fuelgauge.batterysaver.BatterySaverStickyPreferenceController"/>
+
<com.android.settings.widget.TwoStateButtonPreference
android:key="battery_saver"
android:title="@string/battery_saver"
diff --git a/res/xml/channel_notification_settings.xml b/res/xml/channel_notification_settings.xml
index 94a2cdb..3158819 100644
--- a/res/xml/channel_notification_settings.xml
+++ b/res/xml/channel_notification_settings.xml
@@ -25,11 +25,6 @@
android:order="1"
android:layout="@layout/settings_entity_header" />
- <com.android.settingslib.widget.LayoutPreference
- android:key="block"
- android:order="2"
- android:layout="@layout/styled_switch_bar" />
-
<!-- Importance toggle -->
<com.android.settingslib.RestrictedSwitchPreference
android:key="allow_sound"
@@ -38,10 +33,23 @@
android:summary="@string/allow_interruption_summary" />
<!-- Importance -->
- <com.android.settings.RestrictedListPreference
+ <com.android.settings.notification.ImportancePreference
android:key="importance"
- android:order="10"
- android:title="@string/notification_importance_title" />
+ android:order="4"
+ android:title="@string/notification_importance_title"
+ settings:allowDividerBelow="true"/>
+
+ <com.android.settingslib.RestrictedSwitchPreference
+ android:key="min_importance"
+ android:order="5"
+ settings:allowDividerAbove="true"
+ android:title="@string/notification_importance_min_title"/>
+
+ <com.android.settingslib.RestrictedSwitchPreference
+ android:key="high_importance"
+ android:order="6"
+ settings:allowDividerAbove="true"
+ android:title="@string/notification_importance_high_title"/>
<PreferenceCategory
android:key="channel_advanced"
@@ -87,7 +95,7 @@
settings:restrictedSwitchSummary="@string/enabled_by_admin"/>
<com.android.settingslib.RestrictedSwitchPreference
- android:key="bubble"
+ android:key="bubble_pref"
android:title="@string/notification_bubbles_title"
android:order="16"
settings:restrictedSwitchSummary="@string/enabled_by_admin" />
@@ -113,6 +121,7 @@
<com.android.settings.notification.NotificationFooterPreference
android:key="block_desc"
- android:order="110"/>
+ android:order="110"
+ settings:allowDividerAbove="false"/>
</PreferenceScreen>
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index 0f4c1d3..91fe656 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -20,7 +20,7 @@
android:key="display_settings_screen"
android:title="@string/display_settings"
settings:keywords="@string/keywords_display"
- settings:initialExpandedChildrenCount="4">
+ settings:initialExpandedChildrenCount="5">
<com.android.settingslib.RestrictedPreference
android:key="brightness"
@@ -57,6 +57,15 @@
android:targetClass="@string/config_wallpaper_picker_class" />
</com.android.settingslib.RestrictedPreference>
+ <ListPreference
+ android:key="dark_ui_mode"
+ android:title="@string/dark_ui_mode"
+ android:dialogTitle="@string/dark_ui_mode_title"
+ android:entries="@array/dark_ui_mode_entries"
+ android:entryValues="@array/dark_ui_mode_values"
+ settings:keywords="@string/keywords_dark_ui_mode"
+ settings:controller="com.android.settings.display.DarkUIPreferenceController" />
+
<!-- Cross-listed item, if you change this, also change it in power_usage_summary.xml -->
<com.android.settings.display.TimeoutListPreference
android:key="screen_timeout"
@@ -136,15 +145,6 @@
android:summary="@string/tap_to_wake_summary" />
<ListPreference
- android:key="dark_ui_mode"
- android:title="@string/dark_ui_mode"
- android:dialogTitle="@string/dark_ui_mode_title"
- android:entries="@array/dark_ui_mode_entries"
- android:entryValues="@array/dark_ui_mode_values"
- settings:keywords="@string/keywords_dark_ui_mode"
- settings:controller="com.android.settings.display.DarkUIPreferenceController" />
-
- <ListPreference
android:key="theme"
android:title="@string/device_theme"
android:summary="@string/summary_placeholder" />
diff --git a/res/xml/firmware_version.xml b/res/xml/firmware_version.xml
index 2914ef1..75336ce 100644
--- a/res/xml/firmware_version.xml
+++ b/res/xml/firmware_version.xml
@@ -68,6 +68,7 @@
android:title="@string/build_number"
android:summary="@string/summary_placeholder"
settings:enableCopying="true"
+ settings:allowDynamicSummaryInSlice="true"
settings:controller="com.android.settings.deviceinfo.firmwareversion.SimpleBuildNumberPreferenceController"/>
</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/gestures.xml b/res/xml/gestures.xml
index b1250ec..f705630 100644
--- a/res/xml/gestures.xml
+++ b/res/xml/gestures.xml
@@ -52,10 +52,10 @@
settings:controller="com.android.settings.gestures.DoubleTwistPreferenceController" />
<Preference
- android:key="gesture_swipe_up_input_summary"
- android:title="@string/swipe_up_to_switch_apps_title"
- android:fragment="com.android.settings.gestures.SwipeUpGestureSettings"
- settings:controller="com.android.settings.gestures.SwipeUpPreferenceController" />
+ android:key="gesture_system_navigation_input_summary"
+ android:title="@string/system_navigation_title"
+ android:fragment="com.android.settings.gestures.SystemNavigationGestureSettings"
+ settings:controller="com.android.settings.gestures.SystemNavigationLegacyPreferenceController" />
<Preference
android:key="gesture_tap_screen_input_summary"
diff --git a/res/xml/language_and_input.xml b/res/xml/language_and_input.xml
index b04bdf8..e3690a9 100644
--- a/res/xml/language_and_input.xml
+++ b/res/xml/language_and_input.xml
@@ -94,7 +94,8 @@
<com.android.settings.widget.WorkOnlyCategory
android:key="language_and_input_for_work_category"
- android:title="@string/language_and_input_for_work_category_title">
+ android:title="@string/language_and_input_for_work_category_title"
+ settings:searchable="false">
<Preference
android:key="virtual_keyboards_for_work_pref"
diff --git a/res/xml/mobile_network_list.xml b/res/xml/mobile_network_list.xml
index 5bffa2f..c2baf46 100644
--- a/res/xml/mobile_network_list.xml
+++ b/res/xml/mobile_network_list.xml
@@ -16,15 +16,20 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:settings="http://schemas.android.com/apk/res-auto"
android:key="mobile_network_list_screen"
android:title="@string/network_settings_title">
<Preference
android:key="add_more"
+ settings:isPreferenceVisible="false"
android:title="@string/mobile_network_list_add_more"
android:icon="@drawable/ic_menu_add"
android:order="100" >
- <intent android:action="android.telephony.euicc.action.PROVISION_EMBEDDED_SUBSCRIPTION" />
+ <intent android:action="android.telephony.euicc.action.PROVISION_EMBEDDED_SUBSCRIPTION">
+ <extra android:name="android.telephony.euicc.extra.FORCE_PROVISION"
+ android:value="true"/>
+ </intent>
</Preference>
</PreferenceScreen>
diff --git a/res/xml/my_device_info.xml b/res/xml/my_device_info.xml
index 83bf5c4..bc498d2 100644
--- a/res/xml/my_device_info.xml
+++ b/res/xml/my_device_info.xml
@@ -115,6 +115,7 @@
android:title="@string/status_imei"
settings:keywords="@string/keywords_imei_info"
android:summary="@string/summary_placeholder"
+ settings:allowDynamicSummaryInSlice="true"
settings:controller="com.android.settings.deviceinfo.imei.ImeiInfoPreferenceController"/>
<!-- Android version -->
diff --git a/res/xml/network_and_internet_v2.xml b/res/xml/network_and_internet_v2.xml
index fd29c41..44c3121 100644
--- a/res/xml/network_and_internet_v2.xml
+++ b/res/xml/network_and_internet_v2.xml
@@ -22,6 +22,7 @@
<PreferenceCategory
android:key="multi_network_header"
+ android:title="@string/summary_placeholder"
settings:allowDividerBelow="true"
android:order="-40"
settings:controller="com.android.settings.network.MultiNetworkHeaderController"/>
@@ -79,7 +80,7 @@
settings:useAdminDisabledSummary="true" />
<com.android.settings.datausage.DataSaverPreference
- android:key="restrict_background"
+ android:key="restrict_background_parent_entry"
android:title="@string/data_saver_title"
android:icon="@drawable/ic_settings_data_usage"
android:order="10"
diff --git a/res/xml/power_usage_summary.xml b/res/xml/power_usage_summary.xml
index 9be0b7d..94ead86 100644
--- a/res/xml/power_usage_summary.xml
+++ b/res/xml/power_usage_summary.xml
@@ -50,8 +50,8 @@
<SwitchPreference
android:key="battery_percentage"
- android:title="@string/battery_info"
- android:summary="@string/battery_info_description"
+ android:title="@string/battery_percentage"
+ android:summary="@string/battery_percentage_description"
settings:controller="com.android.settings.display.BatteryPercentagePreferenceController" />
diff --git a/res/xml/privacy_dashboard_settings.xml b/res/xml/privacy_dashboard_settings.xml
index 48034a84..d2d9e35 100644
--- a/res/xml/privacy_dashboard_settings.xml
+++ b/res/xml/privacy_dashboard_settings.xml
@@ -62,6 +62,13 @@
android:summary="@string/summary_placeholder"
settings:searchable="false"/>
+ <!-- Content Capture -->
+ <SwitchPreference
+ android:key="content_capture"
+ android:title="@string/content_capture"
+ android:summary="@string/content_capture_summary"
+ settings:controller="com.android.settings.privacy.EnableContentCapturePreferenceController"/>
+
<!-- Privacy Service -->
<PreferenceCategory
android:key="privacy_services"/>
diff --git a/res/xml/security_lockscreen_settings.xml b/res/xml/security_lockscreen_settings.xml
index 6833922..611d33f 100644
--- a/res/xml/security_lockscreen_settings.xml
+++ b/res/xml/security_lockscreen_settings.xml
@@ -60,12 +60,6 @@
settings:controller="com.android.settings.display.AmbientDisplayAlwaysOnPreferenceController" />
<Preference
- android:key="ambient_display_wake_screen"
- android:title="@string/ambient_display_wake_screen_title"
- android:fragment="com.android.settings.gestures.WakeScreenGestureSettings"
- settings:controller="com.android.settings.gestures.WakeScreenGesturePreferenceController" />
-
- <Preference
android:key="ambient_display_tap"
android:title="@string/ambient_display_tap_screen_title"
android:fragment="com.android.settings.gestures.TapScreenGestureSettings"
diff --git a/res/xml/single_choice_list_item_2.xml b/res/xml/single_choice_list_item_2.xml
new file mode 100644
index 0000000..ca80f44
--- /dev/null
+++ b/res/xml/single_choice_list_item_2.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingStart="@dimen/select_dialog_padding_start"
+ android:paddingEnd="?android:attr/dialogPreferredPadding"
+ android:orientation="horizontal"
+ android:descendantFocusability="blocksDescendants">
+
+ <RadioButton
+ android:id="@+id/radio"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:clickable="false" />
+
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:orientation="vertical"
+ android:layout_marginStart="@dimen/select_dialog_item_margin_start"
+ android:layout_gravity="center_vertical">
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textColor="?android:attr/textColorAlertDialogListItem"
+ android:ellipsize="marquee" />
+
+ <TextView
+ android:id="@+id/summary"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingBottom="@dimen/select_dialog_summary_padding_bottom"
+ android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+ android:textColor="?android:attr/textColorSecondary"
+ android:maxLines="10" />
+
+ </LinearLayout>
+</LinearLayout>
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index ee8613d..57bee1f 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -22,6 +22,15 @@
settings:keywords="@string/keywords_sounds"
settings:initialExpandedChildrenCount="9">
+ <!-- Remote volume -->
+ <com.android.settings.notification.RemoteVolumeSeekBarPreference
+ android:key="remote_volume"
+ android:icon="@drawable/ic_volume_remote"
+ android:title="@string/remote_media_volume_option_title"
+ android:order="-185"
+ settings:allowDynamicSummaryInSlice="true"
+ settings:controller="com.android.settings.notification.RemoteVolumePreferenceController"/>
+
<!-- Media volume -->
<com.android.settings.notification.VolumeSeekBarPreference
android:key="media_volume"
@@ -32,7 +41,7 @@
settings:controller="com.android.settings.notification.MediaVolumePreferenceController"/>
<!-- Media output switcher -->
- <ListPreference
+ <Preference
android:key="media_output"
android:title="@string/media_output_title"
android:dialogTitle="@string/media_output_title"
diff --git a/res/xml/special_access.xml b/res/xml/special_access.xml
index 05f4a81..9be01f9 100644
--- a/res/xml/special_access.xml
+++ b/res/xml/special_access.xml
@@ -53,7 +53,7 @@
android:key="zen_access"
android:title="@string/manage_zen_access_title"
android:fragment="com.android.settings.notification.ZenAccessSettings"
- settings:controller="com.android.settings.applications.specialaccess.ZenAccessController" />
+ settings:controller="com.android.settings.applications.specialaccess.zenaccess.ZenAccessController" />
<Preference
android:key="write_settings_apps"
diff --git a/res/xml/swipe_up_gesture_settings.xml b/res/xml/swipe_up_gesture_settings.xml
deleted file mode 100644
index cc1db16..0000000
--- a/res/xml/swipe_up_gesture_settings.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2018 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<PreferenceScreen
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:key="gesture_swipe_up_screen"
- android:title="@string/swipe_up_to_switch_apps_title">
-
- <com.android.settings.widget.VideoPreference
- android:key="gesture_swipe_up_video"
- app:animation="@raw/gesture_swipe_up"
- app:preview="@drawable/gesture_swipe_up" />
-
- <SwitchPreference
- android:key="gesture_swipe_up"
- android:title="@string/swipe_up_to_switch_apps_title"
- android:summary="@string/swipe_up_to_switch_apps_summary"
- app:keywords="@string/keywords_gesture"
- app:controller="com.android.settings.gestures.SwipeUpPreferenceController"
- app:allowDividerAbove="true" />
-
-</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/system_navigation_gesture_settings.xml b/res/xml/system_navigation_gesture_settings.xml
new file mode 100644
index 0000000..97aacb8
--- /dev/null
+++ b/res/xml/system_navigation_gesture_settings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:key="gesture_system_navigation_screen"
+ android:title="@string/system_navigation_title">
+
+ <com.android.settings.widget.VideoPreference
+ android:key="gesture_swipe_up_video"
+ app:animation="@raw/gesture_swipe_up"
+ app:preview="@drawable/gesture_swipe_up" />
+
+ <com.android.settings.widget.RadioButtonPreference
+ android:key="gesture_edge_to_edge"
+ android:title="@string/edge_to_edge_navigation_title"
+ android:summary="@string/edge_to_edge_navigation_summary"
+ app:keywords="@string/keywords_gesture"
+ app:controller="com.android.settings.gestures.SystemNavigationEdgeToEdgePreferenceController"
+ app:allowDividerAbove="true" />
+
+ <com.android.settings.widget.RadioButtonPreference
+ android:key="gesture_swipe_up"
+ android:title="@string/swipe_up_to_switch_apps_title"
+ android:summary="@string/swipe_up_to_switch_apps_summary"
+ app:keywords="@string/keywords_gesture"
+ app:controller="com.android.settings.gestures.SystemNavigationSwipeUpPreferenceController" />
+
+ <com.android.settings.widget.RadioButtonPreference
+ android:key="gesture_legacy"
+ android:title="@string/legacy_navigation_title"
+ android:summary="@string/legacy_navigation_summary"
+ app:keywords="@string/keywords_gesture"
+ app:controller="com.android.settings.gestures.SystemNavigationLegacyPreferenceController" />
+
+</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/top_level_settings.xml b/res/xml/top_level_settings.xml
index 64b620a..367f426 100644
--- a/res/xml/top_level_settings.xml
+++ b/res/xml/top_level_settings.xml
@@ -18,8 +18,7 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
- android:key="top_level_settings"
- android:title="@string/settings_label_launcher">
+ android:key="top_level_settings">
<Preference
android:key="top_level_network"
diff --git a/res/xml/wake_screen_gesture_settings.xml b/res/xml/wake_screen_gesture_settings.xml
deleted file mode 100644
index 7bcb2e9..0000000
--- a/res/xml/wake_screen_gesture_settings.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2018 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
-<PreferenceScreen
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:key="gesture_wake_screen_screen"
- android:title="@string/ambient_display_wake_screen_title">
-
- <com.android.settings.widget.VideoPreference
- android:key="gesture_wake_screen_video"
- app:animation="@raw/gesture_ambient_wake_screen"
- app:preview="@drawable/gesture_ambient_wake_screen" />
-
- <SwitchPreference
- android:key="gesture_wake_screen"
- android:title="@string/ambient_display_wake_screen_title"
- android:summary="@string/ambient_display_wake_screen_summary"
- app:keywords="@string/keywords_gesture"
- app:controller="com.android.settings.gestures.WakeScreenGesturePreferenceController"
- app:allowDividerAbove="true" />
-
-</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/wifi_calling_settings.xml b/res/xml/wifi_calling_settings.xml
index 0adb1e8..0276bdb 100644
--- a/res/xml/wifi_calling_settings.xml
+++ b/res/xml/wifi_calling_settings.xml
@@ -15,24 +15,27 @@
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:settings="http://schemas.android.com/apk/res-auto"
android:key="wifi_calling_settings"
android:title="@string/wifi_calling_settings_title">
- <ListPreference
+ <com.android.settings.wifi.calling.ListWithEntrySummaryPreference
android:key="wifi_calling_mode"
android:title="@string/wifi_calling_mode_title"
android:summary="@string/wifi_calling_mode_title"
android:entries="@array/wifi_calling_mode_choices"
android:entryValues="@array/wifi_calling_mode_values"
- android:dialogTitle="@string/wifi_calling_mode_dialog_title" />
+ android:dialogTitle="@string/wifi_calling_mode_dialog_title"
+ settings:entrySummaries="@array/wifi_calling_mode_summaries" />
- <ListPreference
+ <com.android.settings.wifi.calling.ListWithEntrySummaryPreference
android:key="wifi_calling_roaming_mode"
android:title="@string/wifi_calling_roaming_mode_title"
android:summary="@string/wifi_calling_roaming_mode_summary"
android:entries="@array/wifi_calling_mode_choices_v2"
android:entryValues="@array/wifi_calling_mode_values"
- android:dialogTitle="@string/wifi_calling_roaming_mode_dialog_title" />
+ android:dialogTitle="@string/wifi_calling_roaming_mode_dialog_title"
+ settings:entrySummaries="@array/wifi_calling_mode_summaries" />
<Preference
android:key="emergency_address_key"
diff --git a/res/xml/wifi_display_saved_access_points.xml b/res/xml/wifi_display_saved_access_points.xml
index 98b4dec..b3a8d55 100644
--- a/res/xml/wifi_display_saved_access_points.xml
+++ b/res/xml/wifi_display_saved_access_points.xml
@@ -21,8 +21,13 @@
android:title="@string/wifi_saved_access_points_label">
<PreferenceCategory
+ android:key="subscribed_access_points_category"
+ android:title="@string/wifi_subscribed_access_points_tab"
+ settings:controller="com.android.settings.wifi.savedaccesspoints.SubscribedAccessPointsPreferenceController"/>
+
+ <PreferenceCategory
android:key="saved_access_points_category"
- android:layout="@layout/preference_category_no_label"
+ android:title="@string/wifi_saved_access_points_tab"
settings:controller="com.android.settings.wifi.savedaccesspoints.SavedAccessPointsPreferenceController"/>
</PreferenceScreen>
diff --git a/res/xml/wifi_network_details_fragment.xml b/res/xml/wifi_network_details_fragment.xml
index 7c542d8..8979efc 100644
--- a/res/xml/wifi_network_details_fragment.xml
+++ b/res/xml/wifi_network_details_fragment.xml
@@ -26,6 +26,11 @@
android:order="-10000"
settings:allowDividerBelow="true"/>
+ <com.android.settings.datausage.DataUsageSummaryPreference
+ android:key="status_header"
+ android:selectable="false"
+ settings:isPreferenceVisible="false"/>
+
<!-- Buttons -->
<com.android.settingslib.widget.ActionButtonsPreference
android:key="buttons"
diff --git a/res/xml/wifi_tether_settings.xml b/res/xml/wifi_tether_settings.xml
index 6c5e3c4..81e60a2 100644
--- a/res/xml/wifi_tether_settings.xml
+++ b/res/xml/wifi_tether_settings.xml
@@ -23,7 +23,7 @@
settings:searchable="false"
settings:initialExpandedChildrenCount="3">
- <com.android.settings.widget.ValidatedEditTextPreference
+ <com.android.settings.wifi.tether.WifiTetherSsidPreference
android:key="wifi_tether_network_name"
android:title="@string/wifi_hotspot_name_title"
android:summary="@string/summary_placeholder"/>
diff --git a/src/com/android/settings/MasterClear.java b/src/com/android/settings/MasterClear.java
index 58bc58c..c78115d 100644
--- a/src/com/android/settings/MasterClear.java
+++ b/src/com/android/settings/MasterClear.java
@@ -326,8 +326,6 @@
if (showWipeEuicc()) {
if (showWipeEuiccCheckbox()) {
- TextView title = mContentView.findViewById(R.id.erase_esim_title);
- title.setText(R.string.erase_esim_storage);
mEsimStorageContainer.setVisibility(View.VISIBLE);
mEsimStorageContainer.setOnClickListener(new View.OnClickListener() {
@Override
diff --git a/src/com/android/settings/RadioInfo.java b/src/com/android/settings/RadioInfo.java
index 0af12fd..495d35c 100644
--- a/src/com/android/settings/RadioInfo.java
+++ b/src/com/android/settings/RadioInfo.java
@@ -457,6 +457,13 @@
imsWfcProvisionedSwitch = (Switch) findViewById(R.id.wfc_provisioned_switch);
eabProvisionedSwitch = (Switch) findViewById(R.id.eab_provisioned_switch);
+ if (!ImsManager.isImsSupportedOnDevice(phone.getContext())) {
+ imsVolteProvisionedSwitch.setVisibility(View.GONE);
+ imsVtProvisionedSwitch.setVisibility(View.GONE);
+ imsWfcProvisionedSwitch.setVisibility(View.GONE);
+ eabProvisionedSwitch.setVisibility(View.GONE);
+ }
+
cbrsDataSwitch = (Switch) findViewById(R.id.cbrs_data_switch);
cbrsDataSwitch.setVisibility(isCbrsSupported() ? View.VISIBLE : View.GONE);
@@ -631,8 +638,10 @@
R.string.radioInfo_menu_viewFDN).setOnMenuItemClickListener(mViewFDNCallback);
menu.add(1, MENU_ITEM_VIEW_SDN, 0,
R.string.radioInfo_menu_viewSDN).setOnMenuItemClickListener(mViewSDNCallback);
- menu.add(1, MENU_ITEM_GET_IMS_STATUS,
- 0, R.string.radioInfo_menu_getIMS).setOnMenuItemClickListener(mGetImsStatus);
+ if (ImsManager.isImsSupportedOnDevice(phone.getContext())) {
+ menu.add(1, MENU_ITEM_GET_IMS_STATUS,
+ 0, R.string.radioInfo_menu_getIMS).setOnMenuItemClickListener(mGetImsStatus);
+ }
menu.add(1, MENU_ITEM_TOGGLE_DATA,
0, R.string.radio_info_data_connection_disable).setOnMenuItemClickListener(mToggleData);
return true;
@@ -1384,6 +1393,9 @@
}
private void updateImsProvisionedState() {
+ if (!ImsManager.isImsSupportedOnDevice(phone.getContext())) {
+ return;
+ }
log("updateImsProvisionedState isImsVolteProvisioned()=" + isImsVolteProvisioned());
//delightful hack to prevent on-checked-changed calls from
//actually forcing the ims provisioning to its transient/current value.
diff --git a/src/com/android/settings/ResetNetwork.java b/src/com/android/settings/ResetNetwork.java
index bd45f9b..5d7dd99 100644
--- a/src/com/android/settings/ResetNetwork.java
+++ b/src/com/android/settings/ResetNetwork.java
@@ -213,8 +213,6 @@
mInitiateButton.setOnClickListener(mInitiateListener);
if (showEuiccSettings(getContext())) {
mEsimContainer.setVisibility(View.VISIBLE);
- TextView title = mContentView.findViewById(R.id.erase_esim_title);
- title.setText(R.string.reset_esim_title);
mEsimContainer.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
diff --git a/src/com/android/settings/ResetNetworkConfirm.java b/src/com/android/settings/ResetNetworkConfirm.java
index 7c21b55..72e1919 100644
--- a/src/com/android/settings/ResetNetworkConfirm.java
+++ b/src/com/android/settings/ResetNetworkConfirm.java
@@ -157,20 +157,9 @@
SubscriptionManager.getPhoneId(mSubId)).factoryReset();
restoreDefaultApn(context);
esimFactoryReset(context, context.getPackageName());
- // There has been issues when Sms raw table somehow stores orphan
- // fragments. They lead to garbled message when new fragments come
- // in and combied with those stale ones. In case this happens again,
- // user can reset all network settings which will clean up this table.
- cleanUpSmsRawTable(context);
}
};
- private void cleanUpSmsRawTable(Context context) {
- ContentResolver resolver = context.getContentResolver();
- Uri uri = Uri.withAppendedPath(Telephony.Sms.CONTENT_URI, "raw/permanentDelete");
- resolver.delete(uri, null, null);
- }
-
@VisibleForTesting
void esimFactoryReset(Context context, String packageName) {
if (mEraseEsim) {
diff --git a/src/com/android/settings/RestrictedListPreference.java b/src/com/android/settings/RestrictedListPreference.java
index 2e9ec14..bd3cd17 100644
--- a/src/com/android/settings/RestrictedListPreference.java
+++ b/src/com/android/settings/RestrictedListPreference.java
@@ -157,8 +157,8 @@
return null;
}
- protected ListAdapter createListAdapter() {
- return new RestrictedArrayAdapter(getContext(), getEntries(),
+ protected ListAdapter createListAdapter(Context context) {
+ return new RestrictedArrayAdapter(context, getEntries(),
getSelectedValuePos());
}
@@ -172,10 +172,9 @@
@Override
protected void onPrepareDialogBuilder(Builder builder,
DialogInterface.OnClickListener listener) {
- builder.setAdapter(createListAdapter(), listener);
+ builder.setAdapter(createListAdapter(builder.getContext()), listener);
}
-
public class RestrictedArrayAdapter extends ArrayAdapter<CharSequence> {
private final int mSelectedIndex;
public RestrictedArrayAdapter(Context context, CharSequence[] objects, int selectedIndex) {
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index fac4253..97ff613 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -159,6 +159,7 @@
public static class WebViewAppPickerActivity extends SettingsActivity { /* empty */ }
public static class AdvancedConnectedDeviceActivity extends SettingsActivity { /* empty */ }
public static class BluetoothDeviceDetailActivity extends SettingsActivity { /* empty */ }
+ public static class WifiCallingDisclaimerActivity extends SettingsActivity { /* empty */ }
// Top level categories for new IA
public static class NetworkDashboardActivity extends SettingsActivity {}
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 541ca3a..001e65b 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -50,6 +50,8 @@
import com.android.internal.util.ArrayUtils;
import com.android.settings.Settings.WifiSettingsActivity;
import com.android.settings.applications.manageapplications.ManageApplications;
+import com.android.settings.backup.BackupSettingsHelper;
+import com.android.settings.backup.UserBackupSettingsActivity;
import com.android.settings.core.OnActivityResultListener;
import com.android.settings.core.SettingsBaseActivity;
import com.android.settings.core.SubSettingLauncher;
@@ -630,6 +632,12 @@
showDev, isAdmin)
|| somethingChanged;
+ // Enable/disable backup settings depending on whether backup is activated for the user.
+ boolean isBackupActive = new BackupSettingsHelper(this).isBackupServiceActive();
+ somethingChanged = setTileEnabled(changedList, new ComponentName(packageName,
+ UserBackupSettingsActivity.class.getName()), isBackupActive, isAdmin)
+ || somethingChanged;
+
somethingChanged = setTileEnabled(changedList, new ComponentName(packageName,
Settings.WifiDisplaySettingsActivity.class.getName()),
WifiDisplaySettings.isAvailable(this), isAdmin)
diff --git a/src/com/android/settings/accessibility/BalanceSeekBar.java b/src/com/android/settings/accessibility/BalanceSeekBar.java
index e18a593..b108e18 100644
--- a/src/com/android/settings/accessibility/BalanceSeekBar.java
+++ b/src/com/android/settings/accessibility/BalanceSeekBar.java
@@ -28,6 +28,8 @@
import android.util.AttributeSet;
import android.widget.SeekBar;
+import androidx.annotation.VisibleForTesting;
+
import com.android.settings.R;
/**
@@ -37,14 +39,13 @@
* Updates Settings.System for balance on progress changed.
*/
public class BalanceSeekBar extends SeekBar {
- private static final String TAG = "BalanceSeekBar";
private final Context mContext;
private final Object mListenerLock = new Object();
private OnSeekBarChangeListener mOnSeekBarChangeListener;
private final OnSeekBarChangeListener mProxySeekBarListener = new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
- synchronized(mListenerLock) {
+ synchronized (mListenerLock) {
if (mOnSeekBarChangeListener != null) {
mOnSeekBarChangeListener.onStopTrackingTouch(seekBar);
}
@@ -53,7 +54,7 @@
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
- synchronized(mListenerLock) {
+ synchronized (mListenerLock) {
if (mOnSeekBarChangeListener != null) {
mOnSeekBarChangeListener.onStartTrackingTouch(seekBar);
}
@@ -79,7 +80,7 @@
// after adjusting the seekbar, notify downstream listener.
// note that progress may have been adjusted in the code above to mCenter.
- synchronized(mListenerLock) {
+ synchronized (mListenerLock) {
if (mOnSeekBarChangeListener != null) {
mOnSeekBarChangeListener.onProgressChanged(seekBar, progress, fromUser);
}
@@ -88,7 +89,8 @@
};
// Percentage of max to be used as a snap to threshold
- private static final float SNAP_TO_PERCENTAGE = 0.03f;
+ @VisibleForTesting
+ static final float SNAP_TO_PERCENTAGE = 0.03f;
private final Paint mCenterMarkerPaint;
private final Rect mCenterMarkerRect;
// changed in setMax()
@@ -122,7 +124,7 @@
@Override
public void setOnSeekBarChangeListener(OnSeekBarChangeListener listener) {
- synchronized(mListenerLock) {
+ synchronized (mListenerLock) {
mOnSeekBarChangeListener = listener;
}
}
@@ -148,5 +150,10 @@
canvas.restore();
super.onDraw(canvas);
}
+
+ @VisibleForTesting
+ OnSeekBarChangeListener getProxySeekBarListener() {
+ return mProxySeekBarListener;
+ }
}
diff --git a/src/com/android/settings/accessibility/BalanceSeekBarPreference.java b/src/com/android/settings/accessibility/BalanceSeekBarPreference.java
index a40282c..b03c8ab 100644
--- a/src/com/android/settings/accessibility/BalanceSeekBarPreference.java
+++ b/src/com/android/settings/accessibility/BalanceSeekBarPreference.java
@@ -34,7 +34,9 @@
/** A slider preference that directly controls audio balance **/
public class BalanceSeekBarPreference extends SeekBarPreference {
- private static final String TAG = "BalanceSeekBarPreference";
+ private static final int BALANCE_CENTER_VALUE = 100;
+ private static final int BALANCE_MAX_VALUE = 200;
+
private final Context mContext;
private BalanceSeekBar mSeekBar;
private ImageView mIconView;
@@ -62,9 +64,9 @@
final float balance = Settings.System.getFloatForUser(
mContext.getContentResolver(), Settings.System.MASTER_BALANCE,
0.f /* default */, UserHandle.USER_CURRENT);
- // Rescale balance to range 0-200 centered at 100.
- mSeekBar.setMax(200);
- mSeekBar.setProgress((int)(balance * 100.f) + 100);
+ // Rescale balance to range 0-BALANCE_MAX_VALUE centered at BALANCE_MAX_VALUE / 2.
+ mSeekBar.setMax(BALANCE_MAX_VALUE);
+ mSeekBar.setProgress((int) (balance * 100.f) + BALANCE_CENTER_VALUE);
mSeekBar.setEnabled(isEnabled());
}
}
diff --git a/src/com/android/settings/accounts/AvatarViewMixin.java b/src/com/android/settings/accounts/AvatarViewMixin.java
index 3ce8c0a..9e762c7 100644
--- a/src/com/android/settings/accounts/AvatarViewMixin.java
+++ b/src/com/android/settings/accounts/AvatarViewMixin.java
@@ -17,6 +17,7 @@
package com.android.settings.accounts;
import android.accounts.Account;
+import android.app.ActivityManager;
import android.app.settings.SettingsEnums;
import android.content.ContentResolver;
import android.content.Context;
@@ -64,11 +65,13 @@
private final Context mContext;
private final ImageView mAvatarView;
private final MutableLiveData<Bitmap> mAvatarImage;
+ private final ActivityManager mActivityManager;
private String mAccountName;
public AvatarViewMixin(SettingsHomepageActivity activity, ImageView avatarView) {
mContext = activity.getApplicationContext();
+ mActivityManager = mContext.getSystemService(ActivityManager.class);
mAvatarView = avatarView;
mAvatarView.setOnClickListener(v -> {
Intent intent;
@@ -114,7 +117,11 @@
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onStart() {
if (!mContext.getResources().getBoolean(R.bool.config_show_avatar_in_homepage)) {
- Log.d(TAG, "Feature disabled. Skipping");
+ Log.d(TAG, "Feature disabled by config. Skipping");
+ return;
+ }
+ if (mActivityManager.isLowRamDevice()) {
+ Log.d(TAG, "Feature disabled on low ram device. Skipping");
return;
}
if (hasAccount()) {
diff --git a/src/com/android/settings/applications/RecentAppsPreferenceController.java b/src/com/android/settings/applications/RecentAppsPreferenceController.java
index c0d18c6..be86dd5 100644
--- a/src/com/android/settings/applications/RecentAppsPreferenceController.java
+++ b/src/com/android/settings/applications/RecentAppsPreferenceController.java
@@ -25,6 +25,7 @@
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
+import android.icu.text.RelativeDateTimeFormatter;
import android.os.PowerManager;
import android.os.UserHandle;
import android.util.ArrayMap;
@@ -224,7 +225,8 @@
.setIcon(mIconDrawableFactory.getBadgedIcon(appEntry.info))
.setTitle(appEntry.label)
.setSummary(StringUtil.formatRelativeTime(mContext,
- System.currentTimeMillis() - stat.getLastTimeUsed(), false))
+ System.currentTimeMillis() - stat.getLastTimeUsed(), false,
+ RelativeDateTimeFormatter.Style.SHORT))
.setOnClickListener(v ->
AppInfoBase.startAppInfoFragment(AppInfoDashboardFragment.class,
R.string.application_info_label, pkgName, appEntry.info.uid,
diff --git a/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java b/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java
index ca8dda3..0663e2a 100644
--- a/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java
+++ b/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java
@@ -14,12 +14,12 @@
package com.android.settings.applications.appinfo;
+import android.app.role.RoleControllerManager;
import android.app.role.RoleManager;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
import android.os.UserManager;
-import android.permission.PermissionControllerManager;
import android.text.TextUtils;
import androidx.preference.Preference;
@@ -58,14 +58,14 @@
mRoleManager = context.getSystemService(RoleManager.class);
- final PermissionControllerManager permissionControllerManager =
- mContext.getSystemService(PermissionControllerManager.class);
+ final RoleControllerManager roleControllerManager =
+ mContext.getSystemService(RoleControllerManager.class);
final Executor executor = mContext.getMainExecutor();
- permissionControllerManager.isRoleVisible(mRoleName, executor, visible -> {
+ roleControllerManager.isRoleVisible(mRoleName, executor, visible -> {
mRoleVisible = visible;
refreshAvailability();
});
- permissionControllerManager.isApplicationQualifiedForRole(mRoleName, mPackageName, executor,
+ roleControllerManager.isApplicationQualifiedForRole(mRoleName, mPackageName, executor,
qualified -> {
mAppQualified = qualified;
refreshAvailability();
diff --git a/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java b/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java
index d0b26a5..0f90c69 100644
--- a/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java
+++ b/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java
@@ -15,22 +15,13 @@
*/
package com.android.settings.applications.appinfo;
-import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
-
-import android.app.ActivityManager;
import android.app.AppOpsManager;
import android.app.settings.SettingsEnums;
import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
import android.os.Bundle;
-import android.provider.Settings;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.view.Window;
-import android.view.WindowManager;
import androidx.annotation.VisibleForTesting;
import androidx.appcompat.app.AlertDialog;
@@ -55,16 +46,11 @@
private static final String KEY_APP_OPS_SETTINGS_SWITCH = "app_ops_settings_switch";
private static final String LOG_TAG = "DrawOverlayDetails";
- private static final int[] APP_OPS_OP_CODE = {
- AppOpsManager.OP_SYSTEM_ALERT_WINDOW
- };
-
// Use a bridge to get the overlay details but don't initialize it to connect with all state.
// TODO: Break out this functionality into its own class.
private AppStateOverlayBridge mOverlayBridge;
private AppOpsManager mAppOpsManager;
private SwitchPreference mSwitchPref;
- private Intent mSettingsIntent;
private OverlayState mOverlayState;
@Override
@@ -82,18 +68,15 @@
// find preferences
addPreferencesFromResource(R.xml.draw_overlay_permissions_details);
- mSwitchPref = (SwitchPreference) findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
+ mSwitchPref = findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
// install event listeners
mSwitchPref.setOnPreferenceChangeListener(this);
-
- mSettingsIntent = new Intent(Intent.ACTION_MAIN)
- .setAction(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
}
// Override here so we don't have an empty screen
@Override
- public View onCreateView (LayoutInflater inflater,
+ public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
// if we don't have a package info, show a page saying this is unsupported
@@ -104,21 +87,6 @@
}
@Override
- public void onResume() {
- super.onResume();
- getActivity().getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
- }
-
- @Override
- public void onPause() {
- super.onPause();
- Window window = getActivity().getWindow();
- WindowManager.LayoutParams attrs = window.getAttributes();
- attrs.privateFlags &= ~SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
- window.setAttributes(attrs);
- }
-
- @Override
public void onDestroy() {
super.onDestroy();
mOverlayBridge.release();
@@ -164,7 +132,9 @@
@Override
protected boolean refreshUi() {
- if (mPackageInfo == null) return true;
+ if (mPackageInfo == null) {
+ return true;
+ }
mOverlayState = mOverlayBridge.getOverlayInfo(mPackageName,
mPackageInfo.applicationInfo.uid);
@@ -174,9 +144,6 @@
// you cannot ask a user to grant you a permission you did not have!
mSwitchPref.setEnabled(mOverlayState.permissionDeclared && mOverlayState.controlEnabled);
- ResolveInfo resolveInfo = mPm.resolveActivityAsUser(mSettingsIntent,
- PackageManager.GET_META_DATA, mUserId);
-
return true;
}
diff --git a/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java b/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java
index f088967..32cc9a8 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultEmergencyPicker.java
@@ -17,9 +17,7 @@
package com.android.settings.applications.defaultapps;
import android.app.role.RoleManager;
-import android.app.role.RoleManagerCallback;
import android.app.settings.SettingsEnums;
-import android.content.ContentResolver;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
@@ -27,7 +25,6 @@
import android.content.pm.ResolveInfo;
import android.os.AsyncTask;
import android.os.Process;
-import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
@@ -100,18 +97,13 @@
final String previousValue = getDefaultKey();
if (!TextUtils.isEmpty(key) && !TextUtils.equals(key, previousValue)) {
- getContext().getSystemService(RoleManager.class)
- .addRoleHolderAsUser(
- RoleManager.ROLE_EMERGENCY, key, 0, Process.myUserHandle(),
- AsyncTask.THREAD_POOL_EXECUTOR, new RoleManagerCallback() {
- @Override
- public void onSuccess() {}
-
- @Override
- public void onFailure() {
- Log.e(TAG, "Failed to set emergency default app.");
- }
- });
+ getContext().getSystemService(RoleManager.class).addRoleHolderAsUser(
+ RoleManager.ROLE_EMERGENCY, key, 0, Process.myUserHandle(),
+ AsyncTask.THREAD_POOL_EXECUTOR, successful -> {
+ if (!successful) {
+ Log.e(TAG, "Failed to set emergency default app.");
+ }
+ });
return true;
}
return false;
diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/OWNERS b/src/com/android/settings/applications/specialaccess/zenaccess/OWNERS
new file mode 100644
index 0000000..9b5f41e
--- /dev/null
+++ b/src/com/android/settings/applications/specialaccess/zenaccess/OWNERS
@@ -0,0 +1,2 @@
+beverlyt@google.com
+juliacr@google.com
\ No newline at end of file
diff --git a/src/com/android/settings/applications/specialaccess/ZenAccessController.java b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
similarity index 94%
rename from src/com/android/settings/applications/specialaccess/ZenAccessController.java
rename to src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
index 5ae2bd3..88d444d 100644
--- a/src/com/android/settings/applications/specialaccess/ZenAccessController.java
+++ b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.applications.specialaccess;
+package com.android.settings.applications.specialaccess.zenaccess;
import android.app.ActivityManager;
import android.content.Context;
diff --git a/src/com/android/settings/backup/BackupSettingsHelper.java b/src/com/android/settings/backup/BackupSettingsHelper.java
index fa77154..b836e55 100644
--- a/src/com/android/settings/backup/BackupSettingsHelper.java
+++ b/src/com/android/settings/backup/BackupSettingsHelper.java
@@ -209,7 +209,7 @@
}
/** Checks if backup service is enabled for this user. */
- private boolean isBackupServiceActive() {
+ public boolean isBackupServiceActive() {
boolean backupOkay;
try {
backupOkay = mBackupManager.isBackupServiceActive(UserHandle.myUserId());
diff --git a/src/com/android/settings/biometrics/BiometricEnrollActivity.java b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
index b650c6c..1b41240 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollActivity.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
@@ -16,8 +16,6 @@
package com.android.settings.biometrics;
-import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
-
import android.app.settings.SettingsEnums;
import android.content.Intent;
import android.content.pm.PackageManager;
@@ -25,8 +23,11 @@
import com.android.settings.biometrics.face.FaceEnrollIntroduction;
import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroduction;
+import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollIntroduction;
import com.android.settings.core.InstrumentedActivity;
+import com.google.android.setupcompat.util.WizardManagerHelper;
+
/**
* Trampoline activity launched by the {@code android.settings.BIOMETRIC_ENROLL} action which
* shows the user an appropriate enrollment flow depending on the device's biometric hardware.
@@ -40,20 +41,38 @@
super.onCreate(savedInstanceState);
final PackageManager pm = getApplicationContext().getPackageManager();
- final Intent intent = new Intent();
+ Intent intent = null;
// This logic may have to be modified on devices with multiple biometrics.
if (pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) {
- intent.setClassName(SETTINGS_PACKAGE_NAME,
- FingerprintEnrollIntroduction.class.getName());
+ intent = getFingerprintEnrollIntent();
} else if (pm.hasSystemFeature(PackageManager.FEATURE_FACE)) {
- intent.setClassName(SETTINGS_PACKAGE_NAME, FaceEnrollIntroduction.class.getName());
+ intent = getFaceEnrollIntent();
}
- startActivity(intent);
+ if (intent != null) {
+ intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
+ startActivity(intent);
+ }
finish();
}
+ private Intent getFingerprintEnrollIntent() {
+ if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
+ Intent intent = new Intent(this, SetupFingerprintEnrollIntroduction.class);
+ WizardManagerHelper.copyWizardManagerExtras(getIntent(), intent);
+ return intent;
+ } else {
+ return new Intent(this, FingerprintEnrollIntroduction.class);
+ }
+ }
+
+ private Intent getFaceEnrollIntent() {
+ Intent intent = new Intent(this, FaceEnrollIntroduction.class);
+ WizardManagerHelper.copyWizardManagerExtras(getIntent(), intent);
+ return intent;
+ }
+
@Override
public int getMetricsCategory() {
return SettingsEnums.BIOMETRIC_ENROLL_ACTIVITY;
diff --git a/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java b/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
index e8cf809..097ffe2 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
@@ -21,14 +21,19 @@
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
+import android.os.storage.StorageManager;
import android.view.View;
import android.widget.TextView;
+import com.android.internal.widget.LockPatternUtils;
import com.android.settings.R;
import com.android.settings.password.ChooseLockGeneric;
+import com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment;
import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.password.SetupChooseLockGeneric;
import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupcompat.util.WizardManagerHelper;
import com.google.android.setupdesign.span.LinkSpan;
/**
@@ -199,28 +204,39 @@
}
protected Intent getChooseLockIntent() {
- return new Intent(this, ChooseLockGeneric.class);
+ if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
+ // Default to PIN lock in setup wizard
+ Intent intent = new Intent(this, SetupChooseLockGeneric.class);
+ if (StorageManager.isFileEncryptedNativeOrEmulated()) {
+ intent.putExtra(
+ LockPatternUtils.PASSWORD_TYPE_KEY,
+ DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
+ intent.putExtra(ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, true);
+ }
+ WizardManagerHelper.copyWizardManagerExtras(getIntent(), intent);
+ return intent;
+ } else {
+ return new Intent(this, ChooseLockGeneric.class);
+ }
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- final boolean isResultFinished = resultCode == RESULT_FINISHED;
- final int result = isResultFinished ? RESULT_OK : RESULT_SKIP;
if (requestCode == BIOMETRIC_FIND_SENSOR_REQUEST) {
- if (isResultFinished || resultCode == RESULT_SKIP) {
- setResult(result, data);
+ if (resultCode == RESULT_FINISHED || resultCode == RESULT_SKIP) {
+ setResult(resultCode, data);
finish();
return;
}
} else if (requestCode == CHOOSE_LOCK_GENERIC_REQUEST) {
- if (isResultFinished) {
+ if (resultCode == RESULT_FINISHED) {
updatePasswordQuality();
mToken = data.getByteArrayExtra(
ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
overridePendingTransition(R.anim.sud_slide_next_in, R.anim.sud_slide_next_out);
return;
} else {
- setResult(result, data);
+ setResult(resultCode, data);
finish();
}
} else if (requestCode == CONFIRM_REQUEST) {
@@ -228,7 +244,7 @@
mToken = data.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
overridePendingTransition(R.anim.sud_slide_next_in, R.anim.sud_slide_next_out);
} else {
- setResult(result, data);
+ setResult(resultCode, data);
finish();
}
} else if (requestCode == LEARN_MORE_REQUEST) {
@@ -241,6 +257,11 @@
finish();
}
+ protected void onSkipButtonClick(View view) {
+ setResult(RESULT_SKIP);
+ finish();
+ }
+
@Override
protected void initViews() {
super.initViews();
diff --git a/src/com/android/settings/biometrics/face/FaceEnrollAccessibilityToggle.java b/src/com/android/settings/biometrics/face/FaceEnrollAccessibilityToggle.java
index 49f4f7f..2db654b 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollAccessibilityToggle.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollAccessibilityToggle.java
@@ -58,9 +58,14 @@
a.recycle();
}
mSwitch = findViewById(R.id.toggle);
+ mSwitch.setChecked(false);
}
public boolean isChecked() {
return mSwitch.isChecked();
}
+
+ public void setChecked(boolean checked) {
+ mSwitch.setChecked(checked);
+ }
}
diff --git a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
index e45817d..c7966f2 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
@@ -36,6 +36,7 @@
import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupcompat.util.WizardManagerHelper;
import com.google.android.setupdesign.span.LinkSpan;
public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
@@ -52,6 +53,7 @@
final LinearLayout accessibilityLayout = findViewById(R.id.accessibility_layout);
final Button accessibilityButton = findViewById(R.id.accessibility_button);
accessibilityButton.setOnClickListener(view -> {
+ mSwitchDiversity.setChecked(true);
accessibilityButton.setVisibility(View.INVISIBLE);
accessibilityLayout.setVisibility(View.VISIBLE);
});
@@ -59,14 +61,25 @@
mSwitchDiversity = findViewById(R.id.toggle_diversity);
mFooterBarMixin = getLayout().getMixin(FooterBarMixin.class);
- mFooterBarMixin.setSecondaryButton(
- new FooterButton.Builder(this)
- .setText(R.string.security_settings_face_enroll_introduction_cancel)
- .setListener(this::onCancelButtonClick)
- .setButtonType(FooterButton.ButtonType.SKIP)
- .setTheme(R.style.SudGlifButton_Secondary)
- .build()
- );
+ if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
+ mFooterBarMixin.setSecondaryButton(
+ new FooterButton.Builder(this)
+ .setText(R.string.skip_label)
+ .setListener(this::onSkipButtonClick)
+ .setButtonType(FooterButton.ButtonType.SKIP)
+ .setTheme(R.style.SudGlifButton_Secondary)
+ .build()
+ );
+ } else {
+ mFooterBarMixin.setSecondaryButton(
+ new FooterButton.Builder(this)
+ .setText(R.string.security_settings_face_enroll_introduction_cancel)
+ .setListener(this::onCancelButtonClick)
+ .setButtonType(FooterButton.ButtonType.CANCEL)
+ .setTheme(R.style.SudGlifButton_Secondary)
+ .build()
+ );
+ }
mFooterBarMixin.setPrimaryButton(
new FooterButton.Builder(this)
@@ -165,7 +178,8 @@
} else {
intent.setClass(this, FaceEnrollEnrolling.class);
}
- intent.putExtra(EXTRA_KEY_REQUIRE_DIVERSITY, mSwitchDiversity.isChecked());
+ intent.putExtra(EXTRA_KEY_REQUIRE_DIVERSITY, !mSwitchDiversity.isChecked());
+ WizardManagerHelper.copyWizardManagerExtras(getIntent(), intent);
return intent;
}
diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java
index 490580d..ea5a303 100644
--- a/src/com/android/settings/biometrics/face/FaceSettings.java
+++ b/src/com/android/settings/biometrics/face/FaceSettings.java
@@ -156,6 +156,9 @@
@Override
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
+ if (!isAvailable(context)) {
+ return null;
+ }
final List<AbstractPreferenceController> controllers =
buildPreferenceControllers(context, getSettingsLifecycle());
// There's no great way of doing this right now :/
@@ -197,7 +200,11 @@
@Override
public List<AbstractPreferenceController> createPreferenceControllers(
Context context) {
- return buildPreferenceControllers(context, null /* lifecycle */);
+ if (isAvailable(context)) {
+ return buildPreferenceControllers(context, null /* lifecycle */);
+ } else {
+ return null;
+ }
}
@Override
diff --git a/src/com/android/settings/core/FeatureFlags.java b/src/com/android/settings/core/FeatureFlags.java
index f2ffe22..fbb2ae3 100644
--- a/src/com/android/settings/core/FeatureFlags.java
+++ b/src/com/android/settings/core/FeatureFlags.java
@@ -23,8 +23,10 @@
public static final String AUDIO_SWITCHER_SETTINGS = "settings_audio_switcher";
public static final String HEARING_AID_SETTINGS = "settings_bluetooth_hearing_aid";
public static final String MOBILE_NETWORK_V2 = "settings_mobile_network_v2";
- public static final String WIFI_MAC_RANDOMIZATION = "settings_wifi_mac_randomization";
public static final String NETWORK_INTERNET_V2 = "settings_network_and_internet_v2";
public static final String SLICE_INJECTION = "settings_slice_injection";
public static final String MAINLINE_MODULE = "settings_mainline_module";
+ public static final String WIFI_DETAILS_SAVED_SCREEN = "settings_wifi_details_saved_screen";
+ public static final String WIFI_DETAILS_DATAUSAGE_HEADER =
+ "settings_wifi_details_datausage_header";
}
diff --git a/src/com/android/settings/core/HideNonSystemOverlayMixin.java b/src/com/android/settings/core/HideNonSystemOverlayMixin.java
new file mode 100644
index 0000000..59cef3b
--- /dev/null
+++ b/src/com/android/settings/core/HideNonSystemOverlayMixin.java
@@ -0,0 +1,64 @@
+/*
+ * 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.core;
+
+import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+
+import static androidx.lifecycle.Lifecycle.Event.ON_START;
+import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
+
+import android.app.Activity;
+import android.view.Window;
+import android.view.WindowManager;
+
+import androidx.lifecycle.LifecycleObserver;
+import androidx.lifecycle.OnLifecycleEvent;
+
+
+/**
+ * A mixin that adds window flag to prevent non-system overlays showing on top of Settings
+ * activities.
+ */
+public class HideNonSystemOverlayMixin implements LifecycleObserver {
+
+ private final Activity mActivity;
+
+ public HideNonSystemOverlayMixin(Activity activity) {
+ mActivity = activity;
+ }
+
+ @OnLifecycleEvent(ON_START)
+ public void onStart() {
+ if (mActivity == null) {
+ return;
+ }
+ mActivity.getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+ android.util.EventLog.writeEvent(0x534e4554, "120484087", -1, "");
+ }
+
+
+ @OnLifecycleEvent(ON_STOP)
+ public void onStop() {
+ if (mActivity == null) {
+ return;
+ }
+ final Window window = mActivity.getWindow();
+ final WindowManager.LayoutParams attrs = window.getAttributes();
+ attrs.privateFlags &= ~SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+ window.setAttributes(attrs);
+ }
+}
diff --git a/src/com/android/settings/core/SettingsBaseActivity.java b/src/com/android/settings/core/SettingsBaseActivity.java
index 294e754..cd13654 100644
--- a/src/com/android/settings/core/SettingsBaseActivity.java
+++ b/src/com/android/settings/core/SettingsBaseActivity.java
@@ -32,7 +32,6 @@
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
-import android.view.WindowManager.LayoutParams;
import android.widget.Toolbar;
import androidx.fragment.app.FragmentActivity;
@@ -59,8 +58,8 @@
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
-
final long startTime = System.currentTimeMillis();
+ getLifecycle().addObserver(new HideNonSystemOverlayMixin(this));
final TypedArray theme = getTheme().obtainStyledAttributes(android.R.styleable.Theme);
if (!theme.getBoolean(android.R.styleable.Theme_windowNoTitle, false)) {
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index 7abd98d..ba64a80 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -82,7 +82,7 @@
import com.android.settings.gestures.DoubleTwistGestureSettings;
import com.android.settings.gestures.PickupGestureSettings;
import com.android.settings.gestures.SwipeToNotificationSettings;
-import com.android.settings.gestures.SwipeUpGestureSettings;
+import com.android.settings.gestures.SystemNavigationGestureSettings;
import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment;
import com.android.settings.inputmethod.KeyboardLayoutPickerFragment;
import com.android.settings.inputmethod.PhysicalKeyboardFragment;
@@ -135,6 +135,7 @@
import com.android.settings.wifi.WifiAPITest;
import com.android.settings.wifi.WifiInfo;
import com.android.settings.wifi.WifiSettings;
+import com.android.settings.wifi.calling.WifiCallingDisclaimerFragment;
import com.android.settings.wifi.calling.WifiCallingSettings;
import com.android.settings.wifi.p2p.WifiP2pSettings;
import com.android.settings.wifi.savedaccesspoints.SavedAccessPointsWifiSettings;
@@ -201,7 +202,7 @@
DoubleTapScreenSettings.class.getName(),
PickupGestureSettings.class.getName(),
DoubleTwistGestureSettings.class.getName(),
- SwipeUpGestureSettings.class.getName(),
+ SystemNavigationGestureSettings.class.getName(),
CryptKeeperSettings.class.getName(),
DataUsageSummary.class.getName(),
DreamSettings.class.getName(),
@@ -260,6 +261,7 @@
ConnectedDeviceDashboardFragment.class.getName(),
UsbDetailsFragment.class.getName(),
AppAndNotificationDashboardFragment.class.getName(),
+ WifiCallingDisclaimerFragment.class.getName(),
AccountDashboardFragment.class.getName(),
EnterprisePrivacySettings.class.getName(),
WebViewAppPicker.class.getName(),
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreference.java b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
index 481538d..93df2f1 100644
--- a/src/com/android/settings/datausage/DataUsageSummaryPreference.java
+++ b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
@@ -69,6 +69,8 @@
private boolean mDefaultTextColorSet;
private int mDefaultTextColor;
private int mNumPlans;
+ /** The specified un-initialized value for cycle time */
+ private final long CYCLE_TIME_UNINITIAL_VALUE = 0;
/** The ending time of the billing cycle in milliseconds since epoch. */
private long mCycleEndTimeMs;
/** The time of the last update in standard milliseconds since the epoch */
@@ -94,6 +96,7 @@
/** WiFi only mode */
private boolean mWifiMode;
private String mUsagePeriod;
+ private boolean mSingleWifi; // Shows only one specified WiFi network usage
public DataUsageSummaryPreference(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -142,9 +145,10 @@
notifyChanged();
}
- void setWifiMode(boolean isWifiMode, String usagePeriod) {
+ void setWifiMode(boolean isWifiMode, String usagePeriod, boolean isSingleWifi) {
mWifiMode = isWifiMode;
mUsagePeriod = usagePeriod;
+ mSingleWifi = isSingleWifi;
notifyChanged();
}
@@ -171,7 +175,16 @@
Button launchButton = (Button) holder.findViewById(R.id.launch_mdp_app_button);
TextView limitInfo = (TextView) holder.findViewById(R.id.data_limits);
- if (mWifiMode) {
+ if (mWifiMode && mSingleWifi) {
+ updateCycleTimeText(holder);
+
+ usageTitle.setVisibility(View.GONE);
+ launchButton.setVisibility(View.GONE);
+ carrierInfo.setVisibility(View.GONE);
+
+ limitInfo.setVisibility(TextUtils.isEmpty(mLimitInfoText) ? View.GONE : View.VISIBLE);
+ limitInfo.setText(mLimitInfoText);
+ } else if (mWifiMode) {
usageTitle.setText(R.string.data_usage_wifi_title);
usageTitle.setVisibility(View.VISIBLE);
TextView cycleTime = (TextView) holder.findViewById(R.id.cycle_left_time);
@@ -265,6 +278,13 @@
private void updateCycleTimeText(PreferenceViewHolder holder) {
TextView cycleTime = (TextView) holder.findViewById(R.id.cycle_left_time);
+ // Takes zero as a special case which value is never set.
+ if (mCycleEndTimeMs == CYCLE_TIME_UNINITIAL_VALUE) {
+ cycleTime.setVisibility(View.GONE);
+ return;
+ }
+
+ cycleTime.setVisibility(View.VISIBLE);
long millisLeft = mCycleEndTimeMs - System.currentTimeMillis();
if (millisLeft <= 0) {
cycleTime.setText(getContext().getString(R.string.billing_cycle_none_left));
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
index 353c5ee..a06bb77 100644
--- a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
+++ b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
@@ -65,10 +65,10 @@
private final EntityHeaderController mEntityHeaderController;
private final Lifecycle mLifecycle;
private final PreferenceFragmentCompat mFragment;
- private final DataUsageController mDataUsageController;
- private final DataUsageInfoController mDataInfoController;
+ protected final DataUsageController mDataUsageController;
+ protected final DataUsageInfoController mDataInfoController;
private final NetworkTemplate mDefaultTemplate;
- private final NetworkPolicyEditor mPolicyEditor;
+ protected final NetworkPolicyEditor mPolicyEditor;
private final int mDataUsageTemplate;
private final boolean mHasMobileData;
private final SubscriptionManager mSubscriptionManager;
@@ -200,11 +200,13 @@
if (DataUsageUtils.hasSim(mActivity)) {
info = mDataUsageController.getDataUsageInfo(mDefaultTemplate);
mDataInfoController.updateDataLimit(info, mPolicyEditor.getPolicy(mDefaultTemplate));
- summaryPreference.setWifiMode(/* isWifiMode */ false, /* usagePeriod */ null);
+ summaryPreference.setWifiMode(/* isWifiMode */ false,
+ /* usagePeriod */ null, /* isSingleWifi */ false);
} else {
info = mDataUsageController.getDataUsageInfo(
NetworkTemplate.buildTemplateWifiWildcard());
- summaryPreference.setWifiMode(/* isWifiMode */ true, /* usagePeriod */ info.period);
+ summaryPreference.setWifiMode(/* isWifiMode */ true, /* usagePeriod */
+ info.period, /* isSingleWifi */ false);
summaryPreference.setLimitInfo(null);
summaryPreference.setUsageNumbers(info.usageLevel,
/* dataPlanSize */ -1L,
diff --git a/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java
new file mode 100644
index 0000000..8b6d10a
--- /dev/null
+++ b/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java
@@ -0,0 +1,72 @@
+/*
+ * 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.datausage;
+
+import android.app.Activity;
+import android.net.NetworkTemplate;
+import android.telephony.SubscriptionManager;
+import android.text.format.Formatter;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
+
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.net.DataUsageController;
+
+/**
+ * The controller displays a data usage chart for the specified Wi-Fi network.
+ */
+public class WifiDataUsageSummaryPreferenceController extends DataUsageSummaryPreferenceController {
+ final String mNetworkId;
+
+ public WifiDataUsageSummaryPreferenceController(Activity activity,
+ Lifecycle lifecycle, PreferenceFragmentCompat fragment, CharSequence networkId) {
+ super(activity, lifecycle, fragment, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+
+ if (networkId == null) {
+ mNetworkId = null;
+ } else {
+ mNetworkId = String.valueOf(networkId);
+ }
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ if (preference == null) {
+ return;
+ }
+
+ final DataUsageSummaryPreference mPreference = (DataUsageSummaryPreference) preference;
+ // TODO(b/126299427): Currently gets data usage of whole Wi-Fi networks, but should get
+ // specified one.
+ final NetworkTemplate template = NetworkTemplate.buildTemplateWifi(mNetworkId);
+ final DataUsageController.DataUsageInfo info = mDataUsageController.getDataUsageInfo(
+ template);
+ mDataInfoController.updateDataLimit(info, mPolicyEditor.getPolicy(template));
+
+ mPreference.setWifiMode(/* isWifiMode */ true, /* usagePeriod */
+ info.period, /* isSingleWifi */ true);
+ mPreference.setChartEnabled(true);
+ // Treats Wi-Fi network as unlimited network, which has same usage level and limited level.
+ mPreference.setUsageNumbers(info.usageLevel, info.usageLevel, /* hasMobileData */ false);
+
+ // TODO(b/126142293): Passpoint Wi-Fi should have limit of data usage and time remaining
+ mPreference.setProgress(100);
+ mPreference.setLabels(Formatter.formatFileSize(mContext, /* sizeBytes */ 0),
+ DataUsageUtils.formatDataUsage(mContext, info.usageLevel));
+ }
+}
diff --git a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
index f13af94..855a988 100644
--- a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
@@ -16,12 +16,8 @@
package com.android.settings.deviceinfo;
-import static android.content.Context.CLIPBOARD_SERVICE;
-
import android.app.Activity;
import android.app.settings.SettingsEnums;
-import android.content.ClipData;
-import android.content.ClipboardManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -79,11 +75,7 @@
@Override
public CharSequence getSummary() {
- try {
- return BidiFormatter.getInstance().unicodeWrap(Build.DISPLAY);
- } catch (Exception e) {
- return mContext.getText(R.string.device_info_default);
- }
+ return BidiFormatter.getInstance().unicodeWrap(Build.DISPLAY);
}
@Override
@@ -99,29 +91,7 @@
@Override
public int getAvailabilityStatus() {
- return AVAILABLE;
- }
-
- @Override
- public boolean isSliceable() {
- return true;
- }
-
- @Override
- public boolean isCopyableSlice() {
- return true;
- }
-
- @Override
- public void copy() {
- final ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService(
- CLIPBOARD_SERVICE);
- final ClipData clip = ClipData.newPlainText("text", getSummary());
- clipboard.setPrimaryClip(clip);
-
- final String toast = mContext.getString(R.string.copyable_slice_toast,
- mContext.getText(R.string.build_number));
- Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
+ return AVAILABLE_UNSEARCHABLE;
}
@Override
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceController.java
index c7d4459..36f1a43 100644
--- a/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceController.java
@@ -16,10 +16,16 @@
package com.android.settings.deviceinfo.firmwareversion;
+import static android.content.Context.CLIPBOARD_SERVICE;
+
+import android.content.ClipData;
+import android.content.ClipboardManager;
import android.content.Context;
import android.os.Build;
import android.text.BidiFormatter;
+import android.widget.Toast;
+import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
public class SimpleBuildNumberPreferenceController extends BasePreferenceController {
@@ -38,4 +44,26 @@
public CharSequence getSummary() {
return BidiFormatter.getInstance().unicodeWrap(Build.DISPLAY);
}
+
+ @Override
+ public boolean isSliceable() {
+ return true;
+ }
+
+ @Override
+ public boolean isCopyableSlice() {
+ return true;
+ }
+
+ @Override
+ public void copy() {
+ final ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService(
+ CLIPBOARD_SERVICE);
+ final ClipData clip = ClipData.newPlainText("text", getSummary());
+ clipboard.setPrimaryClip(clip);
+
+ final String toast = mContext.getString(R.string.copyable_slice_toast,
+ mContext.getText(R.string.build_number));
+ Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
+ }
}
diff --git a/src/com/android/settings/fuelgauge/BatteryInfo.java b/src/com/android/settings/fuelgauge/BatteryInfo.java
index 1f11f5a..c851a71 100644
--- a/src/com/android/settings/fuelgauge/BatteryInfo.java
+++ b/src/com/android/settings/fuelgauge/BatteryInfo.java
@@ -47,6 +47,7 @@
public long averageTimeToDischarge = Estimate.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN;
public String batteryPercentString;
public String statusLabel;
+ public String suggestionLabel;
private boolean mCharging;
private BatteryStats mStats;
private static final String LOG_TAG = "BatteryInfo";
@@ -247,6 +248,7 @@
final int status = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_STATUS,
BatteryManager.BATTERY_STATUS_UNKNOWN);
info.discharging = false;
+ info.suggestionLabel = null;
if (chargeTime > 0 && status != BatteryManager.BATTERY_STATUS_FULL) {
info.remainingTimeUs = chargeTime;
CharSequence timeString = StringUtil.formatElapsedTime(context,
@@ -282,8 +284,11 @@
info.batteryPercentString,
estimate.isBasedOnUsage && !shortString
);
+ info.suggestionLabel = PowerUtil.getBatteryTipStringFormatted(
+ context, PowerUtil.convertUsToMs(drainTimeUs));
} else {
info.remainingLabel = null;
+ info.suggestionLabel = null;
info.chargeLabel = info.batteryPercentString;
}
}
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java
new file mode 100644
index 0000000..b14fec9
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceController.java
@@ -0,0 +1,41 @@
+package com.android.settings.fuelgauge.batterysaver;
+
+import android.content.Context;
+import android.provider.Settings;
+import androidx.preference.Preference;
+import androidx.preference.SwitchPreference;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
+
+public class BatterySaverStickyPreferenceController extends BasePreferenceController implements
+ PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+
+ public static final String LOW_POWER_STICKY_AUTO_DISABLE_ENABLED =
+ "low_power_sticky_auto_disable_enabled";
+
+ public BatterySaverStickyPreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ int setting = Settings.System.getInt(mContext.getContentResolver(),
+ LOW_POWER_STICKY_AUTO_DISABLE_ENABLED, 1);
+
+ ((SwitchPreference) preference).setChecked(setting == 0);
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ boolean keepActive = (Boolean) newValue;
+ Settings.System.putInt(mContext.getContentResolver(),
+ LOW_POWER_STICKY_AUTO_DISABLE_ENABLED,
+ keepActive ? 0 : 1);
+ return true;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+}
diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyInfo.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyInfo.java
index 063cfec..fc15706 100644
--- a/src/com/android/settings/fuelgauge/batterytip/AnomalyInfo.java
+++ b/src/com/android/settings/fuelgauge/batterytip/AnomalyInfo.java
@@ -20,7 +20,7 @@
import android.util.Log;
/**
- * Model class to parse and store anomaly info from westworld
+ * Model class to parse and store anomaly info from statsd.
*/
public class AnomalyInfo {
private static final String TAG = "AnomalyInfo";
@@ -38,4 +38,4 @@
autoRestriction = parser.getBoolean(KEY_AUTO_RESTRICTION, false);
}
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java b/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java
index 21cc28a..ca9141d 100644
--- a/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java
+++ b/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java
@@ -62,6 +62,6 @@
}
return new LowBatteryTip(
- state, powerSaveModeOn, mBatteryInfo.remainingLabel);
+ state, powerSaveModeOn, mBatteryInfo.suggestionLabel);
}
}
diff --git a/src/com/android/settings/gestures/SwipeUpPreferenceController.java b/src/com/android/settings/gestures/SwipeUpPreferenceController.java
deleted file mode 100644
index 5e882c4..0000000
--- a/src/com/android/settings/gestures/SwipeUpPreferenceController.java
+++ /dev/null
@@ -1,97 +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.gestures;
-
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.os.UserManager;
-import android.provider.Settings;
-import android.text.TextUtils;
-
-import com.android.internal.R;
-
-public class SwipeUpPreferenceController extends GesturePreferenceController {
-
- private final int ON = 1;
- private final int OFF = 0;
-
- private static final String ACTION_QUICKSTEP = "android.intent.action.QUICKSTEP_SERVICE";
- private static final String PREF_KEY_VIDEO = "gesture_swipe_up_video";
- private final UserManager mUserManager;
-
- public SwipeUpPreferenceController(Context context, String key) {
- super(context, key);
- mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
- }
-
- static boolean isGestureAvailable(Context context) {
- if (!context.getResources().getBoolean(R.bool.config_swipe_up_gesture_setting_available)) {
- return false;
- }
-
- final ComponentName recentsComponentName = ComponentName.unflattenFromString(
- context.getString(R.string.config_recentsComponentName));
- if (recentsComponentName == null) {
- return false;
- }
- final Intent quickStepIntent = new Intent(ACTION_QUICKSTEP)
- .setPackage(recentsComponentName.getPackageName());
- if (context.getPackageManager().resolveService(quickStepIntent,
- PackageManager.MATCH_SYSTEM_ONLY) == null) {
- return false;
- }
- return true;
- }
-
- @Override
- public int getAvailabilityStatus() {
- return isGestureAvailable(mContext) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
- }
-
- @Override
- public boolean isSliceable() {
- return TextUtils.equals(getPreferenceKey(), "gesture_swipe_up");
- }
-
- @Override
- protected String getVideoPrefKey() {
- return PREF_KEY_VIDEO;
- }
-
- @Override
- public boolean setChecked(boolean isChecked) {
- setSwipeUpPreference(mContext, mUserManager, isChecked ? ON : OFF);
- return true;
- }
-
- public static void setSwipeUpPreference(Context context, UserManager userManager,
- int enabled) {
- Settings.Secure.putInt(context.getContentResolver(),
- Settings.Secure.SWIPE_UP_TO_SWITCH_APPS_ENABLED, enabled);
- }
-
- @Override
- public boolean isChecked() {
- final int defaultValue = mContext.getResources()
- .getBoolean(R.bool.config_swipe_up_gesture_default) ? ON : OFF;
- final int swipeUpEnabled = Settings.Secure.getInt(mContext.getContentResolver(),
- Settings.Secure.SWIPE_UP_TO_SWITCH_APPS_ENABLED, defaultValue);
- return swipeUpEnabled != OFF;
- }
-}
diff --git a/src/com/android/settings/gestures/SystemNavigationEdgeToEdgePreferenceController.java b/src/com/android/settings/gestures/SystemNavigationEdgeToEdgePreferenceController.java
new file mode 100644
index 0000000..129cf90
--- /dev/null
+++ b/src/com/android/settings/gestures/SystemNavigationEdgeToEdgePreferenceController.java
@@ -0,0 +1,48 @@
+/*
+ * 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.gestures;
+
+import android.content.Context;
+import android.text.TextUtils;
+
+import com.android.settings.widget.RadioButtonPreference;
+
+public class SystemNavigationEdgeToEdgePreferenceController extends
+ SystemNavigationPreferenceController {
+ static final String PREF_KEY_EDGE_TO_EDGE = "gesture_edge_to_edge";
+
+ public SystemNavigationEdgeToEdgePreferenceController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public boolean isSliceable() {
+ return TextUtils.equals(PREF_KEY_EDGE_TO_EDGE, getPreferenceKey());
+ }
+
+ @Override
+ public void onRadioButtonClicked(RadioButtonPreference preference) {
+ setSwipeUpEnabled(mContext, true);
+ setEdgeToEdgeGestureEnabled(mContext, true);
+ selectRadioButtonInGroup(PREF_KEY_EDGE_TO_EDGE, mPreferenceScreen);
+ }
+
+ @Override
+ public boolean isChecked() {
+ return isEdgeToEdgeEnabled(mContext);
+ }
+}
diff --git a/src/com/android/settings/gestures/SwipeUpGestureSettings.java b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
similarity index 85%
rename from src/com/android/settings/gestures/SwipeUpGestureSettings.java
rename to src/com/android/settings/gestures/SystemNavigationGestureSettings.java
index a125643..ea5454b 100644
--- a/src/com/android/settings/gestures/SwipeUpGestureSettings.java
+++ b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
@@ -32,12 +32,12 @@
import java.util.List;
@SearchIndexable
-public class SwipeUpGestureSettings extends DashboardFragment {
+public class SystemNavigationGestureSettings extends DashboardFragment {
- private static final String TAG = "SwipeUpGesture";
+ private static final String TAG = "SystemNavigationGesture";
public static final String PREF_KEY_SUGGESTION_COMPLETE =
- "pref_swipe_up_suggestion_complete";
+ "pref_system_navigation_suggestion_complete";
@Override
public void onAttach(Context context) {
@@ -60,7 +60,7 @@
@Override
protected int getPreferenceScreenResId() {
- return R.xml.swipe_up_gesture_settings;
+ return R.xml.system_navigation_gesture_settings;
}
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
@@ -69,13 +69,13 @@
public List<SearchIndexableResource> getXmlResourcesToIndex(
Context context, boolean enabled) {
final SearchIndexableResource sir = new SearchIndexableResource(context);
- sir.xmlResId = R.xml.swipe_up_gesture_settings;
+ sir.xmlResId = R.xml.system_navigation_gesture_settings;
return Arrays.asList(sir);
}
@Override
protected boolean isPageSearchEnabled(Context context) {
- return SwipeUpPreferenceController.isGestureAvailable(context);
+ return SystemNavigationPreferenceController.isGestureAvailable(context);
}
};
}
diff --git a/src/com/android/settings/gestures/SystemNavigationLegacyPreferenceController.java b/src/com/android/settings/gestures/SystemNavigationLegacyPreferenceController.java
new file mode 100644
index 0000000..f9c95a8
--- /dev/null
+++ b/src/com/android/settings/gestures/SystemNavigationLegacyPreferenceController.java
@@ -0,0 +1,48 @@
+/*
+ * 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.gestures;
+
+import android.content.Context;
+import android.text.TextUtils;
+
+import com.android.settings.widget.RadioButtonPreference;
+
+public class SystemNavigationLegacyPreferenceController extends
+ SystemNavigationPreferenceController {
+ static final String PREF_KEY_LEGACY = "gesture_legacy";
+
+ public SystemNavigationLegacyPreferenceController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public boolean isSliceable() {
+ return TextUtils.equals(PREF_KEY_LEGACY, getPreferenceKey());
+ }
+
+ @Override
+ public void onRadioButtonClicked(RadioButtonPreference preference) {
+ setEdgeToEdgeGestureEnabled(mContext, false);
+ setSwipeUpEnabled(mContext, false);
+ selectRadioButtonInGroup(PREF_KEY_LEGACY, mPreferenceScreen);
+ }
+
+ @Override
+ public boolean isChecked() {
+ return !isEdgeToEdgeEnabled(mContext) && !isSwipeUpEnabled(mContext);
+ }
+}
diff --git a/src/com/android/settings/gestures/SystemNavigationPreferenceController.java b/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
new file mode 100644
index 0000000..a11754e
--- /dev/null
+++ b/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
@@ -0,0 +1,207 @@
+/*
+ * 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.gestures;
+
+import static android.os.UserHandle.USER_SYSTEM;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.om.IOverlayManager;
+import android.content.pm.PackageManager;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.provider.Settings;
+import android.text.TextUtils;
+import android.view.View;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.widget.RadioButtonPreference;
+
+public abstract class SystemNavigationPreferenceController extends GesturePreferenceController
+ implements RadioButtonPreference.OnClickListener {
+
+ private static final int OFF = 0;
+ private static final int ON = 1;
+
+ private static final String HIDE_BACK_BUTTON = "quickstepcontroller_hideback";
+ private static final String HIDE_HOME_BUTTON = "quickstepcontroller_hidehome";
+ private static final String HIDE_NAVBAR_DIVIDER = "hide_navigationbar_divider";
+ private static final String SHOW_HANDLE = "quickstepcontroller_showhandle";
+ private static final String ENABLE_CLICK_THROUGH = "quickstepcontroller_clickthrough";
+ private static final String ENABLE_LAUNCHER_SWIPE_TO_HOME = "SWIPE_HOME";
+ private static final String ENABLE_COLOR_ADAPT_FOR_HANDLE = "navbar_color_adapt_enable";
+ private static final String ENABLE_ASSISTANT_GESTURE = "ENABLE_ASSISTANT_GESTURE";
+ private static final String PROTOTYPE_ENABLED = "prototype_enabled";
+
+ private static final int EDGE_SENSITIVITY_WIDTH = 32;
+ private static final String EDGE_SENSITIVITY_KEY = "quickstepcontroller_edge_width_sensitivity";
+
+ private static final String GESTURES_MATCH_MAP_OFF = "000000";
+ private static final String GESTURES_MATCH_MAP_ON = "071133";
+ private static final String GESTURES_MATCH_MAP_KEY = "quickstepcontroller_gesture_match_map";
+
+ private static final String OVERLAY_NAVBAR_TYPE_INSET =
+ "com.android.internal.experiment.navbar.type.inset";
+ private static final String OVERLAY_NAVBAR_TYPE_FLOATING =
+ "com.android.internal.experiment.navbar.type.floating";
+
+ private static final String ACTION_QUICKSTEP = "android.intent.action.QUICKSTEP_SERVICE";
+ private static final String PREF_KEY_VIDEO = "gesture_swipe_up_video";
+
+ private static final String[] RADIO_BUTTONS_IN_GROUP = {
+ SystemNavigationLegacyPreferenceController.PREF_KEY_LEGACY,
+ SystemNavigationSwipeUpPreferenceController.PREF_KEY_SWIPE_UP,
+ SystemNavigationEdgeToEdgePreferenceController.PREF_KEY_EDGE_TO_EDGE,
+ };
+
+ protected PreferenceScreen mPreferenceScreen;
+
+ public SystemNavigationPreferenceController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return isGestureAvailable(mContext) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreferenceScreen = screen;
+
+ Preference preference = screen.findPreference(getPreferenceKey());
+ if (preference != null && preference instanceof RadioButtonPreference) {
+ RadioButtonPreference radioPreference = (RadioButtonPreference) preference;
+ radioPreference.setOnClickListener(this);
+ radioPreference.setAppendixVisibility(View.GONE);
+ }
+ }
+
+ @Override
+ public boolean setChecked(boolean isChecked) {
+ if (!isChecked || mPreferenceScreen == null) {
+ return false;
+ }
+ Preference preference = mPreferenceScreen.findPreference(getPreferenceKey());
+ if (preference != null && preference instanceof RadioButtonPreference) {
+ onRadioButtonClicked((RadioButtonPreference) preference);
+ }
+ return true;
+ }
+
+ @Override
+ public CharSequence getSummary() {
+ if (isEdgeToEdgeEnabled(mContext)) {
+ return mContext.getText(R.string.edge_to_edge_navigation_title);
+ } else if (isSwipeUpEnabled(mContext)) {
+ return mContext.getText(R.string.swipe_up_to_switch_apps_title);
+ } else {
+ return mContext.getText(R.string.legacy_navigation_title);
+ }
+ }
+
+ @Override
+ protected String getVideoPrefKey() {
+ return PREF_KEY_VIDEO;
+ }
+
+ static boolean isGestureAvailable(Context context) {
+ if (!context.getResources().getBoolean(
+ com.android.internal.R.bool.config_swipe_up_gesture_setting_available)) {
+ return false;
+ }
+
+ final ComponentName recentsComponentName = ComponentName.unflattenFromString(
+ context.getString(com.android.internal.R.string.config_recentsComponentName));
+ if (recentsComponentName == null) {
+ return false;
+ }
+ final Intent quickStepIntent = new Intent(ACTION_QUICKSTEP)
+ .setPackage(recentsComponentName.getPackageName());
+ if (context.getPackageManager().resolveService(quickStepIntent,
+ PackageManager.MATCH_SYSTEM_ONLY) == null) {
+ return false;
+ }
+ return true;
+ }
+
+ static void selectRadioButtonInGroup(String preferenceKey, PreferenceScreen screen) {
+ if (screen == null) {
+ return;
+ }
+ for (String key : RADIO_BUTTONS_IN_GROUP) {
+ ((RadioButtonPreference) screen.findPreference(key)).setChecked(
+ TextUtils.equals(key, preferenceKey));
+ }
+ }
+
+ static void setEdgeToEdgeGestureEnabled(Context context, boolean enable) {
+ // TODO(b/127366543): replace all of this with a single switch
+ setBooleanGlobalSetting(context, HIDE_BACK_BUTTON, enable);
+ setBooleanGlobalSetting(context, HIDE_HOME_BUTTON, enable);
+ setBooleanGlobalSetting(context, HIDE_NAVBAR_DIVIDER, enable);
+ setBooleanGlobalSetting(context, SHOW_HANDLE, enable);
+ setBooleanGlobalSetting(context, ENABLE_CLICK_THROUGH, enable);
+ setBooleanGlobalSetting(context, ENABLE_LAUNCHER_SWIPE_TO_HOME, enable);
+ setBooleanGlobalSetting(context, ENABLE_COLOR_ADAPT_FOR_HANDLE, enable);
+ setBooleanGlobalSetting(context, ENABLE_ASSISTANT_GESTURE, enable);
+ setBooleanGlobalSetting(context, PROTOTYPE_ENABLED, enable);
+ Settings.Global.putInt(context.getContentResolver(), EDGE_SENSITIVITY_KEY,
+ EDGE_SENSITIVITY_WIDTH);
+ Settings.Global.putString(context.getContentResolver(), GESTURES_MATCH_MAP_KEY,
+ enable ? GESTURES_MATCH_MAP_ON : GESTURES_MATCH_MAP_OFF);
+
+ IOverlayManager overlayManager = IOverlayManager.Stub
+ .asInterface(ServiceManager.getService(Context.OVERLAY_SERVICE));
+ if (overlayManager != null) {
+ try {
+ overlayManager.setEnabled(OVERLAY_NAVBAR_TYPE_FLOATING, false, USER_SYSTEM);
+ overlayManager.setEnabled(OVERLAY_NAVBAR_TYPE_INSET, enable, USER_SYSTEM);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+ }
+
+ static void setBooleanGlobalSetting(Context context, String name, boolean flag) {
+ Settings.Global.putInt(context.getContentResolver(), name, flag ? ON : OFF);
+ }
+
+ static void setSwipeUpEnabled(Context context, boolean enabled) {
+ Settings.Secure.putInt(context.getContentResolver(),
+ Settings.Secure.SWIPE_UP_TO_SWITCH_APPS_ENABLED, enabled ? ON : OFF);
+ }
+
+ static boolean isSwipeUpEnabled(Context context) {
+ if (isEdgeToEdgeEnabled(context)) {
+ return false;
+ }
+ final int defaultSwipeUpValue = context.getResources()
+ .getBoolean(com.android.internal.R.bool.config_swipe_up_gesture_default) ? ON : OFF;
+ return Settings.Secure.getInt(context.getContentResolver(),
+ Settings.Secure.SWIPE_UP_TO_SWITCH_APPS_ENABLED, defaultSwipeUpValue) == ON;
+ }
+
+ static boolean isEdgeToEdgeEnabled(Context context) {
+ return Settings.Global.getInt(context.getContentResolver(), PROTOTYPE_ENABLED, OFF) == ON;
+ }
+}
diff --git a/src/com/android/settings/gestures/SystemNavigationSwipeUpPreferenceController.java b/src/com/android/settings/gestures/SystemNavigationSwipeUpPreferenceController.java
new file mode 100644
index 0000000..25fafdb
--- /dev/null
+++ b/src/com/android/settings/gestures/SystemNavigationSwipeUpPreferenceController.java
@@ -0,0 +1,48 @@
+/*
+ * 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.gestures;
+
+import android.content.Context;
+import android.text.TextUtils;
+
+import com.android.settings.widget.RadioButtonPreference;
+
+public class SystemNavigationSwipeUpPreferenceController extends
+ SystemNavigationPreferenceController {
+ static final String PREF_KEY_SWIPE_UP = "gesture_swipe_up";
+
+ public SystemNavigationSwipeUpPreferenceController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public boolean isSliceable() {
+ return TextUtils.equals(PREF_KEY_SWIPE_UP, getPreferenceKey());
+ }
+
+ @Override
+ public void onRadioButtonClicked(RadioButtonPreference preference) {
+ setEdgeToEdgeGestureEnabled(mContext, false);
+ setSwipeUpEnabled(mContext, true);
+ selectRadioButtonInGroup(PREF_KEY_SWIPE_UP, mPreferenceScreen);
+ }
+
+ @Override
+ public boolean isChecked() {
+ return isSwipeUpEnabled(mContext);
+ }
+}
diff --git a/src/com/android/settings/gestures/WakeScreenGestureSettings.java b/src/com/android/settings/gestures/WakeScreenGestureSettings.java
deleted file mode 100644
index b8a782a..0000000
--- a/src/com/android/settings/gestures/WakeScreenGestureSettings.java
+++ /dev/null
@@ -1,65 +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.gestures;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.provider.SearchIndexableResource;
-
-import com.android.settings.R;
-import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settingslib.search.SearchIndexable;
-
-import java.util.Arrays;
-import java.util.List;
-
-@SearchIndexable
-public class WakeScreenGestureSettings extends DashboardFragment {
-
- private static final String TAG = "WakeScreenGestureSettings";
-
- public static final String PREF_KEY_SUGGESTION_COMPLETE =
- "pref_wake_screen_gesture_suggestion_complete";
-
- @Override
- public int getMetricsCategory() {
- return SettingsEnums.SETTINGS_GESTURE_WAKE_SCREEN;
- }
-
- @Override
- protected String getLogTag() {
- return TAG;
- }
-
- @Override
- protected int getPreferenceScreenResId() {
- return R.xml.wake_screen_gesture_settings;
- }
-
- public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
- new BaseSearchIndexProvider() {
- @Override
- public List<SearchIndexableResource> getXmlResourcesToIndex(
- Context context, boolean enabled) {
- final SearchIndexableResource sir = new SearchIndexableResource(context);
- sir.xmlResId = R.xml.wake_screen_gesture_settings;
- return Arrays.asList(sir);
- }
- };
-
-}
diff --git a/src/com/android/settings/homepage/SettingsHomepageActivity.java b/src/com/android/settings/homepage/SettingsHomepageActivity.java
index 9e869a9..9b83f88 100644
--- a/src/com/android/settings/homepage/SettingsHomepageActivity.java
+++ b/src/com/android/settings/homepage/SettingsHomepageActivity.java
@@ -17,6 +17,7 @@
package com.android.settings.homepage;
import android.animation.LayoutTransition;
+import android.app.ActivityManager;
import android.app.settings.SettingsEnums;
import android.os.Bundle;
import android.view.View;
@@ -53,7 +54,10 @@
final AvatarViewMixin avatarViewMixin = new AvatarViewMixin(this, avatarView);
getLifecycle().addObserver(avatarViewMixin);
- showFragment(new ContextualCardsFragment(), R.id.contextual_cards_content);
+ if (!getSystemService(ActivityManager.class).isLowRamDevice()) {
+ // Only allow contextual feature on high ram devices.
+ showFragment(new ContextualCardsFragment(), R.id.contextual_cards_content);
+ }
showFragment(new TopLevelSettings(), R.id.main_content);
((FrameLayout) findViewById(R.id.main_content))
.getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING);
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImpl.java b/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImpl.java
index 12590ff..ce7777a 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImpl.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImpl.java
@@ -139,7 +139,7 @@
final String action = mContext.getString(R.string.config_settingsintelligence_log_action);
if (!TextUtils.isEmpty(action)) {
intent.setAction(action);
- mContext.sendBroadcastAsUser(intent, UserHandle.ALL);
+ mContext.sendBroadcastAsUser(intent, UserHandle.CURRENT);
}
}
@@ -165,6 +165,7 @@
com.android.settings.intelligence.ContextualCardProto.ContextualCard.newBuilder()
.setSliceUri(card.getSliceUri().toString())
.setCardName(card.getName())
+ .setCardScore(card.getRankingScore())
.build()));
return builder.build().toByteArray();
}
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
index ea6ac43..ff2ee91 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
@@ -26,7 +26,6 @@
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
-import android.text.format.DateUtils;
import android.util.Log;
import androidx.annotation.NonNull;
@@ -50,7 +49,6 @@
@VisibleForTesting
static final int DEFAULT_CARD_COUNT = 4;
static final int CARD_CONTENT_LOADER_ID = 1;
- static final long CARD_CONTENT_LOADER_TIMEOUT_MS = DateUtils.SECOND_IN_MILLIS;
private static final String TAG = "ContextualCardLoader";
private static final long ELIGIBILITY_CHECKER_TIMEOUT_MS = 250;
@@ -69,7 +67,8 @@
@VisibleForTesting
Uri mNotifyUri;
- private Context mContext;
+
+ private final Context mContext;
ContextualCardLoader(Context context) {
super(context);
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java b/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java
index 3b8aacd..8f7e84a 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java
@@ -24,6 +24,8 @@
import android.content.Context;
import android.os.Bundle;
+import android.provider.Settings;
+import android.text.format.DateUtils;
import android.util.ArrayMap;
import android.util.Log;
import android.widget.BaseAdapter;
@@ -62,8 +64,12 @@
public class ContextualCardManager implements ContextualCardLoader.CardContentLoaderListener,
ContextualCardUpdateListener, LifecycleObserver, OnSaveInstanceState {
- private static final String KEY_CONTEXTUAL_CARDS = "key_contextual_cards";
+ @VisibleForTesting
+ static final long CARD_CONTENT_LOADER_TIMEOUT_MS = DateUtils.SECOND_IN_MILLIS;
+ @VisibleForTesting
+ static final String KEY_GLOBAL_CARD_LOADER_TIMEOUT = "global_card_loader_timeout_key";
+ private static final String KEY_CONTEXTUAL_CARDS = "key_contextual_cards";
private static final String TAG = "ContextualCardManager";
//The list for Settings Custom Card
@@ -103,13 +109,13 @@
}
}
- void loadContextualCards(ContextualCardsFragment fragment) {
+ void loadContextualCards(LoaderManager loaderManager) {
mStartTime = System.currentTimeMillis();
final CardContentLoaderCallbacks cardContentLoaderCallbacks =
new CardContentLoaderCallbacks(mContext);
cardContentLoaderCallbacks.setListener(this);
// Use the cached data when navigating back to the first page and upon screen rotation.
- LoaderManager.getInstance(fragment).initLoader(CARD_CONTENT_LOADER_ID, null /* bundle */,
+ loaderManager.initLoader(CARD_CONTENT_LOADER_ID, null /* bundle */,
cardContentLoaderCallbacks);
}
@@ -201,7 +207,8 @@
}
//only log homepage display upon a fresh launch
- if (loadTime <= ContextualCardLoader.CARD_CONTENT_LOADER_TIMEOUT_MS) {
+ final long timeoutLimit = getCardLoaderTimeout(mContext);
+ if (loadTime <= timeoutLimit) {
onContextualCardUpdated(cards.stream()
.collect(groupingBy(ContextualCard::getCardType)));
}
@@ -239,6 +246,14 @@
return getCardsWithSuggestionViewType(result);
}
+ @VisibleForTesting
+ long getCardLoaderTimeout(Context context) {
+ // Return the timeout limit if Settings.Global has the KEY_GLOBAL_CARD_LOADER_TIMEOUT key,
+ // else return default timeout.
+ return Settings.Global.getLong(mContext.getContentResolver(),
+ KEY_GLOBAL_CARD_LOADER_TIMEOUT, CARD_CONTENT_LOADER_TIMEOUT_MS);
+ }
+
private List<ContextualCard> getCardsWithSuggestionViewType(List<ContextualCard> cards) {
// Shows as half cards if 2 suggestion type of cards are next to each other.
// Shows as full card if 1 suggestion type of card lives alone.
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java b/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java
index e598e4c..72ddb50 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java
@@ -19,16 +19,19 @@
import static com.android.settings.homepage.contextualcards.ContextualCardsAdapter.SPAN_COUNT;
import android.app.settings.SettingsEnums;
+import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import androidx.loader.app.LoaderManager;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.R;
import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.overlay.FeatureFactory;
public class ContextualCardsFragment extends InstrumentedFragment {
@@ -42,14 +45,19 @@
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- mContextualCardManager = new ContextualCardManager(getContext(), getSettingsLifecycle(),
+ final Context context = getContext();
+ if (savedInstanceState == null) {
+ FeatureFactory.getFactory(context).getSlicesFeatureProvider().newUiSession();
+ }
+ mContextualCardManager = new ContextualCardManager(context, getSettingsLifecycle(),
savedInstanceState);
+
}
@Override
public void onStart() {
super.onStart();
- mContextualCardManager.loadContextualCards(this);
+ mContextualCardManager.loadContextualCards(LoaderManager.getInstance(this));
}
@Override
diff --git a/src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java b/src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java
index 5423ce3..fe68d02 100644
--- a/src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java
+++ b/src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java
@@ -51,6 +51,9 @@
@VisibleForTesting
boolean isCardEligibleToDisplay(ContextualCard card) {
+ if (card.getRankingScore() < 0) {
+ return false;
+ }
if (card.isCustomCard()) {
return true;
}
diff --git a/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java b/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java
index fe5bc93..3557e49 100644
--- a/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionController.java
@@ -97,7 +97,7 @@
.setName(mAppContext.getPackageName() + "/"
+ mAppContext.getText(R.string.condition_hotspot_title))
.setTitleText(mAppContext.getText(R.string.condition_hotspot_title).toString())
- .setSummaryText(getSummary().toString())
+ .setSummaryText(getSsid().toString())
.setIconDrawable(mAppContext.getDrawable(R.drawable.ic_hotspot))
.setViewType(ConditionContextualCardRenderer.VIEW_TYPE_HALF_WIDTH)
.build();
@@ -113,10 +113,6 @@
mAppContext.unregisterReceiver(mReceiver);
}
- public CharSequence getSummary() {
- return mAppContext.getString(R.string.condition_hotspot_summary, getSsid());
- }
-
private CharSequence getSsid() {
WifiConfiguration wifiConfig = mWifiManager.getWifiApConfiguration();
if (wifiConfig == null) {
diff --git a/src/com/android/settings/homepage/contextualcards/deviceinfo/BatteryInfoSlice.java b/src/com/android/settings/homepage/contextualcards/deviceinfo/BatteryInfoSlice.java
deleted file mode 100644
index 6c7f930..0000000
--- a/src/com/android/settings/homepage/contextualcards/deviceinfo/BatteryInfoSlice.java
+++ /dev/null
@@ -1,139 +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.homepage.contextualcards.deviceinfo;
-
-import android.app.PendingIntent;
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.net.Uri;
-import android.os.PowerManager;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.core.graphics.drawable.IconCompat;
-import androidx.slice.Slice;
-import androidx.slice.builders.ListBuilder;
-import androidx.slice.builders.SliceAction;
-
-import com.android.settings.R;
-import com.android.settings.SubSettings;
-import com.android.settings.Utils;
-import com.android.settings.fuelgauge.BatteryInfo;
-import com.android.settings.fuelgauge.PowerUsageSummary;
-import com.android.settings.slices.CustomSliceRegistry;
-import com.android.settings.slices.CustomSliceable;
-import com.android.settings.slices.SliceBuilderUtils;
-
-/**
- * Utility class to build a Battery Slice, and handle all associated actions.
- */
-public class BatteryInfoSlice implements CustomSliceable {
- private static final String TAG = "BatteryInfoSlice";
-
- private final Context mContext;
-
- private BatteryInfo mBatteryInfo;
- private boolean mIsBatteryInfoLoading;
-
- public BatteryInfoSlice(Context context) {
- mContext = context;
- }
-
- @Override
- public Slice getSlice() {
- if (mBatteryInfo == null) {
- mIsBatteryInfoLoading = true;
- loadBatteryInfo();
- }
- final IconCompat icon = IconCompat.createWithResource(mContext,
- R.drawable.ic_settings_battery);
- final CharSequence title = mContext.getText(R.string.power_usage_summary_title);
- final SliceAction primarySliceAction = SliceAction.createDeeplink(getPrimaryAction(), icon,
- ListBuilder.ICON_IMAGE, title);
- final Slice slice = new ListBuilder(mContext, CustomSliceRegistry.BATTERY_INFO_SLICE_URI,
- ListBuilder.INFINITY)
- .setAccentColor(Utils.getColorAccentDefaultColor(mContext))
- .setHeader(new ListBuilder.HeaderBuilder().setTitle(title))
- .addRow(new ListBuilder.RowBuilder()
- .setTitle(getBatteryPercentString(), mIsBatteryInfoLoading)
- .setSubtitle(getSummary(), mIsBatteryInfoLoading)
- .setPrimaryAction(primarySliceAction))
- .build();
- mBatteryInfo = null;
- mIsBatteryInfoLoading = false;
- return slice;
- }
-
- @Override
- public Uri getUri() {
- return CustomSliceRegistry.BATTERY_INFO_SLICE_URI;
- }
-
- @Override
- public void onNotifyChange(Intent intent) {
-
- }
-
- @Override
- public Intent getIntent() {
- final String screenTitle = mContext.getText(R.string.power_usage_summary_title).toString();
- return SliceBuilderUtils.buildSearchResultPageIntent(mContext,
- PowerUsageSummary.class.getName(), "" /* key */, screenTitle,
- SettingsEnums.SLICE)
- .setClassName(mContext.getPackageName(), SubSettings.class.getName())
- .setData(CustomSliceRegistry.BATTERY_INFO_SLICE_URI);
- }
-
- @Override
- public IntentFilter getIntentFilter() {
- final IntentFilter intentFilter = new IntentFilter();
- intentFilter.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED);
- intentFilter.addAction(Intent.ACTION_POWER_CONNECTED);
- intentFilter.addAction(Intent.ACTION_POWER_DISCONNECTED);
- intentFilter.addAction(Intent.ACTION_BATTERY_LEVEL_CHANGED);
- return intentFilter;
- }
-
- @VisibleForTesting
- void loadBatteryInfo() {
- BatteryInfo.getBatteryInfo(mContext, info -> {
- mBatteryInfo = info;
- mContext.getContentResolver().notifyChange(getUri(), null);
- }, true);
- }
-
- @VisibleForTesting
- CharSequence getBatteryPercentString() {
- return mBatteryInfo == null ? null : mBatteryInfo.batteryPercentString;
- }
-
- @VisibleForTesting
- CharSequence getSummary() {
- if (mBatteryInfo == null) {
- return null;
- }
- return mBatteryInfo.remainingLabel == null ? mBatteryInfo.statusLabel
- : mBatteryInfo.remainingLabel;
- }
-
- private PendingIntent getPrimaryAction() {
- final Intent intent = getIntent();
- return PendingIntent.getActivity(mContext, 0 /* requestCode */,
- intent, 0 /* flags */);
- }
-}
\ No newline at end of file
diff --git a/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java b/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java
index 95412a8..99fe219 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java
@@ -16,11 +16,14 @@
package com.android.settings.homepage.contextualcards.slices;
+import android.annotation.ColorInt;
import android.app.PendingIntent;
import android.app.settings.SettingsEnums;
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.content.Intent;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffColorFilter;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
@@ -87,6 +90,9 @@
@Override
public Slice getSlice() {
+ // Reload theme for switching dark mode on/off
+ mContext.getTheme().applyStyle(R.style.Theme_Settings_Home, true /* force */);
+
final IconCompat icon = IconCompat.createWithResource(mContext,
com.android.internal.R.drawable.ic_settings_bluetooth);
final CharSequence title = mContext.getText(R.string.bluetooth_devices);
@@ -98,7 +104,7 @@
ListBuilder.ICON_IMAGE, title);
final ListBuilder listBuilder =
new ListBuilder(mContext, getUri(), ListBuilder.INFINITY)
- .setAccentColor(Utils.getColorAccentDefaultColor(mContext));
+ .setAccentColor(COLOR_NOT_TINTED);
// Get row builders by Bluetooth devices.
final List<ListBuilder.RowBuilder> rows = getBluetoothRowBuilder();
@@ -179,14 +185,9 @@
final Collection<CachedBluetoothDevice> cachedDevices =
bluetoothManager.getCachedDeviceManager().getCachedDevicesCopy();
- /**
- * TODO(b/114807655): Contextual Home Page - Connected Device
- * It's under discussion for including available media devices and currently connected
- * devices from Bluetooth. Will update the devices list or remove TODO later.
- */
- // Get available media device list and sort them.
+ // Get all connected devices and sort them.
return cachedDevices.stream()
- .filter(device -> device.isConnected() && device.isConnectedA2dpDevice())
+ .filter(device -> device.getDevice().isConnected())
.sorted(COMPARATOR).collect(Collectors.toList());
}
@@ -212,13 +213,23 @@
IconCompat getBluetoothDeviceIcon(CachedBluetoothDevice device) {
final Pair<Drawable, String> pair = BluetoothUtils
.getBtClassDrawableWithDescription(mContext, device);
+ final Drawable drawable = pair.first;
- if (pair.first != null) {
- return Utils.createIconWithDrawable(pair.first);
- } else {
+ // Use default bluetooth icon if can't get icon.
+ if (drawable == null) {
return IconCompat.createWithResource(mContext,
- com.android.internal.R.drawable.ic_settings_bluetooth);
+ com.android.internal.R.drawable.ic_settings_bluetooth);
}
+
+ // Tint icon: Accent color for connected state; Disable color for busy state.
+ @ColorInt int color = Utils.getColorAccentDefaultColor(mContext);
+ if (device.isBusy()) {
+ color = Utils.getDisabled(mContext,
+ Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorControlNormal));
+ }
+ drawable.setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_IN));
+
+ return Utils.createIconWithDrawable(drawable);
}
private List<ListBuilder.RowBuilder> getBluetoothRowBuilder() {
@@ -226,18 +237,29 @@
final List<ListBuilder.RowBuilder> bluetoothRows = new ArrayList<>();
final List<CachedBluetoothDevice> bluetoothDevices = getConnectedBluetoothDevices();
for (CachedBluetoothDevice bluetoothDevice : bluetoothDevices) {
- bluetoothRows.add(new ListBuilder.RowBuilder()
+ final ListBuilder.RowBuilder rowBuilder = new ListBuilder.RowBuilder()
.setTitleItem(getBluetoothDeviceIcon(bluetoothDevice), ListBuilder.ICON_IMAGE)
.setTitle(bluetoothDevice.getName())
- .setSubtitle(bluetoothDevice.getConnectionSummary())
- .setPrimaryAction(buildBluetoothDeviceAction(bluetoothDevice))
- .addEndItem(buildBluetoothDetailDeepLinkAction(bluetoothDevice)));
+ .setSubtitle(bluetoothDevice.getConnectionSummary());
+
+ if (bluetoothDevice.isConnectedA2dpDevice()) {
+ // For available media devices, the primary action is to activate audio stream and
+ // add setting icon to the end to link detail page.
+ rowBuilder.setPrimaryAction(buildMediaBluetoothAction(bluetoothDevice));
+ rowBuilder.addEndItem(buildBluetoothDetailDeepLinkAction(bluetoothDevice));
+ } else {
+ // For other devices, the primary action is to link detail page.
+ rowBuilder.setPrimaryAction(buildBluetoothDetailDeepLinkAction(bluetoothDevice));
+ }
+
+ bluetoothRows.add(rowBuilder);
}
return bluetoothRows;
}
- private SliceAction buildBluetoothDeviceAction(CachedBluetoothDevice bluetoothDevice) {
+ @VisibleForTesting
+ SliceAction buildMediaBluetoothAction(CachedBluetoothDevice bluetoothDevice) {
// Send broadcast to activate available media device.
final Intent intent = new Intent(getUri().toString())
.setClass(mContext, SliceBroadcastReceiver.class)
@@ -250,10 +272,11 @@
bluetoothDevice.getName());
}
- private SliceAction buildBluetoothDetailDeepLinkAction(CachedBluetoothDevice bluetoothDevice) {
+ @VisibleForTesting
+ SliceAction buildBluetoothDetailDeepLinkAction(CachedBluetoothDevice bluetoothDevice) {
return SliceAction.createDeeplink(
getBluetoothDetailIntent(bluetoothDevice),
- IconCompat.createWithResource(mContext, R.drawable.ic_settings_24dp),
+ IconCompat.createWithResource(mContext, R.drawable.ic_settings_accent),
ListBuilder.ICON_IMAGE,
bluetoothDevice.getName());
}
diff --git a/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
index 48e9f1e..b9170a9 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
@@ -139,6 +139,8 @@
switch (holder.getItemViewType()) {
case VIEW_TYPE_DEFERRED_SETUP:
+ // Deferred setup is never dismissible.
+ break;
case VIEW_TYPE_HALF_WIDTH:
initDismissalActions(holder, card, R.id.content);
break;
diff --git a/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java b/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java
index ef0a67d..ee63536 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java
@@ -16,6 +16,7 @@
package com.android.settings.homepage.contextualcards.slices;
+import android.animation.LayoutTransition;
import android.content.Context;
import android.view.View;
@@ -94,6 +95,7 @@
public SliceViewHolder(View view) {
super(view);
sliceView = view.findViewById(R.id.slice_view);
+ sliceView.getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING);
}
}
}
diff --git a/src/com/android/settings/location/RecentLocationAccessPreferenceController.java b/src/com/android/settings/location/RecentLocationAccessPreferenceController.java
index 44d600e..a76d381 100644
--- a/src/com/android/settings/location/RecentLocationAccessPreferenceController.java
+++ b/src/com/android/settings/location/RecentLocationAccessPreferenceController.java
@@ -74,6 +74,7 @@
mController = AppEntitiesHeaderController.newInstance(mContext, view)
.setHeaderTitleRes(R.string.location_category_recent_location_access)
.setHeaderDetailsRes(R.string.location_recent_location_access_view_details)
+ .setHeaderEmptyRes(R.string.location_no_recent_accesses)
.setHeaderDetailsClickListener((View v) -> {
final Intent intent = new Intent(Intent.ACTION_REVIEW_PERMISSION_USAGE);
intent.putExtra(Intent.EXTRA_PERMISSION_NAME,
@@ -100,14 +101,20 @@
.setIcon(access.icon)
.setTitle(access.label)
.setSummary(access.contentDescription)
+ .setOnClickListener((v) -> {
+ final Intent intent = new Intent(Intent.ACTION_MANAGE_APP_PERMISSION);
+ intent.putExtra(Intent.EXTRA_PERMISSION_NAME,
+ Manifest.permission_group.LOCATION);
+ intent.putExtra(Intent.EXTRA_PACKAGE_NAME, access.packageName);
+ intent.putExtra(Intent.EXTRA_USER, access.userHandle);
+ mContext.startActivity(intent);
+ })
.build();
mController.setAppEntity(i, appEntityInfo);
}
for (; i < MAXIMUM_APP_COUNT; i++) {
mController.removeAppEntity(i);
}
- } else {
- // If there's no item to display, add a "No recent apps" item.
}
mController.apply();
}
diff --git a/src/com/android/settings/media/MediaDeviceUpdateWorker.java b/src/com/android/settings/media/MediaDeviceUpdateWorker.java
index 7416018..d1e55e4 100644
--- a/src/com/android/settings/media/MediaDeviceUpdateWorker.java
+++ b/src/com/android/settings/media/MediaDeviceUpdateWorker.java
@@ -70,7 +70,7 @@
@Override
public void close() {
-
+ mLocalMediaManager = null;
}
@Override
diff --git a/src/com/android/settings/media/MediaOutputSlice.java b/src/com/android/settings/media/MediaOutputSlice.java
index d52b441..e76bc88 100644
--- a/src/com/android/settings/media/MediaOutputSlice.java
+++ b/src/com/android/settings/media/MediaOutputSlice.java
@@ -20,13 +20,11 @@
import android.annotation.ColorInt;
import android.app.PendingIntent;
+import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.graphics.drawable.Drawable;
import android.net.Uri;
-import android.os.UserHandle;
-import android.util.IconDrawableFactory;
+import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.VisibleForTesting;
@@ -58,37 +56,53 @@
private MediaDeviceUpdateWorker mWorker;
private String mPackageName;
- private IconDrawableFactory mIconDrawableFactory;
public MediaOutputSlice(Context context) {
mContext = context;
mPackageName = getUri().getQueryParameter(MEDIA_PACKAGE_NAME);
- mIconDrawableFactory = IconDrawableFactory.newInstance(mContext);
}
@VisibleForTesting
- void init(String packageName, MediaDeviceUpdateWorker worker, IconDrawableFactory factory) {
+ void init(String packageName, MediaDeviceUpdateWorker worker) {
mPackageName = packageName;
mWorker = worker;
- mIconDrawableFactory = factory;
}
@Override
public Slice getSlice() {
- final PackageManager pm = mContext.getPackageManager();
+ final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+ if (!adapter.isEnabled()) {
+ Log.d(TAG, "getSlice() Bluetooth is off");
+ return null;
+ }
+
+ if (getWorker() == null) {
+ Log.d(TAG, "getSlice() Can not get worker through uri!");
+ return null;
+ }
final List<MediaDevice> devices = getMediaDevices();
- final CharSequence title = Utils.getApplicationLabel(mContext, mPackageName);
- final CharSequence summary =
- mContext.getString(R.string.media_output_panel_summary_of_playing_device,
- getConnectedDeviceName());
-
- final Drawable drawable =
- Utils.getBadgedIcon(mIconDrawableFactory, pm, mPackageName, UserHandle.myUserId());
- final IconCompat icon = Utils.createIconWithDrawable(drawable);
-
@ColorInt final int color = Utils.getColorAccentDefaultColor(mContext);
- final SliceAction primarySliceAction = SliceAction.createDeeplink(getPrimaryAction(), icon,
+
+ final MediaDevice connectedDevice = getWorker().getCurrentConnectedMediaDevice();
+ final ListBuilder listBuilder = buildActiveDeviceHeader(color, connectedDevice);
+
+ for (MediaDevice device : devices) {
+ if (!TextUtils.equals(connectedDevice.getId(), device.getId())) {
+ listBuilder.addRow(getMediaDeviceRow(device));
+ }
+ }
+
+ return listBuilder.build();
+ }
+
+ private ListBuilder buildActiveDeviceHeader(@ColorInt int color, MediaDevice device) {
+ final String title = device.getName();
+ final IconCompat icon = IconCompat.createWithResource(mContext, device.getIcon());
+
+ final PendingIntent broadcastAction =
+ getBroadcastIntent(mContext, device.getId(), device.hashCode());
+ final SliceAction primarySliceAction = SliceAction.createDeeplink(broadcastAction, icon,
ListBuilder.ICON_IMAGE, title);
final ListBuilder listBuilder = new ListBuilder(mContext, MEDIA_OUTPUT_SLICE_URI,
@@ -97,41 +111,27 @@
.addRow(new ListBuilder.RowBuilder()
.setTitleItem(icon, ListBuilder.ICON_IMAGE)
.setTitle(title)
- .setSubtitle(summary)
+ .setSubtitle(device.getSummary())
.setPrimaryAction(primarySliceAction));
- for (MediaDevice device : devices) {
- listBuilder.addRow(getMediaDeviceRow(device));
- }
-
- return listBuilder.build();
+ return listBuilder;
}
private MediaDeviceUpdateWorker getWorker() {
if (mWorker == null) {
mWorker = (MediaDeviceUpdateWorker) SliceBackgroundWorker.getInstance(getUri());
- mWorker.setPackageName(mPackageName);
+ if (mWorker != null) {
+ mWorker.setPackageName(mPackageName);
+ }
}
return mWorker;
}
private List<MediaDevice> getMediaDevices() {
- List<MediaDevice> devices = getWorker().getMediaDevices();
+ final List<MediaDevice> devices = getWorker().getMediaDevices();
return devices;
}
- private String getConnectedDeviceName() {
- final MediaDevice device = getWorker().getCurrentConnectedMediaDevice();
- return device != null ? device.getName() : "";
- }
-
- private PendingIntent getPrimaryAction() {
- final PackageManager pm = mContext.getPackageManager();
- final Intent launchIntent = pm.getLaunchIntentForPackage(mPackageName);
- final Intent intent = launchIntent;
- return PendingIntent.getActivity(mContext, 0 /* requestCode */, intent, 0 /* flags */);
- }
-
private ListBuilder.RowBuilder getMediaDeviceRow(MediaDevice device) {
final String title = device.getName();
final PendingIntent broadcastAction =
@@ -141,7 +141,8 @@
.setTitleItem(deviceIcon, ListBuilder.ICON_IMAGE)
.setPrimaryAction(SliceAction.create(broadcastAction, deviceIcon,
ListBuilder.ICON_IMAGE, title))
- .setTitle(title);
+ .setTitle(title)
+ .setSubtitle(device.getSummary());
return rowBuilder;
}
diff --git a/src/com/android/settings/network/MobileNetworkListController.java b/src/com/android/settings/network/MobileNetworkListController.java
index 7de6cdd..79715e3 100644
--- a/src/com/android/settings/network/MobileNetworkListController.java
+++ b/src/com/android/settings/network/MobileNetworkListController.java
@@ -24,14 +24,10 @@
import android.provider.Settings;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
+import android.telephony.euicc.EuiccManager;
import android.util.ArrayMap;
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleObserver;
-import androidx.lifecycle.OnLifecycleEvent;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
+import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.network.telephony.MobileNetworkActivity;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -39,6 +35,12 @@
import java.util.List;
import java.util.Map;
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleObserver;
+import androidx.lifecycle.OnLifecycleEvent;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
/**
* This populates the entries on a page which lists all available mobile subscriptions. Each entry
* has the name of the subscription with some subtext giving additional detail, and clicking on the
@@ -48,6 +50,9 @@
LifecycleObserver, SubscriptionsChangeListener.SubscriptionsChangeListenerClient {
private static final String TAG = "MobileNetworkListCtlr";
+ @VisibleForTesting
+ static final String KEY_ADD_MORE = "add_more";
+
private SubscriptionManager mSubscriptionManager;
private SubscriptionsChangeListener mChangeListener;
private PreferenceScreen mPreferenceScreen;
@@ -76,6 +81,8 @@
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
mPreferenceScreen = screen;
+ final EuiccManager euiccManager = mContext.getSystemService(EuiccManager.class);
+ mPreferenceScreen.findPreference(KEY_ADD_MORE).setVisible(euiccManager.isEnabled());
update();
}
@@ -93,7 +100,7 @@
final List<SubscriptionInfo> subscriptions = SubscriptionUtil.getAvailableSubscriptions(
mSubscriptionManager);
for (SubscriptionInfo info : subscriptions) {
- int subId = info.getSubscriptionId();
+ final int subId = info.getSubscriptionId();
Preference pref = existingPreferences.remove(subId);
if (pref == null) {
pref = new Preference(mPreferenceScreen.getContext());
diff --git a/src/com/android/settings/network/MobileNetworkSummaryController.java b/src/com/android/settings/network/MobileNetworkSummaryController.java
index dd282c6..56735ab 100644
--- a/src/com/android/settings/network/MobileNetworkSummaryController.java
+++ b/src/com/android/settings/network/MobileNetworkSummaryController.java
@@ -16,8 +16,6 @@
package com.android.settings.network;
-import static android.telephony.TelephonyManager.MultiSimVariants.UNKNOWN;
-
import static androidx.lifecycle.Lifecycle.Event.ON_PAUSE;
import static androidx.lifecycle.Lifecycle.Event.ON_RESUME;
@@ -25,10 +23,10 @@
import android.content.Intent;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
import android.telephony.euicc.EuiccManager;
import com.android.settings.R;
+import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.network.telephony.MobileNetworkActivity;
import com.android.settings.widget.AddPreference;
import com.android.settingslib.Utils;
@@ -43,14 +41,14 @@
import androidx.preference.PreferenceScreen;
public class MobileNetworkSummaryController extends AbstractPreferenceController implements
- SubscriptionsChangeListener.SubscriptionsChangeListenerClient, LifecycleObserver {
+ SubscriptionsChangeListener.SubscriptionsChangeListenerClient, LifecycleObserver,
+ PreferenceControllerMixin {
private static final String TAG = "MobileNetSummaryCtlr";
private static final String KEY = "mobile_network_list";
private SubscriptionManager mSubscriptionManager;
private SubscriptionsChangeListener mChangeListener;
- private TelephonyManager mTelephonyMgr;
private EuiccManager mEuiccManager;
private AddPreference mPreference;
@@ -72,10 +70,11 @@
public MobileNetworkSummaryController(Context context, Lifecycle lifecycle) {
super(context);
mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
- mTelephonyMgr = mContext.getSystemService(TelephonyManager.class);
mEuiccManager = mContext.getSystemService(EuiccManager.class);
- mChangeListener = new SubscriptionsChangeListener(context, this);
- lifecycle.addObserver(this);
+ if (lifecycle != null) {
+ mChangeListener = new SubscriptionsChangeListener(context, this);
+ lifecycle.addObserver(this);
+ }
}
@OnLifecycleEvent(ON_RESUME)
@@ -116,51 +115,47 @@
private void startAddSimFlow() {
final Intent intent = new Intent(EuiccManager.ACTION_PROVISION_EMBEDDED_SUBSCRIPTION);
+ intent.putExtra(EuiccManager.EXTRA_FORCE_PROVISION, true);
mContext.startActivity(intent);
}
- private boolean shouldShowAddButton() {
- // The add button should only show up if the device is in multi-sim mode and the eSIM
- // manager is enabled.
- return mTelephonyMgr.getMultiSimConfiguration() != UNKNOWN && mEuiccManager.isEnabled();
- }
-
private void update() {
if (mPreference == null) {
return;
}
- final boolean showAddButton = shouldShowAddButton();
refreshSummary(mPreference);
- if (!showAddButton) {
- mPreference.setOnAddClickListener(null);
- } else {
- mPreference.setAddWidgetEnabled(!mChangeListener.isAirplaneModeOn());
- mPreference.setOnAddClickListener(p -> {
- startAddSimFlow();
- });
- }
- final List<SubscriptionInfo> subs = SubscriptionUtil.getAvailableSubscriptions(
- mSubscriptionManager);
mPreference.setOnPreferenceClickListener(null);
+ mPreference.setOnAddClickListener(null);
mPreference.setFragment(null);
mPreference.setEnabled(!mChangeListener.isAirplaneModeOn());
+
+ final List<SubscriptionInfo> subs = SubscriptionUtil.getAvailableSubscriptions(
+ mSubscriptionManager);
+
if (subs.isEmpty()) {
- if (showAddButton) {
- mPreference.setEnabled(false);
- } else if (mEuiccManager.isEnabled()) {
+ if (mEuiccManager.isEnabled()) {
mPreference.setOnPreferenceClickListener((Preference pref) -> {
startAddSimFlow();
return true;
});
}
- } else if (subs.size() == 1) {
- mPreference.setOnPreferenceClickListener((Preference pref) -> {
- final Intent intent = new Intent(mContext, MobileNetworkActivity.class);
- mContext.startActivity(intent);
- return true;
- });
} else {
- mPreference.setFragment(MobileNetworkListFragment.class.getCanonicalName());
+ // We have one or more existing subscriptions, so we want the plus button if eSIM is
+ // supported.
+ if (mEuiccManager.isEnabled()) {
+ mPreference.setAddWidgetEnabled(!mChangeListener.isAirplaneModeOn());
+ mPreference.setOnAddClickListener(p -> startAddSimFlow());
+ }
+
+ if (subs.size() == 1) {
+ mPreference.setOnPreferenceClickListener((Preference pref) -> {
+ final Intent intent = new Intent(mContext, MobileNetworkActivity.class);
+ mContext.startActivity(intent);
+ return true;
+ });
+ } else {
+ mPreference.setFragment(MobileNetworkListFragment.class.getCanonicalName());
+ }
}
}
diff --git a/src/com/android/settings/network/NetworkDashboardFragment.java b/src/com/android/settings/network/NetworkDashboardFragment.java
index 7672c2e..8c686a5 100644
--- a/src/com/android/settings/network/NetworkDashboardFragment.java
+++ b/src/com/android/settings/network/NetworkDashboardFragment.java
@@ -168,7 +168,12 @@
public List<SearchIndexableResource> getXmlResourcesToIndex(
Context context, boolean enabled) {
final SearchIndexableResource sir = new SearchIndexableResource(context);
- sir.xmlResId = R.xml.network_and_internet;
+ if (FeatureFlagPersistent.isEnabled(context,
+ FeatureFlags.NETWORK_INTERNET_V2)) {
+ sir.xmlResId = R.xml.network_and_internet_v2;
+ } else {
+ sir.xmlResId = R.xml.network_and_internet;
+ }
return Arrays.asList(sir);
}
diff --git a/src/com/android/settings/network/TopLevelNetworkEntryPreferenceController.java b/src/com/android/settings/network/TopLevelNetworkEntryPreferenceController.java
index 567e52e..1136736 100644
--- a/src/com/android/settings/network/TopLevelNetworkEntryPreferenceController.java
+++ b/src/com/android/settings/network/TopLevelNetworkEntryPreferenceController.java
@@ -22,6 +22,7 @@
import android.text.TextUtils;
import com.android.settings.R;
+import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.wifi.WifiMasterSwitchPreferenceController;
@@ -45,7 +46,7 @@
@Override
public int getAvailabilityStatus() {
- return AVAILABLE_UNSEARCHABLE;
+ return Utils.isDemoUser(mContext) ? UNSUPPORTED_ON_DEVICE : AVAILABLE_UNSEARCHABLE;
}
@Override
diff --git a/src/com/android/settings/network/telephony/MobileDataSlice.java b/src/com/android/settings/network/telephony/MobileDataSlice.java
index 6efd8c3..5a5d6a2 100644
--- a/src/com/android/settings/network/telephony/MobileDataSlice.java
+++ b/src/com/android/settings/network/telephony/MobileDataSlice.java
@@ -74,8 +74,27 @@
final IconCompat icon = IconCompat.createWithResource(mContext,
R.drawable.ic_network_cell);
final String title = mContext.getText(R.string.mobile_data_settings_title).toString();
- final CharSequence summary = getSummary();
@ColorInt final int color = Utils.getColorAccentDefaultColor(mContext);
+
+ // 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();
+ }
+
+ final CharSequence summary = getSummary();
final PendingIntent toggleAction = getBroadcastIntent(mContext);
final PendingIntent primaryAction = getPrimaryAction();
final SliceAction primarySliceAction = SliceAction.createDeeplink(primaryAction, icon,
@@ -101,11 +120,6 @@
@Override
public void onNotifyChange(Intent intent) {
- // Don't make a change if we are in Airplane Mode.
- if (isAirplaneModeEnabled()) {
- return;
- }
-
final boolean newState = intent.getBooleanExtra(EXTRA_TOGGLE_STATE,
isMobileDataEnabled());
diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
index 088bfbf..47db875 100644
--- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java
+++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
@@ -27,7 +27,7 @@
import android.telephony.CarrierConfigManager;
import android.telephony.CellIdentity;
import android.telephony.CellInfo;
-import android.telephony.NetworkRegistrationState;
+import android.telephony.NetworkRegistrationInfo;
import android.telephony.ServiceState;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -304,7 +304,7 @@
* Config the connected network operator preference when the page was created. When user get
* into this page, the device might or might not have data connection.
* - If the device has data:
- * 1. use {@code ServiceState#getNetworkRegistrationStates()} to get the currently
+ * 1. use {@code ServiceState#getNetworkRegistrationInfoList()} to get the currently
* registered cellIdentity, wrap it into a CellInfo;
* 2. set the signal strength level as strong;
* 3. use {@link TelephonyManager#getNetworkOperatorName()} to get the title of the
@@ -317,8 +317,9 @@
if (mTelephonyManager.getDataState() == mTelephonyManager.DATA_CONNECTED) {
// Try to get the network registration states
ServiceState ss = mTelephonyManager.getServiceState();
- List<NetworkRegistrationState> networkList =
- ss.getNetworkRegistrationStates(AccessNetworkConstants.TransportType.WWAN);
+ List<NetworkRegistrationInfo> networkList =
+ ss.getNetworkRegistrationInfoListForTransportType(
+ AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
if (networkList == null || networkList.size() == 0) {
// Remove the connected network operators category
mConnectedPreferenceCategory.setVisible(false);
diff --git a/src/com/android/settings/nfc/SecureNfcPreferenceController.java b/src/com/android/settings/nfc/SecureNfcPreferenceController.java
index cbff3ea..12dbd57 100644
--- a/src/com/android/settings/nfc/SecureNfcPreferenceController.java
+++ b/src/com/android/settings/nfc/SecureNfcPreferenceController.java
@@ -52,12 +52,12 @@
@Override
public boolean isChecked() {
- return mNfcAdapter.isNfcSecureEnabled();
+ return mNfcAdapter.isSecureNfcEnabled();
}
@Override
public boolean setChecked(boolean isChecked) {
- return mNfcAdapter.setNfcSecure(isChecked);
+ return mNfcAdapter.enableSecureNfc(isChecked);
}
@Override
@@ -66,7 +66,7 @@
if (mNfcAdapter == null) {
return UNSUPPORTED_ON_DEVICE;
}
- return mNfcAdapter.deviceSupportsNfcSecure()
+ return mNfcAdapter.isSecureNfcSupported()
? AVAILABLE
: UNSUPPORTED_ON_DEVICE;
}
diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java
index 5553dd7..3ccca00 100644
--- a/src/com/android/settings/notification/AppNotificationSettings.java
+++ b/src/com/android/settings/notification/AppNotificationSettings.java
@@ -33,7 +33,6 @@
import com.android.internal.widget.LockPatternUtils;
import com.android.settings.R;
-import com.android.settings.widget.MasterCheckBoxPreference;
import com.android.settingslib.RestrictedSwitchPreference;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -138,6 +137,10 @@
context, mImportanceListener, mBackend));
mControllers.add(new ImportancePreferenceController(
context, mImportanceListener, mBackend));
+ mControllers.add(new MinImportancePreferenceController(
+ context, mImportanceListener, mBackend));
+ mControllers.add(new HighImportancePreferenceController(
+ context, mImportanceListener, mBackend));
mControllers.add(new SoundPreferenceController(context, this,
mImportanceListener, mBackend));
mControllers.add(new LightsPreferenceController(context, mBackend));
diff --git a/src/com/android/settings/notification/BubblePreferenceController.java b/src/com/android/settings/notification/BubblePreferenceController.java
index e61de4b..5b3be44 100644
--- a/src/com/android/settings/notification/BubblePreferenceController.java
+++ b/src/com/android/settings/notification/BubblePreferenceController.java
@@ -30,7 +30,7 @@
implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
private static final String TAG = "BubblePrefContr";
- private static final String KEY = "bubble";
+ private static final String KEY = "bubble_pref";
private static final int SYSTEM_WIDE_ON = 1;
private static final int SYSTEM_WIDE_OFF = 0;
diff --git a/src/com/android/settings/notification/ChannelNotificationSettings.java b/src/com/android/settings/notification/ChannelNotificationSettings.java
index f92e529..850fde2 100644
--- a/src/com/android/settings/notification/ChannelNotificationSettings.java
+++ b/src/com/android/settings/notification/ChannelNotificationSettings.java
@@ -94,9 +94,12 @@
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
mControllers = new ArrayList<>();
mControllers.add(new HeaderPreferenceController(context, this));
- mControllers.add(new BlockPreferenceController(context, mImportanceListener, mBackend));
mControllers.add(new ImportancePreferenceController(
context, mImportanceListener, mBackend));
+ mControllers.add(new MinImportancePreferenceController(
+ context, mImportanceListener, mBackend));
+ mControllers.add(new HighImportancePreferenceController(
+ context, mImportanceListener, mBackend));
mControllers.add(new AllowSoundPreferenceController(
context, mImportanceListener, mBackend));
mControllers.add(new SoundPreferenceController(context, this,
diff --git a/src/com/android/settings/notification/HighImportancePreferenceController.java b/src/com/android/settings/notification/HighImportancePreferenceController.java
new file mode 100644
index 0000000..fe843fd
--- /dev/null
+++ b/src/com/android/settings/notification/HighImportancePreferenceController.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
+import static android.app.NotificationManager.IMPORTANCE_HIGH;
+
+import android.app.NotificationChannel;
+import android.content.Context;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.RestrictedSwitchPreference;
+
+import androidx.preference.Preference;
+
+public class HighImportancePreferenceController extends NotificationPreferenceController
+ implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+
+ private static final String KEY_IMPORTANCE = "high_importance";
+ private NotificationSettingsBase.ImportanceListener mImportanceListener;
+
+ public HighImportancePreferenceController(Context context,
+ NotificationSettingsBase.ImportanceListener importanceListener,
+ NotificationBackend backend) {
+ super(context, backend);
+ mImportanceListener = importanceListener;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_IMPORTANCE;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
+ }
+ if (mChannel == null) {
+ return false;
+ }
+ if (isDefaultChannel()) {
+ return false;
+ }
+ return mChannel.getImportance() >= IMPORTANCE_DEFAULT;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ if (mAppRow!= null && mChannel != null) {
+ preference.setEnabled(mAdmin == null && isChannelConfigurable());
+
+ RestrictedSwitchPreference pref = (RestrictedSwitchPreference) preference;
+ pref.setChecked(mChannel.getImportance() >= IMPORTANCE_HIGH);
+ }
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ if (mChannel != null) {
+ final boolean checked = (boolean) newValue;
+
+ mChannel.setImportance(checked ? IMPORTANCE_HIGH : IMPORTANCE_DEFAULT);
+ mChannel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE);
+ saveChannel();
+ mImportanceListener.onImportanceChanged();
+ }
+ return true;
+ }
+}
diff --git a/src/com/android/settings/notification/ImportancePreference.java b/src/com/android/settings/notification/ImportancePreference.java
new file mode 100644
index 0000000..b8f3e45
--- /dev/null
+++ b/src/com/android/settings/notification/ImportancePreference.java
@@ -0,0 +1,172 @@
+/*
+ * 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.notification;
+
+import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
+import static android.app.NotificationManager.IMPORTANCE_HIGH;
+import static android.app.NotificationManager.IMPORTANCE_LOW;
+import static android.app.NotificationManager.IMPORTANCE_MIN;
+import static android.app.NotificationManager.IMPORTANCE_NONE;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
+import android.graphics.drawable.LayerDrawable;
+import android.util.ArrayMap;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.ImageButton;
+
+import com.android.settingslib.R;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+public class ImportancePreference extends Preference {
+
+ boolean mIsBlockable = true;
+ boolean mIsConfigurable = true;
+ int mImportance;
+ ImageButton blockButton;
+ ImageButton silenceButton;
+ ImageButton alertButton;
+ ArrayMap<ImageButton, Integer> mImageButtons = new ArrayMap<>();
+ Context mContext;
+
+ public ImportancePreference(Context context, AttributeSet attrs,
+ int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ init(context);
+ }
+
+ public ImportancePreference(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init(context);
+ }
+
+ public ImportancePreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init(context);
+ }
+
+ public ImportancePreference(Context context) {
+ super(context);
+ init(context);
+ }
+
+ private void init(Context context) {
+ mContext = context;
+ setLayoutResource(R.layout.notif_importance_preference);
+ }
+
+ public void setImportance(int importance) {
+ mImportance = importance;
+ }
+
+ public void setBlockable(boolean blockable) {
+ mIsBlockable = blockable;
+ }
+
+ public void setConfigurable(boolean configurable) {
+ mIsConfigurable = configurable;
+ }
+
+ @Override
+ public void onBindViewHolder(PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+
+ View blockView = holder.itemView.findViewById(R.id.block);
+ View alertView = holder.itemView.findViewById(R.id.alert);
+ View silenceView = holder.itemView.findViewById(R.id.silence);
+ if (!mIsBlockable) {
+ blockView.setVisibility(View.GONE);
+ if (mImportance == IMPORTANCE_NONE) {
+ mImportance = IMPORTANCE_LOW;
+ callChangeListener(IMPORTANCE_LOW);
+ }
+
+ }
+ blockButton = blockView.findViewById(R.id.block_icon);
+ silenceButton = silenceView.findViewById(R.id.silence_icon);
+ alertButton = alertView.findViewById(R.id.alert_icon);
+ mImageButtons.put(blockButton, mContext.getColor(R.color.notification_block_color));
+ mImageButtons.put(silenceButton, mContext.getColor(R.color.notification_silence_color));
+ mImageButtons.put(alertButton, mContext.getColor(R.color.notification_alert_color));
+
+ switch (mImportance) {
+ case IMPORTANCE_NONE:
+ colorizeImageButton(blockButton.getId());
+ if (!mIsConfigurable) {
+ alertView.setVisibility(View.GONE);
+ silenceView.setVisibility(View.GONE);
+ }
+ break;
+ case IMPORTANCE_MIN:
+ case IMPORTANCE_LOW:
+ colorizeImageButton(silenceButton.getId());
+ if (!mIsConfigurable) {
+ alertView.setVisibility(View.GONE);
+ blockView.setVisibility(View.GONE);
+ }
+ break;
+ case IMPORTANCE_HIGH:
+ default:
+ colorizeImageButton(alertButton.getId());
+ if (!mIsConfigurable) {
+ blockView.setVisibility(View.GONE);
+ silenceView.setVisibility(View.GONE);
+ }
+ break;
+ }
+
+ blockButton.setOnClickListener(v -> {
+ callChangeListener(IMPORTANCE_NONE);
+ colorizeImageButton(blockButton.getId());
+ });
+ silenceButton.setOnClickListener(v -> {
+ callChangeListener(IMPORTANCE_LOW);
+ colorizeImageButton(silenceButton.getId());
+ });
+ alertButton.setOnClickListener(v -> {
+ callChangeListener(IMPORTANCE_DEFAULT);
+ colorizeImageButton(alertButton.getId());
+ });
+ }
+
+ private void colorizeImageButton(int buttonId) {
+ if (mImageButtons != null) {
+ for (int i = 0; i < mImageButtons.size(); i++) {
+ final ImageButton imageButton = mImageButtons.keyAt(i);
+ final int color = mImageButtons.valueAt(i);
+ if (imageButton != null) {
+ LayerDrawable drawable = (LayerDrawable) imageButton.getDrawable();
+ Drawable foreground = drawable.findDrawableByLayerId(R.id.fore);
+ GradientDrawable background =
+ (GradientDrawable) drawable.findDrawableByLayerId(R.id.back);
+ if (buttonId == imageButton.getId()) {
+ foreground.setTint(Color.WHITE);
+ background.setColor(color);
+ } else {
+ foreground.setTint(color);
+ background.setColor(Color.TRANSPARENT);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/com/android/settings/notification/ImportancePreferenceController.java b/src/com/android/settings/notification/ImportancePreferenceController.java
index 4c20a46..0955571 100644
--- a/src/com/android/settings/notification/ImportancePreferenceController.java
+++ b/src/com/android/settings/notification/ImportancePreferenceController.java
@@ -18,21 +18,15 @@
import static android.app.NotificationChannel.USER_LOCKED_SOUND;
import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
-import static android.app.NotificationManager.IMPORTANCE_HIGH;
-import static android.app.NotificationManager.IMPORTANCE_MIN;
-import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED;
import android.app.NotificationChannel;
-import android.app.NotificationManager;
import android.content.Context;
import android.media.RingtoneManager;
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.RestrictedListPreference;
import com.android.settings.core.PreferenceControllerMixin;
+import androidx.preference.Preference;
+
public class ImportancePreferenceController extends NotificationPreferenceController
implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
@@ -53,44 +47,33 @@
@Override
public boolean isAvailable() {
- if (!super.isAvailable()) {
+ if (mAppRow == null) {
return false;
}
if (mChannel == null) {
return false;
}
- return !isDefaultChannel();
+ if (isDefaultChannel()) {
+ return false;
+ }
+ return true;
}
@Override
public void updateState(Preference preference) {
if (mAppRow!= null && mChannel != null) {
preference.setEnabled(mAdmin == null && isChannelConfigurable());
- preference.setSummary(getImportanceSummary(mChannel));
-
- int importances = IMPORTANCE_HIGH - IMPORTANCE_MIN + 1;
- CharSequence[] entries = new CharSequence[importances];
- CharSequence[] values = new CharSequence[importances];
-
- int index = 0;
- for (int i = IMPORTANCE_HIGH; i >= IMPORTANCE_MIN; i--) {
- NotificationChannel channel = new NotificationChannel("", "", i);
- entries[index] = getImportanceSummary(channel);
- values[index] = String.valueOf(i);
- index++;
- }
-
- RestrictedListPreference pref = (RestrictedListPreference) preference;
- pref.setEntries(entries);
- pref.setEntryValues(values);
- pref.setValue(String.valueOf(mChannel.getImportance()));
+ ImportancePreference pref = (ImportancePreference) preference;
+ pref.setBlockable(isChannelBlockable());
+ pref.setConfigurable(isChannelConfigurable());
+ pref.setImportance(mChannel.getImportance());
}
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (mChannel != null) {
- final int importance = Integer.parseInt((String) newValue);
+ final int importance = (Integer) newValue;
// If you are moving from an importance level without sound to one with sound,
// but the sound you had selected was "Silence",
@@ -111,39 +94,4 @@
}
return true;
}
-
- protected String getImportanceSummary(NotificationChannel channel) {
- String summary = "";
- int importance = channel.getImportance();
- switch (importance) {
- case IMPORTANCE_UNSPECIFIED:
- summary = mContext.getString(R.string.notification_importance_unspecified);
- break;
- case NotificationManager.IMPORTANCE_MIN:
- summary = mContext.getString(R.string.notification_importance_min);
- break;
- case NotificationManager.IMPORTANCE_LOW:
- summary = mContext.getString(R.string.notification_importance_low);
- break;
- case NotificationManager.IMPORTANCE_DEFAULT:
- if (SoundPreferenceController.hasValidSound(channel)) {
- summary = mContext.getString(R.string.notification_importance_default);
- } else {
- summary = mContext.getString(R.string.notification_importance_low);
- }
- break;
- case NotificationManager.IMPORTANCE_HIGH:
- case NotificationManager.IMPORTANCE_MAX:
- if (SoundPreferenceController.hasValidSound(channel)) {
- summary = mContext.getString(R.string.notification_importance_high);
- } else {
- summary = mContext.getString(R.string.notification_importance_high_silent);
- }
- break;
- default:
- return "";
- }
-
- return summary;
- }
}
diff --git a/src/com/android/settings/notification/MinImportancePreferenceController.java b/src/com/android/settings/notification/MinImportancePreferenceController.java
new file mode 100644
index 0000000..771ac60
--- /dev/null
+++ b/src/com/android/settings/notification/MinImportancePreferenceController.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import static android.app.NotificationManager.IMPORTANCE_LOW;
+import static android.app.NotificationManager.IMPORTANCE_MIN;
+
+import android.app.NotificationChannel;
+import android.content.Context;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.RestrictedSwitchPreference;
+
+import androidx.preference.Preference;
+
+public class MinImportancePreferenceController extends NotificationPreferenceController
+ implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+
+ private static final String KEY_IMPORTANCE = "min_importance";
+ private NotificationSettingsBase.ImportanceListener mImportanceListener;
+
+ public MinImportancePreferenceController(Context context,
+ NotificationSettingsBase.ImportanceListener importanceListener,
+ NotificationBackend backend) {
+ super(context, backend);
+ mImportanceListener = importanceListener;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_IMPORTANCE;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
+ }
+ if (mChannel == null) {
+ return false;
+ }
+ if (isDefaultChannel()) {
+ return false;
+ }
+ return mChannel.getImportance() <= IMPORTANCE_LOW;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ if (mAppRow!= null && mChannel != null) {
+ preference.setEnabled(mAdmin == null && isChannelConfigurable());
+
+ RestrictedSwitchPreference pref = (RestrictedSwitchPreference) preference;
+ pref.setChecked(mChannel.getImportance() == IMPORTANCE_MIN);
+ }
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ if (mChannel != null) {
+ final boolean checked = (boolean) newValue;
+
+ mChannel.setImportance(checked ? IMPORTANCE_MIN : IMPORTANCE_LOW);
+ mChannel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE);
+ saveChannel();
+ mImportanceListener.onImportanceChanged();
+ }
+ return true;
+ }
+}
diff --git a/src/com/android/settings/notification/NotificationAssistantPicker.java b/src/com/android/settings/notification/NotificationAssistantPicker.java
index 7720e6f..868e0a9 100644
--- a/src/com/android/settings/notification/NotificationAssistantPicker.java
+++ b/src/com/android/settings/notification/NotificationAssistantPicker.java
@@ -20,12 +20,15 @@
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageItemInfo;
+import android.content.pm.PackageManager;
import android.content.pm.ServiceInfo;
import android.graphics.drawable.Drawable;
+import android.os.RemoteException;
import android.provider.SearchIndexableResource;
import android.provider.Settings;
import android.service.notification.NotificationAssistantService;
import android.text.TextUtils;
+import android.util.Log;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
@@ -114,8 +117,12 @@
List<CandidateInfo> list = new ArrayList<>();
services.sort(new PackageItemInfo.DisplayNameComparator(mPm));
for (ServiceInfo service : services) {
- final ComponentName cn = new ComponentName(service.packageName, service.name);
- list.add(new DefaultAppInfo(mContext, mPm, mUserId, cn));
+ if (mContext.getPackageManager().checkPermission(
+ android.Manifest.permission.REQUEST_NOTIFICATION_ASSISTANT_SERVICE,
+ service.packageName) == PackageManager.PERMISSION_GRANTED) {
+ final ComponentName cn = new ComponentName(service.packageName, service.name);
+ list.add(new DefaultAppInfo(mContext, mPm, mUserId, cn));
+ }
}
list.add(new CandidateNone(mContext));
mCandidateInfos = list;
diff --git a/src/com/android/settings/notification/NotificationLockscreenPreference.java b/src/com/android/settings/notification/NotificationLockscreenPreference.java
index 8c04e16..b236014 100644
--- a/src/com/android/settings/notification/NotificationLockscreenPreference.java
+++ b/src/com/android/settings/notification/NotificationLockscreenPreference.java
@@ -27,7 +27,6 @@
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
-import android.widget.ListAdapter;
import android.widget.ListView;
import androidx.appcompat.app.AlertDialog;
@@ -78,7 +77,8 @@
DialogInterface.OnClickListener innerListener) {
mListener = new Listener(innerListener);
- builder.setSingleChoiceItems(createListAdapter(), getSelectedValuePos(), mListener);
+ builder.setSingleChoiceItems(createListAdapter(builder.getContext()), getSelectedValuePos(),
+ mListener);
mShowRemoteInput = getEntryValues().length == 3;
mAllowRemoteInput = Settings.Secure.getInt(getContext().getContentResolver(),
Settings.Secure.LOCK_SCREEN_ALLOW_REMOTE_INPUT, 0) != 0;
@@ -117,11 +117,6 @@
}
@Override
- protected ListAdapter createListAdapter() {
- return new RestrictedArrayAdapter(getContext(), getEntries(), -1);
- }
-
- @Override
protected void onDialogClosed(boolean positiveResult) {
super.onDialogClosed(positiveResult);
Settings.Secure.putInt(getContext().getContentResolver(),
diff --git a/src/com/android/settings/notification/NotificationPreferenceController.java b/src/com/android/settings/notification/NotificationPreferenceController.java
index 22f07be..3f535fb 100644
--- a/src/com/android/settings/notification/NotificationPreferenceController.java
+++ b/src/com/android/settings/notification/NotificationPreferenceController.java
@@ -111,6 +111,9 @@
}
protected boolean isChannelConfigurable() {
+ if (mAppRow != null && mAppRow.lockedImportance) {
+ return false;
+ }
if (mChannel != null && mAppRow != null) {
return !Objects.equals(mChannel.getId(), mAppRow.lockedChannelId);
}
diff --git a/src/com/android/settings/notification/RemoteVolumePreferenceController.java b/src/com/android/settings/notification/RemoteVolumePreferenceController.java
new file mode 100644
index 0000000..37a493e
--- /dev/null
+++ b/src/com/android/settings/notification/RemoteVolumePreferenceController.java
@@ -0,0 +1,261 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.media.session.MediaController;
+import android.media.session.MediaSession;
+import android.media.session.MediaSessionManager;
+import android.net.Uri;
+import android.os.Looper;
+import android.text.TextUtils;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.lifecycle.OnLifecycleEvent;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.slices.SliceBackgroundWorker;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.volume.MediaSessions;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Objects;
+
+public class RemoteVolumePreferenceController extends
+ VolumeSeekBarPreferenceController {
+
+ private static final String KEY_REMOTE_VOLUME = "remote_volume";
+ @VisibleForTesting
+ static final int REMOTE_VOLUME = 100;
+
+ private MediaSessionManager mMediaSessionManager;
+ private MediaSessions mMediaSessions;
+ @VisibleForTesting
+ MediaSession.Token mActiveToken;
+ @VisibleForTesting
+ MediaController mMediaController;
+
+ @VisibleForTesting
+ MediaSessions.Callbacks mCallbacks = new MediaSessions.Callbacks() {
+ @Override
+ public void onRemoteUpdate(MediaSession.Token token, String name,
+ MediaController.PlaybackInfo pi) {
+ if (mActiveToken == null) {
+ updateToken(token);
+ }
+ if (Objects.equals(mActiveToken, token)) {
+ updatePreference(mPreference, mActiveToken, pi);
+ }
+ }
+
+ @Override
+ public void onRemoteRemoved(MediaSession.Token t) {
+ if (Objects.equals(mActiveToken, t)) {
+ updateToken(null);
+ if (mPreference != null) {
+ mPreference.setVisible(false);
+ }
+ }
+ }
+
+ @Override
+ public void onRemoteVolumeChanged(MediaSession.Token token, int flags) {
+ if (Objects.equals(mActiveToken, token)) {
+ final MediaController.PlaybackInfo pi = mMediaController.getPlaybackInfo();
+ if (pi != null) {
+ setSliderPosition(pi.getCurrentVolume());
+ }
+ }
+ }
+ };
+
+ public RemoteVolumePreferenceController(Context context) {
+ super(context, KEY_REMOTE_VOLUME);
+ mMediaSessionManager = context.getSystemService(MediaSessionManager.class);
+ mMediaSessions = new MediaSessions(context, Looper.getMainLooper(), mCallbacks);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ final List<MediaController> controllers = mMediaSessionManager.getActiveSessions(null);
+ for (MediaController mediaController : controllers) {
+ final MediaController.PlaybackInfo pi = mediaController.getPlaybackInfo();
+ if (isRemote(pi)) {
+ updateToken(mediaController.getSessionToken());
+ return AVAILABLE;
+ }
+ }
+
+ // No active remote media at this point
+ return CONDITIONALLY_UNAVAILABLE;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ if (mMediaController != null) {
+ updatePreference(mPreference, mActiveToken, mMediaController.getPlaybackInfo());
+ }
+ }
+
+ @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
+ public void onResume() {
+ super.onResume();
+ mMediaSessions.init();
+ }
+
+ @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
+ public void onPause() {
+ super.onPause();
+ mMediaSessions.destroy();
+ }
+
+ @Override
+ public int getSliderPosition() {
+ if (mPreference != null) {
+ return mPreference.getProgress();
+ }
+ if (mMediaController == null) {
+ return 0;
+ }
+ final MediaController.PlaybackInfo playbackInfo = mMediaController.getPlaybackInfo();
+ return playbackInfo != null ? playbackInfo.getCurrentVolume() : 0;
+ }
+
+ @Override
+ public boolean setSliderPosition(int position) {
+ if (mPreference != null) {
+ mPreference.setProgress(position);
+ }
+ if (mMediaController == null) {
+ return false;
+ }
+ mMediaController.setVolumeTo(position, 0);
+ return true;
+ }
+
+ @Override
+ public int getMaxSteps() {
+ if (mPreference != null) {
+ return mPreference.getMax();
+ }
+ if (mMediaController == null) {
+ return 0;
+ }
+ final MediaController.PlaybackInfo playbackInfo = mMediaController.getPlaybackInfo();
+ return playbackInfo != null ? playbackInfo.getMaxVolume() : 0;
+ }
+
+ @Override
+ public boolean isSliceable() {
+ return TextUtils.equals(getPreferenceKey(), KEY_REMOTE_VOLUME);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_REMOTE_VOLUME;
+ }
+
+ @Override
+ public int getAudioStream() {
+ // This can be anything because remote volume controller doesn't rely on it.
+ return REMOTE_VOLUME;
+ }
+
+ @Override
+ public int getMuteIcon() {
+ return R.drawable.ic_volume_remote_mute;
+ }
+
+ public static boolean isRemote(MediaController.PlaybackInfo pi) {
+ return pi != null
+ && pi.getPlaybackType() == MediaController.PlaybackInfo.PLAYBACK_TYPE_REMOTE;
+ }
+
+ @Override
+ public Class<? extends SliceBackgroundWorker> getBackgroundWorkerClass() {
+ return RemoteVolumeSliceWorker.class;
+ }
+
+ private void updatePreference(VolumeSeekBarPreference seekBarPreference,
+ MediaSession.Token token, MediaController.PlaybackInfo playbackInfo) {
+ if (seekBarPreference == null || token == null || playbackInfo == null) {
+ return;
+ }
+
+ seekBarPreference.setMax(playbackInfo.getMaxVolume());
+ seekBarPreference.setVisible(true);
+ setSliderPosition(playbackInfo.getCurrentVolume());
+ }
+
+ private void updateToken(MediaSession.Token token) {
+ mActiveToken = token;
+ if (token != null) {
+ mMediaController = new MediaController(mContext, mActiveToken);
+ } else {
+ mMediaController = null;
+ }
+ }
+
+ /**
+ * Listener for background change to remote volume, which listens callback
+ * from {@code MediaSessions}
+ */
+ public static class RemoteVolumeSliceWorker extends SliceBackgroundWorker<Void> implements
+ MediaSessions.Callbacks {
+
+ private MediaSessions mMediaSessions;
+
+ public RemoteVolumeSliceWorker(Context context, Uri uri) {
+ super(context, uri);
+ mMediaSessions = new MediaSessions(context, Looper.getMainLooper(), this);
+ }
+
+ @Override
+ protected void onSlicePinned() {
+ mMediaSessions.init();
+ }
+
+ @Override
+ protected void onSliceUnpinned() {
+ mMediaSessions.destroy();
+ }
+
+ @Override
+ public void close() throws IOException {
+ mMediaSessions = null;
+ }
+
+ @Override
+ public void onRemoteUpdate(MediaSession.Token token, String name,
+ MediaController.PlaybackInfo pi) {
+ notifySliceChange();
+ }
+
+ @Override
+ public void onRemoteRemoved(MediaSession.Token t) {
+ notifySliceChange();
+ }
+
+ @Override
+ public void onRemoteVolumeChanged(MediaSession.Token token, int flags) {
+ notifySliceChange();
+ }
+ }
+}
diff --git a/src/com/android/settings/notification/RemoteVolumeSeekBarPreference.java b/src/com/android/settings/notification/RemoteVolumeSeekBarPreference.java
new file mode 100644
index 0000000..e99af6a
--- /dev/null
+++ b/src/com/android/settings/notification/RemoteVolumeSeekBarPreference.java
@@ -0,0 +1,56 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+import android.util.AttributeSet;
+
+/**
+ * A slider preference that controls remote volume, which doesn't go through
+ * {@link android.media.AudioManager}
+ **/
+public class RemoteVolumeSeekBarPreference extends VolumeSeekBarPreference {
+
+ public RemoteVolumeSeekBarPreference(Context context, AttributeSet attrs, int defStyleAttr,
+ int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ }
+
+ public RemoteVolumeSeekBarPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+ public RemoteVolumeSeekBarPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public RemoteVolumeSeekBarPreference(Context context) {
+ super(context);
+ }
+
+ @Override
+ public void setStream(int stream) {
+ // Do nothing here, volume is not controlled by AudioManager
+ }
+
+ @Override
+ protected void init() {
+ if (mSeekBar == null) return;
+ updateIconView();
+ updateSuppressionText();
+ }
+}
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index e8b7ee0..eec0fb8 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -38,7 +38,6 @@
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.sound.HandsFreeProfileOutputPreferenceController;
-import com.android.settings.sound.MediaOutputPreferenceController;
import com.android.settings.widget.PreferenceCategoryController;
import com.android.settings.widget.UpdatableListPreferenceDialogFragment;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -77,7 +76,6 @@
private RingtonePreference mRequestPreference;
private UpdatableListPreferenceDialogFragment mDialogFragment;
- private String mMediaOutputControllerKey;
private String mHfpOutputControllerKey;
@Override
@@ -132,8 +130,6 @@
final int metricsCategory;
if (mHfpOutputControllerKey.equals(preference.getKey())) {
metricsCategory = SettingsEnums.DIALOG_SWITCH_HFP_DEVICES;
- } else if (mMediaOutputControllerKey.equals(preference.getKey())) {
- metricsCategory = SettingsEnums.DIALOG_SWITCH_A2DP_DEVICES;
} else {
metricsCategory = Instrumentable.METRICS_CATEGORY_UNKNOWN;
}
@@ -184,10 +180,8 @@
volumeControllers.add(use(RingVolumePreferenceController.class));
volumeControllers.add(use(NotificationVolumePreferenceController.class));
volumeControllers.add(use(CallVolumePreferenceController.class));
+ volumeControllers.add(use(RemoteVolumePreferenceController.class));
- use(MediaOutputPreferenceController.class).setCallback(listPreference ->
- onPreferenceDataChanged(listPreference));
- mMediaOutputControllerKey = use(MediaOutputPreferenceController.class).getPreferenceKey();
use(HandsFreeProfileOutputPreferenceController.class).setCallback(listPreference ->
onPreferenceDataChanged(listPreference));
mHfpOutputControllerKey =
diff --git a/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java b/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
index f1ce0af..cbf909f 100644
--- a/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
+++ b/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
@@ -130,17 +130,8 @@
}
private boolean isRampingRingerEnabled() {
- String enableRampingRinger = DeviceConfig.getProperty(
- DeviceConfig.Telephony.NAMESPACE,
- DeviceConfig.Telephony.RAMPING_RINGER_ENABLED);
- if (enableRampingRinger == null) {
- return false;
- }
- try {
- return Boolean.valueOf(enableRampingRinger);
- } catch (Exception e) {
- return false;
- }
+ return DeviceConfig.getBoolean(DeviceConfig.Telephony.NAMESPACE,
+ DeviceConfig.Telephony.RAMPING_RINGER_ENABLED, false);
}
}
diff --git a/src/com/android/settings/notification/VolumeSeekBarPreference.java b/src/com/android/settings/notification/VolumeSeekBarPreference.java
index 13f6300..7f36791 100644
--- a/src/com/android/settings/notification/VolumeSeekBarPreference.java
+++ b/src/com/android/settings/notification/VolumeSeekBarPreference.java
@@ -40,8 +40,8 @@
public class VolumeSeekBarPreference extends SeekBarPreference {
private static final String TAG = "VolumeSeekBarPreference";
+ protected SeekBar mSeekBar;
private int mStream;
- private SeekBar mSeekBar;
private SeekBarVolumizer mVolumizer;
private Callback mCallback;
private ImageView mIconView;
@@ -121,7 +121,7 @@
init();
}
- private void init() {
+ protected void init() {
if (mSeekBar == null) return;
final SeekBarVolumizer.Callback sbvc = new SeekBarVolumizer.Callback() {
@Override
@@ -158,7 +158,7 @@
}
}
- private void updateIconView() {
+ protected void updateIconView() {
if (mIconView == null) return;
if (mIconResId != 0) {
mIconView.setImageResource(mIconResId);
@@ -195,7 +195,7 @@
updateSuppressionText();
}
- private void updateSuppressionText() {
+ protected void updateSuppressionText() {
if (mSuppressionTextView != null && mSeekBar != null) {
mSuppressionTextView.setText(mSuppressionText);
final boolean showSuppression = !TextUtils.isEmpty(mSuppressionText);
diff --git a/src/com/android/settings/notification/ZenRulePreference.java b/src/com/android/settings/notification/ZenRulePreference.java
index 613eb1d..8bc602a 100644
--- a/src/com/android/settings/notification/ZenRulePreference.java
+++ b/src/com/android/settings/notification/ZenRulePreference.java
@@ -171,6 +171,9 @@
getSettingsActivity(rule, si);
mIntent = AbstractZenModeAutomaticRulePreferenceController.getRuleIntent(action,
settingsActivity, mId);
+ if (mIntent.resolveActivity(mPm) == null) {
+ mIntent = null;
+ }
setKey(mId);
}
diff --git a/src/com/android/settings/panel/NfcPanel.java b/src/com/android/settings/panel/NfcPanel.java
index 8fa41d9..6a9c74d 100644
--- a/src/com/android/settings/panel/NfcPanel.java
+++ b/src/com/android/settings/panel/NfcPanel.java
@@ -1,3 +1,19 @@
+/*
+ * 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.panel;
import android.app.settings.SettingsEnums;
diff --git a/src/com/android/settings/panel/PanelFeatureProviderImpl.java b/src/com/android/settings/panel/PanelFeatureProviderImpl.java
index 6b096a1..67c300f 100644
--- a/src/com/android/settings/panel/PanelFeatureProviderImpl.java
+++ b/src/com/android/settings/panel/PanelFeatureProviderImpl.java
@@ -28,12 +28,14 @@
switch (panelType) {
case Settings.Panel.ACTION_INTERNET_CONNECTIVITY:
return InternetConnectivityPanel.create(context);
- case Settings.Panel.ACTION_VOLUME:
- return VolumePanel.create(context);
- case Settings.Panel.ACTION_NFC:
- return NfcPanel.create(context);
case ACTION_MEDIA_OUTPUT:
return MediaOutputPanel.create(context, mediaPackageName);
+ case Settings.Panel.ACTION_NFC:
+ return NfcPanel.create(context);
+ case Settings.Panel.ACTION_WIFI:
+ return WifiPanel.create(context);
+ case Settings.Panel.ACTION_VOLUME:
+ return VolumePanel.create(context);
}
throw new IllegalStateException("No matching panel for: " + panelType);
diff --git a/src/com/android/settings/panel/PanelSlicesAdapter.java b/src/com/android/settings/panel/PanelSlicesAdapter.java
index c1cb049..47ff631 100644
--- a/src/com/android/settings/panel/PanelSlicesAdapter.java
+++ b/src/com/android/settings/panel/PanelSlicesAdapter.java
@@ -94,6 +94,7 @@
super(view);
sliceView = view.findViewById(R.id.slice_view);
sliceView.setMode(SliceView.MODE_LARGE);
+ sliceView.showTitleItems(true);
mPanelContent = panelContent;
}
diff --git a/src/com/android/settings/panel/SettingsPanelActivity.java b/src/com/android/settings/panel/SettingsPanelActivity.java
index 3819c80..8aee382 100644
--- a/src/com/android/settings/panel/SettingsPanelActivity.java
+++ b/src/com/android/settings/panel/SettingsPanelActivity.java
@@ -16,13 +16,11 @@
package com.android.settings.panel;
-import static com.android.settingslib.media.MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT;
import static com.android.settingslib.media.MediaOutputSliceConstants.EXTRA_PACKAGE_NAME;
import android.app.settings.SettingsEnums;
import android.content.Intent;
import android.os.Bundle;
-import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.MotionEvent;
@@ -75,15 +73,8 @@
return;
}
- final String mediaPackageName =
- callingIntent.getStringExtra(EXTRA_PACKAGE_NAME);
-
- if (TextUtils.equals(ACTION_MEDIA_OUTPUT, callingIntent.getAction())
- && TextUtils.isEmpty(mediaPackageName)) {
- Log.e(TAG, "Missing EXTRA_PACKAGE_NAME, closing Panel Activity");
- finish();
- return;
- }
+ // We will use it once media output switch panel support remote device.
+ final String mediaPackageName = callingIntent.getStringExtra(EXTRA_PACKAGE_NAME);
setContentView(R.layout.settings_panel);
diff --git a/src/com/android/settings/panel/VolumePanel.java b/src/com/android/settings/panel/VolumePanel.java
index 20c2272..62eca53 100644
--- a/src/com/android/settings/panel/VolumePanel.java
+++ b/src/com/android/settings/panel/VolumePanel.java
@@ -19,6 +19,7 @@
import static com.android.settings.slices.CustomSliceRegistry.VOLUME_ALARM_URI;
import static com.android.settings.slices.CustomSliceRegistry.VOLUME_CALL_URI;
import static com.android.settings.slices.CustomSliceRegistry.VOLUME_MEDIA_URI;
+import static com.android.settings.slices.CustomSliceRegistry.VOLUME_REMOTE_MEDIA_URI;
import static com.android.settings.slices.CustomSliceRegistry.VOLUME_RINGER_URI;
import android.app.settings.SettingsEnums;
@@ -52,6 +53,7 @@
@Override
public List<Uri> getSlices() {
final List<Uri> uris = new ArrayList<>();
+ uris.add(VOLUME_REMOTE_MEDIA_URI);
uris.add(VOLUME_MEDIA_URI);
uris.add(VOLUME_CALL_URI);
uris.add(VOLUME_RINGER_URI);
diff --git a/src/com/android/settings/panel/WifiPanel.java b/src/com/android/settings/panel/WifiPanel.java
new file mode 100644
index 0000000..6d83742
--- /dev/null
+++ b/src/com/android/settings/panel/WifiPanel.java
@@ -0,0 +1,77 @@
+/*
+ * 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.panel;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+
+import com.android.settings.R;
+import com.android.settings.SubSettings;
+import com.android.settings.network.NetworkDashboardFragment;
+import com.android.settings.slices.CustomSliceRegistry;
+import com.android.settings.slices.SliceBuilderUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Panel data class for Wifi settings.
+ */
+public class WifiPanel implements PanelContent {
+
+ private final Context mContext;
+
+ public static WifiPanel create(Context context) {
+ return new WifiPanel(context);
+ }
+
+ private WifiPanel(Context context) {
+ mContext = context.getApplicationContext();
+ }
+
+ @Override
+ public CharSequence getTitle() {
+ return mContext.getText(R.string.wifi_settings);
+ }
+
+ @Override
+ public List<Uri> getSlices() {
+ final List<Uri> uris = new ArrayList<>();
+ uris.add(CustomSliceRegistry.WIFI_SLICE_URI);
+ return uris;
+ }
+
+ @Override
+ public Intent getSeeMoreIntent() {
+ final String screenTitle =
+ mContext.getText(R.string.network_dashboard_title).toString();
+ final Intent intent = SliceBuilderUtils.buildSearchResultPageIntent(mContext,
+ NetworkDashboardFragment.class.getName(),
+ null /* key */,
+ screenTitle,
+ SettingsEnums.SETTINGS_NETWORK_CATEGORY);
+ intent.setClassName(mContext.getPackageName(), SubSettings.class.getName());
+ return intent;
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return SettingsEnums.PANEL_WIFI;
+ }
+}
diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
index ec1e835..d3d5c49 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
@@ -198,7 +198,7 @@
} else if (isManagedProfile && isInternalActivity()
&& !lockPatternUtils.isSeparateProfileChallengeEnabled(mUserId)) {
mCredentialMode = CREDENTIAL_MANAGED;
- if (isBiometricAllowed(effectiveUserId)) {
+ if (isBiometricAllowed(effectiveUserId, mUserId)) {
showBiometricPrompt(bpBundle);
launchedBiometric = true;
} else {
@@ -207,7 +207,7 @@
}
} else {
mCredentialMode = CREDENTIAL_NORMAL;
- if (isBiometricAllowed(effectiveUserId)) {
+ if (isBiometricAllowed(effectiveUserId, mUserId)) {
// Don't need to check if biometrics / pin/pattern/pass are enrolled. It will go to
// onAuthenticationError and do the right thing automatically.
showBiometricPrompt(bpBundle);
@@ -273,9 +273,10 @@
return (disabledFeatures & DevicePolicyManager.KEYGUARD_DISABLE_BIOMETRICS) != 0;
}
- private boolean isBiometricAllowed(int effectiveUserId) {
+ private boolean isBiometricAllowed(int effectiveUserId, int realUserId) {
return !isStrongAuthRequired(effectiveUserId)
- && !isBiometricDisabledByAdmin(effectiveUserId);
+ && !isBiometricDisabledByAdmin(effectiveUserId)
+ && !mLockPatternUtils.hasPendingEscrowToken(realUserId);
}
private void showBiometricPrompt(Bundle bundle) {
@@ -304,9 +305,18 @@
private void showConfirmCredentials() {
mCCLaunched = true;
boolean launched = false;
+ // The only difference between CREDENTIAL_MANAGED and CREDENTIAL_NORMAL is that for
+ // CREDENTIAL_MANAGED, we launch the real confirm credential activity with an explicit
+ // but dummy challenge value (0L). This will result in ConfirmLockPassword calling
+ // verifyTiedProfileChallenge() (if it's a profile with unified challenge), due to the
+ // difference between ConfirmLockPassword.startVerifyPassword() and
+ // ConfirmLockPassword.startCheckPassword(). Calling verifyTiedProfileChallenge() here is
+ // necessary when this is part of the turning on work profile flow, because it forces
+ // unlocking the work profile even before the profile is running.
+ // TODO: Remove the duplication of checkPassword and verifyPassword in ConfirmLockPassword,
+ // LockPatternChecker and LockPatternUtils. verifyPassword should be the only API to use,
+ // which optionally accepts a challenge.
if (mCredentialMode == CREDENTIAL_MANAGED) {
- // We set the challenge as 0L, so it will force to unlock managed profile when it
- // unlocks primary profile screen lock, by calling verifyTiedProfileChallenge()
launched = mChooseLockSettingsHelper
.launchConfirmationActivityWithExternalAndChallenge(
0 /* request code */, null /* title */, mTitle, mDetails,
diff --git a/src/com/android/settings/password/SetNewPasswordActivity.java b/src/com/android/settings/password/SetNewPasswordActivity.java
index d7445e6..4722c56 100644
--- a/src/com/android/settings/password/SetNewPasswordActivity.java
+++ b/src/com/android/settings/password/SetNewPasswordActivity.java
@@ -16,7 +16,7 @@
package com.android.settings.password;
-import static android.Manifest.permission.REQUEST_SCREEN_LOCK_COMPLEXITY;
+import static android.Manifest.permission.REQUEST_PASSWORD_COMPLEXITY;
import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PARENT_PROFILE_PASSWORD;
import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PASSWORD;
import static android.app.admin.DevicePolicyManager.EXTRA_PASSWORD_COMPLEXITY;
@@ -83,7 +83,7 @@
if (ACTION_SET_NEW_PASSWORD.equals(mNewPasswordAction)
&& getIntent().hasExtra(EXTRA_PASSWORD_COMPLEXITY)) {
final boolean hasPermission = PasswordUtils.isCallingAppPermitted(
- this, activityToken, REQUEST_SCREEN_LOCK_COMPLEXITY);
+ this, activityToken, REQUEST_PASSWORD_COMPLEXITY);
if (hasPermission) {
mRequestedMinComplexity =
PasswordMetrics.sanitizeComplexityLevel(getIntent()
@@ -91,7 +91,7 @@
} else {
PasswordUtils.crashCallingApplication(activityToken,
"Must have permission "
- + REQUEST_SCREEN_LOCK_COMPLEXITY + " to use extra "
+ + REQUEST_PASSWORD_COMPLEXITY + " to use extra "
+ EXTRA_PASSWORD_COMPLEXITY);
finish();
return;
diff --git a/src/com/android/settings/password/SetupChooseLockGeneric.java b/src/com/android/settings/password/SetupChooseLockGeneric.java
index 7fbb211..346e771 100644
--- a/src/com/android/settings/password/SetupChooseLockGeneric.java
+++ b/src/com/android/settings/password/SetupChooseLockGeneric.java
@@ -16,7 +16,7 @@
package com.android.settings.password;
-import static android.Manifest.permission.REQUEST_SCREEN_LOCK_COMPLEXITY;
+import static android.Manifest.permission.REQUEST_PASSWORD_COMPLEXITY;
import static android.app.admin.DevicePolicyManager.EXTRA_PASSWORD_COMPLEXITY;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_REQUESTED_MIN_COMPLEXITY;
@@ -82,10 +82,10 @@
if(getIntent().hasExtra(EXTRA_KEY_REQUESTED_MIN_COMPLEXITY)) {
IBinder activityToken = getActivityToken();
boolean hasPermission = PasswordUtils.isCallingAppPermitted(
- this, activityToken, REQUEST_SCREEN_LOCK_COMPLEXITY);
+ this, activityToken, REQUEST_PASSWORD_COMPLEXITY);
if (!hasPermission) {
PasswordUtils.crashCallingApplication(activityToken,
- "Must have permission " + REQUEST_SCREEN_LOCK_COMPLEXITY
+ "Must have permission " + REQUEST_PASSWORD_COMPLEXITY
+ " to use extra " + EXTRA_PASSWORD_COMPLEXITY);
finish();
return;
diff --git a/src/com/android/settings/print/PrintServiceSettingsFragment.java b/src/com/android/settings/print/PrintServiceSettingsFragment.java
index d120062..8d40175 100644
--- a/src/com/android/settings/print/PrintServiceSettingsFragment.java
+++ b/src/com/android/settings/print/PrintServiceSettingsFragment.java
@@ -143,6 +143,8 @@
@Override
public void onStart() {
super.onStart();
+ initComponents();
+ updateUiForArguments();
updateEmptyView();
updateUiForServiceState();
}
@@ -158,20 +160,9 @@
@Override
public void onStop() {
super.onStop();
- }
-
- @Override
- public void onViewCreated(View view, Bundle savedInstanceState) {
- super.onViewCreated(view, savedInstanceState);
- initComponents();
- updateUiForArguments();
- }
-
- @Override
- public void onDestroyView() {
- super.onDestroyView();
mSwitchBar.removeOnSwitchChangeListener(this);
mSwitchBar.hide();
+ mPrintersAdapter.unregisterAdapterDataObserver(mDataObserver);
}
private void onPreferenceToggled(String preferenceKey, boolean enabled) {
diff --git a/src/com/android/settings/privacy/EnableContentCapturePreferenceController.java b/src/com/android/settings/privacy/EnableContentCapturePreferenceController.java
new file mode 100644
index 0000000..b3ea9a7
--- /dev/null
+++ b/src/com/android/settings/privacy/EnableContentCapturePreferenceController.java
@@ -0,0 +1,58 @@
+/*
+ * 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.privacy;
+
+import android.content.Context;
+import android.os.IBinder;
+import android.os.ServiceManager;
+import android.os.UserHandle;
+import android.provider.Settings;
+import android.view.contentcapture.ContentCaptureManager;
+
+import com.android.settings.core.TogglePreferenceController;
+
+public class EnableContentCapturePreferenceController extends TogglePreferenceController {
+
+ private static final String KEY_SHOW_PASSWORD = "content_capture";
+ private static final int MY_USER_ID = UserHandle.myUserId();
+
+ public EnableContentCapturePreferenceController(Context context) {
+ super(context, KEY_SHOW_PASSWORD);
+ }
+
+ @Override
+ public boolean isChecked() {
+ boolean enabled = Settings.Secure.getIntForUser(mContext.getContentResolver(),
+ Settings.Secure.CONTENT_CAPTURE_ENABLED, 1, MY_USER_ID) == 1;
+ return enabled;
+ }
+
+ @Override
+ public boolean setChecked(boolean isChecked) {
+ Settings.Secure.putIntForUser(mContext.getContentResolver(),
+ Settings.Secure.CONTENT_CAPTURE_ENABLED, isChecked ? 1 : 0, MY_USER_ID);
+ return true;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ // We cannot look for ContentCaptureManager, because it's not available if the service
+ // didn't whitelist Settings
+ IBinder service = ServiceManager.checkService(Context.CONTENT_CAPTURE_MANAGER_SERVICE);
+ return service != null ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ }
+}
diff --git a/src/com/android/settings/privacy/PermissionBarChartPreferenceController.java b/src/com/android/settings/privacy/PermissionBarChartPreferenceController.java
index 453cdbf..704d1e5 100644
--- a/src/com/android/settings/privacy/PermissionBarChartPreferenceController.java
+++ b/src/com/android/settings/privacy/PermissionBarChartPreferenceController.java
@@ -167,7 +167,8 @@
barViewInfos[index] = new BarViewInfo(
getPermissionGroupIcon(permissionGroupInfo.getName()),
permissionGroupInfo.getAppAccessCount(),
- R.string.storage_detail_apps);
+ R.string.storage_detail_apps,
+ getPermissionGroupLabel(permissionGroupInfo.getName()));
// Set the click listener for each bar view.
// The listener will navigate user to permission usage app.
@@ -194,6 +195,18 @@
return icon;
}
+ private CharSequence getPermissionGroupLabel(CharSequence permissionGroup) {
+ CharSequence label = null;
+ try {
+ label = mPackageManager.getPermissionGroupInfo(permissionGroup.toString(), 0)
+ .loadLabel(mPackageManager);
+ } catch (PackageManager.NameNotFoundException e) {
+ Log.w(TAG, "Cannot find group label for " + permissionGroup, e);
+ }
+
+ return label;
+ }
+
private boolean areSamePermissionGroups(List<RuntimePermissionUsageInfo> newUsageInfos) {
if (newUsageInfos.size() != mOldUsageInfos.size()) {
return false;
diff --git a/src/com/android/settings/search/SearchFeatureProvider.java b/src/com/android/settings/search/SearchFeatureProvider.java
index dcb4acc..896f6e5 100644
--- a/src/com/android/settings/search/SearchFeatureProvider.java
+++ b/src/com/android/settings/search/SearchFeatureProvider.java
@@ -39,7 +39,7 @@
*/
public interface SearchFeatureProvider {
- int REQUEST_CODE = 0;
+ int REQUEST_CODE = 501;
/**
* Ensures the caller has necessary privilege to launch search result page.
diff --git a/src/com/android/settings/search/actionbar/SearchMenuController.java b/src/com/android/settings/search/actionbar/SearchMenuController.java
index af7141e..25d0d30 100644
--- a/src/com/android/settings/search/actionbar/SearchMenuController.java
+++ b/src/com/android/settings/search/actionbar/SearchMenuController.java
@@ -33,6 +33,7 @@
import com.android.settings.core.InstrumentedFragment;
import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.SearchFeatureProvider;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnCreateOptionsMenu;
@@ -93,7 +94,7 @@
FeatureFactory.getFactory(context).getMetricsFeatureProvider()
.action(context, SettingsEnums.ACTION_SEARCH_RESULTS);
- mHost.startActivityForResult(intent, 0 /* requestCode */);
+ mHost.startActivityForResult(intent, SearchFeatureProvider.REQUEST_CODE);
return true;
});
}
diff --git a/src/com/android/settings/slices/CustomSliceManager.java b/src/com/android/settings/slices/CustomSliceManager.java
deleted file mode 100644
index c9e473a..0000000
--- a/src/com/android/settings/slices/CustomSliceManager.java
+++ /dev/null
@@ -1,133 +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.slices;
-
-import android.content.Context;
-import android.net.Uri;
-import android.util.ArrayMap;
-
-import androidx.annotation.VisibleForTesting;
-
-import com.android.settings.flashlight.FlashlightSlice;
-import com.android.settings.homepage.contextualcards.deviceinfo.BatteryInfoSlice;
-import com.android.settings.homepage.contextualcards.deviceinfo.DataUsageSlice;
-import com.android.settings.homepage.contextualcards.deviceinfo.DeviceInfoSlice;
-import com.android.settings.homepage.contextualcards.deviceinfo.EmergencyInfoSlice;
-import com.android.settings.homepage.contextualcards.deviceinfo.StorageSlice;
-import com.android.settings.homepage.contextualcards.slices.BatteryFixSlice;
-import com.android.settings.homepage.contextualcards.slices.BluetoothDevicesSlice;
-import com.android.settings.homepage.contextualcards.slices.LowStorageSlice;
-import com.android.settings.homepage.contextualcards.slices.NotificationChannelSlice;
-import com.android.settings.location.LocationSlice;
-import com.android.settings.media.MediaOutputSlice;
-import com.android.settings.network.telephony.MobileDataSlice;
-import com.android.settings.wifi.slice.ContextualWifiSlice;
-import com.android.settings.wifi.slice.WifiSlice;
-
-import java.util.Map;
-import java.util.WeakHashMap;
-
-/**
- * Manages custom {@link androidx.slice.Slice Slices}, which are all Slices not backed by
- * preferences.
- */
-public class CustomSliceManager {
-
- @VisibleForTesting
- final Map<Uri, Class<? extends CustomSliceable>> mUriMap;
-
- private final Context mContext;
- private final Map<Uri, CustomSliceable> mSliceableCache;
-
- public CustomSliceManager(Context context) {
- mContext = context.getApplicationContext();
- mUriMap = new ArrayMap<>();
- mSliceableCache = new WeakHashMap<>();
- addSlices();
- }
-
- /**
- * Return a {@link CustomSliceable} associated to the Uri.
- * <p>
- * Do not change this method signature to accommodate for a special-case slicable - a context is
- * the only thing that should be needed to create the object.
- */
- public CustomSliceable getSliceableFromUri(Uri uri) {
- final Uri newUri = removeParameterFromUri(uri);
- if (mSliceableCache.containsKey(newUri)) {
- return mSliceableCache.get(newUri);
- }
-
- final Class clazz = mUriMap.get(newUri);
- if (clazz == null) {
- throw new IllegalArgumentException("No Slice found for uri: " + uri);
- }
-
- final CustomSliceable sliceable = CustomSliceable.createInstance(mContext, clazz);
- mSliceableCache.put(newUri, sliceable);
- return sliceable;
- }
-
- private Uri removeParameterFromUri(Uri uri) {
- return uri != null ? uri.buildUpon().clearQuery().build() : null;
- }
-
- /**
- * Return a {@link CustomSliceable} associated to the Action.
- * <p>
- * Do not change this method signature to accommodate for a special-case sliceable - a context
- * is the only thing that should be needed to create the object.
- */
- public CustomSliceable getSliceableFromIntentAction(String action) {
- return getSliceableFromUri(Uri.parse(action));
- }
-
- /**
- * Returns {@code true} if {@param uri} is a valid Slice Uri handled by
- * {@link CustomSliceManager}.
- */
- public boolean isValidUri(Uri uri) {
- return mUriMap.containsKey(removeParameterFromUri(uri));
- }
-
- /**
- * Returns {@code true} if {@param action} is a valid intent action handled by
- * {@link CustomSliceManager}.
- */
- public boolean isValidAction(String action) {
- return isValidUri(Uri.parse(action));
- }
-
- private void addSlices() {
- mUriMap.put(CustomSliceRegistry.BATTERY_FIX_SLICE_URI, BatteryFixSlice.class);
- mUriMap.put(CustomSliceRegistry.BATTERY_INFO_SLICE_URI, BatteryInfoSlice.class);
- mUriMap.put(CustomSliceRegistry.BLUETOOTH_DEVICES_SLICE_URI, BluetoothDevicesSlice.class);
- mUriMap.put(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI, ContextualWifiSlice.class);
- mUriMap.put(CustomSliceRegistry.DATA_USAGE_SLICE_URI, DataUsageSlice.class);
- mUriMap.put(CustomSliceRegistry.DEVICE_INFO_SLICE_URI, DeviceInfoSlice.class);
- mUriMap.put(CustomSliceRegistry.EMERGENCY_INFO_SLICE_URI, EmergencyInfoSlice.class);
- mUriMap.put(CustomSliceRegistry.FLASHLIGHT_SLICE_URI, FlashlightSlice.class);
- mUriMap.put(CustomSliceRegistry.LOCATION_SLICE_URI, LocationSlice.class);
- mUriMap.put(CustomSliceRegistry.LOW_STORAGE_SLICE_URI, LowStorageSlice.class);
- mUriMap.put(CustomSliceRegistry.MOBILE_DATA_SLICE_URI, MobileDataSlice.class);
- mUriMap.put(CustomSliceRegistry.NOTIFICATION_CHANNEL_SLICE_URI,
- NotificationChannelSlice.class);
- mUriMap.put(CustomSliceRegistry.STORAGE_SLICE_URI, StorageSlice.class);
- mUriMap.put(CustomSliceRegistry.WIFI_SLICE_URI, WifiSlice.class);
- mUriMap.put(CustomSliceRegistry.MEDIA_OUTPUT_SLICE_URI, MediaOutputSlice.class);
- }
-}
diff --git a/src/com/android/settings/slices/CustomSliceRegistry.java b/src/com/android/settings/slices/CustomSliceRegistry.java
index ab1b248..9d88bc5 100644
--- a/src/com/android/settings/slices/CustomSliceRegistry.java
+++ b/src/com/android/settings/slices/CustomSliceRegistry.java
@@ -24,11 +24,30 @@
import android.content.ContentResolver;
import android.net.Uri;
import android.provider.SettingsSlicesContract;
+import android.util.ArrayMap;
+import androidx.annotation.VisibleForTesting;
+
+import com.android.settings.flashlight.FlashlightSlice;
import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController;
+import com.android.settings.homepage.contextualcards.deviceinfo.DataUsageSlice;
+import com.android.settings.homepage.contextualcards.deviceinfo.DeviceInfoSlice;
+import com.android.settings.homepage.contextualcards.deviceinfo.EmergencyInfoSlice;
+import com.android.settings.homepage.contextualcards.deviceinfo.StorageSlice;
+import com.android.settings.homepage.contextualcards.slices.BatteryFixSlice;
+import com.android.settings.homepage.contextualcards.slices.BluetoothDevicesSlice;
+import com.android.settings.homepage.contextualcards.slices.LowStorageSlice;
+import com.android.settings.homepage.contextualcards.slices.NotificationChannelSlice;
+import com.android.settings.location.LocationSlice;
+import com.android.settings.media.MediaOutputSlice;
+import com.android.settings.network.telephony.MobileDataSlice;
import com.android.settings.wifi.calling.WifiCallingSliceHelper;
+import com.android.settings.wifi.slice.ContextualWifiSlice;
+import com.android.settings.wifi.slice.WifiSlice;
import com.android.settingslib.media.MediaOutputSliceConstants;
+import java.util.Map;
+
/**
* A registry of custom slice Uris.
*/
@@ -53,15 +72,7 @@
.appendEncodedPath(SettingsSlicesContract.PATH_SETTING_INTENT)
.appendPath(BatteryTipPreferenceController.PREF_NAME)
.build();
- /**
- * Backing Uri for the Battery info Slice.
- */
- public static final Uri BATTERY_INFO_SLICE_URI = new Uri.Builder()
- .scheme(ContentResolver.SCHEME_CONTENT)
- .authority(SettingsSliceProvider.SLICE_AUTHORITY)
- .appendEncodedPath(SettingsSlicesContract.PATH_SETTING_INTENT)
- .appendPath("battery_card")
- .build();
+
/**
* Backing Uri for the Bluetooth Slice.
*/
@@ -219,6 +230,17 @@
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
.appendPath("media_volume")
.build();
+
+ /**
+ * Full {@link Uri} for the Remote Media Volume Slice.
+ */
+ public static final Uri VOLUME_REMOTE_MEDIA_URI = new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(SettingsSliceProvider.SLICE_AUTHORITY)
+ .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
+ .appendPath("remote_volume")
+ .build();
+
/**
* Full {@link Uri} for the Ringer volume Slice.
*/
@@ -276,4 +298,51 @@
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
.appendPath(MediaOutputSliceConstants.KEY_MEDIA_OUTPUT)
.build();
+
+ @VisibleForTesting
+ static final Map<Uri, Class<? extends CustomSliceable>> sUriToSlice;
+
+ static {
+ sUriToSlice = new ArrayMap<>();
+
+ sUriToSlice.put(BATTERY_FIX_SLICE_URI, BatteryFixSlice.class);
+ sUriToSlice.put(BLUETOOTH_DEVICES_SLICE_URI, BluetoothDevicesSlice.class);
+ sUriToSlice.put(CONTEXTUAL_WIFI_SLICE_URI, ContextualWifiSlice.class);
+ sUriToSlice.put(DATA_USAGE_SLICE_URI, DataUsageSlice.class);
+ sUriToSlice.put(DEVICE_INFO_SLICE_URI, DeviceInfoSlice.class);
+ sUriToSlice.put(EMERGENCY_INFO_SLICE_URI, EmergencyInfoSlice.class);
+ sUriToSlice.put(FLASHLIGHT_SLICE_URI, FlashlightSlice.class);
+ sUriToSlice.put(LOCATION_SLICE_URI, LocationSlice.class);
+ sUriToSlice.put(LOW_STORAGE_SLICE_URI, LowStorageSlice.class);
+ sUriToSlice.put(MOBILE_DATA_SLICE_URI, MobileDataSlice.class);
+ sUriToSlice.put(NOTIFICATION_CHANNEL_SLICE_URI, NotificationChannelSlice.class);
+ sUriToSlice.put(STORAGE_SLICE_URI, StorageSlice.class);
+ sUriToSlice.put(WIFI_SLICE_URI, WifiSlice.class);
+ sUriToSlice.put(MEDIA_OUTPUT_SLICE_URI, MediaOutputSlice.class);
+ }
+
+ public static Class<? extends CustomSliceable> getSliceClassByUri(Uri uri) {
+ return sUriToSlice.get(removeParameterFromUri(uri));
+ }
+
+ public static Uri removeParameterFromUri(Uri uri) {
+ return uri != null ? uri.buildUpon().clearQuery().build() : null;
+ }
+
+ /**
+ * Returns {@code true} if {@param uri} is a valid Slice Uri handled by
+ * {@link CustomSliceRegistry}.
+ */
+ public static boolean isValidUri(Uri uri) {
+ return sUriToSlice.containsKey(removeParameterFromUri(uri));
+ }
+
+ /**
+ * Returns {@code true} if {@param action} is a valid intent action handled by
+ * {@link CustomSliceRegistry}.
+ */
+ public static boolean isValidAction(String action) {
+ return isValidUri(Uri.parse(action));
+ }
+
}
diff --git a/src/com/android/settings/slices/CustomSliceable.java b/src/com/android/settings/slices/CustomSliceable.java
index 0b97bed..93d08a2 100644
--- a/src/com/android/settings/slices/CustomSliceable.java
+++ b/src/com/android/settings/slices/CustomSliceable.java
@@ -19,7 +19,6 @@
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
-import android.content.IntentFilter;
import android.net.Uri;
import androidx.slice.Slice;
@@ -106,16 +105,17 @@
/**
* Build an instance of a {@link CustomSliceable} which has a {@link Context}-only constructor.
*/
- static CustomSliceable createInstance(Context context, Class<CustomSliceable> sliceableClass) {
+ static CustomSliceable createInstance(Context context,
+ Class<? extends CustomSliceable> sliceable) {
try {
- final Constructor<CustomSliceable> sliceable =
- sliceableClass.getConstructor(Context.class);
- final Object[] params = new Object[]{context};
- return sliceable.newInstance(params);
+ final Constructor<? extends CustomSliceable> constructor =
+ sliceable.getConstructor(Context.class);
+ final Object[] params = new Object[]{context.getApplicationContext()};
+ return constructor.newInstance(params);
} catch (NoSuchMethodException | InstantiationException |
IllegalArgumentException | InvocationTargetException | IllegalAccessException e) {
throw new IllegalStateException(
- "Invalid sliceable class: " + sliceableClass, e);
+ "Invalid sliceable class: " + sliceable, e);
}
}
}
\ No newline at end of file
diff --git a/src/com/android/settings/slices/SettingsSliceProvider.java b/src/com/android/settings/slices/SettingsSliceProvider.java
index 397b2fc..3187d10 100644
--- a/src/com/android/settings/slices/SettingsSliceProvider.java
+++ b/src/com/android/settings/slices/SettingsSliceProvider.java
@@ -118,9 +118,6 @@
private static final KeyValueListParser KEY_VALUE_LIST_PARSER = new KeyValueListParser(',');
@VisibleForTesting
- CustomSliceManager mCustomSliceManager;
-
- @VisibleForTesting
SlicesDatabaseAccessor mSlicesDatabaseAccessor;
@VisibleForTesting
@@ -140,15 +137,15 @@
mSlicesDatabaseAccessor = new SlicesDatabaseAccessor(getContext());
mSliceDataCache = new ConcurrentHashMap<>();
mSliceWeakDataCache = new WeakHashMap<>();
- mCustomSliceManager = FeatureFactory.getFactory(
- getContext()).getSlicesFeatureProvider().getCustomSliceManager(getContext());
return true;
}
@Override
public void onSlicePinned(Uri sliceUri) {
- if (mCustomSliceManager.isValidUri(sliceUri)) {
- final CustomSliceable sliceable = mCustomSliceManager.getSliceableFromUri(sliceUri);
+ if (CustomSliceRegistry.isValidUri(sliceUri)) {
+ final Context context = getContext();
+ final CustomSliceable sliceable = FeatureFactory.getFactory(context)
+ .getSlicesFeatureProvider().getSliceableFromUri(context, sliceUri);
final IntentFilter filter = sliceable.getIntentFilter();
if (filter != null) {
registerIntentToUri(filter, sliceUri);
@@ -194,10 +191,11 @@
// Before adding a slice to {@link CustomSliceManager}, please get approval
// from the Settings team.
- if (mCustomSliceManager.isValidUri(sliceUri)) {
- final CustomSliceable sliceable = mCustomSliceManager.getSliceableFromUri(
- sliceUri);
- return sliceable.getSlice();
+ if (CustomSliceRegistry.isValidUri(sliceUri)) {
+ final Context context = getContext();
+ return FeatureFactory.getFactory(context)
+ .getSlicesFeatureProvider().getSliceableFromUri(context, sliceUri)
+ .getSlice();
}
if (CustomSliceRegistry.WIFI_CALLING_URI.equals(sliceUri)) {
diff --git a/src/com/android/settings/slices/SliceBackgroundWorker.java b/src/com/android/settings/slices/SliceBackgroundWorker.java
index 559aa71..f19b1df 100644
--- a/src/com/android/settings/slices/SliceBackgroundWorker.java
+++ b/src/com/android/settings/slices/SliceBackgroundWorker.java
@@ -146,7 +146,7 @@
needNotify = true;
}
} else {
- needNotify = !results.equals(mCachedResults);
+ needNotify = !areListsTheSame(results, mCachedResults);
}
if (needNotify) {
@@ -155,6 +155,10 @@
}
}
+ protected boolean areListsTheSame(List<E> a, List<E> b) {
+ return a.equals(b);
+ }
+
/**
* Notify that data was updated and attempt to sync changes to the Slice.
*/
diff --git a/src/com/android/settings/slices/SliceBroadcastReceiver.java b/src/com/android/settings/slices/SliceBroadcastReceiver.java
index b2ea583..9926a52 100644
--- a/src/com/android/settings/slices/SliceBroadcastReceiver.java
+++ b/src/com/android/settings/slices/SliceBroadcastReceiver.java
@@ -61,11 +61,10 @@
final boolean isPlatformSlice = intent.getBooleanExtra(EXTRA_SLICE_PLATFORM_DEFINED,
false /* default */);
- final CustomSliceManager mCustomSliceManager = FeatureFactory.getFactory(
- context).getSlicesFeatureProvider().getCustomSliceManager(context);
- if (mCustomSliceManager.isValidAction(action)) {
+ if (CustomSliceRegistry.isValidAction(action)) {
final CustomSliceable sliceable =
- mCustomSliceManager.getSliceableFromIntentAction(action);
+ CustomSliceable.createInstance(context,
+ CustomSliceRegistry.getSliceClassByUri(Uri.parse(action)));
sliceable.onNotifyChange(intent);
return;
}
diff --git a/src/com/android/settings/slices/SliceDeepLinkSpringBoard.java b/src/com/android/settings/slices/SliceDeepLinkSpringBoard.java
index f4afa16..2ff071e 100644
--- a/src/com/android/settings/slices/SliceDeepLinkSpringBoard.java
+++ b/src/com/android/settings/slices/SliceDeepLinkSpringBoard.java
@@ -23,7 +23,6 @@
import com.android.settings.bluetooth.BluetoothSliceBuilder;
import com.android.settings.notification.ZenModeSliceBuilder;
-import com.android.settings.overlay.FeatureFactory;
public class SliceDeepLinkSpringBoard extends Activity {
@@ -45,11 +44,10 @@
Intent launchIntent;
// TODO (b/80263568) Avoid duplicating this list of Slice Uris.
- final CustomSliceManager customSliceManager = FeatureFactory.getFactory(this)
- .getSlicesFeatureProvider().getCustomSliceManager(this);
- if (customSliceManager.isValidUri(sliceUri)) {
+ if (CustomSliceRegistry.isValidUri(sliceUri)) {
final CustomSliceable sliceable =
- customSliceManager.getSliceableFromUri(sliceUri);
+ CustomSliceable.createInstance(getApplicationContext(),
+ CustomSliceRegistry.getSliceClassByUri(sliceUri));
launchIntent = sliceable.getIntent();
} else if (CustomSliceRegistry.ZEN_MODE_SLICE_URI.equals(sliceUri)) {
launchIntent = ZenModeSliceBuilder.getIntent(this /* context */);
diff --git a/src/com/android/settings/slices/SlicesFeatureProvider.java b/src/com/android/settings/slices/SlicesFeatureProvider.java
index 1a9fd98..ae94f29 100644
--- a/src/com/android/settings/slices/SlicesFeatureProvider.java
+++ b/src/com/android/settings/slices/SlicesFeatureProvider.java
@@ -1,6 +1,7 @@
package com.android.settings.slices;
import android.content.Context;
+import android.net.Uri;
import com.android.settings.network.telephony.Enhanced4gLteSliceHelper;
import com.android.settings.wifi.calling.WifiCallingSliceHelper;
@@ -12,11 +13,23 @@
boolean DEBUG = false;
- SlicesIndexer getSliceIndexer(Context context);
-
SliceDataConverter getSliceDataConverter(Context context);
/**
+ * Starts a new UI session for the purpose of using Slices.
+ *
+ * A UI session is defined as an duration of time when user stays in a UI screen. Screen
+ * rotation does not break the continuation of session, going to a sub-page and coming out does
+ * not break the continuation either. Leaving the page and coming back breaks it.
+ */
+ void newUiSession();
+
+ /**
+ * Returns the token created in {@link #newUiSession}.
+ */
+ long getUiSessionToken();
+
+ /**
* Asynchronous call to index the data used to build Slices.
* If the data is already indexed, the data will not change.
*/
@@ -28,7 +41,14 @@
*/
void indexSliceData(Context context);
- CustomSliceManager getCustomSliceManager(Context context);
+
+ /**
+ * Return a {@link CustomSliceable} associated to the Uri.
+ * <p>
+ * Do not change this method signature to accommodate for a special-case sliceable - a context
+ * is the only thing that should be needed to create the object.
+ */
+ CustomSliceable getSliceableFromUri(Context context, Uri uri);
/**
* Gets new WifiCallingSliceHelper object
diff --git a/src/com/android/settings/slices/SlicesFeatureProviderImpl.java b/src/com/android/settings/slices/SlicesFeatureProviderImpl.java
index 508eb1c..297f2c1 100644
--- a/src/com/android/settings/slices/SlicesFeatureProviderImpl.java
+++ b/src/com/android/settings/slices/SlicesFeatureProviderImpl.java
@@ -17,27 +17,23 @@
package com.android.settings.slices;
import android.content.Context;
+import android.net.Uri;
+import android.os.SystemClock;
import com.android.settings.network.telephony.Enhanced4gLteSliceHelper;
import com.android.settings.wifi.calling.WifiCallingSliceHelper;
import com.android.settingslib.utils.ThreadUtils;
+import java.util.Random;
+
/**
* Manages Slices in Settings.
*/
public class SlicesFeatureProviderImpl implements SlicesFeatureProvider {
+ private long mUiSessionToken;
private SlicesIndexer mSlicesIndexer;
private SliceDataConverter mSliceDataConverter;
- private CustomSliceManager mCustomSliceManager;
-
- @Override
- public SlicesIndexer getSliceIndexer(Context context) {
- if (mSlicesIndexer == null) {
- mSlicesIndexer = new SlicesIndexer(context.getApplicationContext());
- }
- return mSlicesIndexer;
- }
@Override
public SliceDataConverter getSliceDataConverter(Context context) {
@@ -48,11 +44,13 @@
}
@Override
- public CustomSliceManager getCustomSliceManager(Context context) {
- if (mCustomSliceManager == null) {
- mCustomSliceManager = new CustomSliceManager(context.getApplicationContext());
- }
- return mCustomSliceManager;
+ public void newUiSession() {
+ mUiSessionToken = SystemClock.elapsedRealtime();
+ }
+
+ @Override
+ public long getUiSessionToken() {
+ return mUiSessionToken;
}
@Override
@@ -76,4 +74,23 @@
public Enhanced4gLteSliceHelper getNewEnhanced4gLteSliceHelper(Context context) {
return new Enhanced4gLteSliceHelper(context);
}
+
+ @Override
+ public CustomSliceable getSliceableFromUri(Context context, Uri uri) {
+ final Uri newUri = CustomSliceRegistry.removeParameterFromUri(uri);
+ final Class clazz = CustomSliceRegistry.getSliceClassByUri(newUri);
+ if (clazz == null) {
+ throw new IllegalArgumentException("No Slice found for uri: " + uri);
+ }
+
+ final CustomSliceable sliceable = CustomSliceable.createInstance(context, clazz);
+ return sliceable;
+ }
+
+ private SlicesIndexer getSliceIndexer(Context context) {
+ if (mSlicesIndexer == null) {
+ mSlicesIndexer = new SlicesIndexer(context.getApplicationContext());
+ }
+ return mSlicesIndexer;
+ }
}
diff --git a/src/com/android/settings/slices/SlicesIndexer.java b/src/com/android/settings/slices/SlicesIndexer.java
index 1b3a25e..5f80047 100644
--- a/src/com/android/settings/slices/SlicesIndexer.java
+++ b/src/com/android/settings/slices/SlicesIndexer.java
@@ -84,7 +84,6 @@
} finally {
database.endTransaction();
}
- database.close();
}
@VisibleForTesting
diff --git a/src/com/android/settings/sound/AudioSwitchPreferenceController.java b/src/com/android/settings/sound/AudioSwitchPreferenceController.java
index f77dfca..0da0f21 100644
--- a/src/com/android/settings/sound/AudioSwitchPreferenceController.java
+++ b/src/com/android/settings/sound/AudioSwitchPreferenceController.java
@@ -32,7 +32,6 @@
import android.media.MediaRouter.Callback;
import android.os.Handler;
import android.os.Looper;
-import android.text.TextUtils;
import android.util.FeatureFlagUtils;
import android.util.Log;
@@ -40,7 +39,6 @@
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
-import com.android.settings.R;
import com.android.settings.bluetooth.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.FeatureFlags;
@@ -63,15 +61,11 @@
/**
* Abstract class for audio switcher controller to notify subclass
* updating the current status of switcher entry. Subclasses must overwrite
- * {@link #setActiveBluetoothDevice(BluetoothDevice)} to set the
- * active device for corresponding profile.
*/
public abstract class AudioSwitchPreferenceController extends BasePreferenceController
- implements Preference.OnPreferenceChangeListener, BluetoothCallback,
- LifecycleObserver, OnStart, OnStop {
+ implements BluetoothCallback, LifecycleObserver, OnStart, OnStop {
private static final String TAG = "AudioSwitchPrefCtrl";
- private static final int INVALID_INDEX = -1;
protected final List<BluetoothDevice> mConnectedDevices;
protected final AudioManager mAudioManager;
@@ -129,35 +123,6 @@
}
@Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- final String address = (String) newValue;
- if (!(preference instanceof ListPreference)) {
- return false;
- }
-
- final ListPreference listPreference = (ListPreference) preference;
- if (TextUtils.equals(address, mContext.getText(R.string.media_output_default_summary))) {
- // Switch to default device which address is device name
- mSelectedIndex = getDefaultDeviceIndex();
- setActiveBluetoothDevice(null);
- listPreference.setSummary(mContext.getText(R.string.media_output_default_summary));
- } else {
- // Switch to BT device which address is hardware address
- final int connectedDeviceIndex = getConnectedDeviceIndex(address);
- if (connectedDeviceIndex == INVALID_INDEX) {
- return false;
- }
- final BluetoothDevice btDevice = mConnectedDevices.get(connectedDeviceIndex);
- mSelectedIndex = connectedDeviceIndex;
- setActiveBluetoothDevice(btDevice);
- listPreference.setSummary(btDevice.getAliasName());
- }
- return true;
- }
-
- public abstract void setActiveBluetoothDevice(BluetoothDevice device);
-
- @Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
mPreference = screen.findPreference(mPreferenceKey);
@@ -185,6 +150,12 @@
}
@Override
+ public void onBluetoothStateChanged(int bluetoothState) {
+ // To handle the case that Bluetooth on and no connected devices
+ updateState(mPreference);
+ }
+
+ @Override
public void onActiveDeviceChanged(CachedBluetoothDevice activeDevice, int bluetoothProfile) {
updateState(mPreference);
}
@@ -236,21 +207,15 @@
}
/**
- * get A2dp connected device
+ * get A2dp devices on all states
+ * (STATE_DISCONNECTED, STATE_CONNECTING, STATE_CONNECTED, STATE_DISCONNECTING)
*/
- protected List<BluetoothDevice> getConnectedA2dpDevices() {
- final List<BluetoothDevice> connectedDevices = new ArrayList<>();
+ protected List<BluetoothDevice> getConnectableA2dpDevices() {
final A2dpProfile a2dpProfile = mProfileManager.getA2dpProfile();
if (a2dpProfile == null) {
- return connectedDevices;
+ return new ArrayList<>();
}
- final List<BluetoothDevice> devices = a2dpProfile.getConnectedDevices();
- for (BluetoothDevice device : devices) {
- if (device.isConnected()) {
- connectedDevices.add(device);
- }
- }
- return connectedDevices;
+ return a2dpProfile.getConnectableDevices();
}
/**
@@ -277,6 +242,31 @@
}
/**
+ * 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() {
@@ -306,52 +296,6 @@
*/
public abstract BluetoothDevice findActiveDevice();
- int getDefaultDeviceIndex() {
- // Default device is after all connected devices.
- return mConnectedDevices.size();
- }
-
- void setupPreferenceEntries(CharSequence[] mediaOutputs, CharSequence[] mediaValues,
- BluetoothDevice activeDevice) {
- // default to current device
- mSelectedIndex = getDefaultDeviceIndex();
- // default device is after all connected devices.
- mediaOutputs[mSelectedIndex] = mContext.getText(R.string.media_output_default_summary);
- // use default device name as address
- mediaValues[mSelectedIndex] = mContext.getText(R.string.media_output_default_summary);
- for (int i = 0, size = mConnectedDevices.size(); i < size; i++) {
- final BluetoothDevice btDevice = mConnectedDevices.get(i);
- mediaOutputs[i] = btDevice.getAliasName();
- mediaValues[i] = btDevice.getAddress();
- if (btDevice.equals(activeDevice)) {
- // select the active connected device.
- mSelectedIndex = i;
- }
- }
- }
-
- void setPreference(CharSequence[] mediaOutputs, CharSequence[] mediaValues,
- Preference preference) {
- final ListPreference listPreference = (ListPreference) preference;
- listPreference.setEntries(mediaOutputs);
- listPreference.setEntryValues(mediaValues);
- listPreference.setValueIndex(mSelectedIndex);
- listPreference.setSummary(mediaOutputs[mSelectedIndex]);
- mAudioSwitchPreferenceCallback.onPreferenceDataChanged(listPreference);
- }
-
- private int getConnectedDeviceIndex(String hardwareAddress) {
- if (mConnectedDevices != null) {
- for (int i = 0, size = mConnectedDevices.size(); i < size; i++) {
- final BluetoothDevice btDevice = mConnectedDevices.get(i);
- if (TextUtils.equals(btDevice.getAddress(), hardwareAddress)) {
- return i;
- }
- }
- }
- return INVALID_INDEX;
- }
-
private void register() {
mLocalBluetoothManager.getEventManager().registerCallback(this);
mAudioManager.registerAudioDeviceCallback(mAudioManagerAudioDeviceCallback, mHandler);
diff --git a/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java b/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java
index a02c0b2..9157477 100644
--- a/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java
+++ b/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceController.java
@@ -20,7 +20,9 @@
import android.bluetooth.BluetoothDevice;
import android.content.Context;
+import android.text.TextUtils;
+import androidx.preference.ListPreference;
import androidx.preference.Preference;
import com.android.settings.R;
@@ -32,14 +34,56 @@
* This class allows switching between HFP-connected & HAP-connected BT devices
* while in on-call state.
*/
-public class HandsFreeProfileOutputPreferenceController extends
- AudioSwitchPreferenceController {
+public class HandsFreeProfileOutputPreferenceController extends AudioSwitchPreferenceController
+ implements Preference.OnPreferenceChangeListener {
+
+ private static final int INVALID_INDEX = -1;
public HandsFreeProfileOutputPreferenceController(Context context, String key) {
super(context, key);
}
@Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ final String address = (String) newValue;
+ if (!(preference instanceof ListPreference)) {
+ return false;
+ }
+
+ final CharSequence defaultSummary = mContext.getText(R.string.media_output_default_summary);
+ final ListPreference listPreference = (ListPreference) preference;
+ if (TextUtils.equals(address, defaultSummary)) {
+ // Switch to default device which address is device name
+ mSelectedIndex = getDefaultDeviceIndex();
+ setActiveBluetoothDevice(null);
+ listPreference.setSummary(defaultSummary);
+ } else {
+ // Switch to BT device which address is hardware address
+ final int connectedDeviceIndex = getConnectedDeviceIndex(address);
+ if (connectedDeviceIndex == INVALID_INDEX) {
+ return false;
+ }
+ final BluetoothDevice btDevice = mConnectedDevices.get(connectedDeviceIndex);
+ mSelectedIndex = connectedDeviceIndex;
+ setActiveBluetoothDevice(btDevice);
+ listPreference.setSummary(btDevice.getAliasName());
+ }
+ return true;
+ }
+
+ private int getConnectedDeviceIndex(String hardwareAddress) {
+ if (mConnectedDevices != null) {
+ for (int i = 0, size = mConnectedDevices.size(); i < size; i++) {
+ final BluetoothDevice btDevice = mConnectedDevices.get(i);
+ if (TextUtils.equals(btDevice.getAddress(), hardwareAddress)) {
+ return i;
+ }
+ }
+ }
+ return INVALID_INDEX;
+ }
+
+ @Override
public void updateState(Preference preference) {
if (preference == null) {
// In case UI is not ready.
@@ -83,7 +127,41 @@
setPreference(mediaOutputs, mediaValues, preference);
}
- @Override
+ int getDefaultDeviceIndex() {
+ // Default device is after all connected devices.
+ return mConnectedDevices.size();
+ }
+
+ void setupPreferenceEntries(CharSequence[] mediaOutputs, CharSequence[] mediaValues,
+ BluetoothDevice activeDevice) {
+ // default to current device
+ mSelectedIndex = getDefaultDeviceIndex();
+ // default device is after all connected devices.
+ final CharSequence defaultSummary = mContext.getText(R.string.media_output_default_summary);
+ mediaOutputs[mSelectedIndex] = defaultSummary;
+ // use default device name as address
+ mediaValues[mSelectedIndex] = defaultSummary;
+ for (int i = 0, size = mConnectedDevices.size(); i < size; i++) {
+ final BluetoothDevice btDevice = mConnectedDevices.get(i);
+ mediaOutputs[i] = btDevice.getAliasName();
+ mediaValues[i] = btDevice.getAddress();
+ if (btDevice.equals(activeDevice)) {
+ // select the active connected device.
+ mSelectedIndex = i;
+ }
+ }
+ }
+
+ void setPreference(CharSequence[] mediaOutputs, CharSequence[] mediaValues,
+ Preference preference) {
+ final ListPreference listPreference = (ListPreference) preference;
+ listPreference.setEntries(mediaOutputs);
+ listPreference.setEntryValues(mediaValues);
+ listPreference.setValueIndex(mSelectedIndex);
+ listPreference.setSummary(mediaOutputs[mSelectedIndex]);
+ mAudioSwitchPreferenceCallback.onPreferenceDataChanged(listPreference);
+ }
+
public void setActiveBluetoothDevice(BluetoothDevice device) {
if (!Utils.isAudioModeOngoingCall(mContext)) {
return;
diff --git a/src/com/android/settings/sound/MediaOutputPreferenceController.java b/src/com/android/settings/sound/MediaOutputPreferenceController.java
index ce476ad..47810f7 100644
--- a/src/com/android/settings/sound/MediaOutputPreferenceController.java
+++ b/src/com/android/settings/sound/MediaOutputPreferenceController.java
@@ -16,13 +16,14 @@
package com.android.settings.sound;
-import static android.bluetooth.IBluetoothHearingAid.HI_SYNC_ID_INVALID;
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;
import android.media.AudioManager;
+import android.text.TextUtils;
import androidx.preference.Preference;
@@ -30,12 +31,16 @@
import com.android.settingslib.Utils;
import com.android.settingslib.bluetooth.A2dpProfile;
import com.android.settingslib.bluetooth.HearingAidProfile;
+import com.android.settingslib.media.MediaOutputSliceConstants;
+
+import java.util.List;
/**
- * This class which allows switching between A2dp-connected & HAP-connected BT devices.
- * A few conditions will disable this switcher:
- * - No available BT device(s)
- * - Media stream captured by cast device
+ * This class allows launching MediaOutputSlice to switch output device.
+ * Preference would hide only when
+ * - Bluetooth = OFF
+ * - Bluetooth = ON and Connected Devices = 0 and Previously Connected = 0
+ * - Media stream captured by remote device
* - During a call.
*/
public class MediaOutputPreferenceController extends AudioSwitchPreferenceController {
@@ -66,40 +71,22 @@
return;
}
- mConnectedDevices.clear();
- // Otherwise, list all of the A2DP connected device and display the active device.
- if (mAudioManager.getMode() == AudioManager.MODE_NORMAL) {
- mConnectedDevices.addAll(getConnectedA2dpDevices());
- mConnectedDevices.addAll(getConnectedHearingAidDevices());
+ boolean deviceConnectable = 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();
+ if (mAudioManager.getMode() == AudioManager.MODE_NORMAL
+ && ((connectableA2dpDevices != null && !connectableA2dpDevices.isEmpty())
+ || (connectableHADevices != null && !connectableHADevices.isEmpty()))) {
+ deviceConnectable = true;
+ activeDevice = findActiveDevice();
}
-
- final int numDevices = mConnectedDevices.size();
- mPreference.setVisible((numDevices == 0) ? false : true);
- CharSequence[] mediaOutputs = new CharSequence[numDevices + 1];
- CharSequence[] mediaValues = new CharSequence[numDevices + 1];
-
- // Setup devices entries, select active connected device
- setupPreferenceEntries(mediaOutputs, mediaValues, findActiveDevice());
-
- // Display connected devices, default device and show the active device
- setPreference(mediaOutputs, mediaValues, preference);
- }
-
- @Override
- public void setActiveBluetoothDevice(BluetoothDevice device) {
- if (mAudioManager.getMode() != AudioManager.MODE_NORMAL) {
- return;
- }
- final HearingAidProfile hapProfile = mProfileManager.getHearingAidProfile();
- final A2dpProfile a2dpProfile = mProfileManager.getA2dpProfile();
- if (hapProfile != null && a2dpProfile != null && device == null) {
- hapProfile.setActiveDevice(null);
- a2dpProfile.setActiveDevice(null);
- } else if (hapProfile != null && hapProfile.getHiSyncId(device) != HI_SYNC_ID_INVALID) {
- hapProfile.setActiveDevice(device);
- } else if (a2dpProfile != null) {
- a2dpProfile.setActiveDevice(device);
- }
+ mPreference.setVisible(deviceConnectable);
+ mPreference.setSummary((activeDevice == null) ?
+ mContext.getText(R.string.media_output_default_summary) :
+ activeDevice.getAliasName());
}
@Override
@@ -112,4 +99,34 @@
}
return activeDevice;
}
+
+ /**
+ * Find active hearing aid device
+ */
+ @Override
+ protected BluetoothDevice findActiveHearingAidDevice() {
+ final HearingAidProfile hearingAidProfile = mProfileManager.getHearingAidProfile();
+
+ if (hearingAidProfile != null) {
+ List<BluetoothDevice> activeDevices = hearingAidProfile.getActiveDevices();
+ for (BluetoothDevice btDevice : activeDevices) {
+ if (btDevice != null) {
+ return btDevice;
+ }
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (TextUtils.equals(preference.getKey(), getPreferenceKey())) {
+ final Intent intent = new Intent()
+ .setAction(MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT)
+ .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ mContext.startActivity(intent);
+ return true;
+ }
+ return false;
+ }
}
diff --git a/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java b/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
index c097d41..f931fa4 100644
--- a/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
+++ b/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
@@ -38,9 +38,13 @@
mUserCaps.updateAddUserCapabilities(mContext);
final RestrictedSwitchPreference restrictedSwitchPreference =
(RestrictedSwitchPreference) preference;
- restrictedSwitchPreference.setDisabledByAdmin(
- mUserCaps.disallowAddUser() ? mUserCaps.getEnforcedAdmin() : null);
- restrictedSwitchPreference.setVisible(mUserCaps.mUserSwitcherEnabled);
+ if (!isAvailable()) {
+ restrictedSwitchPreference.setVisible(false);
+ } else {
+ restrictedSwitchPreference.setDisabledByAdmin(
+ mUserCaps.disallowAddUser() ? mUserCaps.getEnforcedAdmin() : null);
+ restrictedSwitchPreference.setVisible(mUserCaps.mUserSwitcherEnabled);
+ }
}
@Override
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 5a83f34..98263e2 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -289,10 +289,8 @@
}
final PreferenceScreen screen = getPreferenceScreen();
- if (mAddUserWhenLockedPreferenceController.isAvailable()) {
- mAddUserWhenLockedPreferenceController.updateState(screen.findPreference(
- mAddUserWhenLockedPreferenceController.getPreferenceKey()));
- }
+ mAddUserWhenLockedPreferenceController.updateState(screen.findPreference(
+ mAddUserWhenLockedPreferenceController.getPreferenceKey()));
if (mShouldUpdateUserList) {
updateUI();
diff --git a/src/com/android/settings/vpn2/ConfigDialog.java b/src/com/android/settings/vpn2/ConfigDialog.java
index de2755e..07e957d 100644
--- a/src/com/android/settings/vpn2/ConfigDialog.java
+++ b/src/com/android/settings/vpn2/ConfigDialog.java
@@ -18,6 +18,8 @@
import android.content.Context;
import android.content.DialogInterface;
+import android.net.Proxy;
+import android.net.ProxyInfo;
import android.os.Bundle;
import android.os.SystemProperties;
import android.security.Credentials;
@@ -67,6 +69,9 @@
private TextView mSearchDomains;
private TextView mDnsServers;
private TextView mRoutes;
+ private Spinner mProxySettings;
+ private TextView mProxyHost;
+ private TextView mProxyPort;
private CheckBox mMppe;
private TextView mL2tpSecret;
private TextView mIpsecIdentifier;
@@ -105,6 +110,9 @@
mSearchDomains = (TextView) mView.findViewById(R.id.search_domains);
mDnsServers = (TextView) mView.findViewById(R.id.dns_servers);
mRoutes = (TextView) mView.findViewById(R.id.routes);
+ mProxySettings = (Spinner) mView.findViewById(R.id.vpn_proxy_settings);
+ mProxyHost = (TextView) mView.findViewById(R.id.vpn_proxy_host);
+ mProxyPort = (TextView) mView.findViewById(R.id.vpn_proxy_port);
mMppe = (CheckBox) mView.findViewById(R.id.mppe);
mL2tpSecret = (TextView) mView.findViewById(R.id.l2tp_secret);
mIpsecIdentifier = (TextView) mView.findViewById(R.id.ipsec_identifier);
@@ -128,6 +136,11 @@
mSearchDomains.setText(mProfile.searchDomains);
mDnsServers.setText(mProfile.dnsServers);
mRoutes.setText(mProfile.routes);
+ if (mProfile.proxy != null) {
+ mProxyHost.setText(mProfile.proxy.getHost());
+ int port = mProfile.proxy.getPort();
+ mProxyPort.setText(port == 0 ? "" : Integer.toString(port));
+ }
mMppe.setChecked(mProfile.mppe);
mL2tpSecret.setText(mProfile.l2tpSecret);
mIpsecIdentifier.setText(mProfile.ipsecIdentifier);
@@ -153,6 +166,9 @@
mPassword.addTextChangedListener(this);
mDnsServers.addTextChangedListener(this);
mRoutes.addTextChangedListener(this);
+ mProxySettings.setOnItemSelectedListener(this);
+ mProxyHost.addTextChangedListener(this);
+ mProxyPort.addTextChangedListener(this);
mIpsecSecret.addTextChangedListener(this);
mIpsecUserCert.setOnItemSelectedListener(this);
mShowOptions.setOnClickListener(this);
@@ -175,7 +191,8 @@
// Switch to advanced view immediately if any advanced options are on
if (!mProfile.searchDomains.isEmpty() || !mProfile.dnsServers.isEmpty() ||
- !mProfile.routes.isEmpty()) {
+ !mProfile.routes.isEmpty() || (mProfile.proxy != null &&
+ (!mProfile.proxy.getHost().isEmpty() || mProfile.proxy.getPort() != 0))) {
showAdvancedOptions();
}
@@ -246,6 +263,8 @@
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (parent == mType) {
changeType(position);
+ } else if (parent == mProxySettings) {
+ updateProxyFieldsVisibility(position);
}
updateUiControls();
}
@@ -271,6 +290,7 @@
* These include:
* "Always-on VPN" checkbox
* Reason for "Always-on VPN" being disabled, when necessary
+ * Proxy info if manually configured
* "Save account information" checkbox
* "Save" and "Connect" buttons
*/
@@ -298,6 +318,13 @@
mAlwaysOnInvalidReason.setVisibility(View.VISIBLE);
}
+ // Show proxy fields if any proxy field is filled.
+ if (mProfile.proxy != null && (!mProfile.proxy.getHost().isEmpty() ||
+ mProfile.proxy.getPort() != 0)) {
+ mProxySettings.setSelection(VpnProfile.PROXY_MANUAL);
+ updateProxyFieldsVisibility(VpnProfile.PROXY_MANUAL);
+ }
+
// Save account information
if (mAlwaysOnVpn.isChecked()) {
mSaveLogin.setChecked(true);
@@ -311,6 +338,11 @@
getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(validate(mEditing));
}
+ private void updateProxyFieldsVisibility(int position) {
+ final int visible = position == VpnProfile.PROXY_MANUAL ? View.VISIBLE : View.GONE;
+ mView.findViewById(R.id.vpn_proxy_fields).setVisibility(visible);
+ }
+
private void showAdvancedOptions() {
mView.findViewById(R.id.options).setVisibility(View.VISIBLE);
mShowOptions.setVisibility(View.GONE);
@@ -361,6 +393,11 @@
!validateAddresses(mRoutes.getText().toString(), true)) {
return false;
}
+
+ if (!validateProxy()) {
+ return false;
+ }
+
switch (mType.getSelectedItemPosition()) {
case VpnProfile.TYPE_PPTP:
case VpnProfile.TYPE_IPSEC_HYBRID_RSA:
@@ -435,6 +472,10 @@
return mEditing;
}
+ boolean hasProxy() {
+ return mProxySettings.getSelectedItemPosition() == VpnProfile.PROXY_MANUAL;
+ }
+
VpnProfile getProfile() {
// First, save common fields.
VpnProfile profile = new VpnProfile(mProfile.key);
@@ -446,7 +487,16 @@
profile.searchDomains = mSearchDomains.getText().toString().trim();
profile.dnsServers = mDnsServers.getText().toString().trim();
profile.routes = mRoutes.getText().toString().trim();
-
+ if (hasProxy()) {
+ String proxyHost = mProxyHost.getText().toString().trim();
+ String proxyPort = mProxyPort.getText().toString().trim();
+ // 0 is a last resort default, but the interface validates that the proxy port is
+ // present and non-zero.
+ int port = proxyPort.isEmpty() ? 0 : Integer.parseInt(proxyPort);
+ profile.proxy = new ProxyInfo(proxyHost, port, null);
+ } else {
+ profile.proxy = null;
+ }
// Then, save type-specific fields.
switch (profile.type) {
case VpnProfile.TYPE_PPTP:
@@ -483,4 +533,15 @@
profile.saveLogin = mSaveLogin.isChecked() || (mEditing && hasLogin);
return profile;
}
+
+ private boolean validateProxy() {
+ if (!hasProxy()) {
+ return true;
+ }
+
+ final String host = mProxyHost.getText().toString().trim();
+ final String port = mProxyPort.getText().toString().trim();
+ return Proxy.validate(host, port, "") == Proxy.PROXY_VALID;
+ }
+
}
diff --git a/src/com/android/settings/widget/SingleTargetGearPreference.java b/src/com/android/settings/widget/SingleTargetGearPreference.java
index 48876fa..f6496ed 100644
--- a/src/com/android/settings/widget/SingleTargetGearPreference.java
+++ b/src/com/android/settings/widget/SingleTargetGearPreference.java
@@ -18,9 +18,10 @@
import android.content.Context;
import android.util.AttributeSet;
+import android.view.View;
-import androidx.core.content.res.TypedArrayUtils;
import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
import com.android.settings.R;
@@ -28,23 +29,38 @@
* A preference with single target and a gear icon on the side.
*/
public class SingleTargetGearPreference extends Preference {
-
- public SingleTargetGearPreference(Context context, AttributeSet attrs,
- int defStyleAttr, int defStyleRes) {
+ public SingleTargetGearPreference(Context context, AttributeSet attrs, int defStyleAttr,
+ int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
- setWidgetLayoutResource(R.layout.preference_widget_gear_no_bg);
+ init();
}
public SingleTargetGearPreference(Context context, AttributeSet attrs, int defStyleAttr) {
- this(context, attrs, defStyleAttr, 0 /* defStyleRes */);
+ super(context, attrs, defStyleAttr);
+ init();
}
public SingleTargetGearPreference(Context context, AttributeSet attrs) {
- this(context, attrs, TypedArrayUtils.getAttr(context, R.attr.preferenceStyle,
- android.R.attr.preferenceStyle));
+ super(context, attrs);
+ init();
}
public SingleTargetGearPreference(Context context) {
- this(context, null /* attrs */);
+ super(context);
+ init();
}
-}
\ No newline at end of file
+
+ private void init() {
+ setLayoutResource(R.layout.preference_single_target);
+ setWidgetLayoutResource(R.layout.preference_widget_gear_optional_background);
+ }
+
+ @Override
+ public void onBindViewHolder(PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+ final View divider = holder.findViewById(com.android.settingslib.R.id.two_target_divider);
+ if (divider != null) {
+ divider.setVisibility(View.INVISIBLE);
+ }
+ }
+}
diff --git a/src/com/android/settings/wifi/ButtonPreference.java b/src/com/android/settings/wifi/ButtonPreference.java
index 9a0abf6..5169d7a 100644
--- a/src/com/android/settings/wifi/ButtonPreference.java
+++ b/src/com/android/settings/wifi/ButtonPreference.java
@@ -49,6 +49,7 @@
private ImageButton mImageButton;
private Drawable mButtonIcon;
private View.OnClickListener mClickListener;
+ private String mContentDescription;
// Used for dummy pref.
public ButtonPreference(Context context, AttributeSet attrs) {
@@ -57,6 +58,7 @@
mImageButton = null;
mButtonIcon = null;
mClickListener = null;
+ mContentDescription = null;
}
public ButtonPreference(Context context) {
@@ -83,6 +85,7 @@
if (mImageButton != null) {
mImageButton.setImageDrawable(mButtonIcon);
mImageButton.setOnClickListener(mClickListener);
+ mImageButton.setContentDescription(mContentDescription);
}
setButtonVisibility();
}
@@ -96,9 +99,9 @@
/**
* Sets the drawable to be displayed in button.
*/
- public ButtonPreference setButtonIcon(@DrawableRes int iconResId) {
+ public void setButtonIcon(@DrawableRes int iconResId) {
if (iconResId == 0) {
- return this;
+ return;
}
try {
@@ -107,17 +110,26 @@
} catch (Resources.NotFoundException exception) {
Log.e(TAG, "Resource does not exist: " + iconResId);
}
- return this;
}
/**
* Register a callback to be invoked when button is clicked.
*/
- public ButtonPreference setButtonOnClickListener(View.OnClickListener listener) {
+ public void setButtonOnClickListener(View.OnClickListener listener) {
if (listener != mClickListener) {
mClickListener = listener;
notifyChanged();
}
- return this;
+ }
+
+ /**
+ * A content description briefly describes the button and is primarily used for accessibility
+ * support to determine how a button should be presented to the user.
+ */
+ public void setButtonContentDescription(String contentDescription) {
+ if (contentDescription != mContentDescription) {
+ mContentDescription = contentDescription;
+ notifyChanged();
+ }
}
}
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index e7db5db..0adbd8d 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -248,8 +248,8 @@
mMeteredSettingsSpinner = mView.findViewById(R.id.metered_settings);
mHiddenSettingsSpinner = mView.findViewById(R.id.hidden_settings);
mPrivacySettingsSpinner = mView.findViewById(R.id.privacy_settings);
- if (FeatureFlagUtils.isEnabled(mContext,
- com.android.settings.core.FeatureFlags.WIFI_MAC_RANDOMIZATION)) {
+ if (mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_wifi_connected_mac_randomization_supported)) {
View privacySettingsLayout = mView.findViewById(R.id.privacy_settings_fields);
privacySettingsLayout.setVisibility(View.VISIBLE);
}
@@ -265,11 +265,7 @@
configureSecuritySpinner();
mConfigUi.setSubmitButton(res.getString(R.string.wifi_save));
} else {
- if (!mAccessPoint.isPasspointConfig()) {
- mConfigUi.setTitle(mAccessPoint.getSsid());
- } else {
- mConfigUi.setTitle(mAccessPoint.getConfigName());
- }
+ mConfigUi.setTitle(mAccessPoint.getTitle());
ViewGroup group = (ViewGroup) mView.findViewById(R.id.info);
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index c00fe24..a8fc34d 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -67,6 +67,7 @@
import com.android.settings.widget.SwitchBarController;
import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
import com.android.settings.wifi.dpp.WifiDppUtils;
+import com.android.settings.wifi.savedaccesspoints.SavedAccessPointsWifiSettings;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.search.SearchIndexable;
@@ -247,6 +248,7 @@
getContext().startActivity(
WifiDppUtils.getEnrolleeQrCodeScannerIntent(/* ssid */ null));
});
+ mAddPreference.setButtonContentDescription(getString(R.string.wifi_dpp_scan_qr_code));
mStatusMessagePreference = (LinkablePreference) findPreference(PREF_KEY_STATUS_MESSAGE);
mUserBadgeCache = new AccessPointPreference.UserBadgeCache(getPackageManager());
@@ -483,7 +485,7 @@
if (preference instanceof LongPressAccessPointPreference) {
mSelectedAccessPoint =
((LongPressAccessPointPreference) preference).getAccessPoint();
- menu.setHeaderTitle(mSelectedAccessPoint.getSsid());
+ menu.setHeaderTitle(mSelectedAccessPoint.getTitle());
if (mSelectedAccessPoint.isConnectable()) {
menu.add(Menu.NONE, MENU_ID_CONNECT, 0, R.string.wifi_menu_connect);
}
@@ -967,8 +969,13 @@
}
private void launchNetworkDetailsFragment(ConnectedAccessPointPreference pref) {
+ final AccessPoint accessPoint = pref.getAccessPoint();
+ final Context context = getContext();
+ final CharSequence title = SavedAccessPointsWifiSettings.usingDetailsFragment(context) ?
+ accessPoint.getTitle() : context.getText(R.string.pref_title_network_details);
+
new SubSettingLauncher(getContext())
- .setTitleRes(R.string.pref_title_network_details)
+ .setTitleText(title)
.setDestination(WifiNetworkDetailsFragment.class.getName())
.setArguments(pref.getExtras())
.setSourceMetricsCategory(getMetricsCategory())
diff --git a/src/com/android/settings/wifi/calling/DisclaimerItem.java b/src/com/android/settings/wifi/calling/DisclaimerItem.java
new file mode 100644
index 0000000..6fd8b70
--- /dev/null
+++ b/src/com/android/settings/wifi/calling/DisclaimerItem.java
@@ -0,0 +1,137 @@
+/*
+ * 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.wifi.calling;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
+import android.util.Log;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+/**
+ * Interface to control disclaimer item from {@link WifiCallingDisclaimerFragment}.
+ */
+@VisibleForTesting
+public abstract class DisclaimerItem {
+ private static final String SHARED_PREFERENCES_NAME = "wfc_disclaimer_prefs";
+
+ protected final Context mContext;
+ protected final int mSubId;
+ private final CarrierConfigManager mCarrierConfigManager;
+
+ DisclaimerItem(Context context, int subId) {
+ mContext = context;
+ mSubId = subId;
+ mCarrierConfigManager = mContext.getSystemService(CarrierConfigManager.class);
+ }
+
+ /**
+ * Called by the {@link WifiCallingDisclaimerFragment} when a user has clicked the agree button.
+ */
+ void onAgreed() {
+ setBooleanSharedPrefs(getPrefKey(), true);
+ }
+
+ /**
+ * Checks whether the disclaimer item need to be displayed or not.
+ *
+ * @return Returns {@code true} if disclaimer item need to be displayed,
+ * {@code false} if not displayed.
+ */
+ boolean shouldShow() {
+ if (getBooleanSharedPrefs(getPrefKey(), false)) {
+ logd("shouldShow: false due to a user has already agreed.");
+ return false;
+ }
+ logd("shouldShow: true");
+ return true;
+ }
+
+ /**
+ * Gets the configuration values for a particular sub id.
+ *
+ * @return The {@link PersistableBundle} instance containing the config value for a
+ * particular phone id, or default values.
+ */
+ protected PersistableBundle getCarrierConfig() {
+ PersistableBundle config = mCarrierConfigManager.getConfigForSubId(mSubId);
+ if (config != null) {
+ return config;
+ }
+ // Return static default defined in CarrierConfigManager.
+ return CarrierConfigManager.getDefaultConfig();
+ }
+
+ protected void logd(String msg) {
+ Log.d(getName(), "[" + mSubId + "] " + msg);
+ }
+
+ /**
+ * Gets a title id for disclaimer item.
+ *
+ * @return Title id for disclaimer item.
+ */
+ protected abstract int getTitleId();
+
+ /**
+ * Gets a message id for disclaimer item.
+ *
+ * @return Message id for disclaimer item.
+ */
+ protected abstract int getMessageId();
+
+ /**
+ * Gets a name of disclaimer item.
+ *
+ * @return Name of disclaimer item.
+ */
+ protected abstract String getName();
+
+ /**
+ * Gets a preference key to keep user's consent.
+ *
+ * @return Preference key to keep user's consent.
+ */
+ protected abstract String getPrefKey();
+
+ /**
+ * Gets the boolean value from shared preferences.
+ *
+ * @param key The key for the preference item.
+ * @param defValue Value to return if this preference does not exist.
+ * @return The boolean value of corresponding key, or defValue.
+ */
+ private boolean getBooleanSharedPrefs(String key, boolean defValue) {
+ SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFERENCES_NAME,
+ Context.MODE_PRIVATE);
+ return prefs.getBoolean(key + mSubId, defValue);
+ }
+
+ /**
+ * Sets the boolean value to shared preferences.
+ *
+ * @param key The key for the preference item.
+ * @param value The value to be set for shared preferences.
+ */
+ private void setBooleanSharedPrefs(String key, boolean value) {
+ SharedPreferences prefs = mContext.getSharedPreferences(SHARED_PREFERENCES_NAME,
+ Context.MODE_PRIVATE);
+ prefs.edit().putBoolean(key + mSubId, value).apply();
+ }
+}
diff --git a/src/com/android/settings/wifi/calling/DisclaimerItemFactory.java b/src/com/android/settings/wifi/calling/DisclaimerItemFactory.java
new file mode 100644
index 0000000..6d8dc8f
--- /dev/null
+++ b/src/com/android/settings/wifi/calling/DisclaimerItemFactory.java
@@ -0,0 +1,57 @@
+/*
+ * 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.wifi.calling;
+
+import android.content.Context;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Factory class to create disclaimer items list.
+ */
+@VisibleForTesting
+public final class DisclaimerItemFactory {
+
+ /**
+ * Creates disclaimer items list.
+ *
+ * @param context The application context
+ * @param subId The subscription id.
+ * @return The {@link DisclaimerItem} list instance, if there are no items, return empty list.
+ */
+ public static List<DisclaimerItem> create(Context context, int subId) {
+ List<DisclaimerItem> itemList = getDisclaimerItemList(context, subId);
+ Iterator itr = itemList.iterator();
+ while (itr.hasNext()) {
+ DisclaimerItem item = (DisclaimerItem) itr.next();
+ if (!item.shouldShow()) {
+ itr.remove();
+ }
+ }
+ return itemList;
+ }
+
+ private static List<DisclaimerItem> getDisclaimerItemList(Context context, int subId) {
+ List<DisclaimerItem> itemList = new ArrayList<DisclaimerItem>();
+
+ return itemList;
+ }
+}
diff --git a/src/com/android/settings/wifi/calling/DisclaimerItemListAdapter.java b/src/com/android/settings/wifi/calling/DisclaimerItemListAdapter.java
new file mode 100644
index 0000000..4b5d19c
--- /dev/null
+++ b/src/com/android/settings/wifi/calling/DisclaimerItemListAdapter.java
@@ -0,0 +1,78 @@
+/*
+ * 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.wifi.calling;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
+
+import java.util.List;
+
+/**
+ * Adapter for disclaimer items list.
+ */
+public class DisclaimerItemListAdapter extends
+ RecyclerView.Adapter<DisclaimerItemListAdapter.DisclaimerItemViewHolder> {
+
+ private List<DisclaimerItem> mDisclaimerItemList;
+
+ public DisclaimerItemListAdapter(List<DisclaimerItem> list) {
+ mDisclaimerItemList = list;
+ }
+
+ @Override
+ public DisclaimerItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ LayoutInflater inflater = (LayoutInflater) parent.getContext().getSystemService(
+ Context.LAYOUT_INFLATER_SERVICE);
+ View view = inflater.inflate(R.layout.wfc_simple_disclaimer_item, null, false);
+ return new DisclaimerItemViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(DisclaimerItemViewHolder holder, int position) {
+ holder.titleView.setText(mDisclaimerItemList.get(position).getTitleId());
+ holder.descriptionView.setText(mDisclaimerItemList.get(position).getMessageId());
+ }
+
+ @Override
+ public int getItemCount() {
+ return mDisclaimerItemList.size();
+ }
+
+ public static class DisclaimerItemViewHolder extends RecyclerView.ViewHolder {
+ @VisibleForTesting
+ static final int ID_DISCLAIMER_ITEM_TITLE = R.id.disclaimer_title;
+ @VisibleForTesting
+ static final int ID_DISCLAIMER_ITEM_DESCRIPTION = R.id.disclaimer_desc;
+
+ public final TextView titleView;
+ public final TextView descriptionView;
+
+ public DisclaimerItemViewHolder(View itemView) {
+ super(itemView);
+ titleView = itemView.findViewById(ID_DISCLAIMER_ITEM_TITLE);
+ descriptionView = itemView.findViewById(ID_DISCLAIMER_ITEM_DESCRIPTION);
+ }
+ }
+}
diff --git a/src/com/android/settings/wifi/calling/ListWithEntrySummaryPreference.java b/src/com/android/settings/wifi/calling/ListWithEntrySummaryPreference.java
new file mode 100644
index 0000000..a44fcbe
--- /dev/null
+++ b/src/com/android/settings/wifi/calling/ListWithEntrySummaryPreference.java
@@ -0,0 +1,203 @@
+/*
+ * 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.wifi.calling;
+
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.res.TypedArray;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ListAdapter;
+import android.widget.RadioButton;
+import android.widget.TextView;
+import androidx.appcompat.app.AlertDialog.Builder;
+import com.android.settings.CustomListPreference;
+import com.android.settings.R;
+
+/**
+ * ListPreference contain the entry summary.
+ */
+public class ListWithEntrySummaryPreference extends CustomListPreference {
+ private static final String LOG_TAG = "ListWithEntrySummaryPreference";
+ private final Context mContext;
+ private CharSequence[] mSummaries;
+
+ /**
+ * ListWithEntrySummaryPreference constructor.
+ *
+ * @param context The context of view.
+ * @param attrs The attributes of the XML tag that is inflating the linear layout.
+ */
+ public ListWithEntrySummaryPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ mContext = context;
+
+ TypedArray array = context.obtainStyledAttributes(attrs,
+ R.styleable.ListWithEntrySummaryPreference, 0, 0);
+ mSummaries = array.getTextArray(R.styleable.ListWithEntrySummaryPreference_entrySummaries);
+ array.recycle();
+ }
+
+ /**
+ * Sets the summaries of mode items to be shown in the mode select dialog.
+ *
+ * @param summariesResId The summaries of mode items.
+ */
+ public void setEntrySummaries(int summariesResId) {
+ mSummaries = getContext().getResources().getTextArray(summariesResId);
+ }
+
+ /**
+ * Sets the summaries of mode items to be shown in the mode select dialog.
+ *
+ * @param summaries The summaries of mode items.
+ */
+ public void setEntrySummaries(CharSequence[] summaries) {
+ mSummaries = summaries;
+ }
+
+ private CharSequence getEntrySummary(int index) {
+ if (mSummaries == null) {
+ Log.w(LOG_TAG, "getEntrySummary : mSummaries is null");
+ return "";
+ }
+ return mSummaries[index];
+ }
+
+ @Override
+ protected void onPrepareDialogBuilder(Builder builder,
+ DialogInterface.OnClickListener listener) {
+ ListAdapter la = (ListAdapter) new SelectorAdapter(mContext,
+ R.xml.single_choice_list_item_2, this);
+ builder.setSingleChoiceItems(la, findIndexOfValue(getValue()), listener);
+ super.onPrepareDialogBuilder(builder, listener);
+ }
+
+ private static class SelectorAdapter extends ArrayAdapter<CharSequence> {
+ private final Context mContext;
+ private ListWithEntrySummaryPreference mSelector;
+
+ /**
+ * SelectorAdapter constructor.
+ *
+ * @param context The current context.
+ * @param rowResourceId The resource id of the XML tag that is inflating the linear layout.
+ * @param listPreference The instance of ListWithEntrySummaryPreference.
+ */
+ public SelectorAdapter(Context context, int rowResourceId,
+ ListWithEntrySummaryPreference listPreference) {
+ super(context, rowResourceId, listPreference.getEntryValues());
+ mContext = context;
+ mSelector = listPreference;
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ LayoutInflater inflater = LayoutInflater.from(mContext);
+ View row = inflater.inflate(R.xml.single_choice_list_item_2, parent, false);
+
+ TextView title = (TextView) row.findViewById(R.id.title);
+ title.setText(mSelector.getEntries()[position]);
+
+ TextView summary = (TextView) row.findViewById(R.id.summary);
+ summary.setText(mSelector.getEntrySummary(position));
+
+ RadioButton rb = (RadioButton) row.findViewById(R.id.radio);
+ if (position == mSelector.findIndexOfValue(mSelector.getValue())) {
+ rb.setChecked(true);
+ }
+
+ return row;
+ }
+ }
+
+ @Override
+ protected Parcelable onSaveInstanceState() {
+ final Parcelable superState = super.onSaveInstanceState();
+
+ final SavedState myState = new SavedState(superState);
+ myState.mEntries = getEntries();
+ myState.mEntryValues = getEntryValues();
+ myState.mSummaries = mSummaries;
+ return myState;
+ }
+
+ @Override
+ protected void onRestoreInstanceState(Parcelable state) {
+ if (state == null || !state.getClass().equals(SavedState.class)) {
+ // Didn't save state for us in onSaveInstanceState
+ super.onRestoreInstanceState(state);
+ return;
+ }
+
+ SavedState myState = (SavedState) state;
+ super.onRestoreInstanceState(myState.getSuperState());
+ setEntries(myState.mEntries);
+ setEntryValues(myState.mEntryValues);
+ mSummaries = myState.mSummaries;
+ }
+
+ /**
+ * We save entries, entryValues and summaries into bundle.
+ * At onCreate of fragment, dialog will be restored if it was open. In this case,
+ * we need to restore entries, entryValues and summaries. Without those information,
+ * crash when entering multi window during wfc modes dialog shown.
+ */
+ private static class SavedState extends BaseSavedState {
+ private CharSequence[] mEntries;
+ private CharSequence[] mEntryValues;
+ private CharSequence[] mSummaries;
+
+ public SavedState(Parcel source) {
+ super(source);
+ mEntries = source.readCharSequenceArray();
+ mEntryValues = source.readCharSequenceArray();
+ mSummaries = source.readCharSequenceArray();
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ super.writeToParcel(dest, flags);
+ dest.writeCharSequenceArray(mEntries);
+ dest.writeCharSequenceArray(mEntryValues);
+ dest.writeCharSequenceArray(mSummaries);
+ }
+
+ public SavedState(Parcelable superState) {
+ super(superState);
+ }
+
+ public static final Parcelable.Creator<SavedState> CREATOR =
+ new Parcelable.Creator<SavedState>() {
+ @Override
+ public SavedState createFromParcel(Parcel in) {
+ return new SavedState(in);
+ }
+
+ @Override
+ public SavedState[] newArray(int size) {
+ return new SavedState[size];
+ }
+ };
+ }
+}
diff --git a/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragment.java b/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragment.java
new file mode 100644
index 0000000..7763226
--- /dev/null
+++ b/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragment.java
@@ -0,0 +1,148 @@
+/*
+ * 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.wifi.calling;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.telephony.SubscriptionManager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView.OnScrollListener;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Fragment for displaying disclaimers for WFC.
+ */
+public class WifiCallingDisclaimerFragment extends InstrumentedFragment
+ implements View.OnClickListener {
+ private static final String TAG = "WifiCallingDisclaimerFragment";
+
+ private static final String STATE_IS_SCROLL_TO_BOTTOM = "state_is_scroll_to_bottom";
+
+ private List<DisclaimerItem> mDisclaimerItemList = new ArrayList<DisclaimerItem>();
+ private Button mAgreeButton;
+ private Button mDisagreeButton;
+ private boolean mScrollToBottom;
+
+ @Override
+ public int getMetricsCategory() {
+ return MetricsEvent.WIFI_CALLING;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ final Bundle args = getArguments();
+ final int subId = (args != null) ? args.getInt(WifiCallingSettingsForSub.EXTRA_SUB_ID)
+ : SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;
+
+ mDisclaimerItemList = DisclaimerItemFactory.create(getActivity(), subId);
+ if (mDisclaimerItemList.isEmpty()) {
+ finish(Activity.RESULT_OK);
+ return;
+ }
+
+ if (savedInstanceState != null) {
+ mScrollToBottom = savedInstanceState.getBoolean(
+ STATE_IS_SCROLL_TO_BOTTOM, mScrollToBottom);
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+
+ final View view = inflater.inflate(R.layout.wfc_disclaimer_fragment, container, false);
+
+ mAgreeButton = view.findViewById(R.id.agree_button);
+ mAgreeButton.setOnClickListener(this);
+ mDisagreeButton = view.findViewById(R.id.disagree_button);
+ mDisagreeButton.setOnClickListener(this);
+
+ final RecyclerView recyclerView = (RecyclerView) view.findViewById(
+ R.id.disclaimer_item_list);
+ recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
+ recyclerView.setAdapter(new DisclaimerItemListAdapter(mDisclaimerItemList));
+
+ RecyclerView.ItemDecoration itemDecoration =
+ new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL);
+ recyclerView.addItemDecoration(itemDecoration);
+
+ recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
+ @Override
+ public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
+ super.onScrolled(recyclerView, dx, dy);
+ if (!recyclerView.canScrollVertically(1 /* scrolling down */)) {
+ mScrollToBottom = true;
+ updateButtonState();
+ recyclerView.removeOnScrollListener(this);
+ }
+ }
+ });
+
+ return view;
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ updateButtonState();
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putBoolean(STATE_IS_SCROLL_TO_BOTTOM, mScrollToBottom);
+ }
+
+ private void updateButtonState() {
+ mAgreeButton.setEnabled(mScrollToBottom);
+ }
+
+ @Override
+ public void onClick(View v) {
+ if (v == mAgreeButton) {
+ for (DisclaimerItem item : mDisclaimerItemList) {
+ item.onAgreed();
+ }
+ finish(Activity.RESULT_OK);
+ } else if (v == mDisagreeButton) {
+ finish(Activity.RESULT_CANCELED);
+ }
+ }
+
+ @VisibleForTesting
+ void finish(int result) {
+ Activity activity = getActivity();
+ activity.setResult(result, null);
+ activity.finish();
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
index 79112c7..525b59b 100644
--- a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
+++ b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
@@ -40,7 +40,6 @@
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
-import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.Preference.OnPreferenceClickListener;
import androidx.preference.PreferenceScreen;
@@ -54,6 +53,7 @@
import com.android.settings.SettingsActivity;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settings.widget.SwitchBar;
/**
@@ -70,9 +70,13 @@
private static final String BUTTON_WFC_ROAMING_MODE = "wifi_calling_roaming_mode";
private static final String PREFERENCE_EMERGENCY_ADDRESS = "emergency_address_key";
- private static final int REQUEST_CHECK_WFC_EMERGENCY_ADDRESS = 1;
+ @VisibleForTesting
+ static final int REQUEST_CHECK_WFC_EMERGENCY_ADDRESS = 1;
+ @VisibleForTesting
+ static final int REQUEST_CHECK_WFC_DISCLAIMER = 2;
public static final String EXTRA_LAUNCH_CARRIER_APP = "EXTRA_LAUNCH_CARRIER_APP";
+ public static final String EXTRA_SUB_ID = "EXTRA_SUB_ID";
protected static final String FRAGMENT_BUNDLE_SUBID = "subId";
@@ -82,14 +86,15 @@
//UI objects
private SwitchBar mSwitchBar;
private Switch mSwitch;
- private ListPreference mButtonWfcMode;
- private ListPreference mButtonWfcRoamingMode;
+ private ListWithEntrySummaryPreference mButtonWfcMode;
+ private ListWithEntrySummaryPreference mButtonWfcRoamingMode;
private Preference mUpdateAddress;
private TextView mEmptyView;
private boolean mValidListener = false;
private boolean mEditableWfcMode = true;
private boolean mEditableWfcRoamingMode = true;
+ private boolean mUseWfcHomeModeForRoaming = false;
private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
private ImsManager mImsManager;
@@ -140,20 +145,17 @@
}
};
+ /*
+ * Launch carrier emergency address managemnent activity
+ */
private final OnPreferenceClickListener mUpdateAddressListener =
- new OnPreferenceClickListener() {
- /*
- * Launch carrier emergency address managemnent activity
- */
- @Override
- public boolean onPreferenceClick(Preference preference) {
- Intent carrierAppIntent = getCarrierActivityIntent();
- if (carrierAppIntent != null) {
- carrierAppIntent.putExtra(EXTRA_LAUNCH_CARRIER_APP, LAUCH_APP_UPDATE);
- startActivity(carrierAppIntent);
- }
- return true;
+ preference -> {
+ Intent carrierAppIntent = getCarrierActivityIntent();
+ if (carrierAppIntent != null) {
+ carrierAppIntent.putExtra(EXTRA_LAUNCH_CARRIER_APP, LAUCH_APP_UPDATE);
+ startActivity(carrierAppIntent);
}
+ return true;
};
private final ProvisioningManager.Callback mProvisioningCallback =
@@ -173,11 +175,9 @@
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
- final SettingsActivity activity = (SettingsActivity) getActivity();
-
mEmptyView = getView().findViewById(android.R.id.empty);
setEmptyView(mEmptyView);
- final Resources res = SubscriptionManager.getResourcesForSubId(getContext(), mSubId);
+ final Resources res = getResourcesForSubId();
String emptyViewText = res.getString(R.string.wifi_calling_off_explanation,
res.getString(R.string.wifi_calling_off_explanation_2));
mEmptyView.setText(emptyViewText);
@@ -264,13 +264,13 @@
mTelephonyManager = ((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE))
.createForSubscriptionId(mSubId);
- mButtonWfcMode = (ListPreference) findPreference(BUTTON_WFC_MODE);
+ mButtonWfcMode = findPreference(BUTTON_WFC_MODE);
mButtonWfcMode.setOnPreferenceChangeListener(this);
- mButtonWfcRoamingMode = (ListPreference) findPreference(BUTTON_WFC_ROAMING_MODE);
+ mButtonWfcRoamingMode = findPreference(BUTTON_WFC_ROAMING_MODE);
mButtonWfcRoamingMode.setOnPreferenceChangeListener(this);
- mUpdateAddress = (Preference) findPreference(PREFERENCE_EMERGENCY_ADDRESS);
+ mUpdateAddress = findPreference(PREFERENCE_EMERGENCY_ADDRESS);
mUpdateAddress.setOnPreferenceClickListener(mUpdateAddressListener);
mIntentFilter = new IntentFilter();
@@ -317,6 +317,9 @@
CarrierConfigManager.KEY_EDITABLE_WFC_MODE_BOOL);
mEditableWfcRoamingMode = b.getBoolean(
CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL);
+ mUseWfcHomeModeForRoaming = b.getBoolean(
+ CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL,
+ false);
isWifiOnlySupported = b.getBoolean(
CarrierConfigManager.KEY_CARRIER_WFC_SUPPORTS_WIFI_ONLY_BOOL, true);
}
@@ -325,10 +328,14 @@
if (!isWifiOnlySupported) {
mButtonWfcMode.setEntries(R.array.wifi_calling_mode_choices_without_wifi_only);
mButtonWfcMode.setEntryValues(R.array.wifi_calling_mode_values_without_wifi_only);
+ mButtonWfcMode.setEntrySummaries(R.array.wifi_calling_mode_summaries_without_wifi_only);
+
mButtonWfcRoamingMode.setEntries(
R.array.wifi_calling_mode_choices_v2_without_wifi_only);
mButtonWfcRoamingMode.setEntryValues(
R.array.wifi_calling_mode_values_without_wifi_only);
+ mButtonWfcRoamingMode.setEntrySummaries(
+ R.array.wifi_calling_mode_summaries_without_wifi_only);
}
@@ -414,14 +421,17 @@
return;
}
- // Call address management activity before turning on WFC
- Intent carrierAppIntent = getCarrierActivityIntent();
- if (carrierAppIntent != null) {
- carrierAppIntent.putExtra(EXTRA_LAUNCH_CARRIER_APP, LAUCH_APP_ACTIVATE);
- startActivityForResult(carrierAppIntent, REQUEST_CHECK_WFC_EMERGENCY_ADDRESS);
- } else {
- updateWfcMode(true);
- }
+ // Launch disclaimer fragment before turning on WFC
+ final Context context = getActivity();
+ final Bundle args = new Bundle();
+ args.putInt(EXTRA_SUB_ID, mSubId);
+ new SubSettingLauncher(context)
+ .setDestination(WifiCallingDisclaimerFragment.class.getName())
+ .setArguments(args)
+ .setTitleRes(R.string.wifi_calling_settings_title)
+ .setSourceMetricsCategory(getMetricsCategory())
+ .setResultListener(this, REQUEST_CHECK_WFC_DISCLAIMER)
+ .launch();
}
/*
@@ -474,12 +484,30 @@
final Context context = getActivity();
- if (requestCode == REQUEST_CHECK_WFC_EMERGENCY_ADDRESS) {
- Log.d(TAG, "WFC emergency address activity result = " + resultCode);
+ Log.d(TAG, "WFC activity request = " + requestCode + " result = " + resultCode);
- if (resultCode == Activity.RESULT_OK) {
- updateWfcMode(true);
- }
+ switch (requestCode) {
+ case REQUEST_CHECK_WFC_EMERGENCY_ADDRESS:
+ if (resultCode == Activity.RESULT_OK) {
+ updateWfcMode(true);
+ }
+ break;
+ case REQUEST_CHECK_WFC_DISCLAIMER:
+ if (resultCode == Activity.RESULT_OK) {
+ // Call address management activity before turning on WFC
+ Intent carrierAppIntent = getCarrierActivityIntent();
+ if (carrierAppIntent != null) {
+ carrierAppIntent.putExtra(EXTRA_LAUNCH_CARRIER_APP, LAUCH_APP_ACTIVATE);
+ startActivityForResult(carrierAppIntent,
+ REQUEST_CHECK_WFC_EMERGENCY_ADDRESS);
+ } else {
+ updateWfcMode(true);
+ }
+ }
+ break;
+ default:
+ Log.e(TAG, "Unexpected request: " + requestCode);
+ break;
}
}
@@ -499,7 +527,7 @@
// Don't show WFC (home) preference if it's not editable.
preferenceScreen.removePreference(mButtonWfcMode);
}
- if (mEditableWfcRoamingMode) {
+ if (mEditableWfcRoamingMode && !mUseWfcHomeModeForRoaming) {
preferenceScreen.addPreference(mButtonWfcRoamingMode);
} else {
// Don't show WFC roaming preference if it's not editable.
@@ -528,10 +556,8 @@
mImsManager.setWfcMode(buttonMode, false);
mButtonWfcMode.setSummary(getWfcModeSummary(buttonMode));
mMetricsFeatureProvider.action(getActivity(), getMetricsCategory(), buttonMode);
- }
- if (!mEditableWfcRoamingMode) {
- int currentWfcRoamingMode = mImsManager.getWfcMode(true);
- if (buttonMode != currentWfcRoamingMode) {
+
+ if (mUseWfcHomeModeForRoaming) {
mImsManager.setWfcMode(buttonMode, true);
// mButtonWfcRoamingMode.setSummary is not needed; summary is selected value
}
@@ -568,4 +594,9 @@
}
return resId;
}
+
+ @VisibleForTesting
+ Resources getResourcesForSubId() {
+ return SubscriptionManager.getResourcesForSubId(getContext(), mSubId, false);
+ }
}
diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
index 01673e3..89565df 100644
--- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
@@ -21,16 +21,12 @@
import android.app.Activity;
import android.app.AlertDialog;
-import android.app.KeyguardManager;
import android.app.settings.SettingsEnums;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.drawable.Drawable;
-import android.hardware.biometrics.BiometricPrompt;
-import android.os.CancellationSignal;
-import android.os.Looper;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager.NetworkCallback;
import android.net.LinkAddress;
@@ -46,6 +42,7 @@
import android.net.wifi.WifiManager;
import android.os.Handler;
import android.text.TextUtils;
+import android.util.FeatureFlagUtils;
import android.util.Log;
import android.widget.ImageView;
import android.widget.Toast;
@@ -55,12 +52,14 @@
import androidx.fragment.app.Fragment;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.FeatureFlags;
import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.datausage.WifiDataUsageSummaryPreferenceController;
import com.android.settings.development.featureflags.FeatureFlagPersistent;
import com.android.settings.widget.EntityHeaderController;
import com.android.settings.wifi.WifiDialog;
@@ -154,6 +153,9 @@
private Preference mDnsPref;
private PreferenceCategory mIpv6Category;
private Preference mIpv6AddressPref;
+ private Lifecycle mLifecycle;
+ Preference mDataUsageSummaryPref;
+ WifiDataUsageSummaryPreferenceController mSummaryHeaderController;
private final IconInjector mIconInjector;
private final IntentFilter mFilter;
@@ -266,6 +268,7 @@
mFilter.addAction(WifiManager.RSSI_CHANGED_ACTION);
mFilter.addAction(WifiManager.CONFIGURED_NETWORKS_CHANGED_ACTION);
+ mLifecycle = lifecycle;
lifecycle.addObserver(this);
}
@@ -317,6 +320,17 @@
private void setupEntityHeader(PreferenceScreen screen) {
LayoutPreference headerPref = screen.findPreference(KEY_HEADER);
+
+ if (usingDataUsageHeader(mContext)) {
+ headerPref.setVisible(false);
+ mDataUsageSummaryPref = screen.findPreference("status_header");
+ mDataUsageSummaryPref.setVisible(true);
+ mSummaryHeaderController =
+ new WifiDataUsageSummaryPreferenceController(mFragment.getActivity(),
+ mLifecycle, (PreferenceFragmentCompat) mFragment, mAccessPoint.getSsid());
+ return;
+ }
+
mEntityHeaderController =
EntityHeaderController.newInstance(
mFragment.getActivity(), mFragment,
@@ -327,7 +341,16 @@
mContext.getDrawable(R.drawable.ic_settings_widget_background));
iconView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
- mEntityHeaderController.setLabel(mAccessPoint.getSsidStr());
+ mEntityHeaderController.setLabel(mAccessPoint.getTitle());
+ }
+
+ private void refreshEntityHeader() {
+ if (usingDataUsageHeader(mContext)) {
+ mSummaryHeaderController.updateState(mDataUsageSummaryPref);
+ } else {
+ mEntityHeaderController.setSummary(mAccessPoint.getSettingsSummary())
+ .done(mFragment.getActivity(), true /* rebind */);
+ }
}
@Override
@@ -364,9 +387,7 @@
// MAC Address Pref
mMacAddressPref.setSummary(mWifiConfig.getRandomizedMacAddress().toString());
- // TODO(b/124700353): Change header to data usage chart
- mEntityHeaderController.setSummary(mAccessPoint.getSettingsSummary())
- .done(mFragment.getActivity(), true /* rebind */);
+ refreshEntityHeader();
updateIpLayerInfo();
@@ -433,8 +454,7 @@
private void refreshNetworkState() {
mAccessPoint.update(mWifiConfig, mWifiInfo, mNetworkInfo);
- mEntityHeaderController.setSummary(mAccessPoint.getSettingsSummary())
- .done(mFragment.getActivity(), true /* rebind */);
+ refreshEntityHeader();
}
private void refreshRssiViews() {
@@ -447,7 +467,10 @@
Drawable wifiIcon = mIconInjector.getIcon(mRssiSignalLevel);
wifiIcon.setTintList(Utils.getColorAccent(mContext));
- mEntityHeaderController.setIcon(wifiIcon).done(mFragment.getActivity(), true /* rebind */);
+ if (mEntityHeaderController != null) {
+ mEntityHeaderController.setIcon(wifiIcon).done(mFragment.getActivity(),
+ true /* rebind */);
+ }
Drawable wifiIconDark = wifiIcon.getConstantState().newDrawable().mutate();
wifiIconDark.setTintList(Utils.getColorAttr(mContext, android.R.attr.colorControlNormal));
@@ -619,48 +642,16 @@
* Share the wifi network with QR code.
*/
private void shareNetwork() {
- final KeyguardManager keyguardManager = (KeyguardManager) mContext.getSystemService(
- Context.KEYGUARD_SERVICE);
- if (keyguardManager.isKeyguardSecure()) {
- // Show authentication screen to confirm credentials (pin, pattern or password) for
- // the current user of the device.
- final String title = mContext.getString(
- R.string.lockpassword_confirm_your_pattern_header);
- final String description = String.format(
- mContext.getString(R.string.wifi_sharing_message),
- mAccessPoint.getSsidStr());
+ final String title = mContext.getString(
+ R.string.lockpassword_confirm_your_pattern_header);
+ final String description = String.format(
+ mContext.getString(R.string.wifi_sharing_message),
+ mAccessPoint.getSsidStr());
- final BiometricPrompt.Builder builder = new BiometricPrompt.Builder(mContext)
- .setTitle(title)
- .setDescription(description);
-
- if (keyguardManager.isDeviceSecure()) {
- builder.setDeviceCredentialAllowed(true);
- }
-
- final BiometricPrompt bp = builder.build();
- final Handler handler = new Handler(Looper.getMainLooper());
- bp.authenticate(new CancellationSignal(),
- runnable -> handler.post(runnable),
- mAuthenticationCallback);
- } else {
- launchWifiDppConfiguratorActivity();
- }
+ WifiDppUtils.showLockScreen(mContext, title, description,
+ () -> launchWifiDppConfiguratorActivity());
}
- private BiometricPrompt.AuthenticationCallback mAuthenticationCallback =
- new BiometricPrompt.AuthenticationCallback() {
- @Override
- public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) {
- launchWifiDppConfiguratorActivity();
- }
-
- @Override
- public void onAuthenticationError(int errorCode, CharSequence errString) {
- //Do nothing
- }
- };
-
/**
* Sign in to the captive portal found on this wifi network associated with this preference.
*/
@@ -706,4 +697,8 @@
return mContext.getDrawable(Utils.getWifiIconResource(level)).mutate();
}
}
+
+ private boolean usingDataUsageHeader(Context context) {
+ return FeatureFlagUtils.isEnabled(context, FeatureFlags.WIFI_DETAILS_DATAUSAGE_HEADER);
+ }
}
diff --git a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
index fd2e14a..7edd227 100644
--- a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
+++ b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
@@ -153,11 +153,11 @@
controllers.add(mWifiDetailPreferenceController);
controllers.add(new WifiMeteredPreferenceController(context, mAccessPoint.getConfig()));
- WifiPrivacyPreferenceController preferenceController = new WifiPrivacyPreferenceController(
+ WifiPrivacyPreferenceController privacyController = new WifiPrivacyPreferenceController(
context);
- preferenceController.setWifiConfiguration(mAccessPoint.getConfig());
- preferenceController.setIsEphemeral(mAccessPoint.isEphemeral());
- controllers.add(preferenceController);
+ privacyController.setWifiConfiguration(mAccessPoint.getConfig());
+ privacyController.setIsEphemeral(mAccessPoint.isEphemeral());
+ controllers.add(privacyController);
return controllers;
}
diff --git a/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java b/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java
index b79f2d4..a549e21 100644
--- a/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiPrivacyPreferenceController.java
@@ -58,8 +58,9 @@
@Override
public int getAvailabilityStatus() {
- return FeatureFlagUtils.isEnabled(mContext, FeatureFlags.WIFI_MAC_RANDOMIZATION)
- ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ return mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_wifi_connected_mac_randomization_supported) ?
+ AVAILABLE : CONDITIONALLY_UNAVAILABLE;
}
@Override
diff --git a/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java b/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java
index 9e731ba..3a9308e 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppAddDeviceFragment.java
@@ -29,6 +29,7 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityEvent;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;
@@ -99,6 +100,7 @@
if (!isConfigurationChange) {
mLatestStatusCode = WifiDppUtils.EASY_CONNECT_EVENT_SUCCESS;
+ changeFocusAndAnnounceChange(mButtonRight, mTitle);
}
}
@@ -168,15 +170,17 @@
mButtonLeft.setVisibility(View.INVISIBLE);
}
- if (!isConfigurationChange) {
- mLatestStatusCode = code;
- }
-
if (isGoingInitiator()) {
mSummary.setText(R.string.wifi_dpp_sharing_wifi_with_this_device);
}
+
mProgressBar.setVisibility(isGoingInitiator() ? View.VISIBLE : View.INVISIBLE);
mButtonRight.setVisibility(isGoingInitiator() ? View.INVISIBLE : View.VISIBLE);
+
+ if (!isConfigurationChange) {
+ mLatestStatusCode = code;
+ changeFocusAndAnnounceChange(mButtonRight, mSummary);
+ }
}
private boolean hasRetryButton(int code) {
@@ -277,6 +281,7 @@
mButtonRight.setVisibility(View.INVISIBLE);
startWifiDppConfiguratorInitiator();
updateSummary();
+ mTitleSummaryContainer.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
});
if (savedInstanceState != null) {
@@ -288,6 +293,8 @@
} else {
showErrorUi(mLatestStatusCode, /* isConfigurationChange */ true);
}
+ } else {
+ changeFocusAndAnnounceChange(mButtonRight, mTitleSummaryContainer);
}
}
@@ -354,4 +361,17 @@
mSummary.setText(getString(R.string.wifi_dpp_add_device_to_wifi, getSsid()));
}
}
+
+ /**
+ * This fragment will change UI display and text messages for events. To improve Talkback user
+ * experienience, using this method to focus on a right component and announce a changed text
+ * after an UI changing event.
+ *
+ * @param focusView The UI component which will be focused
+ * @param announceView The UI component's text will be talked
+ */
+ private void changeFocusAndAnnounceChange(View focusView, View announceView) {
+ focusView.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
+ announceView.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
+ }
}
diff --git a/src/com/android/settings/wifi/dpp/WifiDppChooseSavedWifiNetworkFragment.java b/src/com/android/settings/wifi/dpp/WifiDppChooseSavedWifiNetworkFragment.java
index 72e845f..ddba933 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppChooseSavedWifiNetworkFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppChooseSavedWifiNetworkFragment.java
@@ -23,6 +23,7 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityEvent;
import android.widget.Button;
import android.widget.ListView;
@@ -105,5 +106,11 @@
mButtonRight = view.findViewById(R.id.button_right);
mButtonRight.setVisibility(View.GONE);
+
+ if (savedInstanceState == null) {
+ // For Talkback to describe this fragment
+ mTitleSummaryContainer.sendAccessibilityEvent(
+ AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
+ }
}
}
diff --git a/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java b/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java
index 0a2c09b..7308741 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java
@@ -75,6 +75,7 @@
private static final String KEY_WIFI_PRESHARED_KEY = "key_wifi_preshared_key";
private static final String KEY_WIFI_HIDDEN_SSID = "key_wifi_hidden_ssid";
private static final String KEY_WIFI_NETWORK_ID = "key_wifi_network_id";
+ private static final String KEY_IS_HOTSPOT = "key_is_hotspot";
private FragmentManager mFragmentManager;
@@ -104,14 +105,15 @@
mWifiDppQrCode = WifiQrCode.getValidWifiDppQrCodeOrNull(qrCode);
- String security = savedInstanceState.getString(KEY_WIFI_SECURITY);
- String ssid = savedInstanceState.getString(KEY_WIFI_SSID);
- String preSharedKey = savedInstanceState.getString(KEY_WIFI_PRESHARED_KEY);
- boolean hiddenSsid = savedInstanceState.getBoolean(KEY_WIFI_HIDDEN_SSID);
- int networkId = savedInstanceState.getInt(KEY_WIFI_NETWORK_ID);
+ final String security = savedInstanceState.getString(KEY_WIFI_SECURITY);
+ final String ssid = savedInstanceState.getString(KEY_WIFI_SSID);
+ final String preSharedKey = savedInstanceState.getString(KEY_WIFI_PRESHARED_KEY);
+ final boolean hiddenSsid = savedInstanceState.getBoolean(KEY_WIFI_HIDDEN_SSID);
+ final int networkId = savedInstanceState.getInt(KEY_WIFI_NETWORK_ID);
+ final boolean isHotspot = savedInstanceState.getBoolean(KEY_IS_HOTSPOT);
mWifiNetworkConfig = WifiNetworkConfig.getValidConfigOrNull(security, ssid,
- preSharedKey, hiddenSsid, networkId);
+ preSharedKey, hiddenSsid, networkId, isHotspot);
} else {
handleIntent(getIntent());
}
@@ -361,6 +363,7 @@
outState.putString(KEY_WIFI_PRESHARED_KEY, mWifiNetworkConfig.getPreSharedKey());
outState.putBoolean(KEY_WIFI_HIDDEN_SSID, mWifiNetworkConfig.getHiddenSsid());
outState.putInt(KEY_WIFI_NETWORK_ID, mWifiNetworkConfig.getNetworkId());
+ outState.putBoolean(KEY_IS_HOTSPOT, mWifiNetworkConfig.isHotspot());
}
super.onSaveInstanceState(outState);
@@ -393,7 +396,8 @@
wifiConfiguration.getPrintableSsid(),
wifiConfiguration.preSharedKey,
/* hiddenSsid */ false,
- wifiConfiguration.networkId);
+ wifiConfiguration.networkId,
+ /* isHotspot */ false);
}
}
diff --git a/src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java b/src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java
index fab495d..eafbe68 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java
@@ -38,6 +38,7 @@
private ImageView mDevicesCheckCircleGreenHeaderIcon;
protected TextView mTitle;
protected TextView mSummary;
+ protected View mTitleSummaryContainer;
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
@@ -48,6 +49,10 @@
view.findViewById(R.id.devices_check_circle_green_icon);
mTitle = view.findViewById(android.R.id.title);
mSummary = view.findViewById(android.R.id.summary);
+
+ // This is the LinearLayout which groups mTitle and mSummary for Talkback to announce the
+ // content in a way that reflects its natural groupings.
+ mTitleSummaryContainer = view.findViewById(R.id.title_summary_container);
}
protected void setHeaderIconImageResource(int resId) {
diff --git a/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java b/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
index daa41d9f..2cd5e23 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
@@ -60,6 +60,14 @@
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
+ // setTitle for Talkback
+ final WifiNetworkConfig wifiNetworkConfig = getWifiNetworkConfigFromHostActivity();
+ if (wifiNetworkConfig.isHotspot()) {
+ getActivity().setTitle(R.string.wifi_dpp_share_hotspot);
+ } else {
+ getActivity().setTitle(R.string.wifi_dpp_share_wifi);
+ }
+
setHasOptionsMenu(true);
final ActionBar actionBar = getActivity().getActionBar();
if (actionBar != null) {
@@ -86,7 +94,8 @@
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
final WifiNetworkConfig wifiNetworkConfig = getWifiNetworkConfigFromHostActivity();
MenuItem menuItem;
- if (wifiNetworkConfig.isSupportWifiDpp(getActivity())) {
+ if (!wifiNetworkConfig.isHotspot() &&
+ wifiNetworkConfig.isSupportWifiDpp(getActivity())) {
menuItem = menu.add(0, Menu.FIRST, 0, R.string.next_label);
menuItem.setIcon(R.drawable.ic_scan_24dp);
menuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
@@ -127,9 +136,15 @@
setHeaderIconImageResource(R.drawable.ic_qrcode_24dp);
final WifiNetworkConfig wifiNetworkConfig = getWifiNetworkConfigFromHostActivity();
- mTitle.setText(R.string.wifi_dpp_share_wifi);
- mSummary.setText(getString(R.string.wifi_dpp_scan_qr_code_with_another_device,
- wifiNetworkConfig.getSsid()));
+ if (wifiNetworkConfig.isHotspot()) {
+ mTitle.setText(R.string.wifi_dpp_share_hotspot);
+ mSummary.setText(getString(R.string.wifi_dpp_scan_qr_code_to_share_hotspot,
+ wifiNetworkConfig.getSsid()));
+ } else {
+ mTitle.setText(R.string.wifi_dpp_share_wifi);
+ mSummary.setText(getString(R.string.wifi_dpp_scan_qr_code_with_another_device,
+ wifiNetworkConfig.getSsid()));
+ }
mQrCode = wifiNetworkConfig.getQrCode();
setQrCode();
diff --git a/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java b/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java
index a19069b..4535599 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java
@@ -41,6 +41,7 @@
import android.view.TextureView.SurfaceTextureListener;
import android.view.View;
import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityEvent;
import android.widget.ProgressBar;
import android.widget.TextView;
@@ -174,6 +175,13 @@
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
+ // setTitle for Talkback
+ if (mIsConfiguratorMode) {
+ getActivity().setTitle(R.string.wifi_dpp_add_device_to_network);
+ } else {
+ getActivity().setTitle(R.string.wifi_dpp_scan_qr_code);
+ }
+
final ActionBar actionBar = getActivity().getActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
@@ -380,6 +388,7 @@
public void showErrorMessage(String message) {
mErrorMessage.setVisibility(View.VISIBLE);
mErrorMessage.setText(message);
+ mErrorMessage.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
mHandler.removeMessages(MESSAGE_HIDE_ERROR_MESSAGE);
mHandler.sendEmptyMessageDelayed(MESSAGE_HIDE_ERROR_MESSAGE,
@@ -410,6 +419,8 @@
mProgressBar.setVisibility(View.VISIBLE);
startWifiDppEnrolleeInitiator((WifiQrCode)msg.obj);
updateEnrolleeSummary();
+ mSummary.sendAccessibilityEvent(
+ AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
}
break;
diff --git a/src/com/android/settings/wifi/dpp/WifiDppUtils.java b/src/com/android/settings/wifi/dpp/WifiDppUtils.java
index 4d8cca5..fe7af27 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppUtils.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppUtils.java
@@ -16,11 +16,16 @@
package com.android.settings.wifi.dpp;
+import android.app.KeyguardManager;
import android.content.Context;
import android.content.Intent;
+import android.hardware.biometrics.BiometricPrompt;
import android.net.wifi.WifiConfiguration.KeyMgmt;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiManager;
+import android.os.CancellationSignal;
+import android.os.Handler;
+import android.os.Looper;
import android.text.TextUtils;
import android.util.FeatureFlagUtils;
@@ -70,6 +75,9 @@
/** The data corresponding to {@code WifiConfiguration} networkId */
public static final String EXTRA_WIFI_NETWORK_ID = "networkId";
+ /** The data to recognize if it's a Wi-Fi hotspot for configuration */
+ public static final String EXTRA_IS_HOTSPOT = "isHotspot";
+
/** Used by {@link android.provider.Settings#ACTION_PROCESS_WIFI_EASY_CONNECT_URI} to
* indicate test mode UI should be shown. Test UI does not make API calls. Value is a boolean.*/
public static final String EXTRA_TEST = "test";
@@ -142,24 +150,12 @@
return str.substring(begin, end+1);
}
- private static String getSecurityString(AccessPoint accessPoint) {
- switch(accessPoint.getSecurity()) {
- case AccessPoint.SECURITY_WEP:
- return WifiQrCode.SECURITY_WEP;
- case AccessPoint.SECURITY_PSK:
- return WifiQrCode.SECURITY_WPA_PSK;
- case AccessPoint.SECURITY_SAE:
- return WifiQrCode.SECURITY_SAE;
- default:
- return WifiQrCode.SECURITY_NO_PASSWORD;
- }
- }
-
static String getSecurityString(WifiConfiguration config) {
if (config.allowedKeyManagement.get(KeyMgmt.SAE)) {
return WifiQrCode.SECURITY_SAE;
}
- if (config.allowedKeyManagement.get(KeyMgmt.WPA_PSK)) {
+ if (config.allowedKeyManagement.get(KeyMgmt.WPA_PSK) ||
+ config.allowedKeyManagement.get(KeyMgmt.WPA2_PSK)) {
return WifiQrCode.SECURITY_WPA_PSK;
}
return (config.wepKeys[0] == null) ?
@@ -171,6 +167,9 @@
* security. It may return null if the security is not supported by QR code generator nor
* scanner.
*
+ * Do not use this method for Wi-Fi hotspot network, use
+ * {@code getHotspotConfiguratorIntentOrNull} instead.
+ *
* @param context The context to use for the content resolver
* @param wifiManager An instance of {@link WifiManager}
* @param accessPoint An instance of {@link AccessPoint}
@@ -187,15 +186,63 @@
return null;
}
- final WifiConfiguration wifiConfig = accessPoint.getConfig();
- final String ssid = removeFirstAndLastDoubleQuotes(wifiConfig.SSID);
- final String security = getSecurityString(accessPoint);
- String preSharedKey = wifiConfig.preSharedKey;
+ final WifiConfiguration wifiConfiguration = accessPoint.getConfig();
+ setConfiguratorIntentExtra(intent, wifiManager, wifiConfiguration);
+
+ if (wifiConfiguration.networkId == WifiConfiguration.INVALID_NETWORK_ID) {
+ throw new IllegalArgumentException("Invalid network ID");
+ } else {
+ intent.putExtra(EXTRA_WIFI_NETWORK_ID, wifiConfiguration.networkId);
+ }
+
+ return intent;
+ }
+
+ /**
+ * Returns an intent to launch QR code generator for the Wi-Fi hotspot. It may return null if
+ * the security is not supported by QR code generator.
+ *
+ * @param context The context to use for the content resolver
+ * @param wifiManager An instance of {@link WifiManager}
+ * @param wifiConfiguration {@link WifiConfiguration} of the Wi-Fi hotspot
+ * @return Intent for launching QR code generator
+ */
+ public static Intent getHotspotConfiguratorIntentOrNull(Context context,
+ WifiManager wifiManager, WifiConfiguration wifiConfiguration) {
+ final Intent intent = new Intent(context, WifiDppConfiguratorActivity.class);
+ if (isSupportHotspotConfiguratorQrCodeGenerator(wifiConfiguration)) {
+ intent.setAction(WifiDppConfiguratorActivity.ACTION_CONFIGURATOR_QR_CODE_GENERATOR);
+ } else {
+ return null;
+ }
+
+ setConfiguratorIntentExtra(intent, wifiManager, wifiConfiguration);
+
+ intent.putExtra(EXTRA_WIFI_NETWORK_ID, WifiConfiguration.INVALID_NETWORK_ID);
+ intent.putExtra(EXTRA_IS_HOTSPOT, true);
+
+ return intent;
+ }
+
+ /**
+ * Set all extra except {@code EXTRA_WIFI_NETWORK_ID} for the intent to
+ * launch configurator activity later.
+ *
+ * @param intent the target to set extra
+ * @param wifiManager an instance of {@code WifiManager}
+ * @param wifiConfiguration the Wi-Fi network for launching configurator activity
+ */
+ private static void setConfiguratorIntentExtra(Intent intent, WifiManager wifiManager,
+ WifiConfiguration wifiConfiguration) {
+ final String ssid = removeFirstAndLastDoubleQuotes(wifiConfiguration.SSID);
+ final String security = getSecurityString(wifiConfiguration);
+ String preSharedKey = wifiConfiguration.preSharedKey;
if (preSharedKey != null) {
// When the value of this key is read, the actual key is not returned, just a "*".
// Call privileged system API to obtain actual key.
- preSharedKey = removeFirstAndLastDoubleQuotes(getPresharedKey(wifiManager, wifiConfig));
+ preSharedKey = removeFirstAndLastDoubleQuotes(getPresharedKey(wifiManager,
+ wifiConfiguration));
}
if (!TextUtils.isEmpty(ssid)) {
@@ -207,13 +254,6 @@
if (!TextUtils.isEmpty(preSharedKey)) {
intent.putExtra(EXTRA_WIFI_PRE_SHARED_KEY, preSharedKey);
}
- if (wifiConfig.networkId == WifiConfiguration.INVALID_NETWORK_ID) {
- throw new IllegalArgumentException("Invalid network ID");
- } else {
- intent.putExtra(EXTRA_WIFI_NETWORK_ID, wifiConfig.networkId);
- }
-
- return intent;
}
/**
@@ -228,6 +268,54 @@
isSupportConfiguratorQrCodeGenerator(accessPoint);
}
+ /**
+ * Shows authentication screen to confirm credentials (pin, pattern or password) for the current
+ * user of the device.
+ *
+ * @param context The {@code Context} used to get {@code KeyguardManager} service
+ * @param title The title on lock screen
+ * @param description The description on lock screen
+ * @param successRunnable The {@code Runnable} which will be executed if the user does not setup
+ * device security or if lock screen is unlocked
+ */
+ public static void showLockScreen(Context context, String title, String description,
+ Runnable successRunnable) {
+ final KeyguardManager keyguardManager = (KeyguardManager) context.getSystemService(
+ Context.KEYGUARD_SERVICE);
+
+ if (keyguardManager.isKeyguardSecure()) {
+ final BiometricPrompt.AuthenticationCallback authenticationCallback =
+ new BiometricPrompt.AuthenticationCallback() {
+ @Override
+ public void onAuthenticationSucceeded(
+ BiometricPrompt.AuthenticationResult result) {
+ successRunnable.run();
+ }
+
+ @Override
+ public void onAuthenticationError(int errorCode, CharSequence errString) {
+ //Do nothing
+ }
+ };
+
+ final BiometricPrompt.Builder builder = new BiometricPrompt.Builder(context)
+ .setTitle(title)
+ .setDescription(description);
+
+ if (keyguardManager.isDeviceSecure()) {
+ builder.setDeviceCredentialAllowed(true);
+ }
+
+ final BiometricPrompt bp = builder.build();
+ final Handler handler = new Handler(Looper.getMainLooper());
+ bp.authenticate(new CancellationSignal(),
+ runnable -> handler.post(runnable),
+ authenticationCallback);
+ } else {
+ successRunnable.run();
+ }
+ }
+
private static boolean isSupportConfiguratorQrCodeScanner(Context context,
AccessPoint accessPoint) {
if (!isWifiDppEnabled(context)) {
@@ -254,4 +342,13 @@
return false;
}
+
+ private static boolean isSupportHotspotConfiguratorQrCodeGenerator(
+ WifiConfiguration wifiConfiguration) {
+ // QR code generator produces QR code with ZXing's Wi-Fi network config format,
+ // it supports PSK and WEP and non security
+ // KeyMgmt.NONE is for WEP or non security
+ return wifiConfiguration.allowedKeyManagement.get(KeyMgmt.WPA2_PSK) ||
+ wifiConfiguration.allowedKeyManagement.get(KeyMgmt.NONE);
+ }
}
diff --git a/src/com/android/settings/wifi/dpp/WifiNetworkConfig.java b/src/com/android/settings/wifi/dpp/WifiNetworkConfig.java
index a483073..fdc74d8 100644
--- a/src/com/android/settings/wifi/dpp/WifiNetworkConfig.java
+++ b/src/com/android/settings/wifi/dpp/WifiNetworkConfig.java
@@ -30,7 +30,6 @@
import android.text.TextUtils;
import android.util.Log;
-import androidx.annotation.Keep;
import androidx.annotation.VisibleForTesting;
/**
@@ -52,15 +51,17 @@
private String mPreSharedKey;
private boolean mHiddenSsid;
private int mNetworkId;
+ private boolean mIsHotspot;
@VisibleForTesting
WifiNetworkConfig(String security, String ssid, String preSharedKey,
- boolean hiddenSsid, int networkId) {
+ boolean hiddenSsid, int networkId, boolean isHotspot) {
mSecurity = security;
mSsid = ssid;
mPreSharedKey = preSharedKey;
mHiddenSsid = hiddenSsid;
mNetworkId = networkId;
+ mIsHotspot = isHotspot;
}
public WifiNetworkConfig(WifiNetworkConfig config) {
@@ -69,6 +70,7 @@
mPreSharedKey = config.mPreSharedKey;
mHiddenSsid = config.mHiddenSsid;
mNetworkId = config.mNetworkId;
+ mIsHotspot = config.mIsHotspot;
}
/**
@@ -86,23 +88,26 @@
* android.settings.WIFI_DPP_CONFIGURATOR_QR_CODE_SCANNER
*/
public static WifiNetworkConfig getValidConfigOrNull(Intent intent) {
- String security = intent.getStringExtra(WifiDppUtils.EXTRA_WIFI_SECURITY);
- String ssid = intent.getStringExtra(WifiDppUtils.EXTRA_WIFI_SSID);
- String preSharedKey = intent.getStringExtra(WifiDppUtils.EXTRA_WIFI_PRE_SHARED_KEY);
- boolean hiddenSsid = intent.getBooleanExtra(WifiDppUtils.EXTRA_WIFI_HIDDEN_SSID, false);
- int networkId = intent.getIntExtra(WifiDppUtils.EXTRA_WIFI_NETWORK_ID,
+ final String security = intent.getStringExtra(WifiDppUtils.EXTRA_WIFI_SECURITY);
+ final String ssid = intent.getStringExtra(WifiDppUtils.EXTRA_WIFI_SSID);
+ final String preSharedKey = intent.getStringExtra(WifiDppUtils.EXTRA_WIFI_PRE_SHARED_KEY);
+ final boolean hiddenSsid = intent.getBooleanExtra(WifiDppUtils.EXTRA_WIFI_HIDDEN_SSID,
+ false);
+ final int networkId = intent.getIntExtra(WifiDppUtils.EXTRA_WIFI_NETWORK_ID,
WifiConfiguration.INVALID_NETWORK_ID);
+ final boolean isHotspot = intent.getBooleanExtra(WifiDppUtils.EXTRA_IS_HOTSPOT, false);
- return getValidConfigOrNull(security, ssid, preSharedKey, hiddenSsid, networkId);
+ return getValidConfigOrNull(security, ssid, preSharedKey, hiddenSsid, networkId, isHotspot);
}
public static WifiNetworkConfig getValidConfigOrNull(String security, String ssid,
- String preSharedKey, boolean hiddenSsid, int networkId) {
+ String preSharedKey, boolean hiddenSsid, int networkId, boolean isHotspot) {
if (!isValidConfig(security, ssid, preSharedKey, hiddenSsid)) {
return null;
}
- return new WifiNetworkConfig(security, ssid, preSharedKey, hiddenSsid, networkId);
+ return new WifiNetworkConfig(security, ssid, preSharedKey, hiddenSsid, networkId,
+ isHotspot);
}
public static boolean isValidConfig(WifiNetworkConfig config) {
@@ -174,31 +179,30 @@
return barcode;
}
- @Keep
public String getSecurity() {
return mSecurity;
}
- @Keep
public String getSsid() {
return mSsid;
}
- @Keep
public String getPreSharedKey() {
return mPreSharedKey;
}
- @Keep
public boolean getHiddenSsid() {
return mHiddenSsid;
}
- @Keep
public int getNetworkId() {
return mNetworkId;
}
+ public boolean isHotspot() {
+ return mIsHotspot;
+ }
+
public void connect(Context context, WifiManager.ActionListener listener) {
WifiConfiguration wifiConfiguration = getWifiConfigurationOrNull();
if (wifiConfiguration == null) {
diff --git a/src/com/android/settings/wifi/dpp/WifiNetworkListFragment.java b/src/com/android/settings/wifi/dpp/WifiNetworkListFragment.java
index ce92f90..4688d76 100644
--- a/src/com/android/settings/wifi/dpp/WifiNetworkListFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiNetworkListFragment.java
@@ -218,7 +218,7 @@
final WifiNetworkConfig networkConfig = WifiNetworkConfig.getValidConfigOrNull(
selectedAccessPoint.getSecurityString(/* concise */ true),
wifiConfig.getPrintableSsid(), wifiConfig.preSharedKey, /* hiddenSsid */ false,
- wifiConfig.networkId);
+ wifiConfig.networkId, /* isHotspot */ false);
if (mOnChooseNetworkListener != null) {
mOnChooseNetworkListener.onChooseNetwork(networkConfig);
}
@@ -232,7 +232,8 @@
/* ssid */ WifiNetworkConfig.FAKE_SSID,
/* preSharedKey */ WifiNetworkConfig.FAKE_PASSWORD,
/* hiddenSsid */ true,
- /* networkId */ WifiConfiguration.INVALID_NETWORK_ID));
+ /* networkId */ WifiConfiguration.INVALID_NETWORK_ID,
+ /* isHotspot*/ false));
}
} else {
return super.onPreferenceTreeClick(preference);
diff --git a/src/com/android/settings/wifi/dpp/WifiQrCode.java b/src/com/android/settings/wifi/dpp/WifiQrCode.java
index 10971cf..8296a62 100644
--- a/src/com/android/settings/wifi/dpp/WifiQrCode.java
+++ b/src/com/android/settings/wifi/dpp/WifiQrCode.java
@@ -133,7 +133,7 @@
password = removeBackSlash(password);
mWifiNetworkConfig = WifiNetworkConfig.getValidConfigOrNull(security, ssid, password,
- hiddenSsid, WifiConfiguration.INVALID_NETWORK_ID);
+ hiddenSsid, WifiConfiguration.INVALID_NETWORK_ID, /* isHotspot */ false);
if (mWifiNetworkConfig == null) {
throw new IllegalArgumentException("Invalid format");
diff --git a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceController.java b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceController.java
index 4155ef7..40e6e56 100644
--- a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceController.java
+++ b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceController.java
@@ -28,6 +28,7 @@
import com.android.settings.core.BasePreferenceController;
import com.android.settings.utils.PreferenceGroupChildrenCache;
+import com.android.settings.R;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.utils.ThreadUtils;
@@ -122,6 +123,12 @@
final int accessPointsSize = accessPoints.size();
for (int i = 0; i < accessPointsSize; ++i) {
AccessPoint ap = accessPoints.get(i);
+
+ if (mHost != null && mHost.isSubscriptionsFeatureEnabled()
+ && ap.isPasspointConfig()) {
+ continue;
+ }
+
String key = ap.getKey();
AccessPointPreference preference =
(AccessPointPreference) mChildrenCache.getCachedPreference(key);
@@ -139,6 +146,15 @@
if (mPreferenceGroup.getPreferenceCount() < 1) {
Log.w(TAG, "Saved networks activity loaded, but there are no saved networks!");
+ mPreferenceGroup.setVisible(false);
+ } else {
+ mPreferenceGroup.setVisible(true);
+ }
+
+ if (mHost != null && !mHost.isSubscriptionsFeatureEnabled()) {
+ mPreferenceGroup.setVisible(true);
+ mPreferenceGroup.setTitle(null);
+ mPreferenceGroup.setLayoutResource(R.layout.preference_category_no_label);
}
}
}
diff --git a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java
index 6a9e8a2..ea858f3 100644
--- a/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java
+++ b/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettings.java
@@ -75,6 +75,8 @@
.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
use(SavedAccessPointsPreferenceController.class)
.setHost(this);
+ use(SubscribedAccessPointsPreferenceController.class)
+ .setHost(this);
}
@Override
@@ -172,10 +174,15 @@
Log.e(TAG, "Failed to remove Passpoint configuration for "
+ mSelectedAccessPoint.getConfigName());
}
- use(SavedAccessPointsPreferenceController.class)
- .postRefreshSavedAccessPoints();
+ if (isSubscriptionsFeatureEnabled()) {
+ use(SubscribedAccessPointsPreferenceController.class)
+ .postRefreshSubscribedAccessPoints();
+ } else {
+ use(SavedAccessPointsPreferenceController.class)
+ .postRefreshSavedAccessPoints();
+ }
} else {
- // mForgetListener will call initPreferences upon completion
+ // both onSuccess/onFailure will call postRefreshSavedAccessPoints
mWifiManager.forget(mSelectedAccessPoint.getConfig().networkId,
use(SavedAccessPointsPreferenceController.class));
}
@@ -192,10 +199,11 @@
* Checks if showing WifiNetworkDetailsFragment when clicking saved network item.
*/
public static boolean usingDetailsFragment(Context context) {
- if (FeatureFlagUtils.isEnabled(context, FeatureFlags.MOBILE_NETWORK_V2)
- && FeatureFlagPersistent.isEnabled(context, FeatureFlags.NETWORK_INTERNET_V2)) {
- return false; // TODO(b/124695272): mark true when UI is ready.
- }
- return false;
+ return FeatureFlagUtils.isEnabled(context, FeatureFlags.WIFI_DETAILS_SAVED_SCREEN);
+ }
+
+ boolean isSubscriptionsFeatureEnabled() {
+ return FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.MOBILE_NETWORK_V2)
+ && FeatureFlagPersistent.isEnabled(getContext(), FeatureFlags.NETWORK_INTERNET_V2);
}
}
diff --git a/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceController.java b/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceController.java
new file mode 100644
index 0000000..8d31c82
--- /dev/null
+++ b/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceController.java
@@ -0,0 +1,158 @@
+/*
+ * 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.wifi.savedaccesspoints;
+
+
+import android.content.Context;
+import android.net.wifi.WifiManager;
+import android.util.Log;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceGroup;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.utils.PreferenceGroupChildrenCache;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.utils.ThreadUtils;
+import com.android.settingslib.wifi.AccessPoint;
+import com.android.settingslib.wifi.AccessPointPreference;
+import com.android.settingslib.wifi.AccessPointPreference.UserBadgeCache;
+import com.android.settingslib.wifi.WifiSavedConfigUtils;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Controller that manages a PreferenceGroup, which contains a list of subscribed access points.
+ */
+// TODO(b/127206629): Code refactor to avoid duplicated coding after removed feature flag.
+public class SubscribedAccessPointsPreferenceController extends BasePreferenceController implements
+ LifecycleObserver, OnStart, Preference.OnPreferenceClickListener,
+ WifiManager.ActionListener {
+
+ private static final String TAG = "SubscribedAPPrefCtrl";
+
+ private final WifiManager mWifiManager;
+ private final PreferenceGroupChildrenCache mChildrenCache;
+ private final UserBadgeCache mUserBadgeCache;
+ private PreferenceGroup mPreferenceGroup;
+ private SavedAccessPointsWifiSettings mHost;
+
+ public SubscribedAccessPointsPreferenceController(Context context,
+ String preferenceKey) {
+ super(context, preferenceKey);
+ mUserBadgeCache = new AccessPointPreference.UserBadgeCache(context.getPackageManager());
+ mWifiManager = context.getSystemService(WifiManager.class);
+ mChildrenCache = new PreferenceGroupChildrenCache();
+ }
+
+ public SubscribedAccessPointsPreferenceController setHost(SavedAccessPointsWifiSettings host) {
+ mHost = host;
+ return this;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreferenceGroup = screen.findPreference(getPreferenceKey());
+ }
+
+ @Override
+ public void onStart() {
+ refreshSubscribedAccessPoints();
+ }
+
+ public void postRefreshSubscribedAccessPoints() {
+ ThreadUtils.postOnMainThread(() -> refreshSubscribedAccessPoints());
+ }
+
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ if (mHost != null) {
+ mHost.showWifiDialog((AccessPointPreference) preference);
+ }
+ return false;
+ }
+
+ @Override
+ public void onSuccess() {
+ postRefreshSubscribedAccessPoints();
+ }
+
+ @Override
+ public void onFailure(int reason) {
+ postRefreshSubscribedAccessPoints();
+ }
+
+ @VisibleForTesting
+ void refreshSubscribedAccessPoints() {
+ if (mPreferenceGroup == null) {
+ Log.w(TAG, "PreferenceGroup is null, skipping.");
+ return;
+ }
+
+ if (mHost != null && !mHost.isSubscriptionsFeatureEnabled()) {
+ mPreferenceGroup.setVisible(false);
+ return;
+ }
+
+ final Context prefContext = mPreferenceGroup.getContext();
+
+ final List<AccessPoint> accessPoints =
+ WifiSavedConfigUtils.getAllConfigs(mContext, mWifiManager);
+ Collections.sort(accessPoints, SavedNetworkComparator.INSTANCE);
+ mChildrenCache.cacheRemoveAllPrefs(mPreferenceGroup);
+
+ final int accessPointsSize = accessPoints.size();
+ for (int i = 0; i < accessPointsSize; ++i) {
+ AccessPoint ap = accessPoints.get(i);
+ if (!ap.isPasspointConfig()) {
+ continue;
+ }
+
+ final String key = ap.getKey();
+ AccessPointPreference preference =
+ (AccessPointPreference) mChildrenCache.getCachedPreference(key);
+ if (preference == null) {
+ preference = new AccessPointPreference(ap, prefContext, mUserBadgeCache, true);
+ preference.setKey(key);
+ preference.setIcon(null);
+ preference.setOnPreferenceClickListener(this);
+ mPreferenceGroup.addPreference(preference);
+ }
+ preference.setOrder(i);
+ }
+
+ mChildrenCache.removeCachedPrefs(mPreferenceGroup);
+
+ if (mPreferenceGroup.getPreferenceCount() < 1) {
+ Log.w(TAG, "Subscribed networks activity loaded,"
+ + " but there are no subscribed networks!");
+ mPreferenceGroup.setVisible(false);
+ } else {
+ mPreferenceGroup.setVisible(true);
+ }
+ }
+}
diff --git a/src/com/android/settings/wifi/slice/ContextualWifiSlice.java b/src/com/android/settings/wifi/slice/ContextualWifiSlice.java
index fa8c267..4a799d1 100644
--- a/src/com/android/settings/wifi/slice/ContextualWifiSlice.java
+++ b/src/com/android/settings/wifi/slice/ContextualWifiSlice.java
@@ -25,6 +25,7 @@
import androidx.annotation.VisibleForTesting;
import androidx.slice.Slice;
+import com.android.settings.overlay.FeatureFactory;
import com.android.settings.slices.CustomSliceRegistry;
import com.android.settings.slices.CustomSliceable;
@@ -35,7 +36,9 @@
private static final String TAG = "ContextualWifiSlice";
@VisibleForTesting
- boolean mPreviouslyDisplayed;
+ static long sActiveUiSession = -1000;
+ @VisibleForTesting
+ static boolean sPreviouslyDisplayed;
public ContextualWifiSlice(Context context) {
super(context);
@@ -48,13 +51,19 @@
@Override
public Slice getSlice() {
- if (!mPreviouslyDisplayed && !TextUtils.equals(getActiveSSID(), WifiSsid.NONE)) {
+ final long currentUiSession = FeatureFactory.getFactory(mContext)
+ .getSlicesFeatureProvider().getUiSessionToken();
+ if (currentUiSession != sActiveUiSession) {
+ sActiveUiSession = currentUiSession;
+ sPreviouslyDisplayed = false;
+ }
+ if (!sPreviouslyDisplayed && !TextUtils.equals(getActiveSSID(), WifiSsid.NONE)) {
Log.d(TAG, "Wifi is connected, no point showing any suggestion.");
return null;
}
- // Set mPreviouslyDisplayed to true - we will show *something* on the screen. So we should
+ // Set sPreviouslyDisplayed to true - we will show *something* on the screen. So we should
// keep showing this card to keep UI stable, even if wifi connects to a network later.
- mPreviouslyDisplayed = true;
+ sPreviouslyDisplayed = true;
return super.getSlice();
}
diff --git a/src/com/android/settings/wifi/slice/WifiSlice.java b/src/com/android/settings/wifi/slice/WifiSlice.java
index 8d20f7f..1c44204 100644
--- a/src/com/android/settings/wifi/slice/WifiSlice.java
+++ b/src/com/android/settings/wifi/slice/WifiSlice.java
@@ -32,6 +32,7 @@
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.net.NetworkInfo;
+import android.net.NetworkInfo.State;
import android.net.Uri;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
@@ -198,7 +199,7 @@
private IconCompat getEndIcon(AccessPoint accessPoint) {
if (accessPoint.isActive()) {
- return IconCompat.createWithResource(mContext, R.drawable.ic_settings_accent);
+ return null;
} else if (accessPoint.getSecurity() != AccessPoint.SECURITY_NONE) {
return IconCompat.createWithResource(mContext, R.drawable.ic_friction_lock_closed);
} else if (accessPoint.isMetered()) {
@@ -355,7 +356,6 @@
@Override
public void onConnectedChanged() {
- notifySliceChange();
}
@Override
@@ -370,10 +370,43 @@
final List<AccessPoint> resultList = new ArrayList<>();
for (AccessPoint ap : accessPoints) {
if (ap.isReachable()) {
- resultList.add(ap);
+ resultList.add(clone(ap));
+ if (resultList.size() >= DEFAULT_EXPANDED_ROW_COUNT) {
+ break;
+ }
}
}
updateResults(resultList);
}
+
+ private AccessPoint clone(AccessPoint accessPoint) {
+ final Bundle savedState = new Bundle();
+ accessPoint.saveWifiState(savedState);
+ return new AccessPoint(mContext, savedState);
+ }
+
+ @Override
+ protected boolean areListsTheSame(List<AccessPoint> a, List<AccessPoint> b) {
+ if (!a.equals(b)) {
+ return false;
+ }
+
+ // compare access point states one by one
+ final int listSize = a.size();
+ for (int i = 0; i < listSize; i++) {
+ if (getState(a.get(i)) != getState(b.get(i))) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private State getState(AccessPoint accessPoint) {
+ final NetworkInfo networkInfo = accessPoint.getNetworkInfo();
+ if (networkInfo != null) {
+ return networkInfo.getState();
+ }
+ return null;
+ }
}
}
diff --git a/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java
index 2ae6b58..8f6d489 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java
@@ -43,9 +43,6 @@
implements PreferenceControllerMixin, LifecycleObserver, OnStart, OnStop {
private static final String WIFI_TETHER_SETTINGS = "wifi_tether";
- private static final IntentFilter AIRPLANE_INTENT_FILTER = new IntentFilter(
- Intent.ACTION_AIRPLANE_MODE_CHANGED);
- private static final int ID_NULL = -1;
private final ConnectivityManager mConnectivityManager;
private final String[] mWifiRegexs;
@@ -103,8 +100,6 @@
@Override
public void onStart() {
if (mPreference != null) {
- mContext.registerReceiver(mReceiver, AIRPLANE_INTENT_FILTER);
- clearSummaryForAirplaneMode();
if (mWifiTetherSoftApManager != null) {
mWifiTetherSoftApManager.registerSoftApCallback();
}
@@ -114,7 +109,6 @@
@Override
public void onStop() {
if (mPreference != null) {
- mContext.unregisterReceiver(mReceiver);
if (mWifiTetherSoftApManager != null) {
mWifiTetherSoftApManager.unRegisterSoftApCallback();
}
@@ -146,19 +140,6 @@
});
}
- //
- // Everything below is copied from WifiApEnabler
- //
- private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- if (Intent.ACTION_AIRPLANE_MODE_CHANGED.equals(action)) {
- clearSummaryForAirplaneMode(R.string.wifi_hotspot_off_subtext);
- }
- }
- };
-
@VisibleForTesting
void handleWifiApStateChanged(int state, int reason) {
switch (state) {
@@ -174,7 +155,6 @@
break;
case WifiManager.WIFI_AP_STATE_DISABLED:
mPreference.setSummary(R.string.wifi_hotspot_off_subtext);
- clearSummaryForAirplaneMode();
break;
default:
if (reason == WifiManager.SAP_START_FAILURE_NO_CHANNEL) {
@@ -182,7 +162,6 @@
} else {
mPreference.setSummary(R.string.wifi_error);
}
- clearSummaryForAirplaneMode();
}
}
@@ -194,21 +173,4 @@
BidiFormatter.getInstance().unicodeWrap(
(wifiConfig == null) ? s : wifiConfig.SSID)));
}
-
- private void clearSummaryForAirplaneMode() {
- clearSummaryForAirplaneMode(ID_NULL);
- }
-
- private void clearSummaryForAirplaneMode(int defaultId) {
- boolean isAirplaneMode = Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
- if (isAirplaneMode) {
- mPreference.setSummary(R.string.wifi_tether_disabled_by_airplane);
- } else if (defaultId != ID_NULL){
- mPreference.setSummary(defaultId);
- }
- }
- //
- // Everything above is copied from WifiApEnabler
- //
}
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java
index eb6a123..10f3e56 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java
@@ -17,13 +17,18 @@
package com.android.settings.wifi.tether;
import android.content.Context;
+import android.content.Intent;
import android.net.wifi.WifiConfiguration;
+import android.util.Log;
+import android.view.View;
import androidx.annotation.VisibleForTesting;
import androidx.preference.EditTextPreference;
import androidx.preference.Preference;
+import com.android.settings.R;
import com.android.settings.widget.ValidatedEditTextPreference;
+import com.android.settings.wifi.dpp.WifiDppUtils;
public class WifiTetherSSIDPreferenceController extends WifiTetherBasePreferenceController
implements ValidatedEditTextPreference.Validator {
@@ -56,6 +61,23 @@
mSSID = DEFAULT_SSID;
}
((ValidatedEditTextPreference) mPreference).setValidator(this);
+
+ if (mWifiManager.isWifiApEnabled() && config != null) {
+ final Intent intent = WifiDppUtils.getHotspotConfiguratorIntentOrNull(mContext,
+ mWifiManager, config);
+
+ if (intent == null) {
+ Log.e(TAG, "Invalid security to share hotspot");
+ ((WifiTetherSsidPreference) mPreference).setButtonVisible(false);
+ } else {
+ ((WifiTetherSsidPreference) mPreference).setButtonOnClickListener(
+ view -> shareHotspotNetwork(intent));
+ ((WifiTetherSsidPreference) mPreference).setButtonVisible(true);
+ }
+ } else {
+ ((WifiTetherSsidPreference) mPreference).setButtonVisible(false);
+ }
+
updateSsidDisplay((EditTextPreference) mPreference);
}
@@ -80,4 +102,19 @@
preference.setText(mSSID);
preference.setSummary(mSSID);
}
+
+ private void shareHotspotNetwork(Intent intent) {
+ final String title = mContext.getString(
+ R.string.lockpassword_confirm_your_pattern_header);
+ final String description = String.format(
+ mContext.getString(R.string.wifi_sharing_message), mSSID);
+
+ WifiDppUtils.showLockScreen(mContext, title, description,
+ () -> mContext.startActivity(intent));
+ }
+
+ @VisibleForTesting
+ boolean isQrCodeButtonAvailable() {
+ return ((WifiTetherSsidPreference) mPreference).isQrCodeButtonAvailable();
+ }
}
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSsidPreference.java b/src/com/android/settings/wifi/tether/WifiTetherSsidPreference.java
new file mode 100644
index 0000000..64014d9
--- /dev/null
+++ b/src/com/android/settings/wifi/tether/WifiTetherSsidPreference.java
@@ -0,0 +1,115 @@
+/*
+ * 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.wifi.tether;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.View;
+import android.widget.ImageButton;
+
+import androidx.annotation.DrawableRes;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
+import com.android.settings.widget.ValidatedEditTextPreference;
+
+/**
+ * Support a QR code share button for {@code EditTextPreference} that supports input validation.
+ */
+public class WifiTetherSsidPreference extends ValidatedEditTextPreference {
+ private static final String TAG = "WifiTetherSsidPreference";
+
+ private ImageButton mImageButton;
+ private Drawable mButtonIcon;
+ private View.OnClickListener mClickListener;
+ private boolean mVisible;
+
+ public WifiTetherSsidPreference(Context context, AttributeSet attrs,
+ int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+
+ initialize();
+ }
+
+ public WifiTetherSsidPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+
+ initialize();
+ }
+
+ public WifiTetherSsidPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+
+ initialize();
+ }
+
+ public WifiTetherSsidPreference(Context context) {
+ super(context);
+
+ initialize();
+ }
+
+ private void initialize() {
+ setWidgetLayoutResource(R.layout.wifi_button_preference_widget);
+ }
+
+ @Override
+ public void onBindViewHolder(PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+
+ if (mImageButton == null) {
+ mImageButton = (ImageButton) holder.findViewById(R.id.button_icon);
+
+ mImageButton.setContentDescription(
+ getContext().getString(R.string.wifi_dpp_share_hotspot));
+ setButtonIcon(R.drawable.ic_qrcode_24dp);
+ mImageButton.setImageDrawable(mButtonIcon);
+ }
+
+ if (mVisible) {
+ mImageButton.setOnClickListener(mClickListener);
+ mImageButton.setVisibility(View.VISIBLE);
+ } else {
+ mImageButton.setVisibility(View.GONE);
+ }
+ }
+
+ public void setButtonOnClickListener(View.OnClickListener listener) {
+ mClickListener = listener;
+ }
+
+ public void setButtonVisible(boolean visible) {
+ mVisible = visible;
+ }
+
+ private void setButtonIcon(@DrawableRes int iconResId) {
+ try {
+ mButtonIcon = getContext().getDrawable(iconResId);
+ } catch (Resources.NotFoundException exception) {
+ Log.e(TAG, "Resource does not exist: " + iconResId);
+ }
+ }
+
+ @VisibleForTesting
+ boolean isQrCodeButtonAvailable() {
+ return mVisible && mClickListener != null;
+ }
+}
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java b/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java
index 8d87b32..0f31d19 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java
@@ -61,7 +61,6 @@
static {
WIFI_INTENT_FILTER = new IntentFilter(WifiManager.WIFI_AP_STATE_CHANGED_ACTION);
- WIFI_INTENT_FILTER.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
}
WifiTetherSwitchBarController(Context context, SwitchWidgetController switchBar) {
@@ -119,8 +118,6 @@
final int state = intent.getIntExtra(
WifiManager.EXTRA_WIFI_AP_STATE, WifiManager.WIFI_AP_STATE_FAILED);
handleWifiApStateChanged(state);
- } else if (Intent.ACTION_AIRPLANE_MODE_CHANGED.equals(action)) {
- updateWifiSwitch();
}
}
};
@@ -154,13 +151,7 @@
}
private void updateWifiSwitch() {
- boolean isAirplaneMode = Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
- if (!isAirplaneMode) {
- mSwitchBar.setEnabled(!mDataSaverBackend.isDataSaverEnabled());
- } else {
- mSwitchBar.setEnabled(false);
- }
+ mSwitchBar.setEnabled(!mDataSaverBackend.isDataSaverEnabled());
}
@Override
diff --git a/tests/robotests/assets/grandfather_invalid_base_preference_controller_constructor b/tests/robotests/assets/grandfather_invalid_base_preference_controller_constructor
index ce03d95..675108d 100644
--- a/tests/robotests/assets/grandfather_invalid_base_preference_controller_constructor
+++ b/tests/robotests/assets/grandfather_invalid_base_preference_controller_constructor
@@ -6,6 +6,7 @@
com.android.settings.bluetooth.BluetoothDeviceNamePreferenceController
com.android.settings.bluetooth.BluetoothDeviceRenamePreferenceController
com.android.settings.datausage.DataUsageSummaryPreferenceController
+com.android.settings.datausage.WifiDataUsageSummaryPreferenceController
com.android.settings.fuelgauge.RestrictAppPreferenceController
com.android.settings.fuelgauge.batterysaver.BatterySaverButtonPreferenceController
com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController
diff --git a/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarPreferenceTest.java b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarPreferenceTest.java
new file mode 100644
index 0000000..ba7bd2c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarPreferenceTest.java
@@ -0,0 +1,65 @@
+/*
+ * 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.accessibility;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.LinearLayout;
+
+import androidx.preference.PreferenceViewHolder;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class BalanceSeekBarPreferenceTest {
+ private static final int BALANCE_CENTER_VALUE = 100;
+ private static final int BALANCE_MAX_VALUE = 200;
+
+ private Context mContext;
+ private AttributeSet mAttrs;
+ private PreferenceViewHolder mHolder;
+ private BalanceSeekBar mSeekBar;
+ private BalanceSeekBarPreference mSeekBarPreference;
+
+ @Before
+ public void setUp() {
+ mContext = RuntimeEnvironment.application;
+ mSeekBarPreference = new BalanceSeekBarPreference(mContext, mAttrs);
+ LayoutInflater inflater = LayoutInflater.from(mContext);
+ final View view =
+ inflater.inflate(mSeekBarPreference.getLayoutResource(),
+ new LinearLayout(mContext), false);
+ mHolder = PreferenceViewHolder.createInstanceForTests(view);
+ mSeekBar = (BalanceSeekBar) view.findViewById(com.android.internal.R.id.seekbar);
+ }
+
+ @Test
+ public void seekBarPreferenceOnBindViewHolder_shouldInitSeekBarValue() {
+ mSeekBarPreference.onBindViewHolder(mHolder);
+
+ assertThat(mSeekBar.getMax()).isEqualTo(BALANCE_MAX_VALUE);
+ assertThat(mSeekBar.getProgress()).isEqualTo(BALANCE_CENTER_VALUE);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java
new file mode 100644
index 0000000..e0dc681
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.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.accessibility;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.SeekBar;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class BalanceSeekBarTest {
+ // Fix the maximum process value to 200 for testing the BalanceSeekBar.
+ // It affects the SeekBar value of center(100) and snapThreshold(200 * SNAP_TO_PERCENTAGE).
+ private static final int MAX_PROGRESS_VALUE = 200;
+
+ private Context mContext;
+ private AttributeSet mAttrs;
+ private BalanceSeekBar mSeekBar;
+ private BalanceSeekBar.OnSeekBarChangeListener mProxySeekBarListener;
+ private SeekBar.OnSeekBarChangeListener mockSeekBarChangeListener;
+
+ @Before
+ public void setUp() {
+ mContext = RuntimeEnvironment.application;
+ mSeekBar = new BalanceSeekBar(mContext, mAttrs);
+ mProxySeekBarListener = mSeekBar.getProxySeekBarListener();
+ mockSeekBarChangeListener = mock(SeekBar.OnSeekBarChangeListener.class);
+ mSeekBar.setOnSeekBarChangeListener(mockSeekBarChangeListener);
+ }
+
+ @Test
+ public void onStartTrackingTouch_shouldInvokeMethod() {
+ mProxySeekBarListener.onStartTrackingTouch(mSeekBar);
+
+ verify(mockSeekBarChangeListener, times(1)).onStartTrackingTouch(mSeekBar);
+ }
+
+ @Test
+ public void onStopTrackingTouch_shouldInvokeMethod() {
+ mProxySeekBarListener.onStopTrackingTouch(mSeekBar);
+
+ verify(mockSeekBarChangeListener, times(1)).onStopTrackingTouch(mSeekBar);
+ }
+
+ @Test
+ public void onProgressChanged_shouldInvokeMethod() {
+ // Assign the test value of SeekBar progress
+ mProxySeekBarListener.onProgressChanged(mSeekBar, MAX_PROGRESS_VALUE, true);
+
+ verify(mockSeekBarChangeListener, times(1)).onProgressChanged(eq(mSeekBar),
+ eq(MAX_PROGRESS_VALUE), eq(true));
+ }
+
+ @Test
+ public void setMaxTest_shouldSetValue() {
+ mSeekBar.setMax(MAX_PROGRESS_VALUE);
+
+ assertThat(getBalanceSeekBarCenter(mSeekBar)).isEqualTo(MAX_PROGRESS_VALUE / 2);
+ assertThat(getBalanceSeekBarSnapThreshold(mSeekBar)).isEqualTo(
+ MAX_PROGRESS_VALUE * BalanceSeekBar.SNAP_TO_PERCENTAGE);
+ }
+
+ @Test
+ public void setProgressTest_shouldSnapToCenter() {
+ // Assign the test value of SeekBar progress within the threshold (94-106 in this case).
+ final int progressWithinThreshold = 102;
+ mSeekBar.setMax(MAX_PROGRESS_VALUE);
+ mSeekBar.setProgress(progressWithinThreshold + 10); //set progress which is over threshold.
+ mProxySeekBarListener.onProgressChanged(mSeekBar, progressWithinThreshold, true);
+
+ assertThat(mSeekBar.getProgress()).isEqualTo(getBalanceSeekBarCenter(mSeekBar));
+ }
+
+ @Test
+ public void setProgressTest_shouldMaintainInputValue() {
+ // Assign the test value of SeekBar progress without the threshold.
+ final int progressWithoutThreshold = 107;
+ mSeekBar.setMax(MAX_PROGRESS_VALUE);
+ mSeekBar.setProgress(progressWithoutThreshold);
+ mProxySeekBarListener.onProgressChanged(mSeekBar, progressWithoutThreshold, true);
+
+ assertThat(mSeekBar.getProgress()).isEqualTo(progressWithoutThreshold);
+ }
+
+ // method to get the center from BalanceSeekBar for testing setMax().
+ private int getBalanceSeekBarCenter(BalanceSeekBar seekBar) {
+ return seekBar.getMax() / 2;
+ }
+
+ // method to get the snapThreshold from BalanceSeekBar for testing setMax().
+ private float getBalanceSeekBarSnapThreshold(BalanceSeekBar seekBar) {
+ return seekBar.getMax() * BalanceSeekBar.SNAP_TO_PERCENTAGE;
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/AvatarViewMixinTest.java b/tests/robotests/src/com/android/settings/accounts/AvatarViewMixinTest.java
index 6a2348c..8c75e33 100644
--- a/tests/robotests/src/com/android/settings/accounts/AvatarViewMixinTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AvatarViewMixinTest.java
@@ -27,6 +27,7 @@
import static org.mockito.Mockito.verify;
import android.accounts.Account;
+import android.app.ActivityManager;
import android.content.ContentProvider;
import android.content.ContentResolver;
import android.content.Context;
@@ -55,6 +56,7 @@
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowActivityManager;
import org.robolectric.shadows.ShadowContentResolver;
import org.robolectric.shadows.ShadowPackageManager;
@@ -101,6 +103,19 @@
}
@Test
+ public void onStart_lowRamDevice_doNothing() {
+ final AvatarViewMixin mixin = spy(new AvatarViewMixin(mActivity, mImageView));
+
+ final ShadowActivityManager activityManager =
+ Shadow.extract(mContext.getSystemService(ActivityManager.class));
+ activityManager.setIsLowRamDevice(true);
+
+ mixin.onStart();
+
+ verify(mixin, never()).hasAccount();
+ }
+
+ @Test
@Config(qualifiers = "mcc999",
shadows = {
BatteryFixSliceTest.ShadowBatteryStatsHelperLoader.class,
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
index 7b9bc25..81d52d2 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
@@ -25,11 +25,11 @@
import static org.robolectric.Shadows.shadowOf;
import android.app.Activity;
+import android.app.role.RoleControllerManager;
import android.app.role.RoleManager;
import android.content.Context;
import android.content.Intent;
import android.os.UserManager;
-import android.permission.PermissionControllerManager;
import androidx.preference.Preference;
@@ -63,7 +63,7 @@
@Mock
private RoleManager mRoleManager;
@Mock
- private PermissionControllerManager mPermissionControllerManager;
+ private RoleControllerManager mRoleControllerManager;
@Mock
private Preference mPreference;
@@ -77,8 +77,7 @@
MockitoAnnotations.initMocks(this);
ShadowApplication shadowApplication = ShadowApplication.getInstance();
shadowApplication.setSystemService(Context.ROLE_SERVICE, mRoleManager);
- shadowApplication.setSystemService(Context.PERMISSION_CONTROLLER_SERVICE,
- mPermissionControllerManager);
+ shadowApplication.setSystemService(Context.ROLE_CONTROLLER_SERVICE, mRoleControllerManager);
mActivity = Robolectric.setupActivity(Activity.class);
mShadowUserManager = shadowOf(mActivity.getSystemService(UserManager.class));
mController = new TestRolePreferenceController(mActivity);
@@ -87,7 +86,7 @@
@Test
public void constructor_callsIsApplicationQualifiedForRole() {
- verify(mPermissionControllerManager).isApplicationQualifiedForRole(eq(TEST_ROLE_NAME), eq(
+ verify(mRoleControllerManager).isApplicationQualifiedForRole(eq(TEST_ROLE_NAME), eq(
TEST_PACKAGE_NAME), any(Executor.class), any(Consumer.class));
}
@@ -154,7 +153,7 @@
private void setRoleIsVisible(boolean visible) {
final ArgumentCaptor<Consumer<Boolean>> callbackCaptor = ArgumentCaptor.forClass(
Consumer.class);
- verify(mPermissionControllerManager).isRoleVisible(eq(TEST_ROLE_NAME), any(Executor.class),
+ verify(mRoleControllerManager).isRoleVisible(eq(TEST_ROLE_NAME), any(Executor.class),
callbackCaptor.capture());
final Consumer<Boolean> callback = callbackCaptor.getValue();
callback.accept(visible);
@@ -163,7 +162,7 @@
private void setApplicationIsQualifiedForRole(boolean qualified) {
final ArgumentCaptor<Consumer<Boolean>> callbackCaptor = ArgumentCaptor.forClass(
Consumer.class);
- verify(mPermissionControllerManager).isApplicationQualifiedForRole(eq(TEST_ROLE_NAME), eq(
+ verify(mRoleControllerManager).isApplicationQualifiedForRole(eq(TEST_ROLE_NAME), eq(
TEST_PACKAGE_NAME), any(Executor.class), callbackCaptor.capture());
final Consumer<Boolean> callback = callbackCaptor.getValue();
callback.accept(qualified);
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceControllerTest.java
index c2a3b4a..5940d72 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultBrowserShortcutPreferenceControllerTest.java
@@ -18,8 +18,8 @@
import static com.google.common.truth.Truth.assertThat;
+import android.app.role.RoleControllerManager;
import android.content.Context;
-import android.permission.PermissionControllerManager;
import org.junit.Before;
import org.junit.Test;
@@ -34,15 +34,15 @@
public class DefaultBrowserShortcutPreferenceControllerTest {
@Mock
- private PermissionControllerManager mPermissionControllerManager;
+ private RoleControllerManager mRoleControllerManager;
private DefaultBrowserShortcutPreferenceController mController;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- ShadowApplication.getInstance().setSystemService(Context.PERMISSION_CONTROLLER_SERVICE,
- mPermissionControllerManager);
+ ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
+ mRoleControllerManager);
mController = new DefaultBrowserShortcutPreferenceController(RuntimeEnvironment.application,
"Package1");
}
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultEmergencyShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultEmergencyShortcutPreferenceControllerTest.java
index 8466092..8dcf530 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultEmergencyShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultEmergencyShortcutPreferenceControllerTest.java
@@ -18,8 +18,8 @@
import static com.google.common.truth.Truth.assertThat;
+import android.app.role.RoleControllerManager;
import android.content.Context;
-import android.permission.PermissionControllerManager;
import org.junit.Before;
import org.junit.Test;
@@ -34,15 +34,15 @@
public class DefaultEmergencyShortcutPreferenceControllerTest {
@Mock
- private PermissionControllerManager mPermissionControllerManager;
+ private RoleControllerManager mRoleControllerManager;
private DefaultEmergencyShortcutPreferenceController mController;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- ShadowApplication.getInstance().setSystemService(Context.PERMISSION_CONTROLLER_SERVICE,
- mPermissionControllerManager);
+ ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
+ mRoleControllerManager);
mController = new DefaultEmergencyShortcutPreferenceController(
RuntimeEnvironment.application, "Package1");
}
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultHomeShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultHomeShortcutPreferenceControllerTest.java
index c5cae3a..7071fec 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultHomeShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultHomeShortcutPreferenceControllerTest.java
@@ -18,8 +18,8 @@
import static com.google.common.truth.Truth.assertThat;
+import android.app.role.RoleControllerManager;
import android.content.Context;
-import android.permission.PermissionControllerManager;
import org.junit.Before;
import org.junit.Test;
@@ -34,15 +34,15 @@
public class DefaultHomeShortcutPreferenceControllerTest {
@Mock
- private PermissionControllerManager mPermissionControllerManager;
+ private RoleControllerManager mRoleControllerManager;
private DefaultHomeShortcutPreferenceController mController;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- ShadowApplication.getInstance().setSystemService(Context.PERMISSION_CONTROLLER_SERVICE,
- mPermissionControllerManager);
+ ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
+ mRoleControllerManager);
mController = new DefaultHomeShortcutPreferenceController(RuntimeEnvironment.application,
"Package1");
}
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultPhoneShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultPhoneShortcutPreferenceControllerTest.java
index 4e7a800..d1b6aeb 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultPhoneShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultPhoneShortcutPreferenceControllerTest.java
@@ -18,8 +18,8 @@
import static com.google.common.truth.Truth.assertThat;
+import android.app.role.RoleControllerManager;
import android.content.Context;
-import android.permission.PermissionControllerManager;
import org.junit.Before;
import org.junit.Test;
@@ -37,15 +37,15 @@
private static final String PREFERENCE_KEY = "default_phone_app";
@Mock
- private PermissionControllerManager mPermissionControllerManager;
+ private RoleControllerManager mRoleControllerManager;
private DefaultPhoneShortcutPreferenceController mController;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- ShadowApplication.getInstance().setSystemService(Context.PERMISSION_CONTROLLER_SERVICE,
- mPermissionControllerManager);
+ ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
+ mRoleControllerManager);
mController = new DefaultPhoneShortcutPreferenceController(RuntimeEnvironment.application,
TEST_PACKAGE_NAME);
}
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultSmsShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultSmsShortcutPreferenceControllerTest.java
index b31a10d..8626d2d 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultSmsShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultSmsShortcutPreferenceControllerTest.java
@@ -18,8 +18,8 @@
import static com.google.common.truth.Truth.assertThat;
+import android.app.role.RoleControllerManager;
import android.content.Context;
-import android.permission.PermissionControllerManager;
import org.junit.Before;
import org.junit.Test;
@@ -37,15 +37,15 @@
private static final String PREFERENCE_KEY = "default_sms_app";
@Mock
- private PermissionControllerManager mPermissionControllerManager;
+ private RoleControllerManager mRoleControllerManager;
private DefaultSmsShortcutPreferenceController mController;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- ShadowApplication.getInstance().setSystemService(Context.PERMISSION_CONTROLLER_SERVICE,
- mPermissionControllerManager);
+ ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
+ mRoleControllerManager);
mController = new DefaultSmsShortcutPreferenceController(RuntimeEnvironment.application,
TEST_PACKAGE_NAME);
}
diff --git a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultEmergencyPickerTest.java b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultEmergencyPickerTest.java
index 5d97f52..b7b046c 100644
--- a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultEmergencyPickerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultEmergencyPickerTest.java
@@ -19,7 +19,6 @@
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -27,15 +26,10 @@
import android.app.Activity;
import android.app.role.RoleManager;
-import android.app.role.RoleManagerCallback;
import android.content.Context;
import android.content.pm.PackageManager;
-import android.os.AsyncTask;
-import android.os.Process;
import android.os.UserHandle;
import android.os.UserManager;
-import android.provider.Settings;
-import android.util.Log;
import org.junit.Before;
import org.junit.Test;
@@ -50,6 +44,7 @@
import java.util.Arrays;
import java.util.concurrent.Executor;
+import java.util.function.Consumer;
@RunWith(RobolectricTestRunner.class)
public class DefaultEmergencyPickerTest {
@@ -90,7 +85,7 @@
eq(0),
any(UserHandle.class),
any(Executor.class),
- any(RoleManagerCallback.class));
+ any(Consumer.class));
}
@Test
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/ZenAccessControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessControllerTest.java
similarity index 96%
rename from tests/robotests/src/com/android/settings/applications/specialaccess/ZenAccessControllerTest.java
rename to tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessControllerTest.java
index 5bce86c..bcb4bb3 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/ZenAccessControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessControllerTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.applications.specialaccess;
+package com.android.settings.applications.specialaccess.zenaccess;
import static com.google.common.truth.Truth.assertThat;
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragmentTest.java
index 2a8aa8e..3fa0e4d 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceDashboardFragmentTest.java
@@ -80,7 +80,7 @@
Context context = spy(RuntimeEnvironment.application);
when(context.getApplicationContext()).thenReturn(context);
when(NfcAdapter.getDefaultAdapter(context)).thenReturn(mNfcAdapter);
- when(mNfcAdapter.deviceSupportsNfcSecure()).thenReturn(true);
+ when(mNfcAdapter.isSecureNfcSupported()).thenReturn(true);
final List<String> niks =
AdvancedConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
.getNonIndexableKeys(context);
diff --git a/tests/robotests/src/com/android/settings/core/HideNonSystemOverlayMixinTest.java b/tests/robotests/src/com/android/settings/core/HideNonSystemOverlayMixinTest.java
new file mode 100644
index 0000000..579cba0
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/core/HideNonSystemOverlayMixinTest.java
@@ -0,0 +1,78 @@
+/*
+ * 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.core;
+
+import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.os.Bundle;
+import android.view.WindowManager;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.android.controller.ActivityController;
+
+@RunWith(RobolectricTestRunner.class)
+public class HideNonSystemOverlayMixinTest {
+
+ private ActivityController<TestActivity> mActivityController;
+
+ @Before
+ public void setUp() {
+ RuntimeEnvironment.application.setTheme(R.style.Theme_AppCompat);
+ mActivityController = Robolectric.buildActivity(TestActivity.class);
+ }
+
+ @Test
+ public void startActivity_shouldHideNonSystemOverlay() {
+ mActivityController.setup();
+ TestActivity activity = mActivityController.get();
+
+ // Activity start: HIDE_NON_SYSTEM_OVERLAY should be set.
+ final WindowManager.LayoutParams attrs = activity.getWindow().getAttributes();
+ assertThat(attrs.privateFlags & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS)
+ .isNotEqualTo(0);
+ }
+
+ @Test
+ public void stopActivity_shouldUnhideNonSystemOverlay() {
+ mActivityController.setup().stop();
+ TestActivity activity = mActivityController.get();
+
+ final WindowManager.LayoutParams attrs = activity.getWindow().getAttributes();
+ assertThat(attrs.privateFlags & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS)
+ .isEqualTo(0);
+ }
+
+ public static class TestActivity extends AppCompatActivity {
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ getLifecycle().addObserver(new HideNonSystemOverlayMixin(this));
+ }
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
index 4347637..eab3dde 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
@@ -164,7 +164,8 @@
verify(mSummaryPreference).setUsageInfo(info.cycleEnd, now - UPDATE_BACKOFF_MS,
CARRIER_NAME, 1 /* numPlans */, intent);
verify(mSummaryPreference).setChartEnabled(true);
- verify(mSummaryPreference).setWifiMode(false, null);
+ verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
+ false /* isSingleWifi */);
}
@Test
@@ -188,7 +189,8 @@
verify(mSummaryPreference).setUsageInfo(info.cycleEnd, now - UPDATE_BACKOFF_MS,
CARRIER_NAME, 0 /* numPlans */, intent);
verify(mSummaryPreference).setChartEnabled(true);
- verify(mSummaryPreference).setWifiMode(false, null);
+ verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
+ false /* isSingleWifi */);
}
@Test
@@ -214,7 +216,8 @@
0 /* numPlans */,
null /* launchIntent */);
verify(mSummaryPreference).setChartEnabled(true);
- verify(mSummaryPreference).setWifiMode(false, null);
+ verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
+ false /* isSingleWifi */);
}
@Test
@@ -240,7 +243,8 @@
0 /* numPlans */,
null /* launchIntent */);
verify(mSummaryPreference).setChartEnabled(false);
- verify(mSummaryPreference).setWifiMode(false, null);
+ verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
+ false /* isSingleWifi */);
}
@Test
@@ -321,7 +325,8 @@
verify(mSummaryPreference).setLimitInfo(captor.capture());
CharSequence value = captor.getValue();
assertThat(value.toString()).isEqualTo("1.00 MB data warning / 1.00 MB data limit");
- verify(mSummaryPreference).setWifiMode(false, null);
+ verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
+ false /* isSingleWifi */);
}
@Test
@@ -340,7 +345,8 @@
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_ABSENT);
mController.updateState(mSummaryPreference);
- verify(mSummaryPreference).setWifiMode(true, info.period);
+ verify(mSummaryPreference).setWifiMode(true /* isWifiMode */, info.period /* usagePeriod */,
+ false /* isSingleWifi */);
verify(mSummaryPreference).setLimitInfo(null);
verify(mSummaryPreference).setUsageNumbers(info.usageLevel, -1L, true);
verify(mSummaryPreference).setChartEnabled(false);
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
index 525b82e..35e6b1d 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
@@ -488,7 +488,7 @@
new Intent());
mSummaryPreference.setUsageNumbers(1000000L, -1L, true);
final String cycleText = "The quick fox";
- mSummaryPreference.setWifiMode(true, cycleText);
+ mSummaryPreference.setWifiMode(true /* isWifiMode */, cycleText, false /* isSingleWifi */);
doReturn(200L).when(mSummaryPreference).getHistoricalUsageLevel();
bindViewHolder();
@@ -524,7 +524,8 @@
@Test
public void testSetWifiMode_noUsageInfo_shouldDisableLaunchButton() {
mSummaryPreference = spy(mSummaryPreference);
- mSummaryPreference.setWifiMode(true, "Test cycle text");
+ mSummaryPreference.setWifiMode(true /* isWifiMode */, "Test cycle text",
+ false /* isSingleWifi */);
doReturn(0L).when(mSummaryPreference).getHistoricalUsageLevel();
bindViewHolder();
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
index 8fae45c..18ddd8a 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
@@ -16,18 +16,14 @@
package com.android.settings.deviceinfo;
-import static android.content.Context.CLIPBOARD_SERVICE;
-
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Answers.RETURNS_DEEP_STUBS;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import android.app.Activity;
-import android.content.ClipboardManager;
import android.content.Context;
import android.os.Process;
import android.os.UserManager;
@@ -35,7 +31,6 @@
import androidx.lifecycle.LifecycleOwner;
import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.core.InstrumentedPreferenceFragment;
@@ -62,13 +57,8 @@
public class BuildNumberPreferenceControllerTest {
private static final String KEY_BUILD_NUMBER = "build_number";
-
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private Activity mActivity;
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private InstrumentedPreferenceFragment mFragment;
- @Mock(answer = RETURNS_DEEP_STUBS)
- private PreferenceScreen mScreen;
private ShadowUserManager mShadowUserManager;
@@ -200,14 +190,4 @@
assertThat(activityResultHandled).isTrue();
assertThat(DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext)).isTrue();
}
-
- @Test
- public void copy_shouldCopyBuildNumberToClipboard() {
- mController.copy();
-
- final ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService(
- CLIPBOARD_SERVICE);
- final CharSequence data = clipboard.getPrimaryClip().getItemAt(0).getText();
- assertThat(data.toString()).isEqualTo(mController.getSummary());
- }
}
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceControllerTest.java
new file mode 100644
index 0000000..3784f08
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SimpleBuildNumberPreferenceControllerTest.java
@@ -0,0 +1,56 @@
+/*
+ * 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.deviceinfo.firmwareversion;
+
+import static android.content.Context.CLIPBOARD_SERVICE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.ClipboardManager;
+import android.content.Context;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class SimpleBuildNumberPreferenceControllerTest {
+
+ private SimpleBuildNumberPreferenceController mController;
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
+
+ mController = new SimpleBuildNumberPreferenceController(mContext, "test");
+ }
+
+ @Test
+ public void copy_shouldCopyBuildNumberToClipboard() {
+ mController.copy();
+
+ final ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService(
+ CLIPBOARD_SERVICE);
+ final CharSequence data = clipboard.getPrimaryClip().getItemAt(0).getText();
+ assertThat(data.toString()).isEqualTo(mController.getSummary());
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
index 0103031..d5e0ed8 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
@@ -65,7 +65,9 @@
private static final String STATUS_NOT_CHARGING = "Not charging";
private static final long REMAINING_TIME_NULL = -1;
private static final long REMAINING_TIME = 2;
+ // Strings are defined in frameworks/base/packages/SettingsLib/res/values/strings.xml
private static final String ENHANCED_STRING_SUFFIX = "based on your usage";
+ private static final String EXTEND_PREFIX = "Extend battery life past";
private static final long TEST_CHARGE_TIME_REMAINING = TimeUnit.MINUTES.toMicros(1);
private static final String TEST_CHARGE_TIME_REMAINING_STRINGIFIED =
"1 min left until fully charged";
@@ -148,8 +150,10 @@
// We only add special mention for the long string
assertThat(info.remainingLabel.toString()).contains(ENHANCED_STRING_SUFFIX);
+ assertThat(info.suggestionLabel).contains(EXTEND_PREFIX);
// shortened string should not have extra text
assertThat(info2.remainingLabel.toString()).doesNotContain(ENHANCED_STRING_SUFFIX);
+ assertThat(info2.suggestionLabel).contains(EXTEND_PREFIX);
}
@Test
@@ -169,6 +173,19 @@
mContext.getString(R.string.power_remaining_duration_only_shutdown_imminent));
assertThat(info2.remainingLabel.toString()).isEqualTo(
mContext.getString(R.string.power_remaining_duration_only_shutdown_imminent));
+ assertThat(info2.suggestionLabel).contains(EXTEND_PREFIX);
+ }
+
+ @Test
+ public void getBatteryInfo_MoreThanOneDay_suggestionLabelIsCorrectString() {
+ Estimate estimate = new Estimate(Duration.ofDays(3).toMillis(),
+ true /* isBasedOnUsage */,
+ 1000 /* averageDischargeTime */);
+ BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, mDisChargingBatteryBroadcast,
+ mBatteryStats, estimate, SystemClock.elapsedRealtime() * 1000,
+ false /* shortString */);
+
+ assertThat(info.suggestionLabel).doesNotContain(EXTEND_PREFIX);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java
index 7999dc8..3509330 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java
@@ -94,13 +94,13 @@
public void setChecked_on_setPowerSaveMode() {
mController.setChecked(true);
- verify(mPowerManager).setPowerSaveMode(true);
+ verify(mPowerManager).setPowerSaveModeEnabled(true);
}
@Test
public void setChecked_off_unsetPowerSaveMode() {
mController.setChecked(false);
- verify(mPowerManager).setPowerSaveMode(false);
+ verify(mPowerManager).setPowerSaveModeEnabled(false);
}
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceControllerTest.java
new file mode 100644
index 0000000..a441864
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceControllerTest.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge.batterysaver;
+
+import static com.android.settings.fuelgauge.batterysaver.BatterySaverStickyPreferenceController.LOW_POWER_STICKY_AUTO_DISABLE_ENABLED;
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.provider.Settings;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class BatterySaverStickyPreferenceControllerTest {
+
+ private static final String PREF_KEY = "battery_saver_sticky";
+
+ private Context mContext;
+ private BatterySaverStickyPreferenceController mController;
+
+ @Before
+ public void setup() {
+ mContext = RuntimeEnvironment.application;
+ mController = new BatterySaverStickyPreferenceController(mContext, PREF_KEY);
+ }
+
+ private int getAutoDisableSetting() {
+ return Settings.System.getInt(mContext.getContentResolver(),
+ LOW_POWER_STICKY_AUTO_DISABLE_ENABLED,
+ 1);
+ }
+
+ @Test
+ public void testOnPreferenceChange_turnOnKeepActive_autoDisableOff() {
+ mController.onPreferenceChange(null, true);
+ final int isOn = getAutoDisableSetting();
+ assertThat(isOn).isEqualTo(0);
+ }
+
+ @Test
+ public void testOnPreferenceChange_TurnOffKeepActive_autoDisableOff() {
+ mController.onPreferenceChange(null, false);
+ final int isOn = getAutoDisableSetting();
+ assertThat(isOn).isEqualTo(1);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SystemNavigationEdgeToEdgePreferenceControllerTest.java
similarity index 61%
copy from tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
copy to tests/robotests/src/com/android/settings/gestures/SystemNavigationEdgeToEdgePreferenceControllerTest.java
index e98bdc8..5e6cd55 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SystemNavigationEdgeToEdgePreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * 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.
@@ -16,17 +16,31 @@
package com.android.settings.gestures;
+import static com.android.settings.gestures.SystemNavigationEdgeToEdgePreferenceController.PREF_KEY_EDGE_TO_EDGE;
+import static com.android.settings.gestures.SystemNavigationLegacyPreferenceController.PREF_KEY_LEGACY;
+import static com.android.settings.gestures.SystemNavigationSwipeUpPreferenceController.PREF_KEY_SWIPE_UP;
+
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
+
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
+import android.provider.Settings;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
import com.android.internal.R;
import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.widget.RadioButtonPreference;
import org.junit.After;
import org.junit.Before;
@@ -40,14 +54,14 @@
@RunWith(RobolectricTestRunner.class)
@Config(shadows = SettingsShadowResources.class)
-public class SwipeUpPreferenceControllerTest {
+public class SystemNavigationEdgeToEdgePreferenceControllerTest {
private Context mContext;
private ShadowPackageManager mPackageManager;
- private SwipeUpPreferenceController mController;
+
+ private SystemNavigationEdgeToEdgePreferenceController mController;
private static final String ACTION_QUICKSTEP = "android.intent.action.QUICKSTEP_SERVICE";
- private static final String KEY_SWIPE_UP = "gesture_swipe_up";
@Before
public void setUp() {
@@ -56,8 +70,12 @@
SettingsShadowResources.overrideResource(R.bool.config_swipe_up_gesture_default, true);
mContext = RuntimeEnvironment.application;
+ Settings.Global.putInt(mContext.getContentResolver(), "prototype_enabled", 1);
+
mPackageManager = Shadows.shadowOf(mContext.getPackageManager());
- mController = new SwipeUpPreferenceController(mContext, KEY_SWIPE_UP);
+
+ mController = new SystemNavigationEdgeToEdgePreferenceController(mContext,
+ PREF_KEY_EDGE_TO_EDGE);
}
@After
@@ -80,7 +98,8 @@
info.serviceInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
mPackageManager.addResolveInfoForIntent(quickStepIntent, info);
- assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isTrue();
+ assertThat(SystemNavigationEdgeToEdgePreferenceController.isGestureAvailable(mContext))
+ .isTrue();
}
@Test
@@ -94,12 +113,14 @@
.setPackage(recentsComponentName.getPackageName());
mPackageManager.addResolveInfoForIntent(quickStepIntent, new ResolveInfo());
- assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isFalse();
+ assertThat(SystemNavigationEdgeToEdgePreferenceController.isGestureAvailable(mContext))
+ .isFalse();
}
@Test
public void testIsGestureAvailable_noMatchingServiceExists_shouldReturnFalse() {
- assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isFalse();
+ assertThat(SystemNavigationEdgeToEdgePreferenceController.isGestureAvailable(mContext))
+ .isFalse();
}
@Test
@@ -109,35 +130,45 @@
@Test
public void testIsChecked_defaultIsFalse_shouldReturnFalse() {
- SettingsShadowResources.overrideResource(R.bool.config_swipe_up_gesture_default, false);
+ Settings.Global.putInt(mContext.getContentResolver(), "prototype_enabled", 0);
assertThat(mController.isChecked()).isFalse();
}
@Test
- public void testIsChecked_setCheckedTrue_shouldReturnTrue() {
+ public void testIsChecked_radioButtonClicked_shouldReturnTrue() {
// Set the setting to be enabled.
- mController.setChecked(true);
+ mController.onRadioButtonClicked(null);
assertThat(mController.isChecked()).isTrue();
}
@Test
- public void testIsChecked_setCheckedFalse_shouldReturnFalse() {
- // Set the setting to be disabled.
- mController.setChecked(false);
- assertThat(mController.isChecked()).isFalse();
+ public void testOnRadioButtonClicked_setsCorrectRadioButtonChecked() {
+ RadioButtonPreference radioLegacy = mock(RadioButtonPreference.class);
+ RadioButtonPreference radioSwipeUp = mock(RadioButtonPreference.class);
+ RadioButtonPreference radioEdgeToEdge = mock(RadioButtonPreference.class);
+ PreferenceScreen screen = mock(PreferenceScreen.class);
+
+ when(screen.findPreference(PREF_KEY_LEGACY)).thenReturn(radioLegacy);
+ when(screen.findPreference(PREF_KEY_SWIPE_UP)).thenReturn(radioSwipeUp);
+ when(screen.findPreference(PREF_KEY_EDGE_TO_EDGE)).thenReturn(radioEdgeToEdge);
+
+ mController.displayPreference(screen);
+ mController.onRadioButtonClicked(radioEdgeToEdge);
+
+ verify(radioLegacy, times(1)).setChecked(false);
+ verify(radioSwipeUp, times(1)).setChecked(false);
+ verify(radioEdgeToEdge, times(1)).setChecked(true);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
- final SwipeUpPreferenceController controller =
- new SwipeUpPreferenceController(mContext, "gesture_swipe_up");
- assertThat(controller.isSliceable()).isTrue();
+ assertThat(mController.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
- final SwipeUpPreferenceController controller =
- new SwipeUpPreferenceController(mContext, "bad_key");
+ final SystemNavigationEdgeToEdgePreferenceController controller =
+ new SystemNavigationEdgeToEdgePreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SystemNavigationLegacyPreferenceControllerTest.java
similarity index 63%
copy from tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
copy to tests/robotests/src/com/android/settings/gestures/SystemNavigationLegacyPreferenceControllerTest.java
index e98bdc8..fe0a061 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SystemNavigationLegacyPreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * 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.
@@ -16,8 +16,17 @@
package com.android.settings.gestures;
+import static com.android.settings.gestures.SystemNavigationEdgeToEdgePreferenceController.PREF_KEY_EDGE_TO_EDGE;
+import static com.android.settings.gestures.SystemNavigationLegacyPreferenceController.PREF_KEY_LEGACY;
+import static com.android.settings.gestures.SystemNavigationSwipeUpPreferenceController.PREF_KEY_SWIPE_UP;
+
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
+
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -25,8 +34,12 @@
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
import com.android.internal.R;
import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.widget.RadioButtonPreference;
import org.junit.After;
import org.junit.Before;
@@ -40,24 +53,25 @@
@RunWith(RobolectricTestRunner.class)
@Config(shadows = SettingsShadowResources.class)
-public class SwipeUpPreferenceControllerTest {
+public class SystemNavigationLegacyPreferenceControllerTest {
private Context mContext;
private ShadowPackageManager mPackageManager;
- private SwipeUpPreferenceController mController;
+
+ private SystemNavigationLegacyPreferenceController mController;
private static final String ACTION_QUICKSTEP = "android.intent.action.QUICKSTEP_SERVICE";
- private static final String KEY_SWIPE_UP = "gesture_swipe_up";
@Before
public void setUp() {
SettingsShadowResources.overrideResource(R.bool.config_swipe_up_gesture_setting_available,
true);
- SettingsShadowResources.overrideResource(R.bool.config_swipe_up_gesture_default, true);
+ SettingsShadowResources.overrideResource(R.bool.config_swipe_up_gesture_default, false);
mContext = RuntimeEnvironment.application;
mPackageManager = Shadows.shadowOf(mContext.getPackageManager());
- mController = new SwipeUpPreferenceController(mContext, KEY_SWIPE_UP);
+
+ mController = new SystemNavigationLegacyPreferenceController(mContext, PREF_KEY_LEGACY);
}
@After
@@ -80,7 +94,8 @@
info.serviceInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
mPackageManager.addResolveInfoForIntent(quickStepIntent, info);
- assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isTrue();
+ assertThat(SystemNavigationLegacyPreferenceController.isGestureAvailable(mContext))
+ .isTrue();
}
@Test
@@ -94,12 +109,14 @@
.setPackage(recentsComponentName.getPackageName());
mPackageManager.addResolveInfoForIntent(quickStepIntent, new ResolveInfo());
- assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isFalse();
+ assertThat(
+ SystemNavigationLegacyPreferenceController.isGestureAvailable(mContext)).isFalse();
}
@Test
public void testIsGestureAvailable_noMatchingServiceExists_shouldReturnFalse() {
- assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isFalse();
+ assertThat(
+ SystemNavigationLegacyPreferenceController.isGestureAvailable(mContext)).isFalse();
}
@Test
@@ -109,35 +126,46 @@
@Test
public void testIsChecked_defaultIsFalse_shouldReturnFalse() {
- SettingsShadowResources.overrideResource(R.bool.config_swipe_up_gesture_default, false);
+ // Turn on the Swipe Up mode (2-buttons)
+ SettingsShadowResources.overrideResource(R.bool.config_swipe_up_gesture_default, true);
assertThat(mController.isChecked()).isFalse();
}
@Test
- public void testIsChecked_setCheckedTrue_shouldReturnTrue() {
+ public void testIsChecked_radioButtonClicked_shouldReturnTrue() {
// Set the setting to be enabled.
- mController.setChecked(true);
+ mController.onRadioButtonClicked(null);
assertThat(mController.isChecked()).isTrue();
}
@Test
- public void testIsChecked_setCheckedFalse_shouldReturnFalse() {
- // Set the setting to be disabled.
- mController.setChecked(false);
- assertThat(mController.isChecked()).isFalse();
+ public void testOnRadioButtonClicked_setsCorrectRadioButtonChecked() {
+ RadioButtonPreference radioLegacy = mock(RadioButtonPreference.class);
+ RadioButtonPreference radioSwipeUp = mock(RadioButtonPreference.class);
+ RadioButtonPreference radioEdgeToEdge = mock(RadioButtonPreference.class);
+ PreferenceScreen screen = mock(PreferenceScreen.class);
+
+ when(screen.findPreference(PREF_KEY_LEGACY)).thenReturn(radioLegacy);
+ when(screen.findPreference(PREF_KEY_SWIPE_UP)).thenReturn(radioSwipeUp);
+ when(screen.findPreference(PREF_KEY_EDGE_TO_EDGE)).thenReturn(radioEdgeToEdge);
+
+ mController.displayPreference(screen);
+ mController.onRadioButtonClicked(radioLegacy);
+
+ verify(radioLegacy, times(1)).setChecked(true);
+ verify(radioSwipeUp, times(1)).setChecked(false);
+ verify(radioEdgeToEdge, times(1)).setChecked(false);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
- final SwipeUpPreferenceController controller =
- new SwipeUpPreferenceController(mContext, "gesture_swipe_up");
- assertThat(controller.isSliceable()).isTrue();
+ assertThat(mController.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
- final SwipeUpPreferenceController controller =
- new SwipeUpPreferenceController(mContext, "bad_key");
+ final SystemNavigationLegacyPreferenceController controller =
+ new SystemNavigationLegacyPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SystemNavigationSwipeUpPreferenceControllerTest.java
similarity index 63%
rename from tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
rename to tests/robotests/src/com/android/settings/gestures/SystemNavigationSwipeUpPreferenceControllerTest.java
index e98bdc8..97b4762 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeUpPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SystemNavigationSwipeUpPreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * 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.
@@ -16,8 +16,17 @@
package com.android.settings.gestures;
+import static com.android.settings.gestures.SystemNavigationEdgeToEdgePreferenceController.PREF_KEY_EDGE_TO_EDGE;
+import static com.android.settings.gestures.SystemNavigationLegacyPreferenceController.PREF_KEY_LEGACY;
+import static com.android.settings.gestures.SystemNavigationSwipeUpPreferenceController.PREF_KEY_SWIPE_UP;
+
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
+
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -25,8 +34,12 @@
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
import com.android.internal.R;
import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.widget.RadioButtonPreference;
import org.junit.After;
import org.junit.Before;
@@ -40,14 +53,14 @@
@RunWith(RobolectricTestRunner.class)
@Config(shadows = SettingsShadowResources.class)
-public class SwipeUpPreferenceControllerTest {
+public class SystemNavigationSwipeUpPreferenceControllerTest {
private Context mContext;
private ShadowPackageManager mPackageManager;
- private SwipeUpPreferenceController mController;
+
+ private SystemNavigationSwipeUpPreferenceController mController;
private static final String ACTION_QUICKSTEP = "android.intent.action.QUICKSTEP_SERVICE";
- private static final String KEY_SWIPE_UP = "gesture_swipe_up";
@Before
public void setUp() {
@@ -57,7 +70,8 @@
mContext = RuntimeEnvironment.application;
mPackageManager = Shadows.shadowOf(mContext.getPackageManager());
- mController = new SwipeUpPreferenceController(mContext, KEY_SWIPE_UP);
+
+ mController = new SystemNavigationSwipeUpPreferenceController(mContext, PREF_KEY_SWIPE_UP);
}
@After
@@ -80,7 +94,8 @@
info.serviceInfo.applicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
mPackageManager.addResolveInfoForIntent(quickStepIntent, info);
- assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isTrue();
+ assertThat(SystemNavigationSwipeUpPreferenceController.isGestureAvailable(mContext))
+ .isTrue();
}
@Test
@@ -94,12 +109,14 @@
.setPackage(recentsComponentName.getPackageName());
mPackageManager.addResolveInfoForIntent(quickStepIntent, new ResolveInfo());
- assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isFalse();
+ assertThat(SystemNavigationSwipeUpPreferenceController.isGestureAvailable(mContext))
+ .isFalse();
}
@Test
public void testIsGestureAvailable_noMatchingServiceExists_shouldReturnFalse() {
- assertThat(SwipeUpPreferenceController.isGestureAvailable(mContext)).isFalse();
+ assertThat(SystemNavigationSwipeUpPreferenceController.isGestureAvailable(mContext))
+ .isFalse();
}
@Test
@@ -114,30 +131,40 @@
}
@Test
- public void testIsChecked_setCheckedTrue_shouldReturnTrue() {
+ public void testIsChecked_radioButtonClicked_shouldReturnTrue() {
// Set the setting to be enabled.
- mController.setChecked(true);
+ mController.onRadioButtonClicked(null);
assertThat(mController.isChecked()).isTrue();
}
@Test
- public void testIsChecked_setCheckedFalse_shouldReturnFalse() {
- // Set the setting to be disabled.
- mController.setChecked(false);
- assertThat(mController.isChecked()).isFalse();
+ public void testOnRadioButtonClicked_setsCorrectRadioButtonChecked() {
+ RadioButtonPreference radioLegacy = mock(RadioButtonPreference.class);
+ RadioButtonPreference radioSwipeUp = mock(RadioButtonPreference.class);
+ RadioButtonPreference radioEdgeToEdge = mock(RadioButtonPreference.class);
+ PreferenceScreen screen = mock(PreferenceScreen.class);
+
+ when(screen.findPreference(PREF_KEY_LEGACY)).thenReturn(radioLegacy);
+ when(screen.findPreference(PREF_KEY_SWIPE_UP)).thenReturn(radioSwipeUp);
+ when(screen.findPreference(PREF_KEY_EDGE_TO_EDGE)).thenReturn(radioEdgeToEdge);
+
+ mController.displayPreference(screen);
+ mController.onRadioButtonClicked(radioSwipeUp);
+
+ verify(radioLegacy, times(1)).setChecked(false);
+ verify(radioSwipeUp, times(1)).setChecked(true);
+ verify(radioEdgeToEdge, times(1)).setChecked(false);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
- final SwipeUpPreferenceController controller =
- new SwipeUpPreferenceController(mContext, "gesture_swipe_up");
- assertThat(controller.isSliceable()).isTrue();
+ assertThat(mController.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
- final SwipeUpPreferenceController controller =
- new SwipeUpPreferenceController(mContext, "bad_key");
+ final SystemNavigationSwipeUpPreferenceController controller =
+ new SystemNavigationSwipeUpPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}
diff --git a/tests/robotests/src/com/android/settings/gestures/WakeScreenGestureSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/WakeScreenGestureSettingsTest.java
deleted file mode 100644
index f1d2fcc..0000000
--- a/tests/robotests/src/com/android/settings/gestures/WakeScreenGestureSettingsTest.java
+++ /dev/null
@@ -1,50 +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.gestures;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.provider.SearchIndexableResource;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-public class WakeScreenGestureSettingsTest {
-
- private WakeScreenGestureSettings mSettings;
-
- @Before
- public void setUp() {
- mSettings = new WakeScreenGestureSettings();
- }
-
- @Test
- public void testSearchIndexProvider_shouldIndexResource() {
- final List<SearchIndexableResource> indexRes =
- WakeScreenGestureSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
- RuntimeEnvironment.application, true /* enabled */);
-
- assertThat(indexRes).isNotNull();
- assertThat(indexRes.get(0).xmlResId).isEqualTo(mSettings.getPreferenceScreenResId());
- }
-}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImplTest.java
index 2db7f3f..0683bd8 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImplTest.java
@@ -57,7 +57,7 @@
final Intent intent = new Intent();
mImpl.sendBroadcast(intent);
- verify(mContext, never()).sendBroadcastAsUser(intent, UserHandle.ALL);
+ verify(mContext, never()).sendBroadcastAsUser(intent, UserHandle.CURRENT);
}
@Test
@@ -66,7 +66,7 @@
final Intent intent = new Intent();
mImpl.sendBroadcast(intent);
- verify(mContext).sendBroadcastAsUser(intent, UserHandle.ALL);
+ verify(mContext).sendBroadcastAsUser(intent, UserHandle.CURRENT);
}
@Test
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 8b04ef3..40e6939 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
@@ -22,7 +22,7 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyList;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
@@ -87,6 +87,19 @@
}
@Test
+ public void isCardEligibleToDisplay_invalidRankingScore_returnFalse() {
+ final ContextualCard card = new ContextualCard.Builder()
+ .setName("test_card")
+ .setCardType(ContextualCard.CardType.SLICE)
+ .setSliceUri(CustomSliceRegistry.FLASHLIGHT_SLICE_URI)
+ .setRankingScore(-1)
+ .build();
+
+ assertThat(mEligibleCardChecker.isCardEligibleToDisplay(card))
+ .isFalse();
+ }
+
+ @Test
public void isCardEligibleToDisplay_nullSlice_returnFalse() {
doReturn(null).when(mEligibleCardChecker).bindSlice(Uri.parse(TEST_SLICE_URI));
@@ -108,7 +121,7 @@
public void getDisplayableCards_twoEligibleCards_shouldShowAll() {
final List<ContextualCard> cards = getContextualCardList().stream().limit(2)
.collect(Collectors.toList());
- doReturn(cards).when(mContextualCardLoader).filterEligibleCards(any(List.class));
+ doReturn(cards).when(mContextualCardLoader).filterEligibleCards(anyList());
final List<ContextualCard> result = mContextualCardLoader.getDisplayableCards(cards);
@@ -118,7 +131,7 @@
@Test
public void getDisplayableCards_fiveEligibleCardsNoLarge_shouldShowDefaultCardCount() {
final List<ContextualCard> fiveCards = getContextualCardListWithNoLargeCard();
- doReturn(fiveCards).when(mContextualCardLoader).filterEligibleCards(any(List.class));
+ doReturn(fiveCards).when(mContextualCardLoader).filterEligibleCards(anyList());
final List<ContextualCard> result = mContextualCardLoader.getDisplayableCards(
fiveCards);
@@ -136,7 +149,7 @@
.setSliceUri(Uri.parse(
"content://com.android.settings.test.slices/action/gesture_pick_up"))
.build());
- doReturn(cards).when(mContextualCardLoader).filterEligibleCards(any(List.class));
+ doReturn(cards).when(mContextualCardLoader).filterEligibleCards(anyList());
final List<ContextualCard> result = mContextualCardLoader.getDisplayableCards(cards);
@@ -147,7 +160,7 @@
public void getDisplayableCards_threeEligibleCardsTwoLarge_shouldShowTwoCards() {
final List<ContextualCard> threeCards = getContextualCardList().stream().limit(3)
.collect(Collectors.toList());
- doReturn(threeCards).when(mContextualCardLoader).filterEligibleCards(any(List.class));
+ doReturn(threeCards).when(mContextualCardLoader).filterEligibleCards(anyList());
final List<ContextualCard> result = mContextualCardLoader.getDisplayableCards(
threeCards);
@@ -167,25 +180,26 @@
public void getDisplayableCards_refreshCardUri_shouldLogContextualCardDisplay() {
mContextualCardLoader.mNotifyUri = CardContentProvider.REFRESH_CARD_URI;
- mContextualCardLoader.getDisplayableCards(new ArrayList<ContextualCard>());
+ mContextualCardLoader.getDisplayableCards(new ArrayList<>());
verify(mFakeFeatureFactory.mContextualCardFeatureProvider).logContextualCardDisplay(
- any(List.class), any(List.class));
+ anyList(), anyList());
}
@Test
public void getDisplayableCards_deleteCardUri_shouldNotLogContextualCardDisplay() {
mContextualCardLoader.mNotifyUri = CardContentProvider.DELETE_CARD_URI;
- mContextualCardLoader.getDisplayableCards(new ArrayList<ContextualCard>());
+ mContextualCardLoader.getDisplayableCards(new ArrayList<>());
verify(mFakeFeatureFactory.mContextualCardFeatureProvider, never())
- .logContextualCardDisplay(any(List.class), any(List.class));
+ .logContextualCardDisplay(anyList(), anyList());
}
private ContextualCard getContextualCard(String sliceUri) {
return new ContextualCard.Builder()
.setName("test_card")
+ .setRankingScore(0.5)
.setCardType(ContextualCard.CardType.SLICE)
.setSliceUri(Uri.parse(sliceUri))
.build();
@@ -215,11 +229,6 @@
.setSliceUri(Uri.parse(
"content://com.android.settings.test.slices/action/gesture_pick_up"))
.build());
- cards.add(new ContextualCard.Builder()
- .setName("test_battery")
- .setCardType(ContextualCard.CardType.SLICE)
- .setSliceUri(CustomSliceRegistry.BATTERY_INFO_SLICE_URI)
- .build());
return cards;
}
@@ -248,11 +257,6 @@
.setSliceUri(Uri.parse(
"content://com.android.settings.test.slices/action/gesture_pick_up"))
.build());
- cards.add(new ContextualCard.Builder()
- .setName("test_battery")
- .setCardType(ContextualCard.CardType.SLICE)
- .setSliceUri(CustomSliceRegistry.BATTERY_INFO_SLICE_URI)
- .build());
return cards;
}
}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java
index 1a0539c..8087716 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java
@@ -31,6 +31,7 @@
import android.content.Context;
import android.net.Uri;
+import android.provider.Settings;
import android.util.ArrayMap;
import com.android.settings.homepage.contextualcards.conditional.ConditionFooterContextualCard;
@@ -126,6 +127,24 @@
}
@Test
+ public void getCardLoaderTimeout_noConfiguredTimeout_shouldReturnDefaultTimeout() {
+ final long timeout = mManager.getCardLoaderTimeout(mContext);
+
+ assertThat(timeout).isEqualTo(ContextualCardManager.CARD_CONTENT_LOADER_TIMEOUT_MS);
+ }
+
+ @Test
+ public void getCardLoaderTimeout_hasConfiguredTimeout_shouldReturnConfiguredTimeout() {
+ final long configuredTimeout = 5000L;
+ Settings.Global.putLong(mContext.getContentResolver(),
+ ContextualCardManager.KEY_GLOBAL_CARD_LOADER_TIMEOUT, configuredTimeout);
+
+ final long timeout = mManager.getCardLoaderTimeout(mContext);
+
+ assertThat(timeout).isEqualTo(configuredTimeout);
+ }
+
+ @Test
public void onFinishCardLoading_fastLoad_shouldCallOnContextualCardUpdated() {
mManager.mStartTime = System.currentTimeMillis();
final ContextualCardManager manager = spy(mManager);
@@ -441,7 +460,7 @@
cards.add(new ContextualCard.Builder()
.setName("test_battery")
.setCardType(ContextualCard.CardType.SLICE)
- .setSliceUri(CustomSliceRegistry.BATTERY_INFO_SLICE_URI)
+ .setSliceUri(CustomSliceRegistry.BATTERY_FIX_SLICE_URI)
.setViewType(VIEW_TYPE_FULL_WIDTH)
.build());
return cards;
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionControllerTest.java
new file mode 100644
index 0000000..8663d0b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/HotspotConditionControllerTest.java
@@ -0,0 +1,76 @@
+/*
+ * 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.homepage.contextualcards.conditional;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiManager;
+
+import com.android.settings.homepage.contextualcards.ContextualCard;
+import com.android.settings.testutils.shadow.ShadowWifiManager;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowWifiManager.class})
+public class HotspotConditionControllerTest {
+
+ private static final String WIFI_AP_SSID = "Test Hotspot";
+
+ @Mock
+ private ConditionManager mConditionManager;
+
+ private Context mContext;
+ private HotspotConditionController mController;
+
+ @Before
+ public void setUp() {
+ mContext = RuntimeEnvironment.application;
+ mController = new HotspotConditionController(mContext, mConditionManager);
+ }
+
+ @Test
+ public void buildContextualCard_hasWifiAp_shouldHaveWifiApSsid() {
+ setupWifiApConfiguration();
+
+ final ContextualCard card = mController.buildContextualCard();
+
+ assertThat(card.getSummaryText()).isEqualTo(WIFI_AP_SSID);
+ }
+
+ @Test
+ public void buildContextualCard_noWifiAp_shouldHaveDefaultSsid() {
+ final ContextualCard card = mController.buildContextualCard();
+
+ assertThat(card.getSummaryText()).isEqualTo(
+ mContext.getText(com.android.internal.R.string.wifi_tether_configure_ssid_default));
+ }
+
+ private void setupWifiApConfiguration() {
+ final WifiConfiguration wifiApConfig = new WifiConfiguration();
+ wifiApConfig.SSID = WIFI_AP_SSID;
+ mContext.getSystemService(WifiManager.class).setWifiApConfiguration(wifiApConfig);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/BatteryInfoSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/BatteryInfoSliceTest.java
deleted file mode 100644
index ff276d6..0000000
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/deviceinfo/BatteryInfoSliceTest.java
+++ /dev/null
@@ -1,75 +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.homepage.contextualcards.deviceinfo;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-
-import android.content.Context;
-
-import androidx.core.graphics.drawable.IconCompat;
-import androidx.slice.Slice;
-import androidx.slice.SliceMetadata;
-import androidx.slice.SliceProvider;
-import androidx.slice.core.SliceAction;
-import androidx.slice.widget.SliceLiveData;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class BatteryInfoSliceTest {
-
- private Context mContext;
- private BatteryInfoSlice mBatteryInfoSlice;
-
- @Before
- public void setUp() {
- mContext = RuntimeEnvironment.application;
-
- // Set-up specs for SliceMetadata.
- SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
-
- mBatteryInfoSlice = spy(new BatteryInfoSlice(mContext));
- }
-
- @Test
- public void getSlice_shouldBeCorrectSliceContent() {
- doNothing().when(mBatteryInfoSlice).loadBatteryInfo();
- doReturn("10%").when(mBatteryInfoSlice).getBatteryPercentString();
- doReturn("test").when(mBatteryInfoSlice).getSummary();
-
- final Slice slice = mBatteryInfoSlice.getSlice();
-
- final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
- assertThat(metadata.getTitle()).isEqualTo(
- mContext.getString(R.string.power_usage_summary_title));
-
- final SliceAction primaryAction = metadata.getPrimaryAction();
- final IconCompat expectedIcon = IconCompat.createWithResource(mContext,
- R.drawable.ic_settings_battery);
- assertThat(primaryAction.getIcon().toString()).isEqualTo(expectedIcon.toString());
- }
-}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSliceTest.java
index 77fc5d9..4a23c33 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSliceTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSliceTest.java
@@ -23,6 +23,7 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -83,7 +84,7 @@
// Mock the icon and detail intent of Bluetooth.
mIcon = IconCompat.createWithResource(mContext,
- com.android.internal.R.drawable.ic_settings_bluetooth);
+ com.android.internal.R.drawable.ic_settings_bluetooth);
mDetailIntent = PendingIntent.getActivity(mContext, 0, new Intent("test action"), 0);
doReturn(mIcon).when(mBluetoothDevicesSlice).getBluetoothDeviceIcon(any());
doReturn(mDetailIntent).when(mBluetoothDevicesSlice).getBluetoothDetailIntent(any());
@@ -122,6 +123,27 @@
}
@Test
+ public void getSlice_hasMediaBluetoothDevice_shouldBuildMediaBluetoothAction() {
+ mockBluetoothDeviceList(1 /* deviceCount */);
+ doReturn(true).when(mBluetoothDeviceList.get(0)).isConnectedA2dpDevice();
+ doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getConnectedBluetoothDevices();
+
+ mBluetoothDevicesSlice.getSlice();
+
+ verify(mBluetoothDevicesSlice).buildMediaBluetoothAction(any());
+ }
+
+ @Test
+ public void getSlice_noMediaBluetoothDevice_shouldNotBuildMediaBluetoothAction() {
+ mockBluetoothDeviceList(1 /* deviceCount */);
+ doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getConnectedBluetoothDevices();
+
+ mBluetoothDevicesSlice.getSlice();
+
+ verify(mBluetoothDevicesSlice, never()).buildMediaBluetoothAction(any());
+ }
+
+ @Test
public void getSlice_noBluetoothDevices_shouldHaveNoBluetoothDevicesTitle() {
doReturn(mBluetoothDeviceList).when(mBluetoothDevicesSlice).getConnectedBluetoothDevices();
@@ -175,7 +197,6 @@
doReturn(BLUETOOTH_MOCK_TITLE).when(mCachedBluetoothDevice).getName();
doReturn(BLUETOOTH_MOCK_SUMMARY).when(mCachedBluetoothDevice).getConnectionSummary();
doReturn(BLUETOOTH_MOCK_ADDRESS).when(mCachedBluetoothDevice).getAddress();
- doReturn(true).when(mCachedBluetoothDevice).isConnectedA2dpDevice();
for (int i = 0; i < deviceCount; i++) {
mBluetoothDeviceList.add(mCachedBluetoothDevice);
}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
index b156782..e08d845 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
@@ -16,11 +16,13 @@
package com.android.settings.homepage.contextualcards.slices;
+import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_DEFERRED_SETUP;
import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_FULL_WIDTH;
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 android.app.Activity;
@@ -129,6 +131,15 @@
}
@Test
+ public void longClick_deferredSetupCard_shouldNotBeClickable() {
+ final RecyclerView.ViewHolder viewHolder = getDeferredSetupViewHolder();
+ final View contentView = viewHolder.itemView.findViewById(R.id.content);
+ mRenderer.bindView(viewHolder, buildContextualCard(TEST_SLICE_URI));
+
+ assertThat(contentView.isLongClickable()).isFalse();
+ }
+
+ @Test
public void longClick_shouldAddViewHolderToSet() {
final RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
final View card = viewHolder.itemView.findViewById(R.id.slice_view);
@@ -221,6 +232,18 @@
return mRenderer.createViewHolder(view, VIEW_TYPE_FULL_WIDTH);
}
+ private RecyclerView.ViewHolder getDeferredSetupViewHolder() {
+ final RecyclerView recyclerView = new RecyclerView(mActivity);
+ recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
+ final View view = LayoutInflater.from(mActivity).inflate(VIEW_TYPE_DEFERRED_SETUP,
+ recyclerView, false);
+ final RecyclerView.ViewHolder viewHolder = spy(
+ mRenderer.createViewHolder(view, VIEW_TYPE_DEFERRED_SETUP));
+ doReturn(VIEW_TYPE_DEFERRED_SETUP).when(viewHolder).getItemViewType();
+
+ return viewHolder;
+ }
+
private ContextualCard buildContextualCard(Uri sliceUri) {
return new ContextualCard.Builder()
.setName("test_name")
diff --git a/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java b/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java
index daaba90..d26a458 100644
--- a/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java
+++ b/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java
@@ -21,21 +21,15 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
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.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.graphics.drawable.Drawable;
-import android.os.UserHandle;
-import android.util.IconDrawableFactory;
import androidx.slice.Slice;
import androidx.slice.SliceMetadata;
@@ -43,6 +37,7 @@
import androidx.slice.core.SliceAction;
import androidx.slice.widget.SliceLiveData;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
import com.android.settingslib.media.LocalMediaManager;
import com.android.settingslib.media.MediaDevice;
@@ -53,70 +48,71 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
import java.util.ArrayList;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowBluetoothAdapter.class})
public class MediaOutputSliceTest {
private static final String TEST_PACKAGE_NAME = "com.fake.android.music";
- private static final String TEST_LABEL = "Test app";
private static final String TEST_DEVICE_1_ID = "test_device_1_id";
+ private static final String TEST_DEVICE_1_NAME = "test_device_1_name";
+ private static final int TEST_DEVICE_1_ICON =
+ com.android.internal.R.drawable.ic_bt_headphones_a2dp;
@Mock
- private PackageManager mPackageManager;
- @Mock
- private ApplicationInfo mApplicationInfo;
- @Mock
- private ApplicationInfo mApplicationInfo2;
- @Mock
private LocalMediaManager mLocalMediaManager;
- @Mock
- private IconDrawableFactory mIconDrawableFactory;
- @Mock
- private Drawable mTestDrawable;
private final List<MediaDevice> mDevices = new ArrayList<>();
private Context mContext;
private MediaOutputSlice mMediaOutputSlice;
private MediaDeviceUpdateWorker mMediaDeviceUpdateWorker;
+ private ShadowBluetoothAdapter mShadowBluetoothAdapter;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
- when(mContext.getPackageManager()).thenReturn(mPackageManager);
- when(mPackageManager.getApplicationInfo(eq(TEST_PACKAGE_NAME), anyInt()))
- .thenReturn(mApplicationInfo);
- when(mPackageManager.getApplicationInfoAsUser(eq(TEST_PACKAGE_NAME), anyInt(), anyInt()))
- .thenReturn(mApplicationInfo2);
- when(mApplicationInfo.loadLabel(mPackageManager)).thenReturn(TEST_LABEL);
- when(mIconDrawableFactory.getBadgedIcon(mApplicationInfo2, UserHandle.myUserId()))
- .thenReturn(mTestDrawable);
- when(mTestDrawable.getIntrinsicWidth()).thenReturn(100);
- when(mTestDrawable.getIntrinsicHeight()).thenReturn(100);
-
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
+ // Setup BluetoothAdapter
+ mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
+ mShadowBluetoothAdapter.setEnabled(true);
mMediaOutputSlice = new MediaOutputSlice(mContext);
mMediaDeviceUpdateWorker = new MediaDeviceUpdateWorker(mContext, MEDIA_OUTPUT_SLICE_URI);
mMediaDeviceUpdateWorker.setPackageName(TEST_PACKAGE_NAME);
mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
mMediaDeviceUpdateWorker.mLocalMediaManager = mLocalMediaManager;
- mMediaOutputSlice.init(TEST_PACKAGE_NAME, mMediaDeviceUpdateWorker, mIconDrawableFactory);
+ mMediaOutputSlice.init(TEST_PACKAGE_NAME, mMediaDeviceUpdateWorker);
}
@Test
- public void getSlice_shouldHaveAppTitle() {
+ public void getSlice_workerIsNull_shouldNotCrash() {
+ mMediaOutputSlice.init(TEST_PACKAGE_NAME, null);
+
+ mMediaOutputSlice.getSlice();
+ }
+
+ @Test
+ public void getSlice_shouldHaveActiveDeviceName() {
+ mDevices.clear();
+ final MediaDevice device = mock(MediaDevice.class);
+ when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
+ when(device.getIcon()).thenReturn(TEST_DEVICE_1_ICON);
+ when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
+
final Slice mediaSlice = mMediaOutputSlice.getSlice();
final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
final SliceAction primaryAction = metadata.getPrimaryAction();
- assertThat(primaryAction.getTitle().toString()).isEqualTo(TEST_LABEL);
+ assertThat(primaryAction.getTitle().toString()).isEqualTo(TEST_DEVICE_1_NAME);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkListControllerTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkListControllerTest.java
index 1325650..10264ab 100644
--- a/tests/robotests/src/com/android/settings/network/MobileNetworkListControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/MobileNetworkListControllerTest.java
@@ -21,6 +21,7 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
@@ -31,6 +32,7 @@
import android.content.Context;
import android.content.Intent;
import android.telephony.SubscriptionInfo;
+import android.telephony.euicc.EuiccManager;
import org.junit.After;
import org.junit.Before;
@@ -51,6 +53,9 @@
@RunWith(RobolectricTestRunner.class)
public class MobileNetworkListControllerTest {
@Mock
+ EuiccManager mEuiccManager;
+
+ @Mock
private Lifecycle mLifecycle;
@Mock
@@ -58,12 +63,17 @@
private Context mContext;
private MobileNetworkListController mController;
+ private Preference mAddMorePreference;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(Robolectric.setupActivity(Activity.class));
+ when(mContext.getSystemService(EuiccManager.class)).thenReturn(mEuiccManager);
when(mPreferenceScreen.getContext()).thenReturn(mContext);
+ mAddMorePreference = new Preference(mContext);
+ when(mPreferenceScreen.findPreference(MobileNetworkListController.KEY_ADD_MORE)).thenReturn(
+ mAddMorePreference);
mController = new MobileNetworkListController(mContext, mLifecycle);
}
@@ -79,6 +89,22 @@
}
@Test
+ public void displayPreference_eSimNotSupported_addMoreLinkNotVisible() {
+ when(mEuiccManager.isEnabled()).thenReturn(false);
+ mController.displayPreference(mPreferenceScreen);
+ mController.onResume();
+ assertThat(mAddMorePreference.isVisible()).isFalse();
+ }
+
+ @Test
+ public void displayPreference_eSimSupported_addMoreLinkIsVisible() {
+ when(mEuiccManager.isEnabled()).thenReturn(true);
+ mController.displayPreference(mPreferenceScreen);
+ mController.onResume();
+ assertThat(mAddMorePreference.isVisible()).isTrue();
+ }
+
+ @Test
public void displayPreference_twoSubscriptions_correctlySetup() {
final SubscriptionInfo sub1 = createMockSubscription(1, "sub1");
final SubscriptionInfo sub2 = createMockSubscription(2, "sub2");
diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java
index ba152b9..3404ca2 100644
--- a/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java
@@ -16,13 +16,9 @@
package com.android.settings.network;
-import static android.telephony.TelephonyManager.MultiSimVariants.DSDS;
-import static android.telephony.TelephonyManager.MultiSimVariants.UNKNOWN;
-
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.ArgumentMatchers.notNull;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.mock;
@@ -37,7 +33,6 @@
import android.net.ConnectivityManager;
import android.provider.Settings;
import android.telephony.SubscriptionInfo;
-import android.telephony.TelephonyManager;
import android.telephony.euicc.EuiccManager;
import android.text.TextUtils;
@@ -64,8 +59,6 @@
@Mock
private Lifecycle mLifecycle;
@Mock
- private TelephonyManager mTelephonyManager;
- @Mock
private EuiccManager mEuiccManager;
@Mock
private PreferenceScreen mPreferenceScreen;
@@ -78,9 +71,7 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(Robolectric.setupActivity(Activity.class));
- when(mContext.getSystemService(eq(TelephonyManager.class))).thenReturn(mTelephonyManager);
when(mContext.getSystemService(EuiccManager.class)).thenReturn(mEuiccManager);
- when(mTelephonyManager.getMultiSimConfiguration()).thenReturn(UNKNOWN);
when(mEuiccManager.isEnabled()).thenReturn(true);
mController = new MobileNetworkSummaryController(mContext, mLifecycle);
@@ -97,7 +88,7 @@
@Test
public void isAvailable_wifiOnlyMode_notAvailable() {
- ConnectivityManager cm = mock(ConnectivityManager.class);
+ final ConnectivityManager cm = mock(ConnectivityManager.class);
when(cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(false);
when(mContext.getSystemService(ConnectivityManager.class)).thenReturn(cm);
assertThat(mController.isAvailable()).isFalse();
@@ -212,24 +203,7 @@
}
@Test
- public void addButton_noSubscriptionsSingleSimMode_noAddClickListener() {
- mController.displayPreference(mPreferenceScreen);
- mController.onResume();
- verify(mPreference, never()).setOnAddClickListener(notNull());
- }
-
- @Test
- public void addButton_oneSubscriptionSingleSimMode_noAddClickListener() {
- final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
- SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1));
- mController.displayPreference(mPreferenceScreen);
- mController.onResume();
- verify(mPreference, never()).setOnAddClickListener(notNull());
- }
-
- @Test
- public void addButton_noSubscriptionsMultiSimModeNoEuiccMgr_noAddClickListener() {
- when(mTelephonyManager.getMultiSimConfiguration()).thenReturn(DSDS);
+ public void addButton_noSubscriptionsNoEuiccMgr_noAddClickListener() {
when(mEuiccManager.isEnabled()).thenReturn(false);
mController.displayPreference(mPreferenceScreen);
mController.onResume();
@@ -237,41 +211,43 @@
}
@Test
- public void addButton_noSubscriptionsMultiSimMode_hasAddClickListenerAndPrefDisabled() {
- when(mTelephonyManager.getMultiSimConfiguration()).thenReturn(DSDS);
- mController.displayPreference(mPreferenceScreen);
- mController.onResume();
- assertThat(mPreference.isEnabled()).isFalse();
- verify(mPreference, never()).setOnAddClickListener(isNull());
- verify(mPreference).setOnAddClickListener(notNull());
- }
-
- @Test
- public void addButton_oneSubscriptionMultiSimMode_hasAddClickListener() {
- when(mTelephonyManager.getMultiSimConfiguration()).thenReturn(DSDS);
+ public void addButton_oneSubscriptionNoEuiccMgr_noAddClickListener() {
+ when(mEuiccManager.isEnabled()).thenReturn(false);
final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1));
mController.displayPreference(mPreferenceScreen);
mController.onResume();
- verify(mPreference, never()).setOnAddClickListener(isNull());
+ verify(mPreference, never()).setOnAddClickListener(notNull());
+ }
+
+ @Test
+ public void addButton_noSubscriptions_noAddClickListener() {
+ mController.displayPreference(mPreferenceScreen);
+ mController.onResume();
+ verify(mPreference, never()).setOnAddClickListener(notNull());
+ }
+
+ @Test
+ public void addButton_oneSubscription_hasAddClickListener() {
+ final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
+ SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1));
+ mController.displayPreference(mPreferenceScreen);
+ mController.onResume();
verify(mPreference).setOnAddClickListener(notNull());
}
@Test
- public void addButton_twoSubscriptionsMultiSimMode_hasAddClickListener() {
- when(mTelephonyManager.getMultiSimConfiguration()).thenReturn(DSDS);
+ public void addButton_twoSubscriptions_hasAddClickListener() {
final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
final SubscriptionInfo sub2 = mock(SubscriptionInfo.class);
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2));
mController.displayPreference(mPreferenceScreen);
mController.onResume();
- verify(mPreference, never()).setOnAddClickListener(isNull());
verify(mPreference).setOnAddClickListener(notNull());
}
@Test
public void addButton_oneSubscriptionAirplaneModeTurnedOn_addButtonGetsDisabled() {
- when(mTelephonyManager.getMultiSimConfiguration()).thenReturn(DSDS);
final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1));
mController.displayPreference(mPreferenceScreen);
@@ -280,14 +256,13 @@
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
mController.onAirplaneModeChanged(true);
- ArgumentCaptor<Boolean> captor = ArgumentCaptor.forClass(Boolean.class);
+ final ArgumentCaptor<Boolean> captor = ArgumentCaptor.forClass(Boolean.class);
verify(mPreference, atLeastOnce()).setAddWidgetEnabled(captor.capture());
assertThat(captor.getValue()).isFalse();
}
@Test
public void onResume_oneSubscriptionAirplaneMode_isDisabled() {
- when(mTelephonyManager.getMultiSimConfiguration()).thenReturn(DSDS);
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1));
@@ -296,7 +271,7 @@
assertThat(mPreference.isEnabled()).isFalse();
- ArgumentCaptor<Boolean> captor = ArgumentCaptor.forClass(Boolean.class);
+ final ArgumentCaptor<Boolean> captor = ArgumentCaptor.forClass(Boolean.class);
verify(mPreference, atLeastOnce()).setAddWidgetEnabled(captor.capture());
assertThat(captor.getValue()).isFalse();
}
@@ -318,7 +293,6 @@
@Test
public void onAirplaneModeChanged_oneSubscriptionAirplaneModeGetsTurnedOff_isEnabled() {
- when(mTelephonyManager.getMultiSimConfiguration()).thenReturn(DSDS);
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1));
@@ -332,7 +306,7 @@
assertThat(mPreference.isEnabled()).isTrue();
- ArgumentCaptor<Boolean> captor = ArgumentCaptor.forClass(Boolean.class);
+ final ArgumentCaptor<Boolean> captor = ArgumentCaptor.forClass(Boolean.class);
verify(mPreference, atLeastOnce()).setAddWidgetEnabled(eq(false));
verify(mPreference, atLeastOnce()).setAddWidgetEnabled(captor.capture());
assertThat(captor.getValue()).isTrue();
diff --git a/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
index 2135331..e04262f 100644
--- a/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
@@ -16,6 +16,8 @@
package com.android.settings.network;
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;
@@ -24,8 +26,10 @@
import android.os.UserManager;
import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
+import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settings.wifi.WifiMasterSwitchPreferenceController;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -39,7 +43,7 @@
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowRestrictedLockUtilsInternal.class)
+@Config(shadows = {ShadowRestrictedLockUtilsInternal.class, ShadowUtils.class})
public class TopLevelNetworkEntryPreferenceControllerTest {
@Mock
@@ -70,6 +74,17 @@
mTetherPreferenceController);
}
+ @After
+ public void tearDown() {
+ ShadowUtils.reset();
+ }
+
+ @Test
+ public void getAvailabilityStatus_demoUser_unsupported() {
+ ShadowUtils.setIsDemoUser(true);
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+ }
+
@Test
public void getSummary_hasMobileAndHotspot_shouldReturnMobileSummary() {
when(mWifiPreferenceController.isAvailable()).thenReturn(true);
diff --git a/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java b/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java
index 072c835..a9882d9 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java
@@ -22,7 +22,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -43,7 +42,6 @@
import com.android.ims.ImsManager;
import com.android.settings.R;
-import com.android.settings.slices.CustomSliceManager;
import com.android.settings.slices.CustomSliceRegistry;
import com.android.settings.slices.SettingsSliceProvider;
import com.android.settings.slices.SliceBroadcastReceiver;
@@ -85,10 +83,6 @@
mFeatureFactory = FakeFeatureFactory.setupForTest();
mSlicesFeatureProvider = mFeatureFactory.getSlicesFeatureProvider();
- CustomSliceManager manager = new CustomSliceManager(mContext);
- when(mSlicesFeatureProvider.getCustomSliceManager(any(Context.class)))
- .thenReturn(manager);
-
//setup for SettingsSliceProvider tests
mProvider = spy(new SettingsSliceProvider());
doReturn(mContext).when(mProvider).getContext();
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 c497cf8..e488d0c 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java
@@ -24,6 +24,7 @@
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.provider.Settings;
@@ -162,4 +163,27 @@
assertThat(isMobileDataEnabled).isEqualTo(seed);
}
+
+ @Test
+ public void airplaneModeEnabled_slicePrimaryActionIsEmpty() {
+ doReturn(true).when(mMobileDataSlice).isAirplaneModeEnabled();
+ doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(SUB_ID);
+ final Slice mobileData = mMobileDataSlice.getSlice();
+
+ final SliceMetadata metadata = SliceMetadata.from(mContext, mobileData);
+ assertThat(metadata.getTitle())
+ .isEqualTo(mContext.getString(R.string.mobile_data_settings_title));
+
+ assertThat(metadata.getSubtitle())
+ .isEqualTo(mContext.getString(R.string.mobile_data_ap_mode_disabled));
+
+ 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();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
index 55a4224..011bca5 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
@@ -30,6 +30,8 @@
import android.provider.Settings;
import android.telephony.TelephonyManager;
+import androidx.fragment.app.FragmentActivity;
+
import com.android.settings.core.FeatureFlags;
import com.android.settings.datausage.DataUsageSummaryPreferenceController;
import com.android.settings.development.featureflags.FeatureFlagPersistent;
@@ -48,8 +50,6 @@
import java.util.List;
-import androidx.fragment.app.FragmentActivity;
-
@RunWith(RobolectricTestRunner.class)
@Config(shadows = ShadowEntityHeaderController.class)
public class MobileNetworkSettingsTest {
@@ -86,6 +86,7 @@
@Test
public void onAttach_noV2Flag_noCrash() {
+ FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, false);
mFragment.onAttach(mContext);
}
@@ -97,6 +98,7 @@
@Test
public void createPreferenceControllers_noV2Flag_noDataUsageSummaryController() {
+ FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, false);
final List<AbstractPreferenceController> controllers =
mFragment.createPreferenceControllers(mContext);
assertThat(controllers.stream().filter(
diff --git a/tests/robotests/src/com/android/settings/notification/AppNotificationSettingsTest.java b/tests/robotests/src/com/android/settings/notification/AppNotificationSettingsTest.java
new file mode 100644
index 0000000..9555a56
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/AppNotificationSettingsTest.java
@@ -0,0 +1,93 @@
+package com.android.settings.notification;
+
+import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.view.Window;
+import android.view.WindowManager;
+
+import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.FragmentManager;
+
+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.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+@RunWith(RobolectricTestRunner.class)
+public class AppNotificationSettingsTest {
+
+ private WindowManager.LayoutParams mLayoutParams;
+ private AppNotificationSettings mFragment;
+ private FragmentActivity mActivity;
+ @Mock
+ private Window mWindow;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mLayoutParams = new WindowManager.LayoutParams();
+ mActivity = spy(Robolectric.setupActivity(FragmentActivity.class));
+ mFragment = spy(new AppNotificationSettings());
+ when(mFragment.getActivity()).thenReturn(mActivity);
+ when(mFragment.getFragmentManager()).thenReturn(mock(FragmentManager.class));
+ when(mActivity.getWindow()).thenReturn(mWindow);
+ when(mWindow.getAttributes()).thenReturn(mLayoutParams);
+ }
+
+ @Test
+ @Config(shadows = {ShadowNotificationSettingsBase.class})
+ public void onResume_shouldHideSystemOverlay() {
+ mFragment.onResume();
+
+ verify(mWindow).addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+ }
+
+ @Test
+ @Config(shadows = {ShadowNotificationSettingsBase.class})
+ public void onPause_shouldRemoveHideSystemOverlay() {
+ mFragment.onResume();
+
+ verify(mWindow).addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+
+ mFragment.onPause();
+
+ // There's no Window.clearPrivateFlags() method, so the Window.attributes are updated.
+ ArgumentCaptor<WindowManager.LayoutParams> paramCaptor = ArgumentCaptor.forClass(
+ WindowManager.LayoutParams.class);
+ verify(mWindow).setAttributes(paramCaptor.capture());
+ assertEquals(0,
+ paramCaptor.getValue().privateFlags
+ & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+ }
+
+ @Implements(NotificationSettingsBase.class)
+ public static class ShadowNotificationSettingsBase {
+
+ protected void __constructor__() {
+ // Do nothing
+ }
+
+ @Implementation
+ protected void onResume() {
+ // No-op.
+ }
+
+ @Implementation
+ protected void onPause() {
+ // No-op.
+ }
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java
index 4f6944a..bdbf40a 100644
--- a/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BlockPreferenceControllerTest.java
@@ -111,6 +111,26 @@
}
@Test
+ public void testIsAvailable_notIfChannelNonDefault() {
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ appRow.systemApp = true;
+ NotificationChannel channel = mock(NotificationChannel.class);
+ when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
+ mController.onResume(appRow, channel, null, null);
+ assertFalse(mController.isAvailable());
+ }
+
+ @Test
+ public void testIsAvailable_ifChannelDefault() {
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ NotificationChannel channel = mock(NotificationChannel.class);
+ when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
+ when(channel.getId()).thenReturn(DEFAULT_CHANNEL_ID);
+ mController.onResume(appRow, channel, null, null);
+ assertTrue(mController.isAvailable());
+ }
+
+ @Test
public void testIsAvailable_notIfGroupNotBlockable() {
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
appRow.systemApp = true;
diff --git a/tests/robotests/src/com/android/settings/notification/HighImportancePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/HighImportancePreferenceControllerTest.java
new file mode 100644
index 0000000..6e6dad4
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/HighImportancePreferenceControllerTest.java
@@ -0,0 +1,199 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import static android.app.NotificationChannel.DEFAULT_CHANNEL_ID;
+import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
+import static android.app.NotificationManager.IMPORTANCE_HIGH;
+import static android.app.NotificationManager.IMPORTANCE_NONE;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.content.Context;
+import android.os.UserManager;
+
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedSwitchPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadows.ShadowApplication;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+@RunWith(RobolectricTestRunner.class)
+public class HighImportancePreferenceControllerTest {
+
+ private Context mContext;
+ @Mock
+ private NotificationManager mNm;
+ @Mock
+ private NotificationBackend mBackend;
+ @Mock
+ private NotificationSettingsBase.ImportanceListener mImportanceListener;
+ @Mock
+ private UserManager mUm;
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private PreferenceScreen mScreen;
+
+ private HighImportancePreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ ShadowApplication shadowApplication = ShadowApplication.getInstance();
+ shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
+ shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
+ mContext = RuntimeEnvironment.application;
+ mController = spy(new HighImportancePreferenceController(
+ mContext, mImportanceListener, mBackend));
+ }
+
+ @Test
+ public void testNoCrashIfNoOnResume() {
+ mController.isAvailable();
+ mController.updateState(mock(Preference.class));
+ }
+
+ @Test
+ public void testIsAvailable_notIfNull() {
+ mController.onResume(null, null, null, null);
+ assertFalse(mController.isAvailable());
+ }
+
+ @Test
+ public void testIsAvailable_ifAppBlocked() {
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ appRow.banned = true;
+ mController.onResume(appRow, mock(NotificationChannel.class), null, null);
+ assertFalse(mController.isAvailable());
+ }
+
+ @Test
+ public void testIsAvailable_notIfChannelBlocked() {
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ NotificationChannel channel = mock(NotificationChannel.class);
+ when(channel.getImportance()).thenReturn(IMPORTANCE_NONE);
+ mController.onResume(appRow, channel, null, null);
+ assertFalse(mController.isAvailable());
+ }
+
+ @Test
+ public void testIsAvailable_notForDefaultChannel() {
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ NotificationChannel channel = mock(NotificationChannel.class);
+ when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
+ when(channel.getId()).thenReturn(DEFAULT_CHANNEL_ID);
+ mController.onResume(appRow, channel, null, null);
+ assertFalse(mController.isAvailable());
+ }
+
+ @Test
+ public void testIsAvailable() {
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ NotificationChannel channel = mock(NotificationChannel.class);
+ when(channel.getImportance()).thenReturn(IMPORTANCE_DEFAULT);
+ mController.onResume(appRow, channel, null, null);
+ assertTrue(mController.isAvailable());
+ }
+
+ @Test
+ public void testUpdateState_disabledByAdmin() {
+ NotificationChannel channel = mock(NotificationChannel.class);
+ when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
+ mController.onResume(new NotificationBackend.AppRow(), channel, null, mock(
+ RestrictedLockUtils.EnforcedAdmin.class));
+
+ Preference pref = new RestrictedSwitchPreference(mContext, null);
+ mController.updateState(pref);
+
+ assertFalse(pref.isEnabled());
+ }
+
+ @Test
+ public void testUpdateState_notConfigurable() {
+ String lockedId = "locked";
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ appRow.lockedChannelId = lockedId;
+ NotificationChannel channel = mock(NotificationChannel.class);
+ when(channel.getId()).thenReturn(lockedId);
+ when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
+ mController.onResume(appRow, channel, null, null);
+
+ Preference pref = new RestrictedSwitchPreference(mContext, null);
+ mController.updateState(pref);
+
+ assertFalse(pref.isEnabled());
+ }
+
+ @Test
+ public void testUpdateState_high() {
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_HIGH);
+ mController.onResume(appRow, channel, null, null);
+
+ RestrictedSwitchPreference pref = new RestrictedSwitchPreference(mContext);
+ mController.updateState(pref);
+
+ assertTrue(pref.isChecked());
+ }
+
+ @Test
+ public void testUpdateState_default() {
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_DEFAULT);
+ mController.onResume(appRow, channel, null, null);
+
+ RestrictedSwitchPreference pref = new RestrictedSwitchPreference(mContext);
+ mController.updateState(pref);
+
+ assertFalse(pref.isChecked());
+ }
+
+ @Test
+ public void onPreferenceChange() {
+ NotificationChannel channel =
+ new NotificationChannel(DEFAULT_CHANNEL_ID, "a", IMPORTANCE_HIGH);
+ mController.onResume(new NotificationBackend.AppRow(), channel, null, null);
+
+ RestrictedSwitchPreference pref = new RestrictedSwitchPreference(mContext, null);
+ when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(pref);
+ mController.displayPreference(mScreen);
+ mController.updateState(pref);
+
+ mController.onPreferenceChange(pref, false);
+
+ assertEquals(IMPORTANCE_DEFAULT, channel.getImportance());
+ verify(mImportanceListener, times(1)).onImportanceChanged();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/ImportancePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ImportancePreferenceControllerTest.java
index 99d3376..c180ace 100644
--- a/tests/robotests/src/com/android/settings/notification/ImportancePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ImportancePreferenceControllerTest.java
@@ -27,8 +27,11 @@
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.Notification;
@@ -36,12 +39,10 @@
import android.app.NotificationManager;
import android.content.Context;
import android.os.UserManager;
-import android.text.TextUtils;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
-import com.android.settings.RestrictedListPreference;
import com.android.settingslib.RestrictedLockUtils;
import org.junit.Before;
@@ -95,20 +96,20 @@
}
@Test
- public void testIsAvailable_notIfAppBlocked() {
+ public void testIsAvailable_ifAppBlocked() {
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
appRow.banned = true;
mController.onResume(appRow, mock(NotificationChannel.class), null, null);
- assertFalse(mController.isAvailable());
+ assertTrue(mController.isAvailable());
}
@Test
- public void testIsAvailable_notIfChannelBlocked() {
+ public void testIsAvailable_evenIfChannelBlocked() {
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
NotificationChannel channel = mock(NotificationChannel.class);
when(channel.getImportance()).thenReturn(IMPORTANCE_NONE);
mController.onResume(appRow, channel, null, null);
- assertFalse(mController.isAvailable());
+ assertTrue(mController.isAvailable());
}
@Test
@@ -137,11 +138,10 @@
mController.onResume(new NotificationBackend.AppRow(), channel, null, mock(
RestrictedLockUtils.EnforcedAdmin.class));
- Preference pref = new RestrictedListPreference(mContext, null);
+ Preference pref = new ImportancePreference(mContext, null);
mController.updateState(pref);
assertFalse(pref.isEnabled());
- assertFalse(TextUtils.isEmpty(pref.getSummary()));
}
@Test
@@ -154,11 +154,10 @@
when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
mController.onResume(appRow, channel, null, null);
- Preference pref = new RestrictedListPreference(mContext, null);
+ Preference pref = new ImportancePreference(mContext, null);
mController.updateState(pref);
assertFalse(pref.isEnabled());
- assertFalse(TextUtils.isEmpty(pref.getSummary()));
}
@Test
@@ -167,11 +166,12 @@
NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_HIGH);
mController.onResume(appRow, channel, null, null);
- Preference pref = new RestrictedListPreference(mContext, null);
+ ImportancePreference pref = mock(ImportancePreference.class);
mController.updateState(pref);
- assertTrue(pref.isEnabled());
- assertFalse(TextUtils.isEmpty(pref.getSummary()));
+ verify(pref, times(1)).setConfigurable(anyBoolean());
+ verify(pref, times(1)).setBlockable(anyBoolean());
+ verify(pref, times(1)).setImportance(IMPORTANCE_HIGH);
}
@Test
@@ -181,13 +181,12 @@
channel.setSound(null, Notification.AUDIO_ATTRIBUTES_DEFAULT);
mController.onResume(new NotificationBackend.AppRow(), channel, null, null);
- RestrictedListPreference pref = new RestrictedListPreference(mContext, null);
+ ImportancePreference pref = new ImportancePreference(mContext, null);
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(pref);
mController.displayPreference(mScreen);
mController.updateState(pref);
- pref.setValue(String.valueOf(IMPORTANCE_HIGH));
- mController.onPreferenceChange(pref, pref.getValue());
+ mController.onPreferenceChange(pref, IMPORTANCE_HIGH);
assertEquals(IMPORTANCE_HIGH, channel.getImportance());
assertNotNull(channel.getSound());
@@ -200,13 +199,12 @@
channel.setSound(null, Notification.AUDIO_ATTRIBUTES_DEFAULT);
mController.onResume(new NotificationBackend.AppRow(), channel, null, null);
- RestrictedListPreference pref = new RestrictedListPreference(mContext, null);
+ ImportancePreference pref = new ImportancePreference(mContext, null);
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(pref);
mController.displayPreference(mScreen);
mController.updateState(pref);
- pref.setValue(String.valueOf(IMPORTANCE_LOW));
- mController.onPreferenceChange(pref, pref.getValue());
+ mController.onPreferenceChange(pref, IMPORTANCE_LOW);
assertEquals(IMPORTANCE_LOW, channel.getImportance());
assertNull(channel.getSound());
diff --git a/tests/robotests/src/com/android/settings/notification/ImportancePreferenceTest.java b/tests/robotests/src/com/android/settings/notification/ImportancePreferenceTest.java
new file mode 100644
index 0000000..eebfbd1
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/ImportancePreferenceTest.java
@@ -0,0 +1,192 @@
+/*
+ * 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.notification;
+
+import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
+import static android.app.NotificationManager.IMPORTANCE_LOW;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
+import android.graphics.drawable.LayerDrawable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ImageButton;
+import android.widget.LinearLayout;
+import android.widget.Switch;
+
+import com.android.settings.R;
+import com.android.settingslib.RestrictedLockUtils;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+@RunWith(RobolectricTestRunner.class)
+public class ImportancePreferenceTest {
+
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ mContext = RuntimeEnvironment.application;
+ }
+
+ private GradientDrawable getBackground(ImageButton button) {
+ return (GradientDrawable) ((LayerDrawable) button.getDrawable())
+ .findDrawableByLayerId(R.id.back);
+ }
+
+ @Test
+ public void createNewPreference_shouldSetLayout() {
+ final ImportancePreference preference = new ImportancePreference(mContext);
+ assertThat(preference.getLayoutResource()).isEqualTo(
+ R.layout.notif_importance_preference);
+ }
+
+ @Test
+ public void onBindViewHolder_hideBlockNonBlockable() {
+ final ImportancePreference preference = new ImportancePreference(mContext);
+ final LayoutInflater inflater = LayoutInflater.from(mContext);
+ final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
+ inflater.inflate(R.layout.notif_importance_preference, null));
+
+ preference.setBlockable(false);
+ preference.setConfigurable(true);
+ preference.setImportance(IMPORTANCE_DEFAULT);
+ preference.onBindViewHolder(holder);
+
+ assertThat(holder.itemView.findViewById(R.id.block).getVisibility()).isEqualTo(View.GONE);
+ }
+
+ @Test
+ public void onBindViewHolder_hideNonSelectedNonConfigurable() {
+ final ImportancePreference preference = new ImportancePreference(mContext);
+ final LayoutInflater inflater = LayoutInflater.from(mContext);
+ PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
+ inflater.inflate(R.layout.notif_importance_preference, null));
+
+ preference.setBlockable(true);
+ preference.setConfigurable(false);
+ preference.setImportance(IMPORTANCE_DEFAULT);
+ preference.onBindViewHolder(holder);
+
+ assertThat(holder.itemView.findViewById(R.id.block).getVisibility()).isEqualTo(View.GONE);
+ assertThat(holder.itemView.findViewById(R.id.silence).getVisibility()).isEqualTo(View.GONE);
+ assertThat(holder.itemView.findViewById(R.id.alert).getVisibility())
+ .isEqualTo(View.VISIBLE);
+
+ // other button
+ preference.setImportance(IMPORTANCE_LOW);
+ holder = PreferenceViewHolder.createInstanceForTests(
+ inflater.inflate(R.layout.notif_importance_preference, null));
+ preference.onBindViewHolder(holder);
+
+ assertThat(holder.itemView.findViewById(R.id.block).getVisibility()).isEqualTo(View.GONE);
+ assertThat(holder.itemView.findViewById(R.id.silence).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ assertThat(holder.itemView.findViewById(R.id.alert).getVisibility())
+ .isEqualTo(View.GONE);
+ }
+
+ @Test
+ public void onBindViewHolder_selectButton() {
+ final ImportancePreference preference = new ImportancePreference(mContext);
+ final LayoutInflater inflater = LayoutInflater.from(mContext);
+ final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
+ inflater.inflate(R.layout.notif_importance_preference, null));
+
+ preference.setBlockable(true);
+ preference.setConfigurable(true);
+ preference.setImportance(IMPORTANCE_DEFAULT);
+
+ ImageButton blockButton = (ImageButton) holder.findViewById(R.id.block_icon);
+ ImageButton silenceButton = (ImageButton) holder.findViewById(R.id.silence_icon);
+ ImageButton alertButton = (ImageButton) holder.findViewById(R.id.alert_icon);
+
+ preference.onBindViewHolder(holder);
+
+ // selected has full color background. others are transparent
+ assertThat(getBackground(alertButton).getColor().getColors()[0]).isNotEqualTo(
+ Color.TRANSPARENT);
+ assertThat(getBackground(silenceButton).getColor().getColors()[0]).isEqualTo(
+ Color.TRANSPARENT);
+ assertThat(getBackground(blockButton).getColor().getColors()[0]).isEqualTo(
+ Color.TRANSPARENT);
+ }
+
+ @Test
+ public void onClick_changesUICallsListener() {
+ final ImportancePreference preference = spy(new ImportancePreference(mContext));
+ final LayoutInflater inflater = LayoutInflater.from(mContext);
+ final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
+ inflater.inflate(R.layout.notif_importance_preference, null));
+
+ preference.setBlockable(true);
+ preference.setConfigurable(true);
+ preference.setImportance(IMPORTANCE_DEFAULT);
+ preference.onBindViewHolder(holder);
+
+ ImageButton blockButton = (ImageButton) holder.findViewById(R.id.block_icon);
+ ImageButton silenceButton = (ImageButton) holder.findViewById(R.id.silence_icon);
+ ImageButton alertButton = (ImageButton) holder.findViewById(R.id.alert_icon);
+
+ silenceButton.callOnClick();
+
+ // selected has full color background. others are transparent
+ assertThat(getBackground(silenceButton).getColor().getColors()[0]).isNotEqualTo(
+ Color.TRANSPARENT);
+ assertThat(getBackground(alertButton).getColor().getColors()[0]).isEqualTo(
+ Color.TRANSPARENT);
+ assertThat(getBackground(blockButton).getColor().getColors()[0]).isEqualTo(
+ Color.TRANSPARENT);
+
+ verify(preference, times(1)).callChangeListener(IMPORTANCE_LOW);
+ }
+
+ @Test
+ public void onBindViewHolder_allButtonsVisible() {
+ final ImportancePreference preference = new ImportancePreference(mContext);
+ final LayoutInflater inflater = LayoutInflater.from(mContext);
+ final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
+ inflater.inflate(R.layout.notif_importance_preference, null));
+
+ preference.setBlockable(true);
+ preference.setConfigurable(true);
+ preference.onBindViewHolder(holder);
+
+ assertThat(holder.itemView.findViewById(R.id.block).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ assertThat(holder.itemView.findViewById(R.id.silence).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ assertThat(holder.itemView.findViewById(R.id.alert).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/MinImportancePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/MinImportancePreferenceControllerTest.java
new file mode 100644
index 0000000..28058a4
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/MinImportancePreferenceControllerTest.java
@@ -0,0 +1,199 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import static android.app.NotificationChannel.DEFAULT_CHANNEL_ID;
+import static android.app.NotificationManager.IMPORTANCE_LOW;
+import static android.app.NotificationManager.IMPORTANCE_MIN;
+import static android.app.NotificationManager.IMPORTANCE_NONE;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.content.Context;
+import android.os.UserManager;
+
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedSwitchPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadows.ShadowApplication;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+@RunWith(RobolectricTestRunner.class)
+public class MinImportancePreferenceControllerTest {
+
+ private Context mContext;
+ @Mock
+ private NotificationManager mNm;
+ @Mock
+ private NotificationBackend mBackend;
+ @Mock
+ private NotificationSettingsBase.ImportanceListener mImportanceListener;
+ @Mock
+ private UserManager mUm;
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private PreferenceScreen mScreen;
+
+ private MinImportancePreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ ShadowApplication shadowApplication = ShadowApplication.getInstance();
+ shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
+ shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
+ mContext = RuntimeEnvironment.application;
+ mController = spy(new MinImportancePreferenceController(
+ mContext, mImportanceListener, mBackend));
+ }
+
+ @Test
+ public void testNoCrashIfNoOnResume() {
+ mController.isAvailable();
+ mController.updateState(mock(Preference.class));
+ }
+
+ @Test
+ public void testIsAvailable_notIfNull() {
+ mController.onResume(null, null, null, null);
+ assertFalse(mController.isAvailable());
+ }
+
+ @Test
+ public void testIsAvailable_ifAppBlocked() {
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ appRow.banned = true;
+ mController.onResume(appRow, mock(NotificationChannel.class), null, null);
+ assertFalse(mController.isAvailable());
+ }
+
+ @Test
+ public void testIsAvailable_notIfChannelBlocked() {
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ NotificationChannel channel = mock(NotificationChannel.class);
+ when(channel.getImportance()).thenReturn(IMPORTANCE_NONE);
+ mController.onResume(appRow, channel, null, null);
+ assertFalse(mController.isAvailable());
+ }
+
+ @Test
+ public void testIsAvailable_notForDefaultChannel() {
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ NotificationChannel channel = mock(NotificationChannel.class);
+ when(channel.getImportance()).thenReturn(IMPORTANCE_LOW);
+ when(channel.getId()).thenReturn(DEFAULT_CHANNEL_ID);
+ mController.onResume(appRow, channel, null, null);
+ assertFalse(mController.isAvailable());
+ }
+
+ @Test
+ public void testIsAvailable() {
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ NotificationChannel channel = mock(NotificationChannel.class);
+ when(channel.getImportance()).thenReturn(IMPORTANCE_LOW);
+ mController.onResume(appRow, channel, null, null);
+ assertTrue(mController.isAvailable());
+ }
+
+ @Test
+ public void testUpdateState_disabledByAdmin() {
+ NotificationChannel channel = mock(NotificationChannel.class);
+ when(channel.getImportance()).thenReturn(IMPORTANCE_LOW);
+ mController.onResume(new NotificationBackend.AppRow(), channel, null, mock(
+ RestrictedLockUtils.EnforcedAdmin.class));
+
+ Preference pref = new RestrictedSwitchPreference(mContext, null);
+ mController.updateState(pref);
+
+ assertFalse(pref.isEnabled());
+ }
+
+ @Test
+ public void testUpdateState_notConfigurable() {
+ String lockedId = "locked";
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ appRow.lockedChannelId = lockedId;
+ NotificationChannel channel = mock(NotificationChannel.class);
+ when(channel.getId()).thenReturn(lockedId);
+ when(channel.getImportance()).thenReturn(IMPORTANCE_LOW);
+ mController.onResume(appRow, channel, null, null);
+
+ Preference pref = new RestrictedSwitchPreference(mContext, null);
+ mController.updateState(pref);
+
+ assertFalse(pref.isEnabled());
+ }
+
+ @Test
+ public void testUpdateState_min() {
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_MIN);
+ mController.onResume(appRow, channel, null, null);
+
+ RestrictedSwitchPreference pref = new RestrictedSwitchPreference(mContext);
+ mController.updateState(pref);
+
+ assertTrue(pref.isChecked());
+ }
+
+ @Test
+ public void testUpdateState_low() {
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ NotificationChannel channel = new NotificationChannel("", "", IMPORTANCE_LOW);
+ mController.onResume(appRow, channel, null, null);
+
+ RestrictedSwitchPreference pref = new RestrictedSwitchPreference(mContext);
+ mController.updateState(pref);
+
+ assertFalse(pref.isChecked());
+ }
+
+ @Test
+ public void onPreferenceChange() {
+ NotificationChannel channel =
+ new NotificationChannel(DEFAULT_CHANNEL_ID, "a", IMPORTANCE_LOW);
+ mController.onResume(new NotificationBackend.AppRow(), channel, null, null);
+
+ RestrictedSwitchPreference pref = new RestrictedSwitchPreference(mContext, null);
+ when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(pref);
+ mController.displayPreference(mScreen);
+ mController.updateState(pref);
+
+ mController.onPreferenceChange(pref, true);
+
+ assertEquals(IMPORTANCE_MIN, channel.getImportance());
+ verify(mImportanceListener, times(1)).onImportanceChanged();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationAssistantPickerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationAssistantPickerTest.java
index 6b6ed02..8f63201 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationAssistantPickerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationAssistantPickerTest.java
@@ -16,11 +16,11 @@
package com.android.settings.notification;
-import static org.junit.Assert.fail;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.RETURNS_SMART_NULLS;
@@ -40,16 +40,20 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.mockito.invocation.InvocationOnMock;
+import org.robolectric.RobolectricTestRunner;
import java.util.ArrayList;
import java.util.List;
-import org.mockito.invocation.InvocationOnMock;
-import org.robolectric.RobolectricTestRunner;
-
@RunWith(RobolectricTestRunner.class)
public class NotificationAssistantPickerTest {
+ private static final String TEST_PKG = "test.package";
+ private static final String TEST_SRV = "test.component";
+ private static final String TEST_CMP = TEST_PKG + "/" + TEST_SRV;
+ private static final String TEST_NAME = "Test name";
+ private static final ComponentName TEST_COMPONENT = ComponentName.unflattenFromString(TEST_CMP);
private NotificationAssistantPicker mFragment;
@Mock
private Context mContext;
@@ -57,15 +61,11 @@
private PackageManager mPackageManager;
@Mock
private NotificationBackend mNotificationBackend;
- private static final String TEST_PKG = "test.package";
- private static final String TEST_SRV = "test.component";
- private static final String TEST_CMP = TEST_PKG + "/" + TEST_SRV;
- private static final String TEST_NAME = "Test name";
- private static final ComponentName TEST_COMPONENT = ComponentName.unflattenFromString(TEST_CMP);
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
+ when(mContext.getPackageManager()).thenReturn(mPackageManager);
mFragment = new TestNotificationAssistantPicker(mContext, mPackageManager,
mNotificationBackend);
}
@@ -132,7 +132,7 @@
public void noDialogOnNoAssistantSelected() {
when(mContext.getString(anyInt(), anyString())).thenAnswer(
(InvocationOnMock invocation) -> {
- return invocation.getArgument(1);
+ return invocation.getArgument(1);
});
assertNull(mFragment.getConfirmationMessage(
new NotificationAssistantPicker.CandidateNone(mContext)));
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java
index 1ad9378..2368af5 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationPreferenceControllerTest.java
@@ -219,6 +219,20 @@
}
@Test
+ public void testIsConfigurable_appLevel() {
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ appRow.lockedChannelId = "something";
+ appRow.lockedImportance = true;
+
+ mController.onResume(appRow, mock(NotificationChannel.class), null, null);
+ assertFalse(mController.isChannelConfigurable());
+
+ appRow.lockedImportance = false;
+ mController.onResume(appRow, mock(NotificationChannel.class), null, null);
+ assertTrue(mController.isChannelConfigurable());
+ }
+
+ @Test
public void testIsChannelBlockable_nonSystemAppsBlockable() {
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
appRow.systemApp = false;
diff --git a/tests/robotests/src/com/android/settings/notification/RemoteVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/RemoteVolumePreferenceControllerTest.java
new file mode 100644
index 0000000..1e68de5
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/RemoteVolumePreferenceControllerTest.java
@@ -0,0 +1,197 @@
+/*
+ * 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.notification;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.media.session.ISessionController;
+import android.media.session.MediaController;
+import android.media.session.MediaSession;
+import android.media.session.MediaSessionManager;
+
+import com.android.settings.R;
+
+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.List;
+
+@RunWith(RobolectricTestRunner.class)
+public class RemoteVolumePreferenceControllerTest {
+ private static final int CURRENT_POS = 5;
+ private static final int MAX_POS = 10;
+
+ @Mock
+ private MediaSessionManager mMediaSessionManager;
+ @Mock
+ private MediaController mMediaController;
+ @Mock
+ private ISessionController mStub;
+ @Mock
+ private ISessionController mStub2;
+ private MediaSession.Token mToken;
+ private MediaSession.Token mToken2;
+ private RemoteVolumePreferenceController mController;
+ private Context mContext;
+ private List<MediaController> mActiveSessions;
+ private MediaController.PlaybackInfo mPlaybackInfo;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mContext = spy(RuntimeEnvironment.application);
+ when(mContext.getSystemService(MediaSessionManager.class)).thenReturn(mMediaSessionManager);
+ mActiveSessions = new ArrayList<>();
+ mActiveSessions.add(mMediaController);
+ when(mMediaSessionManager.getActiveSessions(null)).thenReturn(
+ mActiveSessions);
+ mToken = new MediaSession.Token(mStub);
+ mToken2 = new MediaSession.Token(mStub2);
+
+ mController = new RemoteVolumePreferenceController(mContext);
+ mPlaybackInfo = new MediaController.PlaybackInfo(
+ MediaController.PlaybackInfo.PLAYBACK_TYPE_REMOTE, 0, MAX_POS, CURRENT_POS, null);
+ when(mMediaController.getPlaybackInfo()).thenReturn(mPlaybackInfo);
+ }
+
+ @Test
+ public void isAvailable_containRemoteMedia_returnTrue() {
+ when(mMediaController.getPlaybackInfo()).thenReturn(
+ new MediaController.PlaybackInfo(MediaController.PlaybackInfo.PLAYBACK_TYPE_REMOTE,
+ 0, 0, 0, null));
+ assertThat(mController.isAvailable()).isTrue();
+ }
+
+ @Test
+ public void isAvailable_noRemoteMedia_returnFalse() {
+ when(mMediaController.getPlaybackInfo()).thenReturn(
+ new MediaController.PlaybackInfo(MediaController.PlaybackInfo.PLAYBACK_TYPE_LOCAL,
+ 0, 0, 0, null));
+ assertThat(mController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void getMuteIcon_returnMuteIcon() {
+ assertThat(mController.getMuteIcon()).isEqualTo(R.drawable.ic_volume_remote_mute);
+ }
+
+ @Test
+ public void getAudioStream_returnRemoteVolume() {
+ assertThat(mController.getAudioStream()).isEqualTo(
+ RemoteVolumePreferenceController.REMOTE_VOLUME);
+ }
+
+ @Test
+ public void getSliderPosition_controllerNull_returnZero() {
+ mController.mMediaController = null;
+
+ assertThat(mController.getSliderPosition()).isEqualTo(0);
+ }
+
+ @Test
+ public void getSliderPosition_controllerExists_returnValue() {
+ mController.mMediaController = mMediaController;
+
+ assertThat(mController.getSliderPosition()).isEqualTo(CURRENT_POS);
+ }
+
+ @Test
+ public void getMaxSteps_controllerNull_returnZero() {
+ mController.mMediaController = null;
+
+ assertThat(mController.getMaxSteps()).isEqualTo(0);
+ }
+
+ @Test
+ public void getMaxSteps_controllerExists_returnValue() {
+ mController.mMediaController = mMediaController;
+
+ assertThat(mController.getMaxSteps()).isEqualTo(MAX_POS);
+ }
+
+ @Test
+ public void setSliderPosition_controllerNull_returnFalse() {
+ mController.mMediaController = null;
+
+ assertThat(mController.setSliderPosition(CURRENT_POS)).isFalse();
+ }
+
+ @Test
+ public void setSliderPosition_controllerExists_returnTrue() {
+ mController.mMediaController = mMediaController;
+
+ assertThat(mController.setSliderPosition(CURRENT_POS)).isTrue();
+ verify(mMediaController).setVolumeTo(CURRENT_POS, 0 /* flags */);
+ }
+
+ @Test
+ public void onRemoteUpdate_firstToken_updateTokenAndPreference() {
+ mController.mPreference = new VolumeSeekBarPreference(mContext);
+ mController.mActiveToken = null;
+
+ mController.mCallbacks.onRemoteUpdate(mToken, "token", mPlaybackInfo);
+
+ assertThat(mController.mActiveToken).isEqualTo(mToken);
+ assertThat(mController.mPreference.isVisible()).isTrue();
+ assertThat(mController.mPreference.getMax()).isEqualTo(MAX_POS);
+ assertThat(mController.mPreference.getProgress()).isEqualTo(CURRENT_POS);
+ }
+
+ @Test
+ public void onRemoteUpdate_differentToken_doNothing() {
+ mController.mActiveToken = mToken;
+
+ mController.mCallbacks.onRemoteUpdate(mToken2, "token2", mPlaybackInfo);
+
+ assertThat(mController.mActiveToken).isEqualTo(mToken);
+ }
+
+ @Test
+ public void onRemoteRemoved_tokenRemoved_setInvisible() {
+ mController.mPreference = new VolumeSeekBarPreference(mContext);
+ mController.mActiveToken = mToken;
+
+ mController.mCallbacks.onRemoteRemoved(mToken);
+
+ assertThat(mController.mActiveToken).isNull();
+ assertThat(mController.mPreference.isVisible()).isFalse();
+ }
+
+ @Test
+ public void onRemoteVolumeChanged_volumeChanged_updateIt() {
+ mController.mPreference = new VolumeSeekBarPreference(mContext);
+ mController.mPreference.setMax(MAX_POS);
+ mController.mActiveToken = mToken;
+ mController.mMediaController = mMediaController;
+
+ mController.mCallbacks.onRemoteVolumeChanged(mToken, 0 /* flags */);
+
+ assertThat(mController.mPreference.getProgress()).isEqualTo(CURRENT_POS);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/panel/NfcPanelTest.java b/tests/robotests/src/com/android/settings/panel/NfcPanelTest.java
index bf6662d..1de2c5a 100644
--- a/tests/robotests/src/com/android/settings/panel/NfcPanelTest.java
+++ b/tests/robotests/src/com/android/settings/panel/NfcPanelTest.java
@@ -1,3 +1,19 @@
+/*
+ * 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.panel;
import static com.google.common.truth.Truth.assertThat;
diff --git a/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java b/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java
index a51b7b0..1d5c3c2 100644
--- a/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java
+++ b/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java
@@ -76,15 +76,16 @@
}
@Test
- public void startMediaOutputSlice_withoutPackageName_bundleShouldNotHaveValue() {
+ public void startMediaOutputSlice_withoutPackageName_bundleShouldHaveValue() {
final Intent intent = new Intent()
.setAction("com.android.settings.panel.action.MEDIA_OUTPUT");
final SettingsPanelActivity activity =
Robolectric.buildActivity(SettingsPanelActivity.class, intent).create().get();
- assertThat(activity.mBundle.containsKey(KEY_MEDIA_PACKAGE_NAME)).isFalse();
- assertThat(activity.mBundle.containsKey(KEY_PANEL_TYPE_ARGUMENT)).isFalse();
+ assertThat(activity.mBundle.containsKey(KEY_MEDIA_PACKAGE_NAME)).isTrue();
+ assertThat(activity.mBundle.getString(KEY_PANEL_TYPE_ARGUMENT))
+ .isEqualTo("com.android.settings.panel.action.MEDIA_OUTPUT");
}
@Test
diff --git a/tests/robotests/src/com/android/settings/panel/VolumePanelTest.java b/tests/robotests/src/com/android/settings/panel/VolumePanelTest.java
index 11964cd..4665dc9 100644
--- a/tests/robotests/src/com/android/settings/panel/VolumePanelTest.java
+++ b/tests/robotests/src/com/android/settings/panel/VolumePanelTest.java
@@ -45,6 +45,7 @@
final List<Uri> uris = mPanel.getSlices();
assertThat(uris).containsExactly(
+ CustomSliceRegistry.VOLUME_REMOTE_MEDIA_URI,
CustomSliceRegistry.VOLUME_CALL_URI,
CustomSliceRegistry.VOLUME_MEDIA_URI,
CustomSliceRegistry.VOLUME_RINGER_URI,
diff --git a/tests/robotests/src/com/android/settings/panel/WifiPanelTest.java b/tests/robotests/src/com/android/settings/panel/WifiPanelTest.java
new file mode 100644
index 0000000..08db23e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/panel/WifiPanelTest.java
@@ -0,0 +1,55 @@
+/*
+ * 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.panel;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.net.Uri;
+
+import com.android.settings.slices.CustomSliceRegistry;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.List;
+
+@RunWith(RobolectricTestRunner.class)
+public class WifiPanelTest {
+
+ private WifiPanel mPanel;
+
+ @Before
+ public void setUp() {
+ mPanel = WifiPanel.create(RuntimeEnvironment.application);
+ }
+
+ @Test
+ public void getSlices_containsNecessarySlices() {
+ final List<Uri> uris = mPanel.getSlices();
+
+ assertThat(uris).containsExactly(
+ CustomSliceRegistry.WIFI_SLICE_URI);
+ }
+
+ @Test
+ public void getSeeMoreIntent_notNull() {
+ assertThat(mPanel.getSeeMoreIntent()).isNotNull();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java b/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
index 48f9fb4..bed09cb 100644
--- a/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
@@ -16,7 +16,7 @@
package com.android.settings.password;
-import static android.Manifest.permission.REQUEST_SCREEN_LOCK_COMPLEXITY;
+import static android.Manifest.permission.REQUEST_PASSWORD_COMPLEXITY;
import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PARENT_PROFILE_PASSWORD;
import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PASSWORD;
import static android.app.admin.DevicePolicyManager.EXTRA_PASSWORD_COMPLEXITY;
@@ -139,7 +139,7 @@
public void testLaunchChooseLock_setNewPasswordExtraWithPermission() {
ShadowPasswordUtils.setCallingAppLabel(APP_LABEL);
ShadowPasswordUtils.setCallingAppPackageName(PKG_NAME);
- ShadowPasswordUtils.addGrantedPermission(REQUEST_SCREEN_LOCK_COMPLEXITY);
+ ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
Settings.Global.DEVICE_PROVISIONED, 1);
@@ -169,7 +169,7 @@
public void testLaunchChooseLock_setNewPasswordExtraInvalidValue() {
ShadowPasswordUtils.setCallingAppLabel(APP_LABEL);
ShadowPasswordUtils.setCallingAppPackageName(PKG_NAME);
- ShadowPasswordUtils.addGrantedPermission(REQUEST_SCREEN_LOCK_COMPLEXITY);
+ ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
Settings.Global.DEVICE_PROVISIONED, 1);
@@ -197,7 +197,7 @@
public void testLaunchChooseLock_setNewPasswordExtraNoneComplexity() {
ShadowPasswordUtils.setCallingAppLabel(APP_LABEL);
ShadowPasswordUtils.setCallingAppPackageName(PKG_NAME);
- ShadowPasswordUtils.addGrantedPermission(REQUEST_SCREEN_LOCK_COMPLEXITY);
+ ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
Settings.Global.DEVICE_PROVISIONED, 1);
@@ -225,7 +225,7 @@
public void testLaunchChooseLock_setNewPasswordWithoutExtra() {
ShadowPasswordUtils.setCallingAppLabel(APP_LABEL);
ShadowPasswordUtils.setCallingAppPackageName(PKG_NAME);
- ShadowPasswordUtils.addGrantedPermission(REQUEST_SCREEN_LOCK_COMPLEXITY);
+ ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
Settings.Global.DEVICE_PROVISIONED, 1);
@@ -252,7 +252,7 @@
public void testLaunchChooseLock_setNewParentProfilePasswordExtraWithPermission() {
ShadowPasswordUtils.setCallingAppLabel(APP_LABEL);
ShadowPasswordUtils.setCallingAppPackageName(PKG_NAME);
- ShadowPasswordUtils.addGrantedPermission(REQUEST_SCREEN_LOCK_COMPLEXITY);
+ ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
Settings.Global.DEVICE_PROVISIONED, 1);
@@ -280,7 +280,7 @@
public void testLaunchChooseLock_setNewParentProfilePasswordWithoutExtra() {
ShadowPasswordUtils.setCallingAppLabel(APP_LABEL);
ShadowPasswordUtils.setCallingAppPackageName(PKG_NAME);
- ShadowPasswordUtils.addGrantedPermission(REQUEST_SCREEN_LOCK_COMPLEXITY);
+ ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
Settings.Global.DEVICE_PROVISIONED, 1);
diff --git a/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java b/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
index d35b38a..cd79f58 100644
--- a/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
@@ -16,7 +16,7 @@
package com.android.settings.password;
-import static android.Manifest.permission.REQUEST_SCREEN_LOCK_COMPLEXITY;
+import static android.Manifest.permission.REQUEST_PASSWORD_COMPLEXITY;
import static android.app.admin.DevicePolicyManager.PASSWORD_COMPLEXITY_HIGH;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_REQUESTED_MIN_COMPLEXITY;
@@ -68,7 +68,7 @@
@Test
@Config(shadows = {ShadowPasswordUtils.class})
public void setupChooseLockGenericPasswordComplexityExtraWithPermission() {
- ShadowPasswordUtils.addGrantedPermission(REQUEST_SCREEN_LOCK_COMPLEXITY);
+ ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
Intent intent = new Intent("com.android.settings.SETUP_LOCK_SCREEN");
intent.putExtra(EXTRA_KEY_REQUESTED_MIN_COMPLEXITY, PASSWORD_COMPLEXITY_HIGH);
diff --git a/tests/robotests/src/com/android/settings/privacy/EnableContentCapturePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/privacy/EnableContentCapturePreferenceControllerTest.java
new file mode 100644
index 0000000..a379858
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/privacy/EnableContentCapturePreferenceControllerTest.java
@@ -0,0 +1,103 @@
+/*
+ * 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.privacy;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.provider.Settings;
+import android.provider.Settings.SettingNotFoundException;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+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;
+
+@RunWith(RobolectricTestRunner.class)
+public class EnableContentCapturePreferenceControllerTest {
+
+ @Mock
+ private PreferenceScreen mScreen;
+
+ private Context mContext;
+ private EnableContentCapturePreferenceController mController;
+ private Preference mPreference;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
+ mController = new EnableContentCapturePreferenceController(mContext);
+ mPreference = new Preference(mContext);
+ mPreference.setKey(mController.getPreferenceKey());
+ }
+
+ @Test
+ public void isChecked_settingIsOff_false() throws Exception {
+ setProperty(0);
+
+ assertThat(mController.isChecked()).isFalse();
+ }
+
+ @Test
+ public void isChecked_settingIsOn_true() throws Exception {
+ setProperty(1);
+
+ assertThat(mController.isChecked()).isTrue();
+ }
+
+ @Test
+ public void changePref_turnOn_shouldChangeSettingTo1() throws Exception {
+ setProperty(0);
+
+ mController.onPreferenceChange(mPreference, true);
+
+ assertThat(mController.isChecked()).isTrue();
+ assertProperty(1);
+ }
+
+ @Test
+ public void changePref_turnOff_shouldChangeSettingTo0() throws Exception {
+ setProperty(1);
+
+ mController.onPreferenceChange(mPreference, false);
+
+ assertThat(mController.isChecked()).isFalse();
+ assertProperty(0);
+ }
+
+ private void setProperty(int newValue) throws SettingNotFoundException {
+ final ContentResolver contentResolver = mContext.getContentResolver();
+ Settings.Secure.putInt(contentResolver, Settings.Secure.CONTENT_CAPTURE_ENABLED, newValue);
+ }
+
+ private void assertProperty(int expectedValue) throws SettingNotFoundException {
+ final ContentResolver contentResolver = mContext.getContentResolver();
+ assertThat(Settings.Secure.getInt(contentResolver, Settings.Secure.CONTENT_CAPTURE_ENABLED))
+ .isEqualTo(expectedValue);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
index a693f34..23025b2 100644
--- a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
@@ -135,7 +135,6 @@
mProvider.mSliceWeakDataCache = new HashMap<>();
mProvider.mSliceDataCache = new HashMap<>();
mProvider.mSlicesDatabaseAccessor = new SlicesDatabaseAccessor(mContext);
- mProvider.mCustomSliceManager = new CustomSliceManager(mContext);
when(mProvider.getContext()).thenReturn(mContext);
SlicesDatabaseHelper.getInstance(mContext).setIndexedState();
diff --git a/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java b/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java
index 74f4ac2..1ea324d 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java
@@ -19,14 +19,12 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
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.settings.SettingsEnums;
import android.app.slice.Slice;
@@ -82,9 +80,6 @@
mSearchFeatureProvider = new SearchFeatureProviderImpl();
mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
mFakeFeatureFactory.searchFeatureProvider = mSearchFeatureProvider;
- CustomSliceManager manager = new CustomSliceManager(mContext);
- when(mFakeFeatureFactory.slicesFeatureProvider.getCustomSliceManager(any()))
- .thenReturn(manager);
}
@After
diff --git a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseHelperTest.java b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseHelperTest.java
index 0e92c05..96bca07 100644
--- a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseHelperTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseHelperTest.java
@@ -55,6 +55,7 @@
@After
public void cleanUp() {
DatabaseTestUtils.clearDb(mContext);
+ mDatabase.close();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java b/tests/robotests/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java
index 82726df..d483f9e 100644
--- a/tests/robotests/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java
@@ -19,8 +19,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.spy;
-
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
@@ -39,44 +37,50 @@
@RunWith(RobolectricTestRunner.class)
public class SpecialCaseSliceManagerTest {
- private Context mContext;
+ private final String FAKE_PARAMETER_KEY = "fake_parameter_key";
+ private final String FAKE_PARAMETER_VALUE = "fake_value";
- private CustomSliceManager mCustomSliceManager;
+ private Context mContext;
@Before
public void setUp() {
mContext = RuntimeEnvironment.application;
- mCustomSliceManager = spy(new CustomSliceManager(mContext));
- mCustomSliceManager.mUriMap.clear();
- mCustomSliceManager.mUriMap.put(FakeSliceable.URI, FakeSliceable.class);
+ CustomSliceRegistry.sUriToSlice.clear();
+ CustomSliceRegistry.sUriToSlice.put(FakeSliceable.URI, FakeSliceable.class);
}
@Test
public void getSliceableFromUri_returnsCorrectObject() {
- final CustomSliceable sliceable = mCustomSliceManager.getSliceableFromUri(
- FakeSliceable.URI);
+ final CustomSliceable sliceable = CustomSliceable.createInstance(
+ mContext, CustomSliceRegistry.getSliceClassByUri(FakeSliceable.URI));
assertThat(sliceable).isInstanceOf(FakeSliceable.class);
}
@Test
- public void getSliceableFromIntentAction_returnsCorrectObject() {
- final CustomSliceable sliceable =
- mCustomSliceManager.getSliceableFromIntentAction(FakeSliceable.URI.toString());
+ public void getSliceableFromUriWithParameter_returnsCorrectObject() {
+ final Uri parameterUri = FakeSliceable.URI
+ .buildUpon()
+ .clearQuery()
+ .appendQueryParameter(FAKE_PARAMETER_KEY, FAKE_PARAMETER_VALUE)
+ .build();
+
+ final CustomSliceable sliceable = CustomSliceable.createInstance(
+ mContext, CustomSliceRegistry.getSliceClassByUri(parameterUri));
assertThat(sliceable).isInstanceOf(FakeSliceable.class);
}
@Test
public void isValidUri_validUri_returnsTrue() {
- final boolean isValidUri = mCustomSliceManager.isValidUri(FakeSliceable.URI);
+ final boolean isValidUri = CustomSliceRegistry.isValidUri(FakeSliceable.URI);
assertThat(isValidUri).isTrue();
}
@Test
public void isValidUri_invalidUri_returnsFalse() {
- final boolean isValidUri = mCustomSliceManager.isValidUri(null);
+ final boolean isValidUri = CustomSliceRegistry.isValidUri(null);
assertThat(isValidUri).isFalse();
}
@@ -84,14 +88,14 @@
@Test
public void isValidAction_validActions_returnsTrue() {
final boolean isValidAction =
- mCustomSliceManager.isValidAction(FakeSliceable.URI.toString());
+ CustomSliceRegistry.isValidAction(FakeSliceable.URI.toString());
assertThat(isValidAction).isTrue();
}
@Test
public void isValidAction_invalidAction_returnsFalse() {
- final boolean isValidAction = mCustomSliceManager.isValidAction("action");
+ final boolean isValidAction = CustomSliceRegistry.isValidAction("action");
assertThat(isValidAction).isFalse();
}
diff --git a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
index 54a79f4..5b7c863 100644
--- a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
@@ -238,63 +238,6 @@
verify(mLocalBluetoothManager).setForegroundActivity(null);
}
- @Test
- public void onPreferenceChange_toThisDevice_shouldSetDefaultSummary() {
- mController.mConnectedDevices.clear();
- mController.mConnectedDevices.add(mBluetoothDevice);
-
- mController.onPreferenceChange(mPreference,
- mContext.getText(R.string.media_output_default_summary));
-
- assertThat(mPreference.getSummary()).isEqualTo(
- mContext.getText(R.string.media_output_default_summary));
- }
-
- /**
- * One Bluetooth devices are available, and select the device.
- * Preference summary should be device name.
- */
- @Test
- public void onPreferenceChange_toBtDevice_shouldSetBtDeviceName() {
- mController.mConnectedDevices.clear();
- mController.mConnectedDevices.add(mBluetoothDevice);
-
- mController.onPreferenceChange(mPreference, TEST_DEVICE_ADDRESS_1);
-
- assertThat(mPreference.getSummary()).isEqualTo(TEST_DEVICE_NAME_1);
- }
-
- /**
- * More than one Bluetooth devices are available, and select second device.
- * Preference summary should be second device name.
- */
- @Test
- public void onPreferenceChange_toBtDevices_shouldSetSecondBtDeviceName() {
- ShadowBluetoothDevice shadowBluetoothDevice;
- BluetoothDevice secondBluetoothDevice;
- secondBluetoothDevice = mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_2);
- shadowBluetoothDevice = Shadows.shadowOf(secondBluetoothDevice);
- shadowBluetoothDevice.setName(TEST_DEVICE_NAME_2);
- mController.mConnectedDevices.clear();
- mController.mConnectedDevices.add(mBluetoothDevice);
- mController.mConnectedDevices.add(secondBluetoothDevice);
-
- mController.onPreferenceChange(mPreference, TEST_DEVICE_ADDRESS_2);
-
- assertThat(mPreference.getSummary()).isEqualTo(TEST_DEVICE_NAME_2);
- }
-
- /**
- * mConnectedDevices is empty.
- * onPreferenceChange should return false.
- */
- @Test
- public void onPreferenceChange_connectedDeviceIsNull_shouldReturnFalse() {
- mController.mConnectedDevices.clear();
-
- assertThat(mController.onPreferenceChange(mPreference, TEST_DEVICE_ADDRESS_1)).isFalse();
- }
-
/**
* Audio stream output to bluetooth sco headset which is the subset of all sco device.
* isStreamFromOutputDevice should return true.
@@ -416,39 +359,6 @@
}
/**
- * One A2dp device is connected.
- * getConnectedA2dpDevices should add this device to list.
- */
- @Test
- public void getConnectedA2dpDevices_oneConnectedA2dpDevice_shouldAddDeviceToList() {
- mEmptyDevices.clear();
- mProfileConnectedDevices.clear();
- mProfileConnectedDevices.add(mBluetoothDevice);
- when(mA2dpProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
-
- mEmptyDevices.addAll(mController.getConnectedA2dpDevices());
-
- assertThat(mEmptyDevices).containsExactly(mBluetoothDevice);
- }
-
- /**
- * More than one A2dp devices are connected.
- * getConnectedA2dpDevices should add all devices to list.
- */
- @Test
- public void getConnectedA2dpDevices_moreThanOneConnectedA2dpDevice_shouldAddDeviceToList() {
- mEmptyDevices.clear();
- mProfileConnectedDevices.clear();
- mProfileConnectedDevices.add(mBluetoothDevice);
- mProfileConnectedDevices.add(mLeftBluetoothHapDevice);
- when(mA2dpProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
-
- mEmptyDevices.addAll(mController.getConnectedA2dpDevices());
-
- assertThat(mEmptyDevices).containsExactly(mBluetoothDevice, mLeftBluetoothHapDevice);
- }
-
- /**
* One hands free profile device is connected.
* getConnectedA2dpDevices should add this device to list.
*/
@@ -488,10 +398,6 @@
}
@Override
- public void setActiveBluetoothDevice(BluetoothDevice device) {
- }
-
- @Override
public BluetoothDevice findActiveDevice() {
return null;
}
diff --git a/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java
index 4010145..0eada60 100644
--- a/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/HandsFreeProfileOutputPreferenceControllerTest.java
@@ -57,6 +57,7 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowBluetoothDevice;
@@ -107,7 +108,7 @@
private BluetoothDevice mLeftBluetoothHapDevice;
private BluetoothDevice mRightBluetoothHapDevice;
private LocalBluetoothManager mLocalBluetoothManager;
- private AudioSwitchPreferenceController mController;
+ private HandsFreeProfileOutputPreferenceController mController;
private List<BluetoothDevice> mProfileConnectedDevices;
private List<BluetoothDevice> mHearingAidActiveDevices;
@@ -478,4 +479,61 @@
assertThat(mController.findActiveDevice()).isNull();
}
+
+ /**
+ * One Bluetooth devices are available, and select the device.
+ * Preference summary should be device name.
+ */
+ @Test
+ public void onPreferenceChange_toBtDevice_shouldSetBtDeviceName() {
+ mController.mConnectedDevices.clear();
+ mController.mConnectedDevices.add(mBluetoothDevice);
+
+ mController.onPreferenceChange(mPreference, TEST_DEVICE_ADDRESS_1);
+
+ assertThat(mPreference.getSummary()).isEqualTo(TEST_DEVICE_NAME_1);
+ }
+
+ /**
+ * More than one Bluetooth devices are available, and select second device.
+ * Preference summary should be second device name.
+ */
+ @Test
+ public void onPreferenceChange_toBtDevices_shouldSetSecondBtDeviceName() {
+ ShadowBluetoothDevice shadowBluetoothDevice;
+ BluetoothDevice secondBluetoothDevice;
+ secondBluetoothDevice = mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS_2);
+ shadowBluetoothDevice = Shadows.shadowOf(secondBluetoothDevice);
+ shadowBluetoothDevice.setName(TEST_DEVICE_NAME_2);
+ mController.mConnectedDevices.clear();
+ mController.mConnectedDevices.add(mBluetoothDevice);
+ mController.mConnectedDevices.add(secondBluetoothDevice);
+
+ mController.onPreferenceChange(mPreference, TEST_DEVICE_ADDRESS_2);
+
+ assertThat(mPreference.getSummary()).isEqualTo(TEST_DEVICE_NAME_2);
+ }
+
+ /**
+ * mConnectedDevices is empty.
+ * onPreferenceChange should return false.
+ */
+ @Test
+ public void onPreferenceChange_connectedDeviceIsNull_shouldReturnFalse() {
+ mController.mConnectedDevices.clear();
+
+ assertThat(mController.onPreferenceChange(mPreference, TEST_DEVICE_ADDRESS_1)).isFalse();
+ }
+
+ @Test
+ public void onPreferenceChange_toThisDevice_shouldSetDefaultSummary() {
+ mController.mConnectedDevices.clear();
+ mController.mConnectedDevices.add(mBluetoothDevice);
+
+ mController.onPreferenceChange(mPreference,
+ mContext.getText(R.string.media_output_default_summary));
+
+ assertThat(mPreference.getSummary()).isEqualTo(
+ mContext.getText(R.string.media_output_default_summary));
+ }
}
diff --git a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
index 8c7faef..7fcd3d2 100644
--- a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
@@ -17,16 +17,15 @@
package com.android.settings.sound;
import static android.media.AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP;
+import static android.media.AudioSystem.DEVICE_OUT_EARPIECE;
import static android.media.AudioSystem.DEVICE_OUT_HEARING_AID;
import static android.media.AudioSystem.DEVICE_OUT_REMOTE_SUBMIX;
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -34,9 +33,10 @@
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothManager;
import android.content.Context;
+import android.content.Intent;
import android.media.AudioManager;
-import androidx.preference.ListPreference;
+import androidx.preference.Preference;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
@@ -49,11 +49,13 @@
import com.android.settingslib.bluetooth.HearingAidProfile;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
+import com.android.settingslib.media.MediaOutputSliceConstants;
import org.junit.After;
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;
@@ -80,8 +82,6 @@
private static final String TEST_DEVICE_ADDRESS_2 = "00:B2:B2:B2:B2:B2";
private static final String TEST_DEVICE_ADDRESS_3 = "00:C3:C3:C3:C3:C3";
private static final String TEST_DEVICE_ADDRESS_4 = "00:D4:D4:D4:D4:D4";
- private final static long HISYNCID1 = 10;
- private final static long HISYNCID2 = 11;
@Mock
private LocalBluetoothManager mLocalManager;
@@ -98,7 +98,7 @@
private Context mContext;
private PreferenceScreen mScreen;
- private ListPreference mPreference;
+ private Preference mPreference;
private AudioManager mAudioManager;
private ShadowAudioManager mShadowAudioManager;
private BluetoothManager mBluetoothManager;
@@ -108,8 +108,8 @@
private BluetoothDevice mLeftBluetoothHapDevice;
private BluetoothDevice mRightBluetoothHapDevice;
private LocalBluetoothManager mLocalBluetoothManager;
- private AudioSwitchPreferenceController mController;
- private List<BluetoothDevice> mProfileConnectedDevices;
+ private MediaOutputPreferenceController mController;
+ private List<BluetoothDevice> mProfileConnectableDevices;
private List<BluetoothDevice> mHearingAidActiveDevices;
@Before
@@ -149,8 +149,8 @@
mController = new MediaOutputPreferenceController(mContext, TEST_KEY);
mScreen = spy(new PreferenceScreen(mContext, null));
- mPreference = new ListPreference(mContext);
- mProfileConnectedDevices = new ArrayList<>();
+ mPreference = new Preference(mContext);
+ mProfileConnectableDevices = new ArrayList<>();
mHearingAidActiveDevices = new ArrayList<>(2);
when(mScreen.getPreferenceManager()).thenReturn(mock(PreferenceManager.class));
@@ -166,61 +166,140 @@
ShadowBluetoothUtils.reset();
}
+
/**
- * In normal mode, bluetooth device with HisyncId.
- * HearingAidProfile should set active device to this device.
+ * A2DP Bluetooth device(s) are not connected nor previously connected
+ * Preference should be invisible
*/
@Test
- public void setActiveBluetoothDevice_btDeviceWithHisyncId_shouldSetBtDeviceActive() {
+ public void updateState_withoutConnectableBtDevice_preferenceInvisible() {
+ mShadowAudioManager.setOutputDevice(DEVICE_OUT_EARPIECE);
mAudioManager.setMode(AudioManager.MODE_NORMAL);
- when(mHearingAidProfile.getHiSyncId(mLeftBluetoothHapDevice)).thenReturn(HISYNCID1);
+ mProfileConnectableDevices.clear();
+ when(mA2dpProfile.getConnectableDevices()).thenReturn(mProfileConnectableDevices);
+ mPreference.setVisible(true);
- mController.setActiveBluetoothDevice(mLeftBluetoothHapDevice);
-
- verify(mHearingAidProfile).setActiveDevice(mLeftBluetoothHapDevice);
- verify(mA2dpProfile, never()).setActiveDevice(mLeftBluetoothHapDevice);
+ assertThat(mPreference.isVisible()).isTrue();
+ mController.updateState(mPreference);
+ assertThat(mPreference.isVisible()).isFalse();
}
/**
- * In normal mode, bluetooth device without HisyncId.
- * A2dpProfile should set active device to this device.
+ * A2DP Bluetooth device(s) are connectable, no matter active or inactive
+ * Preference should be visible
*/
@Test
- public void setActiveBluetoothDevice_btDeviceWithoutHisyncId_shouldSetBtDeviceActive() {
+ public void updateState_withConnectableBtDevice_preferenceVisible() {
+ mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLUETOOTH_A2DP);
mAudioManager.setMode(AudioManager.MODE_NORMAL);
+ mProfileConnectableDevices.clear();
+ mProfileConnectableDevices.add(mBluetoothDevice);
+ when(mA2dpProfile.getConnectableDevices()).thenReturn(mProfileConnectableDevices);
+ assertThat(mPreference.isVisible()).isFalse();
- mController.setActiveBluetoothDevice(mBluetoothDevice);
+ // Without Active Bluetooth Device
+ mController.updateState(mPreference);
+ assertThat(mPreference.isVisible()).isTrue();
- verify(mA2dpProfile).setActiveDevice(mBluetoothDevice);
- verify(mHearingAidProfile, never()).setActiveDevice(mBluetoothDevice);
+ // With Active Bluetooth Device
+ when(mA2dpProfile.getActiveDevice()).thenReturn(mBluetoothDevice);
+ mController.updateState(mPreference);
+ assertThat(mPreference.isVisible()).isTrue();
}
/**
- * In normal mode, set active device to "this device".
- * A2dpProfile should set to null.
- * HearingAidProfile should set to null.
+ * A2DP Bluetooth device(s) are connectable, but no device is set as activated
+ * Preference summary should be "This device"
*/
@Test
- public void setActiveBluetoothDevice_setNull_shouldSetNullToBothProfiles() {
+ public void updateState_withConnectableBtDevice_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);
+ when(mA2dpProfile.getActiveDevice()).thenReturn(null);
- mController.setActiveBluetoothDevice(null);
-
- verify(mA2dpProfile).setActiveDevice(null);
- verify(mHearingAidProfile).setActiveDevice(null);
+ assertThat(mPreference.getSummary()).isNull();
+ mController.updateState(mPreference);
+ assertThat(mPreference.getSummary()).isEqualTo(
+ mContext.getText(R.string.media_output_default_summary));
}
/**
- * During a call
- * A2dpProfile should not set active device.
+ * A2DP Bluetooth device(s) are connected and active
+ * Preference summary should be device's name
*/
@Test
- public void setActiveBluetoothDevice_duringACall_shouldNotSetActiveDeviceToA2dpProfile() {
- mAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
+ 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);
+ when(mA2dpProfile.getActiveDevice()).thenReturn(mBluetoothDevice);
- mController.setActiveBluetoothDevice(mBluetoothDevice);
+ assertThat(mPreference.getSummary()).isNull();
+ mController.updateState(mPreference);
+ assertThat(mPreference.getSummary()).isEqualTo(TEST_DEVICE_NAME_1);
+ }
- verify(mA2dpProfile, times(0)).setActiveDevice(any(BluetoothDevice.class));
+
+ /**
+ * Hearing Aid device(s) are connectable, no matter active or inactive
+ * Preference should be visible
+ */
+ @Test
+ public void updateState_withConnectableHADevice_preferenceVisible() {
+ mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
+ mAudioManager.setMode(AudioManager.MODE_NORMAL);
+ mHearingAidActiveDevices.clear();
+ mHearingAidActiveDevices.add(mLeftBluetoothHapDevice);
+ when(mHearingAidProfile.getConnectableDevices()).thenReturn(mHearingAidActiveDevices);
+ assertThat(mPreference.isVisible()).isFalse();
+
+ // Without Active Hearing Aid Device
+ mController.updateState(mPreference);
+ assertThat(mPreference.isVisible()).isTrue();
+
+ // With Active Hearing Aid Device
+ when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
+ mController.updateState(mPreference);
+ assertThat(mPreference.isVisible()).isTrue();
+ }
+
+ /**
+ * Hearing Aid device(s) are connected and active
+ * Preference summary should be device's name
+ */
+ @Test
+ public void updateState_withActiveHADevice_setActivatedDeviceName() {
+ mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
+ mAudioManager.setMode(AudioManager.MODE_NORMAL);
+ mHearingAidActiveDevices.clear();
+ mHearingAidActiveDevices.add(mLeftBluetoothHapDevice);
+ when(mHearingAidProfile.getConnectableDevices()).thenReturn(mHearingAidActiveDevices);
+ when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
+
+ assertThat(mPreference.getSummary()).isNull();
+ mController.updateState(mPreference);
+ assertThat(mPreference.getSummary()).isEqualTo(TEST_HAP_DEVICE_NAME_1);
+
+ }
+
+ @Test
+ public void click_launch_outputSwitcherSlice() {
+ final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+ mController.handlePreferenceTreeClick(mPreference);
+ verify(mContext, never()).startActivity(intentCaptor.capture());
+
+ mPreference.setKey(TEST_KEY);
+ mController.handlePreferenceTreeClick(mPreference);
+ verify(mContext).startActivity(intentCaptor.capture());
+ assertThat(intentCaptor.getValue().getAction())
+ .isEqualTo(MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT);
}
/**
@@ -254,24 +333,6 @@
}
/**
- * No available A2dp BT devices:
- * Preference should be invisible
- * Preference summary should be "This device"
- */
- @Test
- public void updateState_noAvailableA2dpBtDevices_shouldDisableAndSetDefaultSummary() {
- mAudioManager.setMode(AudioManager.MODE_NORMAL);
- List<BluetoothDevice> emptyDeviceList = new ArrayList<>();
- when(mA2dpProfile.getConnectedDevices()).thenReturn(emptyDeviceList);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.isVisible()).isFalse();
- String defaultString = mContext.getString(R.string.media_output_default_summary);
- assertThat(mPreference.getSummary()).isEqualTo(defaultString);
- }
-
- /**
* Media stream is captured by something else (cast device):
* Preference should be invisible
* Preference summary should be "unavailable"
@@ -287,235 +348,6 @@
assertThat(mPreference.getSummary()).isEqualTo(defaultString);
}
- /**
- * One A2DP Bluetooth device is available and active.
- * Preference should be visible
- * Preference summary should be the activated device name
- */
- @Test
- public void updateState_oneA2dpBtDeviceAreAvailable_shouldSetActivatedDeviceName() {
- mAudioManager.setMode(AudioManager.MODE_NORMAL);
- mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLUETOOTH_A2DP);
- mProfileConnectedDevices.clear();
- mProfileConnectedDevices.add(mBluetoothDevice);
- when(mA2dpProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
- when(mA2dpProfile.getActiveDevice()).thenReturn(mBluetoothDevice);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.isVisible()).isTrue();
- assertThat(mPreference.getSummary()).isEqualTo(TEST_DEVICE_NAME_1);
- }
-
- /**
- * More than one A2DP Bluetooth devices are available, and second device is active.
- * Preference should be visible
- * Preference summary should be the activated device name
- */
- @Test
- public void updateState_moreThanOneA2DpBtDevicesAreAvailable_shouldSetActivatedDeviceName() {
- mAudioManager.setMode(AudioManager.MODE_NORMAL);
- mShadowAudioManager.setOutputDevice(DEVICE_OUT_BLUETOOTH_A2DP);
- mProfileConnectedDevices.clear();
- mProfileConnectedDevices.add(mBluetoothDevice);
- mProfileConnectedDevices.add(mSecondBluetoothDevice);
- when(mA2dpProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
- when(mA2dpProfile.getActiveDevice()).thenReturn(mSecondBluetoothDevice);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.isVisible()).isTrue();
- assertThat(mPreference.getSummary()).isEqualTo(TEST_DEVICE_NAME_2);
- }
-
- /**
- * A2DP Bluetooth device(s) are available, but wired headset is plugged in and activated
- * Preference should be visible
- * Preference summary should be "This device"
- */
- @Test
- public void updateState_a2dpDevicesAvailableWiredHeadsetIsActivated_shouldSetDefaultSummary() {
- mAudioManager.setMode(AudioManager.MODE_NORMAL);
- mProfileConnectedDevices.clear();
- mProfileConnectedDevices.add(mBluetoothDevice);
- when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(null);
- when(mA2dpProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
- when(mA2dpProfile.getActiveDevice()).thenReturn(null);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.isVisible()).isTrue();
- assertThat(mPreference.getSummary()).isEqualTo(
- mContext.getString(R.string.media_output_default_summary));
- }
-
-
- /**
- * A2DP Bluetooth device(s) are available, but current device speaker is activated
- * Preference should be visible
- * Preference summary should be "This device"
- */
- @Test
- public void updateState_a2dpDevicesAvailableCurrentDeviceActivated_shouldSetDefaultSummary() {
- mAudioManager.setMode(AudioManager.MODE_NORMAL);
- mProfileConnectedDevices.clear();
- mProfileConnectedDevices.add(mBluetoothDevice);
- when(mA2dpProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
- when(mA2dpProfile.getActiveDevice()).thenReturn(null);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.isVisible()).isTrue();
- assertThat(mPreference.getSummary()).isEqualTo(
- mContext.getString(R.string.media_output_default_summary));
- }
-
- /**
- * One hearing aid profile Bluetooth device is available and active.
- * Preference should be visible
- * Preference summary should be the activated device name
- */
- @Test
- public void updateState_oneHapBtDeviceAreAvailable_shouldSetActivatedDeviceName() {
- mAudioManager.setMode(AudioManager.MODE_NORMAL);
- mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
- mProfileConnectedDevices.clear();
- mProfileConnectedDevices.add(mLeftBluetoothHapDevice);
- mHearingAidActiveDevices.clear();
- mHearingAidActiveDevices.add(mLeftBluetoothHapDevice);
- when(mHearingAidProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
- when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
- when(mHearingAidProfile.getHiSyncId(mLeftBluetoothHapDevice)).thenReturn(HISYNCID1);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.isVisible()).isTrue();
- assertThat(mPreference.getSummary()).isEqualTo(mLeftBluetoothHapDevice.getName());
- }
-
- /**
- * More than one hearing aid profile Bluetooth devices are available, and second
- * device is active.
- * Preference should be visible
- * Preference summary should be the activated device name
- */
- @Test
- public void updateState_moreThanOneHapBtDevicesAreAvailable_shouldSetActivatedDeviceName() {
- mAudioManager.setMode(AudioManager.MODE_NORMAL);
- mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
- mProfileConnectedDevices.clear();
- mProfileConnectedDevices.add(mLeftBluetoothHapDevice);
- mProfileConnectedDevices.add(mRightBluetoothHapDevice);
- mHearingAidActiveDevices.clear();
- mHearingAidActiveDevices.add(mRightBluetoothHapDevice);
- when(mHearingAidProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
- when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
- when(mHearingAidProfile.getHiSyncId(mLeftBluetoothHapDevice)).thenReturn(HISYNCID1);
- when(mHearingAidProfile.getHiSyncId(mRightBluetoothHapDevice)).thenReturn(HISYNCID2);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.isVisible()).isTrue();
- assertThat(mPreference.getSummary()).isEqualTo(mRightBluetoothHapDevice.getName());
- }
-
- /**
- * Both hearing aid profile and A2dp Bluetooth devices are available, and two hearing aid
- * profile devices with same HisyncId are active. Both of HAP device are active,
- * "left" side HAP device is added first.
- * Preference should be visible
- * Preference summary should be the activated device name
- * ConnectedDevice should not contain second HAP device with same HisyncId
- */
- @Test
- public void updateState_hapBtDeviceWithSameId_shouldSetActivatedDeviceName() {
- mAudioManager.setMode(AudioManager.MODE_NORMAL);
- mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
- mProfileConnectedDevices.clear();
- mProfileConnectedDevices.add(mBluetoothDevice);
- //with same HisyncId, first one will remain in UI.
- mProfileConnectedDevices.add(mLeftBluetoothHapDevice);
- mProfileConnectedDevices.add(mRightBluetoothHapDevice);
- mHearingAidActiveDevices.clear();
- mHearingAidActiveDevices.add(mLeftBluetoothHapDevice);
- mHearingAidActiveDevices.add(mRightBluetoothHapDevice);
- when(mHearingAidProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
- when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
- when(mHearingAidProfile.getHiSyncId(mLeftBluetoothHapDevice)).thenReturn(HISYNCID1);
- when(mHearingAidProfile.getHiSyncId(mRightBluetoothHapDevice)).thenReturn(HISYNCID1);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.isVisible()).isTrue();
- assertThat(mPreference.getSummary()).isEqualTo(mLeftBluetoothHapDevice.getName());
- assertThat(mController.mConnectedDevices.contains(mLeftBluetoothHapDevice)).isTrue();
- assertThat(mController.mConnectedDevices.contains(mRightBluetoothHapDevice)).isFalse();
- }
-
- /**
- * Both hearing aid profile and A2dp Bluetooth devices are available, and two hearing aid
- * profile devices with same HisyncId. Both of HAP device are active,
- * "right" side HAP device is added first.
- * Preference should be visible
- * Preference summary should be the activated device name
- * ConnectedDevice should not contain second HAP device with same HisyncId
- */
- @Test
- public void updateState_hapBtDeviceWithSameIdButDifferentOrder_shouldSetActivatedDeviceName() {
- mAudioManager.setMode(AudioManager.MODE_NORMAL);
- mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
- mProfileConnectedDevices.clear();
- mProfileConnectedDevices.add(mBluetoothDevice);
- //with same HisyncId, first one will remain in UI.
- mProfileConnectedDevices.add(mRightBluetoothHapDevice);
- mProfileConnectedDevices.add(mLeftBluetoothHapDevice);
- mHearingAidActiveDevices.clear();
- mHearingAidActiveDevices.add(mLeftBluetoothHapDevice);
- mHearingAidActiveDevices.add(mRightBluetoothHapDevice);
- when(mHearingAidProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
- when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
- when(mHearingAidProfile.getHiSyncId(mLeftBluetoothHapDevice)).thenReturn(HISYNCID1);
- when(mHearingAidProfile.getHiSyncId(mRightBluetoothHapDevice)).thenReturn(HISYNCID1);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.isVisible()).isTrue();
- assertThat(mPreference.getSummary()).isEqualTo(mRightBluetoothHapDevice.getName());
- assertThat(mController.mConnectedDevices.contains(mRightBluetoothHapDevice)).isTrue();
- assertThat(mController.mConnectedDevices.contains(mLeftBluetoothHapDevice)).isFalse();
- }
-
- /**
- * Both hearing aid profile and A2dp Bluetooth devices are available, and two hearing aid
- * profile devices with different HisyncId. One of HAP device is active.
- * Preference should be visible
- * Preference summary should be the activated device name
- * ConnectedDevice should contain both HAP device with different HisyncId
- */
- @Test
- public void updateState_hapBtDeviceWithDifferentId_shouldSetActivatedDeviceName() {
- mAudioManager.setMode(AudioManager.MODE_NORMAL);
- mShadowAudioManager.setOutputDevice(DEVICE_OUT_HEARING_AID);
- mProfileConnectedDevices.clear();
- mProfileConnectedDevices.add(mBluetoothDevice);
- mProfileConnectedDevices.add(mLeftBluetoothHapDevice);
- mProfileConnectedDevices.add(mRightBluetoothHapDevice);
- mHearingAidActiveDevices.clear();
- mHearingAidActiveDevices.add(null);
- mHearingAidActiveDevices.add(mRightBluetoothHapDevice);
- when(mHearingAidProfile.getConnectedDevices()).thenReturn(mProfileConnectedDevices);
- when(mHearingAidProfile.getActiveDevices()).thenReturn(mHearingAidActiveDevices);
- when(mHearingAidProfile.getHiSyncId(mLeftBluetoothHapDevice)).thenReturn(HISYNCID1);
- when(mHearingAidProfile.getHiSyncId(mRightBluetoothHapDevice)).thenReturn(HISYNCID2);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.isVisible()).isTrue();
- assertThat(mPreference.getSummary()).isEqualTo(mRightBluetoothHapDevice.getName());
- assertThat(mController.mConnectedDevices).containsExactly(mBluetoothDevice,
- mLeftBluetoothHapDevice, mRightBluetoothHapDevice);
- }
-
@Test
public void findActiveDevice_onlyA2dpDeviceActive_returnA2dpDevice() {
when(mLocalBluetoothProfileManager.getHearingAidProfile()).thenReturn(null);
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDisclaimerItemFactory.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDisclaimerItemFactory.java
new file mode 100644
index 0000000..c50d4f1
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDisclaimerItemFactory.java
@@ -0,0 +1,41 @@
+/*
+ * 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.testutils.shadow;
+
+import android.content.Context;
+
+import com.android.settings.wifi.calling.DisclaimerItemFactory;
+import com.android.settings.wifi.calling.DisclaimerItem;
+
+import java.util.List;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+@Implements(DisclaimerItemFactory.class)
+public final class ShadowDisclaimerItemFactory {
+ private static List<DisclaimerItem> sMockDisclaimerItemList;
+
+ public static void setDisclaimerItemList(List<DisclaimerItem> list) {
+ sMockDisclaimerItemList = list;
+ }
+
+ @Implementation
+ public static List<DisclaimerItem> create(Context context, int subId) {
+ return sMockDisclaimerItemList;
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java
index 19cdfe3..30d4c21 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java
@@ -27,13 +27,28 @@
import org.robolectric.annotation.Implements;
import org.robolectric.shadow.api.Shadow;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@Implements(value = WifiManager.class)
public class ShadowWifiManager extends org.robolectric.shadows.ShadowWifiManager {
+ private List<PasspointConfiguration> mPasspointConfiguration;
+
public WifiConfiguration savedWifiConfig;
+ private WifiConfiguration mSavedApConfig;
+
+ @Implementation
+ protected WifiConfiguration getWifiApConfiguration() {
+ return mSavedApConfig;
+ }
+
+ @Implementation
+ protected boolean setWifiApConfiguration(WifiConfiguration wifiConfig) {
+ mSavedApConfig = wifiConfig;
+ return true;
+ }
@HiddenApi // @SystemApi
@Implementation
@@ -49,7 +64,15 @@
@Implementation
protected List<PasspointConfiguration> getPasspointConfigurations() {
- return Collections.emptyList();
+ return mPasspointConfiguration == null ? Collections.emptyList() : mPasspointConfiguration;
+ }
+
+ @Implementation
+ protected void addOrUpdatePasspointConfiguration(PasspointConfiguration config) {
+ if (mPasspointConfiguration == null) {
+ mPasspointConfiguration = new ArrayList<>();
+ }
+ mPasspointConfiguration.add(config);
}
@Implementation
diff --git a/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java
index dd0260b..b27b636 100644
--- a/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/AddUserWhenLockedPreferenceControllerTest.java
@@ -30,6 +30,7 @@
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settingslib.RestrictedSwitchPreference;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -57,6 +58,12 @@
mContext = RuntimeEnvironment.application;
mUserManager = ShadowUserManager.getShadow();
mController = new AddUserWhenLockedPreferenceController(mContext, "fake_key");
+ mUserManager.setSupportsMultipleUsers(true);
+ }
+
+ @After
+ public void tearDown() {
+ ShadowUserManager.reset();
}
@Test
@@ -72,6 +79,30 @@
}
@Test
+ public void updateState_NotAdmin_shouldNotDisplayPreference() {
+ mUserManager.setIsAdminUser(false);
+ final RestrictedSwitchPreference preference = mock(RestrictedSwitchPreference.class);
+
+ mController.updateState(preference);
+
+ verify(preference).setVisible(false);
+ }
+
+ @Test
+ public void updateState_Admin_shouldDisplayPreference() {
+ mUserManager.setIsAdminUser(true);
+ mUserManager.setUserSwitcherEnabled(true);
+ mUserManager.setSupportsMultipleUsers(true);
+ final AddUserWhenLockedPreferenceController controller =
+ new AddUserWhenLockedPreferenceController(mContext, "fake_key");
+ final RestrictedSwitchPreference preference = mock(RestrictedSwitchPreference.class);
+
+ controller.updateState(preference);
+
+ verify(preference).setVisible(true);
+ }
+
+ @Test
public void updateState_preferenceSetCheckedWhenSettingIsOn() {
final RestrictedSwitchPreference preference = mock(RestrictedSwitchPreference.class);
Global.putInt(mContext.getContentResolver(), Global.ADD_USERS_WHEN_LOCKED, 1);
diff --git a/tests/robotests/src/com/android/settings/wifi/calling/DisclaimerItemListAdapterTest.java b/tests/robotests/src/com/android/settings/wifi/calling/DisclaimerItemListAdapterTest.java
new file mode 100644
index 0000000..4cfc9ba
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/wifi/calling/DisclaimerItemListAdapterTest.java
@@ -0,0 +1,126 @@
+/*
+ * 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.wifi.calling;
+
+import static com.android.settings.wifi.calling.DisclaimerItemListAdapter
+ .DisclaimerItemViewHolder.ID_DISCLAIMER_ITEM_TITLE;
+import static com.android.settings.wifi.calling.DisclaimerItemListAdapter
+ .DisclaimerItemViewHolder.ID_DISCLAIMER_ITEM_DESCRIPTION;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyObject;
+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.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.android.settings.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+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;
+
+@RunWith(RobolectricTestRunner.class)
+public class DisclaimerItemListAdapterTest {
+
+ private static final int ITEM_POSITION = 0;
+ private static final int DISCLAIMER_TITLE_STRING_ID = 0;
+ private static final int DISCLAIMER_MESSAGE_STRING_ID = 1;
+
+ @Mock
+ private LayoutInflater mLayoutInflater;
+ @Mock
+ private TextView mTestView;
+ @Mock
+ private TextView mDescView;
+ @Mock
+ private View mView;
+ @Mock
+ private ViewGroup mViewGroup;
+ @Mock
+ private Context mContext;
+
+ private MockDisclaimerItem mDisclaimerItem;
+ private DisclaimerItemListAdapter mDisclaimerItemListAdapter;
+ private List<DisclaimerItem> mDisclaimerItemList = new ArrayList<>();
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mDisclaimerItem = spy(new MockDisclaimerItem(mContext, 0 /* subId */));
+ mDisclaimerItemList.add(mDisclaimerItem);
+
+ when(mLayoutInflater.inflate(anyInt(), anyObject(), anyBoolean())).thenReturn(mView);
+ when(mViewGroup.getContext()).thenReturn(mContext);
+ when(mViewGroup.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).thenReturn(
+ mLayoutInflater);
+ when(mView.findViewById(ID_DISCLAIMER_ITEM_TITLE)).thenReturn(mTestView);
+ when(mView.findViewById(ID_DISCLAIMER_ITEM_DESCRIPTION)).thenReturn(mDescView);
+ }
+
+ @Test
+ public void onBindViewHolder_haveItem_shouldSetText() {
+ final DisclaimerItemListAdapter.DisclaimerItemViewHolder viewHolder =
+ new DisclaimerItemListAdapter.DisclaimerItemViewHolder(mView);
+
+ mDisclaimerItemListAdapter = new DisclaimerItemListAdapter(mDisclaimerItemList);
+ mDisclaimerItemListAdapter.onCreateViewHolder(mViewGroup, 0 /* viewType */);
+ mDisclaimerItemListAdapter.onBindViewHolder(viewHolder, ITEM_POSITION);
+
+ // Check the text is set when the DisclaimerItem exists.
+ verify(viewHolder.titleView).setText(DISCLAIMER_TITLE_STRING_ID);
+ verify(viewHolder.descriptionView).setText(DISCLAIMER_MESSAGE_STRING_ID);
+ }
+
+ private class MockDisclaimerItem extends DisclaimerItem {
+ MockDisclaimerItem(Context context, int subId) {
+ super(context, subId);
+ }
+
+ @Override
+ protected int getTitleId() {
+ return DISCLAIMER_TITLE_STRING_ID;
+ }
+
+ @Override
+ protected int getMessageId() {
+ return DISCLAIMER_MESSAGE_STRING_ID;
+ }
+
+ @Override
+ protected String getName() {
+ return "MockDisclaimerItem";
+ }
+
+ @Override
+ protected String getPrefKey() {
+ return "mock_pref_key";
+ }
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/wifi/calling/ListWithEntrySummaryPreferenceTest.java b/tests/robotests/src/com/android/settings/wifi/calling/ListWithEntrySummaryPreferenceTest.java
new file mode 100644
index 0000000..307c0ac
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/wifi/calling/ListWithEntrySummaryPreferenceTest.java
@@ -0,0 +1,126 @@
+/*
+ * 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.wifi.calling;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.os.Parcelable;
+import android.widget.ListAdapter;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AlertDialog;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class ListWithEntrySummaryPreferenceTest {
+
+ private Context mContext;
+ private ListWithEntrySummaryPreference mPreference;
+
+ private CharSequence[] mDefaultEntries =
+ {"default_entry1", "default_entry2", "default_entry3"};
+ private CharSequence[] mDefaultEntryValues = {"0", "1", "2"};
+ private CharSequence[] mDefaultEntrySummaries =
+ {"default_summary1", "default_summary2", "default_summary3"};
+
+ private CharSequence[] mCustomEntries = {"custom_entry1", "custom_entry2"};
+ private CharSequence[] mCustomEntryValues = {"0", "1"};
+ private CharSequence[] mCustomEntrySummaries = {"custom_summary1", "custom_summary2"};
+
+ @Before
+ public void setUp() {
+ mContext = RuntimeEnvironment.application;
+ mContext.setTheme(R.style.Theme_Settings_Home);
+ mPreference = new ListWithEntrySummaryPreference(mContext, null);
+ mPreference.setEntries(mDefaultEntries);
+ mPreference.setEntryValues(mDefaultEntryValues);
+ mPreference.setEntrySummaries(mDefaultEntrySummaries);
+ }
+
+ @Test
+ public void initialize_defaultEntries_shouldDisplayDefalutEntries() {
+ AlertDialog dialog = showDialog(mPreference);
+ ListAdapter adapter = dialog.getListView().getAdapter();
+
+ int len = mDefaultEntries.length;
+ assertThat(adapter.getCount()).isEqualTo(len);
+ for (int i = 0; i < len; i++) {
+ TextView title = adapter.getView(i, null, null).findViewById(R.id.title);
+ TextView summary = adapter.getView(i, null, null).findViewById(R.id.summary);
+ assertThat(title.getText()).isEqualTo(mDefaultEntries[i]);
+ assertThat(summary.getText()).isEqualTo(mDefaultEntrySummaries[i]);
+ }
+ }
+
+ @Test
+ public void setEntries_customEntries_shouldUpdateEntries() {
+ mPreference.setEntries(mCustomEntries);
+ mPreference.setEntryValues(mCustomEntryValues);
+ mPreference.setEntrySummaries(mCustomEntrySummaries);
+
+ AlertDialog dialog = showDialog(mPreference);
+ ListAdapter adapter = dialog.getListView().getAdapter();
+
+ int len = mCustomEntries.length;
+ assertThat(adapter.getCount()).isEqualTo(len);
+ for (int i = 0; i < len; i++) {
+ TextView title = adapter.getView(i, null, null).findViewById(R.id.title);
+ TextView summary = adapter.getView(i, null, null).findViewById(R.id.summary);
+ assertThat(title.getText()).isEqualTo(mCustomEntries[i]);
+ assertThat(summary.getText()).isEqualTo(mCustomEntrySummaries[i]);
+ }
+ }
+
+ @Test
+ public void onSaveAndRestoreInstanceState_resumePreference_shouldNotChangeEntries() {
+ setEntries_customEntries_shouldUpdateEntries();
+
+ final Parcelable parcelable = mPreference.onSaveInstanceState();
+ ListWithEntrySummaryPreference preference
+ = new ListWithEntrySummaryPreference(mContext, null);
+ preference.setEntries(mDefaultEntries);
+ preference.setEntryValues(mDefaultEntryValues);
+ preference.setEntrySummaries(mDefaultEntrySummaries);
+ preference.onRestoreInstanceState(parcelable);
+
+ AlertDialog dialog = showDialog(preference);
+ ListAdapter adapter = dialog.getListView().getAdapter();
+
+ int len = mCustomEntries.length;
+ assertThat(adapter.getCount()).isEqualTo(len);
+ for (int i = 0; i < len; i++) {
+ TextView title = adapter.getView(i, null, null).findViewById(R.id.title);
+ TextView summary = adapter.getView(i, null, null).findViewById(R.id.summary);
+ assertThat(title.getText()).isEqualTo(mCustomEntries[i]);
+ assertThat(summary.getText()).isEqualTo(mCustomEntrySummaries[i]);
+ }
+ }
+
+ private AlertDialog showDialog(ListWithEntrySummaryPreference preference) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
+ preference.onPrepareDialogBuilder(builder, null);
+ return builder.show();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragmentTest.java
new file mode 100644
index 0000000..6c221e7
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragmentTest.java
@@ -0,0 +1,180 @@
+/*
+ * 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.wifi.calling;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+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.Activity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView.OnScrollListener;
+
+import com.android.settings.R;
+import com.android.settings.testutils.shadow.ShadowDisclaimerItemFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = ShadowDisclaimerItemFactory.class)
+public class WifiCallingDisclaimerFragmentTest {
+
+ @Mock
+ private Activity mActivity;
+ @Mock
+ private DisclaimerItem mDisclaimerItem;
+ @Mock
+ private LayoutInflater mLayoutInflater;
+ @Mock
+ private View mView;
+ @Mock
+ private ViewGroup mViewGroup;
+ @Mock
+ private Button mAgreeButton;
+ @Mock
+ private Button mDisagreeButton;
+ @Mock
+ private RecyclerView mRecyclerView;
+
+ @Captor
+ ArgumentCaptor<OnClickListener> mOnClickListenerCaptor;
+ @Captor
+ ArgumentCaptor<OnScrollListener> mOnScrollListenerCaptor;
+
+ private WifiCallingDisclaimerFragment mFragment;
+ private List<DisclaimerItem> mDisclaimerItemList = new ArrayList<>();
+ private List<DisclaimerItem> mEmptyDisclaimerItemList = new ArrayList<>();
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ mActivity = Robolectric.setupActivity(Activity.class);
+ mFragment = spy(new WifiCallingDisclaimerFragment());
+
+ doReturn(mActivity).when(mFragment).getActivity();
+
+ when(mLayoutInflater.inflate(anyInt(), anyObject(), anyBoolean())).thenReturn(mView);
+ when(mView.findViewById(R.id.agree_button)).thenReturn(mAgreeButton);
+ when(mView.findViewById(R.id.disagree_button)).thenReturn(mDisagreeButton);
+ when(mView.findViewById(R.id.disclaimer_item_list)).thenReturn(mRecyclerView);
+ when(mView.getId()).thenReturn(R.id.agree_button);
+
+ mOnScrollListenerCaptor = ArgumentCaptor.forClass(OnScrollListener.class);
+ doNothing().when(mRecyclerView).addOnScrollListener(mOnScrollListenerCaptor.capture());
+ mOnClickListenerCaptor = ArgumentCaptor.forClass(OnClickListener.class);
+ doNothing().when(mAgreeButton).setOnClickListener(mOnClickListenerCaptor.capture());
+
+ mDisclaimerItemList.add(mDisclaimerItem);
+ }
+
+ @Test
+ public void onCreate_notHaveItem_shouldFinishFragment() {
+ ShadowDisclaimerItemFactory.setDisclaimerItemList(mEmptyDisclaimerItemList);
+
+ mFragment.onCreate(null /* savedInstanceState */);
+
+ // Check the fragment is finished when the DisclaimerItemList is empty.
+ verify(mFragment).finish(Activity.RESULT_OK);
+ }
+
+ @Test
+ public void onCreate_haveItem_shouldNotFinishFragment() {
+ ShadowDisclaimerItemFactory.setDisclaimerItemList(mDisclaimerItemList);
+
+ mFragment.onCreate(null /* savedInstanceState */);
+
+ // Check the fragment is not finished when the DisclaimerItemList is not empty.
+ verify(mFragment, never()).finish(Activity.RESULT_OK);
+ }
+
+ @Test
+ public void onScrolled_canNotScroll_shouldEnableAgreeButton() {
+ ShadowDisclaimerItemFactory.setDisclaimerItemList(mDisclaimerItemList);
+
+ when(mRecyclerView.canScrollVertically(1)).thenReturn(false);
+
+ mFragment.onCreate(null /* savedInstanceState */);
+ mFragment.onCreateView(mLayoutInflater, mViewGroup, null /* savedInstanceState */);
+
+ mOnScrollListenerCaptor.getValue().onScrolled(mRecyclerView, 0, 0);
+
+ // Check the agreeButton is enabled when the view is scrolled to the bottom end.
+ verify(mAgreeButton).setEnabled(true);
+ // Check the OnScrollListener is removed when the view is scrolled to the bottom end.
+ verify(mRecyclerView).removeOnScrollListener(any());
+ }
+
+ @Test
+ public void onScrolled_canScroll_shouldNotEnableAgreeButton() {
+ ShadowDisclaimerItemFactory.setDisclaimerItemList(mDisclaimerItemList);
+
+ when(mRecyclerView.canScrollVertically(1)).thenReturn(true);
+
+ mFragment.onCreate(null /* savedInstanceState */);
+ mFragment.onCreateView(mLayoutInflater, mViewGroup, null /* savedInstanceState */);
+
+ mOnScrollListenerCaptor.getValue().onScrolled(mRecyclerView, 0, 0);
+
+ // Check the agreeButton is not enabled when the view is not scrolled to the bottom end.
+ verify(mAgreeButton, never()).setEnabled(anyBoolean());
+ // Check the OnScrollListener is not removed when the view is not scrolled to
+ // the bottom end.
+ verify(mRecyclerView, never()).removeOnScrollListener(any());
+ }
+
+ @Test
+ public void onClick_agreeButton_shouldFinishFragment() {
+ ShadowDisclaimerItemFactory.setDisclaimerItemList(mDisclaimerItemList);
+
+ mFragment.onCreate(null /* savedInstanceState */);
+ mFragment.onCreateView(mLayoutInflater, mViewGroup, null /* savedInstanceState */);
+
+ mOnClickListenerCaptor.getValue().onClick(mAgreeButton);
+
+ // Check the onAgreed callback is called when "CONTINUE" button is clicked.
+ verify(mDisclaimerItem).onAgreed();
+ // Check the WFC disclaimer fragment is finished when "CONTINUE" button is clicked.
+ verify(mFragment).finish(Activity.RESULT_OK);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
index c8b3920..ae88231 100644
--- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
@@ -16,40 +16,52 @@
package com.android.settings.wifi.calling;
+import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT;
import static com.google.common.truth.Truth.assertThat;
+import static junit.framework.Assert.assertEquals;
import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.Activity;
+import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
import android.telephony.TelephonyManager;
import android.telephony.ims.ProvisioningManager;
import android.view.View;
import android.widget.TextView;
-import androidx.preference.ListPreference;
+import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.ims.ImsConfig;
-import com.android.ims.ImsException;
import com.android.ims.ImsManager;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.widget.SwitchBar;
import com.android.settings.widget.ToggleSwitch;
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;
@@ -58,10 +70,18 @@
@RunWith(RobolectricTestRunner.class)
public class WifiCallingSettingsForSubTest {
+ private static final String BUTTON_WFC_MODE = "wifi_calling_mode";
+ private static final String BUTTON_WFC_ROAMING_MODE = "wifi_calling_roaming_mode";
+ private static final String TEST_EMERGENCY_ADDRESS_CARRIER_APP =
+ "com.android.settings/.wifi.calling.TestEmergencyAddressCarrierApp";
+
private TestFragment mFragment;
private Context mContext;
private TextView mEmptyView;
+ private final PersistableBundle mBundle = new PersistableBundle();
+ @Mock private static CarrierConfigManager sCarrierConfigManager;
+ @Mock private CarrierConfigManager mMockConfigManager;
@Mock private ImsManager mImsManager;
@Mock private TelephonyManager mTelephonyManager;
@Mock private PreferenceScreen mPreferenceScreen;
@@ -70,9 +90,12 @@
@Mock private ToggleSwitch mToggleSwitch;
@Mock private View mView;
@Mock private ImsConfig mImsConfig;
+ @Mock private ListWithEntrySummaryPreference mButtonWfcMode;
+ @Mock private ListWithEntrySummaryPreference mButtonWfcRoamingMode;
+ @Mock private Preference mUpdateAddress;
@Before
- public void setUp() throws NoSuchFieldException, ImsException {
+ public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
@@ -88,7 +111,9 @@
final Bundle bundle = new Bundle();
when(mFragment.getArguments()).thenReturn(bundle);
doNothing().when(mFragment).addPreferencesFromResource(anyInt());
- doReturn(mock(ListPreference.class)).when(mFragment).findPreference(any());
+ doReturn(mock(ListWithEntrySummaryPreference.class)).when(mFragment).findPreference(any());
+ doReturn(mButtonWfcMode).when(mFragment).findPreference(BUTTON_WFC_MODE);
+ doReturn(mButtonWfcRoamingMode).when(mFragment).findPreference(BUTTON_WFC_ROAMING_MODE);
doNothing().when(mFragment).finish();
doReturn(mView).when(mFragment).getView();
@@ -101,19 +126,41 @@
doReturn(mImsManager).when(mFragment).getImsManager();
doReturn(mImsConfig).when(mImsManager).getConfigInterface();
doReturn(true).when(mImsManager).isWfcProvisionedOnDevice();
+ doReturn(true).when(mImsManager).isWfcEnabledByUser();
+ doReturn(true).when(mImsManager).isNonTtyOrTtyOnVolteEnabled();
+ doReturn(ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED)
+ .when(mImsManager).getWfcMode(anyBoolean());
+
+ doReturn(mBundle).when(sCarrierConfigManager).getConfigForSubId(anyInt());
+ setDefaultCarrierConfigValues();
+
+ doReturn(sCarrierConfigManager).when(mActivity).getSystemService(
+ CarrierConfigManager.class);
+ doReturn(mContext.getResources()).when(mFragment).getResourcesForSubId();
+ doNothing().when(mFragment).startActivityForResult(any(Intent.class), anyInt());
mFragment.onAttach(mContext);
mFragment.onCreate(null);
mFragment.onActivityCreated(null);
}
+ private void setDefaultCarrierConfigValues() {
+ mBundle.putBoolean(
+ CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, false);
+ mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_MODE_BOOL, true);
+ mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL, true);
+ mBundle.putString(
+ CarrierConfigManager.KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING,
+ TEST_EMERGENCY_ADDRESS_CARRIER_APP);
+ }
+
@Test
public void getHelpResource_shouldReturn0() {
assertThat(mFragment.getHelpResource()).isEqualTo(0);
}
@Test
- public void onResume_provisioningAllowed_shouldNotFinish() throws ImsException {
+ public void onResume_provisioningAllowed_shouldNotFinish() {
// Call onResume while provisioning is allowed.
mFragment.onResume();
@@ -132,7 +179,7 @@
}
@Test
- public void onResumeOnPause_provisioningCallbackRegistration() throws ImsException {
+ public void onResumeOnPause_provisioningCallbackRegistration() throws Exception {
// Verify that provisioning callback is registered after call to onResume().
mFragment.onResume();
verify(mImsConfig).addConfigCallback(any(ProvisioningManager.Callback.class));
@@ -142,13 +189,163 @@
verify(mImsConfig).removeConfigCallback(any());
}
+ @Test
+ public void onResume_useWfcHomeModeConfigFalseAndEditable_shouldShowWfcRoaming() {
+ // Call onResume to update the WFC roaming preference.
+ mFragment.onResume();
+
+ // Check that WFC roaming preference is shown.
+ verify(mPreferenceScreen, times(1)).addPreference(mButtonWfcRoamingMode);
+ verify(mPreferenceScreen, never()).removePreference(mButtonWfcRoamingMode);
+ }
+
+ @Test
+ public void onResume_useWfcHomeModeConfigTrueAndEditable_shouldHideWfcRoaming() {
+ mBundle.putBoolean(
+ CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, true);
+ mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL, true);
+
+ // Call onResume to update the WFC roaming preference.
+ mFragment.onResume();
+
+ // Check that WFC roaming preference is hidden.
+ verify(mPreferenceScreen, never()).addPreference(mButtonWfcRoamingMode);
+ verify(mPreferenceScreen, times(1)).removePreference(mButtonWfcRoamingMode);
+ }
+
+ @Test
+ public void onResume_useWfcHomeModeConfigFalseAndNotEditable_shouldHideWfcRoaming() {
+ mBundle.putBoolean(
+ CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, false);
+ mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL, false);
+
+ // Call onResume to update the WFC roaming preference.
+ mFragment.onResume();
+
+ // Check that WFC roaming preference is hidden.
+ verify(mPreferenceScreen, never()).addPreference(mButtonWfcRoamingMode);
+ verify(mPreferenceScreen, times(1)).removePreference(mButtonWfcRoamingMode);
+ }
+
+ @Test
+ public void onResume_useWfcHomeModeConfigTrueAndNotEditable_shouldHideWfcRoaming() {
+ mBundle.putBoolean(
+ CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, true);
+ mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL, false);
+
+ // Call onResume to update the WFC roaming preference.
+ mFragment.onResume();
+
+ // Check that WFC roaming preference is hidden.
+ verify(mPreferenceScreen, never()).addPreference(mButtonWfcRoamingMode);
+ verify(mPreferenceScreen, times(1)).removePreference(mButtonWfcRoamingMode);
+ }
+
+ @Test
+ public void onPreferenceChange_useWfcHomeModeConfigFalse_shouldNotSetWfcRoaming() {
+ // Call onResume to update carrier config values.
+ mFragment.onResume();
+
+ // Set the WFC home mode.
+ mFragment.onPreferenceChange(mButtonWfcMode,
+ String.valueOf(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED));
+
+ // Check that only WFC home mode is set.
+ verify(mImsManager, times(1)).setWfcMode(
+ eq(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED),
+ eq(false));
+ verify(mImsManager, never()).setWfcMode(
+ eq(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED),
+ eq(true));
+ }
+
+ @Test
+ public void onPreferenceChange_useWfcHomeModeConfigTrue_shouldSetWfcRoaming() {
+ mBundle.putBoolean(
+ CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, true);
+
+ // Call onResume to update carrier config values.
+ mFragment.onResume();
+
+ // Set the WFC home mode.
+ mFragment.onPreferenceChange(mButtonWfcMode,
+ String.valueOf(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED));
+
+ // Check that both WFC home mode and roaming mode are set.
+ verify(mImsManager, times(1)).setWfcMode(
+ eq(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED),
+ eq(false));
+ verify(mImsManager, times(1)).setWfcMode(
+ eq(ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED),
+ eq(true));
+ }
+
+ @Test
+ public void onSwitchChanged_enableSetting_shouldLaunchWfcDisclaimerFragment() {
+ ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+
+ mFragment.onSwitchChanged(null, true);
+
+ // Check the WFC disclaimer fragment is launched.
+ verify(mFragment).startActivityForResult(intentCaptor.capture(),
+ eq(WifiCallingSettingsForSub.REQUEST_CHECK_WFC_DISCLAIMER));
+ Intent intent = intentCaptor.getValue();
+ assertThat(intent.getStringExtra(EXTRA_SHOW_FRAGMENT))
+ .isEqualTo(WifiCallingDisclaimerFragment.class.getName());
+ }
+
+ @Test
+ public void onActivityResult_finishWfcDisclaimerFragment_shouldLaunchCarrierActivity() {
+ ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+
+ // Emulate the WfcDisclaimerActivity finish.
+ mFragment.onActivityResult(WifiCallingSettingsForSub.REQUEST_CHECK_WFC_DISCLAIMER,
+ Activity.RESULT_OK, null);
+
+ // Check the WFC emergency address activity is launched.
+ verify(mFragment).startActivityForResult(intentCaptor.capture(),
+ eq(WifiCallingSettingsForSub.REQUEST_CHECK_WFC_EMERGENCY_ADDRESS));
+ Intent intent = intentCaptor.getValue();
+ assertEquals(intent.getComponent(), ComponentName.unflattenFromString(
+ TEST_EMERGENCY_ADDRESS_CARRIER_APP));
+ }
+
+ @Test
+ public void onActivityResult_finishCarrierActivity_shouldShowWfcPreference() {
+ ReflectionHelpers.setField(mFragment, "mButtonWfcMode", mButtonWfcMode);
+ ReflectionHelpers.setField(mFragment, "mButtonWfcRoamingMode", mButtonWfcRoamingMode);
+ ReflectionHelpers.setField(mFragment, "mUpdateAddress", mUpdateAddress);
+
+ mFragment.onActivityResult(WifiCallingSettingsForSub.REQUEST_CHECK_WFC_EMERGENCY_ADDRESS,
+ Activity.RESULT_OK, null);
+
+ // Check the WFC preferences is added.
+ verify(mPreferenceScreen).addPreference(mButtonWfcMode);
+ verify(mPreferenceScreen).addPreference(mButtonWfcRoamingMode);
+ verify(mPreferenceScreen).addPreference(mUpdateAddress);
+ // Check the WFC enable request.
+ verify(mImsManager).setWfcSetting(true);
+ }
+
+ @Test
+ public void onSwitchChanged_disableSetting_shouldNotLaunchWfcDisclaimerFragment() {
+ mFragment.onSwitchChanged(null, false);
+
+ // Check the WFC disclaimer fragment is not launched.
+ verify(mFragment, never()).startActivityForResult(any(Intent.class), anyInt());
+ }
+
protected class TestFragment extends WifiCallingSettingsForSub {
@Override
protected Object getSystemService(final String name) {
- if (Context.TELEPHONY_SERVICE.equals(name)) {
- return mTelephonyManager;
+ switch (name) {
+ case Context.TELEPHONY_SERVICE:
+ return mTelephonyManager;
+ case Context.CARRIER_CONFIG_SERVICE:
+ return sCarrierConfigManager;
+ default:
+ return null;
}
- return null;
}
}
}
diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java
index f9109ce..644e5e8 100644
--- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java
@@ -22,7 +22,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
@@ -48,7 +47,6 @@
import com.android.ims.ImsConfig;
import com.android.ims.ImsManager;
import com.android.settings.R;
-import com.android.settings.slices.CustomSliceManager;
import com.android.settings.slices.CustomSliceRegistry;
import com.android.settings.slices.SettingsSliceProvider;
import com.android.settings.slices.SliceBroadcastReceiver;
@@ -99,9 +97,6 @@
mFeatureFactory = FakeFeatureFactory.setupForTest();
mSlicesFeatureProvider = mFeatureFactory.getSlicesFeatureProvider();
- CustomSliceManager manager = new CustomSliceManager(mContext);
- when(mSlicesFeatureProvider.getCustomSliceManager(any(Context.class)))
- .thenReturn(manager);
mWfcSliceHelper = new FakeWifiCallingSliceHelper(mContext);
diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
index 640c426..db76722 100644
--- a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
@@ -384,9 +384,9 @@
}
@Test
- public void entityHeader_shouldHaveLabelSetToSsid() {
- String label = "ssid";
- when(mockAccessPoint.getSsidStr()).thenReturn(label);
+ public void entityHeader_shouldHaveLabelSetToTitle() {
+ String label = "title";
+ when(mockAccessPoint.getTitle()).thenReturn(label);
displayAndResume();
@@ -758,7 +758,9 @@
}
@Test
- public void forgetNetwork_Passpoint() {
+ public void forgetNetwork_v1_Passpoint() {
+ FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, false);
+
mockWifiConfig.networkId = 5;
when(mockWifiConfig.isPasspoint()).thenReturn(true);
@@ -776,9 +778,9 @@
mockWifiConfig.networkId = 5;
when(mockWifiConfig.isPasspoint()).thenReturn(true);
+ spyController.displayPreference(mockScreen);
FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, true);
- spyController.displayPreference(mockScreen);
mForgetClickListener.getValue().onClick(null);
verify(mockWifiManager, times(0)).removePasspointConfiguration(mockWifiConfig.FQDN);
diff --git a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceControllerTest.java
index 7f7ecc5..51944d8 100644
--- a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsPreferenceControllerTest.java
@@ -20,7 +20,9 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.ArgumentMatchers.any;
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;
@@ -32,6 +34,8 @@
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;
+import com.android.settings.core.FeatureFlags;
+import com.android.settings.development.featureflags.FeatureFlagPersistent;
import com.android.settings.testutils.shadow.ShadowAccessPoint;
import com.android.settings.testutils.shadow.ShadowThreadUtils;
import com.android.settings.testutils.shadow.ShadowWifiManager;
@@ -58,6 +62,7 @@
private Context mContext;
private WifiManager mWifiManager;
+ private SavedAccessPointsWifiSettings mSettings;
private SavedAccessPointsPreferenceController mController;
@Before
@@ -65,7 +70,9 @@
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
mWifiManager = mContext.getSystemService(WifiManager.class);
+ mSettings = spy(new SavedAccessPointsWifiSettings());
mController = spy(new SavedAccessPointsPreferenceController(mContext, "test_key"));
+ mController.setHost(mSettings);
when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
.thenReturn(mPreferenceCategory);
@@ -115,7 +122,7 @@
@Test
@Config(shadows = ShadowAccessPoint.class)
- public void refreshSavedAccessPoints_shouldListAllAPs() {
+ public void refreshSavedAccessPoints_shouldListNonSubscribedAPs() {
final WifiConfiguration config = new WifiConfiguration();
config.SSID = "SSID";
config.BSSID = "BSSID";
@@ -132,4 +139,18 @@
final AccessPointPreference pref = captor.getValue();
assertThat(pref.getTitle()).isEqualTo(config.SSID);
}
+
+ @Test
+ @Config(shadows = ShadowAccessPoint.class)
+ public void refreshSavedAccessPoints_shouldNotListSubscribedAPs() {
+ FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, true);
+
+ mWifiManager.addOrUpdatePasspointConfiguration(
+ SubscribedAccessPointsPreferenceControllerTest.createMockPasspointConfiguration());
+
+ mController.displayPreference(mPreferenceScreen);
+ mController.refreshSavedAccessPoints();
+
+ verify(mPreferenceCategory, never()).addPreference(any(AccessPointPreference.class));
+ }
}
diff --git a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettingsTest.java
index f76184c..746456e 100644
--- a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SavedAccessPointsWifiSettingsTest.java
@@ -28,6 +28,8 @@
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
+import com.android.settings.core.FeatureFlags;
+import com.android.settings.development.featureflags.FeatureFlagPersistent;
import com.android.settings.wifi.WifiConfigController;
import com.android.settings.wifi.WifiDialog;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -39,6 +41,7 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
@@ -55,6 +58,8 @@
@Mock
private AccessPoint mAccessPoint;
@Mock
+ private SubscribedAccessPointsPreferenceController mSubscribedApController;
+ @Mock
private SavedAccessPointsPreferenceController mSavedApController;
private TestFragment mSettings;
@@ -64,6 +69,8 @@
MockitoAnnotations.initMocks(this);
mSettings = spy(new TestFragment());
+ doReturn(mSubscribedApController).when(mSettings)
+ .use(SubscribedAccessPointsPreferenceController.class);
doReturn(mSavedApController).when(mSettings)
.use(SavedAccessPointsPreferenceController.class);
@@ -75,6 +82,8 @@
@Test
public void onForget_isPasspointConfig_shouldRefreshAPList() {
+ FeatureFlagPersistent.setEnabled(RuntimeEnvironment.application,
+ FeatureFlags.NETWORK_INTERNET_V2, false);
when(mAccessPoint.isPasspointConfig()).thenReturn(true);
ReflectionHelpers.setField(mSettings, "mSelectedAccessPoint", mAccessPoint);
@@ -84,6 +93,18 @@
}
@Test
+ public void onForget_isPasspointConfig_shouldRefreshSubscribedAPList() {
+ FeatureFlagPersistent.setEnabled(RuntimeEnvironment.application,
+ FeatureFlags.NETWORK_INTERNET_V2, true);
+ when(mAccessPoint.isPasspointConfig()).thenReturn(true);
+ ReflectionHelpers.setField(mSettings, "mSelectedAccessPoint", mAccessPoint);
+
+ mSettings.onForget(null);
+
+ verify(mSubscribedApController).postRefreshSubscribedAccessPoints();
+ }
+
+ @Test
public void onForget_shouldInvokeForgetApi() {
ReflectionHelpers.setField(mSettings, "mSelectedAccessPoint", mAccessPoint);
when(mAccessPoint.getConfig()).thenReturn(mWifiConfiguration);
diff --git a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceControllerTest.java
new file mode 100644
index 0000000..26933d8
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints/SubscribedAccessPointsPreferenceControllerTest.java
@@ -0,0 +1,170 @@
+/*
+ * 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.wifi.savedaccesspoints;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+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 static org.robolectric.Shadows.shadowOf;
+
+import android.content.Context;
+import android.content.pm.FeatureInfo;
+import android.content.pm.PackageManager;
+import android.net.wifi.WifiConfiguration;
+
+import android.net.wifi.hotspot2.PasspointConfiguration;
+import android.net.wifi.hotspot2.pps.HomeSp;
+import android.net.wifi.WifiEnterpriseConfig;
+import android.net.wifi.WifiManager;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.FeatureFlags;
+import com.android.settings.development.featureflags.FeatureFlagPersistent;
+import com.android.settings.testutils.shadow.ShadowAccessPoint;
+import com.android.settings.testutils.shadow.ShadowThreadUtils;
+import com.android.settings.testutils.shadow.ShadowWifiManager;
+import com.android.settingslib.wifi.AccessPointPreference;
+
+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 = {ShadowThreadUtils.class, ShadowWifiManager.class})
+public class SubscribedAccessPointsPreferenceControllerTest {
+
+ @Mock
+ private PreferenceScreen mPreferenceScreen;
+ @Mock
+ private PreferenceCategory mPreferenceCategory;
+
+ private Context mContext;
+ private WifiManager mWifiManager;
+ private SavedAccessPointsWifiSettings mSettings;
+ private SubscribedAccessPointsPreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
+ mWifiManager = mContext.getSystemService(WifiManager.class);
+ mSettings = spy(new SavedAccessPointsWifiSettings());
+ mController = spy(new SubscribedAccessPointsPreferenceController(mContext, "test_key"));
+ mController.setHost(mSettings);
+
+ when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
+ .thenReturn(mPreferenceCategory);
+ when(mPreferenceCategory.getContext()).thenReturn(mContext);
+
+ FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, true);
+ }
+
+ @Test
+ public void getAvailability_alwaysAvailable() {
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+ }
+
+ @Test
+ public void onStart_shouldRefreshApList() {
+ doNothing().when(mController).refreshSubscribedAccessPoints();
+
+ mController.onStart();
+
+ verify(mController).refreshSubscribedAccessPoints();
+ }
+
+ @Test
+ public void postRefresh_shouldRefreshApList() {
+ doNothing().when(mController).refreshSubscribedAccessPoints();
+
+ mController.postRefreshSubscribedAccessPoints();
+
+ verify(mController).refreshSubscribedAccessPoints();
+ }
+
+ @Test
+ public void forget_onSuccess_shouldRefreshApList() {
+ doNothing().when(mController).refreshSubscribedAccessPoints();
+
+ mController.onSuccess();
+
+ verify(mController).refreshSubscribedAccessPoints();
+ }
+
+ @Test
+ public void forget_onFailure_shouldRefreshApList() {
+ doNothing().when(mController).refreshSubscribedAccessPoints();
+
+ mController.onFailure(0 /* reason */);
+
+ verify(mController).refreshSubscribedAccessPoints();
+ }
+
+ @Test
+ @Config(shadows = ShadowAccessPoint.class)
+ public void refreshSubscribedAccessPoints_shouldNotListNonSubscribedAPs() {
+ final WifiConfiguration config = new WifiConfiguration();
+ config.SSID = "SSID";
+ config.BSSID = "BSSID";
+ config.networkId = 2;
+ mWifiManager.addNetwork(config);
+
+ mController.displayPreference(mPreferenceScreen);
+ mController.refreshSubscribedAccessPoints();
+
+ verify(mPreferenceCategory, never()).addPreference(any(AccessPointPreference.class));
+ }
+
+ @Test
+ @Config(shadows = ShadowAccessPoint.class)
+ public void refreshSubscribedAccessPoints_shouldListSubscribedAPs() {
+ mWifiManager.addOrUpdatePasspointConfiguration(createMockPasspointConfiguration());
+
+ mController.displayPreference(mPreferenceScreen);
+ mController.refreshSubscribedAccessPoints();
+
+ final ArgumentCaptor<AccessPointPreference> captor =
+ ArgumentCaptor.forClass(AccessPointPreference.class);
+ verify(mPreferenceCategory).addPreference(captor.capture());
+
+ final AccessPointPreference pref = captor.getValue();
+ assertThat(pref.getTitle()).isEqualTo("TESTPASSPOINT");
+ }
+
+ public static PasspointConfiguration createMockPasspointConfiguration() {
+ final PasspointConfiguration config = new PasspointConfiguration();
+ final HomeSp homeSp = new HomeSp();
+ homeSp.setFqdn("FQDN");
+ homeSp.setFriendlyName("TESTPASSPOINT");
+ config.setHomeSp(homeSp);
+ return config;
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java b/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java
index d681afe..520d988 100644
--- a/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java
@@ -36,6 +36,8 @@
import com.android.settings.R;
import com.android.settings.slices.CustomSliceRegistry;
+import com.android.settings.slices.SlicesFeatureProviderImpl;
+import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
import org.junit.Test;
@@ -52,11 +54,15 @@
private ContentResolver mResolver;
private WifiManager mWifiManager;
private ContextualWifiSlice mWifiSlice;
+ private FakeFeatureFactory mFeatureFactory;
@Before
public void setUp() {
mContext = spy(RuntimeEnvironment.application);
mResolver = mock(ContentResolver.class);
+ mFeatureFactory = FakeFeatureFactory.setupForTest();
+ mFeatureFactory.slicesFeatureProvider = new SlicesFeatureProviderImpl();
+ mFeatureFactory.slicesFeatureProvider.newUiSession();
doReturn(mResolver).when(mContext).getContentResolver();
mWifiManager = mContext.getSystemService(WifiManager.class);
@@ -65,10 +71,28 @@
mWifiManager.setWifiEnabled(true);
mWifiSlice = new ContextualWifiSlice(mContext);
+ mWifiSlice.sPreviouslyDisplayed = false;
}
@Test
public void getWifiSlice_hasActiveConnection_shouldReturnNull() {
+ mWifiSlice.sPreviouslyDisplayed = false;
+ final WifiConfiguration config = new WifiConfiguration();
+ config.SSID = "123";
+ mWifiManager.connect(config, null /* listener */);
+
+ final Slice wifiSlice = mWifiSlice.getSlice();
+
+ assertThat(wifiSlice).isNull();
+ }
+
+ @Test
+ public void getWifiSlice_newSession_hasActiveConnection_shouldReturnNull() {
+ // Session: use a non-active value
+ // previous displayed: yes
+ mWifiSlice.sPreviouslyDisplayed = true;
+ mWifiSlice.sActiveUiSession = ~mFeatureFactory.slicesFeatureProvider.getUiSessionToken();
+
final WifiConfiguration config = new WifiConfiguration();
config.SSID = "123";
mWifiManager.connect(config, null /* listener */);
@@ -80,7 +104,8 @@
@Test
public void getWifiSlice_previousDisplayed_hasActiveConnection_shouldHaveTitleAndToggle() {
- mWifiSlice.mPreviouslyDisplayed = true;
+ mWifiSlice.sActiveUiSession = mFeatureFactory.slicesFeatureProvider.getUiSessionToken();
+ mWifiSlice.sPreviouslyDisplayed = true;
final WifiConfiguration config = new WifiConfiguration();
config.SSID = "123";
mWifiManager.connect(config, null /* listener */);
@@ -101,7 +126,8 @@
@Test
public void getWifiSlice_contextualWifiSlice_shouldReturnContextualWifiSliceUri() {
- mWifiSlice.mPreviouslyDisplayed = true;
+ mWifiSlice.sActiveUiSession = mFeatureFactory.slicesFeatureProvider.getUiSessionToken();
+ mWifiSlice.sPreviouslyDisplayed = true;
final Slice wifiSlice = mWifiSlice.getSlice();
diff --git a/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java b/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java
index 01feb8e..75a9e11 100644
--- a/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java
@@ -34,8 +34,10 @@
import android.content.Context;
import android.content.Intent;
import android.net.NetworkInfo;
+import android.net.NetworkInfo.State;
import android.net.Uri;
import android.net.wifi.WifiManager;
+import android.os.Bundle;
import androidx.core.graphics.drawable.IconCompat;
import androidx.slice.Slice;
@@ -61,6 +63,7 @@
import org.robolectric.annotation.Implements;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
@@ -253,11 +256,42 @@
verify(mResolver).notifyChange(WIFI_SLICE_URI, null);
}
- @Test
- public void onConnectedChanged_shouldNotifyChange() {
- mWifiScanWorker.onConnectedChanged();
+ private AccessPoint createAccessPoint(String name, State state) {
+ final NetworkInfo info = mock(NetworkInfo.class);
+ doReturn(state).when(info).getState();
- verify(mResolver).notifyChange(WIFI_SLICE_URI, null);
+ final Bundle savedState = new Bundle();
+ savedState.putString("key_ssid", name);
+ savedState.putParcelable("key_networkinfo", info);
+ return new AccessPoint(mContext, savedState);
+ }
+
+ @Test
+ public void SliceAccessPoint_sameState_shouldBeTheSame() {
+ final AccessPoint ap1 = createAccessPoint(AP1_NAME, State.CONNECTED);
+ final AccessPoint ap2 = createAccessPoint(AP1_NAME, State.CONNECTED);
+
+ assertThat(mWifiScanWorker.areListsTheSame(Arrays.asList(ap1), Arrays.asList(ap2)))
+ .isTrue();
+ }
+
+ @Test
+ public void SliceAccessPoint_differentState_shouldBeDifferent() {
+ final AccessPoint ap1 = createAccessPoint(AP1_NAME, State.CONNECTING);
+ final AccessPoint ap2 = createAccessPoint(AP1_NAME, State.CONNECTED);
+
+ assertThat(mWifiScanWorker.areListsTheSame(Arrays.asList(ap1), Arrays.asList(ap2)))
+ .isFalse();
+ }
+ @Test
+ public void SliceAccessPoint_differentLength_shouldBeDifferent() {
+ final AccessPoint ap1 = createAccessPoint(AP1_NAME, State.CONNECTED);
+ final AccessPoint ap2 = createAccessPoint(AP1_NAME, State.CONNECTED);
+ final List<AccessPoint> list = new ArrayList<>();
+ list.add(ap1);
+ list.add(ap2);
+
+ assertThat(mWifiScanWorker.areListsTheSame(list, Arrays.asList(ap1))).isFalse();
}
@Implements(SliceBackgroundWorker.class)
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java
index d8cd878a..06716db 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPreferenceControllerTest.java
@@ -112,36 +112,6 @@
}
@Test
- public void testReceiver_turnOnAirplaneMode_clearPreferenceSummary() {
- final ContentResolver cr = mock(ContentResolver.class);
- when(mContext.getContentResolver()).thenReturn(cr);
- Settings.Global.putInt(cr, Settings.Global.AIRPLANE_MODE_ON, 1);
- mController.displayPreference(mScreen);
- final BroadcastReceiver receiver = ReflectionHelpers.getField(mController, "mReceiver");
- final Intent broadcast = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
-
- receiver.onReceive(RuntimeEnvironment.application, broadcast);
-
- assertThat(mPreference.getSummary().toString()).isEqualTo(
- "Unavailable because airplane mode is turned on");
- }
-
- @Test
- public void testReceiver_turnOffAirplaneMode_displayOffSummary() {
- final ContentResolver cr = mock(ContentResolver.class);
- when(mContext.getContentResolver()).thenReturn(cr);
- Settings.Global.putInt(cr, Settings.Global.AIRPLANE_MODE_ON, 0);
- mController.displayPreference(mScreen);
- final BroadcastReceiver receiver = ReflectionHelpers.getField(mController, "mReceiver");
- final Intent broadcast = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
-
- receiver.onReceive(RuntimeEnvironment.application, broadcast);
-
- assertThat(mPreference.getSummary().toString()).isEqualTo(
- "Not sharing internet or content with other devices");
- }
-
- @Test
public void testHandleWifiApStateChanged_stateEnabling_showEnablingSummary() {
mController.handleWifiApStateChanged(WifiManager.WIFI_AP_STATE_ENABLING, 0 /* reason */);
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceControllerTest.java
index cb58778..3d15197 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceControllerTest.java
@@ -26,6 +26,7 @@
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiConfiguration.KeyMgmt;
import android.net.wifi.WifiManager;
import androidx.preference.PreferenceScreen;
@@ -56,12 +57,12 @@
private PreferenceScreen mScreen;
private WifiTetherSSIDPreferenceController mController;
- private ValidatedEditTextPreference mPreference;
+ private WifiTetherSsidPreference mPreference;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mPreference = new ValidatedEditTextPreference(RuntimeEnvironment.application);
+ mPreference = new WifiTetherSsidPreference(RuntimeEnvironment.application);
when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
@@ -121,4 +122,28 @@
assertThat(mController.getSSID()).isEqualTo(config.SSID);
assertThat(mPreference.getSummary()).isEqualTo(config.SSID);
}
+
+ @Test
+ public void displayPreference_wifiApDisabled_shouldHideQrCodeIcon() {
+ when(mWifiManager.isWifiApEnabled()).thenReturn(false);
+ final WifiConfiguration config = new WifiConfiguration();
+ config.SSID = "test_1234";
+ config.allowedKeyManagement.set(KeyMgmt.WPA2_PSK);
+ when(mWifiManager.getWifiApConfiguration()).thenReturn(config);
+
+ mController.displayPreference(mScreen);
+ assertThat(mController.isQrCodeButtonAvailable()).isEqualTo(false);
+ }
+
+ @Test
+ public void displayPreference_wifiApEnabled_shouldShowQrCodeIcon() {
+ when(mWifiManager.isWifiApEnabled()).thenReturn(true);
+ final WifiConfiguration config = new WifiConfiguration();
+ config.SSID = "test_1234";
+ config.allowedKeyManagement.set(KeyMgmt.WPA2_PSK);
+ when(mWifiManager.getWifiApConfiguration()).thenReturn(config);
+
+ mController.displayPreference(mScreen);
+ assertThat(mController.isQrCodeButtonAvailable()).isEqualTo(true);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java
index 1a5a228..30358da 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java
@@ -73,17 +73,7 @@
mController = new WifiTetherSwitchBarController(mContext,
new SwitchBarController(mSwitchBar));
}
-
- @Test
- public void constructor_airplaneModeOn_switchBarDisabled() {
- Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
- Settings.Global.AIRPLANE_MODE_ON, 1);
-
- new WifiTetherSwitchBarController(mContext, new SwitchBarController(mSwitchBar));
-
- assertThat(mSwitchBar.isEnabled()).isFalse();
- }
-
+
@Test
public void startTether_fail_resetSwitchBar() {
when(mNetworkPolicyManager.getRestrictBackground()).thenReturn(false);
diff --git a/tests/unit/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java b/tests/unit/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
index 447e2b4..653e55e 100644
--- a/tests/unit/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
+++ b/tests/unit/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
@@ -86,6 +86,7 @@
private ContextualCard getContextualCard(Uri sliceUri) {
return new ContextualCard.Builder()
.setName("test_card")
+ .setRankingScore(0.5f)
.setCardType(ContextualCard.CardType.SLICE)
.setSliceUri(sliceUri)
.build();
diff --git a/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java b/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
index 405ed4a..38211b3 100644
--- a/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
+++ b/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
@@ -147,7 +147,7 @@
@Test
public void rotateScreen_shouldGetCorrectWifiNetworkConfig() {
final WifiNetworkConfig wifiNetworkConfig = new WifiNetworkConfig("WPA", "WifiSsid",
- "password", /* hiddenSsid */ false, /* networkId */ 0);
+ "password", /* hiddenSsid */ false, /* networkId */ 0, /* isHotspot */ true);
final Intent intent = new Intent(Settings.ACTION_PROCESS_WIFI_EASY_CONNECT_URI);
intent.setData(Uri.parse(VALID_WIFI_DPP_QR_CODE));
@@ -173,5 +173,6 @@
assertThat(restoredWifiNetworkConfig.getPreSharedKey()).isEqualTo("password");
assertThat(restoredWifiNetworkConfig.getHiddenSsid()).isFalse();
assertThat(restoredWifiNetworkConfig.getNetworkId()).isEqualTo(0);
+ assertThat(restoredWifiNetworkConfig.isHotspot()).isTrue();
}
}