Compare commits

...

13 commits

Author SHA1 Message Date
elpaablo
50de1ef231 Add Scoopdroid logo 2025-02-26 21:38:48 +00:00
elpaablo
5a6671008d Introduce Scoopdroid settings 2025-02-25 00:41:04 +00:00
LineageOS Infra
b722610b9c Automatic translation import
Change-Id: I99e92692cd4bc7520d2f4781ea9beb685110889e
2025-02-15 15:47:27 +00:00
LuK1337
0eb034cc82
Settings: Make SIM toggle unchangable when not supported
Fixes: https://gitlab.com/LineageOS/issues/android/-/issues/8290
Change-Id: I2e566c24969708c31f607af2baad88b388bda74d
2025-02-10 15:06:22 +01:00
Michael Bestas
a0338d65bd Android 15.0.0 Release 14 (AP4A.250205.002)
-----BEGIN PGP SIGNATURE-----
 
 iF0EABECAB0WIQRDQNE1cO+UXoOBCWTorT+BmrEOeAUCZ6KKkwAKCRDorT+BmrEO
 eNPNAJ9gnkbW1rCJwKCH7wajR7iXhjMKygCgjiUaYDMk8xVbU7cNwFc2rcT1GQE=
 =zte+
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN SSH SIGNATURE-----
 U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgPpdpjxPACTIhnlvYz0GM4BR7FJ
 +rYv3jMbfxNKD3JvcAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5
 AAAAQPtLw2mJs3qa8laKKFRzXqvlUnzU9DE9pFMN+YnPdoYXzovs+hYdkFUAwvneuWtS1O
 AMHiPfSF7NqiZhhU3ZVgE=
 -----END SSH SIGNATURE-----

Merge tag 'android-15.0.0_r14' into staging/lineage-22.1_merge-android-15.0.0_r14

Android 15.0.0 Release 14 (AP4A.250205.002)

# -----BEGIN PGP SIGNATURE-----
#
# iF0EABECAB0WIQRDQNE1cO+UXoOBCWTorT+BmrEOeAUCZ6KKkwAKCRDorT+BmrEO
# eNPNAJ9gnkbW1rCJwKCH7wajR7iXhjMKygCgjiUaYDMk8xVbU7cNwFc2rcT1GQE=
# =zte+
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue Feb  4 23:45:55 2025 EET
# gpg:                using DSA key 4340D13570EF945E83810964E8AD3F819AB10E78
# gpg: Good signature from "The Android Open Source Project <initial-contribution@android.com>" [ultimate]

# By Adam Bookatz (1) and Jason Chiu (1)
# Via Android Build Coastguard Worker
* tag 'android-15.0.0_r14':
  Don't let profiles open the UserSettings overflow
  Block the content scheme intent in AccountTypePreferenceLoader

Change-Id: Ibef81d8e48c3e7bfb9046c784d72052ac230ad7a
2025-02-05 17:50:35 +02:00
LineageOS Infra
31ad24c037 Automatic translation import
Change-Id: I496f8336c605c2166c1790dfbad7333b8c28763a
2025-02-01 14:28:42 +00:00
AnierinB
12ac6298d9 Settings: Set key order on addition
When the activity is created, injected preferences were not setting their order. This could potentially lead to two bottom preferences
in a given category on rebind. Ensure the order is set during key addition to prevent such issues.

Follow up to change: I1dc0148c5595f20daf026970d6514e63776b0499

Change-Id: I9df0bafbc2d2eddde94f07104d803fdc46adec8c
Signed-off-by: AnierinB <anierin@evolution-x.org>
2025-01-31 22:15:22 +00:00
Tommy Webb
8dbb64ddfb fixup! Fix background data clobbering other policies
Fetching the state of policies was not working due to an incorrect use
of Arrays.asList() - if you give it an int array, you just get a list
with that int[] as a single element, so using the contains method with
an int will always return false. This has now all been refactored.

Test: Manual: Open Settings > Network & Internet > Data Saver >
Unrestricted data. Turn it on for something. Go back, and then
return to the page. It should still show as on.

Issue: calyxos#2547
Change-Id: I671544f6fdf9897484c6265c31c8b3cd29ad4a92
2025-01-21 05:30:32 +00:00
LineageOS Infra
a81f96bb17 Automatic translation import
Change-Id: I49421284ab4d812132cc5dee24667030652489c4
2025-01-15 20:54:55 +00:00
Michael Bestas
fa7e6f0919 BatteryTip: Hide Learn more button if URL is empty
When help_url_battery_defender is empty, tapping on Learn more button
causes a NPE.

Issue: calyxos#2809
Change-Id: Ib1c52dcff430cae7c4bc0793120ace837f5bf4c7
2025-01-11 22:31:16 +00:00
Android Build Coastguard Worker
446578ba4f Merge cherrypicks of ['googleplex-android-review.googlesource.com/30291592', 'googleplex-android-review.googlesource.com/30474011'] into 24Q4-release.
Change-Id: I7291fc33e868a433f8da0a1ac87c54d9bb7b24fe
2024-12-18 08:34:03 -08:00
Adam Bookatz
efb8f8401b Don't let profiles open the UserSettings overflow
Really, profiles aren't expected to open Settings at all. But if they
do somehow, the overflow shouldn't appear.

Bug: 352542820
Flag: EXEMPT bugfix
Test: Try to access the overflow of the work profile by launching its Settings in
adb shell am start --user 10 'com.android.settings/.Settings\$UserSettingsActivity'
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:69c7f5dac580361792bbb189178653b297d06c8a)
Merged-In: I5e4c095cda3e19fa5c63c2c550a526f5da8ec5c1
Change-Id: I5e4c095cda3e19fa5c63c2c550a526f5da8ec5c1
2024-12-18 08:26:53 -08:00
Jason Chiu
046a18c9ae Block the content scheme intent in AccountTypePreferenceLoader
Bug: 366401629
Flag: EXEMPT security fix
Test: atest AccountTypePreferenceLoaderTest, manual
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:841fb3846b25dee4ae5924fd798cd48709c69801)
Merged-In: Ica87087341cc983df04190919e33dc369fa18619
Change-Id: Ica87087341cc983df04190919e33dc369fa18619
2024-12-18 08:26:40 -08:00
26 changed files with 390 additions and 53 deletions

View file

