Merge "AnomalyTester: Remove dependency on bouncycastle."
diff --git a/Android.mk b/Android.mk
index df85bbc..e816dfd 100644
--- a/Android.mk
+++ b/Android.mk
@@ -12,6 +12,7 @@
include $(CLEAR_VARS)
LOCAL_PACKAGE_NAME := Settings
+LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := true
LOCAL_MODULE_TAGS := optional
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index d258c46..9332ac8 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -281,8 +281,6 @@
android:value="com.android.settings.wifi.WifiSettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
- <meta-data android:name="android.metadata.SLICE_URI"
- android:value="content://com.android.settings.slices/wifi" />
</activity>
<activity
@@ -3296,6 +3294,21 @@
</intent-filter>
</receiver>
+ <!-- Couldn't be triggered from outside of settings. Statsd can trigger it because we send
+ PendingIntent to it-->
+ <receiver android:name=".fuelgauge.batterytip.AnomalyDetectionReceiver"
+ android:exported="false" />
+
+ <receiver android:name=".fuelgauge.batterytip.AnomalyConfigReceiver">
+ <intent-filter>
+ <action android:name="android.app.action.STATSD_STARTED"/>
+ <action android:name="android.intent.action.BOOT_COMPLETED"/>
+ </intent-filter>
+ </receiver>
+
+ <service android:name=".fuelgauge.batterytip.AnomalyCleanUpJobService"
+ android:permission="android.permission.BIND_JOB_SERVICE" />
+
<!-- This is the longest AndroidManifest.xml ever. -->
</application>
</manifest>
diff --git a/res/layout/condition_container.xml b/res/layout/condition_container.xml
index 808c4ac..dd91bbb 100644
--- a/res/layout/condition_container.xml
+++ b/res/layout/condition_container.xml
@@ -30,13 +30,13 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardUseCompatPadding="true"
- app:cardElevation="2dp">
+ app:cardElevation="2dp"
+ app:cardCornerRadius="@dimen/suggestion_card_corner_radius">
<android.support.v7.widget.RecyclerView
android:id="@+id/data"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@color/material_grey_300"
android:scrollbars="none"/>
</android.support.v7.widget.CardView>
diff --git a/res/layout/condition_tile.xml b/res/layout/condition_tile.xml
index 7d1db40..a31274f 100644
--- a/res/layout/condition_tile.xml
+++ b/res/layout/condition_tile.xml
@@ -19,7 +19,6 @@
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@color/condition_card_background"
android:orientation="vertical">
<LinearLayout
diff --git a/res/layout/instant_app_buttons.xml b/res/layout/instant_app_buttons.xml
index 9c2e915..1ef9f41 100644
--- a/res/layout/instant_app_buttons.xml
+++ b/res/layout/instant_app_buttons.xml
@@ -20,24 +20,39 @@
android:id="@+id/instant_app_button_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingTop="4dp"
- android:paddingStart="8dp"
- android:paddingEnd="8dp"
- android:visibility="gone">
- <Button
- android:id="@+id/install"
- style="@style/ActionPrimaryButton"
- android:enabled="false"
+ android:gravity="center"
+ android:paddingTop="24dp"
+ android:paddingStart="68dp"
+ android:paddingEnd="24dp"
+ android:orientation="horizontal">
+
+ <FrameLayout
android:layout_width="0dp"
android:layout_weight="1"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:text="@string/install_text"/>
+ android:layout_height="wrap_content">
+ <Button
+ android:id="@+id/install"
+ style="@style/ActionPrimaryButton"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="4dp"
+ android:text="@string/install_text"/>
+ <Button
+ android:id="@+id/launch"
+ style="@style/ActionPrimaryButton"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="4dp"
+ android:text="@string/launch_instant_app"/>
+ </FrameLayout>
+ <Space
+ android:layout_width="16dp"
+ android:layout_height="wrap_content" />
<Button
android:id="@+id/clear_data"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
- android:layout_gravity="center"
+ android:layout_marginBottom="4dp"
android:text="@string/clear_instant_app_data"/>
</LinearLayout>
diff --git a/res/layout/preference_app.xml b/res/layout/preference_app.xml
index f9dd6b2..550ab34 100644
--- a/res/layout/preference_app.xml
+++ b/res/layout/preference_app.xml
@@ -31,6 +31,7 @@
android:gravity="start|center_vertical"
android:minWidth="56dp"
android:orientation="horizontal"
+ android:paddingStart="4dp"
android:paddingEnd="8dp"
android:paddingTop="4dp"
android:paddingBottom="4dp">
diff --git a/res/layout/suggestion_container.xml b/res/layout/suggestion_container.xml
index 409f39e..95a00cc 100644
--- a/res/layout/suggestion_container.xml
+++ b/res/layout/suggestion_container.xml
@@ -20,7 +20,7 @@
style="@style/SuggestionConditionStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingTop="10dp"
+ android:paddingTop="2dp"
android:orientation="vertical">
<LinearLayout
diff --git a/res/layout/wifi_dialog.xml b/res/layout/wifi_dialog.xml
index f18f21b..2c4a1ed 100644
--- a/res/layout/wifi_dialog.xml
+++ b/res/layout/wifi_dialog.xml
@@ -54,9 +54,7 @@
style="@style/wifi_item_edit_content"
android:hint="@string/wifi_ssid_hint"
android:singleLine="true"
- android:inputType="textNoSuggestions">
- <requestFocus/>
- </EditText>
+ android:inputType="textNoSuggestions" />
<LinearLayout android:id="@+id/ssid_too_long_warning"
android:layout_width="match_parent"
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index b28ffd1..f8b3862 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Beskerm jou tablet"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Beskerm jou toestel"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Beskerm jou foon"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Stel \'n rugsteunskermslot vir bykomende sekuriteit"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Keer ander mense om hierdie tablet sonder jou toestemming te gebruik deur kenmerke vir toestelbeskerming te aktiveer. Kies die skermslot wat jy wil gebruik."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Keer ander mense om hierdie toestel sonder jou toestemming te gebruik deur kenmerke vir toestelbeskerming te aktiveer. Kies die skermslot wat jy wil gebruik."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Keer ander mense om hierdie foon sonder jou toestemming te gebruik deur kenmerke vir toestelbeskerming te aktiveer. Kies die skermslot wat jy wil gebruik."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wi‑Fi-warmkolopstelling"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK-warmkol"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Onbeskikbaar omdat vliegtuigmodus aangeskakel is"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi-oproepe"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Rek oproepdekking met Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Skakel Wi-Fi-oproepe aan"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Veiligheidsinligting"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Jy het nie \'n dataverbinding nie. Gaan na %s op enige rekenaar wat aan die internet gekoppel is om hierdie inligting nou te bekyk."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Laai tans…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Stel skermslot"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Stel wagwoord vir sekuriteit"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Stel wagwoord vir vingerafdruk"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Stel patroon vir vingerafdruk"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Stel PIN vir sekuriteit"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Stel PIN vir vingerafdruk"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Stel patroon vir sekuriteit"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Voer jou wagwoord weer in"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Bevestig jou patroon"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Voer jou PIN weer in"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Hierdie toestel as MIDI te gebruik"</string>
<string name="usb_use" msgid="3372728031108932425">"Gebruik USB vir"</string>
<string name="usb_use_also" msgid="557340935190819370">"Gebruik USB ook vir"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Laai tans hierdie toestel"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Laai tans gekoppelde toestel"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"gebruik"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Maak program skoon"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Wil jy hierdie kitsprogram verwyder?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Maak oop"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Speletjies"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Audiolêers"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Gebruikte spasie"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 91bebd3..94a62c3 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"ለጡባዊዎ ጥበቃ ያድርጉ"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"ለመሣሪያዎ ጥበቃ ያድርጉ"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"ለእርስዎ ስልክ ጥበቃ ይድርጉ"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"ለተጨማሪ ደህንነት ሲባል የምትኬ ማያ ገጽ መቆለፊያን ያቀናብሩ"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"የመሣሪያ ጥበቃ ባህሪያትን በማግበር ሌሎች ይህን ጡባዊ ያለእርስዎ ፈቃድ እንዳይጠቀሙበት ይከልክሉ። መጠቀም የሚፈልጉትን የማያ ገጽ መቆለፊያ ይምረጡ።"</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"የመሣሪያ ጥበቃ ማድረጊያ ባሕሪዎችን በማግበር ያለ እርስዎ ፈቃድ ሌሎች ይህን መሣሪያ እንዳይጠቀሙ ይከላከሉዋቸው። መጠቀም የሚፈልጉትን ማያ ገጽ መቆለፊያ ይምረጡ።"</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"የመሣሪያ ጥበቃ ባህሪያትን በማግበር ሌሎች ይህን ስልክ ያለእርስዎ ፈቃድ እንዳይጠቀሙበት ይከልክሉ። መጠቀም የሚፈልጉትን የማያ ገጽ መቆለፊያ ይምረጡ።"</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"የWi‑Fi መገናኛ ነጥብ ማዋቀር"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK መገናኛ ነጥብ"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Android ድረስ ነጥብ"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"የአውሮፕላን ሁነታ ስለበራ አይገኝም"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"የWi-Fi ጥሪ ማድረጊያ"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"ከWi‑Fi የጥሪ ሽፋንን ያራዝሙ"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Wi-Fi Callingን ያብሩ"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"የደህንነት መረጃ"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"የውሂብ ግንኙነት የለዎትም። ይህን መረጃ አሁን ለማየት ከበይነመረብ ጋር ከተገናኘ ማንኛውም ኮምፒዩተር ሆነው ወደ %s ይሂዱ።"</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"በማስገባት ላይ..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"ማያ ገጽ መቆለፊያውን ያዘጋጁ"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"ለደህንነት ሲባል የይለፍ ቃል ያቀናብሩ"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"የጣት አሻራን ለመጠቀም የይለፍ ቃል ያቀናብሩ"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"የጣት አሻራን ለመጠቀም፣ ሥርዓተ ጥለትን ያቀናብሩ"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"ለደህንነት ሲባል ፒን ያቀናብሩ"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"የጣት አሻራን ለመጠቀም ፒን ያቀናብሩ"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"ለደህንነት ሲባል ሥርዓተ-ጥለትን ያቀናብሩ"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"የእርስዎን ይለፍ ቃል ደግመው ያስገቡ"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"ስርዓተ ጥለትዎን ያረጋግጡ"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"የእርስዎን ፒን ደግመው ያስገቡ"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"ይህን መሣሪያ እንደ MIDI ይጠቀሙበት"</string>
<string name="usb_use" msgid="3372728031108932425">"ዩኤስቢ ተጠቀም ለ"</string>
<string name="usb_use_also" msgid="557340935190819370">"እንዲሁም ዩኤስቢን በተጨማሪ ተጠቀም ለ፦"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"ዩ ኤስ ቢ"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"የዚህን መሣሪያ ኃይል በመሙላት ላይ"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"የተገናኘ መሣሪያ ኃይል በመሙላት ላይ"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"ጥቅም ላይ ውሏል"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"መተግበሪያን አጽዳ"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"ይህን ቅጽበታዊ መተግበሪያ ማስወገድ ይፈልጋሉ?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"ክፈት"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"ጨዋታዎች"</string>
<string name="audio_files_title" msgid="4777048870657911307">"የኦዲዮ ፋይሎች"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"ጥቅም ላይ የዋለው ቦታ"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 0000fd8..85669f2 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -494,8 +494,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"حماية جهازك اللوحي"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"حماية جهازك"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"حماية هاتفك"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"يجب تعيين قفل شاشة احتياطي لزيادة الأمان."</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"يمكنك منع الآخرين من استخدام هذا الجهاز اللوحي بدون إذنك من خلال تنشيط ميزات حماية الجهاز. اختر قفل الشاشة الذي تريد استخدامه."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"يمكنك منع الآخرين من استخدام هذا الجهاز بدون إذنك من خلال تنشيط ميزات حماية الجهاز. اختر قفل الشاشة الذي تريد استخدامه."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"يمكنك منع الآخرين من استخدام هذا الهاتف بدون إذنك من خلال تنشيط ميزات حماية الجهاز. اختر قفل الشاشة الذي تريد استخدامه."</string>
@@ -972,8 +971,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"إعداد نقطة اتصال Wi‑Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"نقطة اتصال AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"غير متاح نظرًا لتشغيل وضع الطائرة."</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"الاتصال عبر Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"مدّ تغطية المكالمة مع Wi-Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"تشغيل الاتصال عبر Wi-Fi"</string>
@@ -1543,17 +1541,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"معلومات الأمان"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"ليس لديك اتصال بيانات. لعرض هذه المعلومات الآن، انتقل إلى %s من أي كمبيوتر متصل بالإنترنت."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"جارٍ التحميل…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"تعيين شاشة التأمين"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"يجب تعيين كلمة مرور لأغراض الأمان."</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"لاستخدام بصمة الإصبع، عيّن كلمة مرور"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"لاستخدام بصمة الإصبع، يُرجى رسم نقش من ابتكارك"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"يجب تعيين رقم تعريف شخصي لأغراض الأمان."</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"لاستخدام بصمة الإصبع، عيّن رقم التعريف الشخصي"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"يجب تعيين نقش لأغراض الأمان."</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"أعد إدخال كلمة المرور"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"تأكيد نقشك"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"أعد إدخال رقم التعريف الشخصي"</string>
@@ -3544,6 +3538,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"يمكنك استخدام هذا الجهاز باعتباره MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"استخدام USB في"</string>
<string name="usb_use_also" msgid="557340935190819370">"استخدام USB أيضًا من أجل"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"شحن هذا الجهاز"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"شحن الجهاز المتصل"</string>
@@ -4064,8 +4062,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"مستخدمة"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"مسح التطبيق"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"هل تريد إزالة هذا التطبيق الفوري؟"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"فتح"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"الألعاب"</string>
<string name="audio_files_title" msgid="4777048870657911307">"ملفات صوتية"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"المساحة المستخدمة"</string>
diff --git a/res/values-as-nokeys/strings.xml b/res/values-as-nokeys/strings.xml
new file mode 100644
index 0000000..acab21b
--- /dev/null
+++ b/res/values-as-nokeys/strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="applications_settings_summary" msgid="6616938758022986257">"এপ্লিকেশ্বনবোৰ পৰিচালনা কৰক"</string>
+</resources>
diff --git a/res/values-as/arrays.xml b/res/values-as/arrays.xml
new file mode 100644
index 0000000..e1c748f
--- /dev/null
+++ b/res/values-as/arrays.xml
@@ -0,0 +1,500 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 2007 The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="timezone_filters">
+ <item msgid="5296756001147094692">"আমেৰিকা"</item>
+ <item msgid="3005562397632768392">"ইউৰোপ"</item>
+ <item msgid="5696915123093701218">"আফ্ৰিকা"</item>
+ <item msgid="4439789052790868249">"এছিয়া"</item>
+ <item msgid="956915953069815961">"অষ্ট্ৰেলিয়া"</item>
+ <item msgid="5345178126174698955">"প্ৰশান্ত মহাসাগৰীয়"</item>
+ <item msgid="8392017019801393511">"সকলো"</item>
+ </string-array>
+ <string-array name="screen_timeout_entries">
+ <item msgid="3342301044271143016">"১৫ ছেকেণ্ড"</item>
+ <item msgid="8881760709354815449">"৩০ ছেকেণ্ড"</item>
+ <item msgid="7589406073232279088">"১ মিনিট"</item>
+ <item msgid="7001195990902244174">"২ মিনিট"</item>
+ <item msgid="7489864775127957179">"৫ মিনিট"</item>
+ <item msgid="2314124409517439288">"১০ মিনিট"</item>
+ <item msgid="6864027152847611413">"৩০ মিনিট"</item>
+ </string-array>
+ <string-array name="dream_timeout_entries">
+ <item msgid="3149294732238283185">"কেতিয়াও নকৰিব"</item>
+ <item msgid="2194151041885903260">"১৫ ছেকেণ্ড"</item>
+ <item msgid="5892295237131074341">"৩০ ছেকেণ্ড"</item>
+ <item msgid="3538441365970038213">"১ মিনিট"</item>
+ <item msgid="412343871668955639">"২ মিনিট"</item>
+ <item msgid="5076853889688991690">"৫ মিনিট"</item>
+ <item msgid="1903860996174927898">"১০ মিনিট"</item>
+ <item msgid="6415509612413178727">"৩০ মিনিট"</item>
+ </string-array>
+ <string-array name="lock_after_timeout_entries">
+ <item msgid="8929270399652145290">"তৎক্ষণাৎ"</item>
+ <item msgid="6736512735606834431">"৫ ছেকেণ্ড"</item>
+ <item msgid="8044619388267891375">"১৫ ছেকেণ্ড"</item>
+ <item msgid="1822002388249545488">"৩০ ছেকেণ্ড"</item>
+ <item msgid="8538071621211916519">"১ মিনিট"</item>
+ <item msgid="5663439580228932882">"২ মিনিট"</item>
+ <item msgid="49888496216106852">"৫ মিনিট"</item>
+ <item msgid="9002737361305019353">"১০ মিনিট"</item>
+ <item msgid="4322676235684793329">"৩০ মিনিট"</item>
+ </string-array>
+ <string-array name="entries_font_size">
+ <item msgid="8166647333858618801">"সৰু"</item>
+ <item msgid="6986443533756848935">"ডিফল্ট"</item>
+ <item msgid="38373998008112077">"ডাঙৰ"</item>
+ <item msgid="7635254317531872272">"সকলোতকৈ ডাঙৰ"</item>
+ </string-array>
+ <string-array name="wifi_status">
+ <item msgid="1922181315419294640"></item>
+ <item msgid="8934131797783724664">"স্কেন কৰি থকা হৈছে…"</item>
+ <item msgid="8513729475867537913">"সংযোগ কৰি থকা হৈছে…"</item>
+ <item msgid="515055375277271756">"বিস্বাশযোগ্যতা প্ৰমাণ কৰি থকা হৈছে …"</item>
+ <item msgid="1943354004029184381">"আইপি ঠিকনা সংগ্ৰহ কৰি থকা হৈছে…"</item>
+ <item msgid="4221763391123233270">"সংযোগ কৰা হ’ল"</item>
+ <item msgid="624838831631122137">"স্থগিত"</item>
+ <item msgid="7979680559596111948">"সংযোগ বিচ্ছিন্ন কৰি থকা হৈছে"</item>
+ <item msgid="1634960474403853625">"সংযোগ বিচ্ছিন্ন"</item>
+ <item msgid="746097431216080650">"অসফল"</item>
+ <item msgid="6367044185730295334">"অৱৰোধিত"</item>
+ <item msgid="503942654197908005">"কিছুসময়ৰ বাবে দুৰ্বল সংযোগ দেখুওৱা হোৱা নাই"</item>
+ </string-array>
+ <string-array name="wifi_status_with_ssid">
+ <item msgid="7714855332363650812"></item>
+ <item msgid="8878186979715711006">"স্কেন কৰি থকা হৈছে…"</item>
+ <item msgid="355508996603873860">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ৰ সৈতে সংযোগ কৰি থকা হৈছে…"</item>
+ <item msgid="554971459996405634">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ৰ জৰিয়তে সত্যাপন কৰি থকা হৈছে…"</item>
+ <item msgid="7928343808033020343">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ৰ আইপি ঠিকনা পৰা সংগ্ৰহ কৰি থকা হৈছে…"</item>
+ <item msgid="8937994881315223448">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ৰ সৈতে সংযোগ কৰা হ\'ল"</item>
+ <item msgid="1330262655415760617">"স্থগিত"</item>
+ <item msgid="7698638434317271902">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ৰ পৰা সংযোগ বিচ্ছিন্ন কৰি থকা হৈছে…"</item>
+ <item msgid="197508606402264311">"সংযোগ বিচ্ছিন্ন"</item>
+ <item msgid="8578370891960825148">"বিফল হৈছে"</item>
+ <item msgid="5660739516542454527">"অৱৰোধিত"</item>
+ <item msgid="1805837518286731242">"কিছুসময়ৰ বাবে দুৰ্বল সংযোগ দেখুওৱা হোৱা নাই"</item>
+ </string-array>
+ <!-- no translation found for wifi_security:0 (8491993170197127709) -->
+ <!-- no translation found for wifi_security:1 (6524315248437318854) -->
+ <!-- no translation found for wifi_security:2 (1532568756571457140) -->
+ <!-- no translation found for wifi_security:3 (3620707702811709779) -->
+ <!-- no translation found for wifi_security_no_eap:0 (2084555984818107151) -->
+ <!-- no translation found for wifi_security_no_eap:1 (397579322683471524) -->
+ <!-- no translation found for wifi_security_no_eap:2 (1968820975358150484) -->
+ <string-array name="wifi_eap_method">
+ <item msgid="1160193392455075561">"পিইএপি"</item>
+ <item msgid="7981731051382306293">"TLS"</item>
+ <item msgid="2892994535305020162">"TTLS"</item>
+ <item msgid="435667726254379514">"PWD"</item>
+ <item msgid="8549485714107012129">"ছিম"</item>
+ <item msgid="1023893786681286517">"AKA"</item>
+ <item msgid="3030483188676375009">"একে\'এ\'"</item>
+ </string-array>
+ <string-array name="eap_method_without_sim_auth">
+ <item msgid="4047867891913819797">"PEAP"</item>
+ <item msgid="641030570679578504">"TLS"</item>
+ <item msgid="3079489731769553856">"TTLS"</item>
+ <item msgid="35269224158638258">"PWD"</item>
+ </string-array>
+ <!-- no translation found for wifi_ap_band_config_full:0 (1085243288162893079) -->
+ <!-- no translation found for wifi_ap_band_config_full:1 (5531376834915607202) -->
+ <!-- no translation found for wifi_ap_band_config_full:2 (3580217704310339410) -->
+ <!-- no translation found for wifi_ap_band_config_2G_only:0 (7006771583217001015) -->
+ <!-- no translation found for wifi_ap_band_config_2G_only:1 (8904289885593822837) -->
+ <string-array name="wifi_p2p_wps_setup">
+ <item msgid="5085064298144493867">"পুশ্ব বুটাম"</item>
+ <item msgid="1624323946324499595">"সংযুক্ত ডিভাইচৰ পৰা পিন"</item>
+ <item msgid="5366790421523328066">"এই ডিভাইচৰ পিন"</item>
+ </string-array>
+ <string-array name="wifi_p2p_status">
+ <item msgid="1701505390737218306">"সংযোগ কৰা হ’ল"</item>
+ <item msgid="3189211552661432651">"নিমন্ত্ৰিত"</item>
+ <item msgid="3206450250360237549">"অসফল"</item>
+ <item msgid="7785896708926971207">"উপলব্ধ"</item>
+ <item msgid="2330782789550628803">"সীমাৰ বাহিৰত"</item>
+ </string-array>
+ <string-array name="bluetooth_visibility_timeout_entries">
+ <item msgid="8151962652413645395">"২ মিনিট"</item>
+ <item msgid="8675215713017289017">"৫ মিনিট"</item>
+ <item msgid="477015974247590543">"১ ঘণ্টা"</item>
+ <item msgid="5198271470953124739">"কেতিয়াও সময় উকলি নাযায়"</item>
+ </string-array>
+ <string-array name="bluetooth_max_connected_audio_devices">
+ <item msgid="60897909354162249">"ডিফ\'ল্ট"</item>
+ <item msgid="7584056855393485416">"2"</item>
+ <item msgid="844570832050176311">"৩"</item>
+ <item msgid="1896812737336024220">"৪"</item>
+ <item msgid="2664420770707984266">"৫"</item>
+ </string-array>
+ <string-array name="bluetooth_max_connected_audio_devices_values">
+ <item msgid="1992185266918208754">"১"</item>
+ <item msgid="2731443086402670729">"২"</item>
+ <item msgid="74627748729027880">"৩"</item>
+ <item msgid="2654447223197666662">"৪"</item>
+ <item msgid="7026157954713482328">"৫"</item>
+ </string-array>
+ <string-array name="wifi_signal">
+ <item msgid="2245412278046491293">"দুৰ্বল"</item>
+ <item msgid="2042505933058940139">"দুৰ্বল"</item>
+ <item msgid="1344546617235886412">"গ্ৰহণযোগ্য"</item>
+ <item msgid="6019931571712517411">"উচ্চ"</item>
+ <item msgid="8986346415847956850">"উত্তম"</item>
+ </string-array>
+ <string-array name="data_usage_data_range">
+ <item msgid="5013973108901348144">"যোৱা ৩০ দিন"</item>
+ <item msgid="6600989128423965319">"ডেটা ব্যৱহাৰ চক্ৰ..."</item>
+ </string-array>
+ <string-array name="usage_stats_display_order_types">
+ <item msgid="2100172576767439288">"ব্যৱহাৰৰ সময়"</item>
+ <item msgid="4796160515314745154">"অন্তিমবাৰ ব্যৱহাৰ কৰা হৈছিল"</item>
+ <item msgid="2502754479975776899">"এপৰ নাম"</item>
+ </string-array>
+ <string-array name="wifi_eap_entries">
+ <item msgid="8615575908717909498">"পিইএপি"</item>
+ <item msgid="8667872640594311615">"TLS"</item>
+ <item msgid="7182812872984827322">"TTLS"</item>
+ <item msgid="2318274046749286642">"PWD"</item>
+ </string-array>
+ <string-array name="wifi_peap_phase2_entries">
+ <item msgid="2577747762745812488">"নাই"</item>
+ <item msgid="937786527870979616">"MSCHAPV2"</item>
+ <item msgid="5302613883318643629">"GTC"</item>
+ </string-array>
+ <string-array name="wifi_peap_phase2_entries_with_sim_auth">
+ <item msgid="5760470455461128892">"নাই"</item>
+ <item msgid="7480272092408291086">"MSCHAPV2"</item>
+ <item msgid="5881794903338319324">"GTC"</item>
+ <item msgid="5610607665198791980">"ছিম"</item>
+ <item msgid="2860798636241124128">"AKA"</item>
+ <item msgid="8926455723452645935">"AKA\'"</item>
+ </string-array>
+ <string-array name="wifi_phase2_entries">
+ <item msgid="1818786254010764570">"নাই"</item>
+ <item msgid="6189918678874123056">"PAP"</item>
+ <item msgid="1524112260493662517">"MSCHAP"</item>
+ <item msgid="5923246669412752932">"MSCHAPV2"</item>
+ <item msgid="8651992560135239389">"GTC"</item>
+ </string-array>
+ <string-array name="wifi_ip_settings">
+ <item msgid="3906714200993111074">"DHCP"</item>
+ <item msgid="628395202971532382">"নিশ্চল"</item>
+ </string-array>
+ <string-array name="wifi_proxy_settings">
+ <item msgid="4473276491748503377">"নাই"</item>
+ <item msgid="8673874894887358090">"হস্তকৃত"</item>
+ <item msgid="168893341855953140">"প্ৰক্সি স্বয়ং-কনফিগাৰেশ্বন"</item>
+ </string-array>
+ <string-array name="apn_auth_entries">
+ <item msgid="3856896061242872146">"নাই"</item>
+ <item msgid="5756844015743664882">"PAP"</item>
+ <item msgid="535934025797984365">"CHAP"</item>
+ <item msgid="8383098660619805783">"PAP বা CHAP"</item>
+ </string-array>
+ <string-array name="apn_protocol_entries">
+ <item msgid="4852355456199302715">"IPv4"</item>
+ <item msgid="4394161344888484571">"IPv6"</item>
+ <item msgid="8084938354605535381">"IPv4/IPv6"</item>
+ </string-array>
+ <string-array name="bearer_entries">
+ <item msgid="1697455674244601285">"অনিৰ্দিষ্ট"</item>
+ <item msgid="1317061551798123908">"এলটিই"</item>
+ <item msgid="5005435684511894770">"HSPAP"</item>
+ <item msgid="7700603056475539235">"HSPA"</item>
+ <item msgid="245973007602397887">"HSUPA"</item>
+ <item msgid="6291566767651194016">"HSDPA"</item>
+ <item msgid="2005841400859926251">"UMTS"</item>
+ <item msgid="3757385691174882861">"EDGE"</item>
+ <item msgid="2979115073474306864">"জিপিআৰএছ"</item>
+ <item msgid="2271750502778879106">"eHRPD"</item>
+ <item msgid="4173379084783381337">"EVDO_B"</item>
+ <item msgid="2033682802005776093">"EVDO_A"</item>
+ <item msgid="5753917125831466719">"EVDO_0"</item>
+ <item msgid="4713807936577071142">"1xRTT"</item>
+ <item msgid="1142355797022021906">"IS95B"</item>
+ <item msgid="7471182818083460781">"IS95A"</item>
+ </string-array>
+ <string-array name="mvno_type_entries">
+ <item msgid="4367119357633573465">"নাই"</item>
+ <item msgid="6062567900587138000">"SPN"</item>
+ <item msgid="2454085083342423481">"IMSI"</item>
+ <item msgid="2681427309183221543">"GID"</item>
+ </string-array>
+ <string-array name="app_install_location_entries">
+ <item msgid="8151497958991952759">"আভ্যন্তৰীণ ডিভাইচ সঞ্চয়াগাৰ"</item>
+ <item msgid="3738430123799803530">"গুচাব পৰা SD কাৰ্ড"</item>
+ <item msgid="4498124044785815005">"ছিষ্টেমটোক সিদ্ধান্ত ল’বলৈ দিয়ক"</item>
+ </string-array>
+ <string-array name="app_ops_categories">
+ <item msgid="6358963769537892925">"অৱস্থান"</item>
+ <item msgid="255608127647030286">"ব্যক্তিগত"</item>
+ <item msgid="4588829735729884491">"মেছেজিং"</item>
+ <item msgid="886742181977884584">"মিডিয়া"</item>
+ <item msgid="7924928667052300589">"ডিভাইচ"</item>
+ </string-array>
+ <string-array name="app_ops_summaries">
+ <item msgid="4979188868761515915">"আনুমানিক অৱস্থান"</item>
+ <item msgid="5789673140227507995">"সঠিক অৱস্থান"</item>
+ <item msgid="1061584358377390581">"জিপিএছ"</item>
+ <item msgid="5387405117297558954">"কম্পন"</item>
+ <item msgid="3434165993711230924">"সম্পৰ্কসমূহ পঢ়ক"</item>
+ <item msgid="616161687718081936">"সম্পৰ্কসমূহ সংশোধন কৰক"</item>
+ <item msgid="7638002295329050091">"কলৰ লগ পঢ়ক"</item>
+ <item msgid="6546959730920410907">"কলৰ লগ সংশোধন কৰক"</item>
+ <item msgid="446877710771379667">"কেলেণ্ডাৰ পঢ়ক"</item>
+ <item msgid="7674458294386319722">"কেলেণ্ডাৰ সাল-সলনি কৰক"</item>
+ <item msgid="8281201165558093009">"ৱাই-ফাই স্কেন"</item>
+ <item msgid="8694611243479480497">"জাননী"</item>
+ <item msgid="7776439107987345446">"চেল স্কেন"</item>
+ <item msgid="514615766544675057">"ফ\'ন ক\'ল কৰক"</item>
+ <item msgid="8181415497109310680">"এছএমএছ পঢ়ক"</item>
+ <item msgid="6816551144382117307">"এছএমএছ লিখক"</item>
+ <item msgid="4600463921908905030">"SMS পাওক"</item>
+ <item msgid="5958926493289432745">"জৰূৰীকালীন এছএমএছ পাওক"</item>
+ <item msgid="4945269495221089540">"এমএমএছ পাওক"</item>
+ <item msgid="5570472453573929087">"WAP পুশ্ব পাওক"</item>
+ <item msgid="7125408150230860501">"এছএমএছ পঠিয়াওক"</item>
+ <item msgid="7080337936612188061">"আইচিচি এছএমএছ পঢ়ক"</item>
+ <item msgid="587124103118495063">"আইচিচি এছএমএছ লিখক"</item>
+ <item msgid="2320577158869025503">"ছেটিংবোৰ সংশোধন কৰক"</item>
+ <item msgid="1545733463471924009">"ওপৰত আঁকক"</item>
+ <item msgid="3609046903962454582">"জাননীত প্ৰৱেশ কৰক"</item>
+ <item msgid="4671646036128214513">"কেমেৰা"</item>
+ <item msgid="1097324338692486211">"ধ্বনি ৰেকৰ্ড কৰক"</item>
+ <item msgid="5031552983987798163">"অডিঅ’ প্লে কৰক"</item>
+ <item msgid="8374996688066472414">"ক্লিপব\'ৰ্ড পঢ়ক"</item>
+ <item msgid="3045529469061083747">"ক্লিপব\'ৰ্ড সংশোধন কৰক"</item>
+ <item msgid="5124443975763747838">"মিডিয়া বুটামসমূহ"</item>
+ <item msgid="4547883971364273343">"অডিঅ\' ফ\'কাছ"</item>
+ <item msgid="2603878814882344450">"মাষ্টাৰ ভলিউম"</item>
+ <item msgid="7136963238377062018">"ধ্বনিৰ ভলিউম"</item>
+ <item msgid="4270236897655923007">"ৰিঙৰ ভলিউম"</item>
+ <item msgid="6325739889222559394">"মিডিয়াৰ ভলিউম"</item>
+ <item msgid="5762123934816216821">"এলাৰ্মৰ ভলিউম"</item>
+ <item msgid="785049718065337473">"জাননীৰ ভলিউম"</item>
+ <item msgid="6700305533746877052">"ব্লুটুথ ভলিউম"</item>
+ <item msgid="2029227495214047094">"সক্ৰিয় কৰি ৰাখক"</item>
+ <item msgid="26109888160231211">"অৱস্থান নিৰীক্ষণ কৰক"</item>
+ <item msgid="5753382310468855812">"উচ্চ ক্ষমতাসম্পন্ন অৱস্থান নিৰীক্ষণ কৰক"</item>
+ <item msgid="3356591542543137332">"ব্যৱহাৰ পৰিসংখ্যা লাভ কৰক"</item>
+ <item msgid="3073734345226842233">"মাইক্ৰ\'ফ\'ন মিউট/আনমিউট কৰক"</item>
+ <item msgid="2111767435887685265">"ট’ষ্ট দেখুৱাওক"</item>
+ <item msgid="1091168669714823370">"মিডিয়া প্ৰ’জেক্ট কৰক"</item>
+ <item msgid="485564189219029300">"VPN সক্ৰিয় কৰক"</item>
+ <item msgid="7155384795265164395">"ৱালপেপাৰ লিখক"</item>
+ <item msgid="1835836196806147034">"সহায়ৰ গাঁঠনি"</item>
+ <item msgid="5989890403088155055">"সহায়ক স্ক্ৰীণশ্বট"</item>
+ <item msgid="8582699692765917557">"ফ\'নৰ স্থিতি পঢ়ক"</item>
+ <item msgid="1474039653814954902">"ভইচমেইল যোগ কৰক"</item>
+ <item msgid="7222837656938871633">"ছিপ ব্যৱহাৰ কৰক"</item>
+ <item msgid="6108267038969274380">"বৰ্হিগামী কল সম্পাদন কৰক"</item>
+ <item msgid="4823402479973873358">"ফিংগাৰপ্ৰিণ্ট"</item>
+ <item msgid="5895843015407713543">"শৰীৰৰ ছেন্সৰসমূহ"</item>
+ <item msgid="1436446526955010826">"চেল সম্প্ৰচাৰসমূহ পঢ়ক"</item>
+ <item msgid="884172201575690484">"নকল অৱস্থান"</item>
+ <item msgid="3591971310048485247">"সঞ্চয়াগাৰত পঢ়ক"</item>
+ <item msgid="4041187808621866119">"সঞ্চয়াগাৰত লিখক"</item>
+ <item msgid="6628873315024166197">"স্ক্ৰীণ অন কৰক"</item>
+ <item msgid="3253368931113490863">"একাউণ্টবোৰ বিচাৰক"</item>
+ <item msgid="780392378084812901">"নেপথ্যত চলাওক"</item>
+ <item msgid="2629748510881309577">"দিব্যাংসকলৰ বাবে থকা সুবিধাসমূহৰ ভলিউম"</item>
+ </string-array>
+ <string-array name="app_ops_labels">
+ <item msgid="6602854600289714121">"অৱস্থান"</item>
+ <item msgid="8677040780775113033">"অৱস্থান"</item>
+ <item msgid="1660743989948992916">"অৱস্থান"</item>
+ <item msgid="8791172739860195290">"কম্পন"</item>
+ <item msgid="383413555642128046">"সম্পৰ্কসূচী পঢ়ক"</item>
+ <item msgid="3654594895269697313">"সম্পৰ্কসূচী সংশোধন"</item>
+ <item msgid="7928393476362362538">"কল লগ পঢ়ক"</item>
+ <item msgid="6248591205254641116">"কল লগ সলনি কৰক"</item>
+ <item msgid="6093344633066170692">"কেলেণ্ডাৰ পঢ়ক"</item>
+ <item msgid="1334886368750347692">"কেলেণ্ডাৰ সংশোধন কৰক"</item>
+ <item msgid="1638204101698708656">"অৱস্থান"</item>
+ <item msgid="2154671955760380322">"প\'ষ্ট জাননী"</item>
+ <item msgid="4282477730595931828">"অৱস্থান"</item>
+ <item msgid="4891423912898525905">"ফ\'ন নম্বৰত কল কৰক"</item>
+ <item msgid="2623604824935968113">"এছএমএছ/এমএমএছ পঢ়ক"</item>
+ <item msgid="4420177125221176306">"এছএমএছ/এমএমএছ লিখক"</item>
+ <item msgid="3986142739951490025">"SMS/MMS পাওক"</item>
+ <item msgid="3984213795861739778">"এছএমএছ/এমএমএছ পাওক"</item>
+ <item msgid="3656243523752472788">"এছএমএছ/এমএমএছ পাওক"</item>
+ <item msgid="8105802370238551510">"SMS/MMS পাওক"</item>
+ <item msgid="1407766984645388488">"এছএমএছ/এমএমএছ পঠিয়াওক"</item>
+ <item msgid="3527273606643794973">"এছএমএছ/এমএমএছ পঢ়ক"</item>
+ <item msgid="4370895547001583812">"SMS/MMS লিখক"</item>
+ <item msgid="4218544235221631789">"ছেটিংসমূহ সংশোধন কৰক"</item>
+ <item msgid="736541391767350377">"ওপৰত আঁকক"</item>
+ <item msgid="5530815681721654194">"প্ৰৱেশৰ জাননীসমূহ"</item>
+ <item msgid="781213371706962767">"কেমেৰা"</item>
+ <item msgid="1720492593061838172">"ধ্বনি ৰেকৰ্ড কৰক"</item>
+ <item msgid="3493046322001257041">"অডিঅ\' প্লে কৰক"</item>
+ <item msgid="136815868796597058">"ক্লিপব\'ৰ্ড পঢ়ক"</item>
+ <item msgid="5238692940326972503">"ক্লিপব\'ৰ্ড সংশোধন কৰক"</item>
+ <item msgid="5753789168376302997">"মিডিয়া বুটাম"</item>
+ <item msgid="3265262911688671938">"অডিঅ\' ফ\'কাছ"</item>
+ <item msgid="2098976479485046797">"মাষ্টাৰ ভলিউম"</item>
+ <item msgid="5660213838861789350">"কণ্ঠস্বৰৰ ভলিউম"</item>
+ <item msgid="7983336752371254444">"ৰিঙৰ ভলিউম"</item>
+ <item msgid="7878027809189330917">"মধ্যমীয়া ভলিউম"</item>
+ <item msgid="7260546305036218513">"এলাৰ্মৰ ভলিউম"</item>
+ <item msgid="9103719301075748925">"জাননীৰ ভলিউম"</item>
+ <item msgid="7025966722295861512">"ব্লুটুথ ভলিউম"</item>
+ <item msgid="4665183401128289653">"জাগ্ৰত কৰি ৰাখক"</item>
+ <item msgid="8584357129746649222">"অৱস্থান"</item>
+ <item msgid="7669257279311110599">"অৱস্থান"</item>
+ <item msgid="3459320345690097795">"ব্যৱহাৰ পৰিসংখ্যা লাভ কৰক"</item>
+ <item msgid="1312534577834048535">"মাইক্ৰ\'ফ\'ন মিউট/আনমিউট কৰক"</item>
+ <item msgid="427580389823724225">"ট\'ষ্ট দেখুৱাওক"</item>
+ <item msgid="4992007785575926253">"মিডিয়া প্ৰ’জেক্ট কৰক"</item>
+ <item msgid="2482631530338029480">"ভিপিএন সক্ৰিয় কৰক"</item>
+ <item msgid="1662979573471871926">"ৱালপেপাৰ যোৰ দিয়ক"</item>
+ <item msgid="5964768335278263478">"সহায়ৰ গাঁথনি"</item>
+ <item msgid="2657138701132782702">"সহায় স্ক্ৰীণশ্বট"</item>
+ <item msgid="8571369610363539266">"ফ\'নৰ স্থিতি পঢ়ক"</item>
+ <item msgid="4542463358215230845">"ভইচমেইল যোগ কৰক"</item>
+ <item msgid="864565065016166003">"ছিপ ব্যৱহাৰ কৰক"</item>
+ <item msgid="1958009349883195116">"বৰ্হিগামী কল সম্পাদন কৰক"</item>
+ <item msgid="8526563410140613458">"ফিংগাৰপ্ৰিণ্ট"</item>
+ <item msgid="7864822459293570891">"শৰীৰৰ ছেন্সৰসমূহ"</item>
+ <item msgid="6798698496904810960">"চেল সম্প্ৰচাৰবোৰ পঢ়ক"</item>
+ <item msgid="5242052845700875820">"নকল অৱস্থান"</item>
+ <item msgid="1246296877820358565">"সঞ্চয়াগাৰ পঢ়ক"</item>
+ <item msgid="2404067308793740341">"সঞ্চয়াগাৰত লিখক"</item>
+ <item msgid="5832543806893763620">"স্ক্ৰীণ অন কৰক"</item>
+ <item msgid="5258373962467495905">"একাউণ্টবোৰ বিচাৰক"</item>
+ <item msgid="334625385979270703">"নেপথ্যত চলাওক"</item>
+ <item msgid="9039213578110332702">"দিব্যাংসকলৰ বাবে থকা সুবিধাসমূহৰ ভলিউম"</item>
+ </string-array>
+ <string-array name="long_press_timeout_selector_titles">
+ <item msgid="3511504869290423954">"চুটি"</item>
+ <item msgid="2560532955514699713">"মধ্যমীয়া"</item>
+ <item msgid="2372711992605524591">"দীঘল"</item>
+ </string-array>
+ <string-array name="captioning_typeface_selector_titles">
+ <item msgid="1319652728542138112">"ডিফ\'ল্ট"</item>
+ <item msgid="1016452621833735880">"ছানছ-ছেৰিফ"</item>
+ <item msgid="2496277987934654454">"ছানছ-ছেৰিফ ঘনীকৃত"</item>
+ <item msgid="7247838127505318669">"ছান-ছেৰিফ ম\'ন\'স্পেচ"</item>
+ <item msgid="4478414822462359763">"ছেৰিফ"</item>
+ <item msgid="7502451783483660829">"ছেৰিফ ম\'ন\'স্পেচ"</item>
+ <item msgid="639503332147461010">"অনানুষ্ঠানিক"</item>
+ <item msgid="7967169925231332424">"পকোৱা আখৰ"</item>
+ <item msgid="561832997193039673">"সৰু বৰফলাৰ আখৰ"</item>
+ </string-array>
+ <string-array name="captioning_font_size_selector_titles">
+ <item msgid="4800919809575254054">"নিচেই সৰু"</item>
+ <item msgid="6781094565687692782">"সৰু"</item>
+ <item msgid="8222123259497646551">"সাধাৰণ"</item>
+ <item msgid="5813217276778560466">"ডাঙৰ"</item>
+ <item msgid="9044232017390975191">"অতি ডাঙৰ"</item>
+ </string-array>
+ <string-array name="captioning_edge_type_selector_titles">
+ <item msgid="4733815704128258753">"ডিফ\'ল্ট"</item>
+ <item msgid="3217099060748617005">"নাই"</item>
+ <item msgid="7467615139904599420">"ৰূপৰেখা"</item>
+ <item msgid="5623165557468608975">"ছাঁযুক্ত আখৰ"</item>
+ <item msgid="8088451174058214588">"উঠঙা"</item>
+ <item msgid="3821418743395480313">"পোটোকা পৰা"</item>
+ </string-array>
+ <string-array name="captioning_opacity_selector_titles">
+ <item msgid="7622491218136667566">"২৫%"</item>
+ <item msgid="2367156416247936773">"৫০%"</item>
+ <item msgid="5395560410107149298">"৭৫%"</item>
+ <item msgid="8342334626783983353">"১০০%"</item>
+ </string-array>
+ <string-array name="captioning_preset_selector_titles">
+ <item msgid="7009918361545506251">"এপৰ ডিফ\'ল্টসমূহ ব্যৱহাৰ কৰক"</item>
+ <item msgid="1770533843436933500">"ক\'লাৰ ওপৰত বগা"</item>
+ <item msgid="758587126802411846">"বগা ওপৰত ক’লা"</item>
+ <item msgid="1495307195241623402">"ক\'লাৰ ওপৰত হালধীয়া"</item>
+ <item msgid="6039700130994371612">"নীলাৰ ওপৰত হালধীয়া"</item>
+ <item msgid="7169235156349580064">"নিজৰ উপযোগিতা অনুযায়ী তৈয়াৰ কৰা"</item>
+ </string-array>
+ <string-array name="vpn_types_long">
+ <item msgid="2732002039459078847">"পিপিটিপি ভিপিএন"</item>
+ <item msgid="3799752201662127867">"পূৰ্বে ভাগ-বতৰা কৰা কীসমূহৰ সৈতে L2TP/IPSec ভিপিএন"</item>
+ <item msgid="4725504331295252103">"প্ৰমাণপত্ৰসহ L2TP/IPSec ভিপিএন"</item>
+ <item msgid="7526551163264034377">"পূৰ্বতে শ্বেয়াৰ কৰা কী আৰু Xauth সত্যাপনসহ IPSec ভিপিএন"</item>
+ <item msgid="8064740940687465039">"প্ৰমাণপত্ৰ আৰু Xauth বিশ্ৱাসযোগ্যতা প্ৰামাণিকৰণৰ সৈতে IPSec ভিপিএন"</item>
+ <item msgid="4946199982372391490">"প্ৰমাণপত্ৰ আৰু হাইব্ৰিড সত্যাপনসহ IPSec ভিপিএন"</item>
+ </string-array>
+ <string-array name="vpn_states">
+ <item msgid="8621078286418985762">"সংযোগ বিচ্ছিন্ন"</item>
+ <item msgid="6692305604213080515">"আৰম্ভ কৰা হৈছে…"</item>
+ <item msgid="8001704909356800092">"সংযোগ কৰি থকা হৈছে…"</item>
+ <item msgid="4039737283841672166">"সংযোজিত হৈ আছে"</item>
+ <item msgid="4042143101664725090">"সময় উকলিছে"</item>
+ <item msgid="7664124146786465092">"বিফল হৈছে"</item>
+ </string-array>
+ <string-array name="security_settings_premium_sms_values">
+ <item msgid="7389829271787670252">"সোধক"</item>
+ <item msgid="5077768429488260031">"কেতিয়াও অনুমতি নিদিব"</item>
+ <item msgid="1417929597727989746">"চিৰদিনৰ বাবে অনুমোদন"</item>
+ </string-array>
+ <string-array name="ram_states">
+ <item msgid="3944681673818150669">"সাধাৰণ"</item>
+ <item msgid="3256987280393708586">"মজলীয়া"</item>
+ <item msgid="4662917179231875995">"নিম্ন"</item>
+ <item msgid="5264929699714647509">"সংকটপূৰ্ণ"</item>
+ <item msgid="5606155978847838966">"?"</item>
+ </string-array>
+ <string-array name="proc_stats_memory_states">
+ <item msgid="8845855295876909468">"সাধাৰণ"</item>
+ <item msgid="866544120205026771">"মজলীয়া"</item>
+ <item msgid="7851902244436886890">"নিম্ন"</item>
+ <item msgid="3022922196817563960">"জটিল"</item>
+ </string-array>
+ <string-array name="proc_stats_process_states">
+ <item msgid="5069825997142785829">"নেৰানেপেৰা"</item>
+ <item msgid="5779398140277006695">"শীৰ্ষ কাৰ্যকলাপ"</item>
+ <item msgid="1439598363694578255">"গুৰুত্বপূৰ্ণ (নেপথ্য)"</item>
+ <item msgid="3396458970745718652">"গুৰুত্বপূৰ্ণ (নেপথ্য)"</item>
+ <item msgid="5214825238247511992">"বেকআপ"</item>
+ <item msgid="311372689168254967">"অত্য়ধিক"</item>
+ <item msgid="7438189122367820362">"সেৱা (চলিত)"</item>
+ <item msgid="918687422516982498">"সেৱা (ৰিষ্টাৰ্ট কৰা হৈছে)"</item>
+ <item msgid="6807727069641853029">"ৰিচিভাৰ"</item>
+ <item msgid="6782857406100845127">"হ\'ম"</item>
+ <item msgid="2860945127596974299">"অন্তিম কাৰ্যকলাপ"</item>
+ <item msgid="8610560843693675830">"কেশ্ব কৰা হোৱা (কাৰ্যকলাপ)"</item>
+ <item msgid="4338089220026248848">"কেশ্ব কৰা হোৱা (কাৰ্যকলাপ গ্ৰাহক)"</item>
+ <item msgid="6652164677254579050">"কেশ্ব কৰা হোৱা (খালী)"</item>
+ </string-array>
+ <string-array name="color_picker">
+ <item msgid="7631642672260600032">"গাঢ় সেউজ-নীলা"</item>
+ <item msgid="8332294763632946560">"নীলা"</item>
+ <item msgid="2023216417616991392">"ইণ্ডিগ\'"</item>
+ <item msgid="3170497246594232819">"বেঙুনীয়া"</item>
+ <item msgid="4608643045752965568">"গুলপীয়া"</item>
+ <item msgid="6131821495505931173">"ৰঙা"</item>
+ </string-array>
+ <string-array name="automatic_storage_management_days">
+ <item msgid="687318592238852312">"৩০দিনতকৈ অধিক পুৰণি"</item>
+ <item msgid="2900554746706302178">"৬০ দিনতকৈ অধিক পুৰণি"</item>
+ <item msgid="5692284879054004388">"৯০ দিনতকৈ অধিক পুৰণি"</item>
+ </string-array>
+ <string-array name="wifi_metered_entries">
+ <item msgid="2975784243692054526">"নেটৱৰ্ক অগ্ৰাধিকাৰ ব্যৱহাৰ কৰক"</item>
+ <item msgid="8745603368609022803">"মিটাৰ কৰা হিছাপে আচৰণ কৰক"</item>
+ <item msgid="2266114985518865625">"নিৰিখ অনিৰ্দিষ্ট বুলি গণ্য কৰক"</item>
+ </string-array>
+</resources>
diff --git a/res/values-as/config.xml b/res/values-as/config.xml
new file mode 100644
index 0000000..153e247
--- /dev/null
+++ b/res/values-as/config.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="config_backup_settings_label" msgid="4423938073600296337"></string>
+</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index ee71002..82ac422 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -3358,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Bu cihazı MIDI kimi istifadə edin"</string>
<string name="usb_use" msgid="3372728031108932425">"USB istifadəsi"</string>
<string name="usb_use_also" msgid="557340935190819370">"USB istifadə edin"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Enerji dodlurulması"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Qoşulmuş cihaza enerji doldurulur"</string>
@@ -3810,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"işlənib"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Tətbiqi silin"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Bu ani tətbiqi silmək istəyirsiniz?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Açın"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Oyunlar"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Audio fayllar"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Yaddaş sahəsi istifadə edildi"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 71d1403..6070700 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -485,8 +485,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Zaštitite tablet"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Zaštitite uređaj"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Zaštitite telefon"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Radi dodatne bezbednosti podesite rezervni način zaključavanja ekrana"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Sprečite druge da koriste ovaj tablet bez dozvole tako što ćete aktivirati funkcije zaštite uređaja. Izaberite zaključavanje ekrana koje želite da koristite."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Sprečite druge da koriste ovaj uređaj bez dozvole tako što ćete aktivirati funkcije zaštite uređaja. Izaberite zaključavanje ekrana koje želite da koristite."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Sprečite druge da koriste ovaj telefon bez dozvole tako što ćete aktivirati funkcije zaštite uređaja. Izaberite zaključavanje ekrana koje želite da koristite."</string>
@@ -936,8 +935,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Podešavanje Wi‑Fi hotspota"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK hotspot"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Nije dostupno jer je uključen režim rada u avionu"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Pozivanje preko Wi-Fi-ja"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Proširite pokrivenost poziva uz Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Uključite pozivanje preko Wi-Fi-ja"</string>
@@ -1504,17 +1502,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Bezbednosne informacije"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Nemate vezu za prenos podataka. Da biste odmah pogledali ove informacije, idite na %s sa bilo kog računara koji je povezan na internet."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Učitava se…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Podesite zaključavanje ekrana"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Podesite lozinku iz bezbednosnih razloga"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Podesite lozinku da biste koristili otisak"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Podesite šablon da biste koristili otisak"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Podesite PIN iz bezbednosnih razloga"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Podesite PIN da biste koristili otisak"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Podesite šablon iz bezbednosnih razloga"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Ponovo unesite lozinku"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Potvrdite šablon"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Ponovo unesite PIN"</string>
@@ -3409,6 +3403,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Koristite ovaj uređaj kao MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Koristi USB za"</string>
<string name="usb_use_also" msgid="557340935190819370">"Koristite USB i za"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Punjenje uređaja"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Punjenje povezanog uređaja"</string>
@@ -3878,8 +3876,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"u upot."</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Obriši aplikaciju"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Želite li da uklonite ovu instant aplikaciju?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Otvori"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Igre"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Audio datoteke"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Iskorišćen prostor"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index cfd1152..7734be5 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -488,8 +488,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Абараніце свой планшэт"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Абараніце сваю прыладу"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Абараніце свой тэлефон"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Для большай бяспекі наладзьце дадатковы спосаб блакіроўкі экрана"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Прадухіліце выкарыстанне гэтага планшэта без вашага дазволу, актываваўшы функцыі абароны прылады. Выберыце спосаб блакіроўкі экрана, які вы хочаце выкарыстоўваць."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Прадухіліце выкарыстанне гэтай прылады без вашага дазволу, актываваўшы функцыі абароны прылады. Выберыце спосаб блакіроўкі экрана, які вы хочаце выкарыстоўваць."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Прадухіліце выкарыстанне гэтага тэлефона без вашага дазволу, актываваўшы функцыі абароны прылады. Выберыце спосаб блакіроўкі экрана, які вы хочаце выкарыстоўваць."</string>
@@ -948,8 +947,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Усталёўка пункту доступу Wi‑Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Хот-спот AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Функцыя недаступная, бо ўключаны рэжым палёту"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi-тэлефанія"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Рабіце выклікі праз Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Уключыце Wi-Fi-тэлефанію"</string>
@@ -1518,17 +1516,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Інфармацыя аб бяспецы"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Падключэнне да інтэрнэту адсутнічае. Каб праглядзець гэтую інфармацыю, наведайце %s з любога камп\'ютара, падключанага да інтэрнэту."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Загрузка..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Наладзьце блакіроўку экрана"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Задайце пароль, каб абараніць прыладу"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Перш чым карыстацца адбіткам пальца, задайце пароль"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Спачатку задайце ўзор"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Задайце PIN-код, каб абараніць прыладу"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Каб карыст. адбіт. пальца, задайце PIN-код"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Задайце ўзор разблакіроўкі, каб абараніць прыладу"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Увядзіце пароль яшчэ раз"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Пацвердзіце ўзор"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Увядзіце PIN-код яшчэ раз"</string>
@@ -3456,6 +3450,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Выкарыстоўваць гэту прыладу ў якасці MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Выкарыстоўваць USB для"</string>
<string name="usb_use_also" msgid="557340935190819370">"Іншыя рэжымы працы USB"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Зарадка гэтай прылады"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Зарадка падключанай прылады"</string>
@@ -3942,8 +3940,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"занята"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Ачысціць даныя праграмы"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Хочаце выдаліць гэту імгненную праграму?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Адкрыць"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Гульні"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Аўдыяфайлы"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Занятае месца"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 1f55ec0..294da2c 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Защита на таблета"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Защита на устройството"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Защитете телефона си"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"За допълнителна сигурност задайте резервна опция за заключване на екрана"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Предотвратете използването на този таблет от други хора без разрешението ви, като активирате функциите за защита на устройството. Изберете опцията за заключване на екрана, която искате да използвате."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Предотвратете използването на това устройство от други хора без разрешението ви, като активирате функциите за защитата му. Изберете опцията за заключване на екрана, която искате да използвате."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Предотвратете използването на този телефон от други хора без разрешението ви, като активирате функциите за защита на устройството. Изберете опцията за заключване на екрана, която искате да използвате."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Точка за достъп до Wi‑Fi: Настр."</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP – точка за достъп до Wi‑Fi с WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Функцията е деактивирана, защото самолетният режим е включен"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Обаждания през Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Разширете обхвата на обажданията с Wi-Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Включване на функцията за обаждания през Wi-Fi"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Информация за безопасност"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Нямате връзка за данни. За да видите тази информация сега, отворете %s от компютър, свързан с интернет."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Зарежда се…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Задаване на заключване на екрана"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"От съображения за сигурност задайте парола"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Задайте парола, за да ползвате отпечатък"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Задайте фигура, за да ползвате отпечатък"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"От съображения за сигурност задайте ПИН код"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Задайте ПИН, за да ползвате отпечатък"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"От съображения за сигурност задайте фигура"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Въведете отново паролата си"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Потвърдете фигурата си"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Въведете отново ПИН кода си"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Използване на това устройство като MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Използване на USB за"</string>
<string name="usb_use_also" msgid="557340935190819370">"Използване на USB и за"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Зареждане на това устройство"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Зареждане на свързаното устройство"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"ползв."</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Изчистване на приложението"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Искате ли да премахнете това мигновено приложение?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Отваряне"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Игри"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Аудиофайлове"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Използвано място"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 802df7f..e7ab661 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"আপনার ট্যাবলেটটিকে নিরাপদ করুন"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"আপনার ডিভাইসটিকে নিরাপদ করুন"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"আপনার ফোন রক্ষা করুন"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"অতিরিক্ত নিরাপত্তার জন্য একটি ব্যাক-আপ স্ক্রিন লক সেট করুন"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"ডিভাইস সুরক্ষা বৈশিষ্ট্যগুলি সক্রিয় করার দ্বারা আপনার অনুমতি ছাড়া অন্যদের এই ট্যাবলেটটি ব্যবহার করা থেকে আটকান৷ আপনি ব্যবহার করতে চান এমন স্ক্রিন লক বেছে নিন৷"</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"ডিভাইস সুরক্ষা বৈশিষ্ট্যগুলি সক্রিয় করার দ্বারা আপনার অনুমতি ছাড়া অন্যদের এই ডিভাইসটি ব্যবহার করা থেকে আটকান৷ আপনি ব্যবহার করতে চান এমন স্ক্রিন লক বেছে নিন৷"</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"ডিভাইস সুরক্ষা বৈশিষ্ট্যগুলি সক্রিয় করার দ্বারা আপনার অনুমতি ছাড়া অন্যদের এই ফোনটি ব্যবহার করা থেকে আটকান৷ আপনি ব্যবহার করতে চান এমন স্ক্রিন লক বেছে নিন৷"</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"ওয়াই-ফাই হটস্পট সেটআপ"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK হটস্পট"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"বিমান মোড চালু থাকার কারণে এটি উপলভ্য নয়"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"ওয়াই-ফাই কলিং"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"ওয়াই-ফাই দিয়ে কল কভারেজ বাড়ান"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"ওয়াই-ফাই কলিং চালু করুন"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"নিরাপত্তা তথ্য"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"ডেটা সংযোগ নেই। এই তথ্য এখনই দেখার জন্য ইন্টারনেটে সংযুক্ত যে কোনও কম্পিউটার থেকে %s এ যান।"</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"লোড হচ্ছে..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"স্ক্রিন লক সেট করুন"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"নিরাপত্তার জন্য, পাসওয়ার্ড সেট করুন"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"আঙ্গুলের ছাপ ব্যবহার করার জন্য পাসওয়ার্ড সেট করুন"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"আঙ্গুলের ছাপ ব্যবহার করার জন্য প্যাটার্ন সেট করুন"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"নিরাপত্তার জন্য, পিন সেট করুন"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"আঙ্গুলের ছাপ ব্যবহার করার জন্য পিন সেট করুন"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"নিরাপত্তার জন্য, প্যাটার্ন সেট করুন"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"আপনার পাসওয়ার্ডটি আবার লিখুন"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"আপনার প্যাটার্ন নিশ্চিত করুন"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"আপনার পিনটি আবার লিখুন"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"MIDI হিসেবে এই ডিভাইসটি ব্যবহার করুন"</string>
<string name="usb_use" msgid="3372728031108932425">"এর জন্য USB ব্যবহার করুন"</string>
<string name="usb_use_also" msgid="557340935190819370">"এছাড়া এই সমস্ত কাজেও USB ব্যবহার করুন:"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"এই ডিভাইসটি চার্জ করা হচ্ছে"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"সংযুক্ত ডিভাইসে চার্জ দেওয়া"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"ব্যবহৃত"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"অ্যাপের ডেটা সাফ করুন"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"আপনি কি এই ঝটপট অ্যাপটি সরাতে চান?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"চালু করুন"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"গেম্স"</string>
<string name="audio_files_title" msgid="4777048870657911307">"অডিও ফাইলগুলি"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"স্টোরেজ ব্যবহার হয়েছে"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index dfacb2c..5e24ffe 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -485,8 +485,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Zaštitite svoj tablet"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Zaštitite svoj uređaj"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Zaštitite svoj telefon"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Za dodatnu sigurnost postavite rezervni način zaključavanja ekrana"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Spriječite da druge osobe koriste ovaj tablet bez vašeg odobrenja tako što ćete aktivirati funkcije za zaštitu uređaja. Odaberite koji način zaključavanja ekrana želite koristiti."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Spriječite da druge osobe koriste ovaj uređaj bez vašeg odobrenja tako što ćete aktivirati funkcije za zaštitu uređaja. Odaberite koji način zaključavanja ekrana želite koristiti."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Spriječite da druge osobe koriste ovaj telefon bez vašeg odobrenja tako što ćete aktivirati funkcije za zaštitu uređaja. Odaberite koji način zaključavanja ekrana želite koristiti."</string>
@@ -936,8 +935,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Postavke Wi-Fi pristupne tačke"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK pristupna tačka"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Android pristupna tačka"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Nije dostupno jer je uključen način rada u avionu"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi pozivanje"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Proširite pokrivenost pozivima putem Wi-Fi mreže"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Uključite pozivanje putem Wi-Fi-ja"</string>
@@ -1504,17 +1502,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Sigurnosne informacije"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Nemate vezu za prijenos podataka. Za trenutni prikaz tih informacija idite na %s s bilo kojeg računara koji je povezan na internet."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Učitavanje…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Postavite zaključavanje ekrana"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Postavite lozinku radi sigurnosti"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Da koristite otisak prsta, postavite lozinku"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Da koristite otisak prsta, postavite uzorak"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Postavite PIN kôd radi sigurnosti"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Da koristite otisak prsta, postavite PIN"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Postavite uzorak radi sigurnosti"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Ponovo unesite lozinku"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Potvrdite uzorak"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Ponovo unesite PIN"</string>
@@ -3409,6 +3403,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Koristite uređaj u MIDI načinu"</string>
<string name="usb_use" msgid="3372728031108932425">"Koristite USB za"</string>
<string name="usb_use_also" msgid="557340935190819370">"Također koristi USB za"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Punjenje ovog uređaja"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Punjenje povezanog uređaja"</string>
@@ -3878,8 +3876,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"iskor."</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Obriši aplikaciju"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Želite li ukloniti ovu instant-aplikaciju?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Otvori"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Igre"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Audio fajlovi"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Iskorišteni prostor"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index c338dcf..7873012 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Protegeix la tauleta"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Protegeix el dispositiu"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Protegeix el telèfon"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Defineix un bloqueig de pantalla alternatiu per a més seguretat"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Activa les funcions de protecció del dispositiu per impedir que altres persones utilitzin aquesta tauleta sense permís. Tria el bloqueig de pantalla que vulguis utilitzar."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Activa les funcions de protecció del dispositiu per impedir que altres persones el facin servir sense permís. Tria el bloqueig de pantalla que vulguis utilitzar."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Activa les funcions de protecció del dispositiu per impedir que altres persones utilitzin aquest telèfon sense permís. Tria el bloqueig de pantalla que vulguis utilitzar."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Configuració del punt d\'accés Wi-Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Punt d\'accés Wi-Fi PSK AndroidAP WPA2"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"No està disponible perquè el mode d\'avió està activat"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Trucades per Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Amplia la cobertura de les trucades amb Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Activa les trucades per Wi-Fi"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Informació de seguretat"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"No tens cap connexió de dades. Per visualitzar aquesta informació ara, dirigeix-te a %s des d\'un ordinador connectat a Internet."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"S\'està carregant…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Defineix un bloqueig de pantalla"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Per motius de seguretat, cal que defineixis una contrasenya"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Defineix una contrasenya"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Defineix un patró"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Per motius de seguretat, cal que defineixis un PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Defineix un PIN"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Per motius de seguretat, cal que defineixis un patró"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Torna a introduir la contrasenya"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirma el patró"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Torna a introduir el PIN"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"fer servir aquest dispositiu com a MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Funcions de l\'USB"</string>
<string name="usb_use_also" msgid="557340935190819370">"Utilitza la connexió USB també per al següent:"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"S\'està carregant el dispositiu"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Càrrega de dispositius connectats"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"utilitzat"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Esborra l\'aplicació"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Vols suprimir aquesta aplicació instantània?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Obre"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Jocs"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Fitxers d\'àudio"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Espai utilitzat"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 3b21409..a75bfe3 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -488,8 +488,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Ochraňte svůj tablet"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Ochraňte své zařízení"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Chraňte svůj telefon"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Pro ještě lepší zabezpečení nastavte záložní zámek obrazovky"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Aktivujte funkce ochrany zařízení a zabraňte tak ostatním v používání tabletu bez vašeho svolení. Vyberte zámek obrazovky, který chcete používat."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Aktivujte funkce ochrany zařízení a zabraňte tak ostatním v jeho používání bez vašeho svolení. Vyberte zámek obrazovky, který chcete používat."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Aktivujte funkce ochrany zařízení a zabraňte tak ostatním v používání telefonu bez vašeho svolení. Vyberte zámek obrazovky, který chcete používat."</string>
@@ -948,8 +947,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Nastavení Wi‑Fi hotspotu"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Hotspot AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Nedostupné, protože je zapnutý režim Letadlo"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Volání přes Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Rozšiřte pokrytí volání pomocí Wi-Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Zapněte volání přes Wi-Fi"</string>
@@ -1517,17 +1515,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Bezpečnostní informace"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Datové připojení momentálně není k dispozici. Chcete-li tyto informace zobrazit, přejděte z libovolného počítače připojeného k internetu na stránku %s."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Načítání..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Nastavení zámku obrazovky"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Z bezpečnostních důvodů nastavte heslo"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Otisk vyžaduje nastavení hesla"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Otisk vyžaduje nastavení gesta"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Z bezpečnostních důvodů nastavte PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Otisk vyžaduje nastavení PINu"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Z bezpečnostních důvodů nastavte gesto"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Znovu zadejte heslo"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Potvrďte své gesto"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Znovu zadejte PIN"</string>
@@ -3454,6 +3448,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Toto zařízení se použije v režimu MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Použití USB:"</string>
<string name="usb_use_also" msgid="557340935190819370">"Další využití USB:"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Nabíjení zařízení"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Nabíjení připojeného zařízení"</string>
@@ -3940,8 +3938,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"využito"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Vymazat aplikaci"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Chcete tuto okamžitou aplikaci odstranit?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Otevřít"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Hry"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Zvukové soubory"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Využitý prostor"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index d89be96..9c40716 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Beskyt din tablet"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Beskyt din enhed"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Beskyt din telefon"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Konfigurer en alternativ metode til skærmlåsning for at opnå større sikkerhed"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Du kan forhindre andre i at bruge denne tablet uden din tilladelse ved at aktivere funktionerne til enhedsbeskyttelse. Vælg den skærmlås, du vil bruge."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Du kan forhindre andre i at bruge denne enhed uden din tilladelse ved at aktivere funktionerne til enhedsbeskyttelser. Vælg den skærmlås, du vil bruge."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Du kan forhindre andre i at bruge denne telefon uden din tilladelse ved at aktivere funktionerne til enhedsbeskyttelse. Vælg den skærmlås, du vil bruge."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Konfiguration af Wi-Fi-hotspot"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK-hotspot"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Utilgængelig, fordi flytilstand er aktiveret"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Opkald via Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Få større dækning med Wi‑Fi-opkald"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Aktivér Wi-Fi-opkald"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Sikkerhedsoplysninger"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Du har ingen dataforbindelse. Se disse oplysninger nu ved at gå til %s på en computer, der har forbindelse til internettet."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Indlæser..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Konfigurer skærmlås"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Angiv en adgangskode af hensyn til sikkerheden"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Angiv adgangskode for at bruge fingeraftryk"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Angiv mønster for at bruge fingeraftryk"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Angiv en pinkode af hensyn til sikkerheden"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Angiv pinkode for at bruge fingeraftryk"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Angiv et mønster af hensyn til sikkerheden"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Angiv din adgangskode igen"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Bekræft dit mønster"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Angiv din pinkode igen"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Bruge denne enhed som MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Brug USB"</string>
<string name="usb_use_also" msgid="557340935190819370">"Brug også USB til"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Opladning af denne enhed"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Den tilsluttede enhed oplades"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"brugt"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Ryd appen"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Vil du fjerne denne instant app?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Åbn"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Spil"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Lydfiler"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Anvendt lagerplads"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 6d144da..2278eaf 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -481,8 +481,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Tablet schützen"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Gerät schützen"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Smartphone schützen"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Wenn du noch mehr Sicherheit möchtest, richte eine alternative Displaysperre ein"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Du kannst verhindern, dass andere Personen dieses Tablet ohne deine Erlaubnis verwenden, indem du die Geräteschutzfunktionen aktivierst. Wähle eine Displaysperre aus."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Du kannst verhindern, dass andere Personen dieses Gerät ohne deine Erlaubnis verwenden, indem du die Geräteschutzfunktionen aktivierst. Wähle eine Displaysperre aus."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Du kannst verhindern, dass andere Personen dieses Smartphone ohne deine Erlaubnis verwenden, indem du die Geräteschutzfunktionen aktivierst. Wähle eine Displaysperre aus."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"WLAN-Hotspot-Einrichtung"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Hotspot AndroidAP WPA2-PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Nicht verfügbar, da der Flugmodus aktiviert ist"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Anrufe über WLAN"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Anrufoptionen um WLAN-Anrufe erweitern"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Anrufe über WLAN aktivieren"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Sicherheitsinformationen"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Es ist keine Datenverbindung vorhanden. Wenn Sie diese Informationen jetzt sehen möchten, gehen Sie auf einem beliebigen Computer mit Internetanschluss zu %s."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Wird geladen..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Displaysperre einrichten"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Richte zur Sicherheit ein Passwort ein"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Passwort festlegen, um Fingerabdruck zu verwenden"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Muster festlegen, um Fingerabdruck zu verwenden"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Richte zur Sicherheit eine PIN ein"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"PIN festlegen, um Fingerabdruck zu verwenden"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Richte zur Sicherheit ein Muster ein"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Passwort noch einmal eingeben"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Muster bestätigen"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"PIN noch einmal eingeben"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Dieses Gerät als MIDI verwenden"</string>
<string name="usb_use" msgid="3372728031108932425">"USB verwenden für"</string>
<string name="usb_use_also" msgid="557340935190819370">"USB auch verwenden für"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Gerät aufladen"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Verbundenes Gerät wird aufgeladen"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"belegt"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"App löschen"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Möchtest du diese Instant-App entfernen?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Öffnen"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Spiele"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Audiodateien"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Belegter Speicherplatz"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 16fc2d6..5669f35 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Προστατέψτε το tablet σας"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Προστατέψτε τη συσκευή σας"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Προστασία τηλεφώνου"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Για πρόσθετη ασφάλεια, ρυθμίστε ένα εφεδρικό κλείδωμα οθόνης"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Αποτρέψτε άλλους από τη χρήση αυτού του tablet χωρίς την άδειά σας ενεργοποιώντας τις λειτουργίες προστασίας συσκευής. Επιλέξτε το κλείδωμα οθόνης που θέλετε να χρησιμοποιήσετε."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Αποτρέψτε άλλους από τη χρήση αυτής της συσκευής χωρίς την άδειά σας ενεργοποιώντας τις λειτουργίες προστασίας συσκευής. Επιλέξτε το κλείδωμα οθόνης που θέλετε να χρησιμοποιήσετε."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Αποτρέψτε άλλους από τη χρήση αυτού του τηλεφώνου χωρίς την άδειά σας ενεργοποιώντας τις λειτουργίες προστασίας συσκευής. Επιλέξτε το κλείδωμα οθόνης που θέλετε να χρησιμοποιήσετε."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Ρύθμ. σημείου πρόσβασης Wi-Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Σημείο πρόσβασης Wi-Fi AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Μη διαθέσιμο επειδή έχει ενεργοποιηθεί η λειτουργία πτήσης"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Κλήση Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Επέκτ. κάλυψης κλήσ. με Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Ενεργοποίηση Κλήσης Wi-Fi"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Πληροφορίες ασφάλειας"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Δεν είστε συνδεδεμένοι σε σύνδεση δεδομένων. Για να προβάλετε αυτές τις πληροφορίες τώρα, μεταβείτε στο %s από οποιονδήποτε υπολογιστή με σύνδεση στο διαδίκτυο."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Φόρτωση..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Ρύθμιση κλειδώματος οθόνης"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Για λόγους ασφαλείας, ορίστε έναν κωδικό πρόσβασης"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Για χρήση δακτ. αποτ. ορίστε κωδ. πρόσβ."</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Για χρήση δακτ. αποτ. ορίστε μοτίβο"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Για λόγους ασφαλείας, ορίστε ένα PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Για χρήση δακτ. αποτ. ορίστε αρ. PIN"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Για λόγους ασφαλείας, ορίστε ένα μοτίβο"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Εισαγάγετε ξανά τον κωδικό πρόσβασής σας"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Επιβεβαίωση μοτίβου"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Εισαγάγετε ξανά τον αριθμό PIN"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Χρήση αυτής της συσκευής ως MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Χρήση USB για"</string>
<string name="usb_use_also" msgid="557340935190819370">"Χρησιμοποιήστε επίσης το USB για"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Φόρτιση αυτής της συσκευής"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Φόρτιση συνδεδεμένης συσκευής"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"σε χρήση"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Διαγραφή δεδομένων εφαρμογής"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Θέλετε να καταργήσετε αυτήν την Instant Εφαρμογή;"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Άνοιγμα"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Παιχνίδια"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Αρχεία ήχου"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Χώρος που χρησιμοποιείται"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index d48779d..3a7e863 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -3358,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Use this device as MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Use USB for"</string>
<string name="usb_use_also" msgid="557340935190819370">"Also use USB for"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Charging this device"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Charging connected device"</string>
@@ -3810,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"used"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Clear app"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Do you want to remove this instant app?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Open"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Games"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Audio files"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Space used"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index d507471..fe607e0 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -3358,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Use this device as MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Use USB for"</string>
<string name="usb_use_also" msgid="557340935190819370">"Also use USB for"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Charging this device"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Charging connected device"</string>
@@ -3810,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"used"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Clear app"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Do you want to remove this instant app?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Open"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Games"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Audio files"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Space used"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index d48779d..3a7e863 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -3358,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Use this device as MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Use USB for"</string>
<string name="usb_use_also" msgid="557340935190819370">"Also use USB for"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Charging this device"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Charging connected device"</string>
@@ -3810,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"used"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Clear app"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Do you want to remove this instant app?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Open"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Games"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Audio files"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Space used"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index d48779d..3a7e863 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -3358,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Use this device as MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Use USB for"</string>
<string name="usb_use_also" msgid="557340935190819370">"Also use USB for"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Charging this device"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Charging connected device"</string>
@@ -3810,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"used"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Clear app"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Do you want to remove this instant app?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Open"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Games"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Audio files"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Space used"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 1830c30..4e33693 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -3357,6 +3357,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Use this device as MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Use USB for"</string>
<string name="usb_use_also" msgid="557340935190819370">"Also use USB for"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Charging this device"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Charging connected device"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 96e233d..951ecff 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Protege tu tablet"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Protege tu dispositivo"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Protege el teléfono"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Para mayor seguridad, establece un bloqueo de pantalla secundario"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Activa las funciones de protección del dispositivo para impedir que terceros usen esta tablet sin tu permiso. Elige el bloqueo de pantalla que quieres usar."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Activa las funciones de protección del dispositivo para impedir que terceros lo usen sin tu permiso. Elige el bloqueo de pantalla que quieres usar."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Activa las funciones de protección del dispositivo para impedir que terceros usen este teléfono sin tu permiso. Elige el bloqueo de pantalla que quieres usar."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Configuración de zona Wi-Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Hotspot WPA2 PSK de AndroidAP"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Android Hotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"No está disponible porque se activó el modo de avión"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Llamadas por Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Ampliar cobertura de llamada con Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Activar Llamada con Wi-Fi"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Información de seguridad"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"No tienes conexión de datos. Para ver esta información, accede a %s desde cualquier computadora conectada a Internet."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Cargando…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Establecer bloqueo de pantalla"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Por motivos de seguridad, establece una contraseña"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Configura tu contraseña"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Configura el patrón"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Por motivos de seguridad, establece un PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Configura el PIN"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Por motivos de seguridad, establece un patrón"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Vuelve a ingresar tu contraseña"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirma el patrón"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Vuelve a ingresar el PIN"</string>
@@ -3362,6 +3356,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Usar este dispositivo como MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Utilizar USB para lo siguiente:"</string>
<string name="usb_use_also" msgid="557340935190819370">"También usar USB para"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Cargar este dispositivo"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Cargando dispositivo conectado"</string>
@@ -3814,8 +3812,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"usado"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Borrar app"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"¿Quieres quitar esta app instantánea?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Abrir"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Juegos"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Archivos de audio"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Espacio en uso"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 566abde..a6e5498 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -923,7 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Configuración del punto de acceso Wi-Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Punto de acceso AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"No está disponible porque está activado el modo avión"</string>
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"No está disponible porque el modo avión está activado"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Llamadas Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Ampliar cobertura de llamada con Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Activar la función de llamada por Wi‑Fi"</string>
@@ -3358,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Utilizar este dispositivo como MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Utilizar USB para"</string>
<string name="usb_use_also" msgid="557340935190819370">"Utilizar USB también para"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Cargando el dispositivo"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Cargando dispositivo conectado"</string>
@@ -3810,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"usado"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Borrar aplicación"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"¿Quieres quitar esta aplicación instantánea?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Abrir"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Juegos"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Archivos de audio"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Espacio usado"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index c7d1094..12488ae 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Tahvelarvuti kaitsmine"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Seadme kaitsmine"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Telefoni kaitsmine"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Lisaturvalisuse huvides seadistage varuekraanilukk"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Aktiveerige seadme kaitsefunktsioonid, et teised ei saaks ilma teie loata tahvelarvutit kasutada. Valige kasutatav ekraanilukk."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Aktiveerige seadme kaitsefunktsioonid, et teised ei saaks ilma teie loata seadet kasutada. Valige kasutatav ekraanilukk."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Aktiveerige seadme kaitsefunktsioonid, et teised ei saaks ilma teie loata telefoni kasutada. Valige kasutatav ekraanilukk."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"WiFi-kuumkoha seadistamine"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK-kuumkoht"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Pole saadaval, kuna lennukirežiim on sees"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"WiFi-kõned"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Laiendage kõnede leviala WiFi abil"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Lülitage sisse WiFi-kõned"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Ohutusteave"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Teil ei ole andmesideühendust. Selle teabe praegu vaatamiseks minge Interneti-ühendusega arvutis aadressile %s."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Laadimine ..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Ekraaniluku seadistamine"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Turvalisuse huvides määrake parool"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Sõrmejälje kasutamiseks määrake parool"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Sõrmejälje kasutamiseks määrake muster"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Turvalisuse huvides määrake PIN-kood"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Sõrmejälje kasutamiseks määrake PIN-kood"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Turvalisuse huvides määrake muster"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Sisestage oma parool uuesti"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Mustri kinnitamine"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Sisestage oma PIN-kood uuesti"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Kasutage seda seadet MIDI-na"</string>
<string name="usb_use" msgid="3372728031108932425">"USB kasutusviis"</string>
<string name="usb_use_also" msgid="557340935190819370">"Kasutage USB-d ka järgmiseks:"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Seadme laadimine"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Ühendatud seadme laadimine"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"kasut."</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Tühjenda rakendus"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Kas soovite selle installimata avatava rakenduse eemaldada?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Ava"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Mängud"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Helifailid"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Kasutatav ruum"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 2d27d3d..10c8d31 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -400,7 +400,7 @@
<string name="lock_screen_intro_skip_dialog_text" product="device" msgid="1466238255429527112">"Ez dira aktibatuko gailuaren babes-eginbideak. Gailua galtzen baduzu edo lapurtzen badizute, ezin izango duzu ekidin beste pertsona batzuek erabiltzea."</string>
<string name="lock_screen_intro_skip_dialog_text" product="default" msgid="3008526710555416125">"Ez dira aktibatuko gailuaren babes-eginbideak. Telefonoa galtzen baduzu edo lapurtzen badizute, ezin izango duzu ekidin beste pertsona batzuek erabiltzea."</string>
<string name="skip_anyway_button_label" msgid="2323522873558834513">"Saltatu halere"</string>
- <string name="go_back_button_label" msgid="4745265266186209467">"Atzera"</string>
+ <string name="go_back_button_label" msgid="4745265266186209467">"Egin atzera"</string>
<string name="security_settings_fingerprint_enroll_find_sensor_title" msgid="3051496861358227199">"Ukitu sentsorea"</string>
<string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="8793966374365960368">"Telefonoaren atzealdean dago. Erabili hatz erakuslea."</string>
<string name="security_settings_fingerprint_enroll_find_sensor_content_description" msgid="2058830032070449160">"Hatz-marken sentsorea gailuan non dagoen erakusten duen ilustrazioa"</string>
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Babestu tableta"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Babestu gailua"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Babestu telefonoa"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Babestuago egoteko, konfiguratu pantaila blokeatzeko ordezko metodo bat"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Galarazi inork tableta baimenik gabe erabiltzea gailuaren babes-eginbideak aktibatuta. Aukeratu nola blokeatu nahi duzun pantaila."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Galarazi inork gailua baimenik gabe erabiltzea gailuaren babes-eginbideak aktibatuta. Aukeratu nola blokeatu nahi duzun pantaila."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Galarazi inork telefonoa baimenik gabe erabiltzea gailuaren babes-eginbideak aktibatuta. Aukeratu nola blokeatu nahi duzun pantaila."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wi‑Fi publikoaren konfigurazioa"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK sare publikoa"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidSarePublikoa"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Ez dago erabilgarri, hegaldi modua aktibatuta dagoelako"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi bidezko deiak"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Zabaldu deietarako estaldura Wi-Fi sarearekin"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Aktibatu Wi-Fi bidezko deiak"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Segurtasun-informazioa"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Ez duzu datu-konexiorik. Informazioa orain ikusteko, joan %s webgunera Internetera konektatutako ordenagailu batetik."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Kargatzen…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Ezarri pantailaren blokeoa"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Babestuta egoteko, ezarri pasahitz bat"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Hatz-marka erabiltzeko, ezarri pasahitza"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Hatz-marka erabiltzeko, ezarri eredua"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Babestuta egoteko, ezarri PIN bat"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Hatz-marka erabiltzeko, ezarri PIN kodea"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Babestuta egoteko, ezarri eredu bat"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Idatzi berriro pasahitza"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Berretsi eredua"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Idatzi berriro PIN kodea"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Erabili gailua MIDI gisa"</string>
<string name="usb_use" msgid="3372728031108932425">"Erabili USBa honetarako:"</string>
<string name="usb_use_also" msgid="557340935190819370">"Erabili USB konexioa hauetarako ere:"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Gailua kargatzeko"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Konektatutako gailua kargatzea"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"erabilita"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Garbitu aplikazioa"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Zuzeneko aplikazio hau kendu nahi duzu?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Ireki"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Jokoak"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Audio-fitxategiak"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Erabilitako tokia"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 524a645..40af8f4 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -206,7 +206,7 @@
<string name="radio_info_neighboring_location_label" msgid="5766020323342985397">"اطلاعات شبکه همراه مجاور (منسوخ شده):"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="7062777594049622128">"نرخ بازخوانی اطلاعات شبکه همراه:"</string>
<string name="radio_info_cellinfo_label" msgid="6213223844927623098">"همه اطلاعات اندازهگیری شبکه همراه:"</string>
- <string name="radio_info_dcrtinfo_label" msgid="4062076024399431876">"اطلاعات بیدرنگ اتصال داده:"</string>
+ <string name="radio_info_dcrtinfo_label" msgid="4062076024399431876">"اطلاعات همزمان اتصال داده:"</string>
<string name="radio_info_gprs_service_label" msgid="4209624131644060517">"سرویس داده:"</string>
<string name="radio_info_roaming_label" msgid="6141505430275138647">"رومینگ:"</string>
<string name="radio_info_imei_label" msgid="1220524224732944192">"IMEI:"</string>
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"محافظت از رایانه لوحی"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"محافظت از دستگاه"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"از تلفنتان محافظت کنید"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"برای امنیت بیشتر، قفل صفحه پشتیبانی تنظیم کنید"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"با فعال کردن قابلیتهای حفاظتی دستگاه، نگذارید دیگران بدون اجازه شما از این رایانه لوحی استفاده کنند. قفل صفحه موردنظر برای استفاده را انتخاب کنید."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"با فعال کردن قابلیتهای حفاظتی دستگاه، نگذارید دیگران بدون اجازه شما از این دستگاه استفاده کنند. قفل صفحه موردنظر برای استفاده را انتخاب کنید."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"با فعال کردن قابلیتهای حفاظتی دستگاه، نگذارید دیگران بدون اجازه شما از این تلفن استفاده کنند. قفل صفحه موردنظر برای استفاده را انتخاب کنید."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"راهاندازی نقطه اتصال Wi-Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"نقطه اتصال AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"دردسترس نیست، زیرا حالت هواپیما روشن است"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"تماس از طریق Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"با Wi-Fi پوشش تماس را افزایش دهید"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"روشن کردن تماس ازطریق Wi-Fi"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"اطلاعات ایمنی"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"شما اتصال داده ندارید. برای اینکه هماکنون این اطلاعات را مشاهده کنید، از هر رایانه متصل به اینترنت به %s بروید."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"در حال بارگیری…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"تنظیم قفل صفحه"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"برای امنیت، گذرواژه تنظیم کنید"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"تنظیم گذرواژه برای استفاده از اثر انگشت"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"تنظیم الگو برای استفاده از اثر انگشت"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"برای امنیت، پین تنظیم کنید"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"تنظیم پین برای استفاده از اثر انگشت"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"برای امنیت، الگو تنظیم کنید"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"گذرواژه خود را دوباره وارد کنید"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"تأیید الگو"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"پین خود را دوباره وارد کنید"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"استفاده از این دستگاه بهعنوان MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"استفاده از USB برای"</string>
<string name="usb_use_also" msgid="557340935190819370">"همچنین، استفاده از USB برای"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"شارژ کردن این دستگاه"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"شارژ دستگاه متصلشده"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"پر"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"پاک کردن برنامه"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"میخواهید این برنامه فوری را بردارید؟"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"باز کردن"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"بازی"</string>
<string name="audio_files_title" msgid="4777048870657911307">"فایلهای صوتی"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"فضای مورداستفاده"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index a03c473..bdf0096 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -3358,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Käytä tätä laitetta MIDI-tilassa."</string>
<string name="usb_use" msgid="3372728031108932425">"Käytä USB:tä:"</string>
<string name="usb_use_also" msgid="557340935190819370">"Käytä USB:ta myös seuraaviin:"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Laitteen lataaminen"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Yhdistetyn laitteen lataaminen"</string>
@@ -3810,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"käyt."</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Tyhjennä sovelluksen tiedot"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Poistetaanko tämä pikasovellus?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Avaa"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Pelit"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Äänitiedostot"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Käytetty tila"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 5f272b8..b8982d3 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -923,7 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Configuration point accès Wi‑Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Point d\'accès AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Cette option n\'est pas accessible, car le mode Avion n\'est pas activé"</string>
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Cette option n\'est pas accessible, car le mode Avion est activé"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Appels Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Prolong. couv. appel avec Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Activer les appels Wi-Fi"</string>
@@ -1493,7 +1493,7 @@
<string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Pour votre sécurité, définissez un mot de passe"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Pour util. empr. digit., config. m. de passe"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Pour utiliser empreinte digitale, configurer schéma"</string>
- <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Pour votre de sécurité, définissez un NIP"</string>
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Pour votre sécurité, définissez un NIP"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Pour util. empr. digit., config. NIP"</string>
<string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Pour votre sécurité, définissez un schéma de verrouillage"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Entrez de nouveau votre mot de passe"</string>
@@ -3358,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Utiliser cet appareil en tant que MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Utiliser la connexion USB pour :"</string>
<string name="usb_use_also" msgid="557340935190819370">"Aussi utiliser la connexion USB pour"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Chargement de l\'appareil"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Chargement de l\'appareil connecté"</string>
@@ -3810,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"utilisé"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Effacer les données de l\'application"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Voulez-vous supprimer cette application instantanée?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Ouvrir"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Jeux"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Fichiers audio"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Espace utilisé"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 6140873..93b14fa 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Protéger la tablette"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Protéger l\'appareil"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Protégez votre téléphone"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Pour plus de sécurité, définissez un mode de verrouillage de l\'écran supplémentaire"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Activez les fonctionnalités de protection de l\'appareil pour empêcher d\'autres personnes d\'utiliser cette tablette sans votre autorisation. Choisissez la méthode de verrouillage de l\'écran à utiliser."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Activez les fonctionnalités de protection de l\'appareil pour empêcher d\'autres personnes d\'utiliser cet appareil sans votre autorisation. Choisissez la méthode de verrouillage de l\'écran à utiliser."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Activez les fonctionnalités de protection de l\'appareil pour empêcher d\'autres personnes d\'utiliser ce téléphone sans votre autorisation. Choisissez la méthode de verrouillage de l\'écran à utiliser."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Configuration point accès Wi‑Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Point d\'accès AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Indisponible, car le mode Avion est activé"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Appels Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Étendre la couverture des appels via le Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Activer les appels Wi-Fi"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Informations de sécurité"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Vous n\'avez pas de connexion de données. Pour consulter ces informations maintenant, accédez à %s depuis un ordinateur connecté à Internet."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Chargement…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Définir le verrouillage de l\'écran"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Pour des raisons de sécurité, définissez un mot de passe"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Pour utiliser votre empreinte, définissez un mot de passe"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Pour utiliser votre empreinte, définissez un schéma"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Pour des raisons de sécurité, définissez un code"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Pour utiliser votre empreinte, définissez un code PIN"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Pour des raisons de sécurité, définissez un schéma"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Saisissez de nouveau votre mot de passe"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirmez votre schéma"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Saisissez de nouveau votre code"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Utiliser cet appareil en tant que MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Utiliser la connexion USB pour"</string>
<string name="usb_use_also" msgid="557340935190819370">"Également utiliser la connexion USB pour"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Rechargement de l\'appareil"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Rechargement de l\'appareil connecté"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"utilisés"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Effacer les données de l\'application"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Voulez-vous supprimer cette appli instantanée ?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Ouvrir"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Jeux"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Fichiers audio"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Espace utilisé"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 1b83da0..fa94c9a 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Protexe a tableta"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Protexe o dispositivo"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Protexe o teu teléfono"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Configura un bloqueo de pantalla alternativo para conseguir unha maior seguranza"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Activa as funcións de protección da tableta para evitar que outras persoas utilicen este dispositivo sen o teu permiso. Selecciona o bloqueo da pantalla que queiras utilizar."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Activa as funcións de protección do dispositivo para evitar que outras persoas utilicen este dispositivo sen o teu permiso. Selecciona o bloqueo da pantalla que queiras utilizar."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Activa as funcións de protección do teléfono para evitar que outras persoas utilicen este teléfono sen o teu permiso. Selecciona o bloqueo da pantalla que queiras utilizar."</string>
@@ -924,10 +923,9 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Configuración da zona wifi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Zona wifi AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Non está dispoñible a opción debido a que está activado o modo avión"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Chamadas por wifi"</string>
- <string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Amplía a cobertura coa wifi"</string>
+ <string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Amplía a cobertura de chamadas coa wifi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Activa as chamadas por wifi"</string>
<string name="wifi_calling_mode_title" msgid="2164073796253284289">"Preferencia de chamada"</string>
<string name="wifi_calling_mode_dialog_title" msgid="8149690312199253909">"Modo de chamadas wifi"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Información de seguranza"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Non tes conexión de datos. Para ver esta información agora, accede a %s desde calquera ordenador conectado a Internet."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Cargando..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Definir bloqueo de pantalla"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Por cuestións de seguranza, configura un contrasinal"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Impresión dixital: contrasinal"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Impresión dixital: padrón"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Por cuestións de seguranza, configura un PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Impresión dixital: PIN"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Por cuestións de seguranza, define un padrón"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Volve introducir o teu contrasinal"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirma o teu padrón"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Volve introducir o teu PIN"</string>
@@ -1914,7 +1908,7 @@
<string name="accessibility_vibration_summary_low" msgid="7628418309029013867">"O son e as notificacións teñen un volume baixo"</string>
<string name="accessibility_vibration_summary_medium" msgid="3422136736880414093">"O son e as notificacións teñen un volume medio"</string>
<string name="accessibility_vibration_summary_high" msgid="3239807793182635729">"O son e as notificacións teñen un volume alto"</string>
- <string name="accessibility_vibration_intensity_off" msgid="4613890213008630847">"Desactivar"</string>
+ <string name="accessibility_vibration_intensity_off" msgid="4613890213008630847">"Desactivada"</string>
<string name="accessibility_vibration_intensity_low" msgid="2017572546489862987">"Baixa"</string>
<string name="accessibility_vibration_intensity_medium" msgid="3782136025830279769">"Media"</string>
<string name="accessibility_vibration_intensity_high" msgid="2543921139337952491">"Alta"</string>
@@ -2084,7 +2078,7 @@
<item quantity="other">Queres restrinxir %1$d aplicacións?</item>
<item quantity="one">Queres restrinxir a aplicación?</item>
</plurals>
- <string name="battery_tip_restrict_app_dialog_message" msgid="5818730114373015028">"Para aforrar batería, podes deter a execución desta aplicación en segundo plano cando no se utilice."</string>
+ <string name="battery_tip_restrict_app_dialog_message" msgid="5818730114373015028">"Para aforrar batería, podes deter a execución desta aplicación en segundo plano cando non se utilice."</string>
<string name="battery_tip_restrict_app_dialog_ok" msgid="8291115820018013353">"Restrinxir"</string>
<string name="battery_tip_unrestrict_app_dialog_title" msgid="4550106794311784978">"Queres eliminar a restrición da aplicación <xliff:g id="APP">%1$s</xliff:g>?"</string>
<string name="battery_tip_unrestrict_app_dialog_message" msgid="4836135946080501395">"Esta aplicación poderá utilizar a batería en segundo plano, de tal modo que esta última quizais se esgote máis rápido."</string>
@@ -2206,9 +2200,9 @@
<string name="process_kernel_label" msgid="3916858646836739323">"SO Android"</string>
<string name="process_mediaserver_label" msgid="6500382062945689285">"Servidor multimedia"</string>
<string name="process_dex2oat_label" msgid="2592408651060518226">"Optimización da aplicación"</string>
- <string name="battery_saver" msgid="6002143200184768727">"Modo Batería reducida"</string>
+ <string name="battery_saver" msgid="6002143200184768727">"Modo de aforro de batería"</string>
<string name="battery_saver_auto_title" msgid="6896506441192920565">"Programar"</string>
- <string name="battery_saver_auto_summary" msgid="8715989830471454219">"Se hai pouca batería, activa o modo Batería reducida"</string>
+ <string name="battery_saver_auto_summary" msgid="8715989830471454219">"Se hai pouca batería, activa o modo de aforro de batería"</string>
<string name="battery_saver_seekbar_title" msgid="3428789387167865312">"Activar automaticamente cando estea ao <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
<string name="battery_saver_master_switch_title" msgid="622539414546588436">"Usar Aforro de batería"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="9023847300114669426">"Activar automaticamente"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Utiliza este dispositivo como MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Usar USB para"</string>
<string name="usb_use_also" msgid="557340935190819370">"Usar tamén o USB para"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Cargar este dispositivo"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Cargando o dispositivo conectado"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"en uso"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Borrar aplicación"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Queres eliminar esta aplicación instantánea?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Abrir"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Xogos"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Ficheiros de audio"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Espazo utilizado"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 6ab586e..6abb94a 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"ટેબ્લેટની સુરક્ષા કરો"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"ઉપકરણને સુરક્ષિત કરો"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"ફોનની સુરક્ષા કરો"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"વધારાની સુરક્ષા માટે, એક બૅકઅપ સ્ક્રીન લૉક સેટ કરો"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"ઉપકરણ સુરક્ષા સુવિધાઓને સક્રિય કરીને તમારી પરવાનગી વિના અન્ય લોકોને આ ટેબ્લેટનો ઉપયોગ કરવાથી અટકાવો. તમે ઉપયોગમાં લેવા ઇચ્છો છો તે સ્ક્રીન લૉક પસંદ કરો."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"ઉપકરણ સુરક્ષા સુવિધાઓને સક્રિય કરીને તમારી પરવાનગી વિના અન્ય લોકોને આ ઉપકરણનો ઉપયોગ કરવાથી અટકાવો. તમે ઉપયોગમાં લેવા ઇચ્છો છો તે સ્ક્રીન લૉક પસંદ કરો."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"ઉપકરણ સુરક્ષા સુવિધાઓને સક્રિય કરીને તમારી પરવાનગી વિના અન્ય લોકોને આ ફોનનો ઉપયોગ કરવાથી અટકાવો. તમે ઉપયોગમાં લેવા ઇચ્છો છો તે સ્ક્રીન લૉક પસંદ કરો."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"વાઇ-ફાઇ હૉટસ્પૉટ સેટઅપ"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK હૉટસ્પૉટ"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"અનુપલબ્ધ છે, કારણ કે એરપ્લેન મોડ ચાલુ કરેલો છે"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"વાઇ-ફાઇ કૉલિંગ"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"વાઇ-ફાઇ વડે કૉલ કવરેજ વધારો"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"વાઇ-ફાઇ કૉલિંગ ચાલુ કરો"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"સલામતી માહિતી"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"તમારી પાસે ડેટા કનેક્શન નથી. આ માહિતી હમણાં જોવા માટે, ઇન્ટરનેટ સાથે કનેક્ટ થયેલ કોઈપણ કમ્પ્યુટરથી %s પર જાઓ."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"લોડ કરી રહ્યું છે..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"સ્ક્રીન લૉક સેટ કરો"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"સુરક્ષા માટે, પાસવર્ડ સેટ કરો"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"ફિંગરપ્રિન્ટ વાપરવા પાસવર્ડ સેટ કરો"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"ફિંગરપ્રિન્ટ વાપરવા પૅટર્ન સેટ કરો"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"સુરક્ષા માટે, પિન સેટ કરો"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"ફિંગરપ્રિન્ટ વાપરવા પિન સેટ કરો"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"સુરક્ષા માટે, પૅટર્ન સેટ કરો"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"તમારો પાસવર્ડ ફરી દાખલ કરો"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"તમારા પેટર્નની પુષ્ટિ કરો"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"તમારો પિન ફરી દાખલ કરો"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"MIDI તરીકે આ ઉપકરણનો ઉપયોગ કરો"</string>
<string name="usb_use" msgid="3372728031108932425">"આ માટે USB નો ઉપયોગ કરો"</string>
<string name="usb_use_also" msgid="557340935190819370">"USBનો ઉપયોગ આના માટે પણ કરો"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"આ ઉપકરણને ચાર્જ કરવું"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"કનેક્ટેડ ઉપકરણ ચાર્જ કરી રહ્યાં છીએ"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"વપરાયો"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"ઍપ્લિકેશન સાફ કરો"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"શું તમે આ ઝટપટ ઍપ્લિકેશન દૂર કરવા માંગો છો?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"ખોલો"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"રમતો"</string>
<string name="audio_files_title" msgid="4777048870657911307">"ઑડિઓ ફાઇલો"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"જગ્યા વપરાઈ"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index d585d60..833d1b1 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"टैबलेट की सुरक्षा करें"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"डिवाइस की सुरक्षा करें"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"फ़ोन को सुरक्षित रखें"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"ज़्यादा सुरक्षा के लिए, एक बैकअप स्क्रीन लॉक सेट करें"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"डिवाइस सुरक्षा सुविधाओं को सक्रिय करके अन्य लोगों को आपकी अनुमति के बिना इस टैबलेट का उपयोग करने से रोकें. वह स्क्रीन लॉक चुनें जिसका आप उपयोग करना चाहते हैं."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"डिवाइस सुरक्षा सुविधाओं को सक्रिय करके अन्य लोगों को आपकी अनुमति के बिना इस डिवाइस का उपयोग करने से रोकें. वह स्क्रीन लॉक चुनें जिसका आप उपयोग करना चाहते हैं."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"डिवाइस सुरक्षा सुविधाओं को सक्रिय करके अन्य लोगों को आपकी अनुमति के बिना इस फ़ोन का उपयोग करने से रोकें. वह स्क्रीन लॉक चुनें जिसका आप उपयोग करना चाहते हैं."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"वाई-फ़ाई हॉटस्पॉट सेटअप"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK हॉटस्पॉट"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"हॉटस्पॉट उपलब्ध नहीं है, क्योंकि हवाई जहाज़ मोड चालू है"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"वाई-फ़ाई कॉलिंग"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"वाई-फ़ाई के ज़रिए कॉल कवरेज बढ़ाएं"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"वाई-फ़ाई कॉलिंग चालू करें"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"सुरक्षा की जानकारी"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"आपके पास डेटा कनेक्शन नहीं है. इस जानकारी को अभी देखने के लिए, इंटरनेट से जुड़े किसी भी कंप्यूटर से %s पर जाएं."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"लोड हो रहा है..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"स्क्रीन लॉक सेट करें"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"सुरक्षा के लिए पासवर्ड सेट करें"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"फ़िंगरप्रिंट का उपयोग करने के लिए, पासवर्ड सेट करें"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"फ़िंगरप्रिंट का उपयोग करने के लिए, पैटर्न सेट करें"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"सुरक्षा के लिए पिन सेट करें"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"फ़िंगरप्रिंट का उपयोग करने के लिए, पिन सेट करें"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"सुरक्षा के लिए पैटर्न सेट करें"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"पासवर्ड फिर से दर्ज करें"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"अपने पैटर्न की पुष्टि करें"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"पिन फिर से दर्ज करें"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"इस डिवाइस का उपयोग MIDI के रूप में करें"</string>
<string name="usb_use" msgid="3372728031108932425">"USB का उपयोग इसके लिए करें"</string>
<string name="usb_use_also" msgid="557340935190819370">"यूएसबी का इस्तेमाल इन कामों के लिए भी करें"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"इस डिवाइस को चार्ज करना"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"जोड़े गए डिवाइस को चार्ज करना"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"उपयोग की गई"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"ऐप्लिकेशन साफ़ करें"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"क्या आप इस झटपट ऐप को निकालना चाहते हैं?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"खोलें"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"गेम"</string>
<string name="audio_files_title" msgid="4777048870657911307">"ऑडियो फ़ाइलें"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"उपयोग की गई जगह"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index b634903..6d3ccf2 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -485,8 +485,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Zaštitite svoj tablet"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Zaštitite svoj uređaj"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Zaštitite telefon"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Za dodatnu sigurnost postavite pričuvno zaključavanje zaslona"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Aktivirajte značajke zaštite uređaja kako biste onemogućili drugima da upotrebljavaju ovaj tablet bez vašeg dopuštenja. Odaberite zaključavanje zaslona koje želite upotrebljavati."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Aktivirajte značajke zaštite uređaja kako biste onemogućili drugima da upotrebljavaju ovaj uređaj bez vašeg dopuštenja. Odaberite zaključavanje zaslona koje želite upotrebljavati."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Aktivirajte značajke zaštite uređaja kako biste onemogućili drugima da upotrebljavaju ovaj telefon bez vašeg dopuštenja. Odaberite zaključavanje zaslona koje želite upotrebljavati."</string>
@@ -936,8 +935,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Postavljanje Wi‑Fi žar. točke"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK žarišna točka"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Nije dostupno jer je uključen način rada u zrakoplovu"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi pozivi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Proširite pokrivenost poziva pomoću Wi‑Fi-ja"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Uključite Wi-Fi pozive"</string>
@@ -1504,17 +1502,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Sigurnosne informacije"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Nemate podatkovnu vezu. Da biste tu informaciju vidjeli sada, otvorite stranicu %s na bilo kojem računalu povezanom s internetom."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Učitavanje…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Postavljanje zaključavanja zaslona"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Radi sigurnosti postavite zaporku"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Otisak prsta zahtijeva zaporku"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Otisak prsta zahtijeva uzorak"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Radi sigurnosti postavite PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Otisak prsta zahtijeva PIN"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Radi sigurnosti postavite uzorak"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Ponovni unos zaporke"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Potvrdite uzorak"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Ponovni unos PIN-a"</string>
@@ -3409,6 +3403,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Upotrebljavajte uređaj kao MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Svrha upotrebe USB-a"</string>
<string name="usb_use_also" msgid="557340935190819370">"Upotrebljavajte USB i za"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Punjenje ovog uređaja"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Punjenje povezanog uređaja"</string>
@@ -3878,8 +3876,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"upot."</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Izbriši podatke aplikacije"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Želite li ukloniti tu instant aplikaciju?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Otvori"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Igre"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Audiodatoteke"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Iskorišteni prostor"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 1680d03..4cb4719 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Óvja meg táblagépét"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Óvja meg eszközét"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Óvja meg telefonját"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"A nagyobb biztonság érdekében állítson be másodlagos képernyőzárat"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Az eszköz védelmi funkcióinak aktiválásával megakadályozhatja, hogy mások az Ön engedélye nélkül használják a táblagépet. Válassza ki a használni kívánt képernyőlezárási módot."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Az eszköz védelmi funkcióinak aktiválásával megakadályozhatja, hogy mások az Ön engedélye nélkül használják az eszközt. Válassza ki a használni kívánt képernyőlezárási módot."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Az eszköz védelmi funkcióinak aktiválásával megakadályozhatja, hogy mások az Ön engedélye nélkül használják a telefont. Válassza ki a használni kívánt képernyőlezárási módot."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wifi-hotspot beállítása"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK hotspot"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Nem áll rendelkezésre, mert be van kapcsolva a Repülős üzemmód"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi-hívás"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Hálózati lefedettség kiterjesztése Wi‑Fi-vel"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"A Wi-Fi-hívások bekapcsolása"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Biztonsági információk"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Nincs adatkapcsolat. Az információ azonnali megtekintéséhez keresse fel a következő helyet bármelyik számítógépről, amely csatlakozik az internethez: %s."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Betöltés…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Képernyőzár beállítása"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"A biztonság érdekében állítson be jelszót"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Jelszó az ujjlenyomathoz"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Minta az ujjlenyomathoz"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"A biztonság érdekében állítson be PIN-kódot"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"PIN-kód az ujjlenyomathoz"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"A biztonság érdekében állítson be mintát"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Adja meg újra a jelszót"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Erősítse meg a mintát"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Adja meg újra a PIN-kódot"</string>
@@ -3366,6 +3360,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"A készülék használata MIDI-eszközként"</string>
<string name="usb_use" msgid="3372728031108932425">"USB használata a következő célra:"</string>
<string name="usb_use_also" msgid="557340935190819370">"USB használata a következőhöz is:"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Az eszköz töltése"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Folyamatban van a csatlakoztatott eszköz töltése"</string>
@@ -3818,8 +3816,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"foglalt"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Alkalmazás törlése"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Eltávolítja ezt az azonnali alkalmazást?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Megnyitás"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Játékok"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Hangfájlok"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Felhasznált tárhely"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index acb4311..1c65d2e 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Պաշտպանեք ձեր պլանշետը"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Պաշտպանեք ձեր սարքը"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Պաշտպանեք ձեր հեռախոսը"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Ապահովության համար սահմանեք էկրանի կողպման լրացուցիչ եղանակ"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Կանխեք այս պլանշետի չթույլատրված օգտագործումն այլ անձանց կողմից՝ ակտիվացնելով սարքի պաշտպանության գործառույթները: Ընտրեք էկրանի կողպման ցանկալի եղանակը:"</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Կանխեք այս սարքի չթույլատրված օգտագործումն այլ անձանց կողմից՝ ակտիվացնելով սարքի պաշտպանության գործառույթները: Ընտրեք էկրանի կողպման ցանկալի եղանակը:"</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Կանխեք այս հեռախոսի չթույլատրված օգտագործումն այլ անձանց կողմից՝ ակտիվացնելով սարքի պաշտպանության գործառույթները: Ընտրեք էկրանի կողպման ցանկալի եղանակը:"</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wi-Fi թեժ կետի կարգավորում"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK թեժ կետ"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Android թեժ կետ"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Հասանելի չէ, քանի որ ինքնաթիռի ռեժիմ է միացված"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Զանգեր Wi-Fi-ի միջոցով"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Ընդարձակեք զանգերի ծածկույթը Wi‑Fi-ի միջոցով"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Միացրեք Wi-Fi-ի միջոցով զանգերը"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Անվտանգության տեղեկատվություն"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Սարքը միացված չէ ինտերնետին: Այս տեղեկությունը դիտելու համար անցեք %s` համացանցին միացված ցանկացած համակարգչով:"</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Բեռնում..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Էկրանի կողպման կարգավորում"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Անվտանգության նկատառումներից ելնելով՝ ավելացրեք գաղտնաբառ"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Մատնահետքն օգտագործելու համար տեղադրեք գաղտնաբառ"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Մատնահետքն օգտագործելու համար ստեղծեք նախշ"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Անվտանգության նկատառումներից ելնելով՝ ավելացրեք PIN կոդ"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Մատնահետքն օգտագործելու համար տեղադրեք PIN կոդ"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Անվտանգության նկատառումներից ելնելով՝ ավելացրեք նախշ"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Նորից մուտքագրեք գաղտնաբառը"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Հաստատեք ձեր կաղապարը"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Նորից մուտքագրեք PIN կոդը"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Այս սարքի օգտագործում որպես MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Օգտագործել հետևյալ USB կապակցումը՝"</string>
<string name="usb_use_also" msgid="557340935190819370">"USB-ի այլ կիրառումներ"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Այս սարքի լիցքավորում"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Միացված սարքի լիցքավորում"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"զբաղված է"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Մաքրել հավելվածի տվյալները"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Հեռացնե՞լ այս ակնթարթորեն գործարկվող հավելվածը։"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Բացել"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Խաղեր"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Աուդիո ֆայլեր"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Օգտագործած տարածքը"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 7bac935..53088a9 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Lindungi tablet"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Lindungi perangkat"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Lindungi ponsel"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Untuk tambahan keamanan, setel kunci layar backup"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Cegah orang lain menggunakan tablet ini tanpa izin Anda dengan mengaktifkan fitur perlindungan perangkat. Pilih kunci layar yang ingin Anda gunakan."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Cegah orang lain menggunakan perangkat ini tanpa izin Anda dengan mengaktifkan fitur perlindungan perangkat. Pilih kunci layar yang ingin Anda gunakan."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Cegah orang lain menggunakan ponsel ini tanpa izin Anda dengan mengaktifkan fitur perlindungan perangkat. Pilih kunci layar yang ingin Anda gunakan."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Penyiapan hotspot Wi‑Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Hotspot AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Tidak tersedia karena mode pesawat aktif"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Panggilan Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Perluas cakupan panggilan dengan Wi-Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Aktifkan panggilan Wi-Fi"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Informasi keselamatan"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Anda tidak memiliki koneksi data. Untuk menampilkan informasi ini sekarang, buka %s dari komputer mana pun yang terhubung ke internet."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Memuat…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Setel kunci layar"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Untuk keamanan, setel sandi"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Setel sandi guna memakai sidik jari"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Setel pola untuk fitur sidik jari"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Untuk keamanan, setel PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Setel PIN guna memakai sidik jari"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Untuk keamanan, setel pola"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Masukkan ulang sandi"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Konfirmasi pola Anda"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Masukkan ulang PIN"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Menggunakan perangkat ini sebagai MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Gunakan USB untuk"</string>
<string name="usb_use_also" msgid="557340935190819370">"Gunakan juga USB untuk"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Mengisi baterai perangkat ini"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Mengisi daya perangkat yang terhubung"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"dipakai"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Hapus aplikasi"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Ingin menghapus aplikasi instan ini?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Buka"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Game"</string>
<string name="audio_files_title" msgid="4777048870657911307">"File audio"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Ruang penyimpanan yang digunakan"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 6432722..7a064e5 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Auktu öryggi spjaldtölvunnar"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Auktu öryggi tækisins"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Auktu öryggi símans"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Settu upp skjálás til vara til að gæta fyllsta öryggis"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Komdu í veg fyrir að aðrir noti þessa spjaldtölvu í heimildarleysi með því að virkja varnareiginleika spjaldtölvunnar. Veldu þann skjálás sem þú vilt nota."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Komdu í veg fyrir að aðrir noti þetta tæki í heimildarleysi með því að virkja varnareiginleika tækisins. Veldu þann skjálás sem þú vilt nota."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Komdu í veg fyrir að aðrir noti þennan síma í heimildarleysi með því að virkja varnareiginleika símans. Veldu þann skjálás sem þú vilt nota."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Uppsetning heits Wi-Fi reits"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Heitur AndroidAP WPA2 PSK-reitur"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Þetta er ekki í boði vegna þess að kveikt er á flugstillingu"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi símtöl"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Náðu lengra með Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Kveikja á Wi-Fi símtölum"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Öryggisupplýsingar"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Engin gagnatenging er fyrir hendi. Til að skoða þessar upplýsingar núna skaltu fara á %s úr nettengdri tölvu."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Hleður…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Stilla skjálás"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Veldu þér aðgangsorð til að gæta fyllsta öryggis"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Aðgangsorð þarf fyrir fingrafar"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Mynstur þarf fyrir fingrafar"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Veldu þér PIN-númer til að gæta fyllsta öryggis"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"PIN-númer þarf fyrir fingrafar"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Stilltu mynstur til að gæta fyllsta öryggis"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Sláðu aðgangsorðið inn aftur"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Staðfestu mynstrið"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Sláðu PIN-númerið inn aftur"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Nota þetta tæki sem MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Nota USB fyrir"</string>
<string name="usb_use_also" msgid="557340935190819370">"Nota USB einnig fyrir"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Hleður þetta tæki"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Hlaða tengt tæki"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"notuð"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Hreinsa forrit"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Fjarlægja þetta skyndiforrit?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Opna"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Leikir"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Hljóðskrár"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Notað geymslupláss"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index f6ef73c..28da700 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Proteggi il tuo tablet"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Proteggi dispositivo"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Proteggi il telefono"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Per maggiore sicurezza, imposta un blocco schermo alternativo"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Impedisci ad altri di utilizzare il tablet senza la tua autorizzazione attivando le funzioni di protezione del dispositivo. Scegli il blocco schermo che desideri utilizzare."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Impedisci ad altri di utilizzare il dispositivo senza la tua autorizzazione attivando le funzioni di protezione del dispositivo. Scegli il blocco schermo che desideri utilizzare."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Impedisci ad altri di utilizzare il telefono senza la tua autorizzazione attivando le funzioni di protezione del dispositivo. Scegli il blocco schermo che desideri utilizzare."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Configurazione hotspot Wi-Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Hotspot WPA2 PSK AndroidAP"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"HotspotAndroid"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Non disponibile perché è attiva la modalità aereo"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Chiamate Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Estendi copertura chiamate con rete Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Attiva la funzione Chiamate Wi-Fi"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Informazioni sulla sicurezza"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Nessuna connessione dati disponibile. Per visualizzare ora le informazioni, visita il sito %s da qualsiasi computer collegato a Internet."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Caricamento..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Imposta il blocco schermo"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Per sicurezza, imposta una password"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Per usare l\'impronta digitale, imposta la password"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Per usare l\'impronta digitale, imposta la sequenza"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Per sicurezza, imposta un PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Per usare l\'impronta digitale, imposta il PIN"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Per sicurezza, imposta una sequenza"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Inserisci di nuovo la password"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Conferma la tua sequenza"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Inserisci di nuovo il PIN"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Utilizzare questo dispositivo per la modalità MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Utilizza connessione USB per"</string>
<string name="usb_use_also" msgid="557340935190819370">"Usa USB anche per"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Ricarica del dispositivo"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Ricarica del dispositivo collegato"</string>
@@ -3723,7 +3721,7 @@
<string name="web_action_enable_title" msgid="4051513950976670853">"App istantanee"</string>
<string name="web_action_enable_summary" msgid="3108127559723396382">"Apri i link nelle app, anche se non sono installate"</string>
<string name="web_action_section_title" msgid="7364647086538399136">"App istantanee"</string>
- <string name="instant_apps_settings" msgid="8827777916518348213">"Preferenze per le app istantanee"</string>
+ <string name="instant_apps_settings" msgid="8827777916518348213">"Preferenze app istantanee"</string>
<string name="domain_url_section_title" msgid="7046835219056428883">"App installate"</string>
<string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Il tuo spazio di archiviazione è ora gestito dalla Gestione memoria"</string>
<string name="account_for_section_header" msgid="5356566418548737121">"Account di <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"usato"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Cancella dati dall\'app"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Vuoi rimuovere questa app istantanea?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Apri"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Giochi"</string>
<string name="audio_files_title" msgid="4777048870657911307">"File audio"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Spazio occupato"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 70733d4..c87460c 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -488,8 +488,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"הגן על הטאבלט שלך"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"הגן על המכשיר שלך"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"הגן על הטלפון שלך"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"לשיפור האבטחה, מומלץ להגדיר נעילת מסך נוספת לגיבוי"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"הפעל את תכונות הגנת המכשיר כדי למנוע מאחרים להשתמש בטאבלט הזה ללא אישורך. בחר בנעילת המסך שבה תרצה להשתמש."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"הפעל את תכונות הגנת המכשיר כדי למנוע מאחרים להשתמש במכשיר הזה ללא אישורך. בחר בנעילת המסך שבה תרצה להשתמש."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"הפעל את תכונות הגנת המכשיר כדי למנוע מאחרים להשתמש בטלפון הזה ללא אישורך. בחר בנעילת המסך שבה תרצה להשתמש."</string>
@@ -948,8 +947,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"הגדרה של נקודת שיתוף Wi‑Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"נקודה לשיתוף אינטרנט AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"לא זמין, מפני ש\'מצב טיסה\' מופעל"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"שיחות ב-Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"הרחבה של כיסוי השיחות עם Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"הפעלה של שיחות Wi-Fi"</string>
@@ -1517,17 +1515,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"מידע על בטיחות"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"אין חיבור נתונים. כדי להציג מידע זה כעת, צריך לעבור אל %s ממחשב כלשהו המחובר לאינטרנט."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"טוען..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"הגדרה של נעילת מסך"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"לשיפור האבטחה, מומלץ להגדיר סיסמה"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"כדי להשתמש בטביעת אצבע, הגדר סיסמה"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"לטביעת האצבע נדרש קו ביטול נעילה"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"לשיפור האבטחה, מומלץ להגדיר קוד גישה"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"כאמצעי גיבוי, הגדר קוד גישה"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"לשיפור האבטחה, מומלץ להגדיר קו ביטול נעילה"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"יש להזין את הסיסמה שוב"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"אשר את הקו לביטול נעילה"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"יש להזין שוב את קוד הגישה"</string>
@@ -2137,7 +2131,7 @@
<string name="battery_tip_restrict_app_dialog_message" msgid="5818730114373015028">"כדי לחסוך בסוללה, ניתן למנוע מאפליקציה זו לפעול ברקע כשהיא לא בשימוש."</string>
<string name="battery_tip_restrict_app_dialog_ok" msgid="8291115820018013353">"הגבלה"</string>
<string name="battery_tip_unrestrict_app_dialog_title" msgid="4550106794311784978">"להסיר הגבלה לאפליקציה <xliff:g id="APP">%1$s</xliff:g>?"</string>
- <string name="battery_tip_unrestrict_app_dialog_message" msgid="4836135946080501395">"האפליקציה תוכל להשתמש בסוללה ברקע. בעקבות זאת, ייתכן שהסוללה תתרוקן מהר יותר."</string>
+ <string name="battery_tip_unrestrict_app_dialog_message" msgid="4836135946080501395">"האפליקציה תוכל להשתמש בסוללה ברקע. ייתכן שהסוללה תתרוקן מהר יותר."</string>
<string name="battery_tip_unrestrict_app_dialog_ok" msgid="6022058431218137646">"הסרה"</string>
<string name="battery_tip_unrestrict_app_dialog_cancel" msgid="9062797114255859496">"לא עכשיו"</string>
<string name="smart_battery_manager_title" msgid="5677222263071864438">"מנהל סוללה חכם"</string>
@@ -3456,6 +3450,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"שימוש במכשיר זה כהתקן MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"השתמש ב-USB בשביל"</string>
<string name="usb_use_also" msgid="557340935190819370">"יש להשתמש ב-USB גם בשביל"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"הטענת המכשיר"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"טעינת המכשיר המחובר"</string>
@@ -3678,7 +3676,7 @@
<item quantity="other">מותר להשתמש בנתונים בלתי מוגבלים ב-<xliff:g id="COUNT">%1$d</xliff:g> אפליקציות כשחוסך הנתונים (Data Saver) פועל</item>
<item quantity="one">מותר להשתמש בנתונים בלתי מוגבלים באפליקציה אחת כשחוסך הנתונים (Data Saver) פועל</item>
</plurals>
- <string name="data_usage_title" msgid="3659356290392241789">"נתונים ראשיים"</string>
+ <string name="data_usage_title" msgid="3659356290392241789">"נתונים עיקריים"</string>
<string name="data_used" msgid="5116389957228457203">"נעשה שימוש ב-<xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="data_remaining" msgid="8998091725895502181">"נפח שנותר: <xliff:g id="ID_1">, ^1</xliff:g>"</string>
<string name="cycle_left_time_text" msgid="8501602478371081001">"הזמן הנותר במחזור הזה: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
@@ -3942,8 +3940,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"בשימוש"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"נקה אפליקציה"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"האם ברצונך להסיר את אפליקציית האינסטנט הזאת?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"פתיחה"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"משחקים"</string>
<string name="audio_files_title" msgid="4777048870657911307">"קובצי אודיו"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"שטח אחסון בשימוש"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index ab2fc8a..03b63e7 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"タブレットの保護"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"端末の保護"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"スマートフォンの保護"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"セキュリティを強化するには、予備の画面ロックを設定してください"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"このタブレットが他人に無断で使用されるのを防ぐには、端末保護機能を有効にします。利用する画面ロックを選択してください。"</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"この端末が他人に無断で使用されるのを防ぐには、端末保護機能を有効にします。利用する画面ロックを選択してください。"</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"このスマートフォンが他人に無断で使用されるのを防ぐには、端末保護機能を有効にします。利用する画面ロックを選択してください。"</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"アクセスポイントのセットアップ"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK アクセス ポイント"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"機内モードがオンなのでご利用になれません"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi通話"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Wi‑Fi で通話範囲を拡大"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Wi-Fi 通話を ON にする"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"安全に関する情報"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"データ接続されていません。この情報を表示するにはインターネットに接続されているパソコンから %s にアクセスしてください。"</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"読み込み中..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"画面ロックの設定"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"セキュリティ強化のため、パスワードを設定してください"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"指紋認証にはパスワードが必要です"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"指紋認証にはパターンが必要です"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"セキュリティ強化のため、PIN を設定してください"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"指紋認証には PIN が必要です"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"セキュリティ強化のため、パターンを設定してください"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"パスワードの再入力"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"パターンの確認"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"PIN の再入力"</string>
@@ -3368,6 +3362,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"この端末を MIDI として利用する際に使用します"</string>
<string name="usb_use" msgid="3372728031108932425">"USBの使用"</string>
<string name="usb_use_also" msgid="557340935190819370">"USB の他の用途"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"この端末を充電する"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"接続端末の充電"</string>
@@ -3820,8 +3818,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"使用"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"アプリを削除"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"この Instant App を削除してもよろしいですか?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"開く"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"ゲーム"</string>
<string name="audio_files_title" msgid="4777048870657911307">"音声ファイル"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"使用済み容量"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index afaf75a..0a1dae7 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"თქვენი ტაბლეტის დაცვა"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"თქვენი მოწყობილობის დაცვა"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"დაიცავით ტელეფონი"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"დამატებითი უსაფრთხოებისთვის დააყენეთ ეკრანის დაბლოკვის სარეზერვო მეთოდი"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"გაააქტიურეთ მოწყობილობის დაცვის ფუნქციები, რათა თქვენი ნებართვის გარეშე ეს ტაბლეტი ვერავინ გამოიყენოს. აირჩიეთ ეკრანის დაბლოკვის სასურველი ხერხი."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"გაააქტიურეთ მოწყობილობის დაცვის ფუნქციები, რათა თქვენი ნებართვის გარეშე ეს მოწყობილობა ვერავინ გამოიყენოს. აირჩიეთ ეკრანის დაბლოკვის სასურველი ხერხი."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"გაააქტიურეთ მოწყობილობის დაცვის ფუნქციები, რათა თქვენი ნებართვის გარეშე ეს ტელეფონი ვერავინ გამოიყენოს. აირჩიეთ ეკრანის დაბლოკვის სასურველი ხერხი."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wi‑Fi უსადენო ქსელის დაყენება"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK უსადენო ქსელი"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"მიუწვდომელია, რადგან ჩართულია თვითმფრინავის რეჟიმი"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"დარეკვა Wi-Fi-ს მეშვეობით"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"ზარის დაფარვის Wi‑Fi-თ გაფართოება"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Wi-Fi დარეკვის ჩართვა"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"ინფორმაცია უსაფრთხოების შესახებ"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"თქვენ არ გაქვთ ინტერნეტ კავშირი. ამ ინფორმაციის ახლავე სანახავად, გადადით %s-ზე ინტერნეტში ჩართული ნებისმიერი კომპიუტერიდან."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"იტვირთება…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"ეკრანის დაბლოკვის მეთოდის დაყენება"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"უსაფრთხოებისთვის დააყენეთ პაროლი"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"თითის ანაბეჭდის გამოსაყენებლად დააყენეთ პაროლი"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"თითის ანაბეჭდისთვის დააყენეთ ნიმუში"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"უსაფრთხოებისთვის დააყენეთ PIN-კოდი"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"თითის ანაბეჭდის გამოსაყენებლად დააყენეთ PIN-კოდი"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"უსაფრთხოებისთვის დააყენეთ განმბლოკავი ნიმუში"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"ხელახლა შეიყვანეთ თქვენი პაროლი"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"დაადასტურეთ ნიმუში"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"ხელახლა შეიყვანეთ თქვენი PIN-კოდი"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"ამ მოწყობილობის MIDI-ს სახით გამოყენება"</string>
<string name="usb_use" msgid="3372728031108932425">"USB-ს გამოყენება"</string>
<string name="usb_use_also" msgid="557340935190819370">"USB-ს აგრეთვე გამოყენება"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"ამ მოწყობილობის დატენვა"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"დაკავშირებული მოწყობილობის დატენვა"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"გამოყენებული"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"აპის გასუფთავება"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"გსურთ ამ მყისიერი აპის ამოშლა?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"გახსნა"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"თამაშები"</string>
<string name="audio_files_title" msgid="4777048870657911307">"აუდიო ფაილები"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"გამოყენებული მეხსიერება"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 6eac201..4adf855 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Планшетті қорғау"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Құрылғыны қорғау"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Телефонды қорғау"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Қауіпсіздікті күшейту үшін қосымша экран құлпын орнатыңыз"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"құрылғы қорғау мүмкіндіктерін іске қосу арқылы сіздің рұқсатыңызсыз планшетті басқалардың пайдалануына жол бермеңіз. Пайдаланғыңыз келетін экран құлпын таңдаңыз."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Құрылғыны қорғау мүмкіндіктерін белсендіру арқылы басқалардың осы құрылғыны рұқсатыңызсыз пайдалануын болдырмаңыз. Пайдаланғыңыз келетін экран бекітпесін таңдаңыз."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Құрылғыны қорғау мүмкіндіктерін белсендіру арқылы басқалардың осы телефонды рұқсатыңызсыз пайдалануын болдырмаңыз. Пайдаланғыңыз келетін экран бекітпесін таңдаңыз."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wi‑Fi хотспотын реттеу"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK хотспоты"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Android хот-споты"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Ұшақ режимі қосылып тұрғандықтан, қолжетімді емес"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi қоңыраулары"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Wi-Fi арқылы қоңыраулар аясын кеңейту"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Wi-Fi қоңырауларын қосу"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Қауіпсіздік ақпараты"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Деректер байланысы жоқ. Бұл ақпаратты көру үшін интернетке қосылған кез келген компьютерден %s бөліміне өтіңіз."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Жүктелуде..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Экран құлпын орнату"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Қауіпсіздік үшін құпия сөз орнатыңыз"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Саусақ ізін пайдалану үшін құпия сөз орнатыңыз"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Саусақ ізін пайдалану үшін өрнекті орнатыңыз"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Қауіпсіздік үшін PIN кодын орнатыңыз"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Саусақ ізін пайдалану үшін PIN кодын пайдаланыңыз"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Қауіпсіздік үшін өрнек орнатыңыз"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Құпия сөзді қайта енгізіңіз"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Өрнекті растаңыз"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"PIN кодын қайта енгізіңіз"</string>
@@ -2144,7 +2138,7 @@
<string name="usage_type_data_wifi_send" msgid="1847552143597396162">"Wi‑Fi пакеттері жіберілді"</string>
<string name="usage_type_data_wifi_recv" msgid="5678475911549183829">"Wi‑Fi пакеттері қабылданды"</string>
<string name="usage_type_audio" msgid="6957269406840886290">"Aудио"</string>
- <string name="usage_type_video" msgid="4295357792078579944">"Видео"</string>
+ <string name="usage_type_video" msgid="4295357792078579944">"Бейне"</string>
<string name="usage_type_camera" msgid="8299433109956769757">"Камера"</string>
<string name="usage_type_flashlight" msgid="1516392356962208230">"Қалта шамы"</string>
<string name="usage_type_on_time" msgid="3351200096173733159">"Уақыт қосулы"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Осы құрылғыны MIDI ретінде пайдалану"</string>
<string name="usb_use" msgid="3372728031108932425">"USB пайдалану мақсаты"</string>
<string name="usb_use_also" msgid="557340935190819370">"USB байланысын келесілер үшін де пайдалану:"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Осы құрылғыны зарядтауда"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Жалғанған құрылғыны зарядтау"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"пайдаланылған"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Қолданбаны деректерін өшіру"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Бұл лездік қолданбаны өшіргіңіз келе ме?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Ашу"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Ойындар"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Аудиофайлдар"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Пайдаланылған орын"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index feb5c4e..64514aa 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -3364,6 +3364,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"ប្រើឧបករណ៍នេះជាមីឌី"</string>
<string name="usb_use" msgid="3372728031108932425">"ប្រើ USB ដើម្បី"</string>
<string name="usb_use_also" msgid="557340935190819370">"ក៏ប្រើប្រាស់ USB សម្រាប់"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"សាកថ្មឧបករណ៍នេះ"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"សាកថ្មឧបករណ៍ដែលបានភ្ជាប់"</string>
@@ -3816,8 +3820,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"បានប្រើប្រាស់"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"ជម្រះកម្មវិធី"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"តើអ្នកចង់ដកកម្មវិធីប្រើភ្លាមៗនេះចេញមែនទេ?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"បើក"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"ហ្គេម"</string>
<string name="audio_files_title" msgid="4777048870657911307">"ឯកសារសំឡេង"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"ទំហំដែលបានប្រើ"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 25e8ecb..1315347 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ರಕ್ಷಿಸಿ"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ರಕ್ಷಿಸಿ"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"ನಿಮ್ಮ ಫೋನನ್ನು ರಕ್ಷಿಸಿ"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"ಹೆಚ್ಚಿನ ಸುರಕ್ಷತೆಗಾಗಿ, ಬ್ಯಾಕಪ್ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಅನ್ನು ಹೊಂದಿಸಿ"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"ಸಾಧನದ ರಕ್ಷಣೆ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೂಲಕ ನಿಮ್ಮ ಅನುಮತಿ ಇಲ್ಲದೆ ಇತರರು ಈ ಟ್ಯಾಬ್ಲೆಟ್ ಬಳಸುವುದನ್ನು ತಡೆಯಿರಿ. ನೀವು ಬಳಸಲು ಬಯಸುವ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಆಯ್ಕೆಮಾಡಿ."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"ಸಾಧನದ ರಕ್ಷಣೆ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೂಲಕ ನಿಮ್ಮ ಅನುಮತಿ ಇಲ್ಲದೆ ಇತರರು ಈ ಸಾಧನವನ್ನು ಬಳಸುವುದನ್ನು ತಡೆಯಿರಿ. ನೀವು ಬಳಸಲು ಬಯಸುವ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಆಯ್ಕೆಮಾಡಿ."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"ಸಾಧನದ ರಕ್ಷಣೆ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೂಲಕ ನಿಮ್ಮ ಅನುಮತಿ ಇಲ್ಲದೆ ಇತರರು ಈ ಫೋನ್ ಬಳಸುವುದನ್ನು ತಡೆಯಿರಿ. ನೀವು ಬಳಸಲು ಬಯಸುವ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಆಯ್ಕೆಮಾಡಿ."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"ವೈ-ಫೈ ಹಾಟ್ಸ್ಪಾಟ್ ಸೆಟಪ್"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK ಹಾಟ್ಸ್ಪಾಟ್"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"ಏರ್ಪ್ಲೇನ್ ಮೋಡ್ ಆನ್ ಆಗಿರುವುದರಿಂದ ಲಭ್ಯವಿರುವುದಿಲ್ಲ"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"ವೈ-ಫೈ ಕರೆ ಮಾಡುವಿಕೆ"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"ವೈ-ಫೈ ಮೂಲಕ ಕರೆ ಕವರೇಜ್ ವಿಸ್ತ"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"ವೈ-ಫೈ ಕರೆ ಮಾಡುವಿಕೆ ಆನ್ ಮಾಡಿ"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"ಸುರಕ್ಷತೆ ಮಾಹಿತಿ"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"ನೀವು ಡೇಟಾ ಸಂಪರ್ಕವನ್ನು ಹೊಂದಿಲ್ಲ. ಇದೀಗ ಈ ಮಾಹಿತಿಯನ್ನು ವೀಕ್ಷಿಸಲು, ಇಂಟರ್ನೆಟ್ಗೆ ಸಂಪರ್ಕಪಡಿಸಿದ ಯಾವುದೇ ಕಂಪ್ಯೂಟರ್ನಿಂದ %s ಗೆ ಹೋಗಿ."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"ಲೋಡ್ ಆಗುತ್ತಿದೆ..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"ಪರದೆ ಲಾಕ್ ಹೊಂದಿಸಿ"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"ಸುರಕ್ಷತೆಗಾಗಿ, ಪಾಸ್ವರ್ಡ್ ಹೊಂದಿಸಿ"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಬಳಸಲು, ಪಾಸ್ವರ್ಡ್ ಹೊಂದಿಸಿ"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"ಬೆರಳಚ್ಚು ಬಳಸಲು, ಪ್ಯಾಟರ್ನ್ ಹೊಂದಿಸಿ"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"ಸುರಕ್ಷತೆಗಾಗಿ, ಪಿನ್ ಅನ್ನು ಹೊಂದಿಸಿ"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"ಬೆರಳಚ್ಚು ಬಳಸಲು, ಪಿನ್ ಹೊಂದಿಸಿ"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"ಸುರಕ್ಷತೆಗಾಗಿ, ಪ್ಯಾಟರ್ನ್ ಅನ್ನು ಹೊಂದಿಸಿ"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಮರು ನಮೂದಿಸಿ"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"ಪ್ಯಾಟರ್ನ್ ಅನ್ನು ದೃಢೀಕರಿಸಿ"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"ನಿಮ್ಮ ಪಿನ್ ಅನ್ನು ಮರು ನಮೂದಿಸಿ"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"ಈ ಸಾಧನವನ್ನು MIDI ಎಂದು ಬಳಸಿ"</string>
<string name="usb_use" msgid="3372728031108932425">"ಇದಕ್ಕಾಗಿ USB ಬಳಸಿ"</string>
<string name="usb_use_also" msgid="557340935190819370">"ಇದಕ್ಕಾಗಿ USB ಅನ್ನು ಬಳಸಿ"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"ಈ ಸಾಧನವನ್ನು ಚಾರ್ಜ್ ಮಾಡುವುದು"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"ಸಂಪರ್ಕಗೊಂಡಿರುವ ಸಾಧನವನ್ನು ಚಾರ್ಜ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"ಬಳಕೆಯಾಗಿದೆ"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"ಅಪ್ಲಿಕೇಶನ್ ತೆರವುಗೊಳಿಸಿ"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"ಈ ತತ್ಕ್ಷಣ ಅಪ್ಲಿಕೇಶನ್ ತೆಗೆದುಹಾಕಲು ಬಯಸುವಿರಾ?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"ತೆರೆ"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"ಗೇಮ್ಗಳು"</string>
<string name="audio_files_title" msgid="4777048870657911307">"ಆಡಿಯೋ ಫೈಲ್ಗಳು"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"ಬಳಸಿರುವ ಸ್ಥಳ"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 03def65..94da39f 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"태블릿 보호"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"기기 보호"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"휴대전화 보호"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"보안을 강화하려면 백업 화면 잠금을 설정하세요."</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"기기 보호 기능을 활성화하여 다른 사람이 내 허가 없이 이 태블릿을 사용하는 것을 방지합니다. 사용하려는 화면 잠금을 선택하세요."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"기기 보호 기능을 활성화하여 다른 사람이 내 허가 없이 이 기기를 사용하는 것을 방지합니다. 사용하려는 화면 잠금을 선택하세요."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"기기 보호 기능을 활성화하여 다른 사람이 내 허가 없이 이 스마트폰을 사용하는 것을 방지합니다. 사용하려는 화면 잠금을 선택하세요."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wi‑Fi 핫스팟 설정"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK 핫스팟"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"비행기 모드가 사용 설정되어 있기 때문에 사용할 수 없습니다."</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi 통화"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Wi‑Fi로 통화 범위 확장하기"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Wi-Fi 통화 사용 설정"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"안전 정보"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"데이터에 연결되어 있지 않습니다. 지금 이 정보를 보려면 인터넷에 연결된 컴퓨터에서 %s(으)로 이동하세요."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"로드 중..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"화면 잠금 설정"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"보안을 위해 비밀번호를 설정하세요."</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"비밀번호를 설정하여 지문 사용"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"지문 사용 전 입력할 패턴 설정"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"보안을 위해 PIN을 설정하세요."</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"PIN을 설정하여 지문 사용"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"보안을 위해 패턴을 설정하세요."</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"비밀번호 다시 입력"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"패턴 확인"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"PIN 다시 입력"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"이 기기를 MIDI로 사용"</string>
<string name="usb_use" msgid="3372728031108932425">"USB 사용"</string>
<string name="usb_use_also" msgid="557340935190819370">"다음 항목에 USB 사용"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"기기 충전 중"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"연결된 기기 충전 중"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"사용됨"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"앱 삭제"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"이 인스턴트 앱을 삭제하시겠습니까?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"열기"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"게임"</string>
<string name="audio_files_title" msgid="4777048870657911307">"오디오 파일"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"사용 중인 공간"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 25ec52b..dacab25 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -481,8 +481,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Планшетиңизди коргоңуз"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Түзмөгүңүздү коргоңуз"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Телефонуңузду коргоңуз"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Кошумча коопсуздук үчүн көмөкчү экран кулпусун коюп алыңыз"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Түзмөктү коргоо функциялары жандырылганда, башкалар бул планшетти сиздин уруксатыңызсыз пайдалана албай калышат. Колдонгуңуз келген экран кулпусун тандаңыз."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Түзмөктү коргоо функциялары жандырылганда, башкалар бул түзмөктү сиздин уруксатыңызсыз пайдалана албай калышат. Колдонгуңуз келген экран кулпусун тандаңыз."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Түзмөктү коргоо функциялары жандырылганда, башкалар бул телефонду сиздин уруксатыңызсыз пайдалана албай калышат. Колдонгуңуз келген экран кулпусун тандаңыз."</string>
@@ -923,8 +922,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wi‑Fi туташуу чекитин орнотуу"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK туташуу түйүнү"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Учак режими күйгүзүлгөндүктөн, туташуу түйүнү иштебейт"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi чалуу"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Wi‑Fi аркылуу чалуу аймагын кеңейтүү"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Wi-Fi чалууну күйгүзүү"</string>
@@ -1490,17 +1488,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Коопсуздук маалыматы"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Учурда сизде мобилдик Интернет жок. Бул маалыматты азыр көрүү үчүн Интернет байланышы бар компьютерден %s баракчасына өтүңүз."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Жүктөлүүдө…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Экран кулпусун коюу"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Коопсуздук үчүн сырсөз коюп алыңыз"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Манжа изин колдонуу үчүн сырсөздү жөндөңүз"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Манжа изин колдонуу үчүн графикалык ачкычты жөндөңүз"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Коопсуздук үчүн PIN код коюп алыңыз"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Манжа изин колдонуу үчүн PIN кодду жөндөңүз"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Коопсуздук үчүн графикалык ачкыч коюп алыңыз"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Сырсөзүңүздү кайра киргизиңиз"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Графикалык ачкычыңызды ырастаңыз"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"PIN кодуңузду кайра киргизиңиз"</string>
@@ -3367,6 +3361,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Бул түзмөктү MIDI катары колдонуу"</string>
<string name="usb_use" msgid="3372728031108932425">"USB төмөнкү үчүн колдонулсун:"</string>
<string name="usb_use_also" msgid="557340935190819370">"USB төмөнкү функцияларды да аткара алат:"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Бул түзмөктү кубаттоо"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Туташкан түзмөктү кубаттоо"</string>
@@ -3819,8 +3817,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"колдонулду"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Колдонмонун дайындарын тазалоо"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Бул ыкчам ачылуучу колдонмо алынып салынсынбы?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Ачуу"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Оюндар"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Аудио файлдар"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Эстутумдан ээлеген орду"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index a7a5a3c..4480d17 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"ປົກປ້ອງແທັບເລັດຂອງທ່ານ"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"ປົກປ້ອງອຸປະກອນຂອງທ່ານ"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"ປົກປ້ອງໂທລະສັບຂອງທ່ານ"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"ເພື່ອຄວາມປອດໄພທີ່ເພີ່ມຂຶ້ນ, ໃຫ້ຕັ້ງໜ້າຈໍລັອກແບບສຳຮອງໄວ້."</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"ປ້ອງກັນບໍ່ໃຫ້ຄົນອື່ນໃຊ້ແທັບເລັດນີ້ໂດຍບໍ່ໄດ້ຮັບອະນຸຍາດຈາກທ່ານ ໂດຍການເປີດນຳໃຊ້ຄຸນສົມບັດການປົກປ້ອງອຸປະກອນ. ເລືອກການລັອກໜ້າຈໍທີ່ທ່ານຕ້ອງການໃຊ້."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"ປ້ອງກັນບໍ່ໃຫ້ຄົນອື່ນໃຊ້ອຸປະກອນນີ້ໂດຍບໍ່ໄດ້ຮັບອະນຸຍາດຈາກທ່ານ ໂດຍການເປີດນຳໃຊ້ຄຸນສົມບັດການປົກປ້ອງອຸປະກອນ. ເລືອກການລັອກໜ້າຈໍທີ່ທ່ານຕ້ອງການໃຊ້."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"ປ້ອງກັນບໍ່ໃຫ້ຄົນອື່ນໃຊ້ໂທລະສັບນີ້ໂດຍບໍ່ໄດ້ຮັບອະນຸຍາດຈາກທ່ານ ໂດຍການເປີດນຳໃຊ້ຄຸນສົມບັດການປົກປ້ອງອຸປະກອນ. ເລືອກການລັອກໜ້າຈໍທີ່ທ່ານຕ້ອງການໃຊ້."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"ການຕັ້ງຄ່າ Wi‑Fi ຮັອດສະປອດ"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"ຮັອດສະປອດ AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Unavailable because airplane mode is turned on"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"ການໂທ Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"ຂະຫຍາຍສັນຍານໂທລະສັບດ້ວຍ Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"ເປີດໃຊ້ການໂທ Wi-Fi"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"ຂໍ້ມູນດ້ານຄວາມປອດໄພ"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"ທ່ານບໍ່ໄດ້ເຊື່ອມຕໍ່ອິນເຕີເນັດ. ເພື່ອເບິ່ງຂໍ້ມູນນີ້ໃນຕອນນີ້, ກະລຸນາໄປທີ່ %s ຈາກຄອມພິວເຕີເຄື່ອງໃດກໍໄດ້ທີ່ເຊື່ອມຕໍ່ກັບອິນເຕີເນັດຢູ່."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"ກຳລັງໂຫລດ..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"ຕັ້ງການລັອກໜ້າຈໍ"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"For security, set password"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"ເພື່ອໃຊ້ລາຍນິ້ວມື, ໃຫ້ຕັ້ງລະຫັດຜ່ານກ່ອນ"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"ເພື່ອໃຊ້ລາຍນິ້ວມື, ໃຫ້ຕັ້ງຮູບແບບປົດລັອກກ່ອນ"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"For security, set PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"ເພື່ອໃຊ້ລາຍນິ້ວມື, ໃຫ້ຕັ້ງລະຫັດ PIN ກ່ອນ"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"For security, set pattern"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"ໃສ່ລະຫັດຜ່ານຂອງທ່ານອີກຄັ້ງ"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"ຢືນຢັນຮູບແບບຂອງທ່ານ"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"ໃສ່ລະຫັດ PIN ຂອງທ່ານອີກຄັ້ງ"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"ໃຊ້ອຸປະກອນນີ້ເປັນ MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"ໃຊ້ USB ສຳລັບ"</string>
<string name="usb_use_also" msgid="557340935190819370">"ໃຊ້ USB ສຳລັບ"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"ກຳລັງສາກໄຟອຸປະກອນນີ້"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"ການສາກໄຟອຸປະກອນທີ່ເຊື່ອມຕໍ່"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"ໃຊ້ໄປແລ້ວ"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"ລຶບລ້າງແອັບ"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"ທ່ານຕ້ອງການລຶບອິນສະແຕນແອັບນີ້ອອກບໍ່?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"ເປີດ"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"ເກມ"</string>
<string name="audio_files_title" msgid="4777048870657911307">"ໄຟລ໌ສຽງ"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"ບ່ອນຈັດເກັບຂໍ້ມູນທີ່ໃຊ້ໄປແລ້ວ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 282e8df..ed6de46 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -488,8 +488,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Apsaugok. planš. komp."</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Apsaugokite įrenginį"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Apsaugokite savo telefoną"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Kad dar labiau apsaugotumėte įrenginį, nustatykite atsarginį ekrano užraktą"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Neleiskite kitiems asmenims naudoti šio planšetinio kompiuterio be leidimo, suaktyvinę įrenginio apsaugos funkcijas. Pasirinkite norimą naudoti užrakinimo ekraną."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Neleiskite kitiems asmenims naudoti šio įrenginio be jūsų leidimo, suaktyvinę įrenginio apsaugos funkcijas. Pasirinkite norimą naudoti užrakinimo ekraną."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Neleiskite kitiems asmenims naudoti šio telefono be jūsų leidimo, suaktyvinę įrenginio apsaugos funkcijas. Pasirinkite norimą naudoti užrakinimo ekraną."</string>
@@ -948,8 +947,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"„Wi‑Fi“ vieš. int. pr. t. sąr."</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"„AndroidAP“ WPA2 PSK viešosios interneto prieigos taškas"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"„AndroidHotspot“"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Nepasiekiama, nes lėktuvo režimas įjungtas"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"„Wi-Fi“ skambinimas"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Skamb. aprėpties išplėtimas naud. „Wi‑Fi“"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Įjungti „Wi-Fi“ skambinimą"</string>
@@ -1517,17 +1515,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Saugos informacija"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Nėra duomenų ryšio. Jei norite dabar peržiūrėti šią informaciją, bet kuriuo prie interneto prijungtu kompiuteriu eikite į %s."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Įkeliama…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Ekrano užrakto nustatymas"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Kad apsaugotumėte įrenginį, nustatykite slaptažodį"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Nust. slapt., kad gal. naud. kont. kodą"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Nust. atrak. pieš., kad gal. naud. kont. kodą"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Kad apsaugotumėte įrenginį, nustatykite PIN kodą"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Nus. PIN kodą, kad gal. naud. kon. kodą"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Kad apsaugotumėte įrenginį, nubrėžkite atrakinimo piešinį"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Įveskite slaptažodį iš naujo"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Patvirtinkite piešinį"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Įveskite PIN kodą iš naujo"</string>
@@ -3454,6 +3448,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Naudoti šį įrenginį kaip MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"USB naudojimas"</string>
<string name="usb_use_also" msgid="557340935190819370">"Taip pat naudoti USB"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Šio įrenginio įkrovimas"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Įkraunamas prijungtas įrenginys"</string>
@@ -3940,8 +3938,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"naudoj."</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Išvalyti programą"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Ar norite pašalinti šią akimirksniu įkeliamą programėlę?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Atidaryti"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Žaidimai"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Garso failai"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Naudojama vieta"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index c0218d3..640d521 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -485,8 +485,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Aizsargājiet planšetd."</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Aizsargājiet ierīci"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Aizsargājiet tālruni"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Papildu drošībai iestatiet rezerves ekrāna bloķēšanu."</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Aktivizējiet ierīces aizsardzības funkcijas, lai neļautu citiem lietot šo planšetdatoru bez jūsu atļaujas. Izvēlieties bloķēšanas ekrānu, kuru vēlaties izmantot."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Aktivizējiet ierīces aizsardzības funkcijas, lai neļautu citiem lietot šo ierīci bez jūsu atļaujas. Izvēlieties bloķēšanas ekrānu, kuru vēlaties izmantot."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Aktivizējiet ierīces aizsardzības funkcijas, lai neļautu citiem lietot šo tālruni bez jūsu atļaujas. Izvēlieties bloķēšanas ekrānu, kuru vēlaties izmantot."</string>
@@ -936,8 +935,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wi-Fi tīklāja iestatīšana"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK tīklājs"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Nav pieejams, jo ir ieslēgts lidojuma režīms"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi zvani"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Vairāk zvanu iespēju ar Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Ieslēgt Wi-Fi zvanus"</string>
@@ -1504,17 +1502,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Informācija par drošību"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Nav izveidots datu savienojums. Lai skatītu šo informāciju tūlīt, jebkurā datorā ar interneta savienojumu apmeklējiet vietni %s."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Notiek ielāde…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Ekrāna bloķēšanas iestatīšana"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Drošības nolūkos iestatiet paroli."</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Parole pirksta nosp. lietošanai"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Kombinācijas iestatīšana"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Drošības nolūkos iestatiet PIN kodu."</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"PIN pirksta nosp. lietošanai"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Drošības nolūkos iestatiet kombināciju."</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Atkārtota paroles ievade"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Apstipriniet kombināciju"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Atkārtota PIN ievade"</string>
@@ -3409,6 +3403,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Izmantot šo ierīci MIDI režīmā"</string>
<string name="usb_use" msgid="3372728031108932425">"USB savienojuma lietošana"</string>
<string name="usb_use_also" msgid="557340935190819370">"USB savienojuma izmantošanas iespējas"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Šīs ierīces uzlāde"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Pievienotās ierīces uzlāde"</string>
@@ -3878,8 +3876,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"izmantots"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Notīrīt lietotni"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Vai vēlaties noņemt šo tūlītējo lietotni?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Atvērt"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Spēles"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Audio faili"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Izmantotā vieta krātuvē"</string>
diff --git a/res/values-mcc262-mnc02-as/strings.xml b/res/values-mcc262-mnc02-as/strings.xml
new file mode 100644
index 0000000..a50914c
--- /dev/null
+++ b/res/values-mcc262-mnc02-as/strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="wifi_calling_off_explanation_2" msgid="741028819102506783">\n\n"আপুনি ৱাই-ফাই কলিং ব্যৱহাৰ কৰি জৰুৰীকালীন কল কৰিব নোৱাৰে। যদিহে আপুনি তেনে কল কৰিবলৈ চেষ্টা কৰে, তেন্তে আপোনাৰ ডিভাইচটৱে স্বয়ংক্ৰিয়ভাৱে ম\'বাইল নেটৱৰ্ক ব্যৱহাৰ কৰিব। জৰুৰীকালীন কল কেৱল ম\'বাইল নেটৱৰ্ক উপলব্ধ থকা ঠাইতহে কৰিব পৰা যায়।"</string>
+</resources>
diff --git a/res/values-mcc262-mnc02-or/strings.xml b/res/values-mcc262-mnc02-or/strings.xml
new file mode 100644
index 0000000..12bac4e
--- /dev/null
+++ b/res/values-mcc262-mnc02-or/strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="wifi_calling_off_explanation_2" msgid="741028819102506783">\n\n"ୱାଇ-ଫାଇ କଲିଙ୍ଗ ମାଧ୍ୟମରେ ଜରୁରୀକାଳୀନ କଲ୍ କରିହେବ ନାହିଁ। ଯଦି ଜରୁରୀକାଳୀନ କଲ୍ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତି, ତେବେ ଆପଣଙ୍କର ଡିଭାଇସ୍ ସ୍ୱଚାଳିତ ଭାବେ ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ବ୍ୟବହାର କରିବ। ଜରୁରୀକାଳୀନ କଲ୍ଗୁଡ଼ିକ କେବଳ ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ କଭରେଜ୍ କ୍ଷେତ୍ରଗୁଡ଼ିକରେ ହିଁ କରିହେବ।"</string>
+</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 28d8e91..d7c0cf3 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Заштитете го таблетот"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Заштитете го уредот"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Заштитете го телефонот"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"За дополнителна безбедност, поставете резервно заклучување екран"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Спречете ги другите да го користат телефонот без ваша дозвола со активирање на функциите за заштита на уред. Изберете го заклучувањето екран што сакате да го користите."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Спречете ги другите да го користат уредот без ваша дозвола со активирање на функциите за заштита на уред. Изберете го заклучувањето екран што сакате да го користите."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Спречете ги другите да го користат телефонот без ваша дозвола со активирање на функциите за заштита на уред. Изберете го заклучувањето екран што сакате да го користите."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Точка на пристап за Wi‑Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Точка на пристап AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Недостапнa бидејќи е вклучен авионскиот режим"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Повикување преку Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Поголема покриеност на повиците преку Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Вклучете ги повиците преку Wi-Fi"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Безбедносни информации"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Немате интернет-врска. За да ги видите овие информации сега, одете на %s од кој било компјутер поврзан на интернет."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Се вчитува..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Поставете заклучување на екранот"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"За безбедност, поставете лозинка"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Поставете лозинка за отпечаток"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Поставете шема за отпечаток"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"За безбедност, поставете PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Поставете PIN за отпечаток"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"За безбедност, поставете шема"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Внесете ја лозинката повторно"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Потврдете ја шемата"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Внесете го PIN-кодот повторно"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Користете го уредов како MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Користи USB за"</string>
<string name="usb_use_also" msgid="557340935190819370">"Користење на USB и за"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Полнење на уредот"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Се полни поврзаниот уред"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"искор."</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Исчисти ја апликацијата"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Дали сакате да ја отстраните оваа инстант апликација?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Отвори"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Игри"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Аудио датотеки"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Искористен простор"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index d77ada2..a580443 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"ടാബ്ലെറ്റ് പരിരക്ഷിക്കുക"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"ഉപകരണം പരിരക്ഷിക്കുക"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"ഫോൺ പരിരക്ഷിക്കുക"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"അധിക സുരക്ഷയ്ക്ക്, ബാക്കപ്പ് സ്ക്രീൻ ലോക്ക് സജ്ജീകരിക്കുക."</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"ഉപകരണ പരിരക്ഷാ ഫീച്ചറുകൾ സജീവമാക്കുന്നതിലൂടെ നിങ്ങളുടെ അനുമതിയില്ലാതെ മറ്റുള്ളവർ ഈ ടാബ്ലെറ്റ് ഉപയോഗിക്കുന്നത് തടയുക. നിങ്ങൾ ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്ന സ്ക്രീൻ ലോക്ക് തിരഞ്ഞെടുക്കുക."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"ഉപകരണ പരിരക്ഷാ ഫീച്ചറുകൾ സജീവമാക്കുന്നതിലൂടെ നിങ്ങളുടെ അനുമതിയില്ലാതെ മറ്റുള്ളവർ ഈ ഉപകരണം ഉപയോഗിക്കുന്നത് തടയുക. നിങ്ങൾ ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്ന സ്ക്രീൻ ലോക്ക് തിരഞ്ഞെടുക്കുക."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"ഉപകരണ പരിരക്ഷാ ഫീച്ചറുകൾ സജീവമാക്കുന്നതിലൂടെ നിങ്ങളുടെ അനുമതിയില്ലാതെ മറ്റുള്ളവർ ഈ ഫോൺ ഉപയോഗിക്കുന്നത് തടയുക. നിങ്ങൾ ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്ന സ്ക്രീൻ ലോക്ക് തിരഞ്ഞെടുക്കുക."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"വൈഫൈ ഹോട്ട്സ്പോട്ട് സജ്ജീകരണം"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK ഹോട്ട്സ്പോട്ട്"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"ഫ്ലൈറ്റ് മോഡ് ഓണായതിനാൽ ലഭ്യമല്ല"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"വൈഫൈ കോളിംഗ്"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"വൈഫൈ ഉപയോഗിച്ച് കോൾ കവറേജ് വിപുലീകരിക്കുക"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"വൈഫൈ കോളിംഗ് ഓണാക്കുക"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"സുരക്ഷാ വിവരം"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"നിങ്ങൾക്കൊരു ഡാറ്റ കണക്ഷൻ ഇല്ല. ഈ വിവരം ഇപ്പോൾ കാണാൻ, ഇന്റർനെറ്റിൽ കണക്റ്റ് ചെയ്തിരിക്കുന്ന ഏതൊരു കമ്പ്യൂട്ടറിൽ നിന്നും %s എന്നതിലേക്ക് പോകുക."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"ലോഡുചെയ്യുന്നു..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"സ്ക്രീൻ ലോക്ക് സജ്ജീകരിക്കുക"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"സുരക്ഷയ്ക്കായി, പാസ്വേഡ് സജ്ജീകരിക്കുക"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"വിരലടയാളം ഉപയോഗിക്കാൻ, പാസ്വേഡ് സജ്ജമാക്കുക"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"വിരലടയാളം ഉപയോഗിക്കാൻ, പാറ്റേൺ സജ്ജമാക്കുക"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"സുരക്ഷയ്ക്കായി, പിൻ സജ്ജീകരിക്കുക"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"വിരലടയാളം ഉപയോഗിക്കാൻ, പിൻ സജ്ജമാക്കുക"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"സുരക്ഷയ്ക്കായി, പാറ്റേൺ സജ്ജീകരിക്കുക"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"നിങ്ങളുടെ പാസ്വേഡ് വീണ്ടും നൽകുക"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"നിങ്ങളുടെ പാറ്റേൺ സ്ഥിരീകരിക്കുക"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"നിങ്ങളുടെ പിൻ വീണ്ടും നൽകുക"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"MIDI ആയി ഈ ഉപകരണം ഉപയോഗിക്കുക"</string>
<string name="usb_use" msgid="3372728031108932425">"ഇതിനായി USB ഉപയോഗിക്കുക"</string>
<string name="usb_use_also" msgid="557340935190819370">"ഇതിനും USB ഉപയോഗിക്കുക"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"ഈ ഉപകരണം ചാർജ്ജുചെയ്യൽ"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"കണക്റ്റ് ചെയ്ത ഉപകരണം ചാർജ് ചെയ്യുന്നു"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"ഉപയോഗിച്ചത്"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"ആപ്പ് മായ്ക്കുക"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"ഈ ഇൻസ്റ്റന്റ് ആപ്പ് നീക്കംചെയ്യാൻ ആഗ്രഹിക്കുന്നുണ്ടോ?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"തുറക്കുക"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"ഗെയിമുകള്"</string>
<string name="audio_files_title" msgid="4777048870657911307">"ഓഡിയോ ഫയലുകള്"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"ഉപയോഗിച്ച ഇടം"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 54ad5b8..4d647d3 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Таблетаа хамгаалах"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Төхөөрөмжөө хамгаалах"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Утсаа хамгаалах"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Хамгаалалтыг сайжруулахын тулд дэлгэцийн нөөц түгжээг тохируулна уу"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Төхөөрөмжийн хамгаалалтын функцийг идэвхжүүлж хэн нэгэн таны зөвшөөрөлгүйгээр энэ таблетийг ашиглахаас сэргийлнэ үү. Өөрийн ашиглахыг хүссэн дэлгэцийн түгжээг сонгоно уу."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Төхөөрөмжийн хамгаалалтын функцийг идэвхжүүлж хэн нэгэн таны зөвшөөрөлгүйгээр энэ төхөөрөмжийг ашиглахаас сэргийлнэ үү. Өөрийн ашиглахыг хүссэн дэлгэцийн түгжээг сонгоно уу."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Төхөөрөмжийн хамгаалалтын функцийг идэвхжүүлж хэн нэгэн таны зөвшөөрөлгүйгээр энэ утсыг ашиглахаас сэргийлнэ үү. Өөрийн ашиглахыг хүссэн дэлгэцийн түгжээг сонгоно уу."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wi‑Fi хотспот тохируулах"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK сүлжээний цэг"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"АндройдСүлжээнийЦэг"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Нислэгийн горимыг асаасан тул боломжгүй"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi дуудлага"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Wi‑Fi ашиглан дуудлагын хамрах хүрээг өргөтгөх"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Wi-Fi дуудлагыг асаах"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Аюулгүй байдлын мэдээлэл"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Танд дата холболт алга. Энэ мэдээллийг одоо харахын тулд интернетэд холбогдсон дурын компьютероос %s руу очно уу."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Ачаалж байна..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Дэлгэцийн түгжээ тохируулах"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Аюулгүй байдлын үүднээс нууц үг тохируулна уу"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Хурууны хээ ашиглахын тулд нууц үг тохируулах"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Хурууны хээ ашиглахын тулд загвар тохируулах"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Аюулгүй байдлын үүднээс ПИН тохируулна уу"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Хурууны хээ ашиглахын тулд ПИН тохируулах"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Аюулгүй байдлын үүднээс загвар тохируулна уу"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Нууц үгээ дахин оруулах"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Хээгээ баталгаажуулна уу"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"ПИН-ээ дахин оруулах"</string>
@@ -3362,6 +3356,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Энэ төхөөрөмжийг MIDI горимоор ашиглах"</string>
<string name="usb_use" msgid="3372728031108932425">"USB-ыг ашиглах"</string>
<string name="usb_use_also" msgid="557340935190819370">"Мөн USB-г дараахад ашиглах"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Энэ төхөөрөмжийг цэнэглэж байна"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Холбосон төхөөрөмжийг цэнэглэж байна"</string>
@@ -3814,8 +3812,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"ашигласан"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Апп устгах"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Та энэ шуурхай аппыг устгах уу?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Нээх"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Тоглоом"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Аудио файл"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Ашигласан зай"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 4ef29eb..ed68e42 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -383,8 +383,8 @@
<string name="security_settings_fingerprint_preference_summary_none" msgid="1507739327565151923"></string>
<string name="security_settings_fingerprint_enroll_introduction_title" msgid="3201556857492526098">"फिंगरप्रिंटने अनलॉक करा"</string>
<string name="security_settings_fingerprint_enroll_introduction_title_unlock_disabled" msgid="7066417934622827305">"आपले फिंगरप्रिंट वापरा"</string>
- <string name="security_settings_fingerprint_enroll_introduction_message" msgid="3508870672887336095">"आपला फोन अनलॉक करण्यासाठी, खरेदी अधिकृत करण्यासाठी किंवा अॅप्समध्ये साइन इन करण्यासाठी फक्त फिंगरप्रिंट सेन्सरला स्पर्श करा. तुम्ही ज्यांचे फिंगरप्रिंट जोडता त्याविषयी सावधगिरी बाळगा. जोडलेला एक प्रिंट देखील यापैकी कोणतीही गोष्ट करू शकतो. \n\n टिप: आपले फिंगरप्रिंट क्लिष्ट पॅटर्न किंवा पिन पेक्षा कमी सुरक्षित असू शकतात."</string>
- <string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="1550756694054944874">"फोन अनलॉक करण्यासाठी किंवा खरेदींना मंजूरी देण्यासाठी तुमचे फिंगरप्रिंट वापरा.\n\nटिप: तुम्ही हे डिव्हाइस अनलॉक करण्यासाठी तुम्ही तुमचे फिंगरप्रिंट वापरू शकत नाही. अधिक माहितीसाठी संस्थेच्या प्रशासकाशी संपर्क साधा."</string>
+ <string name="security_settings_fingerprint_enroll_introduction_message" msgid="3508870672887336095">"आपला फोन अनलॉक करण्यासाठी, खरेदी अधिकृत करण्यासाठी किंवा अॅप्समध्ये साइन इन करण्यासाठी फक्त फिंगरप्रिंट सेन्सरला स्पर्श करा. तुम्ही ज्यांचे फिंगरप्रिंट जोडता त्याविषयी सावधगिरी बाळगा. जोडलेला एक प्रिंट देखील यापैकी कोणतीही गोष्ट करू शकतो. \n\n टीप: आपले फिंगरप्रिंट क्लिष्ट पॅटर्न किंवा पिन पेक्षा कमी सुरक्षित असू शकतात."</string>
+ <string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="1550756694054944874">"फोन अनलॉक करण्यासाठी किंवा खरेदींना मंजूरी देण्यासाठी तुमचे फिंगरप्रिंट वापरा.\n\nटीप: तुम्ही हे डिव्हाइस अनलॉक करण्यासाठी तुम्ही तुमचे फिंगरप्रिंट वापरू शकत नाही. अधिक माहितीसाठी संस्थेच्या प्रशासकाशी संपर्क साधा."</string>
<string name="security_settings_fingerprint_enroll_introduction_message_setup" msgid="6817326798834882531">"फोन अनलॉक करण्यासाठी किंवा खरेदीला मंजुरी देण्यासाठी तुमचे फिंगरप्रिंट वापरा.\n\nटीप: सक्षम पॅटर्न किंवा पिनच्या तुलनेत तुमचे फिंगरप्रिंट ही कमी सुरक्षित असू शकते."</string>
<string name="security_settings_fingerprint_enroll_introduction_cancel" msgid="3199351118385606526">"रद्द करा"</string>
<string name="security_settings_fingerprint_enroll_introduction_continue" msgid="7472492858148162530">"सुरु ठेवा"</string>
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"आपला टॅबलेट संरक्षित करा"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"तुमचे डिव्हाइस संरक्षित करा"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"आपला फोन संरक्षित करा"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"अतिरिक्त सुरक्षिततेसाठी, बॅकअप स्क्रीन लॉक सेट करा"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"डिव्हाइस संरक्षण वैशिष्ट्ये अॅक्टिव्हेट करून तुमच्या परवानगीशिवाय हा टॅब्लेट वापरण्यापासून इतरांना प्रतिबंधित करा. तुम्ही वापरू इच्छित असलेले स्क्रीन लॉक निवडा."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"डिव्हाइस संरक्षण वैशिष्ट्ये अॅक्टिव्हेट करून तुमच्या परवानगीशिवाय हे डिव्हाइस वापरण्यापासून इतरांना प्रतिबंधित करा. तुम्ही वापरू इच्छित असलेले स्क्रीन लॉक निवडा."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"डिव्हाइस संरक्षण वैशिष्ट्ये अॅक्टिव्हेट करून तुमच्या परवानगीशिवाय हा फोन वापरण्यापासून इतरांना प्रतिबंधित करा. तुम्ही वापरू इच्छित असलेले स्क्रीन लॉक निवडा."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"वाय-फाय हॉटस्पॉट सेटअप"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK हॉटस्पॉट"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"विमान मोड चालू केल्यामुळे अनुपलब्ध"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"वाय-फाय कॉलिंग"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"वाय-फाय सोबत कॉल कव्हरेज वाढवा"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"वाय-फाय कॉलिंग चालू करा"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"सुरक्षितता माहिती"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"तुमच्याकडे डेटा कनेक्शन नाही. ही माहिती आत्ता पाहण्यासाठी, इंटरनेटशी कनेक्ट केलेल्या कोणत्याही काँप्युटरवरून %s वर जा."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"लोड करत आहे..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"स्क्रीन लॉक सेट करा"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"सुरक्षिततेसाठी, पासवर्ड सेट करा"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"फिंगरप्रिंट वापरण्यासाठी पासवर्ड सेट करा"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"फिंगरप्रिंट वापरण्यासाठी पॅटर्न सेट करा"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"सुरक्षिततेसाठी, पिन सेट करा"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"फिंगरप्रिंट वापरण्यासाठी पिन सेट करा"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"सुरक्षिततेसाठी, पॅटर्न सेट करा"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"तुमचा पासवर्ड पुन्हा टाका"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"आपल्या नमुन्याची पुष्टी करा"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"तुमचा पिन पुन्हा टाका"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"या डिव्हाइसचा MIDI म्हणून वापर करा"</string>
<string name="usb_use" msgid="3372728031108932425">"यासाठी USB वापरा"</string>
<string name="usb_use_also" msgid="557340935190819370">"यासाठी देखील USB वापरा"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"हे डिव्हाइस चार्ज करणे"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"कनेक्ट केलेले डिव्हाइस चार्ज करत आहे"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"वापरलेली"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"अॅप साफ करा"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"आपल्याला हे इन्स्टंट अॅप काढायचे आहे का?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"उघडा"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"गेम"</string>
<string name="audio_files_title" msgid="4777048870657911307">"ऑडिओ फायली"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"वापरलेली जागा"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index f966ecc..0d2e605 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Lindungi tablet anda"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Lindungi peranti anda"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Lindungi telefon anda"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Untuk keselamatan tambahan, tetapkan kunci skrin sandaran"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Halang orang lain daripada menggunakan tablet ini tanpa kebenaran anda dengan mengaktifkan ciri perlindungan peranti. Pilih kunci skrin yang anda ingin gunakan."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Halang orang lain daripada menggunakan peranti ini tanpa kebenaran anda dengan mengaktifkan ciri perlindungan peranti. Pilih kunci skrin yang anda ingin gunakan."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Halang orang lain daripada menggunakan telefon ini tanpa kebenaran anda dengan mengaktifkan ciri perlindungan peranti. Pilih kunci skrin yang anda ingin gunakan."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Persediaan tmpt liputan Wi-Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Tempat liputan WPA2 PSK AndroidAP"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"TitikPanasAndroid"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Tidak tersedia kerana mod pesawat dihidupkan"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Panggilan Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Luaskan liputan panggilan dengan Wi-Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Hidupkan panggilan Wi-Fi"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Maklumat keselamatan"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Anda tiada sambungan data. Untuk melihat maklumat ini sekarang, pergi ke %s daripada sebarang komputer yang disambungkan ke Internet."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Memuatkan..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Tetapkan kunci skrin"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Untuk keselamatan, tetapkan kata laluan"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Ttpkn kta lluan utk gnakan cp jari"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Buat corak utk guna cap jari"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Untuk keselamatan, tetapkan PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Ttpkn PIN utk gunakan cap jari"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Untuk keselamatan, tetapkan corak"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Masukkan semula kata laluan anda"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Sahkan corak anda"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Masukkan semula PIN anda"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Gunakan peranti ini sebagai MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Gunakan USB untuk"</string>
<string name="usb_use_also" msgid="557340935190819370">"Turut gunakan USB untuk"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Mengecas peranti ini"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Mengecas peranti tersambung"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"digunakan"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Kosongkan apl"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Adakah anda mahu mengalih keluar apl segera ini?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Buka"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Permainan"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Fail audio"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Ruang yang digunakan"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index ab701cb..2eade68 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -3358,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"ဤစက်ပစ္စည်းကို MIDI အဖြစ်အသုံးပြုပါ"</string>
<string name="usb_use" msgid="3372728031108932425">"USB သုံးပါ"</string>
<string name="usb_use_also" msgid="557340935190819370">"USB ကို အောက်ပါအတွက်လည်း သုံးသည်"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"ဤစက်ပစ္စည်းကို အားသွင်းနေသည်"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"ချိတ်ဆက်ထားသည့် စက်ကို အားသွင်းခြင်း"</string>
@@ -3810,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"သုံးထား"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"အက်ပ်ကို ရှင်းရန်"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"ဤချက်ချင်းသုံးအက်ပ်ကို ဖယ်ရှားလိုပါသလား။"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"ဖွင့်ရန်"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"ဂိမ်းများ"</string>
<string name="audio_files_title" msgid="4777048870657911307">"အသံဖိုင်များ"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"သိုလှောင်ခန်း အသုံးပြုမှု"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 19a17ad..24f6fe4 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Beskytt nettbrettet"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Beskytt enheten"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Beskytt telefonen"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Angi en reserveskjermlås for bedre beskyttelse"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Hindre at andre bruker dette nettbrettet uten din tillatelse, ved å aktivere funksjoner for enhetsbeskyttelse. Velg skjermlåsen du vil bruke."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Hindre at andre bruker denne enheten uten din tillatelse, ved å aktivere funksjoner for enhetsbeskyttelse. Velg skjermlåsen du vil bruke."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Hindre at andre bruker denne telefonen uten din tillatelse, ved å aktivere funksjoner for enhetsbeskyttelse. Velg skjermlåsen du vil bruke."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Konfigurasjon av Wi-Fi-sone"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK-Wi-Fi-sone"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Utilgjengelig fordi flymodus er slått på"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi-anrop"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Utvid anropsdekning med Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Slå på Wi-Fi-anrop"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Sikkerhetsinformasjon"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Du har ingen datatilkobling. For å se denne informasjonen nå, gå til %s fra en datamaskin som er koblet til Internett."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Laster inn …"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Angi skjermlås"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Angi et passord for sikkerheten"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Angi passord for å bruke fingeravtrykk"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Angi mønster for å bruke fingeravtrykk"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Angi en PIN-kode for sikkerheten"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Angi PIN for å bruke fingeravtrykk"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Angi et mønster for sikkerheten"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Angi passordet på nytt"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Bekreft mønsteret"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Angi PIN-koden på nytt"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Bruk denne enheten som MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Bruk USB for"</string>
<string name="usb_use_also" msgid="557340935190819370">"Bruk i tillegg USB til"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Lading av denne enheten"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Lading av den tilkoblede enheten"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"brukt"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Fjern appen"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Vil du fjerne denne instant-appen?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Åpne"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Spill"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Lydfiler"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Lagringsplass brukt"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index ceb1ce2..83f9376 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"आफ्नो ट्याब्लेटलाई सुरक्षित गर्नुहोस्"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"आफ्नो यन्त्रलाई सुरक्षित गर्नुहोस्"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"तपाईँको फोन सुरक्षित गर्नुहोस्"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"थप सुरक्षाका लागि कुनै ब्याकअप स्क्रिन लक सेट गर्नुहोस्"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"यन्त्र सुरक्षा विशेषताहरू सक्रिय गरेर तपाईंको अनुमति बिना यो ट्याब्लेट प्रयोग गर्नबाट रोक्नुहोस्। तपाईंले प्रयोग गर्न चाहेको स्क्रिन लक रोज्नुहोस्।"</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"यन्त्र सुरक्षा विशेषताहरू सक्रिय गरेर तपाईंको अनुमति बिना यो यन्त्र प्रयोग गर्नबाट रोक्नुहोस्। तपाईंले प्रयोग गर्न चाहेको स्क्रिन लक रोज्नुहोस्।"</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"यन्त्र सुरक्षा विशेषताहरू सक्रिय गरेर तपाईंको अनुमति बिना यो फोन प्रयोग गर्नबाट रोक्नुहोस्। तपाईंले प्रयोग गर्न चाहेको स्क्रिन लक रोज्नुहोस्।"</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wi-Fi हटस्पट सेटअप"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK हटस्पट"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"हवाइजहाज मोड सक्रिय भएका कारण अनुपलब्ध छ"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi कलिङ"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Wi‑Fi को सहयोगले कलको दायरा बढाउनुहोस्"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Wi-Fi मार्फत कल गर्ने सेवा सक्रिय गर्नुहोस्"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"सुरक्षा जानकारी"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"तपाईंसँग डेटा जडान छैन। अब यो जानकारी हेर्नको लागि इन्टरनेटमा जडान भएको कुनै पनि कम्प्युटरबाट %s मा जानुहोस्।"</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"लोड हुँदै..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"स्क्रिन लक सेट गर्नुहोस्"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"सुरक्षाका लागि पासवर्ड सेट गर्नुहोस्"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"फिंगरप्रिन्ट प्रयोग गर्न पासवर्ड सेट गर्नुहोस्"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"फिंगरप्रिन्ट प्रयोग गर्न ढाँचा सेट गर्नुहोस्"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"सुरक्षाका लागि PIN सेट गर्नुहोस्"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"फिंगरप्रिन्ट प्रयोग गर्न PIN सेट गर्नुहोस्"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"सुरक्षाका लागि ढाँचा सेट गर्नुहोस्"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"आफ्नो पासवर्ड पुन: प्रविष्ट गर्नुहोस्"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"तपाईँको ढाँचा निश्चित गर्नुहोस्"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"आफ्नो PIN पुन: प्रविष्ट गर्नुहोस्"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"यस यन्त्रलाई MIDI को रूपमा प्रयोग गर्नुहोस्"</string>
<string name="usb_use" msgid="3372728031108932425">"का लागि USB प्रयोग गर्नुहोस्"</string>
<string name="usb_use_also" msgid="557340935190819370">"USB लाई निम्न कार्यका लागि पनि प्रयोग गर्नुहोस्"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"यो यन्त्रलाई चार्ज गर्दै"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"जडान गरिएको यन्त्र चार्ज गर्दै"</string>
@@ -3818,8 +3816,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"प्रयोग भयो"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"अनुप्रयोगको डेटा खाली गर्नुहोस्"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"तपाईं यो तात्कालिक अनुप्रयोगलाई हटाउन चाहनुहुन्छ?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"खोल्नुहोस्"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"खेलहरू"</string>
<string name="audio_files_title" msgid="4777048870657911307">"अडियो फाइलहरू"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"प्रयोग गरेको ठाउँ"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index c75269c..9b270ac 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Je tablet beschermen"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Je apparaat beschermen"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Bescherm je telefoon"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Stel een extra schermvergrendeling in voor betere beveiliging"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Stel apparaatbeschermingsfuncties in om te voorkomen dat anderen deze tablet zonder je toestemming gebruiken. Kies de schermvergrendeling die je wilt gebruiken."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Stel apparaatbeschermingsfuncties in om te voorkomen dat anderen dit apparaat zonder je toestemming gebruiken. Kies de schermvergrendeling die je wilt gebruiken."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Stel apparaatbeschermingsfuncties in om te voorkomen dat anderen deze telefoon zonder je toestemming gebruiken. Kies de schermvergrendeling die je wilt gebruiken."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wifi-hotspotconfiguratie"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK-hotspot"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Niet beschikbaar omdat de vliegtuigmodus is ingeschakeld"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Bellen via wifi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Dekking vergroten via wifi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Bellen via wifi inschakelen"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Veiligheidsinformatie"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Je hebt geen gegevensverbinding. Als je deze informatie nu wilt weergeven, ga je op een computer met internetverbinding naar %s."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Laden..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Schermvergrendeling instellen"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Stel een wachtwoord in voor betere beveiliging"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Stel wachtwoord in voor gebruik van vingerafdruk"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Stel patroon in voor gebruik van vingerafdruk"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Stel een pincode in voor betere beveiliging"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Stel pincode in voor gebruik van vingerafdruk"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Stel een patroon in voor betere beveiliging"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Geef je wachtwoord opnieuw op"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Je patroon bevestigen"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Geef je pincode opnieuw op"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Dit apparaat gebruiken als MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"USB gebruiken voor"</string>
<string name="usb_use_also" msgid="557340935190819370">"USB ook gebruiken voor"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Dit apparaat opladen"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Verbonden apparaat wordt opgeladen"</string>
@@ -3723,7 +3721,7 @@
<string name="web_action_enable_title" msgid="4051513950976670853">"Instant-apps"</string>
<string name="web_action_enable_summary" msgid="3108127559723396382">"Links openen in apps, zelfs als deze niet zijn geïnstalleerd"</string>
<string name="web_action_section_title" msgid="7364647086538399136">"Instant-apps"</string>
- <string name="instant_apps_settings" msgid="8827777916518348213">"Voorkeuren voor instant-apps"</string>
+ <string name="instant_apps_settings" msgid="8827777916518348213">"Voorkeuren Instant-apps"</string>
<string name="domain_url_section_title" msgid="7046835219056428883">"Geïnstalleerde apps"</string>
<string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Je opslag wordt nu beheerd door de opslagbeheerder"</string>
<string name="account_for_section_header" msgid="5356566418548737121">"Accounts voor <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"gebr."</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Gegevens van app wissen"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Wil je deze instant-app verwijderen?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Openen"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Games"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Audiobestanden"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Gebruikte ruimte"</string>
diff --git a/res/values-or-nokeys/strings.xml b/res/values-or-nokeys/strings.xml
new file mode 100644
index 0000000..507e47d
--- /dev/null
+++ b/res/values-or-nokeys/strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="applications_settings_summary" msgid="6616938758022986257">"ଆପ୍ଲିକେଶନ୍ଗୁଡ଼ିକର ପରିଚାଳନା କରନ୍ତୁ"</string>
+</resources>
diff --git a/res/values-or/arrays.xml b/res/values-or/arrays.xml
new file mode 100644
index 0000000..4b99711
--- /dev/null
+++ b/res/values-or/arrays.xml
@@ -0,0 +1,500 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+**
+** Copyright 2007 The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+** http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string-array name="timezone_filters">
+ <item msgid="5296756001147094692">"ଆମେରିକା"</item>
+ <item msgid="3005562397632768392">"ୟୁରୋପ"</item>
+ <item msgid="5696915123093701218">"ଆଫ୍ରିକା"</item>
+ <item msgid="4439789052790868249">"ଏସିଆ"</item>
+ <item msgid="956915953069815961">"ଅଷ୍ଟ୍ରେଲିଆ"</item>
+ <item msgid="5345178126174698955">"ପେସିଫିକ୍"</item>
+ <item msgid="8392017019801393511">"ସମସ୍ତ"</item>
+ </string-array>
+ <string-array name="screen_timeout_entries">
+ <item msgid="3342301044271143016">"୧୫ ସେକେଣ୍ଡ"</item>
+ <item msgid="8881760709354815449">"୩୦ ସେକେଣ୍ଡ"</item>
+ <item msgid="7589406073232279088">"1 ମିନିଟ୍"</item>
+ <item msgid="7001195990902244174">"2 ମିନିଟ୍"</item>
+ <item msgid="7489864775127957179">"5 ମିନିଟ୍"</item>
+ <item msgid="2314124409517439288">"10 ମିନିଟ୍"</item>
+ <item msgid="6864027152847611413">"30 ମିନିଟ୍"</item>
+ </string-array>
+ <string-array name="dream_timeout_entries">
+ <item msgid="3149294732238283185">"ଆଦୌ ନୁହେଁ"</item>
+ <item msgid="2194151041885903260">"୧୫ ସେକେଣ୍ଡ"</item>
+ <item msgid="5892295237131074341">"୩୦ ସେକେଣ୍ଡ"</item>
+ <item msgid="3538441365970038213">"1 ମିନିଟ୍"</item>
+ <item msgid="412343871668955639">"୨ ମିନିଟ୍"</item>
+ <item msgid="5076853889688991690">"ମିନିଟ୍"</item>
+ <item msgid="1903860996174927898">"10 ମିନିଟ୍"</item>
+ <item msgid="6415509612413178727">"୩୦ ମିନିଟ୍"</item>
+ </string-array>
+ <string-array name="lock_after_timeout_entries">
+ <item msgid="8929270399652145290">"ତୁରନ୍ତ"</item>
+ <item msgid="6736512735606834431">"୫ ସେକେଣ୍ଡ"</item>
+ <item msgid="8044619388267891375">"ସେକେଣ୍ଡ"</item>
+ <item msgid="1822002388249545488">"30 ସେକେଣ୍ଡ"</item>
+ <item msgid="8538071621211916519">"୧ ମିନିଟ୍"</item>
+ <item msgid="5663439580228932882">"2 ମିନିଟ୍"</item>
+ <item msgid="49888496216106852">"5 ମିନିଟ୍"</item>
+ <item msgid="9002737361305019353">"10 ମିନିଟ୍"</item>
+ <item msgid="4322676235684793329">"୩୦ ମିନିଟ୍"</item>
+ </string-array>
+ <string-array name="entries_font_size">
+ <item msgid="8166647333858618801">"ଛୋଟ"</item>
+ <item msgid="6986443533756848935">"ପୂର୍ବ-ନିର୍ଦ୍ଧାରିତ"</item>
+ <item msgid="38373998008112077">"ବହୁତ ବଡ଼"</item>
+ <item msgid="7635254317531872272">"ବୃହତ୍ତମ"</item>
+ </string-array>
+ <string-array name="wifi_status">
+ <item msgid="1922181315419294640"></item>
+ <item msgid="8934131797783724664">"ସ୍କାନ୍ କରୁଛି…"</item>
+ <item msgid="8513729475867537913">"ସଂଯୋଗ କରୁଛି…"</item>
+ <item msgid="515055375277271756">"ପ୍ରାମାଣିକୀକରଣ କରାଯାଉଛି…"</item>
+ <item msgid="1943354004029184381">"IP ଠିକଣା ପ୍ରାପ୍ତ କରୁଛି…"</item>
+ <item msgid="4221763391123233270">"ସଂଯୋଜିତ"</item>
+ <item msgid="624838831631122137">"ନିଲମ୍ବିତ"</item>
+ <item msgid="7979680559596111948">"ବିଚ୍ଛିନ୍ନ ହେଉଛି…"</item>
+ <item msgid="1634960474403853625">"ବିଚ୍ଛିନ୍ନ"</item>
+ <item msgid="746097431216080650">"ଅସଫଳ"</item>
+ <item msgid="6367044185730295334">"ଅବରୋଧିତ"</item>
+ <item msgid="503942654197908005">"ସାମୟିକ ଭାବେ ଖରାପ ସଂଯୋଜନାକୁ ଏଡାଉଛି"</item>
+ </string-array>
+ <string-array name="wifi_status_with_ssid">
+ <item msgid="7714855332363650812"></item>
+ <item msgid="8878186979715711006">"ସ୍କାନ୍ କରୁଛି…"</item>
+ <item msgid="355508996603873860">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>କୁ ସଂଯୋଗ କରାଯାଉଛି…"</item>
+ <item msgid="554971459996405634">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ସହ ପ୍ରମାଣିତ ହେଉଛି…"</item>
+ <item msgid="7928343808033020343">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ରୁ IP ଠିକଣା ହାସଲ କରୁଛି…"</item>
+ <item msgid="8937994881315223448">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ସହ ସଂଯୁକ୍ତ"</item>
+ <item msgid="1330262655415760617">"କଟିଯାଇଛି"</item>
+ <item msgid="7698638434317271902">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ରୁ ବିଚ୍ଛିନ୍ନ ହେଉଛି…"</item>
+ <item msgid="197508606402264311">"ସଂଯୁକ୍ତ ନାହିଁ"</item>
+ <item msgid="8578370891960825148">"ଅସଫଳ"</item>
+ <item msgid="5660739516542454527">"ଅବରୋଧିତ"</item>
+ <item msgid="1805837518286731242">"ଦୁର୍ବଳ ସଂଯୋଗକୂ ସାମୟିକ ଭାବେ ଏଡ଼ାଉଛି"</item>
+ </string-array>
+ <!-- no translation found for wifi_security:0 (8491993170197127709) -->
+ <!-- no translation found for wifi_security:1 (6524315248437318854) -->
+ <!-- no translation found for wifi_security:2 (1532568756571457140) -->
+ <!-- no translation found for wifi_security:3 (3620707702811709779) -->
+ <!-- no translation found for wifi_security_no_eap:0 (2084555984818107151) -->
+ <!-- no translation found for wifi_security_no_eap:1 (397579322683471524) -->
+ <!-- no translation found for wifi_security_no_eap:2 (1968820975358150484) -->
+ <string-array name="wifi_eap_method">
+ <item msgid="1160193392455075561">"PEAP"</item>
+ <item msgid="7981731051382306293">"TLS"</item>
+ <item msgid="2892994535305020162">"TTLS"</item>
+ <item msgid="435667726254379514">"PWD"</item>
+ <item msgid="8549485714107012129">"ସିମ୍"</item>
+ <item msgid="1023893786681286517">"AKA"</item>
+ <item msgid="3030483188676375009">"AKA\'"</item>
+ </string-array>
+ <string-array name="eap_method_without_sim_auth">
+ <item msgid="4047867891913819797">"PEAP"</item>
+ <item msgid="641030570679578504">"TLS"</item>
+ <item msgid="3079489731769553856">"TTLS"</item>
+ <item msgid="35269224158638258">"PWD"</item>
+ </string-array>
+ <!-- no translation found for wifi_ap_band_config_full:0 (1085243288162893079) -->
+ <!-- no translation found for wifi_ap_band_config_full:1 (5531376834915607202) -->
+ <!-- no translation found for wifi_ap_band_config_full:2 (3580217704310339410) -->
+ <!-- no translation found for wifi_ap_band_config_2G_only:0 (7006771583217001015) -->
+ <!-- no translation found for wifi_ap_band_config_2G_only:1 (8904289885593822837) -->
+ <string-array name="wifi_p2p_wps_setup">
+ <item msgid="5085064298144493867">"ପୁଶ୍ ବଟନ୍"</item>
+ <item msgid="1624323946324499595">"ପୀଅର୍ ଡିଭାଇସ୍ରୁ PIN"</item>
+ <item msgid="5366790421523328066">"ଏହି ଡିଭାଇସ୍ରୁ PIN"</item>
+ </string-array>
+ <string-array name="wifi_p2p_status">
+ <item msgid="1701505390737218306">"ସଂଯୁକ୍ତ"</item>
+ <item msgid="3189211552661432651">"ଆମନ୍ତ୍ରିତ"</item>
+ <item msgid="3206450250360237549">"ବିଫଳ"</item>
+ <item msgid="7785896708926971207">"ଉପଲବ୍ଧ"</item>
+ <item msgid="2330782789550628803">"ପରିସୀମା ବାହାରେ"</item>
+ </string-array>
+ <string-array name="bluetooth_visibility_timeout_entries">
+ <item msgid="8151962652413645395">"2 ମିନିଟ୍"</item>
+ <item msgid="8675215713017289017">"୫ ମିନିଟ୍"</item>
+ <item msgid="477015974247590543">"୧ ଘଣ୍ଟା"</item>
+ <item msgid="5198271470953124739">"କେବେବି ବନ୍ଦ କରନାହିଁ"</item>
+ </string-array>
+ <string-array name="bluetooth_max_connected_audio_devices">
+ <item msgid="60897909354162249">"୧ (ପୂର୍ବ-ନିର୍ଦ୍ଧାରିତ)"</item>
+ <item msgid="7584056855393485416">"୨"</item>
+ <item msgid="844570832050176311">"୩"</item>
+ <item msgid="1896812737336024220">"4"</item>
+ <item msgid="2664420770707984266">"5"</item>
+ </string-array>
+ <string-array name="bluetooth_max_connected_audio_devices_values">
+ <item msgid="1992185266918208754">"1"</item>
+ <item msgid="2731443086402670729">"୨"</item>
+ <item msgid="74627748729027880">"3"</item>
+ <item msgid="2654447223197666662">"4"</item>
+ <item msgid="7026157954713482328">"5"</item>
+ </string-array>
+ <string-array name="wifi_signal">
+ <item msgid="2245412278046491293">"ଖରାପ"</item>
+ <item msgid="2042505933058940139">"ଖରାପ"</item>
+ <item msgid="1344546617235886412">"ଠିକଠାକ"</item>
+ <item msgid="6019931571712517411">"ଭଲ"</item>
+ <item msgid="8986346415847956850">"ସର୍ବୋତ୍ତମ"</item>
+ </string-array>
+ <string-array name="data_usage_data_range">
+ <item msgid="5013973108901348144">"ଗତ ୩୦ ଦିନ"</item>
+ <item msgid="6600989128423965319">"ବ୍ୟବହାରର ଚକ୍ର ସେଟ୍ କରନ୍ତୁ…"</item>
+ </string-array>
+ <string-array name="usage_stats_display_order_types">
+ <item msgid="2100172576767439288">"ବ୍ୟବହାରର ସମୟ"</item>
+ <item msgid="4796160515314745154">"ଗତଥର ବ୍ୟବହାର କରାଯାଇଥିବା"</item>
+ <item msgid="2502754479975776899">"ଆପ୍ର ନାମ"</item>
+ </string-array>
+ <string-array name="wifi_eap_entries">
+ <item msgid="8615575908717909498">"PEAP"</item>
+ <item msgid="8667872640594311615">"TLS"</item>
+ <item msgid="7182812872984827322">"TTLS"</item>
+ <item msgid="2318274046749286642">"PWD"</item>
+ </string-array>
+ <string-array name="wifi_peap_phase2_entries">
+ <item msgid="2577747762745812488">"କିଛି ନାହିଁ"</item>
+ <item msgid="937786527870979616">"MSCHAPV2"</item>
+ <item msgid="5302613883318643629">"GTC"</item>
+ </string-array>
+ <string-array name="wifi_peap_phase2_entries_with_sim_auth">
+ <item msgid="5760470455461128892">"କିଛି ନୁହେଁ"</item>
+ <item msgid="7480272092408291086">"MSCHAPV2"</item>
+ <item msgid="5881794903338319324">"GTC"</item>
+ <item msgid="5610607665198791980">"SIM"</item>
+ <item msgid="2860798636241124128">"AKA"</item>
+ <item msgid="8926455723452645935">"AKA\'"</item>
+ </string-array>
+ <string-array name="wifi_phase2_entries">
+ <item msgid="1818786254010764570">"କିଛି ନୁହେଁ"</item>
+ <item msgid="6189918678874123056">"PAP"</item>
+ <item msgid="1524112260493662517">"MSCHAP"</item>
+ <item msgid="5923246669412752932">"MSCHAPV2"</item>
+ <item msgid="8651992560135239389">"GTC"</item>
+ </string-array>
+ <string-array name="wifi_ip_settings">
+ <item msgid="3906714200993111074">"DHCP"</item>
+ <item msgid="628395202971532382">"ଷ୍ଟାଟିକ୍"</item>
+ </string-array>
+ <string-array name="wifi_proxy_settings">
+ <item msgid="4473276491748503377">"କିଛି ନାହିଁ"</item>
+ <item msgid="8673874894887358090">"ମାନୁଆଲ୍"</item>
+ <item msgid="168893341855953140">"ପ୍ରକ୍ସୀ ଅଟୋ-କନ୍ପିଗରେଶନ୍"</item>
+ </string-array>
+ <string-array name="apn_auth_entries">
+ <item msgid="3856896061242872146">"କିଛି ନୁହେଁ"</item>
+ <item msgid="5756844015743664882">"PAP"</item>
+ <item msgid="535934025797984365">"CHAP"</item>
+ <item msgid="8383098660619805783">"PAP କିମ୍ୱା CHAP"</item>
+ </string-array>
+ <string-array name="apn_protocol_entries">
+ <item msgid="4852355456199302715">"IPv4"</item>
+ <item msgid="4394161344888484571">"IPv6"</item>
+ <item msgid="8084938354605535381">"IPv4/IPv6"</item>
+ </string-array>
+ <string-array name="bearer_entries">
+ <item msgid="1697455674244601285">"ଅନିର୍ଦ୍ଦିଷ୍ଟ"</item>
+ <item msgid="1317061551798123908">"LTE"</item>
+ <item msgid="5005435684511894770">"HSPAP"</item>
+ <item msgid="7700603056475539235">"HSPA"</item>
+ <item msgid="245973007602397887">"HSUPA"</item>
+ <item msgid="6291566767651194016">"HSDPA"</item>
+ <item msgid="2005841400859926251">"UMTS"</item>
+ <item msgid="3757385691174882861">"EDGE"</item>
+ <item msgid="2979115073474306864">"GPRS"</item>
+ <item msgid="2271750502778879106">"eHRPD"</item>
+ <item msgid="4173379084783381337">"EVDO_B"</item>
+ <item msgid="2033682802005776093">"EVDO_A"</item>
+ <item msgid="5753917125831466719">"EVDO_0"</item>
+ <item msgid="4713807936577071142">"1xRTT"</item>
+ <item msgid="1142355797022021906">"IS95B"</item>
+ <item msgid="7471182818083460781">"IS95A"</item>
+ </string-array>
+ <string-array name="mvno_type_entries">
+ <item msgid="4367119357633573465">"କିଛି ନୁହେଁ"</item>
+ <item msgid="6062567900587138000">"SPN"</item>
+ <item msgid="2454085083342423481">"IMSI"</item>
+ <item msgid="2681427309183221543">"GID"</item>
+ </string-array>
+ <string-array name="app_install_location_entries">
+ <item msgid="8151497958991952759">"ଇଣ୍ଟର୍ନଲ୍ ଡିଭାଇସ୍ ଷ୍ଟୋରେଜ୍"</item>
+ <item msgid="3738430123799803530">"ଅପସାରଣୀୟ SD କାର୍ଡ"</item>
+ <item msgid="4498124044785815005">"ସିଷ୍ଟମକୁ ନିଷ୍ପତ୍ତି ନେବାକୁ ଦିଅନ୍ତୁ"</item>
+ </string-array>
+ <string-array name="app_ops_categories">
+ <item msgid="6358963769537892925">"ଲୋକେଶନ୍"</item>
+ <item msgid="255608127647030286">"ବ୍ୟକ୍ତିଗତ"</item>
+ <item msgid="4588829735729884491">"ମେସେଜିଙ୍ଗ"</item>
+ <item msgid="886742181977884584">"ମିଡିଆ"</item>
+ <item msgid="7924928667052300589">"ଡିଭାଇସ୍"</item>
+ </string-array>
+ <string-array name="app_ops_summaries">
+ <item msgid="4979188868761515915">"ଆନୁମାନିକ ଲୋକେଶନ୍"</item>
+ <item msgid="5789673140227507995">"ଫାଇନ୍ ଲୋକେଶନ୍"</item>
+ <item msgid="1061584358377390581">"GPS"</item>
+ <item msgid="5387405117297558954">"କମ୍ପନ"</item>
+ <item msgid="3434165993711230924">"ଯୋଗାଯୋଗଗୁଡ଼ିକୁ ପଢ଼ନ୍ତୁ"</item>
+ <item msgid="616161687718081936">"ଯୋଗାଯୋଗଗୁଡିକ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</item>
+ <item msgid="7638002295329050091">"କଲ୍ ଲଗ୍ ପଢ଼ନ୍ତୁ"</item>
+ <item msgid="6546959730920410907">"କଲ୍ ଲଗ୍ ସଂଶୋଧନ କରନ୍ତୁ"</item>
+ <item msgid="446877710771379667">"କ୍ୟାଲେଣ୍ଡର ପଢ଼ନ୍ତୁ"</item>
+ <item msgid="7674458294386319722">"କ୍ୟାଲେଣ୍ଡର ସଂଶୋଧନ"</item>
+ <item msgid="8281201165558093009">"ୱାଇ-ଫାଇ ସ୍କାନ୍"</item>
+ <item msgid="8694611243479480497">"ବିଜ୍ଞପ୍ତି"</item>
+ <item msgid="7776439107987345446">"ସେଲ୍ ସ୍କାନ୍"</item>
+ <item msgid="514615766544675057">"ଫୋନ୍ ନମ୍ବର୍ କଲ୍ କରନ୍ତୁ"</item>
+ <item msgid="8181415497109310680">"SMS ପଢ଼ନ୍ତୁ"</item>
+ <item msgid="6816551144382117307">"SMS ଲେଖନ୍ତୁ"</item>
+ <item msgid="4600463921908905030">"SMS ଗ୍ରହଣ"</item>
+ <item msgid="5958926493289432745">"ଜରୁରୀକାଳୀନ SMS ପାଆନ୍ତୁ"</item>
+ <item msgid="4945269495221089540">"MMS ପାଆନ୍ତୁ"</item>
+ <item msgid="5570472453573929087">"ୱାପ୍ ପୁଶ୍ ପ୍ରାପ୍ତ କରନ୍ତୁ"</item>
+ <item msgid="7125408150230860501">"SMS ପଠାନ୍ତୁ"</item>
+ <item msgid="7080337936612188061">"ICC SMS ପଢ଼ନ୍ତୁ"</item>
+ <item msgid="587124103118495063">"ICC SMS ଲେଖନ୍ତୁ"</item>
+ <item msgid="2320577158869025503">"ସେଟିଙ୍ଗରେ ସଂଶୋଧନ କରନ୍ତୁ"</item>
+ <item msgid="1545733463471924009">"ସ୍କ୍ରୀନ୍ର ଉପର ଭାଗରେ ଆଙ୍କନ୍ତୁ"</item>
+ <item msgid="3609046903962454582">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଆକ୍ସେସ୍ କରନ୍ତୁ"</item>
+ <item msgid="4671646036128214513">"କ୍ୟାମେରା"</item>
+ <item msgid="1097324338692486211">"ଅଡିଓ ରେକର୍ଡ କରନ୍ତୁ"</item>
+ <item msgid="5031552983987798163">"ଅଡିଓ ବଜାନ୍ତୁ"</item>
+ <item msgid="8374996688066472414">"କ୍ଲିପବୋର୍ଡ ପଢନ୍ତୁ"</item>
+ <item msgid="3045529469061083747">"କ୍ଲିପ୍ବୋର୍ଡ ବଦଳାନ୍ତୁ"</item>
+ <item msgid="5124443975763747838">"ମିଡିଆର ବଟନ୍"</item>
+ <item msgid="4547883971364273343">"ଅଡିଓ ଫୋକସ୍"</item>
+ <item msgid="2603878814882344450">"ମାଷ୍ଟର୍ ଭଲ୍ୟୁମ୍"</item>
+ <item msgid="7136963238377062018">"ଭଏସ ଭଲ୍ୟୁମ"</item>
+ <item msgid="4270236897655923007">"ରିଙ୍ଗ ଭଲ୍ୟୁମ୍"</item>
+ <item msgid="6325739889222559394">"ମିଡିଆ ଭଲ୍ୟୁମ୍"</item>
+ <item msgid="5762123934816216821">"ଆଲାର୍ମର ଭଲ୍ୟୁମ୍"</item>
+ <item msgid="785049718065337473">"ବିଜ୍ଞପ୍ତି ଭଲ୍ୟୁମ୍"</item>
+ <item msgid="6700305533746877052">"ବ୍ଲୁଟୂଥ୍ ଭଲ୍ୟୁମ୍"</item>
+ <item msgid="2029227495214047094">"ଜାଗ୍ରତ ରଖନ୍ତୁ"</item>
+ <item msgid="26109888160231211">"ଜାଗା ଖୋଜନ୍ତୁ"</item>
+ <item msgid="5753382310468855812">"ମଜବୁତ ସିଗ୍ନାଲ୍ ଥିବା ଜାଗା ଖୋଜନ୍ତୁ"</item>
+ <item msgid="3356591542543137332">"ଉପଯୋଗର ହିସାବ ପାଆନ୍ତୁ"</item>
+ <item msgid="3073734345226842233">"ମାଇକ୍ରୋଫୋନ୍ର ସାଉଣ୍ଡ ବନ୍ଦ/ଚାଲୁ କରନ୍ତୁ"</item>
+ <item msgid="2111767435887685265">"ଟୋଷ୍ଟ୍ ଦେଖାନ୍ତୁ"</item>
+ <item msgid="1091168669714823370">"ପ୍ରୋଜେକ୍ଟ ମିଡିଆ"</item>
+ <item msgid="485564189219029300">"VPN ସକ୍ରିୟ କରନ୍ତୁ"</item>
+ <item msgid="7155384795265164395">"ୱାଲପେପର୍ ଯୋଡ଼ନ୍ତୁ"</item>
+ <item msgid="1835836196806147034">"ସହାୟତାର ସଂରଚନା"</item>
+ <item msgid="5989890403088155055">"ସହାୟକ ସ୍କ୍ରିନ୍ଶଟ୍"</item>
+ <item msgid="8582699692765917557">"ଫୋନ୍ର ସ୍ଥିତି ଜାଣନ୍ତୁ"</item>
+ <item msgid="1474039653814954902">"ଭଏସ୍ମେଲ୍ ଯୋଡ଼ନ୍ତୁ"</item>
+ <item msgid="7222837656938871633">"sip ବ୍ୟବହାର କରନ୍ତୁ"</item>
+ <item msgid="6108267038969274380">"ଆଉଟ୍ଗୋଇଙ୍ଗ କଲ୍ କରନ୍ତୁ"</item>
+ <item msgid="4823402479973873358">"ଆଙ୍ଗୁଠି ଚିହ୍ନ"</item>
+ <item msgid="5895843015407713543">"ବଡୀ ସେନ୍ସର୍"</item>
+ <item msgid="1436446526955010826">"ସେଲ୍ ବ୍ରଡକାଷ୍ଟ ପଢନ୍ତୁ"</item>
+ <item msgid="884172201575690484">"ନକଲି ଅବସ୍ଥାନ"</item>
+ <item msgid="3591971310048485247">"ଷ୍ଟୋରେଜ୍ରୁ ଡାଟା ପଢ଼ିବାର ଅନୁମତି"</item>
+ <item msgid="4041187808621866119">"ଷ୍ଟୋରେଜ୍ରେ ଡାଟା ରଖିବାର ଅନୁମତି"</item>
+ <item msgid="6628873315024166197">"ସ୍କ୍ରୀନ୍ ଅନ୍ କରନ୍ତୁ"</item>
+ <item msgid="3253368931113490863">"ଆକାଉଣ୍ଟଗୁଡିକ ପ୍ରାପ୍ତ କରନ୍ତୁ"</item>
+ <item msgid="780392378084812901">"ବ୍ୟାକ୍ଗ୍ରାଉଣ୍ଡରେ ଚଲାନ୍ତୁ"</item>
+ <item msgid="2629748510881309577">"ଆକ୍ସେସିବିଲିଟୀ ଭଲ୍ୟୁମ୍"</item>
+ </string-array>
+ <string-array name="app_ops_labels">
+ <item msgid="6602854600289714121">"ଲୋକେଶନ୍"</item>
+ <item msgid="8677040780775113033">"ଲୋକେଶନ୍"</item>
+ <item msgid="1660743989948992916">"ଲୋକେଶନ୍"</item>
+ <item msgid="8791172739860195290">"କମ୍ପନ"</item>
+ <item msgid="383413555642128046">"ଯୋଗାଯୋଗଗୁଡ଼ିକ ପଢ଼ନ୍ତୁ"</item>
+ <item msgid="3654594895269697313">"ଯୋଗାଯୋଗ ବଦଳାନ୍ତୁ"</item>
+ <item msgid="7928393476362362538">"କଲ୍ ଲଗ୍ ପଢ଼ନ୍ତୁ"</item>
+ <item msgid="6248591205254641116">"କଲ୍ ଲଗ୍ ସଂଶୋଧନ କରନ୍ତୁ"</item>
+ <item msgid="6093344633066170692">"କ୍ୟାଲେଣ୍ଡର ଦେଖନ୍ତୁ"</item>
+ <item msgid="1334886368750347692">"କ୍ୟାଲେଣ୍ଡରରେ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</item>
+ <item msgid="1638204101698708656">"ଲୋକେଶନ୍"</item>
+ <item msgid="2154671955760380322">"ପୋଷ୍ଟ ବିଜ୍ଞପ୍ତି"</item>
+ <item msgid="4282477730595931828">"ଲୋକେଶନ୍"</item>
+ <item msgid="4891423912898525905">"ଫୋନ୍କୁ କଲ୍ କରନ୍ତୁ"</item>
+ <item msgid="2623604824935968113">"SMS/MMS ପଢ଼ନ୍ତୁ"</item>
+ <item msgid="4420177125221176306">"SMS/MMS ଲେଖନ୍ତୁ"</item>
+ <item msgid="3986142739951490025">"SMS/MMS ପାଆନ୍ତୁ"</item>
+ <item msgid="3984213795861739778">"SMS/MMS ପାଆନ୍ତୁ"</item>
+ <item msgid="3656243523752472788">"SMS/MMS ପ୍ରାପ୍ତ କରନ୍ତୁ"</item>
+ <item msgid="8105802370238551510">"SMS/MMS ପାଆନ୍ତୁ"</item>
+ <item msgid="1407766984645388488">"SMS/MMS ପଠାନ୍ତୁ"</item>
+ <item msgid="3527273606643794973">"SMS/MMS ପଢ଼ନ୍ତୁ"</item>
+ <item msgid="4370895547001583812">"SMS/MMS ଲେଖନ୍ତୁ"</item>
+ <item msgid="4218544235221631789">"ସେଟିଙ୍ଗଗୁଡ଼ିକ ବଦଳାନ୍ତୁ"</item>
+ <item msgid="736541391767350377">"ଉପର ଭାଗରେ ଆଙ୍କନ୍ତୁ"</item>
+ <item msgid="5530815681721654194">"ବିଜ୍ଞପ୍ତି ଆକସେସ୍ କରନ୍ତୁ"</item>
+ <item msgid="781213371706962767">"କ୍ୟାମେରା"</item>
+ <item msgid="1720492593061838172">"ଅଡିଓ ରେକର୍ଡ କରନ୍ତୁ"</item>
+ <item msgid="3493046322001257041">"ଅଡିଓ ଚଲାନ୍ତୁ"</item>
+ <item msgid="136815868796597058">"କ୍ଲିପ୍ବୋର୍ଡକୁ ପଢ଼ନ୍ତୁ"</item>
+ <item msgid="5238692940326972503">"କ୍ଲିପ୍ବୋର୍ଡରେ ସଂଶୋଧନ କରନ୍ତୁ"</item>
+ <item msgid="5753789168376302997">"ମିଡିଆ ବଟନ୍"</item>
+ <item msgid="3265262911688671938">"ଅଡିଓ ଫୋକସ୍"</item>
+ <item msgid="2098976479485046797">"ମାଷ୍ଟର୍ ଭଲ୍ୟୁମ୍"</item>
+ <item msgid="5660213838861789350">"ଭଏସ୍ ଭଲ୍ୟୁମ୍"</item>
+ <item msgid="7983336752371254444">"ରିଙ୍ଗ ଭଲ୍ୟୁମ୍"</item>
+ <item msgid="7878027809189330917">"ମିଡିଆ ଭଲ୍ୟୁମ୍"</item>
+ <item msgid="7260546305036218513">"ଆଲାର୍ମ ଭଲ୍ୟୁମ୍"</item>
+ <item msgid="9103719301075748925">"ବିଜ୍ଞପ୍ତି ଭଲ୍ୟୁମ୍"</item>
+ <item msgid="7025966722295861512">"ବ୍ଲୁଟୂଥ୍ ଭଲ୍ୟୁମ୍"</item>
+ <item msgid="4665183401128289653">"ଜାଗ୍ରତ କରି ରଖନ୍ତୁ"</item>
+ <item msgid="8584357129746649222">"ଅବସ୍ଥିତି"</item>
+ <item msgid="7669257279311110599">"ଲୋକେଶନ୍"</item>
+ <item msgid="3459320345690097795">"ବ୍ୟବହାର ହିସାବ ପାଆନ୍ତୁ"</item>
+ <item msgid="1312534577834048535">"ମାଇକ୍ରୋଫୋନ୍କୁ ବନ୍ଦ କରନ୍ତୁ/ଖୋଲନ୍ତୁ"</item>
+ <item msgid="427580389823724225">"ଟୋଷ୍ଟ ଦେଖାନ୍ତୁ"</item>
+ <item msgid="4992007785575926253">"ପ୍ରୋଜେକ୍ଟ ମିଡିଆ"</item>
+ <item msgid="2482631530338029480">"VPN ସକ୍ରିୟ କରନ୍ତୁ"</item>
+ <item msgid="1662979573471871926">"ୱାଲପେପର୍ ଯୋଡ଼ନ୍ତୁ"</item>
+ <item msgid="5964768335278263478">"ସହାୟକ ସଂରଚନା"</item>
+ <item msgid="2657138701132782702">"ସହାୟତାର ସ୍କ୍ରିନ୍ଶଟ୍"</item>
+ <item msgid="8571369610363539266">"ଫୋନ୍ର ସ୍ଥିତି ଜାଣନ୍ତୁ"</item>
+ <item msgid="4542463358215230845">"ଭଏସ୍ମେଲ୍ ଯୋଡ଼ନ୍ତୁ"</item>
+ <item msgid="864565065016166003">"ସିପ୍ ବ୍ୟବହାର କରନ୍ତୁ"</item>
+ <item msgid="1958009349883195116">"ଆଉଟ୍ଗୋଇଙ୍ଗ କଲ୍ ପ୍ରୋସେସ୍ କରନ୍ତୁ"</item>
+ <item msgid="8526563410140613458">"ଆଙ୍ଗୁଠି ଚିହ୍ନ"</item>
+ <item msgid="7864822459293570891">"ବଡୀ ସେନ୍ସର୍"</item>
+ <item msgid="6798698496904810960">"ସେଲ୍ର ସମ୍ପ୍ରସାରଣକୁ ପଢ଼ନ୍ତୁ"</item>
+ <item msgid="5242052845700875820">"ନକଲି ଲୋକେଶନ୍"</item>
+ <item msgid="1246296877820358565">"ପଠନ ଷ୍ଟୋରେଜ୍"</item>
+ <item msgid="2404067308793740341">"ଷ୍ଟୋରେଜ୍ରେ ଡାଟା ରଖିବାର ଅନୁମତି"</item>
+ <item msgid="5832543806893763620">"ସ୍କ୍ରୀନ୍କୁ ଅନ୍ କରନ୍ତୁ"</item>
+ <item msgid="5258373962467495905">"ଆକାଉଣ୍ଟଗୁଡିକ ପ୍ରାପ୍ତ କରନ୍ତୁ"</item>
+ <item msgid="334625385979270703">"ବ୍ୟାକ୍ଗ୍ରାଊଣ୍ଡରେ ଚଲାନ୍ତୁ"</item>
+ <item msgid="9039213578110332702">"ଦିବ୍ୟାଙ୍ଗମାନଙ୍କ ପାଇଁ ସୁବିଧାଗୁଡ଼ିକର ଭଲ୍ୟୁମ୍"</item>
+ </string-array>
+ <string-array name="long_press_timeout_selector_titles">
+ <item msgid="3511504869290423954">"ଛୋଟ"</item>
+ <item msgid="2560532955514699713">"ମଧ୍ୟମ"</item>
+ <item msgid="2372711992605524591">"ଲମ୍ଵା"</item>
+ </string-array>
+ <string-array name="captioning_typeface_selector_titles">
+ <item msgid="1319652728542138112">"ପୂର୍ବ-ନିର୍ଦ୍ଧାରିତ"</item>
+ <item msgid="1016452621833735880">"ସାନ୍ସ-ସେରିଫ୍"</item>
+ <item msgid="2496277987934654454">"ସାନ୍ସ-ସେରିଫ୍ କଣ୍ଡେନ୍ସଡ୍"</item>
+ <item msgid="7247838127505318669">"ସାନ୍ସ-ସେରିଫ୍ ମୋନୋସ୍ପେସ୍"</item>
+ <item msgid="4478414822462359763">"Serif"</item>
+ <item msgid="7502451783483660829">"Serif monospace"</item>
+ <item msgid="639503332147461010">"ସାଧାରଣ"</item>
+ <item msgid="7967169925231332424">"କର୍ସିଭ"</item>
+ <item msgid="561832997193039673">"ଛୋଟ ଆକାରର ଅକ୍ଷର"</item>
+ </string-array>
+ <string-array name="captioning_font_size_selector_titles">
+ <item msgid="4800919809575254054">"ବହୁତ ଛୋଟ"</item>
+ <item msgid="6781094565687692782">"ଛୋଟ"</item>
+ <item msgid="8222123259497646551">"ସାଧାରଣ"</item>
+ <item msgid="5813217276778560466">"ବହୁତ ବଡ଼"</item>
+ <item msgid="9044232017390975191">"ବହୁତ ବଡ଼"</item>
+ </string-array>
+ <string-array name="captioning_edge_type_selector_titles">
+ <item msgid="4733815704128258753">"ଡିଫଲ୍ଟ"</item>
+ <item msgid="3217099060748617005">"କିଛି ନୁହେଁ"</item>
+ <item msgid="7467615139904599420">"ଆଉଟ୍ଲାଇନ୍"</item>
+ <item msgid="5623165557468608975">"ଡ୍ରପ୍ ଛାୟା"</item>
+ <item msgid="8088451174058214588">"ଉଠିକରିଥିବା"</item>
+ <item msgid="3821418743395480313">"ସଂକ୍ଷିପ୍ତ"</item>
+ </string-array>
+ <string-array name="captioning_opacity_selector_titles">
+ <item msgid="7622491218136667566">"25%"</item>
+ <item msgid="2367156416247936773">"50%"</item>
+ <item msgid="5395560410107149298">"75%"</item>
+ <item msgid="8342334626783983353">"100%"</item>
+ </string-array>
+ <string-array name="captioning_preset_selector_titles">
+ <item msgid="7009918361545506251">"ଆପ୍ର ପୂର୍ବ-ନିର୍ଦ୍ଧାରିତ ସେଟିଙ୍ଗ ବ୍ୟବହାର କରନ୍ତୁ"</item>
+ <item msgid="1770533843436933500">"କଳା ଉପରେ ଧଳା"</item>
+ <item msgid="758587126802411846">"ଧଳା ଉପରେ କଳା"</item>
+ <item msgid="1495307195241623402">"କଳା ଉପରେ ହଳଦିଆ"</item>
+ <item msgid="6039700130994371612">"ନୀଳ ଉପରେ ହଳଦିଆ"</item>
+ <item msgid="7169235156349580064">"କଷ୍ଟମ୍"</item>
+ </string-array>
+ <string-array name="vpn_types_long">
+ <item msgid="2732002039459078847">"PPTP VPN"</item>
+ <item msgid="3799752201662127867">"ପୂର୍ବରୁ ଶେୟାର୍ ହୋଇଥିବା କୀଗୁଡ଼ିକ ସହ L2TP/IPSec VPN"</item>
+ <item msgid="4725504331295252103">"ସର୍ଟିଫିକେଟ୍ ସହ L2TP/IPSec VPN"</item>
+ <item msgid="7526551163264034377">"ଶେୟାର୍ କରାଯାଇଥିବା କୀ’ଗୁଡ଼ିକ ସହିତ IPSec VPN ଏବଂ Xauth ସତ୍ୟାପନ"</item>
+ <item msgid="8064740940687465039">"ସର୍ଟିଫିକେଟ୍ ଏବଂ Xauth ପ୍ରାମାଣିକୀକରଣ ସହ IPSec VPN"</item>
+ <item msgid="4946199982372391490">"ସର୍ଟିଫିକେଟ୍ ଓ ହାଇବ୍ରିଡ୍ ସତ୍ୟାପନ ସହ IPSec VPN"</item>
+ </string-array>
+ <string-array name="vpn_states">
+ <item msgid="8621078286418985762">"ବିଛିନ୍ନ ହେଲା"</item>
+ <item msgid="6692305604213080515">"ଆରମ୍ଭ କରୁଛି…"</item>
+ <item msgid="8001704909356800092">"ସଂଯୋଗ କରାଯାଉଛି…"</item>
+ <item msgid="4039737283841672166">"ସଂଯୁକ୍ତ"</item>
+ <item msgid="4042143101664725090">"ସମୟ ସମାପ୍ତ"</item>
+ <item msgid="7664124146786465092">"ଅସଫଳ"</item>
+ </string-array>
+ <string-array name="security_settings_premium_sms_values">
+ <item msgid="7389829271787670252">"ପଚାରନ୍ତୁ"</item>
+ <item msgid="5077768429488260031">"ଆଦୌ ଅନୁମତି ଦିଅନାହିଁ"</item>
+ <item msgid="1417929597727989746">"ସର୍ବଦା ଅନୁମତି ଦିଅନ୍ତୁ"</item>
+ </string-array>
+ <string-array name="ram_states">
+ <item msgid="3944681673818150669">"ସାଧାରଣ"</item>
+ <item msgid="3256987280393708586">"ମଧ୍ୟମ ଧରଣର"</item>
+ <item msgid="4662917179231875995">"ନିମ୍ନ"</item>
+ <item msgid="5264929699714647509">"ଜଟିଳ"</item>
+ <item msgid="5606155978847838966">"?"</item>
+ </string-array>
+ <string-array name="proc_stats_memory_states">
+ <item msgid="8845855295876909468">"ସାଧାରଣ"</item>
+ <item msgid="866544120205026771">"ମଧ୍ୟମ"</item>
+ <item msgid="7851902244436886890">"ନିମ୍ନ"</item>
+ <item msgid="3022922196817563960">"ଜଟିଳ"</item>
+ </string-array>
+ <string-array name="proc_stats_process_states">
+ <item msgid="5069825997142785829">"ନିରନ୍ତର"</item>
+ <item msgid="5779398140277006695">"ଶ୍ରେଷ୍ଠ ଗତିବିଧି"</item>
+ <item msgid="1439598363694578255">"ଜରୁରୀ (ଫୋର୍ଗ୍ରାଉଣ୍ଡ)"</item>
+ <item msgid="3396458970745718652">"ଗୁରୁତ୍ଵପୁର୍ଣ୍ଣ (ପୃଷ୍ଠପଟ)"</item>
+ <item msgid="5214825238247511992">"ବ୍ୟାକଅପ୍"</item>
+ <item msgid="311372689168254967">"ଭାରୀ"</item>
+ <item msgid="7438189122367820362">"ସେବା (ଚାଲୁଛି)"</item>
+ <item msgid="918687422516982498">"ସେବା (ରିଷ୍ଟାର୍ଟ ହେଉଛି)"</item>
+ <item msgid="6807727069641853029">"ପ୍ରାପକ"</item>
+ <item msgid="6782857406100845127">"ହୋମ୍"</item>
+ <item msgid="2860945127596974299">"ଶେଷ ଗତିବିଧି"</item>
+ <item msgid="8610560843693675830">"କ୍ୟାଶ୍ ହୋଇଥିବା (କାର୍ଯ୍ୟକଳାପ)"</item>
+ <item msgid="4338089220026248848">"କ୍ୟାଶ୍ ହୋଇଥିବା (କାର୍ଯ୍ୟକଳାପ କ୍ଲାଏଣ୍ଟ)"</item>
+ <item msgid="6652164677254579050">"କ୍ୟାଶ୍ ହୋଇଥିବା (ଖାଲି)"</item>
+ </string-array>
+ <string-array name="color_picker">
+ <item msgid="7631642672260600032">"ଟିଲ୍"</item>
+ <item msgid="8332294763632946560">"ନୀଳ"</item>
+ <item msgid="2023216417616991392">"ଇଣ୍ଡିଗୋ"</item>
+ <item msgid="3170497246594232819">"ବାଇଗଣୀ"</item>
+ <item msgid="4608643045752965568">"ଗୋଲାପୀ"</item>
+ <item msgid="6131821495505931173">"ନାଲି"</item>
+ </string-array>
+ <string-array name="automatic_storage_management_days">
+ <item msgid="687318592238852312">"୩୦ ଦିନରୁ ଅଧିକ ପୁରୁଣା"</item>
+ <item msgid="2900554746706302178">"60 ଦିନରୁ ଅଧିକ ପୁରୁଣା"</item>
+ <item msgid="5692284879054004388">"90 ଦିନରୁ ବି ଅଧିକ ପୁରୁଣା"</item>
+ </string-array>
+ <string-array name="wifi_metered_entries">
+ <item msgid="2975784243692054526">"ନେଟ୍ୱର୍କ ପସନ୍ଦ ବ୍ୟବହାର କରନ୍ତୁ"</item>
+ <item msgid="8745603368609022803">"ମାପ ହୋଇଥିବା ସଂଯୋଗ ରୂପେ ବିବେଚନା କରନ୍ତୁ"</item>
+ <item msgid="2266114985518865625">"ଅପରିମିତ ସଂଯୋଗ ରୂପେ ବିବେଚନା କରନ୍ତୁ"</item>
+ </string-array>
+</resources>
diff --git a/res/values-or/config.xml b/res/values-or/config.xml
new file mode 100644
index 0000000..153e247
--- /dev/null
+++ b/res/values-or/config.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2007 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="config_backup_settings_label" msgid="4423938073600296337"></string>
+</resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 72970c5..2b0bc3e 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"ਟੈਬਲੈੱਟ ਦੀ ਸੁਰੱਖਿਆ ਕਰੋ"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"ਆਪਣੇ ਡੀਵਾਈਸ ਦੀ ਰੱਖਿਆ ਕਰੋ"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"ਆਪਣੇ ਫ਼ੋਨ ਦੀ ਰੱਖਿਆ ਕਰੋ"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"ਵਾਧੂ ਸੁਰੱਖਿਆ ਲਈ, ਕੋਈ ਬੈਕਅੱਪ ਸਕ੍ਰੀਨ ਲਾਕ ਸੈੱਟ ਕਰੋ"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"ਡੀਵਾਈਸ ਸੁਰੱਖਿਆ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਸਰਗਰਮ ਕਰਨ ਦੁਆਰਾ ਹੋਰਾਂ ਨੂੰ ਤੁਹਾਡੀ ਇਜਾਜ਼ਤ ਦੇ ਬਿਨਾਂ ਇਸ ਟੈਬਲੈੱਟ ਦੀ ਵਰਤੋਂ ਕਰਨ ਤੋਂ ਰੋਕੋ। ਉਸ ਸਕ੍ਰੀਨ ਲਾਕ ਨੂੰ ਚੁਣੋ ਜਿਸ ਦੀ ਤੁਸੀਂ ਵਰਤੋਂ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ।"</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"ਡੀਵਾਈਸ ਸੁਰੱਖਿਆ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਸਰਗਰਮ ਕਰਨ ਦੁਆਰਾ ਹੋਰਾਂ ਨੂੰ ਤੁਹਾਡੀ ਇਜਾਜ਼ਤ ਦੇ ਬਿਨਾਂ ਇਸ ਡੀਵਾਈਸ ਦੀ ਵਰਤੋਂ ਕਰਨ ਤੋਂ ਰੋਕੋ। ਉਸ ਸਕ੍ਰੀਨ ਲਾਕ ਨੂੰ ਚੁਣੋ ਜਿਸ ਦੀ ਤੁਸੀਂ ਵਰਤੋਂ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ।"</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"ਡੀਵਾਈਸ ਸੁਰੱਖਿਆ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਕਰਨ ਦੁਆਰਾ ਹੋਰਾਂ ਨੂੰ ਤੁਹਾਡੀ ਇਜਾਜ਼ਤ ਦੇ ਬਿਨਾਂ ਇਸ ਫ਼ੋਨ ਦੀ ਵਰਤੋਂ ਕਰਨ ਤੋਂ ਰੋਕੋ। ਉਸ ਸਕ੍ਰੀਨ ਲਾਕ ਨੂੰ ਚੁਣੋ ਜਿਸ ਦੀ ਤੁਸੀਂ ਵਰਤੋਂ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ।"</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"ਵਾਈ‑ਫਾਈ ਹੌਟਸਪੌਟ ਸੈੱਟਅੱਪ"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK ਹੌਟਸਪੌਟ"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"ਜਹਾਜ਼ ਮੋਡ ਚਾਲੂ ਹੋਣ ਕਾਰਨ ਅਣਉਪਲਬਧ ਹੈ"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"ਵਾਈ-ਫਾਈ ਕਾਲਿੰਗ"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"ਵਾਈ-ਫਾਈ ਰਾਹੀਂ ਕਾਲ ਕਵਰੇਜ ਵਧਾਓ"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"ਵਾਈ-ਫਾਈ ਕਾਲਿੰਗ ਚਾਲੂ ਕਰੋ"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"ਸੁਰੱਖਿਆ ਜਾਣਕਾਰੀ"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"ਤੁਹਾਡੇ ਕੋਲ ਕੋਈ ਡਾਟਾ ਕਨੈਕਸ਼ਨ ਨਹੀਂ ਹੈ। ਹੁਣ ਇਸ ਜਾਣਕਾਰੀ ਨੂੰ ਦੇਖਣ ਲਈ, ਇੰਟਰਨੈੱਟ ਨਾਲ ਕਨੈਕਟ ਕੀਤੇ ਕਿਸੇ ਵੀ ਕੰਪਿਊਟਰ ਤੋਂ %s \'ਤੇ ਜਾਓ।"</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"ਲੋਡ ਕਰ ਰਿਹਾ ਹੈ…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"ਸਕ੍ਰੀਨ ਲਾਕ ਸੈੱਟ ਕਰੋ"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"ਸੁਰੱਖਿਆ ਲਈ, ਪਾਸਵਰਡ ਸੈੱਟ ਕਰੋ"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਵਰਤਣ ਲਈ ਪਾਸਵਰਡ ਸੈੱਟ ਕਰੋ"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਵਰਤਣ ਲਈ ਪੈਟਰਨ ਸੈੱਟ ਕਰੋ"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"ਸੁਰੱਖਿਆ ਲਈ, ਪਿੰਨ ਸੈੱਟ ਕਰੋ"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਵਰਤਣ ਲਈ ਪਿੰਨ ਸੈੱਟ ਕਰੋ"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"ਸੁਰੱਖਿਆ ਲਈ, ਪੈਟਰਨ ਸੈੱਟ ਕਰੋ"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"ਆਪਣਾ ਪਾਸਵਰਡ ਮੁੜ-ਦਾਖਲ ਕਰੋ"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"ਆਪਣੇ ਪੈਟਰਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"ਆਪਣਾ ਪਿੰਨ ਮੁੜ-ਦਾਖਲ ਕਰੋ"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"ਇਸ ਡੀਵਾਈਸ ਦੀ MIDI ਵਜੋਂ ਵਰਤੋਂ ਕਰੋ"</string>
<string name="usb_use" msgid="3372728031108932425">"ਇਸ ਲਈ USB ਦਾ ਉਪਯੋਗ ਕਰੋ"</string>
<string name="usb_use_also" msgid="557340935190819370">"ਇਸ ਲਈ ਵੀ USB ਵਰਤੋ"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"ਇਸ ਡੀਵਾਈਸ ਨੂੰ ਚਾਰਜ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"ਕਨੈਕਟ ਕੀਤੇ ਡੀਵਾਈਸ ਨੂੰ ਚਾਰਜ ਕਰਨਾ"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"ਵਰਤੀ ਗਈ"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"ਐਪ ਕਲੀਅਰ ਕਰੋ"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"ਕੀ ਤੁਸੀਂ ਇਸ \'ਤਤਕਾਲ ਐਪ\' ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"ਖੋਲ੍ਹੋ"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"ਗੇਮਾਂ"</string>
<string name="audio_files_title" msgid="4777048870657911307">"ਆਡੀਓ ਫ਼ਾਈਲਾਂ"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"ਵਰਤੀ ਗਈ ਜਗ੍ਹਾ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 303c393..0fbcf1c 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -488,8 +488,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Chroń swój tablet"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Chroń swoje urządzenie"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Zabezpiecz telefon"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Dla większego bezpieczeństwa skonfiguruj zapasową blokadę ekranu"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Włącz funkcje ochrony urządzenia, by zablokować innym możliwość używania tego tabletu bez Twojej zgody. Wybierz rodzaj blokady ekranu."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Włącz funkcje ochrony urządzenia, by zablokować innym możliwość używania tego urządzenia bez Twojej zgody. Wybierz rodzaj blokady ekranu."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Włącz funkcje ochrony urządzenia, by zablokować innym możliwość używania tego telefonu bez Twojej zgody. Wybierz rodzaj blokady ekranu."</string>
@@ -948,8 +947,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Konfiguracja hotspotu Wi‑Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Hotspot AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Punkt dostępu Android"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Brak dostępu z powodu włączenia trybu samolotowego"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Połączenia przez Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Zwiększ zasięg połączeń dzięki Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Włącz Połączenia przez Wi-Fi"</string>
@@ -1517,17 +1515,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Informacje o bezpieczeństwie"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Brak połączenia do transmisji danych. Aby wyświetlić te informacje teraz, otwórz stronę %s na dowolnym komputerze połączonym z internetem."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Wczytuję..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Ustawianie blokady ekranu"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Ze względów bezpieczeństwa ustaw hasło"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Aby korzystać z odcisku palca, ustaw hasło"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Aby korzystać z odcisku palca, ustaw wzór"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Ze względów bezpieczeństwa ustaw kod PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Aby korzystać z odcisku palca, ustaw kod PIN"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Ze względów bezpieczeństwa ustaw wzór"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Podaj ponownie hasło"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Potwierdź wzór"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Podaj ponownie kod PIN"</string>
@@ -3454,6 +3448,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Użyj tego urządzenia jako MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Użyj USB do:"</string>
<string name="usb_use_also" msgid="557340935190819370">"Dodatkowe tryby USB"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Ładowanie tego urządzenia"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Ładowanie podłączonego urządzenia"</string>
@@ -3940,8 +3938,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"miejsca"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Wyczyść dane aplikacji"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Czy chcesz usunąć tę aplikację błyskawiczną?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Otwórz"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Gry"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Pliki audio"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Zajmowane miejsce"</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 22a5389..10e0776 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -3358,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Usar este dispositivo como MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Usar USB para"</string>
<string name="usb_use_also" msgid="557340935190819370">"Também usar o USB para"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Para carregamento do dispositivo"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Carregando dispositivo conectado"</string>
@@ -3810,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"usado"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Limpar app"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Quer remover esse app instantâneo?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Abrir"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Jogos"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Arquivos de áudio"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Espaço utilizado"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 0207125..78e85d1 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Proteger o seu tablet"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Proteger o dispositivo"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Proteger o telemóvel"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Para maior segurança, defina um bloqueio de ecrã de segurança."</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Impeça terceiros de utilizar este tablet sem a sua autorização ao ativar as funcionalidades de proteção do dispositivo. Escolha o bloqueio de ecrã que pretende utilizar."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Impeça terceiros de utilizar este dispositivo sem a sua autorização ao ativar as funcionalidades de proteção do dispositivo. Escolha o bloqueio de ecrã que pretende utilizar."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Impeça terceiros de utilizar este telemóvel sem a sua autorização ao ativar as funcionalidades de proteção do dispositivo. Escolha o bloqueio de ecrã que pretende utilizar."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Configuração de zona Wi-Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Zona Wi-Fi AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Indisponível, porque o modo de avião está ativado."</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Chamadas Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Expandir cobertura de Chamadas com Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Ativar as Chamadas Wi-Fi"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Informações de segurança"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Não tem uma ligação de dados. Para ver estas informações agora, aceda a %s a partir de qualquer computador ligado à Internet."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"A carregar..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Definir bloqueio de ecrã"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Por motivos de segurança, defina uma palavra-passe."</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Defina palavra-passe para usar impressão digital"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Defina padrão para usar impressão digital"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Por motivos de segurança, defina um PIN."</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Defina PIN para usar impressão digital"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Por motivos de segurança, defina um padrão."</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Reintroduzir a palavra-passe"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirmar o padrão"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Reintroduzir o PIN"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Utilizar este dispositivo como MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Utilizar USB para"</string>
<string name="usb_use_also" msgid="557340935190819370">"Utilizar o USB também para"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Carregar este dispositivo"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Carregar o dispositivo ligado"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"utilizado"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Limpar aplicação"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Pretende remover esta aplicação instantânea?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Abrir"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Jogos"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Ficheiros de áudio"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Espaço utilizado"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 22a5389..10e0776 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -3358,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Usar este dispositivo como MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Usar USB para"</string>
<string name="usb_use_also" msgid="557340935190819370">"Também usar o USB para"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Para carregamento do dispositivo"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Carregando dispositivo conectado"</string>
@@ -3810,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"usado"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Limpar app"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Quer remover esse app instantâneo?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Abrir"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Jogos"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Arquivos de áudio"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Espaço utilizado"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 9bdc111..cbe0669 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -485,8 +485,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Protejați tableta"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Protejați dispozitivul"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Protejați telefonul"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Pentru mai multă siguranță, configurați o blocare de rezervă a ecranului"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Activați funcțiile de protecție a dispozitivului pentru a împiedica alte persoane să folosească această tabletă fără permisiunea dvs. Alegeți blocarea ecranului pe care doriți să o folosiți."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Activați funcțiile de protecție a dispozitivului pentru a împiedica alte persoane să folosească acest dispozitiv fără permisiunea dvs. Alegeți blocarea ecranului pe care doriți să o folosiți."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Activați funcțiile de protecție a dispozitivului pentru a împiedica alte persoane să folosească acest telefon fără permisiunea dvs. Alegeți blocarea ecranului pe care doriți să o folosiți."</string>
@@ -936,8 +935,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Configurare hotspot Wi-Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Hotspot AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Indisponibil pentru că este activat modul avion"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Apelare prin Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Extindeți acoperirea apelurilor cu Wi-Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Activați Apelarea prin Wi-Fi"</string>
@@ -1504,17 +1502,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Informații privind siguranța"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Nu aveți o conexiune de date. Pentru a vedea aceste informații acum, accesați %s de pe orice computer conectat la internet."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Se încarcă…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Configurați blocarea ecranului"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Din motive de securitate, setați o parolă"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Pentru a utiliza amprenta, setați parola"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Pentru a utiliza amprenta, setați modelul"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Din motive de securitate, setați un cod PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Pentru a utiliza amprenta, setați codul PIN"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Din motive de securitate, setați un model"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Reintroduceți parola"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Confirmați modelul"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Reintroduceți codul PIN"</string>
@@ -3409,6 +3403,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Folosiți acest dispozitiv ca MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Folosiți conexiunea USB pentru"</string>
<string name="usb_use_also" msgid="557340935190819370">"Folosiți conexiunea USB și pentru"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Încărcarea acestui dispozitiv"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Se încarcă dispozitivul conectat"</string>
@@ -3878,8 +3876,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"folosit"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Ștergeți aplicația"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Doriți să eliminați această aplicație instantanee?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Deschideți"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Jocuri"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Fișiere audio"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Spațiu utilizat"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 46db4b1..b48b8df 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -488,8 +488,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Защитите планшет"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Защитите устройство"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Защитите телефон"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Для более надежной защиты настройте дополнительный способ блокировки экрана"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Чтобы никто не мог пользоваться этим устройством без вашего разрешения, активируйте его защиту. Выберите подходящий для вас способ блокировки экрана."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Чтобы никто не мог пользоваться этим устройством без вашего разрешения, активируйте его защиту. Выберите подходящий для вас способ блокировки экрана."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Чтобы никто не мог пользоваться этим устройством без вашего разрешения, активируйте его защиту. Выберите подходящий для вас способ блокировки экрана."</string>
@@ -948,8 +947,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Настройка точки доступа Wi‑Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Точка доступа AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Хот-спот Android"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Функция недоступна, так как включен режим полета"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Звонки по Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Включите Wi‑Fi и звоните чаще"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Включите звонки по Wi-Fi"</string>
@@ -1517,17 +1515,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Сведения о безопасности"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Устройство не подключено к Интернету. Чтобы просмотреть эту информацию, откройте страницу %s на любом компьютере с интернет-доступом."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Загрузка…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Настройте блокировку экрана"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Защитите устройство: задайте пароль"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Задайте пароль"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Задайте графический ключ"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Защитите устройство: задайте PIN-код"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Задайте PIN-код"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Защитите устройство: создайте графический ключ"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Введите пароль ещё раз"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Подтвердите графический ключ"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Введите PIN-код ещё раз"</string>
@@ -3454,6 +3448,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Использование устройства как MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Режим работы USB"</string>
<string name="usb_use_also" msgid="557340935190819370">"Другие способы использования USB"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Зарядка этого устройства"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Зарядка подключенного устройства"</string>
@@ -3940,8 +3938,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"занято"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Удалить данные приложения"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Удалить приложение с мгновенным запуском?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Открыть"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Игры"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Аудиофайлы"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Занятое пространство"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 6b8a956..5302550 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"ඔබගේ ටැබ්ලටය ආරක්ෂා කර ගන්න"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"ඔබගේ උපාංගය ආරක්ෂා කර ගන්න"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"ඔබගේ දුරකථනය ආරක්ෂා කර ගන්න"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"අමතර ආරක්ෂාව සඳහා, උපස්ථ තිර අගුලක් සකසන්න"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"උපාංග ආරක්ෂණ විශේෂාංග සක්රිය කිරීමෙන්, ඔබගේ අවසරය නොමැතිව වෙනත් අය මෙම ටැබ්ලට උපාංගය භාවිත කිරීම වළක්වන්න. ඔබට භාවිත කිරීමට අවශ්ය තිර අගුල තෝරන්න."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"උපාංග ආරක්ෂණ විශේෂාංග සක්රිය කිරීමෙන්, ඔබගේ අවසරය නොමැතිව වෙනත් අය මෙම උපාංගය භාවිත කිරීම වළක්වන්න. ඔබට භාවිත කිරීමට අවශ්ය තිර අගුල තෝරන්න."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"උපාංග ආරක්ෂණ විශේෂාංග සක්රිය කිරීමෙන්, ඔබගේ අවසරය නොමැතිව වෙනත් අය මෙම දුරකථනය භාවිත කිරීම වළක්වන්න. ඔබට භාවිත කිරීමට අවශ්ය තිර අගුල තෝරන්න."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wi-Fi හොට්ස්පොට් සැකසුම"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK හෝට් සපෝට්"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"ගුවන් යානා ප්රකාරය ක්රියාත්මක කර ඇති නිසා ලබා ගත නොහැකිය"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi ඇමතීම"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Wi-Fi සමග ඇමතුම් ආවරණය දිගු කරන්න"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Wi-Fi ඇමතුම ක්රියාත්මක කරන්න"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"ආරක්ෂක තොරතුරු"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"ඔබට දත්ත සබැඳුමක් නොමැත. දැන් මෙම තොරතුරු නැරඹීමට, අන්තර්ජාලයට සම්බන්ධ ඕනෑම පරිගණකයකින් %s වෙත යන්න."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"පූරණය වෙමින්..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"තිර අගුල සැකසීම"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"ආරක්ෂාව සඳහා, මුරපදය සකසන්න"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"ඇඟිලි සලකුණ භාවිත කිරීමට, මුරපදයක් සකසන්න"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"ඇඟිලි සලකුණ භාවිත කිරීමට, රටාවක් සකසන්න"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"ආරක්ෂාව සඳහා, PIN අංකය සකසන්න"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"ඇඟිලි සලකුණ භාවිත කිරීමට, PIN අංකයක් සකසන්න"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"ආරක්ෂාව සඳහා, රටාව සකසන්න"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"ඔබගේ මුරපදය නැවතත් ඇතුළු කරන්න"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"ඔබගේ රටාව තහවුරු කරන්න"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"ඔබගේ PIN අංකය නැවත ඇතුළු කරන්න"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"මෙම උපාංගය MIDI ලෙස භාවිත කිරිම"</string>
<string name="usb_use" msgid="3372728031108932425">"පහත සඳහා USB භාවිතා කරන්න"</string>
<string name="usb_use_also" msgid="557340935190819370">"USB ද භාවිත කරන්න"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"මෙම උපාංගය ආරෝපණය කරමින්"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"සම්බන්ධිත උපාංගය ආරෝපණය කරමින්"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"භාවිතා කළ"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"යෙදුම හිස් කරන්න"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"ඔබට මෙම ක්ෂණික යෙදුම ඉවත් කිරීමට අවශ්යද?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"විවෘත කරන්න"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"ක්රීඩා"</string>
<string name="audio_files_title" msgid="4777048870657911307">"ශ්රව්ය ගොනු"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"භාවිතා කළ ඉඩ ප්රමාණය"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index aa3fbf9..906ce8b 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -3448,6 +3448,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Použiť toto zariadenie ako MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Použiť rozhranie USB na"</string>
<string name="usb_use_also" msgid="557340935190819370">"USB použiť aj pre"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Nabíjanie zariadenia"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Nabíja sa pripojené zariadenie"</string>
@@ -3934,8 +3938,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"využité"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Vymazať aplikáciu"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Chcete túto okamžitú aplikáciu odstrániť?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Otvoriť"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Hry"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Zvukové súbory"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Využité miesto"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index feb510e..1f1e1d2 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -488,8 +488,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Zaščita tablič. račun."</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Zaščita naprave"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Zaščita telefona"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Zaradi večje varnosti nastavite nadomestno zaklepanje zaslona"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Vklopite zaščitne funkcije naprave, da drugim preprečite uporabo tega tabličnega računalnika brez vašega dovoljenja. Izberite zaklepanje zaslona, ki ga želite uporabljati."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Vklopite zaščitne funkcije naprave, da drugim preprečite njeno uporabo brez vašega dovoljenja. Izberite zaklepanje zaslona, ki ga želite uporabljati."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Vklopite zaščitne funkcije naprave, da drugim preprečite uporabo tega telefona brez vašega dovoljenja. Izberite zaklepanje zaslona, ki ga želite uporabljati."</string>
@@ -948,8 +947,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Nastavitev dostopne toč. Wi‑Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Dostopna točka AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Ni na voljo, ker je vklopljen način za letalo"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Klicanje prek Wi-Fi-ja"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Razširite pokritost klicev z Wi-Fi-jem"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Vklopite klicanje prek Wi-Fi-ja"</string>
@@ -1517,17 +1515,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Informacije o varnosti"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Nimate podatkovne povezave. Če si želite te informacije ogledati zdaj, obiščite %s v katerem koli računalniku z vzpostavljeno internetno povezavo."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Nalaganje …"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Nastavitev zaklepanja zaslona"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Zaradi varnosti nastavite geslo"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Nastavite geslo za prstni odtis"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Nastavite vzorec za prstni odtis"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Zaradi varnosti nastavite kodo PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Nastavite kodo PIN za prstni odtis"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Zaradi varnosti nastavite vzorec"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Znova vnesite geslo"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Potrdite vzorec"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Znova vnesite kodo PIN"</string>
@@ -3454,6 +3448,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Uporaba te naprave kot vmesnik MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Uporaba povezave USB za"</string>
<string name="usb_use_also" msgid="557340935190819370">"Uporabi USB tudi za"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Polnjenje te naprave"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Polnjenje akumulatorja v povezani napravi"</string>
@@ -3940,8 +3938,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"uporab."</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Počisti aplikacijo"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Ali želite odstraniti to nenamestljivo aplikacijo?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Odpri"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Igre"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Zvočne datoteke"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Uporabljen prostor"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 546a1bc..34cca05 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Mbroje tabletin tënd"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Mbroje pajisjen tënde"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Mbroje telefonin tënd"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Për më shumë siguri, cakto një kyçje rezervë për ekranin"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Parandalo që të tjerët ta përdorin këtë tablet pa lejen tënde duke aktivizuar funksionet e mbrojtjes së pajisjes. Zgjidh kyçjen e ekranit që dëshiron të përdorësh."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Parandalo që të tjerët ta përdorin këtë pajisje pa lejen tënde duke aktivizuar funksionet e mbrojtjes së pajisjes. Zgjidh kyçjen e ekranit që dëshiron të përdorësh."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Parandalo që të tjerët ta përdorin këtë telefon pa lejen tënde duke aktivizuar funksionet e mbrojtjes së pajisjes. Zgjidh kyçjen e ekranit që dëshiron të përdorësh."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Konfigurimi i zonës së qasjes Wi‑Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Zona e qasjes e AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Zona Android e qasjes së lirë për internet"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Nuk ofrohet sepse modaliteti i aeroplanit është i aktivizuar"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Telefonata me Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Zgjero mbulimin e telefonatës me Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Aktivizo \"Telefonatën me Wi-Fi\""</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Informacioni i sigurisë"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Nuk ke një lidhje të dhënash. Për të parë këtë informacion tani, shko te %s nga një kompjuter i lidhur me internetin."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Po ngarkon..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Vendos kyçjen e ekranit"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Për siguri, cakto një fjalëkalim"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Për të përdorur gjurmën e gishtit, vendos fjalëkalimin"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Për të përdorur gjurmën e gishtit, vendos motivin"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Për siguri, cakto një kod PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Për të përdorur gjurmën e gishtit, vendos kodin PIN"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Për siguri, cakto një motiv"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Fut përsëri fjalëkalimin"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Konfirmo motivin"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Fut përsëri kodin PIN"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Përdore këtë pajisje si MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Përdore USB-në për"</string>
<string name="usb_use_also" msgid="557340935190819370">"Përdor po ashtu USB-në për"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Ngarkimi i kësaj pajisjeje"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Pajisja e lidhur po ngarkohet"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"e përdorur"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Pastro aplikacionin"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Dëshiron që ta heqësh këtë aplikacion të çastit?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Hap"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Lojëra"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Skedarët audio"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Hapësira e përdorur"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 4af31a7..7a2be58 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -485,8 +485,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Заштитите таблет"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Заштитите уређај"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Заштитите телефон"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Ради додатне безбедности подесите резервни начин закључавања екрана"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Спречите друге да користе овај таблет без дозволе тако што ћете активирати функције заштите уређаја. Изаберите закључавање екрана које желите да користите."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Спречите друге да користе овај уређај без дозволе тако што ћете активирати функције заштите уређаја. Изаберите закључавање екрана које желите да користите."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Спречите друге да користе овај телефон без дозволе тако што ћете активирати функције заштите уређаја. Изаберите закључавање екрана које желите да користите."</string>
@@ -936,8 +935,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Подешавање Wi‑Fi хотспота"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK хотспот"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Није доступно јер је укључен режим рада у авиону"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Позивање преко Wi-Fi-ја"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Проширите покривеност позива уз Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Укључите позивање преко Wi-Fi-ја"</string>
@@ -1504,17 +1502,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Безбедносне информације"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Немате везу за пренос података. Да бисте одмах погледали ове информације, идите на %s са било ког рачунара који је повезан на интернет."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Учитава се…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Подесите закључавање екрана"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Подесите лозинку из безбедносних разлога"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Подесите лозинку да бисте користили отисак"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Подесите шаблон да бисте користили отисак"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Подесите PIN из безбедносних разлога"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Подесите PIN да бисте користили отисак"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Подесите шаблон из безбедносних разлога"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Поново унесите лозинку"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Потврдите шаблон"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Поново унесите PIN"</string>
@@ -3409,6 +3403,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Користите овај уређај као MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Користи USB за"</string>
<string name="usb_use_also" msgid="557340935190819370">"Користите USB и за"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Пуњење уређаја"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Пуњење повезаног уређаја"</string>
@@ -3878,8 +3876,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"у упот."</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Обриши апликацију"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Желите ли да уклоните ову инстант апликацију?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Отвори"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Игре"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Аудио датотеке"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Искоришћен простор"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index cd088c1..9a56c2a 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -3358,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Använd den här enheten som MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Använd USB för"</string>
<string name="usb_use_also" msgid="557340935190819370">"Använd även USB för"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Enheten laddas"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Laddning av ansluten enhet"</string>
@@ -3717,7 +3721,7 @@
<string name="web_action_enable_title" msgid="4051513950976670853">"Snabbappar"</string>
<string name="web_action_enable_summary" msgid="3108127559723396382">"Öppna länkar i appar, även om de inte har installerats"</string>
<string name="web_action_section_title" msgid="7364647086538399136">"Snabbappar"</string>
- <string name="instant_apps_settings" msgid="8827777916518348213">"Inställningar för Instant Apps"</string>
+ <string name="instant_apps_settings" msgid="8827777916518348213">"Snabbapp-inställningar"</string>
<string name="domain_url_section_title" msgid="7046835219056428883">"Installerade appar"</string>
<string name="automatic_storage_manager_activation_warning" msgid="6353100011690933254">"Ditt lagringsutrymme hanteras nu av lagringshanteraren"</string>
<string name="account_for_section_header" msgid="5356566418548737121">"Konton som tillhör <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -3810,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"används"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Rensa app"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Vill du ta bort den här snabbappen?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Öppna"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Spel"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Ljudfiler"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Använt lagringsutrymme"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 59ecb6e..3103f4a 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -170,7 +170,7 @@
<string name="bluetooth_paired_device_title" msgid="8638994696317952019">"Vifaa vyako"</string>
<string name="bluetooth_pairing_page_title" msgid="7712127387361962608">"Oanisha kifaa kipya"</string>
<string name="bluetooth_pref_summary" msgid="2606502649251443574">"Ruhusu kifaa kuoanisha na kuunganisha kwenye vifaa vya Bluetooth"</string>
- <string name="bluetooth_disable_inband_ringing" msgid="8919353393497325693">"Zima kipengele cha mlio ule ule"</string>
+ <string name="bluetooth_disable_inband_ringing" msgid="8919353393497325693">"Zima uchezaji wa mlio unaotumika kwenye simu"</string>
<string name="bluetooth_disable_inband_ringing_summary" msgid="7898974890913984364">"Usiweke milio maalum ya simu kwenye vifaa vya sauti vya Bluetooth"</string>
<string name="connected_device_connected_title" msgid="5871712271201945606">"Kwa sasa imeunganishwa"</string>
<string name="connected_device_saved_title" msgid="688364359746674536">"Vifaa vilivyohifadhiwa"</string>
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Linda kompyuta yako kibao"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Linda kifaa chako"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Linda simu yako"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Ili uimarishe usalama, weka mbinu mbadala ya kufunga skrini"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Wazuie watu wengine kutumia kompyuta kibao hii bila ruhusa yako kwa kuwasha vipengele vya ulinzi wa kifaa. Chagua skrini iliyofungwa unayotaka kutumia."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Wazuie watu wengine kutumia kifaa hiki bila ruhusa yako kwa kuwasha vipengele vya ulinzi wa kifaa. Chagua skrini iliyofungwa unayotaka kutumia."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Wazuie watu wengine kutumia simu hii bila ruhusa yako kwa kuwasha vipengele vya ulinzi wa kifaa. Chagua skrini iliyofungwa unayotaka kutumia."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Sanidi mtandao-hewa wa Wi-Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Mtandao pepe wa AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Haipatikani kwa sababu umewasha hali ya ndegeni"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Upigaji simu kwa Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Ongeza uthabiti wa kupiga simu kupitia Wi-Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Washa kipengele cha kupiga simu kupitia Wi-Fi"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Maelezo ya usalama"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Huna muunganisho wa data. Ili kuona maelezo haya sasa, nenda kwenye %s ukitumia kompyuta yoyote iliyounganishwa kwenye intaneti."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Inapakia…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Weka mbinu ya kufunga skrini"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Kwa sababu za usalama, weka nenosiri"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Weka nenosiri ili utumie alama ya kidole"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Weka mchoro ili utumie alama ya kidole"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Kwa sababu za usalama, weka PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Weka PIN ili utumie alama ya kidole"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Kwa sababu za usalama, weka mchoro"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Weka nenosiri lako tena"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Thibitisha mchoro wako"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Weka PIN yako tena"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Tumia kifaa hiki kama MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Tumia USB kwa ajili ya"</string>
<string name="usb_use_also" msgid="557340935190819370">"Pia tumia USB"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Kuchaji kifaa hiki"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Inachaji kifaa kilichounganishwa"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"imetumika"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Futa data kwenye programu"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Ungependa kuondoa programu hii inayofunguka papo hapo?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Fungua"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Michezo"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Faili za sauti"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Nafasi iliyotumiwa"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index c2fd7ae..53d28fa 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"டேப்லெட்டைப் பாதுகாக்கவும்"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"சாதனத்தைப் பாதுகாக்கவும்"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"ஃபோனைப் பாதுகாக்கவும்"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"கூடுதல் பாதுகாப்பிற்கு, மாற்றுத் திரைப் பூட்டை அமைக்கவும்"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"சாதனப் பாதுகாப்பு அம்சங்களைச் செயல்படுத்தினால், உங்கள் அனுமதியின்றி பிறர் இந்த டேப்லெட்டைப் பயன்படுத்த முடியாது. பயன்படுத்த விரும்பும் திரைப் பூட்டைத் தேர்வுசெய்யவும்."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"சாதனப் பாதுகாப்பு அம்சங்களைச் செயல்படுத்தினால், உங்கள் அனுமதியின்றி பிறர் இந்தச் சாதனத்தைப் பயன்படுத்த முடியாது. பயன்படுத்த விரும்பும் திரைப் பூட்டைத் தேர்வுசெய்யவும்."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"சாதனப் பாதுகாப்பு அம்சங்களைச் செயல்படுத்தினால், உங்கள் அனுமதியின்றி பிறர் உங்கள் ஃபோனைப் பயன்படுத்த முடியாது. பயன்படுத்த விரும்பும் திரைப் பூட்டைத் தேர்வுசெய்யவும்."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"வைஃபை ஹாட்ஸ்பாட் அமைவு"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK ஹாட்ஸ்பாட்"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"விமானப் பயன்முறை ஆன் செய்யப்பட்டுள்ளதால், ஹாட்ஸ்பாட் இயங்கவில்லை"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"வைஃபை அழைப்பு"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"வைஃபையுடன் அழைப்புக் கவரேஜை அதிகரி"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"வைஃபை அழைப்பை ஆன் செய்க"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"பாதுகாப்பு தகவல்"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"டேட்டா இணைப்பு இல்லை. இந்தத் தகவலை தற்சமயம் பார்க்க, இண்டர்நெட்டில் இணைக்கப்பட்டுள்ள ஏதேனும் கணினியிலிருந்து %sக்குச் செல்லவும்."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"ஏற்றுகிறது..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"திரைப் பூட்டை அமைக்கவும்"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"பாதுகாப்பிற்காக, கடவுச்சொல்லை அமைக்கவும்"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"கடவுச்சொல்லை அமைக்கவும்"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"வடிவத்தை அமைக்கவும்"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"பாதுகாப்பிற்காக, பின்னை அமைக்கவும்"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"பின்னை அமைக்கவும்"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"பாதுகாப்பிற்காக, பேட்டர்னை அமைக்கவும்"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"கடவுச்சொல்லை மீண்டும் உள்ளிடவும்"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"உங்கள் வடிவத்தை உறுதிப்படுத்தவும்"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"பின்னை மீண்டும் உள்ளிடவும்"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"இந்தச் சாதனத்தை MIDI ஆகப் பயன்படுத்தும்"</string>
<string name="usb_use" msgid="3372728031108932425">"இதற்காக USBஐப் பயன்படுத்து:"</string>
<string name="usb_use_also" msgid="557340935190819370">"USBஐ இதற்கும் பயன்படுத்தலாம்"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"இந்தச் சாதனத்தைச் சார்ஜ் செய்வதற்கு"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"இணைக்கப்பட்ட சாதனத்தைச் சார்ஜ் செய்தல்"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"பயன்பாடு"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"பயன்பாட்டை அழி"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"இந்த இன்ஸ்டண்ட் பயன்பாட்டை அகற்றவா?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"திற"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"கேம்ஸ்"</string>
<string name="audio_files_title" msgid="4777048870657911307">"ஆடியோ ஃபைல்கள்"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"பயன்படுத்திய இட அளவு"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 33f44f6..f02e704 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"మీ టాబ్లెట్ రక్షించుకోండి"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"మీ పరికరం రక్షించుకోండి"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"మీ ఫోన్ను రక్షించుకోండి"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"అదనపు భద్రత కోసం బ్యాకప్ స్క్రీన్ లాక్ను సెట్ చేయండి"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"పరికర సంరక్షణ లక్షణాలను సక్రియం చేయడం ద్వారా మీ అనుమతి లేకుండా ఈ టాబ్లెట్ను ఉపయోగించనీయకుండా ఇతరులను నిరోధించండి. మీరు ఉపయోగించాలనుకుంటున్న స్క్రీన్ లాక్ను ఎంచుకోండి."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"పరికర సంరక్షణ లక్షణాలను సక్రియం చేయడం ద్వారా మీ అనుమతి లేకుండా ఈ పరికరాన్ని ఉపయోగించనీయకుండా ఇతరులను నిరోధించండి. మీరు ఉపయోగించాలనుకుంటున్న స్క్రీన్ లాక్ను ఎంచుకోండి."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"పరికర సంరక్షణ లక్షణాలను సక్రియం చేయడం ద్వారా మీ అనుమతి లేకుండా ఈ ఫోన్ను ఉపయోగించనీయకుండా ఇతరులను నిరోధించండి. మీరు ఉపయోగించాలనుకుంటున్న స్క్రీన్ లాక్ను ఎంచుకోండి."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wi‑Fi హాట్స్పాట్ సెటప్"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK హాట్స్పాట్"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Android హాట్స్పాట్"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"విమానం మోడ్ ఆన్ చేయబడింది కనుక అందుబాటులో లేదు"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi కాలింగ్"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Wi-Fiతో కాల్ కవరేజ్ను విస్తరించండి"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Wi-Fi కాలింగ్ను ఆన్ చేయండి"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"భద్రతా సమాచారం"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"మీకు డేటా కనెక్షన్ లేదు. ఈ సమాచారాన్ని ఇప్పుడే వీక్షించడానికి, ఇంటర్నెట్ కనెక్షన్ సౌకర్యం ఉన్న ఏదైనా కంప్యూటర్ నుండి %sకి వెళ్లండి."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"లోడ్ చేస్తోంది…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"స్క్రీన్ లాక్ను సెట్ చేయండి"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"భద్రత కోసం పాస్వర్డ్ని సెట్ చేయండి"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"వేలిముద్ర బ్యాకప్ను సెట్ చేయండి"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"వేలిముద్ర బ్యాకప్ను సెట్ చేయండి"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"భద్రత కోసం పిన్ని సెట్ చేయండి"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"వేలిముద్ర బ్యాకప్ను సెట్ చేయండి"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"భద్రత కోసం ఆకృతిని సెట్ చేయండి"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"మీ పాస్వర్డ్ను మళ్ళీ నమోదు చేయండి"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"మీ నమూనాను నిర్ధారించండి"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"మీ పిన్ను మళ్లీ నమోదు చేయండి"</string>
@@ -3365,6 +3359,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"ఈ పరికరాన్ని MIDI వలె ఉపయోగించడం"</string>
<string name="usb_use" msgid="3372728031108932425">"దీని కోసం USBని ఉపయోగించండి"</string>
<string name="usb_use_also" msgid="557340935190819370">"USBని దీని కోసం కూడా ఉపయోగించండి"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"ఈ పరికరాన్ని ఛార్జ్ చేయడం"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"కనెక్ట్ చేయబడిన పరికరాన్ని ఛార్జ్ చేస్తోంది"</string>
@@ -3817,8 +3815,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"ఉపయోగించబడింది"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"యాప్ను క్లియర్ చేయి"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"మీరు ఈ తక్షణ అనువర్తనాన్ని తీసివేయాలనుకుంటున్నారా?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"తెరువు"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"గేమ్లు"</string>
<string name="audio_files_title" msgid="4777048870657911307">"ఆడియో ఫైల్లు"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"ఉపయోగించబడిన నిల్వ"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 87191d8..74b21e4 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"ปกป้องแท็บเล็ตของคุณ"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"ปกป้องอุปกรณ์ของคุณ"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"ปกป้องโทรศัพท์ของคุณ"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"ตั้งค่าการล็อกหน้าจอสำรองเพื่อยกระดับความปลอดภัย"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"ป้องกันไม่ให้ผู้อื่นใช้แท็บเล็ตเครื่องนี้โดยไม่ได้รับอนุญาตจากคุณด้วยการเปิดใช้งานฟีเจอร์การปกป้องอุปกรณ์ เลือกล็อกหน้าจอที่คุณต้องการใช้"</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"ป้องกันไม่ให้ผู้ใช้อื่นใช้อุปกรณ์เครื่องนี้โดยไม่ได้รับอนุญาตจากคุณด้วยการเปิดใช้งานฟีเจอร์การปกป้องอุปกรณ์ เลือกล็อกหน้าจอที่คุณต้องการใช้"</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"ป้องกันไม่ให้ผู้อื่นใช้โทรศัพท์เครื่องนี้โดยไม่ได้รับอนุญาตจากคุณด้วยการเปิดใช้งานฟีเจอร์การปกป้องอุปกรณ์ เลือกล็อกหน้าจอที่คุณต้องการใช้"</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"การตั้งค่า Wi-Fi ฮอตสปอต"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"ฮอตสปอต AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"ใช้งานไม่ได้เพราะโหมดบนเครื่องบินเปิดอยู่"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"การโทรผ่าน Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"ขยายการครอบคลุมการโทรด้วย Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"เปิดการโทรผ่าน Wi-Fi"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"ข้อมูลความปลอดภัย"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"คุณไม่มีการเชื่อมต่อข้อมูล หากต้องการดูข้อมูลตอนนี้ ให้ไปที่ %s จากคอมพิวเตอร์ที่เชื่อมต่อกับอินเทอร์เน็ต"</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"กำลังโหลด…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"ตั้งค่าการล็อกหน้าจอ"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"เพื่อความปลอดภัย โปรดตั้งรหัสผ่าน"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"หากต้องการใช้ลายนิ้วมือ ให้ตั้งรหัสผ่าน"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"หากต้องการใช้ลายนิ้วมือ ให้ตั้งค่ารูปแบบ"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"เพื่อความปลอดภัย โปรดตั้ง PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"หากต้องการใช้ลายนิ้วมือ ให้ตั้งค่า PIN"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"เพื่อความปลอดภัย โปรดตั้งรูปแบบ"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"ป้อนรหัสผ่านอีกครั้ง"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"ยืนยันรูปแบบของคุณ"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"ป้อน PIN อีกครั้ง"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"ใช้อุปกรณ์นี้เป็น MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"ใช้ USB สำหรับ"</string>
<string name="usb_use_also" msgid="557340935190819370">"และใช้ USB สำหรับ"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"ชาร์จอุปกรณ์นี้"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"การชาร์จอุปกรณ์ที่เชื่อมต่อ"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"ที่ใช้ไป"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"ล้างแอป"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"คุณต้องการนำ Instant App นี้ออกไหม"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"เปิด"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"เกม"</string>
<string name="audio_files_title" msgid="4777048870657911307">"ไฟล์เสียง"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"พื้นที่ที่ใช้ไป"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index fc5c92a..8190657 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Protektahan ang tablet mo"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Protektahan ang device"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Protektahan phone mo"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Para sa karagdagang seguridad, magtakda ng backup na lock ng screen"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Pigilan ang ibang taong magamit ang tablet na ito sa pamamagitan ng pag-a-activate sa mga feature ng proteksyon ng device. Piliin ang screen lock na gusto mong gamitin."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Pigilan ang ibang taong magamit ang device na ito sa pamamagitan ng pag-a-activate sa mga feature ng proteksyon ng device. Piliin ang screen lock na gusto mong gamitin."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Pigilan ang ibang taong magamit ang teleponong ito sa pamamagitan ng pag-a-activate sa mga feature ng proteksyon ng device. Piliin ang screen lock na gusto mong gamitin."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Pag-setup ng Wi‑Fi hotspot"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK na hotspot"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Hindi available dahil naka-on ang airplane mode"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Pagtawag gamit ang Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Tumawag sa mas malayo sa Wi‑Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"I-on ang pagtawag gamit ang Wi-Fi"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Impormasyon sa kaligtasan"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Wala kang koneksyon sa data. Upang tingnan ang impormasyong ito ngayon, pumunta sa %s mula sa anumang computer na nakakonekta sa internet."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Naglo-load…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Magtakda ng lock ng screen"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Para sa seguridad, magtakda ng password"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Para magamit ang fingerprint, i-set ang pw"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Para magamit ang fingerprint, i-set ang pattern"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Para sa seguridad, magtakda ng PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Para magamit ang fingerprint, i-set ang PIN"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Para sa seguridad, magtakda ng pattern"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Ilagay muli ang iyong password"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Kumpirmahin ang iyong pattern"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Ilagay muli ang iyong PIN"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Gamitin ang device na ito bilang MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Gamitin ang USB para sa"</string>
<string name="usb_use_also" msgid="557340935190819370">"Gamitin din ang USB para sa"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Pag-charge sa device na ito"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Pag-charge ng nakakonektang device"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"nagamit"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"I-clear ang app"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Gusto mo bang alisin ang instant na app na ito?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Buksan"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Mga Laro"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Mga audio file"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Espasyong ginagamit"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 681f2b3..0e43462 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Tabletinizi koruyun"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Cihazınızı koruyun"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Telefonunuzu koruyun"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Daha fazla güvenlik için yedek ekran kilidi ayarlayın."</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Cihaz koruma özelliklerini etkinleştirerek, izniniz olmadan başkalarının bu tableti kullanmasını engelleyin. Kullanmak istediğiniz ekran kilidini seçin."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Cihaz koruma özelliklerini etkinleştirerek, izniniz olmadan başkalarının bu cihazı kullanmasını engelleyin. Kullanmak istediğiniz ekran kilidini seçin."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Cihaz koruma özelliklerini etkinleştirerek, izniniz olmadan başkalarının bu telefonu kullanmasını engelleyin. Kullanmak istediğiniz ekran kilidini seçin."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Kablosuz hotspot kurulumu"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK hotspot"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Android Ortak Erişim Noktası"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Uçak modu açık olduğundan kullanılamıyor"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Kablosuz çağrı"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Kablosuzla çağrı kapsamını genişletin"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Kablosuz çağrıyı açın"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Güvenlik bilgileri"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Veri bağlantınız yok. Bu bilgileri şimdi görüntülemek için internet\'e bağlı herhangi bir bilgisayardan %s adresine gidin."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Yükleniyor…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Ekran kilidini ayarlama"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Güvenlik için şifre oluşturun"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Parmak izi için şifre ayarlayın"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Parmak izi için desen ayarlayın"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Güvenlik için PIN oluşturun"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Parmak izi için PIN ayarlayın"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Güvenlik için desen oluşturun"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Şifrenizi yeniden girin"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Deseninizi onaylayın"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"PIN\'inizi yeniden girin"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Bu cihazı MIDI olarak kullanın"</string>
<string name="usb_use" msgid="3372728031108932425">"USB\'yi şunun için kullan:"</string>
<string name="usb_use_also" msgid="557340935190819370">"Ayrıca USB\'yi şunun için kullan:"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Bu cihazı şarj et"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Bağlı cihazı şarj etme"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"kullanılan"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Uygulamayı temizle"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Bu hazır uygulamayı kaldırmak istiyor musunuz?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Aç"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Oyunlar"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Ses dosyaları"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Kullanılan alan"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 909cfb4..60477cf 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -488,8 +488,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Захистіть свій планшет"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Захистіть свій пристрій"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Захистіть свій телефон"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Щоб підвищити рівень безпеки, налаштуйте резервний спосіб блокування екрана"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Активуйте функції захисту планшета, щоб інші люди не могли ним користуватися без вашого дозволу. Виберіть спосіб блокування екрана."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Активуйте функції захисту пристрою, щоб інші люди не могли ним користуватися без вашого дозволу. Виберіть спосіб блокування екрана."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Активуйте функції захисту телефона, щоб інші люди не могли ним користуватися без вашого дозволу. Виберіть спосіб блокування екрана."</string>
@@ -948,8 +947,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Налаштув. точки доступу Wi‑Fi"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"Точка доступу AndroidAP WPA2 PSK"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Недоступно, оскільки ввімкнено режим польоту"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Дзвінки через Wi-Fi"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Розширити покриття дзвінків через Wi-Fi"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Увімкнути дзвінки через Wi-Fi"</string>
@@ -1517,17 +1515,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Інф-я про безпеку"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Немає передавання даних. Щоб переглянути цю інформацію, перейдіть на сторінку %s із комп’ютера, під’єднаного до Інтернету."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Завантаження…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Параметри блокування екрана"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"З міркувань безпеки налаштуйте пароль"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Щоб користуватися відбитком пальця, налаштуйте пароль"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Щоб користуватися відбитком пальця, налаштуйте ключ"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"З міркувань безпеки налаштуйте PIN-код"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Щоб користуватися відбитком пальця, налаштуйте PIN-код"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"З міркувань безпеки налаштуйте ключ"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Введіть пароль ще раз"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Підтвердьте ключ розблокування"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"Введіть PIN-код ще раз"</string>
@@ -3454,6 +3448,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Використовувати цей пристрій як MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Використання USB"</string>
<string name="usb_use_also" msgid="557340935190819370">"Інші застосування USB"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Заряджання пристрою"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Заряджання під’єднаного пристрою"</string>
@@ -3940,8 +3938,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"зайнято"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Очистити дані додатка"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Видалити цей додаток із миттєвим запуском?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Відкрити"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Ігри"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Аудіофайли"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Використано місця"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 3bc359a..8b52059 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"اپنے ٹیبلٹ کا تحفظ کریں"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"اپنے آلہ کا تحفظ کریں"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"اپنے فون کا تحفظ کریں"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"اضافی سیکیورٹی کیلئے ایک بیک اپ اسکرین لاک سیٹ کریں"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"آلہ کے تحفظ کی خصوصیات فعال کر کے اپنی اجازت کے بغیر دوسروں کو یہ ٹیبلیٹ استعمال کرنے سے روکیں۔ وہ اسکرین قفل منتخب کریں جو آپ استعمال کرنا چاہتے ہیں۔"</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"آلہ کے تحفظ کی خصوصیات فعال کر کے اپنی اجازت کے بغیر دوسروں کو یہ آلہ استعمال کرنے سے روکیں۔ وہ اسکرین قفل منتخب کریں جو آپ استعمال کرنا چاہتے ہیں۔"</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"آلہ کے تحفظ کی خصوصیات فعال کر کے اپنی اجازت کے بغیر دوسروں کو یہ فون استعمال کرنے سے روکیں۔ وہ اسکرین قفل منتخب کریں جو آپ استعمال کرنا چاہتے ہیں۔"</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wi‑Fi ہاٹ اسپاٹ سیٹ اپ"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK ہاٹ اسپاٹ"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"دستیاب نہیں ہے کیونکہ ہوائی جہاز وضع آن ہے"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi کالنگ"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Wi‑Fi کالنگ آن کریں"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Wi-Fi کالنگ آن کریں"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"حفاظت سے متعلق معلومات"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"آپ کے پاس ڈيٹا کنکشن نہيں ہے۔ اس معلومات کو ابھی دیکھنے کیلئے، انٹرنیٹ سے مربوط کسی بھی کمپیوٹر سے %s پر جائیں۔"</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"لوڈ ہو رہا ہے…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"اسکرین لاک سیٹ کریں"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"سیکیورٹی کیلئے، پاسورڈ سیٹ کریں"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"فنگر پرنٹ کے استعمال کے لیے پاسورڈ سیٹ کریں"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"فنگر پرنٹ کے استعمال کے لیے پیٹرن سیٹ کریں"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"سیکیورٹی کیلئے، PIN سیٹ کریں"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"فنگر پرنٹ کے استعمال کے لیے PIN سیٹ کریں"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"سیکیورٹی کیلئے، پیٹرن سیٹ کریں"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"اپنا پاس ورڈ دوبارہ درج کریں"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"اپنے پیٹرن کی توثیق کریں"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"اپنا PIN دوبارہ درج کریں"</string>
@@ -3362,6 +3356,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"اس آلہ کو بطور MIDI استعمال کریں"</string>
<string name="usb_use" msgid="3372728031108932425">"اس کیلئے USB استعمال کریں"</string>
<string name="usb_use_also" msgid="557340935190819370">"درجہ ذیل کے لئے بھی USB استعمال کریں"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"اس آلہ کو چارج کر رہی ہے"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"منسلک آلہ چارج ہو رہا ہے"</string>
@@ -3814,8 +3812,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"مستعمل"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"ایپ صاف کریں"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"کیا آپ اس فوری ایپ کو ہٹانا چاہتے ہیں؟"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"کھولیں"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"گیمز"</string>
<string name="audio_files_title" msgid="4777048870657911307">"آڈیو فائلز"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"استعمال شدہ جگہ"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 3e5fa3d..241134d 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"Planshetingizni himoyalang"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"Qurilmangizni himoyalang"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"Telefoningizni himoyalang"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"Ekran qulfi uchun muqobil usulni ham tanlang"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"Qurilmani himoyalash funksiyalarini faollashtirish orqali boshqalarning ushbu planshetdan sizning ruxsatingizsiz foydalanishining oldini oling. Ekran qulfini tanlang."</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"Qurilmani himoyalash funksiyalarini faollashtirish orqali boshqalarning ushbu qurilmadan sizning ruxsatingizsiz foydalanishining oldini oling. Ekran qulfini tanlang."</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"Qurilmani himoyalash funksiyalarini faollashtirish orqali boshqalarning ushbu telefondan sizning ruxsatingizsiz foydalanishining oldini oling. Ekran qulfini tanlang."</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wi‑Fi ulanish nuqtasini sozlash"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK hotspot"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"AndroidHotspot"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Parvoz rejimi yoniqligi uchun bu funksiya ishlamaydi"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi qo‘ng‘iroq"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"Wi‑Fi orqali chaqiruv qamrovini kengaytiring"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"Wi-Fi chaqiruvni yoqing"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"Xavfsizlik qoidalari"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"Sizda internet ulanish yo‘q. Bu ma‘lumotni ko‘rish uchun, internetga ulangan kompyuterda %s manziliga kiring."</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"Yuklanmoqda…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"Ekranni qulfini sozlash"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"Xavfsizlik uchun parol o‘rnating"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"Barmoq izidan foydalanish uchun parol o‘rnating"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"Barmoq izidan foydalanish uchun grafik kalit o‘rnating"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"Xavfsizlik uchun PIN kod o‘rnating"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"Barmoq izidan foydalanish uchun PIN kod o‘rnating"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"Xavfsizlik uchun grafik kalit o‘rnating"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"Parolni qayta kiriting"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"Grafik kalitni tasdiqlang"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"PIN kodni qayta kiriting"</string>
@@ -3384,6 +3378,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Bu qurilmadan MIDI sifatida foydalanish"</string>
<string name="usb_use" msgid="3372728031108932425">"USBdan foydalanish"</string>
<string name="usb_use_also" msgid="557340935190819370">"USB ulanish maqsadi"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Shu qurilmani quvvatlash"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Ulangan qurilma quvvatlanmoqda"</string>
@@ -3836,8 +3834,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"band"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Ilova ma’lumotlarini tozalash"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Ushbu darhol ochiladigan ilova olib tashlansinmi?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Ochish"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"O‘yinlar"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Audio fayllar"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Band qilgan joyi"</string>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index 86926eb..f35e3c9 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -475,9 +475,9 @@
<item msgid="6807727069641853029">"Người nhận"</item>
<item msgid="6782857406100845127">"Màn hình chính"</item>
<item msgid="2860945127596974299">"Hoạt động sau cùng"</item>
- <item msgid="8610560843693675830">"Được lưu trong bộ nhớ cache (hoạt động)"</item>
- <item msgid="4338089220026248848">"Được lưu trong bộ nhớ cache (máy khách hoạt động)"</item>
- <item msgid="6652164677254579050">"Được lưu trong bộ nhớ cache (trống)"</item>
+ <item msgid="8610560843693675830">"Được lưu trong bộ nhớ đệm (hoạt động)"</item>
+ <item msgid="4338089220026248848">"Được lưu trong bộ nhớ đệm (máy khách hoạt động)"</item>
+ <item msgid="6652164677254579050">"Được lưu trong bộ nhớ đệm (trống)"</item>
</string-array>
<string-array name="color_picker">
<item msgid="7631642672260600032">"Xanh két"</item>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 371974b..42ae0c5 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -1201,7 +1201,7 @@
<string name="memory_dcim_usage" msgid="558887013613822577">"Ảnh, video"</string>
<string name="memory_music_usage" msgid="1363785144783011606">"Âm thanh (âm nhạc, nhạc chuông, podcast, v.v)."</string>
<string name="memory_media_misc_usage" msgid="6094866738586451683">"Tệp khác"</string>
- <string name="memory_media_cache_usage" msgid="6704293333141177910">"Dữ liệu đã lưu trong bộ nhớ cache"</string>
+ <string name="memory_media_cache_usage" msgid="6704293333141177910">"Dữ liệu đã lưu trong bộ nhớ đệm"</string>
<string name="sd_eject" product="nosdcard" msgid="4988563376492400073">"Ngắt kết nối bộ nhớ được chia sẻ"</string>
<string name="sd_eject" product="default" msgid="6915293408836853020">"Tháo thẻ SD"</string>
<string name="sd_eject_summary" product="nosdcard" msgid="5009296896648072891">"Ngắt kết nối bộ nhớ trong USB"</string>
@@ -1216,7 +1216,7 @@
<string name="sd_format" product="default" msgid="2576054280507119870">"Xóa thẻ SD"</string>
<string name="sd_format_summary" product="nosdcard" msgid="6331905044907914603">"Xóa tất cả dữ liệu trên bộ nhớ trong USB, chẳng hạn như nhạc và ảnh"</string>
<string name="sd_format_summary" product="default" msgid="212703692181793109">"Xóa tất cả dữ liệu trên thẻ SD, chẳng hạn như nhạc và ảnh"</string>
- <string name="memory_clear_cache_title" msgid="5423840272171286191">"Xóa dữ liệu đã lưu trong bộ nhớ cache?"</string>
+ <string name="memory_clear_cache_title" msgid="5423840272171286191">"Xóa dữ liệu đã lưu trong bộ nhớ đệm?"</string>
<string name="memory_clear_cache_message" msgid="4550262490807415948">"Xóa dữ liệu lưu trong cache cho tất cả ứng dụng."</string>
<string name="mtp_ptp_mode_summary" msgid="3710436114807789270">"Chức năng MTP hoặc PTP đang hoạt động"</string>
<string name="dlg_confirm_unmount_title" product="nosdcard" msgid="3077285629197874055">"Ngắt kết nối bộ lưu trữ USB?"</string>
@@ -1279,7 +1279,7 @@
<string name="storage_detail_images" msgid="6950678857740634769">"Hình ảnh"</string>
<string name="storage_detail_videos" msgid="2919743464827110953">"Video"</string>
<string name="storage_detail_audio" msgid="1197685141676483213">"Âm thanh"</string>
- <string name="storage_detail_cached" msgid="8547136365247818567">"Dữ liệu đã lưu vào bộ nhớ cache"</string>
+ <string name="storage_detail_cached" msgid="8547136365247818567">"Dữ liệu đã lưu vào bộ nhớ đệm"</string>
<string name="storage_detail_other" msgid="8404938385075638238">"Dữ liệu khác"</string>
<string name="storage_detail_system" msgid="4629506366064709687">"Hệ thống"</string>
<string name="storage_detail_explore" msgid="7911344011431568294">"Khám phá <xliff:g id="NAME">^1</xliff:g>"</string>
@@ -1589,9 +1589,9 @@
<string name="auto_launch_label_generic" msgid="3230569852551968694">"Mặc định"</string>
<string name="screen_compatibility_label" msgid="663250687205465394">"Khả năng tương thích với màn hình"</string>
<string name="permissions_label" msgid="2605296874922726203">"Quyền"</string>
- <string name="cache_header_label" msgid="1877197634162461830">"Bộ nhớ cache"</string>
- <string name="clear_cache_btn_text" msgid="5756314834291116325">"Xóa bộ nhớ cache"</string>
- <string name="cache_size_label" msgid="7505481393108282913">"Bộ nhớ cache"</string>
+ <string name="cache_header_label" msgid="1877197634162461830">"Bộ nhớ đệm"</string>
+ <string name="clear_cache_btn_text" msgid="5756314834291116325">"Xóa bộ nhớ đệm"</string>
+ <string name="cache_size_label" msgid="7505481393108282913">"Bộ nhớ đệm"</string>
<plurals name="uri_permissions_text" formatted="false" msgid="3983110543017963732">
<item quantity="other">%d mục</item>
<item quantity="one">1 mục</item>
@@ -1706,7 +1706,7 @@
<string name="storageuse_settings_title" msgid="5657014373502630403">"Sử dụng bộ nhớ"</string>
<string name="storageuse_settings_summary" msgid="3748286507165697834">"Xem dung lượng lưu trữ mà các ứng dụng sử dụng"</string>
<string name="service_restarting" msgid="2242747937372354306">"Đang khởi động lại"</string>
- <string name="cached" msgid="1059590879740175019">"Các quá trình nền đã lưu trong bộ nhớ cache"</string>
+ <string name="cached" msgid="1059590879740175019">"Các quá trình nền đã lưu trong bộ nhớ đệm"</string>
<string name="no_running_services" msgid="2059536495597645347">"Không có dịch vụ nào chạy."</string>
<string name="service_started_by_app" msgid="818675099014723551">"Được khởi động bằng ứng dụng."</string>
<!-- no translation found for service_client_name (4037193625611815517) -->
@@ -2228,7 +2228,7 @@
<string name="process_stats_os_native" msgid="5322428494231768472">"Gốc"</string>
<string name="process_stats_os_kernel" msgid="1938523592369780924">"Kernel"</string>
<string name="process_stats_os_zram" msgid="677138324651671575">"Z-Ram"</string>
- <string name="process_stats_os_cache" msgid="6432533624875078233">"Bộ nhớ cache"</string>
+ <string name="process_stats_os_cache" msgid="6432533624875078233">"Bộ nhớ đệm"</string>
<string name="process_stats_ram_use" msgid="976912589127397307">"Sử dụng RAM"</string>
<string name="process_stats_bg_ram_use" msgid="5398191511030462404">"Sử dụng RAM (nền)"</string>
<string name="process_stats_run_time" msgid="6520628955709369115">"Thời gian chạy"</string>
@@ -3364,6 +3364,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Sử dụng thiết bị này làm MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Sử dụng USB cho"</string>
<string name="usb_use_also" msgid="557340935190819370">"Ngoài ra, sử dụng USB để"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Sạc thiết bị này"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Sạc thiết bị được kết nối"</string>
@@ -3816,8 +3820,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"đã dùng"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Xóa ứng dụng"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Bạn có muốn xóa ứng dụng tức thì này không?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Mở"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Trò chơi"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Tệp âm thanh"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Dung lượng đã sử dụng"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index cb33c72..1e947f5 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"保护您的平板电脑"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"保护您的设备"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"为手机启用保护功能"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"为提升安全性,请设置备用屏幕锁定方式"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"启用设备保护功能可防止他人在未经您允许的情况下使用此平板电脑。请选择您要使用的屏幕锁定方式。"</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"启用设备保护功能可防止他人在未经您允许的情况下使用此设备。请选择您要使用的屏幕锁定方式。"</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"启用设备保护功能可防止他人在未经您允许的情况下使用此手机。请选择您要使用的屏幕锁定方式。"</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"WLAN热点设置"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK 热点"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Android热点"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"无法使用,因为已开启飞行模式"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"WLAN 通话"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"通过 WLAN 扩大通话覆盖范围"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"开启 WLAN 通话功能"</string>
@@ -1118,7 +1116,7 @@
<string name="sim_enter_new" msgid="8742727032729243562">"新SIM卡PIN码"</string>
<string name="sim_reenter_new" msgid="6523819386793546888">"重新输入新的PIN码"</string>
<string name="sim_change_pin" msgid="7328607264898359112">"SIM卡PIN码"</string>
- <string name="sim_bad_pin" msgid="2345230873496357977">"PIN码不正确"</string>
+ <string name="sim_bad_pin" msgid="2345230873496357977">"PIN 码不正确"</string>
<string name="sim_pins_dont_match" msgid="1695021563878890574">"PIN码不匹配"</string>
<string name="sim_change_failed" msgid="3602072380172511475">"无法更改PIN码。\n输入的PIN码可能不正确。"</string>
<string name="sim_change_succeeded" msgid="8556135413096489627">"已成功更改SIM卡PIN码"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"安全信息"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"您没有数据连接。要立即查看此信息,请使用任何联网的计算机访问%s。"</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"正在加载..."</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"设置锁定屏幕"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"为了安全起见,请设置密码"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"要使用指纹,请设置密码"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"要使用指纹,请设置解锁图案"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"为了安全起见,请设置 PIN 码"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"要使用指纹,请设置 PIN 码"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"为了安全起见,请设置解锁图案"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"重新输入密码"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"确认您的图案"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"重新输入 PIN 码"</string>
@@ -3364,6 +3358,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"将此设备用作 MIDI 设备"</string>
<string name="usb_use" msgid="3372728031108932425">"USB 的用途"</string>
<string name="usb_use_also" msgid="557340935190819370">"同时将 USB 用于以下用途:"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"为此设备充电"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"为连接的设备充电"</string>
@@ -3816,8 +3814,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"已使用"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"清除应用"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"要移除这个免安装应用吗?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"打开"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"游戏"</string>
<string name="audio_files_title" msgid="4777048870657911307">"音频文件"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"已用空间"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 78ed433..f7fe9dc 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"保護您的平板電腦"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"保護您的裝置"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"保護您的手機"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"為提升安全性,請設定後備螢幕鎖定方式"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"只要啟用裝置保護功能,即可阻止他人在未經您准許下使用此平板電腦。請選擇您想使用的螢幕鎖定功能。"</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"只要啟用裝置保護功能,即可阻止他人在未經您准許下使用此裝置。請選擇您想使用的螢幕鎖定功能。"</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"只要啟用裝置保護功能,即可阻止他人在未經您准許下使用此手機。請選擇您想使用的螢幕鎖定功能。"</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wi‑Fi 熱點設定"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK 熱點"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Android 熱點"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"由於飛行模式已開啟,因此無法使用"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi 通話"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"透過 Wi-Fi 擴大通話覆蓋範圍"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"開啟 Wi-Fi 通話功能"</string>
@@ -1492,17 +1490,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"安全資訊"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"您沒有數據連線,如要立即查看這項資訊,請使用任何已連接互聯網的電腦前往 %s。"</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"載入中…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"設定螢幕鎖定"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"為安全起見,請設定密碼"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"如要使用指紋,請設定密碼"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"如要使用指紋,請設定上鎖圖案"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"為安全起見,請設定 PIN"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"如要使用指紋,請設定 PIN"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"為安全起見,請設定圖案"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"請重新輸入密碼"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"確認圖形"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"請重新輸入 PIN"</string>
@@ -3367,6 +3361,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"在 MIDI 模式下使用此裝置"</string>
<string name="usb_use" msgid="3372728031108932425">"使用 USB 於"</string>
<string name="usb_use_also" msgid="557340935190819370">"使用 USB 時同時開啟以下模式"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"為此裝置充電"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"正在為連接的裝置充電"</string>
@@ -3819,8 +3817,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"已使用"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"清除應用程式"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"您要移除此即時應用程式嗎?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"開啟"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"遊戲"</string>
<string name="audio_files_title" msgid="4777048870657911307">"音訊檔案"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"已使用的儲存空間"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index d27d019..5397d25 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -482,8 +482,7 @@
<string name="setup_lock_settings_picker_title" product="tablet" msgid="90329443364067215">"保護你的平板電腦"</string>
<string name="setup_lock_settings_picker_title" product="device" msgid="2399952075134938929">"保護你的裝置"</string>
<string name="setup_lock_settings_picker_title" product="default" msgid="1572244299605153324">"保護你的手機"</string>
- <!-- no translation found for lock_settings_picker_fingerprint_added_security_message (5008939545428518367) -->
- <skip />
+ <string name="lock_settings_picker_fingerprint_added_security_message" msgid="5008939545428518367">"為了進一步提升安全性,請設定備用的螢幕鎖定方式"</string>
<string name="setup_lock_settings_picker_message" product="tablet" msgid="8919671129189936210">"只要啟用裝置保護功能,即可防止他人在未獲你授權的情況下使用這台平板電腦。請選擇你要使用的螢幕鎖定方式。"</string>
<string name="setup_lock_settings_picker_message" product="device" msgid="3787276514406353777">"只要啟用裝置保護功能,即可防止他人在未獲你授權的情況下使用這個裝置。請選擇你要使用的螢幕鎖定方式。"</string>
<string name="setup_lock_settings_picker_message" product="default" msgid="3692856437543730446">"只要啟用裝置保護功能,即可防止他人在未獲你授權的情況下使用這支手機。請選擇你要使用的螢幕鎖定方式。"</string>
@@ -924,8 +923,7 @@
<string name="wifi_hotspot_configure_ap_text" msgid="5478614731464220432">"Wi‑Fi 無線基地台設定"</string>
<string name="wifi_hotspot_configure_ap_text_summary" msgid="5560680057727007011">"AndroidAP WPA2 PSK 無線基地台"</string>
<string name="wifi_tether_configure_ssid_default" msgid="8467525402622138547">"Android 無線基地台"</string>
- <!-- no translation found for wifi_tether_disabled_by_airplane (414480185654767932) -->
- <skip />
+ <string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"已開啟飛航模式,因此無法使用"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi 通話"</string>
<string name="wifi_calling_suggestion_title" msgid="7766895085362824508">"透過 Wi‑Fi 擴大通話涵蓋範圍"</string>
<string name="wifi_calling_suggestion_summary" msgid="6460250990899143406">"開啟 Wi-Fi 通話功能"</string>
@@ -1491,17 +1489,13 @@
<string name="settings_safetylegal_activity_title" msgid="6901214628496951727">"安全資訊"</string>
<string name="settings_safetylegal_activity_unreachable" msgid="142307697309858185">"你沒有數據連線,如要立即查看這項資訊,請使用任何已連上網際網路的電腦前往 %s。"</string>
<string name="settings_safetylegal_activity_loading" msgid="8059022597639516348">"載入中…"</string>
- <!-- no translation found for lockpassword_choose_your_screen_lock_header (2942199737559900752) -->
- <skip />
- <!-- no translation found for lockpassword_choose_your_password_message (5377842480961577542) -->
- <skip />
+ <string name="lockpassword_choose_your_screen_lock_header" msgid="2942199737559900752">"設定螢幕鎖定"</string>
+ <string name="lockpassword_choose_your_password_message" msgid="5377842480961577542">"為了安全起見,請設定密碼"</string>
<string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="6624409510609085450">"如要使用指紋,請設定密碼"</string>
<string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="5901096361617543819">"如要使用指紋,請設定解鎖圖案"</string>
- <!-- no translation found for lockpassword_choose_your_pin_message (6658264750811929338) -->
- <skip />
+ <string name="lockpassword_choose_your_pin_message" msgid="6658264750811929338">"為了安全起見,請設定 PIN 碼"</string>
<string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="765344692615917183">"如要使用指紋,請設定 PIN 碼"</string>
- <!-- no translation found for lockpassword_choose_your_pattern_message (8631545254345759087) -->
- <skip />
+ <string name="lockpassword_choose_your_pattern_message" msgid="8631545254345759087">"為了安全起見,請設定解鎖圖案"</string>
<string name="lockpassword_confirm_your_password_header" msgid="1266027268220850931">"請重新輸入你的密碼"</string>
<string name="lockpassword_confirm_your_pattern_header" msgid="7543433733032330821">"確認圖案"</string>
<string name="lockpassword_confirm_your_pin_header" msgid="7744513791910572550">"請重新輸入你的 PIN 碼"</string>
@@ -3368,6 +3362,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"將這個裝置用做 MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"USB 用途"</string>
<string name="usb_use_also" msgid="557340935190819370">"使用 USB 時一併開啟以下模式"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"為這個裝置充電"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"正在為連接的裝置充電"</string>
@@ -3820,8 +3818,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"已使用"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"清除應用程式"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"要移除這個免安裝應用程式嗎?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"開啟"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"遊戲"</string>
<string name="audio_files_title" msgid="4777048870657911307">"音訊檔案"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"已使用的空間"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 7931abb..cd05e61 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -3359,6 +3359,10 @@
<string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Sebenzisa le divayisi njenge-MIDI"</string>
<string name="usb_use" msgid="3372728031108932425">"Sebenzisela i-USB i-"</string>
<string name="usb_use_also" msgid="557340935190819370">"Phinda usebenzise i-USB ku-"</string>
+ <!-- no translation found for usb_default_label (4217189967858707974) -->
+ <skip />
+ <!-- no translation found for usb_default_info (8864535445796200695) -->
+ <skip />
<string name="usb_pref" msgid="1400617804525116158">"I-USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Ishaja le divayisi"</string>
<string name="usb_summary_power_only" msgid="1996391096369798526">"Ishaja idivayisi exhunyiwe"</string>
@@ -3811,8 +3815,7 @@
<string name="storage_percent_full" msgid="6095012055875077036">"okusetshenzisiwe"</string>
<string name="clear_instant_app_data" msgid="2004222610585890909">"Sula uhlelo lokusebenza"</string>
<string name="clear_instant_app_confirmation" msgid="7451671214898856857">"Ingabe uyafuna ukususa lolu hlelo lokusebenza olusheshayo?"</string>
- <!-- no translation found for launch_instant_app (391581144859010499) -->
- <skip />
+ <string name="launch_instant_app" msgid="391581144859010499">"Vula"</string>
<string name="game_storage_settings" msgid="3410689937046696557">"Amageyimu"</string>
<string name="audio_files_title" msgid="4777048870657911307">"Amafayela omsindo"</string>
<string name="app_info_storage_title" msgid="5554719444625611987">"Isikhala esisetshenzisiwe"</string>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index cb6f9be..0ccbbf4 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1079,4 +1079,18 @@
<item>2</item>
</string-array>
+ <!-- Titles for ui dark mode preference. -->
+ <string-array name="dark_ui_mode_entries" >
+ <item>Automatic (based on time of day)</item>
+ <item>Always on</item>
+ <item>Always off</item>
+ </string-array>
+
+ <!-- Values for ui dark mode preference. -->
+ <string-array name="dark_ui_mode_values" translatable="false" >
+ <item>auto</item>
+ <item>yes</item>
+ <item>no</item>
+ </string-array>
+
</resources>
diff --git a/res/values/bools.xml b/res/values/bools.xml
index f20b93c..4665f2e 100644
--- a/res/values/bools.xml
+++ b/res/values/bools.xml
@@ -150,15 +150,6 @@
<!-- Whether default_home should be shown or not. -->
<bool name="config_show_default_home">true</bool>
- <!-- Whether color correction preference should be shown or not. -->
- <bool name="config_show_color_correction_preference">true</bool>
-
- <!-- Whether color inversion preference should be shown or not. -->
- <bool name="config_show_color_inversion_preference">true</bool>
-
- <!-- Whether accessibility shortcut preference should be shown or not. -->
- <bool name="config_show_accessibility_shortcut_preference">true</bool>
-
<!-- Whether assist_and_voice_input should be shown or not. -->
<bool name="config_show_assist_and_voice_input">true</bool>
diff --git a/res/values/ids.xml b/res/values/ids.xml
index 66af163..d5c9291 100644
--- a/res/values/ids.xml
+++ b/res/values/ids.xml
@@ -18,6 +18,7 @@
-->
<resources>
<item type="id" name="preference_highlighted" />
+ <item type="id" name="job_anomaly_clean_up" />
<item type="id" name="lock_none" />
<item type="id" name="lock_pin" />
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ad11706..7fb4b60 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1655,10 +1655,15 @@
<!-- Bluetooth settings. Dock Setting Dialog - Remember setting and don't ask user again -->
<string name="bluetooth_dock_settings_remember">Remember settings</string>
+ <!-- Bluetooth developer options. -->
<!-- Bluetooth developer settings: Maximum number of connected audio devices -->
<string name="bluetooth_max_connected_audio_devices_string">Maximum connected Bluetooth audio devices</string>
<!-- Bluetooth developer settings: Maximum number of connected audio devices -->
<string name="bluetooth_max_connected_audio_devices_dialog_title">Select maximum number of connected Bluetooth audio devices</string>
+ <!-- Bluetooth developer settings: Checkbox title for enabling Bluetooth receiving AVDTP delay reports -->
+ <string name="bluetooth_enable_avdtp_delay_reports">Enable Bluetooth AVDTP delay reports</string>
+ <!-- Bluetooth developer settings: Summary of checkbox for enabling Bluetooth receiving AVDTP delay reports -->
+ <string name="bluetooth_enable_avdtp_delay_reports_summary">Allow receiving Bluetooth AVDTP delay reports</string>
<!-- Wifi Display settings. The title of the screen. [CHAR LIMIT=40] -->
<string name="wifi_display_settings_title">Cast</string>
@@ -8096,6 +8101,10 @@
for this device should be used for. These options are less commonly used.
Choices are usb_use_tethering, usb_use_photo_transfers, usb_use_MIDI, and usb_use_power_only.-->
<string name="usb_use_also">Also use USB for</string>
+ <!-- The label that leads to the Default USB configuration window. -->
+ <string name="usb_default_label">Default USB Configuration</string>
+ <!-- Description at the footer of the default USB configuration window that describes how the setting works. -->
+ <string name="usb_default_info">When another device is connected and your phone is unlocked, these settings will be applied. Only connect to trusted devices.</string>
<!-- Settings item title for USB preference [CHAR LIMIT=35] -->
<string name="usb_pref">USB</string>
@@ -8878,6 +8887,12 @@
<!-- [CHAR LIMIT=60] Name of dev option called "System UI demo mode" -->
<string name="demo_mode">System UI demo mode</string>
+ <!-- [CHAR LIMIT=60] Name of dev option that changes the UI Mode -->
+ <string name="dark_ui_mode">Night mode</string>
+
+ <!-- [CHAR LIMIT=60] Name of dev option that changes the color of the UI -->
+ <string name="dark_ui_mode_title">Set Night mode</string>
+
<!-- [CHAR LIMIT=60] Name of dev option to enable extra quick settings tiles -->
<string name="quick_settings_developer_tiles">Quick settings developer tiles</string>
diff --git a/res/xml/accessibility_vibration_settings.xml b/res/xml/accessibility_vibration_settings.xml
index 17468ea..d24834a 100644
--- a/res/xml/accessibility_vibration_settings.xml
+++ b/res/xml/accessibility_vibration_settings.xml
@@ -16,8 +16,7 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:key="accessibility_settings_vibration_screen"
- android:title="@string/accessibility_vibration_settings_title"
- android:persistent="true">
+ android:title="@string/accessibility_vibration_settings_title">
<Preference
android:fragment="com.android.settings.accessibility.NotificationVibrationPreferenceFragment"
diff --git a/res/xml/connected_devices_advanced.xml b/res/xml/connected_devices_advanced.xml
index a5d48fd..36eab22 100644
--- a/res/xml/connected_devices_advanced.xml
+++ b/res/xml/connected_devices_advanced.xml
@@ -50,7 +50,7 @@
settings:controller="com.android.settings.connecteddevice.BluetoothOnWhileDrivingPreferenceController"
android:order="-2"/>
- <Preference
+ <com.android.settingslib.RestrictedPreference
android:key="connected_device_printing"
android:title="@string/print_settings"
android:summary="@string/summary_placeholder"
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index a88a97b..571f38e 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -112,6 +112,13 @@
<intent android:action="com.android.settings.action.DEMO_MODE" />
</Preference>
+ <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" />
+
<Preference
android:key="quick_settings_tiles"
android:title="@string/quick_settings_developer_tiles"
@@ -235,12 +242,11 @@
android:title="@string/tethering_hardware_offload"
android:summary="@string/tethering_hardware_offload_summary" />
- <ListPreference
- android:key="select_usb_configuration"
- android:title="@string/select_usb_configuration_title"
- android:dialogTitle="@string/select_usb_configuration_dialog_title"
- android:entries="@array/usb_configuration_titles"
- android:entryValues="@array/usb_configuration_values" />
+ <Preference
+ android:key="default_usb_configuration"
+ android:fragment="com.android.settings.connecteddevice.usb.UsbDefaultFragment"
+ android:icon="@drawable/ic_usb"
+ android:title="@string/usb_default_label"/>
<SwitchPreference
android:key="bluetooth_show_devices_without_names"
@@ -257,6 +263,11 @@
android:title="@string/bluetooth_disable_inband_ringing"
android:summary="@string/bluetooth_disable_inband_ringing_summary" />
+ <SwitchPreference
+ android:key="bluetooth_enable_avdtp_delay_reports"
+ android:title="@string/bluetooth_enable_avdtp_delay_reports"
+ android:summary="@string/bluetooth_enable_avdtp_delay_reports_summary"/>
+
<ListPreference
android:key="bluetooth_select_avrcp_version"
android:title="@string/bluetooth_select_avrcp_version_string"
diff --git a/res/xml/location_settings.xml b/res/xml/location_settings.xml
index c86df68..43affe6 100644
--- a/res/xml/location_settings.xml
+++ b/res/xml/location_settings.xml
@@ -27,7 +27,8 @@
<!-- This preference category gets removed if new_recent_location_ui is disabled -->
<Preference
android:key="app_level_permissions"
- android:title="@string/location_app_level_permissions">
+ android:title="@string/location_app_level_permissions"
+ settings:allowDividerAbove="true">
<intent android:action="android.intent.action.MANAGE_PERMISSION_APPS">
<extra android:name="android.intent.extra.PERMISSION_NAME"
android:value="android.permission-group.LOCATION" />
diff --git a/res/xml/power_usage_summary.xml b/res/xml/power_usage_summary.xml
index fbe4e0d..d89653a 100644
--- a/res/xml/power_usage_summary.xml
+++ b/res/xml/power_usage_summary.xml
@@ -36,7 +36,8 @@
<com.android.settings.widget.MasterSwitchPreference
android:fragment="com.android.settings.fuelgauge.batterysaver.BatterySaverSettings"
android:key="battery_saver_summary"
- android:title="@string/battery_saver"/>
+ android:title="@string/battery_saver"
+ settings:controller="com.android.settings.fuelgauge.BatterySaverController"/>
<Preference
android:fragment="com.android.settings.fuelgauge.SmartBatterySettings"
diff --git a/res/xml/usb_default_fragment.xml b/res/xml/usb_default_fragment.xml
new file mode 100644
index 0000000..b8d5e53
--- /dev/null
+++ b/res/xml/usb_default_fragment.xml
@@ -0,0 +1,21 @@
+<?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"
+ android:title="@string/usb_pref"
+ android:key="usb_default_fragment">
+</PreferenceScreen>
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index a21153d..3144ae2 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -67,7 +67,6 @@
import com.android.settings.wfd.WifiDisplaySettings;
import com.android.settings.widget.SwitchBar;
import com.android.settingslib.core.instrumentation.Instrumentable;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.instrumentation.SharedPreferencesLogger;
import com.android.settingslib.development.DevelopmentSettingsEnabler;
import com.android.settingslib.drawer.DashboardCategory;
@@ -558,37 +557,17 @@
/**
* Called by a preference panel fragment to finish itself.
*
- * @param caller The fragment that is asking to be finished.
* @param resultCode Optional result code to send back to the original
* launching fragment.
* @param resultData Optional result data to send back to the original
* launching fragment.
*/
- public void finishPreferencePanel(Fragment caller, int resultCode, Intent resultData) {
+ public void finishPreferencePanel(int resultCode, Intent resultData) {
setResult(resultCode, resultData);
finish();
}
/**
- * Start a new fragment.
- *
- * @param fragment The fragment to start
- * @param push If true, the current fragment will be pushed onto the back stack. If false,
- * the current fragment will be replaced.
- */
- public void startPreferenceFragment(Fragment fragment, boolean push) {
- FragmentTransaction transaction = getFragmentManager().beginTransaction();
- transaction.replace(R.id.main_content, fragment);
- if (push) {
- transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
- transaction.addToBackStack(BACK_STACK_PREFS);
- } else {
- transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
- }
- transaction.commitAllowingStateLoss();
- }
-
- /**
* Switch to a specific Fragment with taking care of validation, Title and BackStack
*/
private Fragment switchToFragment(String fragmentName, Bundle args, boolean validate,
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index 0374d0b..bf4da66 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -135,19 +135,7 @@
if (icicle != null) {
mPreferenceHighlighted = icicle.getBoolean(SAVE_HIGHLIGHTED_KEY);
}
- final Bundle arguments = getArguments();
-
- // Check if we should keep the preferences expanded.
- if (arguments != null) {
- final String highlightKey =
- arguments.getString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY);
- if (!TextUtils.isEmpty(highlightKey)) {
- final PreferenceScreen screen = getPreferenceScreen();
- if (screen != null) {
- screen.setInitialExpandedChildrenCount(Integer.MAX_VALUE);
- }
- }
- }
+ HighlightablePreferenceGroupAdapter.adjustInitialExpandedChildCount(this /* host */);
}
@Override
@@ -264,6 +252,15 @@
}
}
+ /**
+ * Returns initial expanded child count.
+ * <p/>
+ * Only override this method if the initial expanded child must be determined at run time.
+ */
+ public int getInitialExpandedChildCount() {
+ return 0;
+ }
+
protected void onDataSetChanged() {
highlightPreferenceIfNeeded();
updateEmptyView();
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 3923da5..2a55829 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -389,104 +389,6 @@
}
/**
- * Start a new instance of the activity, showing only the given fragment.
- * When launched in this mode, the given preference fragment will be instantiated and fill the
- * entire activity.
- *
- * @param context The context.
- * @param fragmentName The name of the fragment to display.
- * @param args Optional arguments to supply to the fragment.
- * @param resultTo Option fragment that should receive the result of the activity launch.
- * @param resultRequestCode If resultTo is non-null, this is the request code in which
- * to report the result.
- * @param titleResId resource id for the String to display for the title of this set
- * of preferences.
- * @param title String to display for the title of this set of preferences.
- * @param metricsCategory The current metricsCategory for logging source when fragment starts
- */
- public static void startWithFragment(Context context, String fragmentName, Bundle args,
- Fragment resultTo, int resultRequestCode, int titleResId,
- CharSequence title, int metricsCategory) {
- startWithFragment(context, fragmentName, args, resultTo, resultRequestCode,
- null /* titleResPackageName */, titleResId, title, false /* not a shortcut */,
- metricsCategory);
- }
-
- /**
- * Start a new instance of the activity, showing only the given fragment.
- * When launched in this mode, the given preference fragment will be instantiated and fill the
- * entire activity.
- *
- * @param context The context.
- * @param fragmentName The name of the fragment to display.
- * @param args Optional arguments to supply to the fragment.
- * @param resultTo Option fragment that should receive the result of the activity launch.
- * @param resultRequestCode If resultTo is non-null, this is the request code in which
- * to report the result.
- * @param titleResId resource id for the String to display for the title of this set
- * of preferences.
- * @param title String to display for the title of this set of preferences.
- * @param metricsCategory The current metricsCategory for logging source when fragment starts
- */
- public static void startWithFragment(Context context, String fragmentName, Bundle args,
- Fragment resultTo, int resultRequestCode, int titleResId,
- CharSequence title, boolean isShortcut, int metricsCategory) {
- Intent intent = onBuildStartFragmentIntent(context, fragmentName, args,
- null /* titleResPackageName */, titleResId, title, isShortcut, metricsCategory);
- if (resultTo == null) {
- context.startActivity(intent);
- } else {
- resultTo.getActivity().startActivityForResult(intent, resultRequestCode);
- }
- }
-
- public static void startWithFragment(Context context, String fragmentName, Bundle args,
- Fragment resultTo, int resultRequestCode, String titleResPackageName, int titleResId,
- CharSequence title, boolean isShortcut, int metricsCategory) {
- Intent intent = onBuildStartFragmentIntent(context, fragmentName, args, titleResPackageName,
- titleResId, title, isShortcut, metricsCategory);
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- if (resultTo == null) {
- context.startActivity(intent);
- } else {
- resultTo.startActivityForResult(intent, resultRequestCode);
- }
- }
-
- /**
- * Build an Intent to launch a new activity showing the selected fragment.
- * The implementation constructs an Intent that re-launches the current activity with the
- * appropriate arguments to display the fragment.
- *
- *
- * @param context The Context.
- * @param fragmentName The name of the fragment to display.
- * @param args Optional arguments to supply to the fragment.
- * @param titleResPackageName Optional package name for the resource id of the title.
- * @param titleResId Optional title resource id to show for this item.
- * @param title Optional title to show for this item.
- * @param isShortcut tell if this is a Launcher Shortcut or not
- * @param sourceMetricsCategory The context (source) from which an action is performed
- * @return Returns an Intent that can be launched to display the given
- * fragment.
- */
- public static Intent onBuildStartFragmentIntent(Context context, String fragmentName,
- Bundle args, String titleResPackageName, int titleResId, CharSequence title,
- boolean isShortcut, int sourceMetricsCategory) {
- Intent intent = new Intent(Intent.ACTION_MAIN);
- intent.setClass(context, SubSettings.class);
- intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT, fragmentName);
- intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, args);
- intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RES_PACKAGE_NAME,
- titleResPackageName);
- intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, titleResId);
- intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE, title);
- intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_AS_SHORTCUT, isShortcut);
- intent.putExtra(VisibilityLoggerMixin.EXTRA_SOURCE_METRICS_CATEGORY, sourceMetricsCategory);
- return intent;
- }
-
- /**
* Returns the managed profile of the current user or {@code null} if none is found or a profile
* exists but it is disabled.
*/
@@ -615,45 +517,6 @@
return null;
}
- /**
- * Returns the target user for a Settings activity.
- *
- * The target user can be either the current user, the user that launched this activity or
- * the user contained as an extra in the arguments or intent extras.
- *
- * You should use {@link #getSecureTargetUser(IBinder, UserManager, Bundle, Bundle)} if
- * possible.
- *
- * @see #getInsecureTargetUser(IBinder, Bundle, Bundle)
- */
- public static UserHandle getInsecureTargetUser(IBinder activityToken, @Nullable Bundle arguments,
- @Nullable Bundle intentExtras) {
- UserHandle currentUser = new UserHandle(UserHandle.myUserId());
- IActivityManager am = ActivityManager.getService();
- try {
- UserHandle launchedFromUser = new UserHandle(UserHandle.getUserId(
- am.getLaunchedFromUid(activityToken)));
- if (launchedFromUser != null && !launchedFromUser.equals(currentUser)) {
- return launchedFromUser;
- }
- UserHandle extrasUser = intentExtras != null
- ? (UserHandle) intentExtras.getParcelable(EXTRA_USER) : null;
- if (extrasUser != null && !extrasUser.equals(currentUser)) {
- return extrasUser;
- }
- UserHandle argumentsUser = arguments != null
- ? (UserHandle) arguments.getParcelable(EXTRA_USER) : null;
- if (argumentsUser != null && !argumentsUser.equals(currentUser)) {
- return argumentsUser;
- }
- } catch (RemoteException e) {
- // Should not happen
- Log.v(TAG, "Could not talk to activity manager.", e);
- return null;
- }
- return currentUser;
- }
-
/**
* Returns true if the user provided is in the same profiles group as the current user.
*/
@@ -702,28 +565,6 @@
return inflater.inflate(resId, parent, false);
}
- /**
- * Return if we are running low on storage space or not.
- *
- * @param context The context
- * @return true if we are running low on storage space
- */
- public static boolean isLowStorage(Context context) {
- final StorageManager sm = StorageManager.from(context);
- return (sm.getStorageBytesUntilLow(context.getFilesDir()) < 0);
- }
-
-
- public static boolean hasPreferredActivities(PackageManager pm, String packageName) {
- // Get list of preferred activities
- List<ComponentName> prefActList = new ArrayList<>();
- // Intent list cannot be null. so pass empty list
- List<IntentFilter> intentList = new ArrayList<>();
- pm.getPreferredActivities(intentList, prefActList, packageName);
- Log.d(TAG, "Have " + prefActList.size() + " number of activities in preferred list");
- return prefActList.size() > 0;
- }
-
public static ArraySet<String> getHandledDomains(PackageManager pm, String packageName) {
List<IntentFilterVerificationInfo> iviList = pm.getIntentFilterVerifications(packageName);
List<IntentFilter> filters = pm.getAllIntentFilters(packageName);
@@ -873,12 +714,6 @@
return um.getCredentialOwnerProfile(userId);
}
- public static int resolveResource(Context context, int attr) {
- TypedValue value = new TypedValue();
- context.getTheme().resolveAttribute(attr, value, true);
- return value.resourceId;
- }
-
private static final StringBuilder sBuilder = new StringBuilder(50);
private static final java.util.Formatter sFormatter = new java.util.Formatter(
sBuilder, Locale.getDefault());
@@ -893,47 +728,6 @@
}
}
- public static List<String> getNonIndexable(int xml, Context context) {
- if (Looper.myLooper() == null) {
- // Hack to make sure Preferences can initialize. Prefs expect a looper, but
- // don't actually use it for the basic stuff here.
- Looper.prepare();
- }
- final List<String> ret = new ArrayList<>();
- PreferenceManager manager = new PreferenceManager(context);
- PreferenceScreen screen = manager.inflateFromResource(context, xml, null);
- checkPrefs(screen, ret);
-
- return ret;
- }
-
- private static void checkPrefs(PreferenceGroup group, List<String> ret) {
- if (group == null) return;
- for (int i = 0; i < group.getPreferenceCount(); i++) {
- Preference pref = group.getPreference(i);
- if (pref instanceof SelfAvailablePreference
- && !((SelfAvailablePreference) pref).isAvailable(group.getContext())) {
- ret.add(pref.getKey());
- if (pref instanceof PreferenceGroup) {
- addAll((PreferenceGroup) pref, ret);
- }
- } else if (pref instanceof PreferenceGroup) {
- checkPrefs((PreferenceGroup) pref, ret);
- }
- }
- }
-
- private static void addAll(PreferenceGroup group, List<String> ret) {
- if (group == null) return;
- for (int i = 0; i < group.getPreferenceCount(); i++) {
- Preference pref = group.getPreference(i);
- ret.add(pref.getKey());
- if (pref instanceof PreferenceGroup) {
- addAll((PreferenceGroup) pref, ret);
- }
- }
- }
-
public static boolean isDeviceProvisioned(Context context) {
return Settings.Global.getInt(context.getContentResolver(),
Settings.Global.DEVICE_PROVISIONED, 0) != 0;
@@ -964,14 +758,6 @@
return confirmWorkProfileCredentials(context, userId);
}
- public static boolean confirmWorkProfileCredentialsIfNecessary(Context context, int userId) {
- KeyguardManager km = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE);
- if (!km.isDeviceLocked(userId)) {
- return false;
- }
- return confirmWorkProfileCredentials(context, userId);
- }
-
private static boolean confirmWorkProfileCredentials(Context context, int userId) {
final KeyguardManager km = (KeyguardManager) context.getSystemService(
Context.KEYGUARD_SERVICE);
diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java
index bd63225..2292ca2 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettings.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettings.java
@@ -33,7 +33,6 @@
import android.os.Vibrator;
import android.provider.SearchIndexableResource;
import android.provider.Settings;
-import android.support.annotation.VisibleForTesting;
import android.support.v14.preference.SwitchPreference;
import android.support.v4.content.ContextCompat;
import android.support.v7.preference.ListPreference;
@@ -93,6 +92,8 @@
// Preferences
private static final String TOGGLE_HIGH_TEXT_CONTRAST_PREFERENCE =
"toggle_high_text_contrast_preference";
+ private static final String TOGGLE_INVERSION_PREFERENCE =
+ "toggle_inversion_preference";
private static final String TOGGLE_POWER_BUTTON_ENDS_CALL_PREFERENCE =
"toggle_power_button_ends_call_preference";
private static final String TOGGLE_LOCK_SCREEN_ROTATION_PREFERENCE =
@@ -104,6 +105,8 @@
"toggle_master_mono";
private static final String SELECT_LONG_PRESS_TIMEOUT_PREFERENCE =
"select_long_press_timeout_preference";
+ private static final String ACCESSIBILITY_SHORTCUT_PREFERENCE =
+ "accessibility_shortcut_preference";
private static final String CAPTIONING_PREFERENCE_SCREEN =
"captioning_preference_screen";
private static final String DISPLAY_MAGNIFICATION_PREFERENCE_SCREEN =
@@ -116,13 +119,8 @@
"autoclick_preference_screen";
private static final String VIBRATION_PREFERENCE_SCREEN =
"vibration_preference_screen";
-
- @VisibleForTesting static final String TOGGLE_INVERSION_PREFERENCE =
- "toggle_inversion_preference";
- @VisibleForTesting static final String DISPLAY_DALTONIZER_PREFERENCE_SCREEN =
+ private static final String DISPLAY_DALTONIZER_PREFERENCE_SCREEN =
"daltonizer_preference_screen";
- @VisibleForTesting static final String ACCESSIBILITY_SHORTCUT_PREFERENCE =
- "accessibility_shortcut_preference";
// Extras passed to sub-fragments.
static final String EXTRA_PREFERENCE_KEY = "preference_key";
@@ -627,8 +625,6 @@
displayCategory.addPreference(mToggleInversionPreference);
displayCategory.addPreference(mDisplayDaltonizerPreferenceScreen);
}
- checkColorCorrectionVisibility(mDisplayDaltonizerPreferenceScreen);
- checkColorInversionVisibility(mToggleInversionPreference);
// Text contrast.
mToggleHighTextContrastPreference.setChecked(
@@ -683,7 +679,6 @@
updateAutoclickSummary(mAutoclickPreferenceScreen);
updateAccessibilityShortcut(mAccessibilityShortcutPreferenceScreen);
- checkAccessibilityShortcutVisibility(mAccessibilityShortcutPreferenceScreen);
}
private void updateMagnificationSummary(Preference pref) {
@@ -804,27 +799,6 @@
}
}
- @VisibleForTesting void checkColorCorrectionVisibility(Preference preference) {
- if (!getContext().getResources().getBoolean(
- R.bool.config_show_color_correction_preference)) {
- removePreference(DISPLAY_DALTONIZER_PREFERENCE_SCREEN);
- }
- }
-
- @VisibleForTesting void checkColorInversionVisibility(Preference preference) {
- if (!getContext().getResources().getBoolean(
- R.bool.config_show_color_inversion_preference)) {
- removePreference(TOGGLE_INVERSION_PREFERENCE);
- }
- }
-
- @VisibleForTesting void checkAccessibilityShortcutVisibility(Preference preference) {
- if (!getContext().getResources().getBoolean(
- R.bool.config_show_accessibility_shortcut_preference)) {
- removePreference(ACCESSIBILITY_SHORTCUT_PREFERENCE);
- }
- }
-
private static void configureMagnificationPreferenceIfNeeded(Preference preference) {
// Some devices support only a single magnification mode. In these cases, we redirect to
// the magnification mode's UI directly, rather than showing a PreferenceScreen with a
@@ -860,12 +834,6 @@
keys.add(FONT_SIZE_PREFERENCE_SCREEN);
keys.add(KEY_DISPLAY_SIZE);
- // Remove Accessibility Shortcuts if it's not visible
- if (!context.getResources().getBoolean(
- R.bool.config_show_accessibility_shortcut_preference)) {
- keys.add(ACCESSIBILITY_SHORTCUT_PREFERENCE);
- }
-
// Duplicates in Language & Input
keys.add(TTS_SETTINGS_PREFERENCE);
diff --git a/src/com/android/settings/accessibility/HapticFeedbackIntensityPreferenceController.java b/src/com/android/settings/accessibility/HapticFeedbackIntensityPreferenceController.java
new file mode 100644
index 0000000..020c2a6
--- /dev/null
+++ b/src/com/android/settings/accessibility/HapticFeedbackIntensityPreferenceController.java
@@ -0,0 +1,43 @@
+/*
+ * 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.accessibility;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.annotation.VisibleForTesting;
+
+public class HapticFeedbackIntensityPreferenceController
+ extends VibrationIntensityPreferenceController {
+
+ @VisibleForTesting
+ static final String PREF_KEY = "touch_vibration_preference_screen";
+
+ public HapticFeedbackIntensityPreferenceController(Context context) {
+ super(context, PREF_KEY, Settings.System.HAPTIC_FEEDBACK_INTENSITY);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+
+ @Override
+ protected int getDefaultIntensity() {
+ return mVibrator.getDefaultHapticFeedbackIntensity();
+ }
+
+}
diff --git a/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceController.java b/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceController.java
new file mode 100644
index 0000000..a016478
--- /dev/null
+++ b/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceController.java
@@ -0,0 +1,42 @@
+/*
+ * 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.accessibility;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.annotation.VisibleForTesting;
+
+public class NotificationVibrationIntensityPreferenceController
+ extends VibrationIntensityPreferenceController {
+
+ @VisibleForTesting
+ static final String PREF_KEY = "notification_vibration_preference_screen";
+
+ public NotificationVibrationIntensityPreferenceController(Context context) {
+ super(context, PREF_KEY, Settings.System.NOTIFICATION_VIBRATION_INTENSITY);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+
+ @Override
+ protected int getDefaultIntensity() {
+ return mVibrator.getDefaultNotificationVibrationIntensity();
+ }
+}
diff --git a/src/com/android/settings/accessibility/VibrationIntensityPreferenceController.java b/src/com/android/settings/accessibility/VibrationIntensityPreferenceController.java
new file mode 100644
index 0000000..e12c60a
--- /dev/null
+++ b/src/com/android/settings/accessibility/VibrationIntensityPreferenceController.java
@@ -0,0 +1,114 @@
+/*
+ * 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.accessibility;
+
+import android.content.Context;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Vibrator;
+import android.provider.Settings;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+public abstract class VibrationIntensityPreferenceController extends BasePreferenceController
+ implements LifecycleObserver, OnStart, OnStop {
+
+ protected final Vibrator mVibrator;
+ private final SettingObserver mSettingsContentObserver;
+ private final String mSettingKey;
+
+ private Preference mPreference;
+
+ public VibrationIntensityPreferenceController(Context context, String prefkey,
+ String settingKey) {
+ super(context, prefkey);
+ mVibrator = mContext.getSystemService(Vibrator.class);
+ mSettingKey = settingKey;
+ mSettingsContentObserver = new SettingObserver(settingKey) {
+ @Override
+ public void onChange(boolean selfChange, Uri uri) {
+ updateState(null);
+ }
+ };
+ }
+
+ @Override
+ public void onStart() {
+ mContext.getContentResolver().registerContentObserver(
+ mSettingsContentObserver.uri,
+ false /* notifyForDescendants */,
+ mSettingsContentObserver);
+ }
+
+ @Override
+ public void onStop() {
+ mContext.getContentResolver().unregisterContentObserver(mSettingsContentObserver);
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = screen.findPreference(getPreferenceKey());
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ if (mPreference == null) {
+ return;
+ }
+ mPreference.setSummary(getSummary());
+ }
+
+ @Override
+ public String getSummary() {
+ final int intensity = Settings.System.getInt(mContext.getContentResolver(),
+ mSettingKey, getDefaultIntensity());
+
+ switch (intensity) {
+ case Vibrator.VIBRATION_INTENSITY_OFF:
+ return mContext.getString(R.string.accessibility_vibration_intensity_off);
+ case Vibrator.VIBRATION_INTENSITY_LOW:
+ return mContext.getString(R.string.accessibility_vibration_intensity_low);
+ case Vibrator.VIBRATION_INTENSITY_MEDIUM:
+ return mContext.getString(R.string.accessibility_vibration_intensity_medium);
+ case Vibrator.VIBRATION_INTENSITY_HIGH:
+ return mContext.getString(R.string.accessibility_vibration_intensity_high);
+ default:
+ return "";
+ }
+ }
+
+ protected abstract int getDefaultIntensity();
+
+ private static class SettingObserver extends ContentObserver {
+
+ public final Uri uri;
+
+ public SettingObserver(String settingKey) {
+ super(new Handler(Looper.getMainLooper()));
+ uri = Settings.System.getUriFor(settingKey);
+ }
+ }
+}
diff --git a/src/com/android/settings/accessibility/VibrationSettings.java b/src/com/android/settings/accessibility/VibrationSettings.java
index 8aa4513..738f218 100644
--- a/src/com/android/settings/accessibility/VibrationSettings.java
+++ b/src/com/android/settings/accessibility/VibrationSettings.java
@@ -17,54 +17,24 @@
package com.android.settings.accessibility;
import android.content.Context;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Vibrator;
import android.provider.SearchIndexableResource;
-import android.provider.Settings;
-import android.support.annotation.VisibleForTesting;
-import android.support.v7.preference.Preference;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
-import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.search.Indexable;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.core.lifecycle.Lifecycle;
import java.util.ArrayList;
import java.util.List;
/**
- * Activity with the accessibility settings.
+ * Accessibility settings for the vibration.
*/
-public class VibrationSettings extends SettingsPreferenceFragment implements Indexable {
+public class VibrationSettings extends DashboardFragment {
- // Preferences
- @VisibleForTesting
- static final String NOTIFICATION_VIBRATION_PREFERENCE_SCREEN =
- "notification_vibration_preference_screen";
- @VisibleForTesting
- static final String TOUCH_VIBRATION_PREFERENCE_SCREEN =
- "touch_vibration_preference_screen";
-
- private final Handler mHandler = new Handler();
- private final SettingsContentObserver mSettingsContentObserver;
-
- private Preference mNotificationVibrationPreferenceScreen;
- private Preference mTouchVibrationPreferenceScreen;
-
- public VibrationSettings() {
- List<String> vibrationSettings = new ArrayList<>();
- vibrationSettings.add(Settings.System.HAPTIC_FEEDBACK_INTENSITY);
- vibrationSettings.add(Settings.System.NOTIFICATION_VIBRATION_INTENSITY);
- mSettingsContentObserver = new SettingsContentObserver(mHandler, vibrationSettings) {
- @Override
- public void onChange(boolean selfChange, Uri uri) {
- updatePreferences();
- }
- };
- }
+ private static final String TAG = "VibrationSettings";
@Override
public int getMetricsCategory() {
@@ -72,70 +42,35 @@
}
@Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- addPreferencesFromResource(R.xml.accessibility_vibration_settings);
- initializePreferences();
+ protected int getPreferenceScreenResId() {
+ return R.xml.accessibility_vibration_settings;
}
@Override
- public void onResume() {
- super.onResume();
- updatePreferences();
- mSettingsContentObserver.register(getContentResolver());
+ protected String getLogTag() {
+ return TAG;
}
@Override
- public void onPause() {
- mSettingsContentObserver.unregister(getContentResolver());
- super.onPause();
+ protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
+ return buildControllers(context, getLifecycle());
}
- private void initializePreferences() {
- // Notification and notification vibration strength adjustments.
- mNotificationVibrationPreferenceScreen =
- findPreference(NOTIFICATION_VIBRATION_PREFERENCE_SCREEN);
+ public static List<AbstractPreferenceController> buildControllers(Context context,
+ Lifecycle lifecycle) {
- // Touch feedback strength adjustments.
- mTouchVibrationPreferenceScreen = findPreference(TOUCH_VIBRATION_PREFERENCE_SCREEN);
- }
-
- private void updatePreferences() {
- updateNotificationVibrationSummary(mNotificationVibrationPreferenceScreen);
- updateTouchVibrationSummary(mTouchVibrationPreferenceScreen);
- }
-
- private void updateNotificationVibrationSummary(Preference pref) {
- Vibrator vibrator = getContext().getSystemService(Vibrator.class);
- final int intensity = Settings.System.getInt(getContext().getContentResolver(),
- Settings.System.NOTIFICATION_VIBRATION_INTENSITY,
- vibrator.getDefaultNotificationVibrationIntensity());
- CharSequence summary = getVibrationIntensitySummary(getContext(), intensity);
- mNotificationVibrationPreferenceScreen.setSummary(summary);
- }
-
- private void updateTouchVibrationSummary(Preference pref) {
- Vibrator vibrator = getContext().getSystemService(Vibrator.class);
- final int intensity = Settings.System.getInt(getContext().getContentResolver(),
- Settings.System.HAPTIC_FEEDBACK_INTENSITY,
- vibrator.getDefaultHapticFeedbackIntensity());
- CharSequence summary = getVibrationIntensitySummary(getContext(), intensity);
- mTouchVibrationPreferenceScreen.setSummary(summary);
- }
-
- public static String getVibrationIntensitySummary(Context context, int intensity) {
- switch (intensity) {
- case Vibrator.VIBRATION_INTENSITY_OFF:
- return context.getString(R.string.accessibility_vibration_intensity_off);
- case Vibrator.VIBRATION_INTENSITY_LOW:
- return context.getString(R.string.accessibility_vibration_intensity_low);
- case Vibrator.VIBRATION_INTENSITY_MEDIUM:
- return context.getString(R.string.accessibility_vibration_intensity_medium);
- case Vibrator.VIBRATION_INTENSITY_HIGH:
- return context.getString(R.string.accessibility_vibration_intensity_high);
- default:
- return "";
+ final List<AbstractPreferenceController> controllers = new ArrayList<>();
+ final NotificationVibrationIntensityPreferenceController notifVibPrefController =
+ new NotificationVibrationIntensityPreferenceController(context);
+ final HapticFeedbackIntensityPreferenceController hapticPreferenceController =
+ new HapticFeedbackIntensityPreferenceController(context);
+ controllers.add(hapticPreferenceController);
+ controllers.add(notifVibPrefController);
+ if (lifecycle != null) {
+ lifecycle.addObserver(hapticPreferenceController);
+ lifecycle.addObserver(notifVibPrefController);
}
+ return controllers;
}
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
@@ -149,5 +84,11 @@
indexables.add(indexable);
return indexables;
}
+
+ @Override
+ public List<AbstractPreferenceController> getPreferenceControllers(
+ Context context) {
+ return buildControllers(context, null /* lifecycle */);
+ }
};
}
diff --git a/src/com/android/settings/accounts/AccountSyncPreferenceController.java b/src/com/android/settings/accounts/AccountSyncPreferenceController.java
index 3eed037..c770713 100644
--- a/src/com/android/settings/accounts/AccountSyncPreferenceController.java
+++ b/src/com/android/settings/accounts/AccountSyncPreferenceController.java
@@ -30,8 +30,8 @@
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
-import com.android.settings.Utils;
import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settingslib.accounts.AuthenticatorHelper;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -43,7 +43,6 @@
private Account mAccount;
private UserHandle mUserHandle;
- private AuthenticatorHelper mAuthenticatorHelper;
private Preference mPreference;
public AccountSyncPreferenceController(Context context) {
@@ -63,8 +62,12 @@
final Bundle args = new Bundle();
args.putParcelable(AccountSyncSettings.ACCOUNT_KEY, mAccount);
args.putParcelable(EXTRA_USER, mUserHandle);
- Utils.startWithFragment(mContext, AccountSyncSettings.class.getName(), args, null, 0,
- R.string.account_sync_title, null, MetricsProto.MetricsEvent.ACCOUNT);
+ new SubSettingLauncher(mContext)
+ .setDestination(AccountSyncSettings.class.getName())
+ .setArguments(args)
+ .setSourceMetricsCategory( MetricsProto.MetricsEvent.ACCOUNT)
+ .setTitle( R.string.account_sync_title)
+ .launch();
return true;
}
@@ -93,7 +96,6 @@
public void init(Account account, UserHandle userHandle) {
mAccount = account;
mUserHandle = userHandle;
- mAuthenticatorHelper = new AuthenticatorHelper(mContext, mUserHandle, this);
}
@VisibleForTesting
diff --git a/src/com/android/settings/applications/AppInfoBase.java b/src/com/android/settings/applications/AppInfoBase.java
index 0c96171..fb63df2 100644
--- a/src/com/android/settings/applications/AppInfoBase.java
+++ b/src/com/android/settings/applications/AppInfoBase.java
@@ -43,8 +43,8 @@
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.SettingsActivity;
import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.Utils;
import com.android.settings.applications.manageapplications.ManageApplications;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
@@ -128,23 +128,27 @@
protected String retrieveAppEntry() {
final Bundle args = getArguments();
mPackageName = (args != null) ? args.getString(ARG_PACKAGE_NAME) : null;
+ Intent intent = (args == null) ?
+ getIntent() : (Intent) args.getParcelable("intent");
if (mPackageName == null) {
- Intent intent = (args == null) ?
- getActivity().getIntent() : (Intent) args.getParcelable("intent");
if (intent != null && intent.getData() != null) {
mPackageName = intent.getData().getSchemeSpecificPart();
}
}
- mUserId = UserHandle.myUserId();
+ if (intent != null && intent.hasExtra(Intent.EXTRA_USER_HANDLE)) {
+ mUserId = ((UserHandle) intent.getParcelableExtra(
+ Intent.EXTRA_USER_HANDLE)).getIdentifier();
+ } else {
+ mUserId = UserHandle.myUserId();
+ }
mAppEntry = mState.getEntry(mPackageName, mUserId);
if (mAppEntry != null) {
// Get application info again to refresh changed properties of application
try {
- mPackageInfo = mPm.getPackageInfo(mAppEntry.info.packageName,
+ mPackageInfo = mPm.getPackageInfoAsUser(mAppEntry.info.packageName,
PackageManager.MATCH_DISABLED_COMPONENTS |
- PackageManager.MATCH_ANY_USER |
- PackageManager.GET_SIGNATURES |
- PackageManager.GET_PERMISSIONS);
+ PackageManager.GET_SIGNING_CERTIFICATES |
+ PackageManager.GET_PERMISSIONS, mUserId);
} catch (NameNotFoundException e) {
Log.e(TAG, "Exception when retrieving package:" + mAppEntry.info.packageName, e);
}
@@ -161,7 +165,7 @@
Intent intent = new Intent();
intent.putExtra(ManageApplications.APP_CHG, appChanged);
SettingsActivity sa = (SettingsActivity)getActivity();
- sa.finishPreferencePanel(this, Activity.RESULT_OK, intent);
+ sa.finishPreferencePanel(Activity.RESULT_OK, intent);
mFinishing = true;
}
@@ -218,20 +222,18 @@
public static void startAppInfoFragment(Class<?> fragment, int titleRes,
String pkg, int uid, Fragment source, int request, int sourceMetricsCategory) {
- startAppInfoFragment(fragment, titleRes, pkg, uid, source.getActivity(), request,
- sourceMetricsCategory);
- }
-
- public static void startAppInfoFragment(Class<?> fragment, int titleRes,
- String pkg, int uid, Activity source, int request, int sourceMetricsCategory) {
- Bundle args = new Bundle();
+ final Bundle args = new Bundle();
args.putString(AppInfoBase.ARG_PACKAGE_NAME, pkg);
args.putInt(AppInfoBase.ARG_PACKAGE_UID, uid);
- Intent intent = Utils.onBuildStartFragmentIntent(source, fragment.getName(),
- args, null, titleRes, null, false, sourceMetricsCategory);
- source.startActivityForResultAsUser(intent, request,
- new UserHandle(UserHandle.getUserId(uid)));
+ new SubSettingLauncher(source.getContext())
+ .setDestination(fragment.getName())
+ .setSourceMetricsCategory(sourceMetricsCategory)
+ .setTitle(titleRes)
+ .setArguments(args)
+ .setUserHandle(new UserHandle(UserHandle.getUserId(uid)))
+ .setResultListener(source, request)
+ .launch();
}
public static class MyAlertDialogFragment extends InstrumentedDialogFragment {
diff --git a/src/com/android/settings/applications/ApplicationFeatureProvider.java b/src/com/android/settings/applications/ApplicationFeatureProvider.java
index eae23d1..3ffacb0 100644
--- a/src/com/android/settings/applications/ApplicationFeatureProvider.java
+++ b/src/com/android/settings/applications/ApplicationFeatureProvider.java
@@ -17,11 +17,7 @@
package com.android.settings.applications;
import android.annotation.UserIdInt;
-import android.app.Fragment;
import android.content.Intent;
-import android.view.View;
-
-import com.android.settings.applications.instantapps.InstantAppButtonsController;
import java.util.List;
import java.util.Set;
@@ -29,13 +25,6 @@
public interface ApplicationFeatureProvider {
/**
- * Returns a new {@link InstantAppButtonsController} instance for showing buttons
- * only relevant to instant apps.
- */
- InstantAppButtonsController newInstantAppButtonsController(Fragment fragment,
- View view, InstantAppButtonsController.ShowDialogDelegate showDialogDelegate);
-
- /**
* Calculates the total number of apps installed on the device via policy in the current user
* and all its managed profiles.
*
diff --git a/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java b/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java
index 5323cd5..e1f434e 100644
--- a/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java
+++ b/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java
@@ -16,7 +16,6 @@
package com.android.settings.applications;
-import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ComponentInfo;
@@ -26,9 +25,7 @@
import android.os.RemoteException;
import android.os.UserManager;
import android.util.ArraySet;
-import android.view.View;
-import com.android.settings.applications.instantapps.InstantAppButtonsController;
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
import com.android.settings.wrapper.IPackageManagerWrapper;
import com.android.settingslib.wrapper.PackageManagerWrapper;
@@ -55,12 +52,6 @@
}
@Override
- public InstantAppButtonsController newInstantAppButtonsController(Fragment fragment,
- View view, InstantAppButtonsController.ShowDialogDelegate showDialogDelegate) {
- return new InstantAppButtonsController(mContext, fragment, view, showDialogDelegate);
- }
-
- @Override
public void calculateNumberOfPolicyInstalledApps(boolean async, NumberOfAppsCallback callback) {
final CurrentUserAndManagedProfilePolicyInstalledAppCounter counter =
new CurrentUserAndManagedProfilePolicyInstalledAppCounter(mContext, mPm, callback);
diff --git a/src/com/android/settings/applications/ShortcutPreference.java b/src/com/android/settings/applications/ShortcutPreference.java
deleted file mode 100644
index 9505e89..0000000
--- a/src/com/android/settings/applications/ShortcutPreference.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the
- * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package com.android.settings.applications;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.support.v7.preference.Preference;
-
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.SettingsActivity;
-import com.android.settings.Utils;
-import com.android.settings.applications.appinfo.DefaultAppShortcutPreferenceControllerBase;
-
-/**
- * deprecated in favor of {@link DefaultAppShortcutPreferenceControllerBase}
- */
-@Deprecated
-public class ShortcutPreference extends Preference {
-
- private final Class mTarget;
- private final String mPrefKey;
- private final int mTitle;
-
- public ShortcutPreference(Context context, Class target, String prefKey, int prefTitle,
- int title) {
- super(context);
- mTarget = target;
- mPrefKey = prefKey;
- mTitle = title;
- setTitle(prefTitle);
- setKey(mPrefKey);
- }
-
- @Override
- public void performClick() {
- super.performClick();
- Bundle bundle = new Bundle();
- bundle.putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, mPrefKey);
- Utils.startWithFragment(getContext(), mTarget.getName(), bundle, null, 0,
- mTitle, null, MetricsProto.MetricsEvent.VIEW_UNKNOWN);
- }
-}
diff --git a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
index 9802968..8c998e9 100755
--- a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
+++ b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
@@ -86,6 +86,7 @@
@VisibleForTesting static final int UNINSTALL_ALL_USERS_MENU = 1;
@VisibleForTesting static final int UNINSTALL_UPDATES = 2;
static final int FORCE_STOP_MENU = 3;
+ static final int INSTALL_INSTANT_APP_MENU = 4;
// Result code identifiers
@VisibleForTesting
@@ -103,6 +104,7 @@
static final int DLG_FORCE_STOP = DLG_BASE + 1;
private static final int DLG_DISABLE = DLG_BASE + 2;
private static final int DLG_SPECIAL_DISABLE = DLG_BASE + 3;
+ static final int DLG_CLEAR_INSTANT_APP = DLG_BASE + 4;
private static final String KEY_ADVANCED_APP_INFO_CATEGORY = "advanced_app_info";
@@ -244,7 +246,7 @@
// The following are controllers for preferences that don't need to refresh the preference
// state when app state changes.
mInstantAppButtonPreferenceController =
- new InstantAppButtonsPreferenceController(context, this, packageName);
+ new InstantAppButtonsPreferenceController(context, this, packageName, lifecycle);
controllers.add(mInstantAppButtonPreferenceController);
controllers.add(new AppBatteryPreferenceController(context, this, packageName, lifecycle));
controllers.add(new AppMemoryPreferenceController(context, this, lifecycle));
@@ -674,7 +676,7 @@
final Intent intent = new Intent();
intent.putExtra(ManageApplications.APP_CHG, appChanged);
final SettingsActivity sa = (SettingsActivity)getActivity();
- sa.finishPreferencePanel(this, Activity.RESULT_OK, intent);
+ sa.finishPreferencePanel(Activity.RESULT_OK, intent);
mFinishing = true;
}
diff --git a/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java b/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java
index 873c98c..7d3f946 100644
--- a/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java
+++ b/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java
@@ -23,9 +23,9 @@
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
-import com.android.settings.Utils;
import com.android.settings.applications.DefaultAppSettings;
import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.SubSettingLauncher;
/*
* Abstract base controller for the default app shortcut preferences that launches the default app
@@ -63,10 +63,14 @@
@Override
public boolean handlePreferenceTreeClick(Preference preference) {
if (TextUtils.equals(mPreferenceKey, preference.getKey())) {
- Bundle bundle = new Bundle();
+ final Bundle bundle = new Bundle();
bundle.putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, mPreferenceKey);
- Utils.startWithFragment(mContext, DefaultAppSettings.class.getName(), bundle, null, 0,
- R.string.configure_apps, null, MetricsProto.MetricsEvent.VIEW_UNKNOWN);
+ new SubSettingLauncher(mContext)
+ .setDestination(DefaultAppSettings.class.getName())
+ .setArguments(bundle)
+ .setTitle(R.string.configure_apps)
+ .setSourceMetricsCategory(MetricsProto.MetricsEvent.VIEW_UNKNOWN)
+ .launch();
return true;
}
return false;
diff --git a/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceController.java b/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceController.java
index b9fe003..df64d76 100644
--- a/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceController.java
@@ -18,30 +18,62 @@
import android.app.AlertDialog;
import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.UserHandle;
import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.PreferenceScreen;
+import android.text.TextUtils;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.Button;
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
-import com.android.settings.applications.ApplicationFeatureProvider;
+import com.android.settings.applications.AppStoreUtil;
import com.android.settings.applications.LayoutPreference;
-import com.android.settings.applications.instantapps.InstantAppButtonsController;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.applications.AppUtils;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnCreateOptionsMenu;
+import com.android.settingslib.core.lifecycle.events.OnOptionsItemSelected;
+import com.android.settingslib.core.lifecycle.events.OnPrepareOptionsMenu;
+import com.android.settingslib.wrapper.PackageManagerWrapper;
-public class InstantAppButtonsPreferenceController extends BasePreferenceController {
+import java.util.List;
+
+public class InstantAppButtonsPreferenceController extends BasePreferenceController implements
+ LifecycleObserver, OnCreateOptionsMenu, OnPrepareOptionsMenu, OnOptionsItemSelected,
+ DialogInterface.OnClickListener {
private static final String KEY_INSTANT_APP_BUTTONS = "instant_app_buttons";
+ private static final String META_DATA_DEFAULT_URI = "default-url";
private final AppInfoDashboardFragment mParent;
private final String mPackageName;
- private InstantAppButtonsController mInstantAppButtonsController;
+ private final PackageManagerWrapper mPackageManagerWrapper;
+ private String mLaunchUri;
+ private LayoutPreference mPreference;
+ private MenuItem mInstallMenu;
public InstantAppButtonsPreferenceController(Context context, AppInfoDashboardFragment parent,
- String packageName) {
+ String packageName, Lifecycle lifecycle) {
super(context, KEY_INSTANT_APP_BUTTONS);
mParent = parent;
mPackageName = packageName;
+ mPackageManagerWrapper = new PackageManagerWrapper(context.getPackageManager());
+ mLaunchUri = getDefaultLaunchUri();
+ if (lifecycle != null) {
+ lifecycle.addObserver(this);
+ }
}
@Override
@@ -53,22 +85,99 @@
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
- LayoutPreference buttons =
- (LayoutPreference) screen.findPreference(KEY_INSTANT_APP_BUTTONS);
- mInstantAppButtonsController = getApplicationFeatureProvider()
- .newInstantAppButtonsController(mParent,
- buttons.findViewById(R.id.instant_app_button_container),
- id -> mParent.showDialogInner(id, 0))
- .setPackageName(mPackageName)
- .show();
+ mPreference = (LayoutPreference) screen.findPreference(KEY_INSTANT_APP_BUTTONS);
+ initButtons(mPreference.findViewById(R.id.instant_app_button_container));
}
- public AlertDialog createDialog(int id) {
- return mInstantAppButtonsController.createDialog(id);
+ @Override
+ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+ if (!TextUtils.isEmpty(mLaunchUri)) {
+ menu.add(0, AppInfoDashboardFragment.INSTALL_INSTANT_APP_MENU, 2, R.string.install_text)
+ .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
+ }
}
- @VisibleForTesting
- ApplicationFeatureProvider getApplicationFeatureProvider() {
- return FeatureFactory.getFactory(mContext).getApplicationFeatureProvider(mContext);
+ @Override
+ public boolean onOptionsItemSelected(MenuItem menuItem) {
+ if (menuItem.getItemId() == AppInfoDashboardFragment.INSTALL_INSTANT_APP_MENU) {
+ final Intent appStoreIntent = AppStoreUtil.getAppStoreLink(mContext, mPackageName);
+ if (appStoreIntent != null) {
+ mParent.startActivity(appStoreIntent);
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public void onPrepareOptionsMenu(Menu menu) {
+ mInstallMenu = menu.findItem(AppInfoDashboardFragment.INSTALL_INSTANT_APP_MENU);
+ if (mInstallMenu != null) {
+ if (AppStoreUtil.getAppStoreLink(mContext, mPackageName) == null) {
+ mInstallMenu.setEnabled(false);
+ }
+ }
+ }
+
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ FeatureFactory.getFactory(mContext).getMetricsFeatureProvider()
+ .action(mContext, MetricsEvent.ACTION_SETTINGS_CLEAR_INSTANT_APP, mPackageName);
+ mPackageManagerWrapper.deletePackageAsUser(
+ mPackageName, null, 0, UserHandle.myUserId());
+ }
+
+ AlertDialog createDialog(int id) {
+ if (id == AppInfoDashboardFragment.DLG_CLEAR_INSTANT_APP) {
+ AlertDialog confirmDialog = new AlertDialog.Builder(mContext)
+ .setPositiveButton(R.string.clear_instant_app_data, this)
+ .setNegativeButton(R.string.cancel, null)
+ .setTitle(R.string.clear_instant_app_data)
+ .setMessage(mContext.getString(R.string.clear_instant_app_confirmation))
+ .create();
+ return confirmDialog;
+ }
+ return null;
+ }
+
+ private void initButtons(View view) {
+ final Button installButton = view.findViewById(R.id.install);
+ final Button clearDataButton = view.findViewById(R.id.clear_data);
+ final Button launchButton = view.findViewById(R.id.launch);
+ if (!TextUtils.isEmpty(mLaunchUri)) {
+ installButton.setVisibility(View.GONE);
+ final Intent intent = new Intent(Intent.ACTION_VIEW);
+ intent.setData(Uri.parse(mLaunchUri));
+ launchButton.setOnClickListener(v -> mParent.startActivity(intent));
+ } else {
+ launchButton.setVisibility(View.GONE);
+ final Intent appStoreIntent = AppStoreUtil.getAppStoreLink(mContext, mPackageName);
+ if (appStoreIntent != null) {
+ installButton.setOnClickListener(v -> mParent.startActivity(appStoreIntent));
+ } else {
+ installButton.setEnabled(false);
+ }
+ }
+ clearDataButton.setOnClickListener(
+ v -> mParent.showDialogInner(mParent.DLG_CLEAR_INSTANT_APP, 0));
+ }
+
+ private String getDefaultLaunchUri() {
+ final PackageManager manager = mContext.getPackageManager();
+ final Intent intent = new Intent(Intent.ACTION_MAIN);
+ intent.addCategory(Intent.CATEGORY_LAUNCHER);
+ intent.setPackage(mPackageName);
+ final List<ResolveInfo> infos = manager.queryIntentActivities(
+ intent, PackageManager.GET_META_DATA | PackageManager.MATCH_INSTANT);
+ for (ResolveInfo info : infos) {
+ final Bundle metaData = info.activityInfo.metaData;
+ if (metaData != null) {
+ final String launchUri = metaData.getString(META_DATA_DEFAULT_URI);
+ if (!TextUtils.isEmpty(launchUri)) {
+ return launchUri;
+ }
+ }
+ }
+ return null;
}
}
diff --git a/src/com/android/settings/applications/appinfo/PictureInPictureDetailPreferenceController.java b/src/com/android/settings/applications/appinfo/PictureInPictureDetailPreferenceController.java
index 1873683..202317a 100644
--- a/src/com/android/settings/applications/appinfo/PictureInPictureDetailPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/PictureInPictureDetailPreferenceController.java
@@ -20,7 +20,6 @@
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.UserHandle;
-import android.os.UserManager;
import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference;
import android.util.Log;
@@ -44,9 +43,6 @@
@Override
public int getAvailabilityStatus() {
- if (UserManager.get(mContext).isManagedProfile()) {
- return DISABLED_FOR_USER;
- }
return hasPictureInPictureActivites() ? AVAILABLE : DISABLED_FOR_USER;
}
diff --git a/src/com/android/settings/applications/instantapps/InstantAppButtonsController.java b/src/com/android/settings/applications/instantapps/InstantAppButtonsController.java
deleted file mode 100644
index 42474a8..0000000
--- a/src/com/android/settings/applications/instantapps/InstantAppButtonsController.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.applications.instantapps;
-
-import android.app.AlertDialog;
-import android.app.Fragment;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.os.UserHandle;
-import android.view.View;
-import android.widget.Button;
-
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.R;
-import com.android.settings.applications.AppStoreUtil;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.wrapper.PackageManagerWrapper;
-
-/** Encapsulates a container for buttons relevant to instant apps */
-public class InstantAppButtonsController implements DialogInterface.OnClickListener {
-
- public interface ShowDialogDelegate {
- /**
- * Delegate that should be called when this controller wants to show a dialog.
- */
- void showDialog(int id);
- }
-
- private final Context mContext;
- private final Fragment mFragment;
- private final View mView;
- private final PackageManagerWrapper mPackageManagerWrapper;
- private final ShowDialogDelegate mShowDialogDelegate;
- private String mPackageName;
-
- public static final int DLG_BASE = 0x5032;
- public static final int DLG_CLEAR_APP = DLG_BASE + 1;
-
- public InstantAppButtonsController(
- Context context,
- Fragment fragment,
- View view,
- ShowDialogDelegate showDialogDelegate) {
- mContext = context;
- mFragment = fragment;
- mView = view;
- mShowDialogDelegate = showDialogDelegate;
- mPackageManagerWrapper = new PackageManagerWrapper(context.getPackageManager());
- }
-
- public InstantAppButtonsController setPackageName(String packageName) {
- mPackageName = packageName;
- return this;
- }
-
- public void bindButtons() {
- Button installButton = (Button)mView.findViewById(R.id.install);
- Button clearDataButton = (Button)mView.findViewById(R.id.clear_data);
- Intent appStoreIntent = AppStoreUtil.getAppStoreLink(mContext, mPackageName);
- if (appStoreIntent != null) {
- installButton.setEnabled(true);
- installButton.setOnClickListener(v -> mFragment.startActivity(appStoreIntent));
- }
-
- clearDataButton.setOnClickListener(v -> mShowDialogDelegate.showDialog(DLG_CLEAR_APP));
- }
-
- public AlertDialog createDialog(int id) {
- if (id == DLG_CLEAR_APP) {
- AlertDialog dialog = new AlertDialog.Builder(mFragment.getActivity())
- .setPositiveButton(R.string.clear_instant_app_data, this)
- .setNegativeButton(R.string.cancel, null)
- .setTitle(R.string.clear_instant_app_data)
- .setMessage(mContext.getString(R.string.clear_instant_app_confirmation))
- .create();
- return dialog;
- }
- return null;
- }
-
- public void onClick(DialogInterface dialog, int which) {
- if (which == DialogInterface.BUTTON_POSITIVE) {
- FeatureFactory.getFactory(mContext)
- .getMetricsFeatureProvider()
- .action(mContext,
- MetricsEvent.ACTION_SETTINGS_CLEAR_INSTANT_APP,
- mPackageName);
- mPackageManagerWrapper.deletePackageAsUser(
- mPackageName, null, 0, UserHandle.myUserId());
- }
- }
-
- public InstantAppButtonsController show() {
- bindButtons();
- mView.setVisibility(View.VISIBLE);
- return this;
- }
-}
diff --git a/src/com/android/settings/connecteddevice/usb/UsbBackend.java b/src/com/android/settings/connecteddevice/usb/UsbBackend.java
index cdfb6b0..d204c17 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbBackend.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbBackend.java
@@ -21,10 +21,12 @@
import android.hardware.usb.UsbPort;
import android.hardware.usb.UsbPortStatus;
import android.net.ConnectivityManager;
-import android.os.UserHandle;
import android.os.UserManager;
import android.support.annotation.VisibleForTesting;
+import com.android.settings.wrapper.UsbManagerWrapper;
+import com.android.settings.wrapper.UserManagerWrapper;
+
public class UsbBackend {
public static final int MODE_POWER_MASK = 0x01;
@@ -47,31 +49,31 @@
private UsbManager mUsbManager;
@VisibleForTesting
- UsbManagerPassThrough mUsbManagerPassThrough;
+ UsbManagerWrapper mUsbManagerWrapper;
private UsbPort mPort;
private UsbPortStatus mPortStatus;
private Context mContext;
public UsbBackend(Context context) {
- this(context, new UserRestrictionUtil(context), null);
+ this(context, new UserManagerWrapper(UserManager.get(context)), null);
}
@VisibleForTesting
- public UsbBackend(Context context, UserRestrictionUtil userRestrictionUtil,
- UsbManagerPassThrough usbManagerPassThrough) {
+ public UsbBackend(Context context, UserManagerWrapper userManagerWrapper,
+ UsbManagerWrapper usbManagerWrapper) {
mContext = context;
mUsbManager = context.getSystemService(UsbManager.class);
- mUsbManagerPassThrough = usbManagerPassThrough;
- if (mUsbManagerPassThrough == null) {
- mUsbManagerPassThrough = new UsbManagerPassThrough(mUsbManager);
+ mUsbManagerWrapper = usbManagerWrapper;
+ if (mUsbManagerWrapper == null) {
+ mUsbManagerWrapper = new UsbManagerWrapper(mUsbManager);
}
- mFileTransferRestricted = userRestrictionUtil.isUsbFileTransferRestricted();
- mFileTransferRestrictedBySystem = userRestrictionUtil.isUsbFileTransferRestrictedBySystem();
- mTetheringRestricted = userRestrictionUtil.isUsbTetheringRestricted();
- mTetheringRestrictedBySystem = userRestrictionUtil.isUsbTetheringRestrictedBySystem();
+ mFileTransferRestricted = userManagerWrapper.isUsbFileTransferRestricted();
+ mFileTransferRestrictedBySystem = userManagerWrapper.isUsbFileTransferRestrictedBySystem();
+ mTetheringRestricted = userManagerWrapper.isUsbTetheringRestricted();
+ mTetheringRestrictedBySystem = userManagerWrapper.isUsbTetheringRestrictedBySystem();
mMidiSupported = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_MIDI);
ConnectivityManager cm =
@@ -106,37 +108,15 @@
}
public int getUsbDataMode() {
- long functions = mUsbManagerPassThrough.getCurrentFunctions();
- if (functions == UsbManager.FUNCTION_MTP) {
- return MODE_DATA_MTP;
- } else if (functions == UsbManager.FUNCTION_PTP) {
- return MODE_DATA_PTP;
- } else if (functions == UsbManager.FUNCTION_MIDI) {
- return MODE_DATA_MIDI;
- } else if (functions == UsbManager.FUNCTION_RNDIS) {
- return MODE_DATA_TETHER;
- }
- return MODE_DATA_NONE;
+ return usbFunctionToMode(mUsbManagerWrapper.getCurrentFunctions());
}
- private void setUsbFunction(int mode) {
- switch (mode) {
- case MODE_DATA_MTP:
- mUsbManager.setCurrentFunctions(UsbManager.FUNCTION_MTP);
- break;
- case MODE_DATA_PTP:
- mUsbManager.setCurrentFunctions(UsbManager.FUNCTION_PTP);
- break;
- case MODE_DATA_MIDI:
- mUsbManager.setCurrentFunctions(UsbManager.FUNCTION_MIDI);
- break;
- case MODE_DATA_TETHER:
- mUsbManager.setCurrentFunctions(UsbManager.FUNCTION_RNDIS);
- break;
- default:
- mUsbManager.setCurrentFunctions(UsbManager.FUNCTION_NONE);
- break;
- }
+ public void setDefaultUsbMode(int mode) {
+ mUsbManager.setScreenUnlockedFunctions(modeToUsbFunction(mode & MODE_DATA_MASK));
+ }
+
+ public int getDefaultUsbMode() {
+ return usbFunctionToMode(mUsbManager.getScreenUnlockedFunctions());
}
public void setMode(int mode) {
@@ -153,11 +133,6 @@
setUsbFunction(mode & MODE_DATA_MASK);
}
- private int modeToPower(int mode) {
- return (mode & MODE_POWER_MASK) == MODE_POWER_SOURCE
- ? UsbPort.POWER_ROLE_SOURCE : UsbPort.POWER_ROLE_SINK;
- }
-
public boolean isModeDisallowed(int mode) {
if (mFileTransferRestricted && ((mode & MODE_DATA_MASK) == MODE_DATA_MTP
|| (mode & MODE_DATA_MASK) == MODE_DATA_PTP)) {
@@ -201,47 +176,40 @@
return (mode & MODE_POWER_MASK) != MODE_POWER_SOURCE;
}
- // Wrapper class to enable testing with UserManager APIs
- public static class UserRestrictionUtil {
- private UserManager mUserManager;
-
- public UserRestrictionUtil(Context context) {
- mUserManager = UserManager.get(context);
+ private static int usbFunctionToMode(long functions) {
+ if (functions == UsbManager.FUNCTION_MTP) {
+ return MODE_DATA_MTP;
+ } else if (functions == UsbManager.FUNCTION_PTP) {
+ return MODE_DATA_PTP;
+ } else if (functions == UsbManager.FUNCTION_MIDI) {
+ return MODE_DATA_MIDI;
+ } else if (functions == UsbManager.FUNCTION_RNDIS) {
+ return MODE_DATA_TETHER;
}
+ return MODE_DATA_NONE;
+ }
- public boolean isUsbFileTransferRestricted() {
- return mUserManager.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER);
- }
-
- public boolean isUsbTetheringRestricted() {
- return mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_TETHERING);
- }
-
- public boolean isUsbFileTransferRestrictedBySystem() {
- return mUserManager.hasBaseUserRestriction(
- UserManager.DISALLOW_USB_FILE_TRANSFER, UserHandle.of(UserHandle.myUserId()));
- }
-
- public boolean isUsbTetheringRestrictedBySystem() {
- return mUserManager.hasBaseUserRestriction(
- UserManager.DISALLOW_CONFIG_TETHERING, UserHandle.of(UserHandle.myUserId()));
+ private static long modeToUsbFunction(int mode) {
+ switch (mode) {
+ case MODE_DATA_MTP:
+ return UsbManager.FUNCTION_MTP;
+ case MODE_DATA_PTP:
+ return UsbManager.FUNCTION_PTP;
+ case MODE_DATA_MIDI:
+ return UsbManager.FUNCTION_MIDI;
+ case MODE_DATA_TETHER:
+ return UsbManager.FUNCTION_RNDIS;
+ default:
+ return UsbManager.FUNCTION_NONE;
}
}
- // Temporary pass-through to allow roboelectric to use getCurrentFunctions()
- public static class UsbManagerPassThrough {
- private UsbManager mUsbManager;
+ private static int modeToPower(int mode) {
+ return (mode & MODE_POWER_MASK) == MODE_POWER_SOURCE
+ ? UsbPort.POWER_ROLE_SOURCE : UsbPort.POWER_ROLE_SINK;
+ }
- public UsbManagerPassThrough(UsbManager manager) {
- mUsbManager = manager;
- }
-
- public long getCurrentFunctions() {
- return mUsbManager.getCurrentFunctions();
- }
-
- public long usbFunctionsFromString(String str) {
- return UsbManager.usbFunctionsFromString(str);
- }
+ private void setUsbFunction(int mode) {
+ mUsbManager.setCurrentFunctions(modeToUsbFunction(mode));
}
}
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java b/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java
new file mode 100644
index 0000000..b2e1de5
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java
@@ -0,0 +1,159 @@
+/*
+ * 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.connecteddevice.usb;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.hardware.usb.UsbManager;
+import android.os.Bundle;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settings.widget.RadioButtonPickerFragment;
+import com.android.settingslib.widget.FooterPreference;
+import com.android.settingslib.widget.FooterPreferenceMixin;
+
+import com.google.android.collect.Lists;
+
+import java.util.List;
+
+/**
+ * Provides options for selecting the default USB mode.
+ */
+public class UsbDefaultFragment extends RadioButtonPickerFragment {
+ @VisibleForTesting
+ UsbBackend mUsbBackend;
+
+ private static final String[] FUNCTIONS_LIST = {
+ UsbManager.USB_FUNCTION_NONE,
+ UsbManager.USB_FUNCTION_MTP,
+ UsbManager.USB_FUNCTION_RNDIS,
+ UsbManager.USB_FUNCTION_MIDI,
+ UsbManager.USB_FUNCTION_PTP
+ };
+
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ mUsbBackend = new UsbBackend(context);
+ }
+
+ @Override
+ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+ super.onCreatePreferences(savedInstanceState, rootKey);
+ FooterPreferenceMixin footer = new FooterPreferenceMixin(this, this.getLifecycle());
+ FooterPreference pref = footer.createFooterPreference();
+ pref.setTitle(R.string.usb_default_info);
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return MetricsProto.MetricsEvent.USB_DEFAULT;
+ }
+
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.usb_default_fragment;
+ }
+
+ @Override
+ protected List<? extends CandidateInfo> getCandidates() {
+ List<CandidateInfo> ret = Lists.newArrayList();
+ for (final String option : FUNCTIONS_LIST) {
+ int newMode = 0;
+ final String title;
+ final Context context = getContext();
+ if (option.equals(UsbManager.USB_FUNCTION_MTP)) {
+ newMode = UsbBackend.MODE_DATA_MTP;
+ title = context.getString(R.string.usb_use_file_transfers);
+ } else if (option.equals(UsbManager.USB_FUNCTION_PTP)) {
+ newMode = UsbBackend.MODE_DATA_PTP;
+ title = context.getString(R.string.usb_use_photo_transfers);
+ } else if (option.equals(UsbManager.USB_FUNCTION_MIDI)) {
+ newMode = UsbBackend.MODE_DATA_MIDI;
+ title = context.getString(R.string.usb_use_MIDI);
+ } else if (option.equals(UsbManager.USB_FUNCTION_RNDIS)) {
+ newMode = UsbBackend.MODE_DATA_TETHER;
+ title = context.getString(R.string.usb_use_tethering);
+ } else if (option.equals(UsbManager.USB_FUNCTION_NONE)) {
+ newMode = UsbBackend.MODE_DATA_NONE;
+ title = context.getString(R.string.usb_use_charging_only);
+ } else {
+ title = "";
+ }
+
+ // Only show supported and allowed options
+ if (mUsbBackend.isModeSupported(newMode)
+ && !mUsbBackend.isModeDisallowedBySystem(newMode)
+ && !mUsbBackend.isModeDisallowed(newMode)) {
+ ret.add(new CandidateInfo(true /* enabled */) {
+ @Override
+ public CharSequence loadLabel() {
+ return title;
+ }
+
+ @Override
+ public Drawable loadIcon() {
+ return null;
+ }
+
+ @Override
+ public String getKey() {
+ return option;
+ }
+ });
+ }
+ }
+ return ret;
+ }
+
+ @Override
+ protected String getDefaultKey() {
+ switch (mUsbBackend.getDefaultUsbMode()) {
+ case UsbBackend.MODE_DATA_MTP:
+ return UsbManager.USB_FUNCTION_MTP;
+ case UsbBackend.MODE_DATA_PTP:
+ return UsbManager.USB_FUNCTION_PTP;
+ case UsbBackend.MODE_DATA_TETHER:
+ return UsbManager.USB_FUNCTION_RNDIS;
+ case UsbBackend.MODE_DATA_MIDI:
+ return UsbManager.USB_FUNCTION_MIDI;
+ default:
+ return UsbManager.USB_FUNCTION_NONE;
+ }
+ }
+
+ @Override
+ protected boolean setDefaultKey(String key) {
+ int thisMode = UsbBackend.MODE_DATA_NONE;
+ if (key.equals(UsbManager.USB_FUNCTION_MTP)) {
+ thisMode = UsbBackend.MODE_DATA_MTP;
+ } else if (key.equals(UsbManager.USB_FUNCTION_PTP)) {
+ thisMode = UsbBackend.MODE_DATA_PTP;
+ } else if (key.equals(UsbManager.USB_FUNCTION_RNDIS)) {
+ thisMode = UsbBackend.MODE_DATA_TETHER;
+ } else if (key.equals(UsbManager.USB_FUNCTION_MIDI)) {
+ thisMode = UsbBackend.MODE_DATA_MIDI;
+ }
+ if (!Utils.isMonkeyRunning()) {
+ mUsbBackend.setDefaultUsbMode(thisMode);
+ }
+ return true;
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/core/BasePreferenceController.java b/src/com/android/settings/core/BasePreferenceController.java
index 777f3dd..1bbee0c 100644
--- a/src/com/android/settings/core/BasePreferenceController.java
+++ b/src/com/android/settings/core/BasePreferenceController.java
@@ -25,6 +25,8 @@
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
import java.util.List;
/**
@@ -73,6 +75,44 @@
protected Lifecycle mLifecycle;
+ /**
+ * Instantiate a controller as specified controller type and user-defined key.
+ * <p/>
+ * This is done through reflection. Do not use this method unless you know what you are doing.
+ */
+ public static BasePreferenceController createInstance(Context context,
+ String controllerName, String key) {
+ try {
+ final Class<?> clazz = Class.forName(controllerName);
+ final Constructor<?> preferenceConstructor =
+ clazz.getConstructor(Context.class, String.class);
+ final Object[] params = new Object[] {context, key};
+ return (BasePreferenceController) preferenceConstructor.newInstance(params);
+ } catch (ClassNotFoundException | NoSuchMethodException | InstantiationException |
+ IllegalArgumentException | InvocationTargetException | IllegalAccessException e) {
+ throw new IllegalStateException(
+ "Invalid preference controller: " + controllerName, e);
+ }
+ }
+
+ /**
+ * Instantiate a controller as specified controller type.
+ * <p/>
+ * This is done through reflection. Do not use this method unless you know what you are doing.
+ */
+ public static BasePreferenceController createInstance(Context context, String controllerName) {
+ try {
+ final Class<?> clazz = Class.forName(controllerName);
+ final Constructor<?> preferenceConstructor = clazz.getConstructor(Context.class);
+ final Object[] params = new Object[] {context};
+ return (BasePreferenceController) preferenceConstructor.newInstance(params);
+ } catch (ClassNotFoundException | NoSuchMethodException | InstantiationException |
+ IllegalArgumentException | InvocationTargetException | IllegalAccessException e) {
+ throw new IllegalStateException(
+ "Invalid preference controller: " + controllerName, e);
+ }
+ }
+
public BasePreferenceController(Context context, String preferenceKey) {
super(context);
mPreferenceKey = preferenceKey;
diff --git a/src/com/android/settings/search/XmlParserUtils.java b/src/com/android/settings/core/PreferenceXmlParserUtils.java
similarity index 97%
rename from src/com/android/settings/search/XmlParserUtils.java
rename to src/com/android/settings/core/PreferenceXmlParserUtils.java
index 27c5cd3..4d6e840 100644
--- a/src/com/android/settings/search/XmlParserUtils.java
+++ b/src/com/android/settings/core/PreferenceXmlParserUtils.java
@@ -12,10 +12,9 @@
* 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.search;
+package com.android.settings.core;
import android.annotation.Nullable;
import android.content.Context;
@@ -27,7 +26,7 @@
/**
* Utility class to parse elements of XML preferences
*/
-public class XmlParserUtils {
+public class PreferenceXmlParserUtils {
private static final String ENTRIES_SEPARATOR = "|";
diff --git a/src/com/android/settings/core/SubSettingLauncher.java b/src/com/android/settings/core/SubSettingLauncher.java
index bc79cf8..1ffe7f5 100644
--- a/src/com/android/settings/core/SubSettingLauncher.java
+++ b/src/com/android/settings/core/SubSettingLauncher.java
@@ -101,6 +101,25 @@
"This launcher has already been executed. Do not reuse");
}
mLaunched = true;
+
+ final Intent intent = toIntent();
+
+ boolean launchAsUser = mLaunchRequest.userHandle != null
+ && mLaunchRequest.userHandle.getIdentifier() != UserHandle.myUserId();
+ boolean launchForResult = mLaunchRequest.mResultListener != null;
+ if (launchAsUser && launchForResult) {
+ launchForResultAsUser(intent, mLaunchRequest.userHandle, mLaunchRequest.mResultListener,
+ mLaunchRequest.mRequestCode);
+ } else if (launchAsUser && !launchForResult) {
+ launchAsUser(intent, mLaunchRequest.userHandle);
+ } else if (!launchAsUser && launchForResult) {
+ launchForResult(mLaunchRequest.mResultListener, intent, mLaunchRequest.mRequestCode);
+ } else {
+ launch(intent);
+ }
+ }
+
+ public Intent toIntent() {
final Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClass(mContext, SubSettings.class);
if (TextUtils.isEmpty(mLaunchRequest.destinationName)) {
@@ -123,15 +142,7 @@
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_AS_SHORTCUT,
mLaunchRequest.isShortCut);
intent.addFlags(mLaunchRequest.flags);
-
- if (mLaunchRequest.userHandle != null
- && mLaunchRequest.userHandle.getIdentifier() != UserHandle.myUserId()) {
- launchAsUser(mContext, intent, mLaunchRequest.userHandle);
- } else if (mLaunchRequest.mResultListener != null) {
- launchForResult(mLaunchRequest.mResultListener, intent, mLaunchRequest.mRequestCode);
- } else {
- launch(intent);
- }
+ return intent;
}
@VisibleForTesting
@@ -139,14 +150,21 @@
mContext.startActivity(intent);
}
- private static void launchForResult(Fragment listener, Intent intent, int requestCode) {
- listener.getActivity().startActivityForResult(intent, requestCode);
- }
-
- private static void launchAsUser(Context context, Intent intent, UserHandle userHandle) {
+ @VisibleForTesting
+ void launchAsUser(Intent intent, UserHandle userHandle) {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
- context.startActivityAsUser(intent, userHandle);
+ mContext.startActivityAsUser(intent, userHandle);
+ }
+
+ @VisibleForTesting
+ void launchForResultAsUser(Intent intent, UserHandle userHandle,
+ Fragment resultListener, int requestCode) {
+ resultListener.getActivity().startActivityForResultAsUser(intent, requestCode, userHandle);
+ }
+
+ private void launchForResult(Fragment listener, Intent intent, int requestCode) {
+ listener.getActivity().startActivityForResult(intent, requestCode);
}
/**
diff --git a/src/com/android/settings/core/TogglePreferenceController.java b/src/com/android/settings/core/TogglePreferenceController.java
index 5431f4d..1cf4289 100644
--- a/src/com/android/settings/core/TogglePreferenceController.java
+++ b/src/com/android/settings/core/TogglePreferenceController.java
@@ -17,6 +17,8 @@
import android.support.v7.preference.Preference;
import android.support.v7.preference.TwoStatePreference;
+import com.android.settings.widget.MasterSwitchPreference;
+
/**
* Abstract class that consolidates logic for updating toggle controllers.
* It automatically handles the getting and setting of the switch UI element.
@@ -46,7 +48,11 @@
@Override
public final void updateState(Preference preference) {
- ((TwoStatePreference) preference).setChecked(isChecked());
+ if (preference instanceof TwoStatePreference) {
+ ((TwoStatePreference) preference).setChecked(isChecked());
+ } if (preference instanceof MasterSwitchPreference) {
+ ((MasterSwitchPreference) preference).setChecked(isChecked());
+ }
}
@Override
diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java
index 6a88a38..a4f9a6b 100644
--- a/src/com/android/settings/dashboard/DashboardFragment.java
+++ b/src/com/android/settings/dashboard/DashboardFragment.java
@@ -27,9 +27,6 @@
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.overlay.FeatureFactory;
@@ -58,7 +55,7 @@
new ArrayMap<>();
private final Set<String> mDashboardTilePrefKeys = new ArraySet<>();
- protected DashboardFeatureProvider mDashboardFeatureProvider;
+ private DashboardFeatureProvider mDashboardFeatureProvider;
private DashboardTilePlaceholderPreferenceController mPlaceholderPreferenceController;
private boolean mListeningToCategoryChange;
private SummaryLoader mSummaryLoader;
@@ -95,13 +92,6 @@
}
@Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- final View view = super.onCreateView(inflater, container, savedInstanceState);
- return view;
- }
-
- @Override
public void onCategoriesChanged() {
final DashboardCategory category =
mDashboardFeatureProvider.getTilesForCategory(getCategoryKey());
diff --git a/src/com/android/settings/dashboard/conditional/BatterySaverCondition.java b/src/com/android/settings/dashboard/conditional/BatterySaverCondition.java
index 7877f9d..618fed3 100644
--- a/src/com/android/settings/dashboard/conditional/BatterySaverCondition.java
+++ b/src/com/android/settings/dashboard/conditional/BatterySaverCondition.java
@@ -15,11 +15,13 @@
*/
package com.android.settings.dashboard.conditional;
+import android.content.Intent;
import android.graphics.drawable.Icon;
import android.os.PowerManager;
+
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
-import com.android.settings.Utils;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settings.fuelgauge.batterysaver.BatterySaverSettings;
public class BatterySaverCondition extends Condition {
@@ -55,8 +57,12 @@
@Override
public void onPrimaryClick() {
- Utils.startWithFragment(mManager.getContext(), BatterySaverSettings.class.getName(), null,
- null, 0, R.string.battery_saver, null, MetricsEvent.DASHBOARD_SUMMARY);
+ new SubSettingLauncher(mManager.getContext())
+ .setDestination(BatterySaverSettings.class.getName())
+ .setSourceMetricsCategory(MetricsEvent.DASHBOARD_SUMMARY)
+ .setTitle(R.string.battery_saver)
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ .launch();
}
@Override
diff --git a/src/com/android/settings/dashboard/conditional/DndCondition.java b/src/com/android/settings/dashboard/conditional/DndCondition.java
index 6498db6..cd5178a 100644
--- a/src/com/android/settings/dashboard/conditional/DndCondition.java
+++ b/src/com/android/settings/dashboard/conditional/DndCondition.java
@@ -29,7 +29,7 @@
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
-import com.android.settings.Utils;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settings.notification.ZenModeSettings;
public class DndCondition extends Condition {
@@ -103,9 +103,12 @@
@Override
public void onPrimaryClick() {
- Utils.startWithFragment(mManager.getContext(), ZenModeSettings.class.getName(), null,
- null, 0, R.string.zen_mode_settings_title, null,
- MetricsEvent.NOTIFICATION_ZEN_MODE);
+ new SubSettingLauncher(mManager.getContext())
+ .setDestination(ZenModeSettings.class.getName())
+ .setSourceMetricsCategory(MetricsEvent.DASHBOARD_SUMMARY)
+ .setTitle(R.string.zen_mode_settings_title)
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ .launch();
}
@Override
diff --git a/src/com/android/settings/dashboard/conditional/HotspotCondition.java b/src/com/android/settings/dashboard/conditional/HotspotCondition.java
index 4ddf47c..c62b0a4 100644
--- a/src/com/android/settings/dashboard/conditional/HotspotCondition.java
+++ b/src/com/android/settings/dashboard/conditional/HotspotCondition.java
@@ -29,7 +29,7 @@
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.TetherSettings;
-import com.android.settings.Utils;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
@@ -39,7 +39,7 @@
private final Receiver mReceiver;
private static final IntentFilter WIFI_AP_STATE_FILTER =
- new IntentFilter(WifiManager.WIFI_AP_STATE_CHANGED_ACTION);
+ new IntentFilter(WifiManager.WIFI_AP_STATE_CHANGED_ACTION);
public HotspotCondition(ConditionManager manager) {
super(manager);
@@ -95,13 +95,17 @@
UserManager.DISALLOW_CONFIG_TETHERING, UserHandle.myUserId())) {
return new CharSequence[0];
}
- return new CharSequence[] { context.getString(R.string.condition_turn_off) };
+ return new CharSequence[] {context.getString(R.string.condition_turn_off)};
}
@Override
public void onPrimaryClick() {
- Utils.startWithFragment(mManager.getContext(), TetherSettings.class.getName(), null, null,
- 0, R.string.tether_settings_title_all, null, MetricsEvent.DASHBOARD_SUMMARY);
+ new SubSettingLauncher(mManager.getContext())
+ .setDestination(TetherSettings.class.getName())
+ .setSourceMetricsCategory(MetricsEvent.DASHBOARD_SUMMARY)
+ .setTitle(R.string.tether_settings_title_all)
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ .launch();
}
@Override
diff --git a/src/com/android/settings/dashboard/conditional/NightDisplayCondition.java b/src/com/android/settings/dashboard/conditional/NightDisplayCondition.java
index 4d885ae..9cb8605 100644
--- a/src/com/android/settings/dashboard/conditional/NightDisplayCondition.java
+++ b/src/com/android/settings/dashboard/conditional/NightDisplayCondition.java
@@ -16,12 +16,13 @@
package com.android.settings.dashboard.conditional;
+import android.content.Intent;
import android.graphics.drawable.Icon;
import com.android.internal.app.ColorDisplayController;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
-import com.android.settings.Utils;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settings.display.NightDisplaySettings;
public final class NightDisplayCondition extends Condition
@@ -62,8 +63,12 @@
@Override
public void onPrimaryClick() {
- Utils.startWithFragment(mManager.getContext(), NightDisplaySettings.class.getName(), null,
- null, 0, R.string.night_display_title, null, MetricsEvent.DASHBOARD_SUMMARY);
+ new SubSettingLauncher(mManager.getContext())
+ .setDestination(NightDisplaySettings.class.getName())
+ .setSourceMetricsCategory(MetricsEvent.DASHBOARD_SUMMARY)
+ .setTitle(R.string.night_display_title)
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ .launch();
}
@Override
diff --git a/src/com/android/settings/dashboard/conditional/WorkModeCondition.java b/src/com/android/settings/dashboard/conditional/WorkModeCondition.java
index 5c47be6..cb1b60a 100644
--- a/src/com/android/settings/dashboard/conditional/WorkModeCondition.java
+++ b/src/com/android/settings/dashboard/conditional/WorkModeCondition.java
@@ -85,7 +85,7 @@
@Override
public void onPrimaryClick() {
mManager.getContext().startActivity(new Intent(mManager.getContext(),
- Settings.UserSettingsActivity.class)
+ Settings.AccountDashboardActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
}
diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java b/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java
index b24a914..11eb80c 100644
--- a/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java
+++ b/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java
@@ -127,7 +127,7 @@
holder.title.setText(suggestion.getTitle());
holder.title.setSingleLine(suggestionCount == 1);
holder.title.setTypeface(Typeface.create(
- mContext.getString(com.android.internal.R.string.config_headlineFontFamilyMedium),
+ mContext.getString(com.android.internal.R.string.config_headlineFontFamily),
Typeface.NORMAL));
if (suggestionCount == 1) {
diff --git a/src/com/android/settings/datausage/BillingCyclePreference.java b/src/com/android/settings/datausage/BillingCyclePreference.java
index 202dc80..ce043ce 100644
--- a/src/com/android/settings/datausage/BillingCyclePreference.java
+++ b/src/com/android/settings/datausage/BillingCyclePreference.java
@@ -26,7 +26,7 @@
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
-import com.android.settings.Utils;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settings.datausage.CellDataPreference.DataStateListener;
public class BillingCyclePreference extends Preference implements TemplatePreference {
@@ -80,8 +80,12 @@
public Intent getIntent() {
Bundle args = new Bundle();
args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, mTemplate);
- return Utils.onBuildStartFragmentIntent(getContext(), BillingCycleSettings.class.getName(),
- args, null, 0, getTitle(), false, MetricsProto.MetricsEvent.VIEW_UNKNOWN);
+ return new SubSettingLauncher(getContext())
+ .setDestination(BillingCycleSettings.class.getName())
+ .setArguments(args)
+ .setTitle(getTitle())
+ .setSourceMetricsCategory(MetricsProto.MetricsEvent.VIEW_UNKNOWN)
+ .toIntent();
}
private final DataStateListener mListener = new DataStateListener() {
diff --git a/src/com/android/settings/datausage/DataUsagePreference.java b/src/com/android/settings/datausage/DataUsagePreference.java
index 32c7011..ecc5be6 100644
--- a/src/com/android/settings/datausage/DataUsagePreference.java
+++ b/src/com/android/settings/datausage/DataUsagePreference.java
@@ -23,10 +23,10 @@
import android.support.v7.preference.Preference;
import android.text.format.Formatter;
import android.util.AttributeSet;
+
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
-import com.android.settings.Utils;
-import com.android.settings.core.InstrumentedPreferenceFragment;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settingslib.net.DataUsageController;
public class DataUsagePreference extends Preference implements TemplatePreference {
@@ -38,7 +38,7 @@
public DataUsagePreference(Context context, AttributeSet attrs) {
super(context, attrs);
final TypedArray a = context.obtainStyledAttributes(
- attrs, new int[] { com.android.internal.R.attr.title },
+ attrs, new int[] {com.android.internal.R.attr.title},
TypedArrayUtils.getAttr(
context, android.support.v7.preference.R.attr.preferenceStyle,
android.R.attr.preferenceStyle), 0);
@@ -60,16 +60,18 @@
@Override
public Intent getIntent() {
- Bundle args = new Bundle();
+ final Bundle args = new Bundle();
args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, mTemplate);
args.putInt(DataUsageList.EXTRA_SUB_ID, mSubId);
+ final SubSettingLauncher launcher = new SubSettingLauncher(getContext())
+ .setArguments(args)
+ .setDestination(DataUsageList.class.getName())
+ .setSourceMetricsCategory(MetricsProto.MetricsEvent.VIEW_UNKNOWN);
if (mTitleRes > 0) {
- return Utils.onBuildStartFragmentIntent(getContext(), DataUsageList.class.getName(),
- args, getContext().getPackageName(), mTitleRes, null, false,
- MetricsProto.MetricsEvent.VIEW_UNKNOWN);
+ launcher.setTitle(mTitleRes);
+ } else {
+ launcher.setTitle(getTitle());
}
- return Utils.onBuildStartFragmentIntent(getContext(), DataUsageList.class.getName(), args,
- getContext().getPackageName(), 0, getTitle(), false,
- MetricsProto.MetricsEvent.VIEW_UNKNOWN);
+ return launcher.toIntent();
}
}
diff --git a/src/com/android/settings/development/BluetoothDelayReportsPreferenceController.java b/src/com/android/settings/development/BluetoothDelayReportsPreferenceController.java
new file mode 100644
index 0000000..5dc6e52
--- /dev/null
+++ b/src/com/android/settings/development/BluetoothDelayReportsPreferenceController.java
@@ -0,0 +1,85 @@
+/*
+ * 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.development;
+
+import android.content.Context;
+import android.os.SystemProperties;
+import android.support.annotation.VisibleForTesting;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+public class BluetoothDelayReportsPreferenceController extends
+ DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener,
+ PreferenceControllerMixin {
+
+ private static final String BLUETOOTH_ENABLE_AVDTP_DELAY_REPORT_KEY =
+ "bluetooth_enable_avdtp_delay_reports";
+ @VisibleForTesting
+ static final String BLUETOOTH_ENABLE_AVDTP_DELAY_REPORTS_PROPERTY =
+ "persist.bluetooth.enabledelayreports";
+
+ private SwitchPreference mPreference;
+
+ public BluetoothDelayReportsPreferenceController(Context context) {
+ super(context);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return BLUETOOTH_ENABLE_AVDTP_DELAY_REPORT_KEY;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+
+ mPreference = (SwitchPreference) screen.findPreference(getPreferenceKey());
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ final boolean isEnabled = (Boolean) newValue;
+ SystemProperties.set(BLUETOOTH_ENABLE_AVDTP_DELAY_REPORTS_PROPERTY,
+ isEnabled ? "true" : "false");
+ return true;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ final boolean isEnabled = SystemProperties.getBoolean(
+ BLUETOOTH_ENABLE_AVDTP_DELAY_REPORTS_PROPERTY, false /* default */);
+ mPreference.setChecked(isEnabled);
+ }
+
+ @Override
+ protected void onDeveloperOptionsSwitchEnabled() {
+ mPreference.setEnabled(true);
+ }
+
+ @Override
+ protected void onDeveloperOptionsSwitchDisabled() {
+ mPreference.setEnabled(false);
+ // the default setting for this preference is the disabled state
+ mPreference.setChecked(false);
+ SystemProperties.set(BLUETOOTH_ENABLE_AVDTP_DELAY_REPORTS_PROPERTY, "false");
+ }
+
+}
diff --git a/src/com/android/settings/development/DarkUIPreferenceController.java b/src/com/android/settings/development/DarkUIPreferenceController.java
new file mode 100644
index 0000000..a35397b
--- /dev/null
+++ b/src/com/android/settings/development/DarkUIPreferenceController.java
@@ -0,0 +1,107 @@
+/*
+ * 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.development;
+
+import android.app.UiModeManager;
+import android.content.Context;
+import android.support.annotation.VisibleForTesting;
+import android.support.v7.preference.ListPreference;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+public class DarkUIPreferenceController extends
+ DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener,
+ PreferenceControllerMixin {
+
+ private static final String DARK_UI_KEY = "dark_ui_mode";
+ private final UiModeManager mUiModeManager;
+
+ public DarkUIPreferenceController(Context context) {
+ this(context, context.getSystemService(UiModeManager.class));
+ }
+
+ @VisibleForTesting
+ DarkUIPreferenceController(Context context, UiModeManager uiModeManager) {
+ super(context);
+ mUiModeManager = uiModeManager;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return DARK_UI_KEY;
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ mUiModeManager.setNightMode(modeToInt((String) newValue));
+ updateSummary(preference);
+ return true;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ updateSummary(preference);
+ }
+
+ private void updateSummary(Preference preference) {
+ int mode = mUiModeManager.getNightMode();
+ ((ListPreference) preference).setValue(modeToString(mode));
+ preference.setSummary(modeToDescription(mode));
+ }
+
+ private String modeToDescription(int mode) {
+ String[] values = mContext.getResources().getStringArray(R.array.dark_ui_mode_entries);
+ switch (mode) {
+ case UiModeManager.MODE_NIGHT_AUTO:
+ return values[0];
+ case UiModeManager.MODE_NIGHT_YES:
+ return values[1];
+ case UiModeManager.MODE_NIGHT_NO:
+ default:
+ return values[2];
+
+ }
+ }
+
+ private String modeToString(int mode) {
+ switch (mode) {
+ case UiModeManager.MODE_NIGHT_AUTO:
+ return "auto";
+ case UiModeManager.MODE_NIGHT_YES:
+ return "yes";
+ case UiModeManager.MODE_NIGHT_NO:
+ default:
+ return "no";
+
+ }
+ }
+
+ private int modeToInt(String mode) {
+ switch (mode) {
+ case "auto":
+ return UiModeManager.MODE_NIGHT_AUTO;
+ case "yes":
+ return UiModeManager.MODE_NIGHT_YES;
+ case "no":
+ default:
+ return UiModeManager.MODE_NIGHT_NO;
+ }
+ }
+}
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index 395d230..1c9e36b 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -375,6 +375,7 @@
controllers.add(new LocalBackupPasswordPreferenceController(context));
controllers.add(new StayAwakePreferenceController(context, lifecycle));
controllers.add(new HdcpCheckingPreferenceController(context));
+ controllers.add(new DarkUIPreferenceController(context));
controllers.add(new BluetoothSnoopLogPreferenceController(context));
controllers.add(new OemUnlockPreferenceController(context, activity, fragment));
controllers.add(new FileEncryptionPreferenceController(context));
@@ -401,10 +402,10 @@
controllers.add(new WifiConnectedMacRandomizationPreferenceController(context));
controllers.add(new MobileDataAlwaysOnPreferenceController(context));
controllers.add(new TetheringHardwareAccelPreferenceController(context));
- controllers.add(new SelectUsbConfigPreferenceController(context, lifecycle));
controllers.add(new BluetoothDeviceNoNamePreferenceController(context));
controllers.add(new BluetoothAbsoluteVolumePreferenceController(context));
controllers.add(new BluetoothInbandRingingPreferenceController(context));
+ controllers.add(new BluetoothDelayReportsPreferenceController(context));
controllers.add(new BluetoothAvrcpVersionPreferenceController(context));
controllers.add(new BluetoothAudioCodecPreferenceController(context, lifecycle,
bluetoothA2dpConfigStore));
diff --git a/src/com/android/settings/development/SelectUsbConfigPreferenceController.java b/src/com/android/settings/development/SelectUsbConfigPreferenceController.java
index 63eb24c..5f9fcca 100644
--- a/src/com/android/settings/development/SelectUsbConfigPreferenceController.java
+++ b/src/com/android/settings/development/SelectUsbConfigPreferenceController.java
@@ -30,8 +30,8 @@
import com.android.settings.R;
import com.android.settings.Utils;
+import com.android.settings.wrapper.UsbManagerWrapper;
import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settings.connecteddevice.usb.UsbBackend;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnCreate;
@@ -49,7 +49,7 @@
private final String[] mListSummaries;
private final UsbManager mUsbManager;
@VisibleForTesting
- UsbBackend.UsbManagerPassThrough mUsbManagerPassThrough;
+ UsbManagerWrapper mUsbManagerWrapper;
private BroadcastReceiver mUsbReceiver;
private ListPreference mPreference;
@@ -59,7 +59,7 @@
mListValues = context.getResources().getStringArray(R.array.usb_configuration_values);
mListSummaries = context.getResources().getStringArray(R.array.usb_configuration_titles);
mUsbManager = (UsbManager) context.getSystemService(Context.USB_SERVICE);
- mUsbManagerPassThrough = new UsbBackend.UsbManagerPassThrough(mUsbManager);
+ mUsbManagerWrapper = new UsbManagerWrapper(mUsbManager);
mUsbReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
@@ -98,7 +98,7 @@
return false;
}
- writeUsbConfigurationOption(mUsbManagerPassThrough
+ writeUsbConfigurationOption(mUsbManagerWrapper
.usbFunctionsFromString(newValue.toString()));
updateUsbConfigurationValues();
return true;
@@ -138,10 +138,10 @@
}
private void updateUsbConfigurationValues() {
- long functions = mUsbManagerPassThrough.getCurrentFunctions();
+ long functions = mUsbManagerWrapper.getCurrentFunctions();
int index = 0;
for (int i = 0; i < mListValues.length; i++) {
- if (functions == mUsbManagerPassThrough.usbFunctionsFromString(mListValues[i])) {
+ if (functions == mUsbManagerWrapper.usbFunctionsFromString(mListValues[i])) {
index = i;
break;
}
diff --git a/src/com/android/settings/development/qstile/DevelopmentTilePreferenceController.java b/src/com/android/settings/development/qstile/DevelopmentTilePreferenceController.java
index 083a719..51fcb2c 100644
--- a/src/com/android/settings/development/qstile/DevelopmentTilePreferenceController.java
+++ b/src/com/android/settings/development/qstile/DevelopmentTilePreferenceController.java
@@ -22,17 +22,23 @@
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
+import android.os.RemoteException;
+import android.os.ServiceManager;
import android.service.quicksettings.TileService;
+import android.support.annotation.VisibleForTesting;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
+import android.util.Log;
+import com.android.internal.statusbar.IStatusBarService;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.List;
public class DevelopmentTilePreferenceController extends AbstractPreferenceController {
+ private static final String TAG = "DevTilePrefController";
private final OnChangeHandler mOnChangeHandler;
private final PackageManager mPackageManager;
@@ -78,24 +84,42 @@
}
}
- private static class OnChangeHandler implements Preference.OnPreferenceChangeListener {
+ @VisibleForTesting
+ static class OnChangeHandler implements Preference.OnPreferenceChangeListener {
private final Context mContext;
private final PackageManager mPackageManager;
+ private IStatusBarService mStatusBarService;
public OnChangeHandler(Context context) {
mContext = context;
mPackageManager = context.getPackageManager();
+ mStatusBarService = IStatusBarService.Stub.asInterface(
+ ServiceManager.checkService(Context.STATUS_BAR_SERVICE));
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
- ComponentName cn = new ComponentName(
+ boolean enabled = ((Boolean) newValue).booleanValue();
+ ComponentName componentName = new ComponentName(
mContext.getPackageName(), preference.getKey());
- mPackageManager.setComponentEnabledSetting(cn, (Boolean) newValue
+ mPackageManager.setComponentEnabledSetting(componentName, enabled
? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
: PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
+
+ try {
+ if (mStatusBarService != null) {
+ if (enabled) {
+ mStatusBarService.addTile(componentName);
+ } else {
+ mStatusBarService.remTile(componentName);
+ }
+ }
+ } catch (RemoteException e) {
+ Log.e(TAG, "Failed to modify QS tile for component " +
+ componentName.toString(), e);
+ }
return true;
}
}
diff --git a/src/com/android/settings/deviceinfo/BrandedAccountPreferenceController.java b/src/com/android/settings/deviceinfo/BrandedAccountPreferenceController.java
index c968d25..9e78ae5 100644
--- a/src/com/android/settings/deviceinfo/BrandedAccountPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/BrandedAccountPreferenceController.java
@@ -24,10 +24,10 @@
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
-import com.android.settings.Utils;
import com.android.settings.accounts.AccountDetailDashboardFragment;
import com.android.settings.accounts.AccountFeatureProvider;
import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settings.overlay.FeatureFactory;
public class BrandedAccountPreferenceController extends BasePreferenceController {
@@ -69,9 +69,13 @@
android.os.Process.myUserHandle());
args.putString(AccountDetailDashboardFragment.KEY_ACCOUNT_TYPE,
accountFeatureProvider.getAccountType());
- Utils.startWithFragment(mContext, AccountDetailDashboardFragment.class.getName(),
- args, null, 0,
- R.string.account_sync_title, null, MetricsEvent.ACCOUNT);
+
+ new SubSettingLauncher(mContext)
+ .setDestination(AccountDetailDashboardFragment.class.getName())
+ .setTitle(R.string.account_sync_title)
+ .setArguments(args)
+ .setSourceMetricsCategory(MetricsEvent.DEVICEINFO)
+ .launch();
return true;
});
}
diff --git a/src/com/android/settings/deviceinfo/DeviceInfoSettings.java b/src/com/android/settings/deviceinfo/DeviceInfoSettings.java
index 9b99e8b..79f57be 100644
--- a/src/com/android/settings/deviceinfo/DeviceInfoSettings.java
+++ b/src/com/android/settings/deviceinfo/DeviceInfoSettings.java
@@ -20,14 +20,12 @@
import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
-import android.os.Bundle;
import android.provider.SearchIndexableResource;
import android.support.annotation.VisibleForTesting;
import android.telephony.TelephonyManager;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
-import com.android.settings.SettingsActivity;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.deviceinfo.firmwareversion.FirmwareVersionPreferenceController;
@@ -64,23 +62,12 @@
}
@Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- final Bundle arguments = getArguments();
- // Do not override initial expand children count if we come from
- // search (EXTRA_FRAGMENT_ARG_KEY is set) - we need to display every if entry point
- // is search.
- if (arguments == null
- || !arguments.containsKey(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY)) {
-
- // Increase the number of children when the device contains more than 1 sim.
- final TelephonyManager telephonyManager = (TelephonyManager) getContext()
- .getSystemService(Context.TELEPHONY_SERVICE);
- final int numberOfChildren = Math.max(SIM_PREFERENCES_COUNT,
- SIM_PREFERENCES_COUNT * telephonyManager.getPhoneCount())
- + NON_SIM_PREFERENCES_COUNT;
- getPreferenceScreen().setInitialExpandedChildrenCount(numberOfChildren);
- }
+ public int getInitialExpandedChildCount() {
+ final TelephonyManager telephonyManager = (TelephonyManager) getContext()
+ .getSystemService(Context.TELEPHONY_SERVICE);
+ return Math.max(SIM_PREFERENCES_COUNT,
+ SIM_PREFERENCES_COUNT * telephonyManager.getPhoneCount())
+ + NON_SIM_PREFERENCES_COUNT;
}
@Override
diff --git a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
index c2a72e6..7958b37 100644
--- a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
+++ b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
@@ -484,9 +484,12 @@
args.putInt(
ManageApplications.EXTRA_STORAGE_TYPE,
ManageApplications.STORAGE_TYPE_LEGACY);
- intent = Utils.onBuildStartFragmentIntent(getActivity(),
- ManageApplications.class.getName(), args, null, R.string.apps_storage, null,
- false, getMetricsCategory());
+ intent = new SubSettingLauncher(getActivity())
+ .setDestination(ManageApplications.class.getName())
+ .setArguments(args)
+ .setTitle(R.string.apps_storage)
+ .setSourceMetricsCategory(getMetricsCategory())
+ .toIntent();
} break;
case R.string.storage_detail_images: {
diff --git a/src/com/android/settings/deviceinfo/StorageSettings.java b/src/com/android/settings/deviceinfo/StorageSettings.java
index 17a06df..adc35a6 100644
--- a/src/com/android/settings/deviceinfo/StorageSettings.java
+++ b/src/com/android/settings/deviceinfo/StorageSettings.java
@@ -47,7 +47,6 @@
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.Utils;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.dashboard.SummaryLoader;
@@ -232,10 +231,12 @@
mHasLaunchedPrivateVolumeSettings = true;
final Bundle args = new Bundle();
args.putString(VolumeInfo.EXTRA_VOLUME_ID, VolumeInfo.ID_PRIVATE_INTERNAL);
- Intent intent = Utils.onBuildStartFragmentIntent(getActivity(),
- StorageDashboardFragment.class.getName(), args, null,
- R.string.storage_settings, null, false, getMetricsCategory());
- getActivity().startActivity(intent);
+ new SubSettingLauncher(getActivity())
+ .setDestination(StorageDashboardFragment.class.getName())
+ .setArguments(args)
+ .setTitle(R.string.storage_settings)
+ .setSourceMetricsCategory(getMetricsCategory())
+ .launch();
finish();
}
}
diff --git a/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java b/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java
index 3623298..6b51be3 100644
--- a/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java
@@ -35,9 +35,9 @@
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.Settings;
-import com.android.settings.Utils;
import com.android.settings.applications.manageapplications.ManageApplications;
import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settings.deviceinfo.PrivateVolumeSettings.SystemInfoFragment;
import com.android.settings.deviceinfo.StorageItemPreference;
import com.android.settings.overlay.FeatureFactory;
@@ -319,15 +319,12 @@
args.putInt(
ManageApplications.EXTRA_STORAGE_TYPE,
ManageApplications.STORAGE_TYPE_PHOTOS_VIDEOS);
- return Utils.onBuildStartFragmentIntent(
- mContext,
- ManageApplications.class.getName(),
- args,
- null,
- R.string.storage_photos_videos,
- null,
- false,
- mMetricsFeatureProvider.getMetricsCategory(mFragment));
+ return new SubSettingLauncher(mContext)
+ .setDestination(ManageApplications.class.getName())
+ .setTitle(R.string.storage_photos_videos)
+ .setArguments(args)
+ .setSourceMetricsCategory(mMetricsFeatureProvider.getMetricsCategory(mFragment))
+ .toIntent();
}
private Intent getAudioIntent() {
@@ -341,46 +338,57 @@
args.putString(ManageApplications.EXTRA_VOLUME_UUID, mVolume.getFsUuid());
args.putString(ManageApplications.EXTRA_VOLUME_NAME, mVolume.getDescription());
args.putInt(ManageApplications.EXTRA_STORAGE_TYPE, ManageApplications.STORAGE_TYPE_MUSIC);
- return Utils.onBuildStartFragmentIntent(mContext,
- ManageApplications.class.getName(), args, null, R.string.storage_music_audio, null,
- false, mMetricsFeatureProvider.getMetricsCategory(mFragment));
+ return new SubSettingLauncher(mContext)
+ .setDestination(ManageApplications.class.getName())
+ .setTitle(R.string.storage_music_audio)
+ .setArguments(args)
+ .setSourceMetricsCategory(mMetricsFeatureProvider.getMetricsCategory(mFragment))
+ .toIntent();
}
private Intent getAppsIntent() {
if (mVolume == null) {
return null;
}
-
- Bundle args = getWorkAnnotatedBundle(3);
+ final Bundle args = getWorkAnnotatedBundle(3);
args.putString(ManageApplications.EXTRA_CLASSNAME,
Settings.StorageUseActivity.class.getName());
args.putString(ManageApplications.EXTRA_VOLUME_UUID, mVolume.getFsUuid());
args.putString(ManageApplications.EXTRA_VOLUME_NAME, mVolume.getDescription());
- return Utils.onBuildStartFragmentIntent(mContext,
- ManageApplications.class.getName(), args, null, R.string.apps_storage, null,
- false, mMetricsFeatureProvider.getMetricsCategory(mFragment));
+ return new SubSettingLauncher(mContext)
+ .setDestination(ManageApplications.class.getName())
+ .setTitle(R.string.apps_storage)
+ .setArguments(args)
+ .setSourceMetricsCategory(mMetricsFeatureProvider.getMetricsCategory(mFragment))
+ .toIntent();
}
private Intent getGamesIntent() {
- Bundle args = getWorkAnnotatedBundle(1);
+ final Bundle args = getWorkAnnotatedBundle(1);
args.putString(ManageApplications.EXTRA_CLASSNAME,
Settings.GamesStorageActivity.class.getName());
- return Utils.onBuildStartFragmentIntent(mContext,
- ManageApplications.class.getName(), args, null, R.string.game_storage_settings,
- null, false, mMetricsFeatureProvider.getMetricsCategory(mFragment));
+ return new SubSettingLauncher(mContext)
+ .setDestination(ManageApplications.class.getName())
+ .setTitle(R.string.game_storage_settings)
+ .setArguments(args)
+ .setSourceMetricsCategory(mMetricsFeatureProvider.getMetricsCategory(mFragment))
+ .toIntent();
}
private Intent getMoviesIntent() {
- Bundle args = getWorkAnnotatedBundle(1);
+ final Bundle args = getWorkAnnotatedBundle(1);
args.putString(ManageApplications.EXTRA_CLASSNAME,
Settings.MoviesStorageActivity.class.getName());
- return Utils.onBuildStartFragmentIntent(mContext,
- ManageApplications.class.getName(), args, null, R.string.storage_movies_tv,
- null, false, mMetricsFeatureProvider.getMetricsCategory(mFragment));
+ return new SubSettingLauncher(mContext)
+ .setDestination(ManageApplications.class.getName())
+ .setTitle(R.string.storage_movies_tv)
+ .setArguments(args)
+ .setSourceMetricsCategory(mMetricsFeatureProvider.getMetricsCategory(mFragment))
+ .toIntent();
}
private Bundle getWorkAnnotatedBundle(int additionalCapacity) {
- Bundle args = new Bundle(2 + additionalCapacity);
+ final Bundle args = new Bundle(2 + additionalCapacity);
args.putBoolean(ManageApplications.EXTRA_WORK_ONLY, mIsWorkProfile);
args.putInt(ManageApplications.EXTRA_WORK_ID, mUserId);
return args;
diff --git a/src/com/android/settings/deviceinfo/storage/UserProfileController.java b/src/com/android/settings/deviceinfo/storage/UserProfileController.java
index c9fe54e..081a0be 100644
--- a/src/com/android/settings/deviceinfo/storage/UserProfileController.java
+++ b/src/com/android/settings/deviceinfo/storage/UserProfileController.java
@@ -17,9 +17,7 @@
package com.android.settings.deviceinfo.storage;
import android.content.Context;
-import android.content.Intent;
import android.content.pm.UserInfo;
-import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.storage.VolumeInfo;
@@ -31,14 +29,16 @@
import com.android.internal.util.Preconditions;
import com.android.settings.Utils;
import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settings.deviceinfo.StorageItemPreference;
import com.android.settings.deviceinfo.StorageProfileFragment;
import com.android.settings.wrapper.UserManagerWrapper;
import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.drawer.SettingsDrawerActivity;
-/** Defines a {@link AbstractPreferenceController} which handles a single profile of the primary
- * user. */
+/**
+ * Defines a {@link AbstractPreferenceController} which handles a single profile of the primary
+ * user.
+ */
public class UserProfileController extends AbstractPreferenceController implements
PreferenceControllerMixin, StorageAsyncLoader.ResultHandler,
UserIconLoader.UserIconHandler {
@@ -79,13 +79,16 @@
@Override
public boolean handlePreferenceTreeClick(Preference preference) {
if (preference != null && mStoragePreference == preference) {
- Bundle args = new Bundle(2);
+ final Bundle args = new Bundle();
args.putInt(StorageProfileFragment.USER_ID_EXTRA, mUser.id);
args.putString(VolumeInfo.EXTRA_VOLUME_ID, VolumeInfo.ID_PRIVATE_INTERNAL);
- Intent intent = Utils.onBuildStartFragmentIntent(mContext,
- StorageProfileFragment.class.getName(), args, null, 0,
- mUser.name, false, MetricsProto.MetricsEvent.DEVICEINFO_STORAGE);
- mContext.startActivity(intent);
+
+ new SubSettingLauncher(mContext)
+ .setDestination(StorageProfileFragment.class.getName())
+ .setArguments(args)
+ .setTitle(mUser.name)
+ .setSourceMetricsCategory(MetricsProto.MetricsEvent.DEVICEINFO_STORAGE)
+ .launch();
return true;
}
@@ -99,8 +102,7 @@
int userId = mUser.id;
StorageAsyncLoader.AppsStorageResult result = stats.get(userId);
if (result != null) {
- setSize(
- result.externalStats.totalBytes
+ setSize(result.externalStats.totalBytes
+ result.otherAppsSize
+ result.videoAppsSize
+ result.musicAppsSize
diff --git a/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java b/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java
index 7bd1b3d..4094e1f 100644
--- a/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java
@@ -59,7 +59,6 @@
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnDestroy;
-import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume;
import java.util.ArrayList;
@@ -434,7 +433,7 @@
}
Intent intent = new Intent();
intent.putExtra(APP_CHG, appChanged);
- mActivity.finishPreferencePanel(mFragment, Activity.RESULT_OK, intent);
+ mActivity.finishPreferencePanel(Activity.RESULT_OK, intent);
mFinishing = true;
}
diff --git a/src/com/android/settings/fuelgauge/BatterySaverController.java b/src/com/android/settings/fuelgauge/BatterySaverController.java
index 85fb9f5..58b7d13 100644
--- a/src/com/android/settings/fuelgauge/BatterySaverController.java
+++ b/src/com/android/settings/fuelgauge/BatterySaverController.java
@@ -21,42 +21,36 @@
import android.os.PowerManager;
import android.provider.Settings;
import android.support.annotation.VisibleForTesting;
-import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
+
import com.android.settings.R;
import com.android.settings.Utils;
-import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.core.TogglePreferenceController;
import com.android.settings.dashboard.conditional.BatterySaverCondition;
import com.android.settings.dashboard.conditional.ConditionManager;
import com.android.settings.widget.MasterSwitchPreference;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
-import static android.os.PowerManager.ACTION_POWER_SAVE_MODE_CHANGING;
-
-public class BatterySaverController extends AbstractPreferenceController
- implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener,
- LifecycleObserver, OnStart, OnStop, BatterySaverReceiver.BatterySaverListener {
+public class BatterySaverController extends TogglePreferenceController
+ implements LifecycleObserver, OnStart, OnStop, BatterySaverReceiver.BatterySaverListener {
private static final String KEY_BATTERY_SAVER = "battery_saver_summary";
private final BatterySaverReceiver mBatteryStateChangeReceiver;
private final PowerManager mPowerManager;
private MasterSwitchPreference mBatterySaverPref;
- public BatterySaverController(Context context, Lifecycle lifecycle) {
- super(context);
+ public BatterySaverController(Context context) {
+ super(context, KEY_BATTERY_SAVER);
- lifecycle.addObserver(this);
mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
mBatteryStateChangeReceiver = new BatterySaverReceiver(context);
mBatteryStateChangeReceiver.setBatterySaverListener(this);
}
@Override
- public boolean isAvailable() {
- return true;
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
}
@Override
@@ -71,17 +65,9 @@
}
@Override
- public void updateState(Preference preference) {
- mBatterySaverPref.setChecked(mPowerManager.isPowerSaveMode());
- updateSummary();
- }
-
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- final boolean saverOn = (Boolean) newValue;
- if (saverOn != mPowerManager.isPowerSaveMode()
- && !mPowerManager.setPowerSaveMode(saverOn)) {
- // Do nothing if power save mode doesn't set correctly
+ public boolean setChecked(boolean isChecked) {
+ mBatterySaverPref.setChecked(isChecked);
+ if (!mPowerManager.setPowerSaveMode(isChecked)) {
return false;
}
@@ -91,6 +77,11 @@
}
@Override
+ public boolean isChecked() {
+ return mPowerManager.isPowerSaveMode();
+ }
+
+ @Override
public void onStart() {
mContext.getContentResolver().registerContentObserver(
Settings.Global.getUriFor(Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL)
@@ -110,7 +101,8 @@
ConditionManager.get(mContext).getCondition(BatterySaverCondition.class).refreshState();
}
- private void updateSummary() {
+ @Override
+ public String getSummary() {
final boolean mode = mPowerManager.isPowerSaveMode();
final int format = mode ? R.string.battery_saver_on_summary
: R.string.battery_saver_off_summary;
@@ -119,10 +111,12 @@
final int percentFormat = percent > 0 ? R.string.battery_saver_desc_turn_on_auto_pct
: R.string.battery_saver_desc_turn_on_auto_never;
- final String summary = mContext.getString(format, mContext.getString(percentFormat,
+ return mContext.getString(format, mContext.getString(percentFormat,
Utils.formatPercentage(percent)));
+ }
- mBatterySaverPref.setSummary(summary);
+ private void updateSummary() {
+ mBatterySaverPref.setSummary(getSummary());
}
private final ContentObserver mObserver = new ContentObserver(new Handler()) {
diff --git a/src/com/android/settings/fuelgauge/FakeUid.java b/src/com/android/settings/fuelgauge/FakeUid.java
index 063185e..0e5fde1 100644
--- a/src/com/android/settings/fuelgauge/FakeUid.java
+++ b/src/com/android/settings/fuelgauge/FakeUid.java
@@ -348,6 +348,14 @@
}
@Override
+ public void getDeferredJobsCheckinLineLocked(StringBuilder sb, int which) {
+ }
+
+ @Override
+ public void getDeferredJobsLineLocked(StringBuilder sb, int which) {
+ }
+
+ @Override
public long getMobileRadioApWakeupCount(int which) {
return 0;
}
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 659166a..e6fd449 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -59,6 +59,7 @@
import com.android.settingslib.utils.PowerUtil;
import com.android.settingslib.utils.StringUtil;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -232,17 +233,20 @@
final SettingsActivity activity = (SettingsActivity) getActivity();
final List<AbstractPreferenceController> controllers = new ArrayList<>();
mBatteryHeaderPreferenceController = new BatteryHeaderPreferenceController(
- context, activity, this /* host */, getLifecycle());
+ context, activity, this /* host */, lifecycle);
controllers.add(mBatteryHeaderPreferenceController);
mBatteryAppListPreferenceController = new BatteryAppListPreferenceController(context,
KEY_APP_LIST, lifecycle, activity, this);
controllers.add(mBatteryAppListPreferenceController);
mBatteryTipPreferenceController = new BatteryTipPreferenceController(context,
- KEY_BATTERY_TIP, (SettingsActivity) getActivity(), this, this);
+ KEY_BATTERY_TIP, (SettingsActivity) getActivity(), this /* fragment */, this /*
+ BatteryTipListener */);
controllers.add(mBatteryTipPreferenceController);
- controllers.add(new BatterySaverController(context, getLifecycle()));
+ BatterySaverController batterySaverController = new BatterySaverController(context);
+ controllers.add(batterySaverController);
controllers.add(new BatteryPercentagePreferenceController(context));
+ lifecycle.addObserver(batterySaverController);
return controllers;
}
@@ -322,7 +326,8 @@
@VisibleForTesting
void updateLastFullChargePreference(long timeMs) {
- final CharSequence timeSequence = StringUtil.formatRelativeTime(getContext(), timeMs, false);
+ final CharSequence timeSequence = StringUtil.formatRelativeTime(getContext(), timeMs,
+ false);
mLastFullChargePref.setSubtitle(timeSequence);
}
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummaryLegacy.java b/src/com/android/settings/fuelgauge/PowerUsageSummaryLegacy.java
index a95320b..75e3d38 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummaryLegacy.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummaryLegacy.java
@@ -67,11 +67,11 @@
import com.android.settings.fuelgauge.anomaly.AnomalySummaryPreferenceController;
import com.android.settings.fuelgauge.anomaly.AnomalyUtils;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.AbstractPreferenceController;
-
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.utils.PowerUtil;
import com.android.settingslib.utils.StringUtil;
+
import java.util.ArrayList;
import java.util.List;
@@ -314,12 +314,14 @@
controllers.add(mBatteryHeaderPreferenceController);
controllers.add(new AutoBrightnessPreferenceController(context, KEY_AUTO_BRIGHTNESS));
controllers.add(new TimeoutPreferenceController(context, KEY_SCREEN_TIMEOUT));
- controllers.add(new BatterySaverController(context, getLifecycle()));
controllers.add(new BatteryPercentagePreferenceController(context));
controllers.add(new AmbientDisplayPreferenceController(
context,
new AmbientDisplayConfiguration(context),
KEY_AMBIENT_DISPLAY));
+ BatterySaverController batterySaverController = new BatterySaverController(context);
+ controllers.add(batterySaverController);
+ getLifecycle().addObserver(batterySaverController);
return controllers;
}
@@ -407,8 +409,11 @@
private void performBatteryHeaderClick() {
if (mPowerFeatureProvider.isAdvancedUiEnabled()) {
- Utils.startWithFragment(getContext(), PowerUsageAdvanced.class.getName(), null,
- null, 0, R.string.advanced_battery_title, null, getMetricsCategory());
+ new SubSettingLauncher(getContext())
+ .setDestination(PowerUsageAdvanced.class.getName())
+ .setSourceMetricsCategory(getMetricsCategory())
+ .setTitle(R.string.advanced_battery_title)
+ .launch();
} else {
mStatsHelper.storeStatsHistoryInFile(BatteryHistoryDetail.BATTERY_HISTORY_FILE);
Bundle args = new Bundle(2);
@@ -416,8 +421,12 @@
BatteryHistoryDetail.BATTERY_HISTORY_FILE);
args.putParcelable(BatteryHistoryDetail.EXTRA_BROADCAST,
mStatsHelper.getBatteryBroadcast());
- Utils.startWithFragment(getContext(), BatteryHistoryDetail.class.getName(), args,
- null, 0, R.string.history_details_title, null, getMetricsCategory());
+ new SubSettingLauncher(getContext())
+ .setDestination(BatteryHistoryDetail.class.getName())
+ .setSourceMetricsCategory(getMetricsCategory())
+ .setArguments(args)
+ .setTitle(R.string.history_details_title)
+ .launch();
}
}
diff --git a/src/com/android/settings/fuelgauge/RestrictAppPreferenceController.java b/src/com/android/settings/fuelgauge/RestrictAppPreferenceController.java
index 92ecd4b..1433008 100644
--- a/src/com/android/settings/fuelgauge/RestrictAppPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/RestrictAppPreferenceController.java
@@ -22,11 +22,14 @@
import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference;
+import com.android.internal.util.CollectionUtils;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.InstrumentedPreferenceFragment;
+import com.android.settings.fuelgauge.batterytip.AppInfo;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -37,7 +40,7 @@
static final String KEY_RESTRICT_APP = "restricted_app";
private AppOpsManager mAppOpsManager;
- private List<AppOpsManager.PackageOps> mPackageOps;
+ private List<AppInfo> mAppInfos;
private SettingsActivity mSettingsActivity;
private InstrumentedPreferenceFragment mPreferenceFragment;
@@ -62,9 +65,17 @@
public void updateState(Preference preference) {
super.updateState(preference);
- mPackageOps = mAppOpsManager.getPackagesForOps(
+ final List<AppOpsManager.PackageOps> packageOpsList = mAppOpsManager.getPackagesForOps(
new int[]{AppOpsManager.OP_RUN_ANY_IN_BACKGROUND});
- final int num = mPackageOps != null ? mPackageOps.size() : 0;
+ final int num = CollectionUtils.size(packageOpsList);
+ mAppInfos = new ArrayList<>();
+
+ for (int i = 0; i < num; i++) {
+ final AppOpsManager.PackageOps packageOps = packageOpsList.get(i);
+ mAppInfos.add(new AppInfo.Builder()
+ .setPackageName(packageOps.getPackageName())
+ .build());
+ }
// Enable the preference if some apps already been restricted, otherwise disable it
preference.setEnabled(num > 0);
@@ -78,7 +89,7 @@
if (getPreferenceKey().equals(preference.getKey())) {
// start fragment
RestrictedAppDetails.startRestrictedAppDetails(mSettingsActivity, mPreferenceFragment,
- mPackageOps);
+ mAppInfos);
return true;
}
diff --git a/src/com/android/settings/fuelgauge/RestrictedAppDetails.java b/src/com/android/settings/fuelgauge/RestrictedAppDetails.java
index 26386b6..656556d 100644
--- a/src/com/android/settings/fuelgauge/RestrictedAppDetails.java
+++ b/src/com/android/settings/fuelgauge/RestrictedAppDetails.java
@@ -17,6 +17,7 @@
package com.android.settings.fuelgauge;
import android.app.AppOpsManager;
+import android.app.Fragment;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
@@ -35,6 +36,7 @@
import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.fuelgauge.batterytip.AppInfo;
import com.android.settings.widget.AppCheckBoxPreference;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -47,11 +49,12 @@
public static final String TAG = "RestrictedAppDetails";
- private static final String EXTRA_PACKAGE_OPS_LIST = "package_ops_list";
+ @VisibleForTesting
+ static final String EXTRA_APP_INFO_LIST = "app_info_list";
private static final String KEY_PREF_RESTRICTED_APP_LIST = "restrict_app_list";
@VisibleForTesting
- List<AppOpsManager.PackageOps> mPackageOpsList;
+ List<AppInfo> mAppInfos;
@VisibleForTesting
IconDrawableFactory mIconDrawableFactory;
@VisibleForTesting
@@ -62,9 +65,9 @@
PackageManager mPackageManager;
public static void startRestrictedAppDetails(SettingsActivity caller,
- InstrumentedPreferenceFragment fragment, List<AppOpsManager.PackageOps> packageOpsList) {
+ InstrumentedPreferenceFragment fragment, List<AppInfo> appInfos) {
final Bundle args = new Bundle();
- args.putParcelableList(EXTRA_PACKAGE_OPS_LIST, packageOpsList);
+ args.putParcelableList(EXTRA_APP_INFO_LIST, appInfos);
new SubSettingLauncher(caller)
.setDestination(RestrictedAppDetails.class.getName())
@@ -80,7 +83,7 @@
final Context context = getContext();
mRestrictedAppListGroup = (PreferenceGroup) findPreference(KEY_PREF_RESTRICTED_APP_LIST);
- mPackageOpsList = getArguments().getParcelableArrayList(EXTRA_PACKAGE_OPS_LIST);
+ mAppInfos = getArguments().getParcelableArrayList(EXTRA_APP_INFO_LIST);
mPackageManager = context.getPackageManager();
mIconDrawableFactory = IconDrawableFactory.newInstance(context);
mBatteryUtils = BatteryUtils.getInstance(context);
@@ -119,19 +122,20 @@
mRestrictedAppListGroup.removeAll();
final Context context = getPrefContext();
- for (int i = 0, size = mPackageOpsList.size(); i < size; i++) {
+ for (int i = 0, size = mAppInfos.size(); i < size; i++) {
final CheckBoxPreference checkBoxPreference = new AppCheckBoxPreference(context);
- final AppOpsManager.PackageOps packageOps = mPackageOpsList.get(i);
+ final AppInfo appInfo = mAppInfos.get(i);
try {
final ApplicationInfo applicationInfo = mPackageManager.getApplicationInfo(
- packageOps.getPackageName(), 0 /* flags */);
+ appInfo.packageName, 0 /* flags */);
checkBoxPreference.setChecked(true);
checkBoxPreference.setTitle(mPackageManager.getApplicationLabel(applicationInfo));
- checkBoxPreference.setKey(packageOps.getPackageName());
+ checkBoxPreference.setKey(appInfo.packageName);
checkBoxPreference.setIcon(
Utils.getBadgedIcon(mIconDrawableFactory, mPackageManager,
- packageOps.getPackageName(),
- UserHandle.getUserId(packageOps.getUid())));
+ appInfo.packageName,
+ UserHandle.getUserId(
+ mBatteryUtils.getPackageUid(appInfo.packageName))));
checkBoxPreference.setOnPreferenceChangeListener((pref, value) -> {
// change the toggle
final int mode = (Boolean) value ? AppOpsManager.MODE_IGNORED
diff --git a/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySaverPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySaverPreferenceController.java
index 4d3dd31..bf8cd07 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySaverPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySaverPreferenceController.java
@@ -29,13 +29,15 @@
*/
public class AutoBatterySaverPreferenceController extends TogglePreferenceController implements
Preference.OnPreferenceChangeListener {
- private static final int LOW_POWER_MODE_TRIGGER_THRESHOLD = 15;
+ private final int mDefWarnLevel;
@VisibleForTesting
static final String KEY_AUTO_BATTERY_SAVER = "auto_battery_saver";
public AutoBatterySaverPreferenceController(Context context) {
super(context, KEY_AUTO_BATTERY_SAVER);
+ mDefWarnLevel = mContext.getResources().getInteger(
+ com.android.internal.R.integer.config_lowBatteryWarningLevel);
}
@Override
@@ -46,7 +48,7 @@
@Override
public boolean isChecked() {
return Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0) != 0;
+ Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, mDefWarnLevel) != 0;
}
@Override
@@ -54,7 +56,7 @@
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL,
isChecked
- ? LOW_POWER_MODE_TRIGGER_THRESHOLD
+ ? mDefWarnLevel
: 0);
return true;
}
diff --git a/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceController.java
index 1cc72a7..05b3503 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceController.java
@@ -42,12 +42,15 @@
LifecycleObserver, OnStart, OnStop, SeekBarPreference.OnPreferenceChangeListener {
@VisibleForTesting
static final String KEY_AUTO_BATTERY_SEEK_BAR = "battery_saver_seek_bar";
+ private final int mDefWarnLevel;
private SeekBarPreference mPreference;
private AutoBatterySaverSettingObserver mContentObserver;
public AutoBatterySeekBarPreferenceController(Context context, Lifecycle lifecycle) {
super(context, KEY_AUTO_BATTERY_SEEK_BAR);
mContentObserver = new AutoBatterySaverSettingObserver(new Handler(Looper.getMainLooper()));
+ mDefWarnLevel = mContext.getResources().getInteger(
+ com.android.internal.R.integer.config_lowBatteryWarningLevel);
if (lifecycle != null) {
lifecycle.addObserver(this);
}
@@ -94,7 +97,7 @@
void updatePreference(Preference preference) {
final ContentResolver contentResolver = mContext.getContentResolver();
final int level = Settings.Global.getInt(contentResolver,
- Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
+ Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, mDefWarnLevel);
if (level == 0) {
preference.setVisible(false);
} else {
diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanUpJobService.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanUpJobService.java
new file mode 100644
index 0000000..d5f4879
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanUpJobService.java
@@ -0,0 +1,75 @@
+/*
+ * 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.fuelgauge.batterytip;
+
+import android.app.job.JobInfo;
+import android.app.job.JobParameters;
+import android.app.job.JobScheduler;
+import android.app.job.JobService;
+import android.content.ComponentName;
+import android.content.Context;
+import android.os.AsyncTask;
+import android.support.annotation.VisibleForTesting;
+import android.util.Log;
+
+import com.android.settings.R;
+import com.android.settingslib.utils.ThreadUtils;
+
+import java.util.concurrent.TimeUnit;
+
+/** A JobService to clean up obsolete data in anomaly database */
+public class AnomalyCleanUpJobService extends JobService {
+ private static final String TAG = "AnomalyCleanUpJobService";
+
+ @VisibleForTesting
+ static final long CLEAN_UP_FREQUENCY_MS = TimeUnit.DAYS.toMillis(1);
+
+ public static void scheduleCleanUp(Context context) {
+ final JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
+
+ final ComponentName component = new ComponentName(context, AnomalyCleanUpJobService.class);
+ final JobInfo.Builder jobBuilder =
+ new JobInfo.Builder(R.id.job_anomaly_clean_up, component)
+ .setMinimumLatency(CLEAN_UP_FREQUENCY_MS)
+ .setRequiresDeviceIdle(true)
+ .setPersisted(true);
+
+ if (jobScheduler.schedule(jobBuilder.build()) != JobScheduler.RESULT_SUCCESS) {
+ Log.i(TAG, "Anomaly clean up job service schedule failed.");
+ }
+ }
+
+ @Override
+ public boolean onStartJob(JobParameters params) {
+ final BatteryDatabaseManager batteryDatabaseManager = BatteryDatabaseManager
+ .getInstance(this);
+ final BatteryTipPolicy policy = new BatteryTipPolicy(this);
+ ThreadUtils.postOnBackgroundThread(() -> {
+ batteryDatabaseManager.deleteAllAnomaliesBeforeTimeStamp(
+ System.currentTimeMillis() - TimeUnit.HOURS.toMillis(
+ policy.dataHistoryRetainHour));
+ jobFinished(params, false /* wantsReschedule */);
+ });
+
+ return true;
+ }
+
+ @Override
+ public boolean onStopJob(JobParameters jobParameters) {
+ return true;
+ }
+}
diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigReceiver.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigReceiver.java
new file mode 100644
index 0000000..f658627
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigReceiver.java
@@ -0,0 +1,94 @@
+/*
+ * 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.fuelgauge.batterytip;
+
+import android.app.PendingIntent;
+import android.app.StatsManager;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.provider.Settings;
+import android.util.Base64;
+import android.util.Log;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+/**
+ * Receive broadcast when {@link StatsManager} restart, then check the anomaly config and
+ * prepare info for {@link StatsManager}
+ */
+public class AnomalyConfigReceiver extends BroadcastReceiver {
+ private static final String TAG = "AnomalyConfigReceiver";
+ private static final int REQUEST_CODE = 0;
+ private static final String PREF_DB = "anomaly_pref";
+ private static final String KEY_ANOMALY_CONFIG_VERSION = "anomaly_config_version";
+ private static final int DEFAULT_VERSION = 0;
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (StatsManager.ACTION_STATSD_STARTED.equals(intent.getAction())
+ || Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
+ final StatsManager statsManager = context.getSystemService(StatsManager.class);
+
+ // Check whether to update the config
+ checkAnomalyConfig(context, statsManager);
+
+ // Upload PendingIntent to StatsManager
+ final Intent extraIntent = new Intent(context, AnomalyDetectionReceiver.class);
+ final PendingIntent pendingIntent = PendingIntent.getBroadcast(context, REQUEST_CODE,
+ extraIntent, PendingIntent.FLAG_UPDATE_CURRENT);
+
+ uploadPendingIntent(statsManager, pendingIntent);
+ }
+ }
+
+ @VisibleForTesting
+ void uploadPendingIntent(StatsManager statsManager, PendingIntent pendingIntent) {
+ Log.i(TAG, "Upload PendingIntent to StatsManager. configKey: "
+ + StatsManagerConfig.ANOMALY_CONFIG_KEY + " subId: "
+ + StatsManagerConfig.SUBSCRIBER_ID);
+ statsManager.setBroadcastSubscriber(StatsManagerConfig.ANOMALY_CONFIG_KEY,
+ StatsManagerConfig.SUBSCRIBER_ID, pendingIntent);
+ }
+
+ private void checkAnomalyConfig(Context context, StatsManager statsManager) {
+ final SharedPreferences sharedPreferences = context.getSharedPreferences(PREF_DB,
+ Context.MODE_PRIVATE);
+ final int currentVersion = sharedPreferences.getInt(KEY_ANOMALY_CONFIG_VERSION,
+ DEFAULT_VERSION);
+ final int newVersion = Settings.Global.getInt(context.getContentResolver(),
+ Settings.Global.ANOMALY_CONFIG_VERSION, DEFAULT_VERSION);
+ Log.i(TAG, "CurrentVersion: " + currentVersion + " new version: " + newVersion);
+
+ if (newVersion > currentVersion) {
+ final byte[] config = Base64.decode(
+ Settings.Global.getString(context.getContentResolver(),
+ Settings.Global.ANOMALY_CONFIG), Base64.DEFAULT);
+ if (statsManager.addConfiguration(StatsManagerConfig.ANOMALY_CONFIG_KEY, config)) {
+ Log.i(TAG, "Upload the anomaly config. configKey: "
+ + StatsManagerConfig.ANOMALY_CONFIG_KEY);
+ SharedPreferences.Editor editor = sharedPreferences.edit();
+ editor.putInt(KEY_ANOMALY_CONFIG_VERSION, newVersion);
+ editor.apply();
+ } else {
+ Log.i(TAG, "Upload the anomaly config failed. configKey: "
+ + StatsManagerConfig.ANOMALY_CONFIG_KEY);
+ }
+ }
+ }
+}
diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionReceiver.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionReceiver.java
new file mode 100644
index 0000000..88f399f
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionReceiver.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.fuelgauge.batterytip;
+
+import android.app.StatsManager;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.os.StatsDimensionsValue;
+import android.support.annotation.VisibleForTesting;
+import android.util.Log;
+
+import com.android.settings.fuelgauge.BatteryUtils;
+
+import java.util.List;
+
+/**
+ * Receive the anomaly info from {@link StatsManager}
+ */
+public class AnomalyDetectionReceiver extends BroadcastReceiver {
+ private static final String TAG = "SettingsAnomalyReceiver";
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ final BatteryDatabaseManager databaseManager = BatteryDatabaseManager.getInstance(context);
+ final BatteryUtils batteryUtils = BatteryUtils.getInstance(context);
+ final long configUid = intent.getLongExtra(StatsManager.EXTRA_STATS_CONFIG_UID, -1);
+ final long configKey = intent.getLongExtra(StatsManager.EXTRA_STATS_CONFIG_KEY, -1);
+ final long subscriptionId = intent.getLongExtra(StatsManager.EXTRA_STATS_SUBSCRIPTION_ID,
+ -1);
+
+ Log.i(TAG, "Anomaly intent received. configUid = " + configUid + " configKey = "
+ + configKey + " subscriptionId = " + subscriptionId);
+ saveAnomalyToDatabase(databaseManager, batteryUtils, intent);
+
+ AnomalyCleanUpJobService.scheduleCleanUp(context);
+ }
+
+ @VisibleForTesting
+ void saveAnomalyToDatabase(BatteryDatabaseManager databaseManager, BatteryUtils batteryUtils
+ , Intent intent) {
+ // The Example of intentDimsValue is: 35:{1:{1:{1:10013|}|}|}
+ StatsDimensionsValue intentDimsValue =
+ intent.getParcelableExtra(StatsManager.EXTRA_STATS_DIMENSIONS_VALUE);
+ Log.i(TAG, "Extra stats value: " + intentDimsValue.toString());
+ List<StatsDimensionsValue> intentTuple = intentDimsValue.getTupleValueList();
+
+ if (!intentTuple.isEmpty()) {
+ try {
+ // TODO(b/72385333): find more robust way to extract the uid.
+ final StatsDimensionsValue intentTupleValue = intentTuple.get(0)
+ .getTupleValueList().get(0).getTupleValueList().get(0);
+ final int uid = intentTupleValue.getIntValue();
+ // TODD(b/72385333): extract anomaly type
+ final int anomalyType = 0;
+ final String packageName = batteryUtils.getPackageName(uid);
+ final long timeMs = System.currentTimeMillis();
+ databaseManager.insertAnomaly(packageName, anomalyType, timeMs);
+ } catch (NullPointerException | IndexOutOfBoundsException e) {
+ Log.e(TAG, "Parse stats dimensions value error.", e);
+ }
+ }
+ }
+}
diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragment.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragment.java
index d93b589..0c9c8a9 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragment.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragment.java
@@ -29,6 +29,7 @@
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.Utils;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.fuelgauge.batterytip.BatteryTipPreferenceController.BatteryTipListener;
import com.android.settings.fuelgauge.batterytip.actions.BatteryTipAction;
@@ -141,7 +142,8 @@
return;
}
final BatteryTipAction action = BatteryTipUtils.getActionForBatteryTip(mBatteryTip,
- (SettingsActivity) getActivity(), this);
+ (SettingsActivity) getActivity(),
+ (InstrumentedPreferenceFragment) getTargetFragment());
if (action != null) {
action.handlePositiveAction();
}
diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java
index a580db1..4a7b51d 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicy.java
@@ -19,7 +19,6 @@
import android.content.Context;
import android.provider.Settings;
import android.support.annotation.VisibleForTesting;
-import android.text.format.DateUtils;
import android.util.KeyValueListParser;
import android.util.Log;
@@ -44,6 +43,7 @@
private static final String KEY_REDUCED_BATTERY_PERCENT = "reduced_battery_percent";
private static final String KEY_LOW_BATTERY_ENABLED = "low_battery_enabled";
private static final String KEY_LOW_BATTERY_HOUR = "low_battery_hour";
+ private static final String KEY_DATA_HISTORY_RETAIN_HOUR = "data_history_retain_hour";
/**
* {@code true} if general battery tip is enabled
@@ -143,6 +143,14 @@
*/
public final int lowBatteryHour;
+ /**
+ * TTL hour for anomaly data stored in database
+ *
+ * @see Settings.Global#BATTERY_TIP_CONSTANTS
+ * @see #KEY_DATA_HISTORY_RETAIN_HOUR
+ */
+ public final int dataHistoryRetainHour;
+
private final KeyValueListParser mParser;
public BatteryTipPolicy(Context context) {
@@ -174,6 +182,7 @@
reducedBatteryPercent = mParser.getInt(KEY_REDUCED_BATTERY_PERCENT, 50);
lowBatteryEnabled = mParser.getBoolean(KEY_LOW_BATTERY_ENABLED, false);
lowBatteryHour = mParser.getInt(KEY_LOW_BATTERY_HOUR, 16);
+ dataHistoryRetainHour = mParser.getInt(KEY_DATA_HISTORY_RETAIN_HOUR, 72);
}
}
diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
index 9ab4c51..db273c0 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
@@ -25,6 +25,7 @@
import com.android.settings.SettingsActivity;
import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.fuelgauge.batterytip.actions.BatteryTipAction;
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
import com.android.settings.fuelgauge.batterytip.tips.SummaryTip;
@@ -48,14 +49,14 @@
PreferenceGroup mPreferenceGroup;
@VisibleForTesting
Context mPrefContext;
- PreferenceFragment mFragment;
+ InstrumentedPreferenceFragment mFragment;
public BatteryTipPreferenceController(Context context, String preferenceKey) {
this(context, preferenceKey, null, null, null);
}
public BatteryTipPreferenceController(Context context, String preferenceKey,
- SettingsActivity settingsActivity, PreferenceFragment fragment,
+ SettingsActivity settingsActivity, InstrumentedPreferenceFragment fragment,
BatteryTipListener batteryTipListener) {
super(context, preferenceKey);
mBatteryTipListener = batteryTipListener;
diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtils.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtils.java
index 5eec322..5c0147a 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtils.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtils.java
@@ -17,11 +17,12 @@
package com.android.settings.fuelgauge.batterytip;
import android.app.Fragment;
-import android.content.Context;
import com.android.settings.SettingsActivity;
+import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.fuelgauge.batterytip.actions.BatterySaverAction;
import com.android.settings.fuelgauge.batterytip.actions.BatteryTipAction;
+import com.android.settings.fuelgauge.batterytip.actions.OpenRestrictAppFragmentAction;
import com.android.settings.fuelgauge.batterytip.actions.RestrictAppAction;
import com.android.settings.fuelgauge.batterytip.actions.SmartBatteryAction;
import com.android.settings.fuelgauge.batterytip.actions.UnrestrictAppAction;
@@ -42,14 +43,19 @@
* @return an action for {@code batteryTip}
*/
public static BatteryTipAction getActionForBatteryTip(BatteryTip batteryTip,
- SettingsActivity settingsActivity, Fragment fragment) {
+ SettingsActivity settingsActivity, InstrumentedPreferenceFragment fragment) {
switch (batteryTip.getType()) {
case BatteryTip.TipType.SMART_BATTERY_MANAGER:
return new SmartBatteryAction(settingsActivity, fragment);
case BatteryTip.TipType.BATTERY_SAVER:
return new BatterySaverAction(settingsActivity);
case BatteryTip.TipType.APP_RESTRICTION:
- return new RestrictAppAction(settingsActivity, (RestrictAppTip) batteryTip);
+ if (batteryTip.getState() == BatteryTip.StateType.HANDLED) {
+ return new OpenRestrictAppFragmentAction(settingsActivity, fragment,
+ (RestrictAppTip) batteryTip);
+ } else {
+ return new RestrictAppAction(settingsActivity, (RestrictAppTip) batteryTip);
+ }
case BatteryTip.TipType.REMOVE_APP_RESTRICTION:
return new UnrestrictAppAction(settingsActivity, (UnrestrictAppTip) batteryTip);
default:
diff --git a/src/com/android/settings/fuelgauge/batterytip/StatsManagerConfig.java b/src/com/android/settings/fuelgauge/batterytip/StatsManagerConfig.java
new file mode 100644
index 0000000..3b5e97d
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batterytip/StatsManagerConfig.java
@@ -0,0 +1,33 @@
+/*
+ * 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.fuelgauge.batterytip;
+
+/**
+ * This class provides all the configs needed if we want to use {@link android.app.StatsManager}
+ */
+public class StatsManagerConfig {
+ /**
+ * The key that represents the anomaly config.
+ * This value is used in {@link android.app.StatsManager#addConfiguration(long, byte[])}
+ */
+ public static final long ANOMALY_CONFIG_KEY = 1;
+
+ /**
+ * The key that represents subscriber, which is settings app.
+ */
+ public static final long SUBSCRIBER_ID = 1;
+}
diff --git a/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentAction.java b/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentAction.java
new file mode 100644
index 0000000..77bf861
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batterytip/actions/OpenRestrictAppFragmentAction.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.fuelgauge.batterytip.actions;
+
+import android.app.Fragment;
+
+import com.android.settings.SettingsActivity;
+import com.android.settings.core.InstrumentedPreferenceFragment;
+import com.android.settings.fuelgauge.BatteryUtils;
+import com.android.settings.fuelgauge.RestrictedAppDetails;
+import com.android.settings.fuelgauge.batterytip.AppInfo;
+import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip;
+
+import java.util.List;
+
+/**
+ * Action to open the {@link com.android.settings.fuelgauge.RestrictedAppDetails}
+ */
+public class OpenRestrictAppFragmentAction extends BatteryTipAction {
+ private final RestrictAppTip mRestrictAppTip;
+ private final BatteryUtils mBatteryUtils;
+ private final SettingsActivity mSettingsActivity;
+ private final InstrumentedPreferenceFragment mFragment;
+
+ public OpenRestrictAppFragmentAction(SettingsActivity settingsActivity,
+ InstrumentedPreferenceFragment fragment, RestrictAppTip tip) {
+ super(fragment.getContext());
+ mSettingsActivity = settingsActivity;
+ mFragment = fragment;
+ mRestrictAppTip = tip;
+ mBatteryUtils = BatteryUtils.getInstance(mContext);
+ }
+
+ /**
+ * Handle the action when user clicks positive button
+ */
+ @Override
+ public void handlePositiveAction() {
+ final List<AppInfo> mAppInfos = mRestrictAppTip.getRestrictAppList();
+ RestrictedAppDetails.startRestrictedAppDetails(mSettingsActivity, mFragment,
+ mAppInfos);
+ }
+}
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTip.java
index f8d8fa1..7b8f624 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTip.java
@@ -62,13 +62,17 @@
@Override
public void updateState(BatteryTip tip) {
- final EarlyWarningTip earlyHeadsUpTip = (EarlyWarningTip) tip;
- if (mPowerSaveModeOn != earlyHeadsUpTip.mPowerSaveModeOn) {
- mPowerSaveModeOn = earlyHeadsUpTip.mPowerSaveModeOn;
- mState = earlyHeadsUpTip.mPowerSaveModeOn ? StateType.HANDLED : StateType.NEW;
- } else if (mState != StateType.HANDLED) {
- mState = earlyHeadsUpTip.getState();
+ final EarlyWarningTip earlyWarningTip = (EarlyWarningTip) tip;
+ if (earlyWarningTip.mState == StateType.NEW) {
+ // Display it if there is early warning
+ mState = StateType.NEW;
+ } else if (mState == StateType.NEW && earlyWarningTip.mState == StateType.INVISIBLE) {
+ // If powerSaveMode is really on, show it as handled, otherwise just dismiss it.
+ mState = earlyWarningTip.mPowerSaveModeOn ? StateType.HANDLED : StateType.INVISIBLE;
+ } else {
+ mState = earlyWarningTip.getState();
}
+ mPowerSaveModeOn = earlyWarningTip.mPowerSaveModeOn;
}
@Override
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java
index a40f292..4d286be 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/RestrictAppTip.java
@@ -35,12 +35,12 @@
private List<AppInfo> mRestrictAppList;
public RestrictAppTip(@StateType int state, List<AppInfo> restrictApps) {
- super(TipType.APP_RESTRICTION, state, true /* showDialog */);
+ super(TipType.APP_RESTRICTION, state, state == StateType.NEW /* showDialog */);
mRestrictAppList = restrictApps;
}
public RestrictAppTip(@StateType int state, AppInfo appInfo) {
- super(TipType.APP_RESTRICTION, state, true /* showDialog */);
+ super(TipType.APP_RESTRICTION, state, state == StateType.NEW /* showDialog */);
mRestrictAppList = new ArrayList<>();
mRestrictAppList.add(appInfo);
}
@@ -85,9 +85,11 @@
// Display it if new anomaly comes
mState = StateType.NEW;
mRestrictAppList = ((RestrictAppTip) tip).mRestrictAppList;
+ mShowDialog = true;
} else if (mState == StateType.NEW && tip.mState == StateType.INVISIBLE) {
// If anomaly becomes invisible, show it as handled
mState = StateType.HANDLED;
+ mShowDialog = false;
}
}
diff --git a/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java b/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java
index 3243e56..fd33051 100644
--- a/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java
+++ b/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java
@@ -23,17 +23,14 @@
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.core.InstrumentedFragment;
import com.android.settings.R;
-import com.android.settings.SettingsActivity;
+import com.android.settings.core.InstrumentedFragment;
import com.android.settings.inputmethod.UserDictionaryAddWordContents.LocaleRenderer;
import java.util.ArrayList;
-import java.util.Locale;
/**
* Fragment to add a word/shortcut to the user dictionary.
@@ -41,9 +38,7 @@
* As opposed to the UserDictionaryActivity, this is only invoked within Settings
* from the UserDictionarySettings.
*/
-public class UserDictionaryAddWordFragment extends InstrumentedFragment
- implements AdapterView.OnItemSelectedListener,
- com.android.internal.app.LocalePicker.LocaleSelectionListener {
+public class UserDictionaryAddWordFragment extends InstrumentedFragment {
private static final int OPTIONS_MENU_DELETE = Menu.FIRST;
@@ -136,30 +131,4 @@
mContents.apply(getActivity(), null);
}
}
-
- @Override
- public void onItemSelected(final AdapterView<?> parent, final View view, final int pos,
- final long id) {
- final LocaleRenderer locale = (LocaleRenderer)parent.getItemAtPosition(pos);
- if (locale.isMoreLanguages()) {
- SettingsActivity sa = (SettingsActivity)getActivity();
- sa.startPreferenceFragment(new UserDictionaryLocalePicker(this), true);
- } else {
- mContents.updateLocale(locale.getLocaleString());
- }
- }
-
- @Override
- public void onNothingSelected(final AdapterView<?> parent) {
- // I'm not sure we can come here, but if we do, that's the right thing to do.
- final Bundle args = getArguments();
- mContents.updateLocale(args.getString(UserDictionaryAddWordContents.EXTRA_LOCALE));
- }
-
- // Called by the locale picker
- @Override
- public void onLocaleSelected(final Locale locale) {
- mContents.updateLocale(locale.toString());
- getActivity().onBackPressed();
- }
}
diff --git a/src/com/android/settings/inputmethod/UserDictionaryLocalePicker.java b/src/com/android/settings/inputmethod/UserDictionaryLocalePicker.java
deleted file mode 100644
index c3c4237..0000000
--- a/src/com/android/settings/inputmethod/UserDictionaryLocalePicker.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (C) 2012 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.inputmethod;
-
-public class UserDictionaryLocalePicker extends com.android.internal.app.LocalePicker {
- public UserDictionaryLocalePicker(final UserDictionaryAddWordFragment parent) {
- super();
- setLocaleSelectionListener(parent);
- }
-}
diff --git a/src/com/android/settings/language/PhoneLanguagePreferenceController.java b/src/com/android/settings/language/PhoneLanguagePreferenceController.java
index 1fd7db7..1b11f59 100644
--- a/src/com/android/settings/language/PhoneLanguagePreferenceController.java
+++ b/src/com/android/settings/language/PhoneLanguagePreferenceController.java
@@ -21,9 +21,8 @@
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
-import com.android.settings.Utils;
-import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settings.localepicker.LocaleListEditor;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -72,9 +71,11 @@
if (!KEY_PHONE_LANGUAGE.equals(preference.getKey())) {
return false;
}
- Utils.startWithFragment(mContext, LocaleListEditor.class.getName(), null, null, 0,
- R.string.pref_title_lang_selection, null,
- MetricsProto.MetricsEvent.SETTINGS_LANGUAGE_CATEGORY);
+ new SubSettingLauncher(mContext)
+ .setDestination(LocaleListEditor.class.getName())
+ .setSourceMetricsCategory(MetricsProto.MetricsEvent.SETTINGS_LANGUAGE_CATEGORY)
+ .setTitle(R.string.pref_title_lang_selection)
+ .launch();
return true;
}
diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java
index 510c162..3e9c8af 100644
--- a/src/com/android/settings/location/LocationSettings.java
+++ b/src/com/android/settings/location/LocationSettings.java
@@ -67,15 +67,13 @@
private LocationSwitchBarController mSwitchBarController;
@Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
+ public int getInitialExpandedChildCount() {
final RecentLocationApps recentLocationApps = new RecentLocationApps(getActivity());
- int locationRequestsApps = recentLocationApps.getAppList().size();
- int locationRequestsPrefs = locationRequestsApps == 0 ? 1 : locationRequestsApps;
- getPreferenceScreen().setInitialExpandedChildrenCount(locationRequestsPrefs + 2);
+ final int locationRequestsApps = recentLocationApps.getAppList().size();
+ final int locationRequestsPrefs = locationRequestsApps == 0 ? 1 : locationRequestsApps;
+ return locationRequestsPrefs + 2;
}
-
@Override
public int getMetricsCategory() {
return MetricsEvent.LOCATION;
diff --git a/src/com/android/settings/network/NetworkResetActionMenuController.java b/src/com/android/settings/network/NetworkResetActionMenuController.java
index 75db65e..08d6d63 100644
--- a/src/com/android/settings/network/NetworkResetActionMenuController.java
+++ b/src/com/android/settings/network/NetworkResetActionMenuController.java
@@ -20,10 +20,10 @@
import android.view.Menu;
import android.view.MenuItem;
-import com.android.internal.logging.nano.MetricsProto;
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.ResetNetwork;
-import com.android.settings.Utils;
+import com.android.settings.core.SubSettingLauncher;
public class NetworkResetActionMenuController {
@@ -44,9 +44,11 @@
}
if (item != null) {
item.setOnMenuItemClickListener(target -> {
- Utils.startWithFragment(mContext, ResetNetwork.class.getName(), null, null,
- 0, R.string.reset_network_title, null,
- MetricsProto.MetricsEvent.SETTINGS_NETWORK_CATEGORY);
+ new SubSettingLauncher(mContext)
+ .setDestination(ResetNetwork.class.getName())
+ .setSourceMetricsCategory(MetricsEvent.SETTINGS_NETWORK_CATEGORY)
+ .setTitle(R.string.reset_network_title)
+ .launch();
return true;
});
}
diff --git a/src/com/android/settings/notification/NotificationSettingsBase.java b/src/com/android/settings/notification/NotificationSettingsBase.java
index 09789f3..a4310a1 100644
--- a/src/com/android/settings/notification/NotificationSettingsBase.java
+++ b/src/com/android/settings/notification/NotificationSettingsBase.java
@@ -16,65 +16,42 @@
package com.android.settings.notification;
-import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
import static android.app.NotificationManager.IMPORTANCE_LOW;
import static android.app.NotificationManager.IMPORTANCE_NONE;
-import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED;
-
-import com.android.internal.widget.LockPatternUtils;
-import com.android.settings.R;
-import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.Utils;
-import com.android.settings.applications.AppInfoBase;
-import com.android.settings.applications.LayoutPreference;
-import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.search.Indexable;
-import com.android.settings.widget.MasterCheckBoxPreference;
-import com.android.settings.widget.MasterSwitchPreference;
-import com.android.settings.widget.SwitchBar;
-import com.android.settings.wrapper.NotificationChannelGroupWrapper;
-import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedSwitchPreference;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.widget.FooterPreference;
+import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationChannelGroup;
import android.app.NotificationManager;
-import android.app.admin.DevicePolicyManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.ActivityInfo;
-import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
-import android.content.pm.UserInfo;
-import android.net.Uri;
import android.os.Bundle;
import android.os.UserHandle;
-import android.os.UserManager;
-import android.provider.SearchIndexableResource;
import android.provider.Settings;
-import android.service.notification.NotificationListenerService;
-import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils;
-import android.util.ArrayMap;
import android.util.Log;
import android.widget.Toast;
-import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+import com.android.settings.R;
+import com.android.settings.applications.AppInfoBase;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.widget.MasterCheckBoxPreference;
+import com.android.settings.wrapper.NotificationChannelGroupWrapper;
+import com.android.settingslib.RestrictedLockUtils;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@@ -268,11 +245,12 @@
channelArgs.putInt(AppInfoBase.ARG_PACKAGE_UID, mUid);
channelArgs.putString(AppInfoBase.ARG_PACKAGE_NAME, mPkg);
channelArgs.putString(Settings.EXTRA_CHANNEL_ID, channel.getId());
- Intent channelIntent = Utils.onBuildStartFragmentIntent(getActivity(),
- ChannelNotificationSettings.class.getName(),
- channelArgs, null, R.string.notification_channel_title, null, false,
- getMetricsCategory());
- channelPref.setIntent(channelIntent);
+ channelPref.setIntent(new SubSettingLauncher(getActivity())
+ .setDestination(ChannelNotificationSettings.class.getName())
+ .setArguments(channelArgs)
+ .setTitle(R.string.notification_channel_title)
+ .setSourceMetricsCategory(getMetricsCategory())
+ .toIntent());
channelPref.setOnPreferenceChangeListener(
new Preference.OnPreferenceChangeListener() {
diff --git a/src/com/android/settings/notification/RecentNotifyingAppsPreferenceController.java b/src/com/android/settings/notification/RecentNotifyingAppsPreferenceController.java
index ce5e1d1..6cc99f7 100644
--- a/src/com/android/settings/notification/RecentNotifyingAppsPreferenceController.java
+++ b/src/com/android/settings/notification/RecentNotifyingAppsPreferenceController.java
@@ -33,16 +33,13 @@
import android.util.ArraySet;
import android.util.IconDrawableFactory;
import android.util.Log;
-import android.widget.Switch;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
-import com.android.settings.Utils;
import com.android.settings.applications.AppInfoBase;
import com.android.settings.applications.InstalledAppCounter;
import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settings.widget.AppPreference;
-import com.android.settings.widget.MasterSwitchPreference;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settingslib.applications.AppUtils;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -237,10 +234,13 @@
args.putString(AppInfoBase.ARG_PACKAGE_NAME, pkgName);
args.putInt(AppInfoBase.ARG_PACKAGE_UID, appEntry.info.uid);
- pref.setIntent(Utils.onBuildStartFragmentIntent(mHost.getActivity(),
- AppNotificationSettings.class.getName(), args, null,
- R.string.notifications_title, null, false,
- MetricsProto.MetricsEvent.MANAGE_APPLICATIONS_NOTIFICATIONS));
+ pref.setIntent(new SubSettingLauncher(mHost.getActivity())
+ .setDestination(AppNotificationSettings.class.getName())
+ .setTitle(R.string.notifications_title)
+ .setArguments(args)
+ .setSourceMetricsCategory(
+ MetricsProto.MetricsEvent.MANAGE_APPLICATIONS_NOTIFICATIONS)
+ .toIntent());
pref.setOnPreferenceChangeListener((preference, newValue) -> {
boolean blocked = !(Boolean) newValue;
mNotificationBackend.setNotificationsEnabledForPackage(
diff --git a/src/com/android/settings/print/PrintSettingPreferenceController.java b/src/com/android/settings/print/PrintSettingPreferenceController.java
index bb8a81e..1f85c4c 100644
--- a/src/com/android/settings/print/PrintSettingPreferenceController.java
+++ b/src/com/android/settings/print/PrintSettingPreferenceController.java
@@ -18,6 +18,7 @@
import android.content.Context;
import android.content.pm.PackageManager;
+import android.os.UserManager;
import android.print.PrintJob;
import android.print.PrintJobId;
import android.print.PrintJobInfo;
@@ -29,6 +30,7 @@
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.wrapper.PrintManagerWrapper;
+import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
@@ -41,12 +43,14 @@
public class PrintSettingPreferenceController extends BasePreferenceController implements
LifecycleObserver, OnStart, OnStop, PrintManager.PrintJobStateChangeListener {
+ private static final String KEY_PRINTING_SETTINGS = "connected_device_printing";
+
private final PackageManager mPackageManager;
private PrintManagerWrapper mPrintManager;
private Preference mPreference;
public PrintSettingPreferenceController(Context context) {
- super(context, "connected_device_printing" /* preferenceKey */);
+ super(context, KEY_PRINTING_SETTINGS);
mPackageManager = context.getPackageManager();
mPrintManager = new PrintManagerWrapper(context);
}
@@ -84,6 +88,8 @@
return;
}
preference.setSummary(getSummary());
+ ((RestrictedPreference) preference).checkRestrictionAndSetDisabled(
+ UserManager.DISALLOW_PRINTING);
}
@Override
diff --git a/src/com/android/settings/search/BaseSearchIndexProvider.java b/src/com/android/settings/search/BaseSearchIndexProvider.java
index 5723300..f75aa85 100644
--- a/src/com/android/settings/search/BaseSearchIndexProvider.java
+++ b/src/com/android/settings/search/BaseSearchIndexProvider.java
@@ -29,6 +29,7 @@
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.core.PreferenceXmlParserUtils;
import com.android.settingslib.core.AbstractPreferenceController;
import org.xmlpull.v1.XmlPullParser;
@@ -119,7 +120,7 @@
final AttributeSet attrs = Xml.asAttributeSet(parser);
try {
while (parser.next() != XmlPullParser.END_DOCUMENT) {
- final String key = XmlParserUtils.getDataKey(context, attrs);
+ final String key = PreferenceXmlParserUtils.getDataKey(context, attrs);
if (!TextUtils.isEmpty(key)) {
nonIndexableKeys.add(key);
}
diff --git a/src/com/android/settings/search/DatabaseIndexingUtils.java b/src/com/android/settings/search/DatabaseIndexingUtils.java
index 94ec650..c7c2320 100644
--- a/src/com/android/settings/search/DatabaseIndexingUtils.java
+++ b/src/com/android/settings/search/DatabaseIndexingUtils.java
@@ -26,9 +26,9 @@
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.SettingsActivity;
-import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settingslib.core.AbstractPreferenceController;
import java.lang.reflect.Field;
@@ -59,8 +59,12 @@
String screenTitle, int sourceMetricsCategory) {
final Bundle args = new Bundle();
args.putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, key);
- final Intent searchDestination = Utils.onBuildStartFragmentIntent(context,
- className, args, null, 0, screenTitle, false, sourceMetricsCategory);
+ final Intent searchDestination = new SubSettingLauncher(context)
+ .setDestination(className)
+ .setArguments(args)
+ .setTitle(screenTitle)
+ .setSourceMetricsCategory(sourceMetricsCategory)
+ .toIntent();
searchDestination.putExtra(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, key)
.setAction("com.android.settings.SEARCH_RESULT_TRAMPOLINE")
.setComponent(null);
diff --git a/src/com/android/settings/search/indexing/IndexDataConverter.java b/src/com/android/settings/search/indexing/IndexDataConverter.java
index c40a466..5d20704 100644
--- a/src/com/android/settings/search/indexing/IndexDataConverter.java
+++ b/src/com/android/settings/search/indexing/IndexDataConverter.java
@@ -29,11 +29,10 @@
import android.util.Log;
import android.util.Xml;
-import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.search.DatabaseIndexingUtils;
+import com.android.settings.core.PreferenceXmlParserUtils;
import com.android.settings.search.ResultPayload;
import com.android.settings.search.SearchIndexableRaw;
-import com.android.settings.search.XmlParserUtils;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -161,8 +160,8 @@
final int outerDepth = parser.getDepth();
final AttributeSet attrs = Xml.asAttributeSet(parser);
- final String screenTitle = XmlParserUtils.getDataTitle(context, attrs);
- String key = XmlParserUtils.getDataKey(context, attrs);
+ final String screenTitle = PreferenceXmlParserUtils.getDataTitle(context, attrs);
+ String key = PreferenceXmlParserUtils.getDataKey(context, attrs);
String title;
String headerTitle;
@@ -186,9 +185,9 @@
.getPayloadKeyMap(fragmentName, context);
}
- headerTitle = XmlParserUtils.getDataTitle(context, attrs);
- headerSummary = XmlParserUtils.getDataSummary(context, attrs);
- headerKeywords = XmlParserUtils.getDataKeywords(context, attrs);
+ headerTitle = PreferenceXmlParserUtils.getDataTitle(context, attrs);
+ headerSummary = PreferenceXmlParserUtils.getDataSummary(context, attrs);
+ headerKeywords = PreferenceXmlParserUtils.getDataKeywords(context, attrs);
enabled = !nonIndexableKeys.contains(key);
// TODO: Set payload type for header results
@@ -217,11 +216,11 @@
nodeName = parser.getName();
- title = XmlParserUtils.getDataTitle(context, attrs);
- key = XmlParserUtils.getDataKey(context, attrs);
+ title = PreferenceXmlParserUtils.getDataTitle(context, attrs);
+ key = PreferenceXmlParserUtils.getDataKey(context, attrs);
enabled = !nonIndexableKeys.contains(key);
- keywords = XmlParserUtils.getDataKeywords(context, attrs);
- iconResId = XmlParserUtils.getDataIcon(context, attrs);
+ keywords = PreferenceXmlParserUtils.getDataKeywords(context, attrs);
+ iconResId = PreferenceXmlParserUtils.getDataIcon(context, attrs);
if (isHeaderUnique && TextUtils.equals(headerTitle, title)) {
isHeaderUnique = false;
@@ -241,17 +240,17 @@
.setUserId(-1 /* default user id */);
if (!nodeName.equals(NODE_NAME_CHECK_BOX_PREFERENCE)) {
- summary = XmlParserUtils.getDataSummary(context, attrs);
+ summary = PreferenceXmlParserUtils.getDataSummary(context, attrs);
String entries = null;
if (nodeName.endsWith(NODE_NAME_LIST_PREFERENCE)) {
- entries = XmlParserUtils.getDataEntries(context, attrs);
+ entries = PreferenceXmlParserUtils.getDataEntries(context, attrs);
}
// TODO (b/62254931) index primitives instead of payload
payload = controllerUriMap.get(key);
- childFragment = XmlParserUtils.getDataChildFragment(context, attrs);
+ childFragment = PreferenceXmlParserUtils.getDataChildFragment(context, attrs);
builder.setSummaryOn(summary)
.setEntries(entries)
@@ -263,11 +262,11 @@
// TODO (b/33577327) We removed summary off here. We should check if we can
// merge this 'else' section with the one above. Put a break point to
// investigate.
- String summaryOn = XmlParserUtils.getDataSummaryOn(context, attrs);
- String summaryOff = XmlParserUtils.getDataSummaryOff(context, attrs);
+ String summaryOn = PreferenceXmlParserUtils.getDataSummaryOn(context, attrs);
+ String summaryOff = PreferenceXmlParserUtils.getDataSummaryOff(context, attrs);
if (TextUtils.isEmpty(summaryOn) && TextUtils.isEmpty(summaryOff)) {
- summaryOn = XmlParserUtils.getDataSummary(context, attrs);
+ summaryOn = PreferenceXmlParserUtils.getDataSummary(context, attrs);
}
builder.setSummaryOn(summaryOn);
diff --git a/src/com/android/settings/security/SecuritySettings.java b/src/com/android/settings/security/SecuritySettings.java
index 7298cd6..313b483 100644
--- a/src/com/android/settings/security/SecuritySettings.java
+++ b/src/com/android/settings/security/SecuritySettings.java
@@ -48,6 +48,8 @@
public class SecuritySettings extends DashboardFragment {
private static final String TAG = "SecuritySettings";
+ private static final String SECURITY_CATEGORY = "security_category";
+ private static final String WORK_PROFILE_SECURITY_CATEGORY = "security_category_profile";
public static final int CHANGE_TRUST_AGENT_SETTINGS = 126;
public static final int UNIFY_LOCK_CONFIRM_DEVICE_REQUEST = 128;
@@ -118,12 +120,17 @@
controllers.add(new ScreenPinningPreferenceController(context));
controllers.add(new SimLockPreferenceController(context));
controllers.add(new ShowPasswordPreferenceController(context));
- controllers.add(new FingerprintStatusPreferenceController(context));
controllers.add(new EncryptionStatusPreferenceController(context,
PREF_KEY_ENCRYPTION_SECURITY_PAGE));
controllers.add(new TrustAgentListPreferenceController(context, host, lifecycle));
- controllers.add(new LockScreenPreferenceController(context, lifecycle));
- controllers.add(new ChangeScreenLockPreferenceController(context, host));
+
+ final List<AbstractPreferenceController> securityPreferenceControllers = new ArrayList<>();
+ securityPreferenceControllers.add(new FingerprintStatusPreferenceController(context));
+ securityPreferenceControllers.add(new LockScreenPreferenceController(context, lifecycle));
+ securityPreferenceControllers.add(new ChangeScreenLockPreferenceController(context, host));
+ controllers.add(new PreferenceCategoryController(context, SECURITY_CATEGORY,
+ securityPreferenceControllers));
+ controllers.addAll(securityPreferenceControllers);
final List<AbstractPreferenceController> profileSecurityControllers = new ArrayList<>();
profileSecurityControllers.add(new ChangeProfileScreenLockPreferenceController(
@@ -132,7 +139,7 @@
profileSecurityControllers.add(new VisiblePatternProfilePreferenceController(
context, lifecycle));
profileSecurityControllers.add(new FingerprintProfileStatusPreferenceController(context));
- controllers.add(new PreferenceCategoryController(context, "security_category_profile",
+ controllers.add(new PreferenceCategoryController(context, WORK_PROFILE_SECURITY_CATEGORY,
profileSecurityControllers));
controllers.addAll(profileSecurityControllers);
diff --git a/src/com/android/settings/slices/SettingsSliceProvider.java b/src/com/android/settings/slices/SettingsSliceProvider.java
index 433bdf3..d8ba991 100644
--- a/src/com/android/settings/slices/SettingsSliceProvider.java
+++ b/src/com/android/settings/slices/SettingsSliceProvider.java
@@ -35,6 +35,7 @@
import androidx.app.slice.Slice;
import androidx.app.slice.SliceProvider;
+import androidx.app.slice.builders.SliceAction;
import androidx.app.slice.builders.ListBuilder;
/**
@@ -173,8 +174,9 @@
.setTitle(getContext().getString(R.string.wifi_settings))
.setTitleItem(Icon.createWithResource(getContext(), R.drawable.wifi_signal))
.setSubtitle(state)
- .addToggle(getBroadcastIntent(ACTION_WIFI_CHANGED), finalWifiEnabled)
- .setContentIntent(getIntent(Intent.ACTION_MAIN)))
+ .addEndItem(new SliceAction(getBroadcastIntent(ACTION_WIFI_CHANGED),
+ null, finalWifiEnabled))
+ .setPrimaryAction(new SliceAction(getIntent(Intent.ACTION_MAIN), null, null)))
.build();
}
diff --git a/src/com/android/settings/slices/SliceBuilderUtils.java b/src/com/android/settings/slices/SliceBuilderUtils.java
index 11ff1c1..3df24ed 100644
--- a/src/com/android/settings/slices/SliceBuilderUtils.java
+++ b/src/com/android/settings/slices/SliceBuilderUtils.java
@@ -33,10 +33,8 @@
import com.android.settings.search.DatabaseIndexingUtils;
import com.android.settingslib.core.AbstractPreferenceController;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-
import androidx.app.slice.Slice;
+import androidx.app.slice.builders.SliceAction;
import androidx.app.slice.builders.ListBuilder;
import androidx.app.slice.builders.ListBuilder.RowBuilder;
@@ -66,7 +64,7 @@
.setTitle(sliceData.getTitle())
.setTitleItem(icon)
.setSubtitle(subtitleText)
- .setContentIntent(contentIntent);
+ .setPrimaryAction(new SliceAction(contentIntent, null, null));
// TODO (b/71640747) Respect setting availability.
@@ -87,53 +85,23 @@
public static BasePreferenceController getPreferenceController(Context context,
SliceData sliceData) {
try {
- return getController(context, sliceData, true /* isContextOnly */);
+ return BasePreferenceController.createInstance(context,
+ sliceData.getPreferenceController());
} catch (IllegalStateException e) {
// Do nothing
Log.d(TAG, "Could not find Context-only controller for preference controller: "
+ sliceData.getKey());
}
- return getController(context, sliceData, false /* isContextOnly */);
- }
-
- /**
- * Attempts to build a {@link BasePreferenceController} from {@param SliceData}.
- *
- * @param sliceData Backing data for the Slice.
- * @param contextOnlyCtor {@code true} when the constructor for the
- * {@link BasePreferenceController}
- * only takes a {@link Context}. Else the constructor will be ({@link
- * Context}, {@code String}.
- */
- private static BasePreferenceController getController(Context context, SliceData sliceData,
- boolean contextOnlyCtor) {
- try {
- Class<?> clazz = Class.forName(sliceData.getPreferenceController());
- Constructor<?> preferenceConstructor;
- Object[] params;
-
- if (contextOnlyCtor) {
- preferenceConstructor = clazz.getConstructor(Context.class);
- params = new Object[]{context};
- } else {
- preferenceConstructor = clazz.getConstructor(Context.class, String.class);
- params = new Object[]{context, sliceData.getKey()};
- }
-
- return (BasePreferenceController) preferenceConstructor.newInstance(params);
- } catch (ClassNotFoundException | NoSuchMethodException | InstantiationException |
- IllegalArgumentException | InvocationTargetException | IllegalAccessException e) {
- throw new IllegalStateException(
- "Invalid preference controller: " + sliceData.getPreferenceController(), e);
- }
+ return BasePreferenceController.createInstance(context, sliceData.getPreferenceController(),
+ sliceData.getKey());
}
private static void addToggleAction(Context context, RowBuilder builder, boolean isChecked,
String key) {
PendingIntent actionIntent = getActionIntent(context,
SettingsSliceProvider.ACTION_TOGGLE_CHANGED, key);
- builder.addToggle(actionIntent, isChecked);
+ builder.addEndItem(new SliceAction(actionIntent, null, isChecked));
}
private static PendingIntent getActionIntent(Context context, String action, String key) {
diff --git a/src/com/android/settings/slices/SliceDataConverter.java b/src/com/android/settings/slices/SliceDataConverter.java
index e5a21e4..a023b16 100644
--- a/src/com/android/settings/slices/SliceDataConverter.java
+++ b/src/com/android/settings/slices/SliceDataConverter.java
@@ -30,7 +30,7 @@
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.DatabaseIndexingUtils;
import com.android.settings.search.Indexable.SearchIndexProvider;
-import com.android.settings.search.XmlParserUtils;
+import com.android.settings.core.PreferenceXmlParserUtils;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -151,7 +151,7 @@
final int outerDepth = parser.getDepth();
final AttributeSet attrs = Xml.asAttributeSet(parser);
- final String screenTitle = XmlParserUtils.getDataTitle(mContext, attrs);
+ final String screenTitle = PreferenceXmlParserUtils.getDataTitle(mContext, attrs);
// TODO (b/67996923) Investigate if we need headers for Slices, since they never
// correspond to an actual setting.
@@ -168,15 +168,15 @@
// TODO (b/67996923) This will not work if preferences have nested intents:
// <pref ....>
// <intent action="blab"/> </pref>
- controllerClassName = XmlParserUtils.getController(mContext, attrs);
+ controllerClassName = PreferenceXmlParserUtils.getController(mContext, attrs);
if (TextUtils.isEmpty(controllerClassName)) {
continue;
}
- title = XmlParserUtils.getDataTitle(mContext, attrs);
- key = XmlParserUtils.getDataKey(mContext, attrs);
- iconResId = XmlParserUtils.getDataIcon(mContext, attrs);
- summary = XmlParserUtils.getDataSummary(mContext, attrs);
+ title = PreferenceXmlParserUtils.getDataTitle(mContext, attrs);
+ key = PreferenceXmlParserUtils.getDataKey(mContext, attrs);
+ iconResId = PreferenceXmlParserUtils.getDataIcon(mContext, attrs);
+ summary = PreferenceXmlParserUtils.getDataSummary(mContext, attrs);
xmlSlice = new SliceData.Builder()
.setKey(key)
diff --git a/src/com/android/settings/widget/HighlightablePreferenceGroupAdapter.java b/src/com/android/settings/widget/HighlightablePreferenceGroupAdapter.java
index e1999ef..cad11b7 100644
--- a/src/com/android/settings/widget/HighlightablePreferenceGroupAdapter.java
+++ b/src/com/android/settings/widget/HighlightablePreferenceGroupAdapter.java
@@ -16,10 +16,14 @@
package com.android.settings.widget;
+import static com.android.settings.SettingsActivity.EXTRA_FRAGMENT_ARG_KEY;
+
import android.content.Context;
+import android.os.Bundle;
import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceGroupAdapter;
+import android.support.v7.preference.PreferenceScreen;
import android.support.v7.preference.PreferenceViewHolder;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
@@ -27,6 +31,7 @@
import android.view.View;
import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
public class HighlightablePreferenceGroupAdapter extends PreferenceGroupAdapter {
@@ -41,6 +46,39 @@
private boolean mHighlightRequested;
private int mHighlightPosition = RecyclerView.NO_POSITION;
+
+ /**
+ * Tries to override initial expanded child count.
+ * <p/>
+ * Initial expanded child count will be ignored if:
+ * 1. fragment contains request to highlight a particular row.
+ * 2. count value is invalid.
+ */
+ public static void adjustInitialExpandedChildCount(SettingsPreferenceFragment host) {
+ if (host == null) {
+ return;
+ }
+ final PreferenceScreen screen = host.getPreferenceScreen();
+ if (screen == null) {
+ return;
+ }
+ final Bundle arguments = host.getArguments();
+ if (arguments != null) {
+ final String highlightKey = arguments.getString(EXTRA_FRAGMENT_ARG_KEY);
+ if (!TextUtils.isEmpty(highlightKey)) {
+ // Has highlight row - expand everything
+ screen.setInitialExpandedChildrenCount(Integer.MAX_VALUE);
+ return;
+ }
+ }
+
+ final int initialCount = host.getInitialExpandedChildCount();
+ if (initialCount <= 0) {
+ return;
+ }
+ screen.setInitialExpandedChildrenCount(initialCount);
+ }
+
public HighlightablePreferenceGroupAdapter(PreferenceGroup preferenceGroup, String key,
boolean highlightRequested) {
super(preferenceGroup);
diff --git a/src/com/android/settings/wifi/ConfigureWifiSettings.java b/src/com/android/settings/wifi/ConfigureWifiSettings.java
index 1607b74..3fd2171 100644
--- a/src/com/android/settings/wifi/ConfigureWifiSettings.java
+++ b/src/com/android/settings/wifi/ConfigureWifiSettings.java
@@ -23,7 +23,6 @@
import android.net.NetworkInfo;
import android.net.NetworkScoreManager;
import android.net.wifi.WifiManager;
-import android.os.Bundle;
import android.provider.SearchIndexableResource;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -44,7 +43,6 @@
private static final String TAG = "ConfigureWifiSettings";
- public static final String KEY_WIFI_CONFIGURE = "wifi_configure_settings_screen";
public static final String KEY_IP_ADDRESS = "current_ip_address";
private WifiWakeupPreferenceController mWifiWakeupPreferenceController;
@@ -61,13 +59,12 @@
}
@Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
+ public int getInitialExpandedChildCount() {
int tileLimit = 2;
if (mUseOpenWifiPreferenceController.isAvailable()) {
tileLimit++;
}
- getPreferenceScreen().setInitialExpandedChildrenCount(tileLimit);
+ return tileLimit;
}
@Override
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index 5e5d5ff..d7b4299 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -517,6 +517,7 @@
mAccessPoint.getSsidStr());
} else {
config.networkId = mAccessPoint.getConfig().networkId;
+ config.hiddenSSID = mAccessPoint.getConfig().hiddenSSID;
}
config.shared = mSharedCheckBox.isChecked();
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 9fbeabe..3972b85 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -353,32 +353,6 @@
}
/**
- * Only update the AP list if there are not any APs currently shown.
- *
- * <p>Thus forceUpdate will only be called during cold start or when toggling between wifi on
- * and off. In other use cases, the previous APs will remain until the next update is received
- * from {@link WifiTracker}.
- */
- private void conditionallyForceUpdateAPs() {
- if (mAccessPointsPreferenceCategory.getPreferenceCount() > 0
- && mAccessPointsPreferenceCategory.getPreference(0) instanceof
- AccessPointPreference) {
- // Make sure we don't update due to callbacks initiated by sticky broadcasts in
- // WifiTracker.
- Log.d(TAG, "Did not force update APs due to existing APs displayed");
- getView().removeCallbacks(mUpdateAccessPointsRunnable);
- return;
- }
- setProgressBarVisible(true);
- mWifiTracker.forceUpdate();
- if (isVerboseLoggingEnabled()) {
- Log.i(TAG, "WifiSettings force update APs: " + mWifiTracker.getAccessPoints());
- }
- getView().removeCallbacks(mUpdateAccessPointsRunnable);
- updateAccessPointPreferences();
- }
-
- /**
* @return new WifiEnabler or null (as overridden by WifiSettingsForSetupWizard)
*/
private WifiEnabler createWifiEnabler() {
@@ -682,7 +656,7 @@
final int wifiState = mWifiManager.getWifiState();
switch (wifiState) {
case WifiManager.WIFI_STATE_ENABLED:
- conditionallyForceUpdateAPs();
+ updateAccessPointPreferences();
break;
case WifiManager.WIFI_STATE_ENABLING:
diff --git a/src/com/android/settings/wrapper/UsbManagerWrapper.java b/src/com/android/settings/wrapper/UsbManagerWrapper.java
new file mode 100644
index 0000000..5626660
--- /dev/null
+++ b/src/com/android/settings/wrapper/UsbManagerWrapper.java
@@ -0,0 +1,34 @@
+/*
+ * 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.wrapper;
+
+import android.hardware.usb.UsbManager;
+
+public class UsbManagerWrapper {
+ private UsbManager mUsbManager;
+
+ public UsbManagerWrapper(UsbManager manager) {
+ mUsbManager = manager;
+ }
+
+ public long getCurrentFunctions() {
+ return mUsbManager.getCurrentFunctions();
+ }
+
+ public long usbFunctionsFromString(String str) {
+ return UsbManager.usbFunctionsFromString(str);
+ }
+}
diff --git a/src/com/android/settings/wrapper/UserManagerWrapper.java b/src/com/android/settings/wrapper/UserManagerWrapper.java
index 4b4d2f4..8c3a01d 100644
--- a/src/com/android/settings/wrapper/UserManagerWrapper.java
+++ b/src/com/android/settings/wrapper/UserManagerWrapper.java
@@ -17,6 +17,7 @@
package com.android.settings.wrapper;
import android.content.pm.UserInfo;
+import android.os.UserHandle;
import android.os.UserManager;
import java.util.List;
@@ -45,4 +46,22 @@
public List<UserInfo> getProfiles(int userHandle) {
return mUserManager.getProfiles(userHandle);
}
+
+ public boolean isUsbFileTransferRestricted() {
+ return mUserManager.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER);
+ }
+
+ public boolean isUsbTetheringRestricted() {
+ return mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_TETHERING);
+ }
+
+ public boolean isUsbFileTransferRestrictedBySystem() {
+ return mUserManager.hasBaseUserRestriction(
+ UserManager.DISALLOW_USB_FILE_TRANSFER, UserHandle.of(UserHandle.myUserId()));
+ }
+
+ public boolean isUsbTetheringRestrictedBySystem() {
+ return mUserManager.hasBaseUserRestriction(
+ UserManager.DISALLOW_CONFIG_TETHERING, UserHandle.of(UserHandle.myUserId()));
+ }
}
diff --git a/tests/anomaly-tester/Android.mk b/tests/anomaly-tester/Android.mk
index 30653f2..9a0a875 100644
--- a/tests/anomaly-tester/Android.mk
+++ b/tests/anomaly-tester/Android.mk
@@ -17,6 +17,7 @@
LOCAL_PROGUARD_ENABLED := disabled
LOCAL_PACKAGE_NAME := AnomalyTester
+LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_INSTRUMENTATION_FOR := Settings
diff --git a/tests/robotests/assets/grandfather_not_implementing_instrumentable b/tests/robotests/assets/grandfather_not_implementing_instrumentable
index 54f906d..9356218 100644
--- a/tests/robotests/assets/grandfather_not_implementing_instrumentable
+++ b/tests/robotests/assets/grandfather_not_implementing_instrumentable
@@ -1,6 +1,5 @@
com.android.settings.deletionhelper.ActivationWarningFragment
com.android.settings.applications.appops.AppOpsCategory
-com.android.settings.inputmethod.UserDictionaryLocalePicker
com.android.settings.CustomListPreference$CustomListPreferenceDialogFragment
com.android.settings.password.ChooseLockPassword$SaveAndFinishWorker
com.android.settings.password.ChooseLockPattern$SaveAndFinishWorker
diff --git a/tests/robotests/res/values-mcc999/config.xml b/tests/robotests/res/values-mcc999/config.xml
index 01bfa51..788c593 100644
--- a/tests/robotests/res/values-mcc999/config.xml
+++ b/tests/robotests/res/values-mcc999/config.xml
@@ -47,7 +47,6 @@
<bool name="config_show_trust_agent_click_intent">false</bool>
<bool name="config_show_wallpaper_attribution">false</bool>
<bool name="config_show_default_home">false</bool>
- <bool name="config_show_accessibility_shortcut_preference">false</bool>
<bool name="config_show_assist_and_voice_input">false</bool>
<bool name="config_show_phone_language">false</bool>
<bool name="config_show_virtual_keyboard_pref">false</bool>
@@ -55,8 +54,6 @@
<bool name="config_show_tts_settings_summary">false</bool>
<bool name="config_show_pointer_speed">false</bool>
<bool name="config_show_vibrate_input_devices">false</bool>
- <bool name="config_show_color_correction_preference">false</bool>
- <bool name="config_show_color_inversion_preference">false</bool>
<bool name="config_show_system_update_settings">false</bool>
<bool name="config_wifi_support_connected_mac_randomization">false</bool>
<bool name="config_show_device_model">false</bool>
diff --git a/tests/robotests/src/com/android/internal/accessibility/AccessibilityShortcutController.java b/tests/robotests/src/com/android/internal/accessibility/AccessibilityShortcutController.java
deleted file mode 100644
index aae2f8d..0000000
--- a/tests/robotests/src/com/android/internal/accessibility/AccessibilityShortcutController.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.accessibility;
-
-import android.content.ComponentName;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Fake controller to make robolectric test compile. Should be removed when Robolectric supports
- * API 25.
- */
-public class AccessibilityShortcutController {
-
- public static Map<ComponentName, AccessibilityShortcutController.ToggleableFrameworkFeatureInfo>
- getFrameworkShortcutFeaturesMap() {
- return new HashMap<>();
- }
-
- public static class ToggleableFrameworkFeatureInfo {
- private String mSettingKey;
-
- public String getSettingKey() {
- return mSettingKey;
- }
- }
-}
diff --git a/tests/robotests/src/com/android/settings/MasterClearTest.java b/tests/robotests/src/com/android/settings/MasterClearTest.java
index c9efe8e..7e9ef40 100644
--- a/tests/robotests/src/com/android/settings/MasterClearTest.java
+++ b/tests/robotests/src/com/android/settings/MasterClearTest.java
@@ -355,6 +355,7 @@
assertEquals(TEST_CONFIRMATION_CLASS, actualIntent.getComponent().getClassName());
}
+ @Test
public void testShowAccountCredentialConfirmation() {
// Finally mock out the startActivityForResultCall
doNothing().when(mMasterClear)
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
index 96ce183..fb32da1 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
@@ -16,137 +16,35 @@
package com.android.settings.accessibility;
-import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-
import android.content.Context;
-import android.support.v7.preference.Preference;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.testutils.XmlTestUtils;
-
-import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import java.util.ArrayList;
import java.util.List;
+import static com.google.common.truth.Truth.assertThat;
+
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class AccessibilitySettingsTest {
- private Context mContext;
- private AccessibilitySettings mFragment;
- private boolean mAccessibilityShortcutPreferenceRemoved;
- private boolean mColorInversionPreferenceRemoved;
- private boolean mColorCorrectionPreferenceRemoved;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- mFragment = new AccessibilitySettings() {
- @Override
- public Context getContext() {
- return mContext;
- }
-
- @Override
- protected boolean removePreference(String key) {
- if (AccessibilitySettings.ACCESSIBILITY_SHORTCUT_PREFERENCE.equals(key)) {
- mAccessibilityShortcutPreferenceRemoved = true;
- return true;
- }
-
- if (AccessibilitySettings.TOGGLE_INVERSION_PREFERENCE.equals(key)) {
- mColorInversionPreferenceRemoved = true;
- return true;
- }
-
- if (AccessibilitySettings.DISPLAY_DALTONIZER_PREFERENCE_SCREEN.equals(key)) {
- mColorCorrectionPreferenceRemoved = true;
- return true;
- }
- return false;
- }
- };
- }
-
@Test
public void testNonIndexableKeys_existInXmlLayout() {
+ final Context context = RuntimeEnvironment.application;
final List<String> niks = AccessibilitySettings.SEARCH_INDEX_DATA_PROVIDER
- .getNonIndexableKeys(mContext);
+ .getNonIndexableKeys(context);
final List<String> keys = new ArrayList<>();
- keys.addAll(XmlTestUtils.getKeysFromPreferenceXml(mContext, R.xml.accessibility_settings));
+ keys.addAll(XmlTestUtils.getKeysFromPreferenceXml(context, R.xml.accessibility_settings));
assertThat(keys).containsAllIn(niks);
}
-
- @Test
- public void testAccessibilityShortcutPreference_byDefault_shouldBeShown() {
- final Preference preference = new Preference(mContext);
- mFragment.checkAccessibilityShortcutVisibility(preference);
-
- assertThat(mAccessibilityShortcutPreferenceRemoved).isFalse();
- }
-
- @Test
- @Config(qualifiers = "mcc999")
- public void testAccessibilityShortcutPreference_ifDisabled_shouldNotBeShown() {
- final Preference preference = new Preference(mContext);
- mFragment.checkAccessibilityShortcutVisibility(preference);
-
- assertThat(mAccessibilityShortcutPreferenceRemoved).isTrue();
- }
-
- @Test
- @Config(qualifiers = "mcc999")
- public void testNonIndexableKeys_ifAccessibilityShortcutNotVisible_containsKey() {
- final List<String> niks = AccessibilitySettings.SEARCH_INDEX_DATA_PROVIDER
- .getNonIndexableKeys(mContext);
-
- assertThat(niks).contains(AccessibilitySettings.ACCESSIBILITY_SHORTCUT_PREFERENCE);
- }
-
- @Test
- public void testColorInversionPreference_byDefault_shouldBeShown() {
- final Preference preference = new Preference(mContext);
- mFragment.checkColorInversionVisibility(preference);
-
- assertThat(mColorInversionPreferenceRemoved).isEqualTo(false);
- }
-
- @Test
- @Config(qualifiers = "mcc999")
- public void testColorInversionPreference_ifDisabled_shouldNotBeShown() {
- final Preference preference = new Preference(mContext);
- mFragment.checkColorInversionVisibility(preference);
-
- assertThat(mColorInversionPreferenceRemoved).isEqualTo(true);
- }
-
- @Test
- public void testColorCorrectionPreference_byDefault_shouldBeShown() {
- final Preference preference = new Preference(mContext);
- mFragment.checkColorCorrectionVisibility(preference);
-
- assertThat(mColorCorrectionPreferenceRemoved).isEqualTo(false);
- }
-
- @Test
- @Config(qualifiers = "mcc999")
- public void testColorCorrectionPreference_ifDisabled_shouldNotBeShown() {
- final Preference preference = new Preference(mContext);
- mFragment.checkColorCorrectionVisibility(preference);
-
- assertThat(mColorCorrectionPreferenceRemoved).isEqualTo(true);
- }
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/HapticFeedbackIntensityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/HapticFeedbackIntensityPreferenceControllerTest.java
new file mode 100644
index 0000000..b0246b9
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/HapticFeedbackIntensityPreferenceControllerTest.java
@@ -0,0 +1,61 @@
+/*
+ * 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.accessibility;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.arch.lifecycle.LifecycleOwner;
+import android.content.Context;
+
+import com.android.settings.TestConfig;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class HapticFeedbackIntensityPreferenceControllerTest {
+
+ private LifecycleOwner mLifecycleOwner;
+ private Lifecycle mLifecycle;
+ private Context mContext;
+ private HapticFeedbackIntensityPreferenceController mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mLifecycleOwner = () -> mLifecycle;
+ mLifecycle = new Lifecycle(mLifecycleOwner);
+ mContext = RuntimeEnvironment.application;
+ mController = new HapticFeedbackIntensityPreferenceController(mContext);
+ }
+
+ @Test
+ public void verifyConstants() {
+ assertThat(mController.getPreferenceKey())
+ .isEqualTo(HapticFeedbackIntensityPreferenceController.PREF_KEY);
+ assertThat(mController.getAvailabilityStatus())
+ .isEqualTo(BasePreferenceController.AVAILABLE);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceControllerTest.java
new file mode 100644
index 0000000..2f55e00
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceControllerTest.java
@@ -0,0 +1,111 @@
+/*
+ * 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.accessibility;
+
+import static android.provider.Settings.System.NOTIFICATION_VIBRATION_INTENSITY;
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.when;
+
+import android.arch.lifecycle.LifecycleOwner;
+import android.content.Context;
+import android.os.Vibrator;
+import android.provider.Settings;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.TestConfig;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class NotificationVibrationIntensityPreferenceControllerTest {
+
+ @Mock
+ private PreferenceScreen mScreen;
+
+ private LifecycleOwner mLifecycleOwner;
+ private Lifecycle mLifecycle;
+ private Context mContext;
+ private NotificationVibrationIntensityPreferenceController mController;
+ private Preference mPreference;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mLifecycleOwner = () -> mLifecycle;
+ mLifecycle = new Lifecycle(mLifecycleOwner);
+ mContext = RuntimeEnvironment.application;
+ mController = new NotificationVibrationIntensityPreferenceController(mContext) {
+ @Override
+ protected int getDefaultIntensity() {
+ return 10;
+ }
+ };
+ mLifecycle.addObserver(mController);
+ mPreference = new Preference(mContext);
+ mPreference.setSummary("Test");
+ when(mScreen.findPreference(mController.getPreferenceKey()))
+ .thenReturn(mPreference);
+ mController.displayPreference(mScreen);
+ }
+
+ @Test
+ public void verifyConstants() {
+ assertThat(mController.getPreferenceKey())
+ .isEqualTo(NotificationVibrationIntensityPreferenceController.PREF_KEY);
+ assertThat(mController.getAvailabilityStatus())
+ .isEqualTo(BasePreferenceController.AVAILABLE);
+ }
+
+ @Test
+ public void updateState_shouldRefreshSummary() {
+ Settings.System.putInt(mContext.getContentResolver(),
+ NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_LOW);
+ mController.updateState(null);
+ assertThat(mPreference.getSummary())
+ .isEqualTo(mContext.getString(R.string.accessibility_vibration_intensity_low));
+
+ Settings.System.putInt(mContext.getContentResolver(),
+ NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH);
+ mController.updateState(null);
+ assertThat(mPreference.getSummary())
+ .isEqualTo(mContext.getString(R.string.accessibility_vibration_intensity_high));
+
+ Settings.System.putInt(mContext.getContentResolver(),
+ NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_MEDIUM);
+ mController.updateState(null);
+ assertThat(mPreference.getSummary())
+ .isEqualTo(mContext.getString(R.string.accessibility_vibration_intensity_medium));
+
+ Settings.System.putInt(mContext.getContentResolver(),
+ NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_OFF);
+ mController.updateState(null);
+ assertThat(mPreference.getSummary())
+ .isEqualTo(mContext.getString(R.string.accessibility_vibration_intensity_off));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/applications/AppInfoWithHeaderTest.java b/tests/robotests/src/com/android/settings/applications/AppInfoWithHeaderTest.java
index 50cd979..99e662b 100644
--- a/tests/robotests/src/com/android/settings/applications/AppInfoWithHeaderTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AppInfoWithHeaderTest.java
@@ -30,6 +30,8 @@
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
+import android.os.Bundle;
+import android.os.UserHandle;
import android.support.v7.preference.PreferenceManager;
import android.support.v7.preference.PreferenceScreen;
@@ -116,12 +118,66 @@
assertThat(mAppInfoWithHeader.mPackageRemovedCalled).isTrue();
}
+ @Test
+ public void noExtraUserHandleInIntent_retrieveAppEntryWithMyUsedId()
+ throws PackageManager.NameNotFoundException {
+ final String packageName = "com.android.settings";
+
+ mAppInfoWithHeader.mIntent.setData(Uri.fromParts("package",
+ packageName, null));
+ final ApplicationsState.AppEntry entry = mock(ApplicationsState.AppEntry.class);
+ entry.info = new ApplicationInfo();
+ entry.info.packageName = packageName;
+
+ when(mAppInfoWithHeader.mState.getEntry(packageName,
+ UserHandle.myUserId())).thenReturn(entry);
+ when(mAppInfoWithHeader.mPm.getPackageInfoAsUser(entry.info.packageName,
+ PackageManager.MATCH_DISABLED_COMPONENTS |
+ PackageManager.GET_SIGNING_CERTIFICATES |
+ PackageManager.GET_PERMISSIONS, UserHandle.myUserId())).thenReturn(
+ mAppInfoWithHeader.mPackageInfo);
+
+ mAppInfoWithHeader.retrieveAppEntry();
+
+ assertThat(mAppInfoWithHeader.mUserId).isEqualTo(UserHandle.myUserId());
+ assertThat(mAppInfoWithHeader.mPackageInfo).isNotNull();
+ assertThat(mAppInfoWithHeader.mAppEntry).isNotNull();
+ }
+
+ @Test
+ public void extraUserHandleInIntent_retrieveAppEntryWithMyUsedId()
+ throws PackageManager.NameNotFoundException {
+ final int USER_ID = 1002;
+ final String packageName = "com.android.settings";
+
+ mAppInfoWithHeader.mIntent.putExtra(Intent.EXTRA_USER_HANDLE, new UserHandle(USER_ID));
+ mAppInfoWithHeader.mIntent.setData(Uri.fromParts("package",
+ packageName, null));
+ final ApplicationsState.AppEntry entry = mock(ApplicationsState.AppEntry.class);
+ entry.info = new ApplicationInfo();
+ entry.info.packageName = packageName;
+
+ when(mAppInfoWithHeader.mState.getEntry(packageName, USER_ID)).thenReturn(entry);
+ when(mAppInfoWithHeader.mPm.getPackageInfoAsUser(entry.info.packageName,
+ PackageManager.MATCH_DISABLED_COMPONENTS |
+ PackageManager.GET_SIGNING_CERTIFICATES |
+ PackageManager.GET_PERMISSIONS, USER_ID)).thenReturn(
+ mAppInfoWithHeader.mPackageInfo);
+
+ mAppInfoWithHeader.retrieveAppEntry();
+
+ assertThat(mAppInfoWithHeader.mUserId).isEqualTo(USER_ID);
+ assertThat(mAppInfoWithHeader.mPackageInfo).isNotNull();
+ assertThat(mAppInfoWithHeader.mAppEntry).isNotNull();
+ }
+
public static class TestFragment extends AppInfoWithHeader {
PreferenceManager mManager;
PreferenceScreen mScreen;
Context mShadowContext;
boolean mPackageRemovedCalled;
+ Intent mIntent;
public TestFragment() {
mPm = mock(PackageManager.class);
@@ -129,6 +185,8 @@
mScreen = mock(PreferenceScreen.class);
mPackageInfo = new PackageInfo();
mPackageInfo.applicationInfo = new ApplicationInfo();
+ mState = mock(ApplicationsState.class);
+ mIntent = new Intent();
mShadowContext = ShadowApplication.getInstance().getApplicationContext();
ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider",
(InstantAppDataProvider) (info -> false));
@@ -169,6 +227,8 @@
protected void onPackageRemoved() {
mPackageRemovedCalled = true;
}
- }
+ @Override
+ protected Intent getIntent() { return mIntent; }
+ }
}
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java
index eb8a082..24823fe 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java
@@ -18,28 +18,40 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.nullable;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.argThat;
+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.app.AlertDialog;
-import android.app.Fragment;
+import android.content.ComponentName;
import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.support.v7.preference.PreferenceManager;
import android.support.v7.preference.PreferenceScreen;
+import android.text.TextUtils;
+import android.view.Menu;
+import android.view.MenuItem;
import android.view.View;
+import android.widget.Button;
+import com.android.settings.R;
import com.android.settings.TestConfig;
import com.android.settings.applications.LayoutPreference;
-import com.android.settings.applications.instantapps.InstantAppButtonsController;
-import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.applications.AppUtils;
import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
+import com.android.settingslib.wrapper.PackageManagerWrapper;
import org.junit.Before;
import org.junit.Test;
@@ -54,27 +66,48 @@
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class InstantAppButtonsPreferenceControllerTest {
+ private static final String TEST_INSTALLER_PACKAGE_NAME = "com.installer";
+ private static final String TEST_INSTALLER_ACTIVITY_NAME = "com.installer.InstallerActivity";
+ private static final String TEST_AIA_PACKAGE_NAME = "test.aia.package";
+
@Mock
private PackageManager mPackageManager;
@Mock
private ApplicationInfo mAppInfo;
@Mock
private AppInfoDashboardFragment mFragment;
+ @Mock
+ private LayoutPreference mPreference;
private Context mContext;
+ private PreferenceScreen mScreen;
+ private PreferenceManager mPreferenceManager;
+ private Button mLaunchButton;
+ private Button mInstallButton;
+ private Button mClearAppButton;
private InstantAppButtonsPreferenceController mController;
- private FakeFeatureFactory mFeatureFactory;
@Before
public void setUp() throws PackageManager.NameNotFoundException {
MockitoAnnotations.initMocks(this);
- mFeatureFactory = FakeFeatureFactory.setupForTest();
mContext = spy(RuntimeEnvironment.application);
+ when(mContext.getPackageManager()).thenReturn(mPackageManager);
final PackageInfo packageInfo = mock(PackageInfo.class);
packageInfo.applicationInfo = mAppInfo;
when(mFragment.getPackageInfo()).thenReturn(packageInfo);
- mController =
- spy(new InstantAppButtonsPreferenceController(mContext, mFragment, "Package1"));
+ mPreferenceManager = new PreferenceManager(mContext);
+ mScreen = mPreferenceManager.createPreferenceScreen(mContext);
+ when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
+ final View buttons = View.inflate(
+ RuntimeEnvironment.application, R.layout.instant_app_buttons, null /* parent */);
+ mLaunchButton = buttons.findViewById(R.id.launch);
+ mInstallButton = buttons.findViewById(R.id.install);
+ mClearAppButton = buttons.findViewById(R.id.clear_data);
+ mController = spy(new InstantAppButtonsPreferenceController(
+ mContext, mFragment, TEST_AIA_PACKAGE_NAME, null /* lifecycle */));
+ when(mPreference.getKey()).thenReturn("instant_app_buttons");
+ mScreen.addPreference(mPreference);
+ when(mPreference.findViewById(R.id.instant_app_button_container)).thenReturn(buttons);
}
@Test
@@ -94,39 +127,173 @@
}
@Test
- public void displayPreference_shouldSetPreferenceTitle() {
- final PreferenceScreen screen = mock(PreferenceScreen.class);
- final LayoutPreference preference = mock(LayoutPreference.class);
- when(screen.findPreference(mController.getPreferenceKey())).thenReturn(preference);
- when(mController.getApplicationFeatureProvider())
- .thenReturn(mFeatureFactory.applicationFeatureProvider);
- final InstantAppButtonsController buttonsController =
- mock(InstantAppButtonsController.class);
- when(buttonsController.setPackageName(nullable(String.class)))
- .thenReturn(buttonsController);
- when(mFeatureFactory.applicationFeatureProvider.newInstantAppButtonsController(
- nullable(Fragment.class), nullable(View.class),
- nullable(InstantAppButtonsController.ShowDialogDelegate.class)))
- .thenReturn(buttonsController);
+ public void onCreateOptionsMenu_noLaunchUri_shouldNotAddInstallInstantAppMenu() {
+ final Menu menu = mock(Menu.class);
+ when(menu.add(anyInt(), anyInt(), anyInt(), anyInt())).thenReturn(mock(MenuItem.class));
- mController.displayPreference(screen);
+ mController.onCreateOptionsMenu(menu, null /* inflater */);
- verify(buttonsController).setPackageName(nullable(String.class));
- verify(buttonsController).show();
+ verify(menu, never()).add(anyInt(), eq(AppInfoDashboardFragment.INSTALL_INSTANT_APP_MENU),
+ anyInt(), eq(R.string.install_text));
}
@Test
- public void createDialog_shouldReturnDialogFromButtonController() {
- final InstantAppButtonsController buttonsController =
- mock(InstantAppButtonsController.class);
- ReflectionHelpers.setField(
- mController, "mInstantAppButtonsController", buttonsController);
- final AlertDialog mockDialog = mock(AlertDialog.class);
- when(buttonsController.createDialog(InstantAppButtonsController.DLG_CLEAR_APP))
- .thenReturn(mockDialog);
+ public void onCreateOptionsMenu_hasLaunchUri_shouldAddForceStop() {
+ ReflectionHelpers.setField(mController, "mLaunchUri", "www.test.launch");
+ final Menu menu = mock(Menu.class);
+ when(menu.add(anyInt(), anyInt(), anyInt(), anyInt())).thenReturn(mock(MenuItem.class));
- assertThat(mController.createDialog(InstantAppButtonsController.DLG_CLEAR_APP))
- .isEqualTo(mockDialog);
+ mController.onCreateOptionsMenu(menu, null /* inflater */);
+
+ verify(menu).add(anyInt(), eq(AppInfoDashboardFragment.INSTALL_INSTANT_APP_MENU),
+ anyInt(), eq(R.string.install_text));
+ }
+
+ @Test
+ public void onPrepareOptionsMenu_noAppStoreLink_shoulDisableInstallInstantAppMenu() {
+ ReflectionHelpers.setField(mController, "mLaunchUri", "www.test.launch");
+ final Menu menu = mock(Menu.class);
+ final MenuItem menuItem = mock(MenuItem.class);
+ when(menu.findItem(AppInfoDashboardFragment.INSTALL_INSTANT_APP_MENU)).thenReturn(menuItem);
+
+ mController.onPrepareOptionsMenu(menu);
+
+ verify(menuItem).setEnabled(false);
+ }
+
+ @Test
+ public void onPrepareOptionsMenu_hasAppStoreLink_shoulNotDisableInstallInstantAppMenu() {
+ ReflectionHelpers.setField(mController, "mLaunchUri", "www.test.launch");
+ final ResolveInfo resolveInfo = mock(ResolveInfo.class);
+ final ActivityInfo activityInfo = mock(ActivityInfo.class);
+ resolveInfo.activityInfo = activityInfo;
+ activityInfo.packageName = TEST_INSTALLER_PACKAGE_NAME;
+ activityInfo.name = TEST_INSTALLER_ACTIVITY_NAME;
+ when(mPackageManager.resolveActivity(any(), anyInt())).thenReturn(resolveInfo);
+ final Menu menu = mock(Menu.class);
+ final MenuItem menuItem = mock(MenuItem.class);
+ when(menu.findItem(AppInfoDashboardFragment.INSTALL_INSTANT_APP_MENU)).thenReturn(menuItem);
+
+ mController.onPrepareOptionsMenu(menu);
+
+ verify(menuItem, never()).setEnabled(false);
+ }
+
+ @Test
+ public void onPrepareOptionsMenu_installMenuNotFound_shoulNotCrash() {
+ final Menu menu = mock(Menu.class);
+
+ mController.onPrepareOptionsMenu(menu);
+
+ // no crash
+ }
+
+ @Test
+ public void onOptionsItemSelected_shouldOpenAppStore() {
+ final ResolveInfo resolveInfo = mock(ResolveInfo.class);
+ final ActivityInfo activityInfo = mock(ActivityInfo.class);
+ resolveInfo.activityInfo = activityInfo;
+ activityInfo.packageName = TEST_INSTALLER_PACKAGE_NAME;
+ activityInfo.name = TEST_INSTALLER_ACTIVITY_NAME;
+ when(mPackageManager.resolveActivity(any(), anyInt())).thenReturn(resolveInfo);
+ mController.displayPreference(mScreen);
+ final ComponentName componentName =
+ new ComponentName(TEST_INSTALLER_PACKAGE_NAME, TEST_INSTALLER_ACTIVITY_NAME);
+ final MenuItem menu = mock(MenuItem.class);
+ when(menu.getItemId()).thenReturn(AppInfoDashboardFragment.INSTALL_INSTANT_APP_MENU);
+
+ mController.onOptionsItemSelected(menu);
+
+ verify(mFragment).startActivity(argThat(intent-> intent != null
+ && intent.getAction().equals(Intent.ACTION_SHOW_APP_INFO)
+ && intent.getComponent().equals(componentName)));
+ }
+
+ @Test
+ public void displayPreference_noLaunchUri_shouldShowHideLaunchButton() {
+ mController.displayPreference(mScreen);
+
+ assertThat(mLaunchButton.getVisibility()).isEqualTo(View.GONE);
+ }
+
+ @Test
+ public void displayPreference_hasLaunchUri_shouldShowHideInstallButton() {
+ ReflectionHelpers.setField(mController, "mLaunchUri", "www.test.launch");
+
+ mController.displayPreference(mScreen);
+
+ assertThat(mInstallButton.getVisibility()).isEqualTo(View.GONE);
+ }
+
+ @Test
+ public void displayPreference_noAppStoreLink_shoulDisableInstallButton() {
+ mController.displayPreference(mScreen);
+
+ assertThat(mInstallButton.isEnabled()).isFalse();
+ }
+
+ @Test
+ public void displayPreference_hasAppStoreLink_shoulSetClickListenerForInstallButton() {
+ final ResolveInfo resolveInfo = mock(ResolveInfo.class);
+ final ActivityInfo activityInfo = mock(ActivityInfo.class);
+ resolveInfo.activityInfo = activityInfo;
+ activityInfo.packageName = TEST_INSTALLER_PACKAGE_NAME;
+ activityInfo.name = TEST_INSTALLER_ACTIVITY_NAME;
+ when(mPackageManager.resolveActivity(any(), anyInt())).thenReturn(resolveInfo);
+
+ mController.displayPreference(mScreen);
+
+ assertThat(mInstallButton.hasOnClickListeners()).isTrue();
+ }
+
+ @Test
+ public void displayPreference_shoulSetClickListenerForClearButton() {
+ mController.displayPreference(mScreen);
+
+ assertThat(mClearAppButton.hasOnClickListeners()).isTrue();
+ }
+
+ @Test
+ public void clickLaunchButton_shouldLaunchViewIntent() {
+ final String launchUri = "www.test.launch";
+ ReflectionHelpers.setField(mController, "mLaunchUri", launchUri);
+ mController.displayPreference(mScreen);
+
+ mLaunchButton.callOnClick();
+
+ verify(mFragment).startActivity(argThat(intent-> intent != null
+ && intent.getAction().equals(Intent.ACTION_VIEW)
+ && TextUtils.equals(intent.getDataString(), launchUri)));
+ }
+
+ @Test
+ public void clickInstallButton_shouldOpenAppStore() {
+ final ResolveInfo resolveInfo = mock(ResolveInfo.class);
+ final ActivityInfo activityInfo = mock(ActivityInfo.class);
+ resolveInfo.activityInfo = activityInfo;
+ activityInfo.packageName = TEST_INSTALLER_PACKAGE_NAME;
+ activityInfo.name = TEST_INSTALLER_ACTIVITY_NAME;
+ when(mPackageManager.resolveActivity(any(), anyInt())).thenReturn(resolveInfo);
+ mController.displayPreference(mScreen);
+ final ComponentName componentName =
+ new ComponentName(TEST_INSTALLER_PACKAGE_NAME, TEST_INSTALLER_ACTIVITY_NAME);
+
+ mInstallButton.callOnClick();
+
+ verify(mFragment).startActivity(argThat(intent-> intent != null
+ && intent.getAction().equals(Intent.ACTION_SHOW_APP_INFO)
+ && intent.getComponent().equals(componentName)));
+ }
+
+ @Test
+ public void onClick_shouldDeleteApp() {
+ PackageManagerWrapper packageManagerWrapper = mock(PackageManagerWrapper.class);
+ ReflectionHelpers.setField(mController, "mPackageManagerWrapper", packageManagerWrapper);
+
+ mController.onClick(mock(DialogInterface.class), DialogInterface.BUTTON_POSITIVE);
+
+ verify(packageManagerWrapper)
+ .deletePackageAsUser(eq(TEST_AIA_PACKAGE_NAME), any(), anyInt(),anyInt());
}
}
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/PictureInPictureDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/PictureInPictureDetailPreferenceControllerTest.java
index cf37b36..9322966 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/PictureInPictureDetailPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/PictureInPictureDetailPreferenceControllerTest.java
@@ -24,7 +24,6 @@
import static org.mockito.Mockito.when;
import android.content.Context;
-import android.os.UserManager;
import android.support.v7.preference.Preference;
import com.android.settings.R;
@@ -44,8 +43,6 @@
public class PictureInPictureDetailPreferenceControllerTest {
@Mock
- private UserManager mUserManager;
- @Mock
private AppInfoDashboardFragment mFragment;
@Mock
private Preference mPreference;
@@ -57,7 +54,6 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
- when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
mController = spy(
new PictureInPictureDetailPreferenceController(mContext, mFragment, "Package1"));
@@ -66,15 +62,7 @@
}
@Test
- public void getAvailabilityStatus_managedProfile_shouldReturnDisabled() {
- when(mUserManager.isManagedProfile()).thenReturn(true);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(mController.DISABLED_FOR_USER);
- }
-
- @Test
public void getAvailabilityStatus_noPictureInPictureActivities_shouldReturnDisabled() {
- when(mUserManager.isManagedProfile()).thenReturn(false);
doReturn(false).when(mController).hasPictureInPictureActivites();
assertThat(mController.getAvailabilityStatus()).isEqualTo(mController.DISABLED_FOR_USER);
@@ -82,7 +70,6 @@
@Test
public void getAvailabilityStatus_hasPictureInPictureActivities_shouldReturnAvailable() {
- when(mUserManager.isManagedProfile()).thenReturn(false);
doReturn(true).when(mController).hasPictureInPictureActivites();
assertThat(mController.getAvailabilityStatus()).isEqualTo(mController.AVAILABLE);
diff --git a/tests/robotests/src/com/android/settings/applications/instantapps/InstantAppButtonsControllerTest.java b/tests/robotests/src/com/android/settings/applications/instantapps/InstantAppButtonsControllerTest.java
deleted file mode 100644
index f85d43a..0000000
--- a/tests/robotests/src/com/android/settings/applications/instantapps/InstantAppButtonsControllerTest.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.applications.instantapps;
-
-import static com.android.settings.applications.instantapps.InstantAppButtonsController
- .ShowDialogDelegate;
-import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
-import static org.mockito.Mockito.when;
-
-import android.annotation.SuppressLint;
-import android.app.Fragment;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.pm.ActivityInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.view.View;
-import android.widget.Button;
-
-import com.android.settings.R;
-import com.android.settings.TestConfig;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-import com.android.settingslib.wrapper.PackageManagerWrapper;
-
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.annotation.Config;
-import org.robolectric.util.ReflectionHelpers;
-
-/** Tests for the InstantAppButtonsController. */
-@RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = 23)
-public class InstantAppButtonsControllerTest {
-
- private static final String TEST_INSTALLER_PACKAGE_NAME = "com.installer";
- private static final String TEST_INSTALLER_ACTIVITY_NAME = "com.installer.InstallerActivity";
- private static final String TEST_AIA_PACKAGE_NAME = "test.aia.package";
- private static ComponentName sTestInstallerComponent;
-
- @BeforeClass
- public static void beforeClass() {
- sTestInstallerComponent =
- new ComponentName(
- TEST_INSTALLER_PACKAGE_NAME,
- TEST_INSTALLER_ACTIVITY_NAME);
- }
-
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
- Context mockContext;
- @Mock
- PackageManager mockPackageManager;
- @Mock
- PackageManagerWrapper mockPackageManagerWrapper;
- @Mock
- View mockView;
- @Mock
- ShowDialogDelegate mockShowDialogDelegate;
- @Mock
- Button mockInstallButton;
- @Mock
- Button mockClearButton;
- @Mock
- MetricsFeatureProvider mockMetricsFeatureProvider;
- @Mock
- ResolveInfo mockResolveInfo;
- @Mock
- ActivityInfo mockActivityInfo;
-
- private PackageManager stubPackageManager;
-
- private FakeFeatureFactory fakeFeatureFactory;
- private TestFragment testFragment;
- private InstantAppButtonsController controller;
-
-
- private View.OnClickListener receivedListener;
-
- @Before
- public void init() {
- MockitoAnnotations.initMocks(this);
- testFragment = new TestFragment();
- when(mockView.findViewById(R.id.install)).thenReturn(mockInstallButton);
- when(mockView.findViewById(R.id.clear_data)).thenReturn(mockClearButton);
- mockResolveInfo.activityInfo = mockActivityInfo;
- mockActivityInfo.packageName = TEST_INSTALLER_PACKAGE_NAME;
- mockActivityInfo.name = TEST_INSTALLER_ACTIVITY_NAME;
- when(mockContext.getPackageManager()).thenReturn(mockPackageManager);
- when(mockPackageManager.resolveActivity(any(), anyInt())).thenReturn(mockResolveInfo);
- controller = new InstantAppButtonsController(
- mockContext, testFragment, mockView, mockShowDialogDelegate);
- controller.setPackageName(TEST_AIA_PACKAGE_NAME);
- ReflectionHelpers.setField(
- controller, "mPackageManagerWrapper", mockPackageManagerWrapper);
- FakeFeatureFactory.setupForTest();
- }
-
- @Test
- public void testInstallListenerTriggersInstall() {
- doAnswer(invocation -> {
- receivedListener = (View.OnClickListener) invocation.getArguments()[0];
- return null;
- }).when(mockInstallButton).setOnClickListener(any());
- controller.bindButtons();
-
- assertThat(receivedListener).isNotNull();
- receivedListener.onClick(mockInstallButton);
- assertThat(testFragment.getStartActivityIntent()).isNotNull();
- assertThat(testFragment.getStartActivityIntent().getComponent())
- .isEqualTo(sTestInstallerComponent);
- }
-
- @Test
- public void testClearListenerShowsDialog() {
- doAnswer(invocation -> {
- receivedListener = (View.OnClickListener) invocation.getArguments()[0];
- return null;
- }).when(mockClearButton).setOnClickListener(any());
- controller.bindButtons();
- assertThat(receivedListener).isNotNull();
- receivedListener.onClick(mockClearButton);
- verify(mockShowDialogDelegate).showDialog(InstantAppButtonsController.DLG_CLEAR_APP);
- }
-
- @Test
- public void testDialogInterfaceOnClick_positiveClearsApp() {
- controller.onClick(mock(DialogInterface.class), DialogInterface.BUTTON_POSITIVE);
- verify(mockPackageManagerWrapper)
- .deletePackageAsUser(eq(TEST_AIA_PACKAGE_NAME), any(), anyInt(),anyInt());
- }
-
- @Test
- public void testDialogInterfaceOnClick_nonPositiveDoesNothing() {
- controller.onClick(mock(DialogInterface.class), DialogInterface.BUTTON_NEGATIVE);
- controller.onClick(mock(DialogInterface.class), DialogInterface.BUTTON_NEUTRAL);
- verifyZeroInteractions(mockPackageManagerWrapper);
- }
- @SuppressLint("ValidFragment")
- private class TestFragment extends Fragment {
-
- private Intent startActivityIntent;
-
- public Intent getStartActivityIntent() {
- return startActivityIntent;
- }
-
- @Override
- public void startActivity(Intent intent) {
- startActivityIntent = intent;
- }
- }
-}
diff --git a/tests/robotests/src/com/android/settings/applications/manageapplications/AppFilterItemTest.java b/tests/robotests/src/com/android/settings/applications/manageapplications/AppFilterItemTest.java
index 982fb56..7e19d57 100644
--- a/tests/robotests/src/com/android/settings/applications/manageapplications/AppFilterItemTest.java
+++ b/tests/robotests/src/com/android/settings/applications/manageapplications/AppFilterItemTest.java
@@ -47,7 +47,8 @@
R.string.filter_all_apps);
// Same instance, should be same
- assertThat(item).isEqualTo(item);
+ // (Use isTrue as isEqualsTo will prioritize reference equality!)
+ assertThat(item.equals(item)).isTrue();
// Same content, should be same
assertThat(item).isEqualTo(item2);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbBackendTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbBackendTest.java
index 40cfd73..01d4b82 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbBackendTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbBackendTest.java
@@ -27,9 +27,9 @@
import android.hardware.usb.UsbManager;
import android.net.ConnectivityManager;
-import com.android.settings.connecteddevice.usb.UsbBackend;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
+import com.android.settings.wrapper.UserManagerWrapper;
import org.junit.Before;
import org.junit.Test;
@@ -47,7 +47,7 @@
@Mock
private UsbManager mUsbManager;
@Mock
- private UsbBackend.UserRestrictionUtil mUserRestrictionUtil;
+ private UserManagerWrapper mUserManagerWrapper;
@Mock
private ConnectivityManager mConnectivityManager;
@@ -63,7 +63,7 @@
@Test
public void constructor_noUsbPort_shouldNotCrash() {
- UsbBackend usbBackend = new UsbBackend(mContext, mUserRestrictionUtil, null);
+ UsbBackend usbBackend = new UsbBackend(mContext, mUserManagerWrapper, null);
// Should not crash
}
}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDefaultFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDefaultFragmentTest.java
new file mode 100644
index 0000000..0f6adbe
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDefaultFragmentTest.java
@@ -0,0 +1,111 @@
+/*
+ * 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.connecteddevice.usb;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.hardware.usb.UsbManager;
+
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class UsbDefaultFragmentTest {
+
+ @Mock
+ private UsbBackend mUsbBackend;
+
+ private UsbDefaultFragment mFragment;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mFragment = new UsbDefaultFragment();
+ mFragment.mUsbBackend = mUsbBackend;
+ }
+
+ @Test
+ public void testGetDefaultKey_isNone_shouldReturnNone() {
+ when(mUsbBackend.getDefaultUsbMode()).thenReturn(UsbBackend.MODE_DATA_NONE);
+ assertThat(mFragment.getDefaultKey()).isEqualTo(UsbManager.USB_FUNCTION_NONE);
+ }
+
+ @Test
+ public void testGetDefaultKey_isMtp_shouldReturnMtp() {
+ when(mUsbBackend.getDefaultUsbMode()).thenReturn(UsbBackend.MODE_DATA_MTP);
+ assertThat(mFragment.getDefaultKey()).isEqualTo(UsbManager.USB_FUNCTION_MTP);
+ }
+
+ @Test
+ public void testGetDefaultKey_isPtp_shouldReturnPtp() {
+ when(mUsbBackend.getDefaultUsbMode()).thenReturn(UsbBackend.MODE_DATA_PTP);
+ assertThat(mFragment.getDefaultKey()).isEqualTo(UsbManager.USB_FUNCTION_PTP);
+ }
+
+ @Test
+ public void testGetDefaultKey_isRndis_shouldReturnRndis() {
+ when(mUsbBackend.getDefaultUsbMode()).thenReturn(UsbBackend.MODE_DATA_TETHER);
+ assertThat(mFragment.getDefaultKey()).isEqualTo(UsbManager.USB_FUNCTION_RNDIS);
+ }
+
+ @Test
+ public void testGetDefaultKey_isMidi_shouldReturnMidi() {
+ when(mUsbBackend.getDefaultUsbMode()).thenReturn(UsbBackend.MODE_DATA_MIDI);
+ assertThat(mFragment.getDefaultKey()).isEqualTo(UsbManager.USB_FUNCTION_MIDI);
+ }
+
+ @Test
+ public void testSetDefaultKey_isNone_shouldSetNone() {
+ mFragment.setDefaultKey(UsbManager.USB_FUNCTION_NONE);
+ verify(mUsbBackend).setDefaultUsbMode(UsbBackend.MODE_DATA_NONE);
+ }
+
+ @Test
+ public void testSetDefaultKey_isMtp_shouldSetMtp() {
+ mFragment.setDefaultKey(UsbManager.USB_FUNCTION_MTP);
+ verify(mUsbBackend).setDefaultUsbMode(UsbBackend.MODE_DATA_MTP);
+ }
+
+ @Test
+ public void testSetDefaultKey_isPtp_shouldSetPtp() {
+ mFragment.setDefaultKey(UsbManager.USB_FUNCTION_PTP);
+ verify(mUsbBackend).setDefaultUsbMode(UsbBackend.MODE_DATA_PTP);
+ }
+
+ @Test
+ public void testSetDefaultKey_isRndis_shouldSetRndis() {
+ mFragment.setDefaultKey(UsbManager.USB_FUNCTION_RNDIS);
+ verify(mUsbBackend).setDefaultUsbMode(UsbBackend.MODE_DATA_TETHER);
+ }
+
+ @Test
+ public void testSetDefaultKey_isMidi_shouldSetMidi() {
+ mFragment.setDefaultKey(UsbManager.USB_FUNCTION_MIDI);
+ verify(mUsbBackend).setDefaultUsbMode(UsbBackend.MODE_DATA_MIDI);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java b/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java
index 91d8f7b..4a1b2d8 100644
--- a/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java
+++ b/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java
@@ -18,12 +18,18 @@
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import android.app.Activity;
+import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
+import android.os.UserHandle;
import com.android.settings.SettingsActivity;
import com.android.settings.TestConfig;
@@ -34,6 +40,8 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
@@ -41,10 +49,16 @@
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class SubSettingLauncherTest {
+ @Mock
+ private Fragment mFragment;
+ @Mock
+ private Activity mActivity;
+
private Context mContext;
@Before
public void setUp() {
+ MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
}
@@ -93,4 +107,58 @@
assertThat(intent.getIntExtra(VisibilityLoggerMixin.EXTRA_SOURCE_METRICS_CATEGORY, -1))
.isEqualTo(123);
}
+
+ @Test
+ public void launch_hasRequestListener_shouldStartActivityForResult() {
+ final int requestCode = 123123;
+ when(mFragment.getActivity()).thenReturn(mActivity);
+
+ final SubSettingLauncher launcher = spy(new SubSettingLauncher(mContext));
+ launcher.setTitle("123")
+ .setDestination(SubSettingLauncherTest.class.getName())
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ .setSourceMetricsCategory(123)
+ .setResultListener(mFragment, requestCode)
+ .launch();
+
+ verify(mActivity).startActivityForResult(any(Intent.class), eq(requestCode));
+ }
+
+ @Test
+ public void launch_hasUserHandle_shouldStartActivityAsUser() {
+ final UserHandle userHandle = new UserHandle(1234);
+
+ final SubSettingLauncher launcher = spy(new SubSettingLauncher(mContext));
+ doNothing().when(launcher).launchAsUser(any(Intent.class), any(UserHandle.class));
+
+ launcher.setTitle("123")
+ .setDestination(SubSettingLauncherTest.class.getName())
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ .setSourceMetricsCategory(123)
+ .setUserHandle(userHandle)
+ .launch();
+
+ verify(launcher).launchAsUser(any(Intent.class), eq(userHandle));
+ }
+
+ @Test
+ public void launch_hasUserHandleAndRequestCode_shouldStartActivityForResultAsUser() {
+ final int requestCode = 123123;
+ final UserHandle userHandle = new UserHandle(1234);
+
+ final SubSettingLauncher launcher = spy(new SubSettingLauncher(mContext));
+ doNothing().when(launcher).launchForResultAsUser(
+ any(Intent.class), any(UserHandle.class), any(Fragment.class), anyInt());
+
+ launcher.setTitle("123")
+ .setDestination(SubSettingLauncherTest.class.getName())
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ .setSourceMetricsCategory(123)
+ .setUserHandle(userHandle)
+ .setResultListener(mFragment, requestCode)
+ .launch();
+
+ verify(launcher).launchForResultAsUser(any(Intent.class), eq(userHandle), eq(mFragment),
+ eq(requestCode));
+ }
}
diff --git a/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java b/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java
index e69b97e..4939cca 100644
--- a/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java
+++ b/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java
@@ -17,7 +17,6 @@
import com.android.settings.search.Indexable;
import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.search.SearchFeatureProviderImpl;
-import com.android.settings.search.XmlParserUtils;
import com.android.settings.security.SecuritySettings;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -183,7 +182,7 @@
continue;
}
- controllerClassName = XmlParserUtils.getController(mContext, attrs);
+ controllerClassName = PreferenceXmlParserUtils.getController(mContext, attrs);
// If controller is not indexed, then it is not compatible with
if (!TextUtils.isEmpty(controllerClassName)) {
xmlControllers.add(controllerClassName);
diff --git a/tests/robotests/src/com/android/settings/dashboard/conditional/WorkModeConditionTest.java b/tests/robotests/src/com/android/settings/dashboard/conditional/WorkModeConditionTest.java
new file mode 100644
index 0000000..dff7700
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/dashboard/conditional/WorkModeConditionTest.java
@@ -0,0 +1,68 @@
+/*
+ * 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.dashboard.conditional;
+
+import static org.mockito.ArgumentMatchers.argThat;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.ComponentName;
+import android.content.Context;
+
+import com.android.settings.Settings;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class WorkModeConditionTest {
+
+ @Mock
+ private ConditionManager mConditionManager;
+
+ private Context mContext;
+ private WorkModeCondition mCondition;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = spy(RuntimeEnvironment.application);
+ FakeFeatureFactory.setupForTest();
+ when(mConditionManager.getContext()).thenReturn(mContext);
+ mCondition = new WorkModeCondition(mConditionManager);
+ }
+
+ @Test
+ public void onPrimaryClick_shouldLaunchAccountsSetting() {
+ final ComponentName componentName =
+ new ComponentName(mContext, Settings.AccountDashboardActivity.class);
+
+ mCondition.onPrimaryClick();
+
+ verify(mContext).startActivity(
+ argThat(intent-> intent.getComponent().equals(componentName)));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/development/BluetoothDelayReportsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothDelayReportsPreferenceControllerTest.java
new file mode 100644
index 0000000..e8dfba3
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/BluetoothDelayReportsPreferenceControllerTest.java
@@ -0,0 +1,129 @@
+/*
+ * 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.development;
+
+
+import static com.android.settings.development.BluetoothDelayReportsPreferenceController
+ .BLUETOOTH_ENABLE_AVDTP_DELAY_REPORTS_PROPERTY;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.SettingsShadowSystemProperties;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH,
+ sdk = TestConfig.SDK_VERSION,
+ shadows = {SettingsShadowSystemProperties.class})
+public class BluetoothDelayReportsPreferenceControllerTest {
+
+ @Mock
+ private PreferenceScreen mPreferenceScreen;
+
+ private Context mContext;
+ private SwitchPreference mPreference;
+ private BluetoothDelayReportsPreferenceController mController;
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
+ mPreference = new SwitchPreference(mContext);
+ mController = spy(new BluetoothDelayReportsPreferenceController(mContext));
+ when(mPreferenceScreen.findPreference(mController.getPreferenceKey())).thenReturn(
+ mPreference);
+ mController.displayPreference(mPreferenceScreen);
+ }
+
+ @Test
+ public void onPreferenceChanged_settingEnabled_turnOnDelayReports() {
+ mController.onPreferenceChange(mPreference, true /* new value */);
+
+ final boolean mode = SettingsShadowSystemProperties.getBoolean(
+ BLUETOOTH_ENABLE_AVDTP_DELAY_REPORTS_PROPERTY, false /* default */);
+
+ assertThat(mode).isTrue();
+ }
+
+ @Test
+ public void onPreferenceChanged_settingDisabled_turnOffDelayReports() {
+ mController.onPreferenceChange(mPreference, false /* new value */);
+
+ final boolean mode = SettingsShadowSystemProperties.getBoolean(
+ BLUETOOTH_ENABLE_AVDTP_DELAY_REPORTS_PROPERTY, false /* default */);
+
+ assertThat(mode).isFalse();
+ }
+
+ @Test
+ public void updateState_settingEnabled_preferenceShouldBeChecked() {
+ SettingsShadowSystemProperties.set(BLUETOOTH_ENABLE_AVDTP_DELAY_REPORTS_PROPERTY,
+ Boolean.toString(true));
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isChecked()).isTrue();
+ }
+
+ @Test
+ public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
+ SettingsShadowSystemProperties.set(BLUETOOTH_ENABLE_AVDTP_DELAY_REPORTS_PROPERTY,
+ Boolean.toString(false));
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isChecked()).isFalse();
+ }
+
+ @Test
+ public void onDeveloperOptionsDisabled_shouldDisablePreference() {
+ mController.onDeveloperOptionsDisabled();
+
+ final boolean mode = SettingsShadowSystemProperties.getBoolean(
+ BLUETOOTH_ENABLE_AVDTP_DELAY_REPORTS_PROPERTY, false /* default */);
+
+ assertThat(mode).isFalse();
+ assertThat(mPreference.isEnabled()).isFalse();
+ assertThat(mPreference.isChecked()).isFalse();
+ }
+
+ @Test
+ public void onDeveloperOptionsEnabled_shouldEnablePreference() {
+ mController.onDeveloperOptionsEnabled();
+
+ final boolean mode = SettingsShadowSystemProperties.getBoolean(
+ BLUETOOTH_ENABLE_AVDTP_DELAY_REPORTS_PROPERTY, false /* default */);
+
+ assertThat(mode).isFalse();
+ assertThat(mPreference.isEnabled()).isTrue();
+ assertThat(mPreference.isChecked()).isFalse();
+ }
+}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/development/DarkUIPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DarkUIPreferenceControllerTest.java
new file mode 100644
index 0000000..47b966a
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/DarkUIPreferenceControllerTest.java
@@ -0,0 +1,85 @@
+/*
+ * 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.development;
+
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.UiModeManager;
+import android.content.Context;
+import android.support.v7.preference.ListPreference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH,
+ sdk = TestConfig.SDK_VERSION)
+public class DarkUIPreferenceControllerTest {
+
+ private Context mContext;
+ @Mock
+ private ListPreference mPreference;
+ @Mock
+ private PreferenceScreen mPreferenceScreen;
+ @Mock
+ private UiModeManager mUiModeManager;
+ private DarkUIPreferenceController mController;
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
+ mController = new DarkUIPreferenceController(mContext, mUiModeManager);
+ when(mPreferenceScreen.findPreference(mController.getPreferenceKey())).thenReturn(
+ mPreference);
+ mController.displayPreference(mPreferenceScreen);
+ }
+
+ @Test
+ public void onPreferenceChanged_setAuto() {
+ mController.onPreferenceChange(mPreference, "auto");
+ verify(mUiModeManager).setNightMode(eq(UiModeManager.MODE_NIGHT_AUTO));
+ }
+
+ @Test
+ public void onPreferenceChanged_setNightMode() {
+ mController.onPreferenceChange(mPreference, "yes");
+ verify(mUiModeManager).setNightMode(eq(UiModeManager.MODE_NIGHT_YES));
+ }
+
+ @Test
+ public void onPreferenceChanged_setDayMode() {
+ mController.onPreferenceChange(mPreference, "no");
+ verify(mUiModeManager).setNightMode(eq(UiModeManager.MODE_NIGHT_NO));
+ }
+
+ public int getCurrentMode() {
+ final UiModeManager uiModeManager = mContext.getSystemService(UiModeManager.class);
+ return uiModeManager.getNightMode();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/development/SelectUsbConfigPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/SelectUsbConfigPreferenceControllerTest.java
index 67a6d6b..c0200c3 100644
--- a/tests/robotests/src/com/android/settings/development/SelectUsbConfigPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/SelectUsbConfigPreferenceControllerTest.java
@@ -44,7 +44,7 @@
import com.android.settings.R;
import com.android.settings.TestConfig;
-import com.android.settings.connecteddevice.usb.UsbBackend;
+import com.android.settings.wrapper.UsbManagerWrapper;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -73,7 +73,7 @@
@Mock
private PackageManager mPackageManager;
@Mock
- private UsbBackend.UsbManagerPassThrough mUsbManagerPassThrough;
+ private UsbManagerWrapper mUsbManagerWrapper;
private Context mContext;
private LifecycleOwner mLifecycleOwner;
@@ -106,12 +106,12 @@
mController = spy(new SelectUsbConfigPreferenceController(mContext, mLifecycle));
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
mController.displayPreference(mScreen);
- mController.mUsbManagerPassThrough = mUsbManagerPassThrough;
+ mController.mUsbManagerWrapper = mUsbManagerWrapper;
- when(mUsbManagerPassThrough.usbFunctionsFromString("mtp")).thenReturn(UsbManagerExtras.MTP);
- when(mUsbManagerPassThrough.usbFunctionsFromString("rndis"))
+ when(mUsbManagerWrapper.usbFunctionsFromString("mtp")).thenReturn(UsbManagerExtras.MTP);
+ when(mUsbManagerWrapper.usbFunctionsFromString("rndis"))
.thenReturn(UsbManagerExtras.RNDIS);
- when(mUsbManagerPassThrough.usbFunctionsFromString("none"))
+ when(mUsbManagerWrapper.usbFunctionsFromString("none"))
.thenReturn(UsbManagerExtras.NONE);
}
@@ -123,7 +123,7 @@
@Test
public void onPreferenceChange_setCharging_shouldEnableCharging() {
- when(mUsbManagerPassThrough.getCurrentFunctions()).thenReturn(
+ when(mUsbManagerWrapper.getCurrentFunctions()).thenReturn(
UsbManagerExtras.usbFunctionsFromString(mValues[0]));
doNothing().when(mController).setCurrentFunctions(anyLong());
mController.onPreferenceChange(mPreference, mValues[0]);
@@ -158,7 +158,7 @@
@Test
public void onPreferenceChange_setMtp_shouldEnableMtp() {
- when(mUsbManagerPassThrough.getCurrentFunctions())
+ when(mUsbManagerWrapper.getCurrentFunctions())
.thenReturn(UsbManagerExtras.usbFunctionsFromString(mValues[1]));
doNothing().when(mController).setCurrentFunctions(anyLong());
mController.onPreferenceChange(mPreference, mValues[1]);
@@ -169,7 +169,7 @@
@Test
public void onPreferenceChange_monkeyUser_shouldReturnFalse() {
- when(mUsbManagerPassThrough.getCurrentFunctions())
+ when(mUsbManagerWrapper.getCurrentFunctions())
.thenReturn(UsbManagerExtras.usbFunctionsFromString(mValues[1]));
ShadowUtils.setIsUserAMonkey(true);
doNothing().when(mController).setCurrentFunctions(anyLong());
@@ -182,7 +182,7 @@
@Test
public void updateState_chargingEnabled_shouldSetPreferenceToCharging() {
- when(mUsbManagerPassThrough.getCurrentFunctions())
+ when(mUsbManagerWrapper.getCurrentFunctions())
.thenReturn(UsbManagerExtras.usbFunctionsFromString(mValues[0]));
mController.updateState(mPreference);
@@ -193,7 +193,7 @@
@Test
public void updateState_RndisEnabled_shouldEnableRndis() {
- when(mUsbManagerPassThrough.getCurrentFunctions())
+ when(mUsbManagerWrapper.getCurrentFunctions())
.thenReturn(UsbManagerExtras.usbFunctionsFromString(mValues[3]));
mController.updateState(mPreference);
@@ -204,7 +204,7 @@
@Test
public void updateState_noValueSet_shouldEnableChargingAsDefault() {
- when(mUsbManagerPassThrough.getCurrentFunctions()).thenReturn(UsbManagerExtras.NONE);
+ when(mUsbManagerWrapper.getCurrentFunctions()).thenReturn(UsbManagerExtras.NONE);
mController.updateState(mPreference);
verify(mPreference).setValue(mValues[0]);
diff --git a/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilePreferenceControllerTest.java
index 1cdff20..e107344 100644
--- a/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilePreferenceControllerTest.java
@@ -17,19 +17,25 @@
package com.android.settings.development.qstile;
import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
+import android.os.RemoteException;
import android.service.quicksettings.TileService;
+import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
+import com.android.internal.statusbar.IStatusBarService;
import com.android.settings.R;
import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -37,22 +43,28 @@
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.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowPackageManager;
+import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DevelopmentTilePreferenceControllerTest {
+ private static final String SERVICE_INFO_NAME = "TestName";
@Mock
private PreferenceScreen mScreen;
+ @Mock
+ private IStatusBarService mStatusBarService;
private Context mContext;
private DevelopmentTilePreferenceController mController;
private ShadowPackageManager mShadowPackageManager;
+ private DevelopmentTilePreferenceController.OnChangeHandler mOnChangeHandler;
@Before
public void setUp() {
@@ -63,6 +75,9 @@
mController = new DevelopmentTilePreferenceController(mContext);
assertThat(mController.getPreferenceKey()).isNull();
+
+ mOnChangeHandler = spy(new DevelopmentTilePreferenceController.OnChangeHandler(mContext));
+ ReflectionHelpers.setField(mOnChangeHandler, "mStatusBarService", mStatusBarService);
}
@Test
@@ -86,6 +101,38 @@
verify(mScreen).addPreference(any(Preference.class));
}
+ @Test
+ public void preferenceChecked_shouldAddTile() throws RemoteException {
+ SwitchPreference preference = createPreference(/* defaultCheckedState = */ false);
+ preference.performClick();
+
+ ArgumentCaptor<ComponentName> argument = ArgumentCaptor.forClass(ComponentName.class);
+ verify(mStatusBarService).addTile(argument.capture());
+ assertThat(argument.getValue().getClassName()).isEqualTo(SERVICE_INFO_NAME);
+ assertThat(argument.getValue().getPackageName()).isEqualTo(mContext.getPackageName());
+ }
+
+ @Test
+ public void preferenceUnchecked_shouldRemoveTile() throws RemoteException {
+ SwitchPreference preference = createPreference(/* defaultCheckedState = */ true);
+ preference.performClick();
+
+ ArgumentCaptor<ComponentName> argument = ArgumentCaptor.forClass(ComponentName.class);
+ verify(mStatusBarService).remTile(argument.capture());
+ assertThat(argument.getValue().getClassName()).isEqualTo(SERVICE_INFO_NAME);
+ assertThat(argument.getValue().getPackageName()).isEqualTo(mContext.getPackageName());
+ }
+
+ private SwitchPreference createPreference(boolean defaultCheckedState) {
+ SwitchPreference preference = new SwitchPreference(mContext);
+ preference.setTitle("Test Pref");
+ preference.setIcon(R.drawable.ic_settings_24dp);
+ preference.setKey(SERVICE_INFO_NAME);
+ preference.setChecked(defaultCheckedState);
+ preference.setOnPreferenceChangeListener(mOnChangeHandler);
+ return preference;
+ }
+
public static class FakeServiceInfo extends ServiceInfo {
public String loadLabel(PackageManager mgr) {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java
index c75a6a6..6cc3310 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java
@@ -53,7 +53,7 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
- mBatterySaverController = spy(new BatterySaverController(mContext, mLifecycle));
+ mBatterySaverController = spy(new BatterySaverController(mContext));
ReflectionHelpers.setField(mBatterySaverController, "mPowerManager", mPowerManager);
ReflectionHelpers.setField(mBatterySaverController, "mBatterySaverPref", mBatterySaverPref);
doNothing().when(mBatterySaverController).refreshConditionManager();
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java
index 521ead4..1d4d71e 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java
@@ -18,24 +18,30 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
-import android.app.AppOpsManager;
import android.content.Context;
+import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
+import android.os.Bundle;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceCategory;
import android.support.v7.preference.PreferenceManager;
import android.util.IconDrawableFactory;
+import com.android.settings.SettingsActivity;
import com.android.settings.TestConfig;
+import com.android.settings.core.InstrumentedPreferenceFragment;
+import com.android.settings.fuelgauge.batterytip.AppInfo;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
+import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
@@ -43,13 +49,13 @@
import org.robolectric.annotation.Config;
import java.util.ArrayList;
+import java.util.List;
@RunWith(RobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class RestrictedAppDetailsTest {
private static final String PACKAGE_NAME = "com.android.app";
private static final String APP_NAME = "app";
- private static final int UID = 1234;
@Mock
private PackageManager mPackageManager;
@Mock
@@ -58,25 +64,33 @@
private IconDrawableFactory mIconDrawableFactory;
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private PreferenceManager mPreferenceManager;
- private RestrictedAppDetails mFragment;
+ @Mock
+ private SettingsActivity mSettingsActivity;
+ @Mock
+ private InstrumentedPreferenceFragment mFragment;
+ private RestrictedAppDetails mRestrictedAppDetails;
private Context mContext;
+ private Intent mIntent;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
- mFragment = spy(new RestrictedAppDetails());
+ mRestrictedAppDetails = spy(new RestrictedAppDetails());
- doReturn(mPreferenceManager).when(mFragment).getPreferenceManager();
+ doReturn(mPreferenceManager).when(mRestrictedAppDetails).getPreferenceManager();
doReturn(mContext).when(mPreferenceManager).getContext();
- mFragment.mPackageManager = mPackageManager;
- mFragment.mIconDrawableFactory = mIconDrawableFactory;
- mFragment.mPackageOpsList = new ArrayList<>();
- mFragment.mPackageOpsList.add(
- new AppOpsManager.PackageOps(PACKAGE_NAME, UID, null /* entries */));
- mFragment.mRestrictedAppListGroup = spy(new PreferenceCategory(mContext));
- doReturn(mPreferenceManager).when(mFragment.mRestrictedAppListGroup).getPreferenceManager();
+ mRestrictedAppDetails.mPackageManager = mPackageManager;
+ mRestrictedAppDetails.mIconDrawableFactory = mIconDrawableFactory;
+ mRestrictedAppDetails.mAppInfos = new ArrayList<>();
+ mRestrictedAppDetails.mAppInfos.add(new AppInfo.Builder()
+ .setPackageName(PACKAGE_NAME)
+ .build());
+ mRestrictedAppDetails.mRestrictedAppListGroup = spy(new PreferenceCategory(mContext));
+ mRestrictedAppDetails.mBatteryUtils = new BatteryUtils(mContext);
+ doReturn(mPreferenceManager).when(
+ mRestrictedAppDetails.mRestrictedAppListGroup).getPreferenceManager();
}
@Test
@@ -84,12 +98,33 @@
doReturn(mApplicationInfo).when(mPackageManager).getApplicationInfo(PACKAGE_NAME, 0);
doReturn(APP_NAME).when(mPackageManager).getApplicationLabel(mApplicationInfo);
- mFragment.refreshUi();
+ mRestrictedAppDetails.refreshUi();
- assertThat(mFragment.mRestrictedAppListGroup.getPreferenceCount()).isEqualTo(1);
- final Preference preference = mFragment.mRestrictedAppListGroup.getPreference(0);
+ assertThat(mRestrictedAppDetails.mRestrictedAppListGroup.getPreferenceCount()).isEqualTo(1);
+ final Preference preference = mRestrictedAppDetails.mRestrictedAppListGroup.getPreference(
+ 0);
assertThat(preference.getKey()).isEqualTo(PACKAGE_NAME);
assertThat(preference.getTitle()).isEqualTo(APP_NAME);
}
+ @Test
+ public void testStartRestrictedAppDetails_startWithCorrectData() {
+ final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
+ doAnswer(invocation -> {
+ // Get the intent in which it has the app info bundle
+ mIntent = captor.getValue();
+ return true;
+ }).when(mSettingsActivity).startActivity(captor.capture());
+
+ RestrictedAppDetails.startRestrictedAppDetails(mSettingsActivity, mFragment,
+ mRestrictedAppDetails.mAppInfos);
+
+ final Bundle bundle = mIntent.getBundleExtra(
+ SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+ // Verify the bundle has the correct info
+ final List<AppInfo> appInfos = bundle.getParcelableArrayList(
+ RestrictedAppDetails.EXTRA_APP_INFO_LIST);
+ assertThat(appInfos).hasSize(1);
+ assertThat(appInfos.get(0).packageName).isEqualTo(PACKAGE_NAME);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySaverPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySaverPreferenceControllerTest.java
index cabcdcf..af0f855 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySaverPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySaverPreferenceControllerTest.java
@@ -25,6 +25,7 @@
import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
import org.junit.Before;
import org.junit.Test;
@@ -34,7 +35,8 @@
import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, shadows =
+ SettingsShadowResources.class)
public class AutoBatterySaverPreferenceControllerTest {
private AutoBatterySaverPreferenceController mController;
@@ -45,6 +47,8 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
+ SettingsShadowResources.overrideResource(
+ com.android.internal.R.integer.config_lowBatteryWarningLevel, 15);
mContext = RuntimeEnvironment.application;
mPreference = new SwitchPreference(mContext);
mController = new AutoBatterySaverPreferenceController(mContext);
@@ -84,4 +88,9 @@
Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0)).isEqualTo(0);
}
+ @Test
+ public void testIsChecked_useDefaultValue_returnTrue() {
+ assertThat(mController.isChecked()).isTrue();
+ }
+
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceControllerTest.java
index 32a4fac..d3c2752 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceControllerTest.java
@@ -24,6 +24,7 @@
import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.widget.SeekBarPreference;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -35,9 +36,11 @@
import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, shadows =
+ SettingsShadowResources.class)
public class AutoBatterySeekBarPreferenceControllerTest {
- private static final int TRIGGER_LEVEL = 15;
+ private static final int TRIGGER_LEVEL = 20;
+ private static final int DEFAULT_LEVEL = 15;
private AutoBatterySeekBarPreferenceController mController;
private Context mContext;
@@ -51,6 +54,8 @@
mLifecycleOwner = () -> mLifecycle;
mLifecycle = new Lifecycle(mLifecycleOwner);
+ SettingsShadowResources.overrideResource(
+ com.android.internal.R.integer.config_lowBatteryWarningLevel, DEFAULT_LEVEL);
mContext = RuntimeEnvironment.application;
mPreference = new SeekBarPreference(mContext);
mPreference.setMax(100);
@@ -68,13 +73,21 @@
}
@Test
+ public void testPreference_defaultValue_preferenceVisible() {
+ mController.updateState(mPreference);
+
+ assertThat(mPreference.isVisible()).isTrue();
+ assertThat(mPreference.getProgress()).isEqualTo(DEFAULT_LEVEL);
+ }
+
+ @Test
public void testPreference_lowPowerLevelNotZero_updatePreference() {
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, TRIGGER_LEVEL);
mController.updateState(mPreference);
assertThat(mPreference.isVisible()).isTrue();
- assertThat(mPreference.getTitle()).isEqualTo("Turn on automatically at 15%");
+ assertThat(mPreference.getTitle()).isEqualTo("Turn on automatically at 20%");
assertThat(mPreference.getProgress()).isEqualTo(TRIGGER_LEVEL);
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanUpJobServiceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanUpJobServiceTest.java
new file mode 100644
index 0000000..3da7bbd
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanUpJobServiceTest.java
@@ -0,0 +1,63 @@
+/*
+ * 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.fuelgauge.batterytip;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assert.assertEquals;
+import static org.robolectric.RuntimeEnvironment.application;
+
+import android.app.job.JobInfo;
+import android.app.job.JobScheduler;
+
+import com.android.settings.R;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.Shadows;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowJobScheduler;
+
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AnomalyCleanUpJobServiceTest {
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @Test
+ public void testScheduleCleanUp() {
+ AnomalyCleanUpJobService.scheduleCleanUp(application);
+
+ ShadowJobScheduler shadowJobScheduler = Shadows.shadowOf(
+ application.getSystemService(JobScheduler.class));
+ List<JobInfo> pendingJobs = shadowJobScheduler.getAllPendingJobs();
+ assertEquals(1, pendingJobs.size());
+ JobInfo pendingJob = pendingJobs.get(0);
+ assertThat(pendingJob.getId()).isEqualTo(R.id.job_anomaly_clean_up);
+ assertThat(pendingJob.getMinLatencyMillis()).isEqualTo(TimeUnit.DAYS.toMillis(1));
+ assertThat(pendingJob.isRequireDeviceIdle()).isTrue();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java
index 78c86f8..f36acee 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java
@@ -49,7 +49,8 @@
+ ",reduced_battery_enabled=true"
+ ",reduced_battery_percent=30"
+ ",low_battery_enabled=false"
- + ",low_battery_hour=10";
+ + ",low_battery_hour=10"
+ + ",data_history_retain_hour=24";
private Context mContext;
@Before
@@ -76,6 +77,7 @@
assertThat(batteryTipPolicy.reducedBatteryPercent).isEqualTo(30);
assertThat(batteryTipPolicy.lowBatteryEnabled).isFalse();
assertThat(batteryTipPolicy.lowBatteryHour).isEqualTo(10);
+ assertThat(batteryTipPolicy.dataHistoryRetainHour).isEqualTo(24);
}
@Test
@@ -97,6 +99,7 @@
assertThat(batteryTipPolicy.reducedBatteryPercent).isEqualTo(50);
assertThat(batteryTipPolicy.lowBatteryEnabled).isFalse();
assertThat(batteryTipPolicy.lowBatteryHour).isEqualTo(16);
+ assertThat(batteryTipPolicy.dataHistoryRetainHour).isEqualTo(72);
}
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtilsTest.java
new file mode 100644
index 0000000..c7865d8
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtilsTest.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.fuelgauge.batterytip;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import com.android.settings.SettingsActivity;
+import com.android.settings.TestConfig;
+import com.android.settings.core.InstrumentedPreferenceFragment;
+import com.android.settings.fuelgauge.batterytip.actions.OpenRestrictAppFragmentAction;
+import com.android.settings.fuelgauge.batterytip.actions.RestrictAppAction;
+import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
+import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import java.util.ArrayList;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class BatteryTipUtilsTest {
+ @Mock
+ private SettingsActivity mSettingsActivity;
+ @Mock
+ private InstrumentedPreferenceFragment mFragment;
+ private RestrictAppTip mRestrictAppTip;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ FakeFeatureFactory.setupForTest();
+ doReturn(RuntimeEnvironment.application).when(mFragment).getContext();
+ mRestrictAppTip = spy(new RestrictAppTip(BatteryTip.StateType.NEW, new ArrayList<>()));
+ }
+
+ @Test
+ public void testGetActionForBatteryTip_typeRestrictStateNew_returnActionRestrict() {
+ doReturn(BatteryTip.StateType.NEW).when(mRestrictAppTip).getState();
+
+ assertThat(BatteryTipUtils.getActionForBatteryTip(mRestrictAppTip, mSettingsActivity,
+ mFragment)).isInstanceOf(RestrictAppAction.class);
+ }
+
+ @Test
+ public void testGetActionForBatteryTip_typeRestrictStateHandled_returnActionOpen() {
+ doReturn(BatteryTip.StateType.HANDLED).when(mRestrictAppTip).getState();
+
+ assertThat(BatteryTipUtils.getActionForBatteryTip(mRestrictAppTip, mSettingsActivity,
+ mFragment)).isInstanceOf(OpenRestrictAppFragmentAction.class);
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTipTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTipTest.java
index 66d5f81..7dfe42e 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTipTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/EarlyWarningTipTest.java
@@ -83,4 +83,38 @@
assertThat(mEarlyWarningTip.getState()).isEqualTo(BatteryTip.StateType.HANDLED);
}
+
+ @Test
+ public void testUpdate_devicePluggedIn_typeBecomeInvisible() {
+ final EarlyWarningTip nextTip = new EarlyWarningTip(BatteryTip.StateType.INVISIBLE,
+ false /* powerModeOn */);
+
+ mEarlyWarningTip.updateState(nextTip);
+
+ assertThat(mEarlyWarningTip.getState()).isEqualTo(BatteryTip.StateType.INVISIBLE);
+ }
+
+ @Test
+ public void testUpdate_turnOnLowPowerModeExplicitly_typeStillInvisible() {
+ final EarlyWarningTip earlyWarningTip = new EarlyWarningTip(BatteryTip.StateType.INVISIBLE,
+ false /* powerModeOn */);
+ final EarlyWarningTip nextTip = new EarlyWarningTip(BatteryTip.StateType.INVISIBLE,
+ true /* powerModeOn */);
+
+ earlyWarningTip.updateState(nextTip);
+
+ assertThat(earlyWarningTip.getState()).isEqualTo(BatteryTip.StateType.INVISIBLE);
+ }
+
+ @Test
+ public void testUpdate_turnOffLowPowerModeExplicitly_typeBecomeInvisible() {
+ final EarlyWarningTip earlyWarningTip = new EarlyWarningTip(BatteryTip.StateType.HANDLED,
+ true /* powerModeOn */);
+ final EarlyWarningTip nextTip = new EarlyWarningTip(BatteryTip.StateType.INVISIBLE,
+ false /* powerModeOn */);
+
+ earlyWarningTip.updateState(nextTip);
+
+ assertThat(earlyWarningTip.getState()).isEqualTo(BatteryTip.StateType.INVISIBLE);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/print/PrintSettingsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/print/PrintSettingsPreferenceControllerTest.java
index de1625b..bf4733a 100644
--- a/tests/robotests/src/com/android/settings/print/PrintSettingsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/print/PrintSettingsPreferenceControllerTest.java
@@ -20,26 +20,29 @@
import static android.arch.lifecycle.Lifecycle.Event.ON_STOP;
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.verify;
import static org.mockito.Mockito.when;
import android.arch.lifecycle.LifecycleOwner;
import android.content.Context;
+import android.os.UserManager;
import android.print.PrintJob;
import android.print.PrintJobInfo;
import android.print.PrintManager;
import android.printservice.PrintServiceInfo;
-import android.support.v7.preference.Preference;
import com.android.settings.R;
import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.wrapper.PrintManagerWrapper;
+import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
@@ -57,8 +60,11 @@
@Mock
private PrintManagerWrapper mPrintManager;
+ @Mock
+ private UserManager mUserManager;
private Context mContext;
- private Preference mPreference;
+ @Mock
+ private RestrictedPreference mPreference;
private PrintSettingPreferenceController mController;
private LifecycleOwner mLifecycleOwner;
private Lifecycle mLifecycle;
@@ -66,8 +72,9 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = RuntimeEnvironment.application;
- mPreference = new Preference(mContext);
+ mContext = spy(RuntimeEnvironment.application);
+ when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+ mPreference = spy(new RestrictedPreference(mContext));
mController = new PrintSettingPreferenceController(mContext);
mLifecycleOwner = () -> mLifecycle;
mLifecycle = new Lifecycle(mLifecycleOwner);
@@ -122,4 +129,10 @@
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.print_settings_summary_no_service));
}
+
+ @Test
+ public void updateState_shouldCheckRestriction() {
+ mController.updateState(mPreference);
+ verify(mPreference).checkRestrictionAndSetDisabled(UserManager.DISALLOW_PRINTING);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/search/XmlParserUtilTest.java b/tests/robotests/src/com/android/settings/search/XmlParserUtilTest.java
index af7a462..2d1a232 100644
--- a/tests/robotests/src/com/android/settings/search/XmlParserUtilTest.java
+++ b/tests/robotests/src/com/android/settings/search/XmlParserUtilTest.java
@@ -26,6 +26,7 @@
import com.android.settings.R;
import com.android.settings.TestConfig;
+import com.android.settings.core.PreferenceXmlParserUtils;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
@@ -58,7 +59,7 @@
XmlResourceParser parser = getChildByType(R.xml.display_settings,
"com.android.settings.TimeoutListPreference");
final AttributeSet attrs = Xml.asAttributeSet(parser);
- String title = XmlParserUtils.getDataTitle(mContext, attrs);
+ String title = PreferenceXmlParserUtils.getDataTitle(mContext, attrs);
String expTitle = mContext.getString(R.string.screen_timeout);
assertThat(title).isEqualTo(expTitle);
}
@@ -67,7 +68,7 @@
public void testDataKeywordsValid_ReturnsPreferenceKeywords() {
XmlResourceParser parser = getParentPrimedParser(R.xml.display_settings);
final AttributeSet attrs = Xml.asAttributeSet(parser);
- String keywords = XmlParserUtils.getDataKeywords(mContext, attrs);
+ String keywords = PreferenceXmlParserUtils.getDataKeywords(mContext, attrs);
String expKeywords = mContext.getString(R.string.keywords_display);
assertThat(keywords).isEqualTo(expKeywords);
}
@@ -77,7 +78,7 @@
XmlResourceParser parser = getChildByType(R.xml.display_settings,
"com.android.settings.TimeoutListPreference");
final AttributeSet attrs = Xml.asAttributeSet(parser);
- String key = XmlParserUtils.getDataKey(mContext, attrs);
+ String key = PreferenceXmlParserUtils.getDataKey(mContext, attrs);
String expKey = "screen_timeout";
assertThat(key).isEqualTo(expKey);
}
@@ -87,7 +88,7 @@
XmlResourceParser parser = getChildByType(R.xml.display_settings,
"com.android.settings.TimeoutListPreference");
final AttributeSet attrs = Xml.asAttributeSet(parser);
- String summary = XmlParserUtils.getDataSummary(mContext, attrs);
+ String summary = PreferenceXmlParserUtils.getDataSummary(mContext, attrs);
String expSummary = mContext.getString(R.string.summary_placeholder);
assertThat(summary).isEqualTo(expSummary);
@@ -99,9 +100,9 @@
XmlResourceParser parser = getChildByType(R.xml.display_settings, "CheckBoxPreference");
final AttributeSet attrs = Xml.asAttributeSet(parser);
- assertThat(XmlParserUtils.getDataSummaryOn(mContext, attrs))
+ assertThat(PreferenceXmlParserUtils.getDataSummaryOn(mContext, attrs))
.isEqualTo("summary_on");
- assertThat(XmlParserUtils.getDataSummaryOff(mContext, attrs))
+ assertThat(PreferenceXmlParserUtils.getDataSummaryOff(mContext, attrs))
.isEqualTo("summary_off");
}
@@ -110,7 +111,7 @@
public void testDataEntriesValid_ReturnsPreferenceEntries() {
XmlResourceParser parser = getChildByType(R.xml.display_settings, "ListPreference");
final AttributeSet attrs = Xml.asAttributeSet(parser);
- String entries = XmlParserUtils.getDataEntries(mContext, attrs);
+ String entries = PreferenceXmlParserUtils.getDataEntries(mContext, attrs);
String[] expEntries = mContext.getResources()
.getStringArray(R.array.app_install_location_entries);
for (int i = 0; i < expEntries.length; i++) {
@@ -124,7 +125,7 @@
public void testDataKeyInvalid_ReturnsNull() {
XmlResourceParser parser = getParentPrimedParser(R.xml.display_settings);
final AttributeSet attrs = Xml.asAttributeSet(parser);
- String key = XmlParserUtils.getDataKey(mContext, attrs);
+ String key = PreferenceXmlParserUtils.getDataKey(mContext, attrs);
assertThat(key).isNull();
}
@@ -134,7 +135,7 @@
XmlResourceParser parser = getChildByType(R.xml.about_legal, "Preference");
final AttributeSet attrs = Xml.asAttributeSet(parser);
- String controller = XmlParserUtils.getController(mContext, attrs);
+ String controller = PreferenceXmlParserUtils.getController(mContext, attrs);
assertThat(controller).isEqualTo("mind_flayer");
}
@@ -142,7 +143,7 @@
public void testDataSummaryInvalid_ReturnsNull() {
XmlResourceParser parser = getParentPrimedParser(R.xml.display_settings);
final AttributeSet attrs = Xml.asAttributeSet(parser);
- String summary = XmlParserUtils.getDataSummary(mContext, attrs);
+ String summary = PreferenceXmlParserUtils.getDataSummary(mContext, attrs);
assertThat(summary).isNull();
}
@@ -150,7 +151,7 @@
public void testDataSummaryOffInvalid_ReturnsNull() {
XmlResourceParser parser = getParentPrimedParser(R.xml.display_settings);
final AttributeSet attrs = Xml.asAttributeSet(parser);
- String summaryOff = XmlParserUtils.getDataSummaryOff(mContext, attrs);
+ String summaryOff = PreferenceXmlParserUtils.getDataSummaryOff(mContext, attrs);
assertThat(summaryOff).isNull();
}
@@ -158,7 +159,7 @@
public void testDataEntriesInvalid_ReturnsNull() {
XmlResourceParser parser = getParentPrimedParser(R.xml.display_settings);
final AttributeSet attrs = Xml.asAttributeSet(parser);
- String entries = XmlParserUtils.getDataEntries(mContext, attrs);
+ String entries = PreferenceXmlParserUtils.getDataEntries(mContext, attrs);
assertThat(entries).isNull();
}
diff --git a/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlTest.java b/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlTest.java
index 66ed459..9c079a7 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlTest.java
@@ -38,7 +38,7 @@
import com.android.settings.search.Indexable;
import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.search.SearchFeatureProviderImpl;
-import com.android.settings.search.XmlParserUtils;
+import com.android.settings.core.PreferenceXmlParserUtils;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -111,7 +111,7 @@
if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) {
continue;
}
- controllerClassName = XmlParserUtils.getController(mContext, attrs);
+ controllerClassName = PreferenceXmlParserUtils.getController(mContext, attrs);
if (!TextUtils.isEmpty(controllerClassName)) {
mXmlDeclaredControllers.add(controllerClassName);
diff --git a/tests/robotests/src/com/android/settings/testutils/XmlTestUtils.java b/tests/robotests/src/com/android/settings/testutils/XmlTestUtils.java
index 4f560022..2b27649 100644
--- a/tests/robotests/src/com/android/settings/testutils/XmlTestUtils.java
+++ b/tests/robotests/src/com/android/settings/testutils/XmlTestUtils.java
@@ -7,7 +7,7 @@
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.Xml;
-import com.android.settings.search.XmlParserUtils;
+import com.android.settings.core.PreferenceXmlParserUtils;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -35,7 +35,7 @@
try {
while (parser.next() != XmlPullParser.END_DOCUMENT) {
try {
- key = XmlParserUtils.getDataKey(context, attrs);
+ key = PreferenceXmlParserUtils.getDataKey(context, attrs);
if (!TextUtils.isEmpty(key)) {
keys.add(key);
}
diff --git a/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
index 06b4d55..7b47f97 100644
--- a/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
@@ -270,7 +270,7 @@
mController = EntityHeaderController.newInstance(mActivity, mFragment, appLinks);
mController.setPackageName("123")
- .setUid(UserHandle.USER_SYSTEM)
+ .setUid(123321)
.setHasAppInfoLink(true)
.setButtonActions(
EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
diff --git a/tests/robotests/src/com/android/settings/widget/HighlightablePreferenceGroupAdapterTest.java b/tests/robotests/src/com/android/settings/widget/HighlightablePreferenceGroupAdapterTest.java
index e2fb6c1..fd5800f 100644
--- a/tests/robotests/src/com/android/settings/widget/HighlightablePreferenceGroupAdapterTest.java
+++ b/tests/robotests/src/com/android/settings/widget/HighlightablePreferenceGroupAdapterTest.java
@@ -27,12 +27,16 @@
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
+import android.os.Bundle;
import android.support.v7.preference.PreferenceCategory;
+import android.support.v7.preference.PreferenceScreen;
import android.support.v7.preference.PreferenceViewHolder;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -55,6 +59,9 @@
private View mRoot;
@Mock
private PreferenceCategory mPreferenceCatetory;
+ @Mock
+ private SettingsPreferenceFragment mFragment;
+
private Context mContext;
private HighlightablePreferenceGroupAdapter mAdapter;
private PreferenceViewHolder mViewHolder;
@@ -96,6 +103,57 @@
}
@Test
+ public void adjustInitialExpandedChildCount_invalidInput_shouldNotadjust() {
+ HighlightablePreferenceGroupAdapter.adjustInitialExpandedChildCount(null /* host */);
+ HighlightablePreferenceGroupAdapter.adjustInitialExpandedChildCount(mFragment);
+ final Bundle args = new Bundle();
+ when(mFragment.getArguments()).thenReturn(args);
+ HighlightablePreferenceGroupAdapter.adjustInitialExpandedChildCount(mFragment);
+ final PreferenceScreen screen = mock(PreferenceScreen.class);
+ when(mFragment.getArguments()).thenReturn(null);
+ when(mFragment.getPreferenceScreen()).thenReturn(screen);
+ HighlightablePreferenceGroupAdapter.adjustInitialExpandedChildCount(mFragment);
+ verifyZeroInteractions(screen);
+ }
+
+ @Test
+ public void adjustInitialExpandedChildCount_hasHightlightKey_shouldExpandAllChildren() {
+ final Bundle args = new Bundle();
+ when(mFragment.getArguments()).thenReturn(args);
+ args.putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, "testkey");
+ final PreferenceScreen screen = mock(PreferenceScreen.class);
+ when(mFragment.getPreferenceScreen()).thenReturn(screen);
+ HighlightablePreferenceGroupAdapter.adjustInitialExpandedChildCount(mFragment);
+
+ verify(screen).setInitialExpandedChildrenCount(Integer.MAX_VALUE);
+ }
+
+ @Test
+ public void adjustInitialExpandedChildCount_noKeyOrChildCountOverride_shouldDoNothing() {
+ final Bundle args = new Bundle();
+ when(mFragment.getArguments()).thenReturn(args);
+ when(mFragment.getInitialExpandedChildCount()).thenReturn(-1);
+ final PreferenceScreen screen = mock(PreferenceScreen.class);
+ when(mFragment.getPreferenceScreen()).thenReturn(screen);
+ HighlightablePreferenceGroupAdapter.adjustInitialExpandedChildCount(mFragment);
+
+ verify(mFragment).getInitialExpandedChildCount();
+ verifyZeroInteractions(screen);
+ }
+
+ @Test
+ public void adjustInitialExpandedChildCount_hasCountOverride_shouldDoNothing() {
+ when(mFragment.getInitialExpandedChildCount()).thenReturn(10);
+ final PreferenceScreen screen = mock(PreferenceScreen.class);
+ when(mFragment.getPreferenceScreen()).thenReturn(screen);
+ HighlightablePreferenceGroupAdapter.adjustInitialExpandedChildCount(mFragment);
+
+ verify(mFragment).getInitialExpandedChildCount();
+
+ verify(screen).setInitialExpandedChildrenCount(10);
+ }
+
+ @Test
public void updateBackground_notHighlightedRow_shouldNotSetHighlightedTag() {
ReflectionHelpers.setField(mAdapter, "mHighlightPosition", 10);
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
index b200639..e9b6146 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
@@ -199,15 +199,6 @@
assertThat(mView.findViewById(R.id.eap).getVisibility()).isEqualTo(View.GONE);
}
- @Test
- public void ssidGetFocus_addNewNetwork_shouldReturnTrue() {
- mController = new TestWifiConfigController(mConfigUiBase, mView, null /* accessPoint */,
- WifiConfigUiBase.MODE_CONNECT);
- final TextView ssid = mView.findViewById(R.id.ssid);
- // Verify ssid text get focus when add new network
- assertThat(ssid.isFocused()).isTrue();
- }
-
public class TestWifiConfigController extends WifiConfigController {
public TestWifiConfigController(WifiConfigUiBase parent, View view,
diff --git a/tests/unit/Android.mk b/tests/unit/Android.mk
index cbf91db..1981a63 100644
--- a/tests/unit/Android.mk
+++ b/tests/unit/Android.mk
@@ -27,6 +27,7 @@
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := SettingsUnitTests
+LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_COMPATIBILITY_SUITE := device-tests
LOCAL_INSTRUMENTATION_FOR := Settings
diff --git a/tests/unit/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java b/tests/unit/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
index 5e5e143..86b0964 100644
--- a/tests/unit/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
+++ b/tests/unit/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
@@ -29,6 +29,9 @@
import android.support.test.runner.AndroidJUnit4;
import com.android.settings.Settings.AccessibilitySettingsActivity;
+import com.android.settings.core.InstrumentedPreferenceFragment;
+import com.android.settings.core.SubSettingLauncher;
+
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Rule;
@@ -59,7 +62,12 @@
Bundle args = new Bundle();
args.putString(AccessibilitySettings.EXTRA_SUMMARY, SUMMARY_TEXT);
fragment.setArguments(args);
- mActivityRule.getActivity().startPreferenceFragment(fragment, false);
+ new SubSettingLauncher(mActivityRule.getActivity())
+ .setDestination(MyToggleFeaturePreferenceFragment.class.getName())
+ .setArguments(args)
+ .setSourceMetricsCategory(
+ InstrumentedPreferenceFragment.METRICS_CATEGORY_UNKNOWN)
+ .launch();
});
}
@@ -70,7 +78,8 @@
public static class MyToggleFeaturePreferenceFragment extends ToggleFeaturePreferenceFragment {
@Override
- protected void onPreferenceToggled(String preferenceKey, boolean enabled) {}
+ protected void onPreferenceToggled(String preferenceKey, boolean enabled) {
+ }
@Override
public int getMetricsCategory() {
diff --git a/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java b/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java
index dd27591..e208709 100644
--- a/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java
+++ b/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java
@@ -36,7 +36,6 @@
import com.android.settings.search.Indexable;
import com.android.settings.search.SearchIndexableRaw;
import com.android.settings.search.SearchIndexableResources;
-import com.android.settings.search.XmlParserUtils;
import org.junit.Before;
import org.junit.Test;
@@ -203,7 +202,7 @@
continue;
}
final AttributeSet attrs = Xml.asAttributeSet(parser);
- final String key = XmlParserUtils.getDataKey(mContext, attrs);
+ final String key = PreferenceXmlParserUtils.getDataKey(mContext, attrs);
if (TextUtils.isEmpty(key)) {
Log.e(TAG, "Every preference must have an key; found null key"
+ " in " + className
diff --git a/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java b/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java
index e44a596..bc6caf6 100644
--- a/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java
+++ b/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java
@@ -51,6 +51,7 @@
import android.support.test.runner.AndroidJUnit4;
import com.android.settings.Settings.WifiSettingsActivity;
+import com.android.settingslib.utils.ThreadUtils;
import com.android.settingslib.wifi.AccessPoint;
import com.android.settingslib.wifi.TestAccessPointBuilder;
import com.android.settingslib.wifi.WifiTracker;
@@ -60,6 +61,7 @@
import com.google.common.collect.Lists;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -261,26 +263,6 @@
}
@Test
- public void resumingAp_shouldNotForceUpdateWhenExistingAPsAreListed() {
- setWifiState(WifiManager.WIFI_STATE_ENABLED);
- setupConnectedAccessPoint();
- when(mWifiTracker.isConnected()).thenReturn(true);
-
- launchActivity();
-
- onView(withText(resourceString(WIFI_DISPLAY_STATUS_CONNECTED))).check(
- matches(isDisplayed()));
- verify(mWifiTracker).forceUpdate();
-
- Activity activity = mActivityRule.getActivity();
- activity.finish();
- getInstrumentation().waitForIdleSync();
-
- getInstrumentation().callActivityOnStart(activity);
- verify(mWifiTracker, atMost(1)).forceUpdate();
- }
-
- @Test
public void changingSecurityStateOnApShouldNotCauseMultipleListItems() {
setWifiState(WifiManager.WIFI_STATE_ENABLED);
TestAccessPointBuilder builder = new TestAccessPointBuilder(mContext)
@@ -305,10 +287,10 @@
onView(withText(TEST_SSID)).check(matches(isDisplayed()));
- mWifiListener.onAccessPointsChanged();
+ ThreadUtils.postOnMainThread(() -> mWifiListener.onAccessPointsChanged());
onView(withText(TEST_SSID)).check(matches(isDisplayed()));
- mWifiListener.onAccessPointsChanged();
+ ThreadUtils.postOnMainThread(() -> mWifiListener.onAccessPointsChanged());
onView(withText(TEST_SSID)).check(matches(isDisplayed()));
}
@@ -361,13 +343,14 @@
onView(withId(resourceId(ID, PASSWORD))).check(matches(isDisplayed()));
}
+ @Ignore("b/73796195")
+ @Test
public void onConnectedChanged_shouldNotFetchAPs() {
setWifiState(WifiManager.WIFI_STATE_ENABLED);
when(mWifiTracker.isConnected()).thenReturn(true);
launchActivity();
- verify(mWifiTracker, atMost(1)).forceUpdate();
verify(mWifiTracker, times(1)).getAccessPoints();
onView(withText(WIFI_DISPLAY_STATUS_CONNECTED)).check(matches(isDisplayed()));