@ -55,15 +55,21 @@ android_library {
srcs: [
"src/**/*.java",
"src/**/*.kt",
"ScoopSettings/src/**/*.java",
"ScoopSettings/src/**/*.kt",
],
exclude_srcs: [
"src/com/android/settings/biometrics/fingerprint2/lib/**/*.kt",
],
use_resource_processor: true,
aaptflags: ["--extra-packages com.scoop.settings"],
resource_dirs: [
"res",
"res-export", // for external usage
"res-product",
"ScoopSettings/res",
],
static_libs: [
// External dependencies

View file

@ -5398,5 +5398,28 @@
</activity>
<!-- This is the longest AndroidManifest.xml ever. -->
<!-- Begin Scoopdroid Settings -->
<activity android:name="Settings$ScoopSettingsActivity"
android:label="@string/scoop_settings_title"
android:icon="@drawable/ic_android"
android:exported="true"
android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="com.scoop.settings.ScoopSettings" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
<meta-data android:name="com.android.settings.summary"
android:resource="@string/scoop_settings_summary"/>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.scoop.settings.ScoopSettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity>
</application>
</manifest>

2
proguard-core.flags Normal file
View file

@ -0,0 +1,2 @@
# ScoopdroidSettings
-keep class com.scoop.settings.**

View file

@ -7,6 +7,7 @@
# Keep all Fragments in this package, which are used by reflection.
-keep public class com.android.settings*.** extends androidx.fragment.app.Fragment
-keep class com.scoop.settings.**
# Keep all preference controllers needed by slice and DashboardFragment.
-keep class * extends com.android.settings.core.BasePreferenceController {

20
res/drawable/ic_scoop.xml Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2024 ScoopDroid
SPDX-License-Identifier: Apache-2.0
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="102dp"
android:viewportWidth="512"
android:viewportHeight="102">
<path
android:fillColor="#FF000000"
android:pathData="M120.6,65.2c4.7,0 7.1,-1.4 7.1,-4.2c0,-2.3 -3.9,-4.1 -11.6,-5.5c-9.9,-1.8 -15,-6.2 -15.1,-13.2c0,-9.7 7.6,-14.2 17.9,-14.4c5.8,0 10.3,1.3 13.7,3.8c3.3,2.6 5.1,6.3 5.3,10.9h-7.1c-2.6,-0.1 -4.3,-1 -5,-2.8c-0.8,-1.9 -3,-3 -6.8,-3c-4.4,0 -6.6,1.2 -6.6,3.5s2.9,4.1 8.7,5.2c7.6,1.5 12.6,3.5 15.1,5.8c2.1,2.2 3.1,4.9 3.1,8c0,11 -8.6,15.1 -20.5,15.1c-6.3,0 -11,-1.4 -14.1,-4c-3.4,-2.5 -5.1,-6.4 -5.1,-11.6h11.5C111.6,63.5 115.1,65.2 120.6,65.2z"/>
<path
android:fillColor="#FF000000"
android:pathData="M164.5,74.2c-13.4,0 -20.3,-7.7 -20.6,-22.9c0,-15.2 6.8,-22.8 20.4,-23c10.7,0 17.1,4.8 19,14.4h-12.1c-1.3,-3 -3.7,-4.6 -7.2,-4.6c-5.9,0 -8.8,4.4 -8.8,13.2s3.1,13.2 9.3,13.1c2.6,0 4.9,-1.1 6.7,-3.2c1.1,-1.1 2.3,-1.6 3.8,-1.6h8.4C181.3,68.6 174.8,74.4 164.5,74.2z"/>
<path
android:fillColor="#FF000000"
android:pathData="M229.3,51.4c0,15.3 -6.8,23 -20.2,23s-20.2,-7.7 -20.2,-23c0,-15.5 6.7,-23.1 20.2,-23.1C222.5,28.3 229.3,36 229.3,51.4zM200.3,51.4c0.1,8.7 3,13 8.7,13s8.6,-4.5 8.7,-13.4c0,-8.7 -2.9,-12.9 -8.6,-12.9C203.2,38.2 200.3,42.6 200.3,51.4z"/>
<path
android:fillColor="#FF000000"
android:pathData="M274.8,51.4c0,15.3 -6.8,23 -20.2,23c-13.4,0 -20.2,-7.7 -20.2,-23c0,-15.5 6.7,-23.1 20.2,-23.1C268,28.3 274.8,36 274.8,51.4zM245.7,51.4c0.1,8.7 3,13 8.7,13s8.6,-4.5 8.7,-13.4c0,-8.7 -2.9,-12.9 -8.6,-12.9C248.6,38.2 245.7,42.6 245.7,51.4z"/>
<path
android:fillColor="#FF000000"
android:pathData="M285.7,90.6h-5.5V48.1c0.6,-13.3 7.4,-19.8 20.5,-19.8c13.6,0 20.3,7.5 20.3,22.4c0,15.1 -5.8,22.9 -17.5,23.4c-5.5,0 -9.6,-2.3 -12.4,-6.9V85C291.2,88.1 288.7,90.6 285.7,90.6zM300.8,64.3c6,0 9.2,-4.3 9.4,-12.9c0,-9 -3.2,-13.4 -9.6,-13.4s-9.4,4.5 -9.3,13.4C291.6,60 294.7,64.3 300.8,64.3z"/>
<path
android:fillColor="#FF000000"
android:pathData="M362.6,16.6c3.1,0 5.6,2.5 5.6,5.6v32.3c0,13.4 -6.9,20 -20.7,19.9c-13.7,-0.3 -20.5,-7.7 -20.5,-22.5c0,-15.1 5.8,-22.8 17.6,-23.3c5.5,0 9.8,2.3 12.6,6.9V16.6H362.6zM337.8,51.1c-0.1,9 2.9,13.5 9.3,13.5s9.6,-4.5 9.6,-13.5c-0.3,-8.6 -3.4,-12.8 -9.4,-12.8S338.2,42.5 337.8,51.1z"/>
<path
android:fillColor="#FF000000"
android:pathData="M373.2,50.9c0.3,-14.2 7.7,-21.3 22.2,-21.3h1.8v11h-3.8c-6.2,0 -9.2,3.1 -9.2,9.2v23.8h-11V50.9z"/>
<path
android:fillColor="#FF000000"
android:pathData="M442.6,51.4c0,15.3 -6.8,23 -20.2,23c-13.4,0 -20.2,-7.7 -20.2,-23c0,-15.5 6.7,-23.1 20.2,-23.1C435.8,28.3 442.6,36 442.6,51.4zM413.5,51.4c0.1,8.7 3,13 8.7,13s8.6,-4.5 8.7,-13.4c0,-8.7 -2.9,-12.9 -8.6,-12.9C416.5,38.2 413.5,42.6 413.5,51.4z"/>
<path
android:fillColor="#FF000000"
android:pathData="M453.9,16.6c3.6,0 5.4,1.9 5.3,5.6v3.4h-11v-9H453.9zM459.2,35v38.6h-11v-44h5.6C456.8,29.6 459.2,32 459.2,35z"/>
<path
android:fillColor="#FF000000"
android:pathData="M500.6,16.6c3.1,0 5.6,2.5 5.6,5.6v32.3c0,13.4 -6.9,20 -20.7,19.9c-13.7,-0.3 -20.5,-7.7 -20.5,-22.5c0,-15.1 5.8,-22.8 17.6,-23.3c5.5,0 9.8,2.3 12.6,6.9V16.6H500.6zM476.4,51.1c-0.1,9 2.9,13.5 9.3,13.5s9.6,-4.5 9.6,-13.5c-0.3,-8.6 -3.4,-12.8 -9.4,-12.8S476.8,42.5 476.4,51.1z"/>
<path
android:fillColor="#FF000000"
android:pathData="M20.5,23.1c-1.5,-1.5 -3.8,-1.5 -5.3,0s-1.5,3.8 0,5.3l49.3,49.3c0.2,0.3 0.5,0.6 0.8,0.8c1.5,1.5 3.7,1.6 5.2,0.1s1.6,-3.9 0.1,-5.4l0,0L20.5,23.1zM40.5,16.4l10,10.2l7.7,7.6l1.9,1.8c0.3,0.3 0.6,0.5 1,0.9c0.3,0.3 0.6,0.5 0.9,0.7c0.3,0.2 0.5,0.3 0.8,0.4c0.3,0.1 0.6,0.3 0.8,0.4c0.3,0.1 0.6,0.2 0.8,0.3c0.3,0.1 0.6,0.2 0.9,0.2c0.3,0.1 0.6,0.1 0.9,0.2c0.3,0 0.6,0.1 0.9,0.1c0.4,0 0.7,0 0.9,0c0.2,0 0.5,0 0.9,0l1.3,-0.2l1.2,-0.3l1.3,-0.4l1.1,-0.5l0.5,-0.3c0.6,-0.4 1.2,-0.8 1.8,-1.3c0.5,-0.5 1,-1 1.5,-1.6c0.4,-0.6 0.8,-1.2 1.2,-1.9c0.3,-0.7 0.6,-1.4 0.8,-2.1c0.2,-0.7 0.3,-1.5 0.4,-2.2s0,-1.5 -0.1,-2.2s-0.2,-1.5 -0.5,-2.2c-0.2,-0.7 -0.5,-1.4 -0.9,-2C74,14.6 67.3,9.7 59.6,6.8c-8.8,-3.3 -18.9,-3.8 -28,-2c-0.6,0.1 -1.3,0.3 -1.9,0.4l-1.5,0.4c0.9,0.5 2.7,1.5 3.4,2.1c3,2.7 5.7,5.4 8.7,8.4L40.5,16.4zM45.1,85.6l-10,-10.2l-7.7,-7.6c-0.6,-0.6 -1.3,-1.3 -2,-1.8c-0.6,-0.5 -1.3,-1.2 -1.9,-1.5c-0.3,-0.2 -0.5,-0.3 -0.8,-0.4s-0.6,-0.3 -0.8,-0.4c-0.3,-0.1 -0.6,-0.2 -0.8,-0.3c-0.3,-0.1 -0.6,-0.2 -0.9,-0.2c-0.4,-0.2 -0.7,-0.2 -1,-0.3c-0.3,0 -0.6,-0.1 -0.9,-0.1c-0.4,0 -0.7,0 -0.9,0c-0.3,0 -0.5,0 -0.9,0L15.3,63l-1,0.2L13,63.7l-1.1,0.5l-0.5,0.3c-0.6,0.4 -1.2,0.8 -1.8,1.3c-0.5,0.5 -1,1 -1.5,1.6c-0.4,0.6 -0.8,1.2 -1.2,1.9c-0.2,0.7 -0.5,1.4 -0.7,2.1c-0.2,0.7 -0.3,1.5 -0.4,2.2s0,1.5 0.1,2.2C6,76.6 6.2,77.3 6.4,78s0.5,1.3 0.9,2c4.3,7.4 11.1,12.4 18.8,15.2c8.8,3.3 18.9,3.8 28,2c0.6,-0.1 1.3,-0.3 1.9,-0.4l1.5,-0.4l-0.3,-0.1c-0.4,-0.2 -0.7,-0.4 -1,-0.6c-0.6,-0.4 -1.6,-1 -2.1,-1.4c-3.1,-2.8 -5.7,-5.4 -8.7,-8.4L45.1,85.6zM8,31.8c0.2,0.4 0.5,0.8 0.8,1.2s0.6,0.7 1,1.1l0.1,0.1c1.4,1.5 3,3.1 4.5,4.7c1.6,1.6 3.1,3.1 4.7,4.7l0.3,0.3c1.5,1.3 3,2.9 4.4,4.3c10.3,10.4 25.4,25.5 27.1,27.3l4.3,4.5c1.3,1.4 2.7,2.8 4.4,4.4c0.6,0.6 1.1,1 1.8,1.4c0.6,0.4 1.3,0.8 2,1.1c0.7,0.3 1.4,0.5 2.2,0.7c0.7,0.1 1.5,0.2 2.3,0.2s1.5,-0.1 2.3,-0.2c0.7,-0.1 1.5,-0.4 2.2,-0.7c0.7,-0.3 1.4,-0.6 2,-1.1c0.6,-0.4 1.2,-0.9 1.7,-1.4s0.9,-1 1.3,-1.5s0.7,-1.1 1,-1.7s0.5,-1.2 0.7,-1.8c0.2,-0.6 0.3,-1.2 0.4,-1.9c0.1,-0.7 0.1,-1.3 0.1,-1.9s-0.1,-1.3 -0.3,-1.9c-0.1,-0.6 -0.3,-1.3 -0.6,-1.8c-0.2,-0.6 -0.5,-1.2 -0.9,-1.7c-0.2,-0.4 -0.5,-0.8 -0.8,-1.2c-0.3,-0.4 -0.6,-0.8 -1,-1.1l-0.1,-0.1c-1.1,-1.2 -7,-7.1 -13.8,-13.9C51.8,43.7 39.6,31.4 37.6,29.5c-2.4,-2.4 -4.9,-5.1 -7.2,-7.5c-1.4,-1.5 -2.9,-3 -4.4,-4.4c-0.6,-0.6 -1.1,-1 -1.8,-1.4c-0.6,-0.4 -1.3,-0.8 -2,-1.1s-1.4,-0.5 -2.2,-0.7c-0.7,-0.1 -1.5,-0.2 -2.3,-0.2s-1.5,0.1 -2.3,0.2c-0.7,0.1 -1.5,0.4 -2.2,0.7s-1.4,0.6 -2,1.1c-0.6,0.4 -1.2,0.9 -1.7,1.4C9.2,18 8.8,18.5 8.4,19c-0.4,0.5 -0.7,1.1 -1,1.7s-0.5,1.2 -0.7,1.8c-0.2,0.6 -0.3,1.2 -0.4,1.9c-0.1,0.7 -0.1,1.3 -0.1,1.9s0.1,1.3 0.3,1.9c0.1,0.6 0.3,1.3 0.6,1.8C7.3,30.7 7.6,31.3 8,31.8z"
android:fillType="evenOdd"/>
</vector>

View file

@ -28,6 +28,8 @@
<string name="show_dev_already_cm">Няма нужда, вече сте включили менюто Опции на програмиста.</string>
<string name="status_bar_double_tap_to_sleep_title">Натиснете, за заспиване</string>
<string name="status_bar_double_tap_to_sleep_summary">Докоснете двукратно лентата на състоянието или заключващия екран, за да изключите дисплея</string>
<string name="high_touch_polling_rate_title">Висока опреснителна честота на докосване</string>
<string name="high_touch_polling_rate_summary">Увеличаване честотата на опресняване</string>
<string name="heads_up_notifications_enabled_title">Изскачащи известия</string>
<string name="heads_up_notifications_enabled_summary">Покажи приоритетни известия в малък плаващ прозорец</string>
<string name="high_touch_sensitivity_title">Висока чувствителност на допир</string>
@ -39,6 +41,25 @@
<string name="lockpattern_settings_enable_dots_title">Покажи точките на модела</string>
<string name="max_refresh_rate_title">Пикова честота на опресняване</string>
<string name="min_refresh_rate_title">Минимална честота на опресняване</string>
<string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Намерете сензора за пръстови отпечатъци отпред на таблета ви.</string>
<string name="fingerprint_enroll_find_sensor_message_front" product="device">Намерете сензора за пръстови отпечатъци отпред на устройството ви.</string>
<string name="fingerprint_enroll_find_sensor_message_front" product="default">Открийте сензора за пръстови отпечатъци отпред на телефона ви.</string>
<string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Намерете сензора за пръстови отпечатъци на гърба на таблета ви.</string>
<string name="fingerprint_enroll_find_sensor_message_rear" product="device">Намерете сензора за пръстови отпечатъци на гърба на устройството ви.</string>
<string name="fingerprint_enroll_find_sensor_message_rear" product="default">Намерете сензора за пръстови отпечатъци на гърба на телефона ви.</string>
<string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Намерете сензора за пръстови отпечатъци от отсрани на таблета ви.</string>
<string name="fingerprint_enroll_find_sensor_message_side" product="device">Намерете сензора за пръстови отпечатъци отсрани на устройството ви.</string>
<string name="fingerprint_enroll_find_sensor_message_side" product="default">Намерете сензора за пръстови отпечатъци отстрани на телефона ви.</string>
<string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Докснете сензора отпред на таблета ви.</string>
<string name="fingerprint_enroll_touch_dialog_message_front" product="device">Докоснете сензора отпред на устройството ви.</string>
<string name="fingerprint_enroll_touch_dialog_message_front" product="default">Докоснете сензора отпред на телефона ви.</string>
<string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Докоснете сензора на гърба на таблета ви.</string>
<string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Докоснете сензора на гърба на устройството ви.</string>
<string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Докоснете сензора на гърба на телефона ви.</string>
<string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Докоснете сензора отстрани на таблета ви.</string>
<string name="fingerprint_enroll_touch_dialog_message_side" product="device">Докоснете сензора отсрани на устройството ви.</string>
<string name="fingerprint_enroll_touch_dialog_message_side" product="default">Докоснета сензора отстрани на телефона ви.</string>
<string name="security_settings_require_screen_on_to_auth_with_proximity_description">Докоснете сензора, за да отключите, дори когато екранът е изключен. Сензорът за близост предотвратява неволно октлючване.</string>
<string name="show_navbar_hint_title">Подсказки за навигация</string>
<string name="show_navbar_hint_summary">Показване на подсказки за навигация в долната част на екрана</string>
<string name="app_notification_sound_timeout_title">Минимално време между напомняния</string>
@ -71,4 +92,9 @@
<string name="wake_when_plugged_or_unplugged_summary">Включване на екрана, когато включвате или изключвате източник на захранване</string>
<string name="fast_charging_title">Бързо зареждане</string>
<string name="fast_charging_summary">Деактивирайте, за да намалите топлината, произведена от устройството по време на зареждане или да удължите живота на батерията</string>
<string name="ambient_display_screen_off_udfps_title" product="default">Задръжте върху сензора за пръстови отпечатъци, за да отключите телефона</string>
<string name="ambient_display_screen_off_udfps_title" product="tablet">Задръжте върху сензора за пръстови отпечатъци, за да отключите таблета.</string>
<string name="ambient_display_screen_off_udfps_title" product="device">Задръжте върху сензора за пръстови отпечатъци, за да отключите устройството</string>
<string name="ambient_display_screen_off_udfps_summary">За да включите екрана и да го отключите, задръжте върху сензора за пръстови отпечатъци в екрана.</string>
<string name="storage_warning_internal">Предупреждение: Тази опция може да не работи правилно или доведе до загуба на данни и затова не се препоръчва!</string>
</resources>

View file

@ -28,8 +28,8 @@
=1 {Ahora estás a # paso de habilitar las opciones para desarrolladores.}
other {Ahora estás a # pasos de habilitar las opciones para desarrolladores.}
}</string>
<string name="show_dev_on_cm">¡Has activado los ajustes de desarrollo!</string>
<string name="show_dev_already_cm">No es necesario. Las opciones de desarrollo ya están activadas.</string>
<string name="show_dev_on_cm">¡Has activado las opciones para desarrolladores!</string>
<string name="show_dev_already_cm">No es necesario, ya has activado las opciones para desarrolladores.</string>
<string name="status_bar_double_tap_to_sleep_title">Pulsar para suspender</string>
<string name="status_bar_double_tap_to_sleep_summary">Doble toque en la barra de estado o pantalla de bloqueo para apagar la pantalla</string>
<string name="high_touch_polling_rate_title">Tasa alta de muestreo táctil</string>
@ -37,9 +37,9 @@
<string name="heads_up_notifications_enabled_title">Notificaciones emergentes</string>
<string name="heads_up_notifications_enabled_summary">Mostrar las notificaciones prioritarias en una pequeña ventana flotante</string>
<string name="high_touch_sensitivity_title">Alta sensibilidad táctil</string>
<string name="high_touch_sensitivity_summary">Incrementar la sensibilidad del panel táctil para que pueda usarse llevando guantes</string>
<string name="high_touch_sensitivity_summary">Aumentar la sensibilidad de la pantalla táctil para poder utilizarla con guantes</string>
<string name="tethering_allow_vpn_upstreams_title">Permitir a los clientes usar VPNs</string>
<string name="tethering_allow_vpn_upstreams_summary">Permitir a los clientes de hotspot usar las conexiones VPN de este dispositivo\u2019 como conectividad principal</string>
<string name="tethering_allow_vpn_upstreams_summary">Permitir a los clientes del punto de acceso conectarse a internet mediante las conexiones VPN de este dispositivo.</string>
<string name="lock_settings_picker_pattern_size_message">Elije un tamaño de patrón</string>
<string name="lockpattern_settings_enable_error_path_title">Mostrar patrón erróneo</string>
<string name="lockpattern_settings_enable_dots_title">Mostrar puntos de patrón</string>
@ -67,7 +67,7 @@
<string name="show_navbar_hint_title">Sugerencia de navegación</string>
<string name="show_navbar_hint_summary">Mostrar barra de sugerencias de navegación en la parte inferior de la pantalla</string>
<string name="app_notification_sound_timeout_title">Tiempo mínimo entre sonidos de notificaciones</string>
<string name="app_notification_sound_timeout_summary_template">Permite sonidos o vibraciones no más de una vez cada <xliff:g id="duration">%1$s </xliff:g></string>
<string name="app_notification_sound_timeout_summary_template">Permitir sonidos o vibraciones no más de una vez cada <xliff:g id="duration">%1$s</xliff:g></string>
<string name="app_notification_sound_timeout_value_none">Sin restricción</string>
<string name="app_notification_sound_timeout_value_10_seconds">10 segundos</string>
<string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
@ -86,13 +86,13 @@
<string name="data_usage_app_restrict_wifi">Datos Wi\u2011Fi</string>
<string name="data_usage_app_restrict_wifi_summary">Habilitar el uso de datos Wi\u2011Fi</string>
<string name="unlock_scramble_pin_layout_title">Disposición aleatoria</string>
<string name="unlock_scramble_pin_layout_summary">Cambiar la disposición de los números del PIN para desbloquear el dispositivo</string>
<string name="unlock_scramble_pin_layout_summary">Cambiar aleatoriamente la disposición de los números del PIN para desbloquear el dispositivo</string>
<string name="proximity_wake_title">Prevenir encendido accidental</string>
<string name="proximity_wake_summary">Comprobar el sensor de proximidad antes de encender la pantalla</string>
<string name="touchscreen_gesture_settings_title">Gestos en pantalla táctil</string>
<string name="touchscreen_gesture_settings_summary">Realizar varios gestos en la pantalla para acciones rápidas</string>
<string name="touchscreen_hovering_title">Pantalla táctil deslizante</string>
<string name="touchscreen_hovering_summary">Te permitirá deslizar por la pantalla como un ratón en navegadores, escritorios remotos, etc.</string>
<string name="touchscreen_hovering_summary">Permite desplazarte por la pantalla como un ratón en navegadores web, escritorios remotos, etc.</string>
<string name="wake_when_plugged_or_unplugged_title">Encender al conectar el cargador</string>
<string name="wake_when_plugged_or_unplugged_summary">Encender la pantalla al conectar o desconectar el cargador</string>
<string name="fast_charging_title">Carga rápida</string>
@ -101,7 +101,7 @@
<string name="ambient_display_screen_off_udfps_title" product="tablet">Pulsación larga en el lector de huellas para desbloquear la tableta</string>
<string name="ambient_display_screen_off_udfps_title" product="device">Pulsación larga en el lector de huellas para desbloquear el dispositivo</string>
<string name="ambient_display_screen_off_udfps_summary">Para activar la pantalla y desbloquearla, mantén pulsado el lector de huellas situado en la pantalla.</string>
<string name="storage_warning_internal">Advertencia: esta opción puede no funcionar correctamente o provocar la pérdida de datos y por lo tanto no es recomendable.</string>
<string name="storage_warning_internal">Advertencia: esta opción puede no funcionar correctamente y/o provocar la pérdida de datos, por lo que no se recomienda.</string>
<string name="assisted_gps">Usar GPS asistido</string>
<string name="assisted_gps_summary">Descargar datos de asistencia por satélite desde Internet puede mejorar considerablemente el rendimiento de inicio del GPS. Para llamadas de emergencia, el GPS asistido siempre está permitido.</string>
<string name="battery_technology">Tecnología</string>

View file

@ -15,18 +15,109 @@
limitations under the License.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="keyboard_extras_title">موارد اضافی</string>
<string name="advanced_keyboard_settings_title">تنظیمات پیشرفته</string>
<string name="adb_enable_root">اشکال‌زدایی در حالت روت</string>
<string name="adb_enable_summary_root">اجازه دادن به اشکال‌زدایی اندروید که به صورت روت اجرا شود</string>
<string name="backup_transport_setting_label">ارائه دهنده پشتیبان را تغییر دهید</string>
<string name="backup_transport_title">ارائه دهنده پشتیبان را انتخاب کنید</string>
<string name="berry_black_theme_title">مشکی محض</string>
<string name="berry_black_theme_summary">پس‌زمینه‌ی مشکی محض برای تم تیره</string>
<string name="lineagelicense_title">موارد حقوقی سایانوژن‌مود</string>
<string name="show_dev_countdown_cm">{count, plural,
=1 {اکنون # قدم با فعال کردن تنظیمات توسعه فاصله دارید.}
other {اکنون # قدم با فعال کردن تنظیمات توسعه فاصله دارید.}
}</string>
<string name="show_dev_on_cm">شما ابزارهای توسعه را فعال کرده‌اید!</string>
<string name="show_dev_already_cm">نیازی نیست، ابزارهای توسعه قبلا فعال شده‌اند.</string>
<string name="status_bar_double_tap_to_sleep_title">ضربه زدن برای خواب</string>
<string name="status_bar_double_tap_to_sleep_summary">خاموش شدن صفحه نمایش با دوبار ضربه زدن روی نوار وضعیت یا در قفل صفحه</string>
<string name="high_touch_polling_rate_title">نرخ نمونه‌برداری لمسی بالا</string>
<string name="high_touch_polling_rate_summary">افزایش نرخ نمونه‌برداری صفحه لمسی</string>
<string name="heads_up_notifications_enabled_title">اعلان فوری</string>
<string name="heads_up_notifications_enabled_summary">نمایش آگاهی‌های مهم در یک پنجرهٔ شناور کوچک</string>
<string name="high_touch_sensitivity_title">حساسیت بالا به لمس</string>
<string name="high_touch_sensitivity_summary">افزایش حساسیت صفحه به لمس تا هنگام پوشیدن دستکش نیز قابل استفاده باشد</string>
<string name="tethering_allow_vpn_upstreams_title">اجازه دادن به کاربران برای استفاده از وی پی ان</string>
<string name="tethering_allow_vpn_upstreams_summary">به کاربران هات‌اسپات اجازه دهید تا از وی پی ان این دستگاه\u2019ها برای آپلود استفاده کنند</string>
<string name="lock_settings_picker_pattern_size_message">یک اندازهٔ الگو برگزینید</string>
<string name="lockpattern_settings_enable_error_path_title">نمایش الگوی نادرست</string>
<string name="lockpattern_settings_enable_dots_title">نمایش نقطه‌های الگو</string>
<string name="max_refresh_rate_title">اوج نرخ تازه سازی</string>
<string name="min_refresh_rate_title">حداقل میزان نرخ تازه سازی صفحه</string>
<string name="fingerprint_enroll_find_sensor_message_front" product="tablet">سنسور اثر انگشت را در جلوی رایانه‌لوحی خود لمس کنید.</string>
<string name="fingerprint_enroll_find_sensor_message_front" product="device">سنسور اثر انگشت را بر روی صفحه لمس کنید</string>
<string name="fingerprint_enroll_find_sensor_message_front" product="default">سنسور اثر انگشت را در جلوی تلفن خود لمس کنید.</string>
<string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">حسگر اثر انگشت را در پشت رایانه‌لوحی خود لمس کنید.</string>
<string name="fingerprint_enroll_find_sensor_message_rear" product="device">حسگر اثر انگشت را در پشت دستگاه خود لمس کنید.</string>
<string name="fingerprint_enroll_find_sensor_message_rear" product="default">سنسور اثر انگشت را در پشت تلفن لمس کنید.</string>
<string name="fingerprint_enroll_find_sensor_message_side" product="tablet">حسگر اثر انگشت را در کنار رایانه‌لوحی خود لمس کنید.</string>
<string name="fingerprint_enroll_find_sensor_message_side" product="device">حسگر اثر انگشت را در کنار دستگاه خود لمس کنید.</string>
<string name="fingerprint_enroll_find_sensor_message_side" product="default">سنسور اثر انگشت را در پشت تلفن لمس کنید.</string>
<string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">حسگر جلوی رایانه‌لوحی خود را لمس کنید.</string>
<string name="fingerprint_enroll_touch_dialog_message_front" product="device">حسگر جلوی دستگاه خود را لمس کنید.</string>
<string name="fingerprint_enroll_touch_dialog_message_front" product="default">سنسور جلوی گوشی خود را لمس کنید.</string>
<string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">حسگر پشت رایانه‌لوحی خود را لمس کنید.</string>
<string name="fingerprint_enroll_touch_dialog_message_rear" product="device">حسگر پشت دستگاه خود را لمس کنید.</string>
<string name="fingerprint_enroll_touch_dialog_message_rear" product="default">حسگر پشت گوشی خود را لمس کنید.</string>
<string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">حسگر کنار رایانه‌لوحی خود را لمس کنید.</string>
<string name="fingerprint_enroll_touch_dialog_message_side" product="device">حسگر کنار دستگاه خود را لمس کنید.</string>
<string name="fingerprint_enroll_touch_dialog_message_side" product="default">حسگر کنار گوشی خود را لمس کنید.</string>
<string name="security_settings_require_screen_on_to_auth_with_proximity_description">حتی زمانی که صفحه نمایش خاموش است، حسگر را برای باز کردن قفل لمس کنید. سنسور مجاورت از باز شدن تصادفی قفل جلوگیری می کند.</string>
<string name="show_navbar_hint_title">نوار پیمایش</string>
<string name="show_navbar_hint_summary">نوار پیمایش را در پایین صفحه نمایش دهید</string>
<string name="app_notification_sound_timeout_title">فاصله حداقل زمان برای صدای اعلان</string>
<string name="app_notification_sound_timeout_summary_template">اجازه لرزش و صدا بیشتر از یک بار در هر <xliff:g id="duration">%1$s</xliff:g> ثانیه را نده</string>
<string name="app_notification_sound_timeout_value_none">عدم محدودیت</string>
<string name="app_notification_sound_timeout_value_10_seconds">۱۰ ثانیه</string>
<string name="app_notification_sound_timeout_value_30_seconds">۳۰ ثانیه</string>
<string name="app_notification_sound_timeout_value_1_minute">۱ دقیقه</string>
<string name="app_notification_sound_timeout_value_5_minutes">۵ دقیقه</string>
<string name="app_notification_sound_timeout_value_15_minutes">۱۵ دقیقه</string>
<string name="app_notification_sound_timeout_value_30_minutes">۳۰ دقیقه</string>
<string name="auto_brightness_one_shot_title">روشنایی خودکار یک ضربه</string>
<string name="auto_brightness_one_shot_summary">تنظیم روشنایی فقط در لحظه روشن شدن صفحه نمایش انجام می شود</string>
<string name="data_usage_app_restrict_all">اجازه‌ی دسترسی به شبکه</string>
<string name="data_usage_app_restrict_all_summary">فعال‌کردن استفاده از شبکه</string>
<string name="data_usage_app_restrict_mobile">داده تلفن همراه</string>
<string name="data_usage_app_restrict_mobile_summary">استفاده از داده تلفن همراه را فعال کنید</string>
<string name="data_usage_app_restrict_vpn">داده‌ وی پی ان</string>
<string name="data_usage_app_restrict_vpn_summary">فعال کردن آمار داده وی پی ان</string>
<string name="data_usage_app_restrict_wifi">داده وای\u2011فای</string>
<string name="data_usage_app_restrict_wifi_summary">استفاده از داده وای\u2011فای را فعال کنید</string>
<string name="unlock_scramble_pin_layout_title">چینش درهم</string>
<string name="unlock_scramble_pin_layout_summary">چینش درهم پین هنگام باز کردن قفل دستگاه</string>
<string name="proximity_wake_title">جلوگیری از بیدار شدن تصادفی</string>
<string name="proximity_wake_summary">بررسی سنسور مجاورت قبل از بیداری صفحه نمایش</string>
<string name="touchscreen_gesture_settings_title">حرکات لمس صفحه</string>
<string name="touchscreen_gesture_settings_summary">اجرا کردن حرکات لمس صفحه متعدد برای عملیات سریع</string>
<string name="touchscreen_hovering_title">لمس شناور صفحه</string>
<string name="touchscreen_hovering_summary">به شما اجازه می‌دهد مانند عملکرد ماوس در مرورگرهای وب، ریموت دسکتاپ و غیره، صفحه نمایش را به صورت شناور کنترل کنید</string>
<string name="wake_when_plugged_or_unplugged_title">بیدار شدن هنگام اتصال به برق</string>
<string name="wake_when_plugged_or_unplugged_summary">روشن شدن صفحه هنگام اتصال یا قطع اتصال منبع برق</string>
<string name="fast_charging_title">شارژ سریع</string>
<string name="fast_charging_summary">برای کاهش حرارت تولید شده توسط دستگاه در هنگام شارژ یا افزایش طول عمر باتری، این قابلیت را غیرفعال کنید</string>
<string name="ambient_display_screen_off_udfps_title" product="default">برای باز کردن قفل گوشی،حسگر اثراگشت را طولانی فشار دهید</string>
<string name="ambient_display_screen_off_udfps_title" product="tablet">برای باز کردن قفل رایانه‌لوحی،حسگر اثراگشت را طولانی فشار دهید</string>
<string name="ambient_display_screen_off_udfps_title" product="device">برای باز کردن قفل دستگاه،حسگر اثراگشت را طولانی فشار دهید</string>
<string name="ambient_display_screen_off_udfps_summary">برای روشن کردن صفحه و بازکردن قفل،حسگر اثرانگشت زیر صفحه را به مدت طولانی فشار دهید</string>
<string name="storage_warning_internal">هشدار: این گزینه ممکن است به درستی کار نکند یا منجر به از دست رفتن اطلاعات شود و بنابراین توصیه نمی شود!</string>
<string name="assisted_gps">‏استفاده از GPS کمکی</string>
<string name="assisted_gps_summary">داده های کمک ماهواره ای را از اینترنت دانلود کنید که می تواند عملکرد راه‌اندازی GPS را تا حد زیادی بهبود بخشد. برای تماس های اضطراری، GPS کمکی همیشه مجاز است.</string>
<string name="battery_technology">فناوری</string>
<string name="battery_health">سلامت</string>
<string name="battery_health_good">خوب</string>
<string name="battery_health_overheat">بیش از حد گرم</string>
<string name="battery_health_dead">مرده</string>
<string name="battery_health_over_voltage">ولتاژ بیش از حد</string>
<string name="battery_health_unspecified_failure">شکست نامشخص</string>
<string name="battery_health_cold">سرد</string>
<string name="battery_health_unknown">ناشناخته</string>
<string name="battery_temperature">دما</string>
<string name="battery_voltage">ولتاژ</string>
<string name="battery_charge_counter_summary">%1$d میلی آمپر</string>
<string name="battery_design_capacity">ظرفیت طراحی شده</string>
<string name="battery_design_capacity_summary">%1$d میلی آمپر</string>
<string name="battery_maximum_capacity">حداکثر ظرفیت</string>
<string name="battery_maximum_capacity_summary">%1$d میلی آمپر (%2$d%%)</string>
</resources>

View file

@ -64,6 +64,7 @@
<string name="app_notification_sound_timeout_value_30_seconds">30 detik</string>
<string name="app_notification_sound_timeout_value_1_minute">1 menit</string>
<string name="app_notification_sound_timeout_value_5_minutes">5 menit</string>
<string name="app_notification_sound_timeout_value_15_minutes">15 menit</string>
<string name="app_notification_sound_timeout_value_30_minutes">30 menit</string>
<string name="auto_brightness_one_shot_title">Kecerahan otomatis satu bidikan</string>
<string name="auto_brightness_one_shot_summary">Penyesuaian kecerahan hanya akan terjadi pada saat layar dihidupkan</string>

View file

@ -95,7 +95,7 @@
<string name="touchscreen_gesture_settings_summary">Wykonuj różne gesty na ekranie dotykowym, aby wykonać szybkie akcje</string>
<string name="touchscreen_hovering_title">Wskazywanie ekranu dotykowego</string>
<string name="touchscreen_hovering_summary">Pozwala na wskazywanie na ekranie jak myszką w przeglądarce internetowej, pulpicie zdalnym itd.</string>
<string name="wake_when_plugged_or_unplugged_title">Wybudź przy podłączaniu</string>
<string name="wake_when_plugged_or_unplugged_title">Wybudzaj przy podłączaniu</string>
<string name="wake_when_plugged_or_unplugged_summary">Włącz ekran podczas podłączania i odłączania od źródła zasilania</string>
<string name="fast_charging_title">Szybkie ładowanie</string>
<string name="fast_charging_summary">Wyłącz, aby zmniejszyć ciepło wytwarzane przez urządzenie podczas ładowania lub wydłużyć żywotność baterii</string>

View file

@ -21,8 +21,8 @@
<string name="adb_enable_summary_root">Permitir a depuração do Android como superusuário</string>
<string name="backup_transport_setting_label">Alterar provedor de backup</string>
<string name="backup_transport_title">Selecione o provedor de backup</string>
<string name="berry_black_theme_title">Preto puro</string>
<string name="berry_black_theme_summary">Preto puro como cor de fundo para tema escuro</string>
<string name="berry_black_theme_title">Preto profundo</string>
<string name="berry_black_theme_summary">Preto profundo como a cor de fundo do tema escuro</string>
<string name="lineagelicense_title">Licença LineageOS</string>
<string name="show_dev_countdown_cm">{count, plural,
=1 {Agora você está a # passo de ativar as configurações de desenvolvimento.}
@ -39,7 +39,7 @@
<string name="high_touch_sensitivity_title">Toque de alta sensibilidade</string>
<string name="high_touch_sensitivity_summary">Aumenta a sensibilidade da tela para poder ser usada com luvas</string>
<string name="tethering_allow_vpn_upstreams_title">Permitir que dispositivos conectados usem VPNs</string>
<string name="tethering_allow_vpn_upstreams_summary">Permitir que dispositivos conectados no ponto de acesso usem conexões de VPN deste dispositivo</string>
<string name="tethering_allow_vpn_upstreams_summary">Permitir que dispositivos conectados no ponto de acesso usem as conexões de VPN deste dispositivo</string>
<string name="lock_settings_picker_pattern_size_message">Escolha um tamanho para o padrão</string>
<string name="lockpattern_settings_enable_error_path_title">Exibir erro de padrão</string>
<string name="lockpattern_settings_enable_dots_title">Exibir pontos no padrão</string>

View file

@ -24,6 +24,10 @@
<string name="berry_black_theme_title">Preto puro</string>
<string name="berry_black_theme_summary">Fundo em preto puro para tema escuro</string>
<string name="lineagelicense_title">Licença LineageOS</string>
<string name="show_dev_countdown_cm">{count, plural,
=1 {Está agora a # passo de ativar as opções de programador.}
other {Está agora a # passos de ativar as opções de programador.}
}</string>
<string name="show_dev_on_cm">Ativou as opções de programador!</string>
<string name="show_dev_already_cm">Não é necessário, já ativou as opções de programador.</string>
<string name="status_bar_double_tap_to_sleep_title">Toque duplo para desligar o ecrã</string>
@ -59,6 +63,7 @@
<string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Toque no sensor na lateral do seu tablet.</string>
<string name="fingerprint_enroll_touch_dialog_message_side" product="device">Toque no sensor na lateral do seu dispositivo.</string>
<string name="fingerprint_enroll_touch_dialog_message_side" product="default">Toque no sensor na lateral do seu telefone.</string>
<string name="security_settings_require_screen_on_to_auth_with_proximity_description">Toque no sensor para desbloquear, mesmo com o ecrã desligado. O sensor de proximidade impedirá desbloqueios acidentais.</string>
<string name="show_navbar_hint_title">Dica de navegação</string>
<string name="show_navbar_hint_summary">Mostrar a barra de dicas de navegação na parte inferior do ecrã</string>
<string name="app_notification_sound_timeout_title">Tempo mínimo entre sons de notificação</string>
@ -68,6 +73,7 @@
<string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
<string name="app_notification_sound_timeout_value_1_minute">1 minuto</string>
<string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
<string name="app_notification_sound_timeout_value_15_minutes">15 minutos</string>
<string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
<string name="auto_brightness_one_shot_title">Brilho automático ao ligar o ecrã</string>
<string name="auto_brightness_one_shot_summary">O ajuste do brilho ocorrerá apenas no momento em que o ecrã for ligado</string>
@ -96,4 +102,22 @@
<string name="ambient_display_screen_off_udfps_title" product="device">Mantenha premido o sensor de impressão digital para desbloquear o dispositivo</string>
<string name="ambient_display_screen_off_udfps_summary">Para ligar o ecrã e desbloquear, mantenha premido o sensor de impressão digital.</string>
<string name="storage_warning_internal">Aviso: Esta opção pode não funcionar corretamente ou levar à perda de dados, não sendo, portanto, recomendada!</string>
<string name="assisted_gps">Utilizar GPS assistido</string>
<string name="assisted_gps_summary">Descarregar da internet dados de assistência por satélite, o que pode melhorar bastante o desempenho de arranque do GPS. Para chamadas de emergência, o GPS assistido é sempre permitido.</string>
<string name="battery_technology">Tecnologia</string>
<string name="battery_health">Saúde</string>
<string name="battery_health_good">Boa</string>
<string name="battery_health_overheat">Sobreaquecida</string>
<string name="battery_health_dead">Gasta</string>
<string name="battery_health_over_voltage">Sobretensão</string>
<string name="battery_health_unspecified_failure">Falha não especificada</string>
<string name="battery_health_cold">Fria</string>
<string name="battery_health_unknown">Desconhecida</string>
<string name="battery_temperature">Temperatura</string>
<string name="battery_voltage">Tensão</string>
<string name="battery_charge_counter_summary">%1$d mAh</string>
<string name="battery_design_capacity">Capacidade original</string>
<string name="battery_design_capacity_summary">%1$d mAh</string>
<string name="battery_maximum_capacity">Capacidade máxima</string>
<string name="battery_maximum_capacity_summary">%1$d mAh (%2$d%%)</string>
</resources>

View file

@ -15,6 +15,12 @@
limitations under the License.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="keyboard_extras_title">Tillval</string>
<string name="advanced_keyboard_settings_title">Avancerade inställningar</string>
<string name="adb_enable_root">Rootad felsökning</string>
<string name="adb_enable_summary_root">Tillåt att Android-felsökning körs som root</string>
<string name="backup_transport_setting_label">Ändra säkerhetskopieringsleverantör</string>
<string name="backup_transport_title">Välj säkerhetskopieringsleverantör</string>
<string name="berry_black_theme_title">Helsvart</string>
<string name="berry_black_theme_summary">Helsvart bakgrund för mörkt tema</string>
<string name="lineagelicense_title">LineageOS Juridik</string>
@ -23,6 +29,7 @@
<string name="status_bar_double_tap_to_sleep_title">Dubbeltryck för att släcka skärmen</string>
<string name="high_touch_sensitivity_title">Hög fingerkänslighet</string>
<string name="high_touch_sensitivity_summary">Öka tryckskärmens känslighet så att den kan användas samtidigt som du bär handskar</string>
<string name="lock_settings_picker_pattern_size_message">Välj en mönsterstorlek</string>
<string name="lockpattern_settings_enable_error_path_title">Visa mönster vid fel</string>
<string name="lockpattern_settings_enable_dots_title">Visa mönsterpunkter</string>
<string name="app_notification_sound_timeout_title">Minsta tid mellan aviseringsljud</string>
@ -48,5 +55,7 @@
<string name="touchscreen_hovering_summary">Låter dig hovra över skärmen som en mus i webbläsare, fjärrskrivbord, etc</string>
<string name="wake_when_plugged_or_unplugged_title">Vakna vid koppling</string>
<string name="wake_when_plugged_or_unplugged_summary">Starta skärmen vid anslutning till eller frånkoppling från strömkälla</string>
<string name="fast_charging_title">Snabbladdning</string>
<string name="fast_charging_summary">Inaktivera för att minska värmen som produceras av enheten under laddning eller för att förlänga batteriets livslängd</string>
<string name="assisted_gps_summary">Ladda ner satellitdata från internet som avsevärt kan förbättra GPS:ens startprestanda. För nödsamtal är assisterad GPS alltid tillåten.</string>
</resources>

View file

@ -20,6 +20,15 @@
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:key="top_level_settings">
<com.android.settings.widget.HomepagePreference
android:key="top_level_scoop_settings"
android:icon="@drawable/ic_scoop"
android:title="@string/scoop_settings_title"
android:summary="@string/scoop_settings_summary"
android:order="-204"
android:fragment="com.scoop.settings.ScoopSettings"
settings:controller="com.scoop.settings.TopLevelSettingsPreferenceController" />
<com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.network.NetworkDashboardFragment"
android:icon="@drawable/ic_settings_wireless"

View file

@ -45,6 +45,20 @@
settings:controller="com.android.settings.connecteddevice.TopLevelConnectedDevicesPreferenceController"/>
</PreferenceCategory>
<PreferenceCategory
android:order="-125"
android:key="top_level_scoop_settings"
android:layout="@layout/settingslib_preference_category_no_title">
<com.android.settings.widget.HomepagePreference
android:key="top_level_scoop_settings"
android:icon="@drawable/ic_scoop"
android:title="@string/scoop_settings_title"
android:summary="@string/scoop_settings_summary"
android:order="-204"
android:fragment="com.scoop.settings.ScoopSettings"
settings:controller="com.scoop.settings.TopLevelSettingsPreferenceController" />
</PreferenceCategory>
<PreferenceCategory
android:order="-120"
android:key="top_level_personalize_category"

View file

@ -515,4 +515,6 @@ public class Settings extends SettingsActivity {
public static class HearingDevicesActivity extends SettingsActivity { /* empty */ }
public static class HearingDevicesPairingActivity extends SettingsActivity { /* empty */ }
public static class ScoopSettingsActivity extends SettingsActivity { /* empty */ }
}

View file

@ -20,6 +20,7 @@ package com.android.settings.accounts;
import android.accounts.Account;
import android.accounts.AuthenticatorDescription;
import android.content.ClipData;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
@ -242,13 +243,19 @@ public class AccountTypePreferenceLoader {
}
/**
* Determines if the supplied Intent is safe. A safe intent is one that is
* will launch a exported=true activity or owned by the same uid as the
* Determines if the supplied Intent is safe. A safe intent is one that
* will launch an exported=true activity or owned by the same uid as the
* authenticator supplying the intent.
*/
private boolean isSafeIntent(PackageManager pm, Intent intent, String acccountType) {
@VisibleForTesting
boolean isSafeIntent(PackageManager pm, Intent intent, String accountType) {
if (TextUtils.equals(intent.getScheme(), ContentResolver.SCHEME_CONTENT)) {
Log.e(TAG, "Intent with a content scheme is unsafe.");
return false;
}
AuthenticatorDescription authDesc =
mAuthenticatorHelper.getAccountTypeDescription(acccountType);
mAuthenticatorHelper.getAccountTypeDescription(accountType);
ResolveInfo resolveInfo = pm.resolveActivityAsUser(intent, 0, mUserHandle.getIdentifier());
if (resolveInfo == null) {
return false;

View file

@ -207,6 +207,8 @@ import com.android.settings.wifi.p2p.WifiP2pSettings;
import com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2;
import com.android.settings.wifi.tether.WifiTetherSettings;
import com.scoop.settings.ScoopSettings;
public class SettingsGateway {
/**
@ -400,6 +402,7 @@ public class SettingsGateway {
CellularSecuritySettingsFragment.class.getName(),
AccessibilityHearingAidsFragment.class.getName(),
HearingDevicePairingFragment.class.getName(),
ScoopSettings.class.getName(),
ZenModesListFragment.class.getName(),
ZenModeFragment.class.getName()
};
@ -448,5 +451,6 @@ public class SettingsGateway {
UserBackupSettingsActivity.class.getName(),
Settings.MemtagPageActivity.class.getName(),
Settings.NavigationModeSettingsActivity.class.getName(),
Settings.ScoopSettingsActivity.class.getName(),
};
}

View file

@ -590,6 +590,10 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
observers = mDashboardFeatureProvider.bindPreferenceToTileAndGetObservers(
getActivity(), this, forceRoundedIcons, pref, tile, key,
mPlaceholderPreferenceController.getOrder());
// Order the prefs within their respective category
if (KEY_ORDER.containsKey(key)) {
pref.setOrder(KEY_ORDER.get(key));
}
if (Flags.dynamicInjectionCategory()) {
if (tile.hasGroupKey()) {
Preference group = screen.findPreference(tile.getGroupKey());

View file

@ -50,6 +50,8 @@ import com.android.settings.security.SecuritySettings;
import com.android.settings.system.SystemDashboardFragment;
import com.android.settingslib.drawer.CategoryKey;
import com.scoop.settings.ScoopSettings;
import java.util.Map;
/**
@ -132,6 +134,8 @@ public class DashboardFragmentRegistry {
CategoryKey.CATEGORY_SPECIAL_APP_ACCESS);
PARENT_TO_CATEGORY_KEY_MAP.put(MoreSecurityPrivacyFragment.class.getName(),
CategoryKey.CATEGORY_MORE_SECURITY_PRIVACY_SETTINGS);
PARENT_TO_CATEGORY_KEY_MAP.put(ScoopSettings.class.getName(),
CategoryKey.CATEGORY_SCOOP_SETTINGS);
CATEGORY_KEY_TO_PARENT_MAP = new ArrayMap<>(PARENT_TO_CATEGORY_KEY_MAP.size());

View file

@ -30,7 +30,6 @@ import com.android.settingslib.utils.ThreadUtils;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.Arrays;
public class DataSaverBackend {
@ -124,32 +123,52 @@ public class DataSaverBackend {
}
private void loadUidPolicies(int policy) {
final int[] uidsWithPolicy = mPolicyManager.getUidsWithPolicy(policy);
for (int uid : uidsWithPolicy) {
setCachedUidPolicyFlag(uid, policy, true);
final int[] uidsWithPolicyArray = mPolicyManager.getUidsWithPolicy(policy);
final ArrayList<Integer> uidsWithPolicy = new ArrayList<>(uidsWithPolicyArray.length);
for (final int uid : uidsWithPolicyArray) {
uidsWithPolicy.add(uid);
}
// Update existing cached UID policies.
for (int i = 0; i < mUidPolicies.size(); i++) {
final int uid = mUidPolicies.keyAt(i);
if (!Arrays.asList(uidsWithPolicy).contains(uid)) {
setCachedUidPolicyFlag(uid, policy, false);
final Integer cachedEntryUid = mUidPolicies.keyAt(i);
if (uidsWithPolicy.remove(cachedEntryUid)) {
// UID had the policy. It was removed so we don't have to process it twice.
setCachedUidPolicyFlagAt(i, policy, true);
} else {
// UID does not have the policy.
setCachedUidPolicyFlagAt(i, policy, false);
}
}
// Add policies for remaining UIDs, which did not have cached policies, so we're it.
for (final int uid : uidsWithPolicy) {
mUidPolicies.put(uid, policy);
}
}
private int setCachedUidPolicyFlag(int uid, int policy, boolean add) {
final int currentPolicy = mUidPolicies.get(uid, POLICY_NONE);
private void setCachedUidPolicyFlag(int uid, int policy, boolean add) {
final int index = mUidPolicies.indexOfKey(uid);
if (index < 0) {
if (add) {
mUidPolicies.put(uid, policy);
}
return;
}
setCachedUidPolicyFlagAt(index, policy, add);
}
private void setCachedUidPolicyFlagAt(int index, int policy, boolean add) {
final int currentPolicy = mUidPolicies.valueAt(index);
final int newPolicy = add ? (currentPolicy | policy) : (currentPolicy & ~policy);
mUidPolicies.put(uid, newPolicy);
return newPolicy;
mUidPolicies.setValueAt(index, newPolicy);
}
private int setUidPolicyFlag(int uid, int policy, boolean add) {
private void setUidPolicyFlag(int uid, int policy, boolean add) {
if (add) {
mPolicyManager.addUidPolicy(uid, policy);
} else {
mPolicyManager.removeUidPolicy(uid, policy);
}
return setCachedUidPolicyFlag(uid, policy, add);
setCachedUidPolicyFlag(uid, policy, add);
}
private boolean isUidPolicyFlagSet(int uid, int policy) {

View file

@ -87,13 +87,15 @@ public class BatteryDefenderTip extends BatteryTip {
cardPreference.setSelectable(false);
cardPreference.setIconResId(getIconId());
if (getHelpResource() != 0) {
cardPreference.setPrimaryButtonText(context.getString(R.string.learn_more));
cardPreference.setPrimaryButtonAction(
() -> {
var helpIntent =
HelpUtils.getHelpIntent(
context,
context.getString(R.string.help_url_battery_defender),
context.getString(getHelpResource()),
/* backupContext= */ "");
ActivityCompat.startActivityForResult(
(Activity) preference.getContext(),
@ -104,9 +106,9 @@ public class BatteryDefenderTip extends BatteryTip {
return Unit.INSTANCE;
});
cardPreference.setPrimaryButtonVisibility(true);
cardPreference.setPrimaryButtonContentDescription(
context.getString(
cardPreference.setPrimaryButtonContentDescription(context.getString(
R.string.battery_tip_limited_temporarily_sec_button_content_description));
}
cardPreference.setSecondaryButtonText(
context.getString(R.string.battery_tip_charge_to_full_button));
@ -121,6 +123,10 @@ public class BatteryDefenderTip extends BatteryTip {
cardPreference.buildContent();
}
private int getHelpResource() {
return R.string.help_url_battery_defender;
}
private void resumeCharging(Context context) {
final Intent intent =
FeatureFactory.getFeatureFactory()

View file

@ -69,6 +69,11 @@ private fun SimPreference(subInfo: SubscriptionInfo) {
SubscriptionRepository(context).isSubscriptionEnabledFlow(subInfo.subscriptionId)
}.collectAsStateWithLifecycle(initialValue = false)
val phoneNumber = phoneNumber(subInfo)
val canDisablePhysicalSubscription by remember {
flow {
emit(SubscriptionRepository(context).canDisablePhysicalSubscription())
}
}.collectAsStateWithLifecycle(initialValue = false)
val isConvertedPsim by remember(subInfo) {
flow {
emit(SubscriptionUtil.isConvertedPsimSubscription(subInfo))
@ -90,7 +95,10 @@ private fun SimPreference(subInfo: SubscriptionInfo) {
}
}
override val icon = @Composable { SimIcon(subInfo.isEmbedded) }
override val changeable = { isActivationChangeable && !isConvertedPsim }
override val changeable = {
(subInfo.isEmbedded || canDisablePhysicalSubscription)
&& isActivationChangeable && !isConvertedPsim
}
override val checked = { checked.value }
override val onCheckedChange: (Boolean) -> Unit = { newChecked ->
coroutineScope.launch {

View file

@ -465,7 +465,7 @@ public class UserSettings extends SettingsPreferenceFragment
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
int pos = 0;
if (!isCurrentUserAdmin() && (canSwitchUserNow() || Flags.newMultiuserSettingsUx())
&& !isCurrentUserGuest()) {
&& !isCurrentUserGuest() && !mUserManager.isProfile()) {
String nickname = mUserManager.getUserName();
MenuItem removeThisUser = menu.add(0, MENU_REMOVE_USER, pos++,
getResources().getString(R.string.user_remove_user_menu, nickname));

View file

@ -30,8 +30,11 @@ import static org.mockito.Mockito.when;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AuthenticatorDescription;
import android.content.ClipData;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.UserHandle;
import androidx.collection.ArraySet;
@ -250,4 +253,13 @@ public class AccountTypePreferenceLoaderTest {
mPrefLoader.filterBlockedFragments(parent, Set.of("nomatch", "other"));
verify(pref).setOnPreferenceClickListener(any());
}
@Test
public void isSafeIntent_hasContextScheme_returnFalse() {
Intent intent = new Intent();
intent.setClipData(ClipData.newRawUri(null,
Uri.parse("content://com.android.settings.files/my_cache/NOTICE.html")));
assertThat(mPrefLoader.isSafeIntent(mPackageManager, intent, mAccount.type)).isFalse();
}
}